1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef ASH_FRAME_CAPTION_BUTTONS_FRAME_SIZE_BUTTON_DELEGATE_H_
6 #define ASH_FRAME_CAPTION_BUTTONS_FRAME_SIZE_BUTTON_DELEGATE_H_
8 #include "ash/ash_export.h"
9 #include "ash/frame/caption_buttons/caption_button_types.h"
18 class FrameCaptionButton
;
20 // Delegate interface for FrameSizeButton.
21 class ASH_EXPORT FrameSizeButtonDelegate
{
28 // Returns whether the minimize button is visible.
29 virtual bool IsMinimizeButtonVisible() const = 0;
31 // Reset the caption button views::Button::ButtonState back to normal. If
32 // |animate| is ANIMATE_YES, the buttons will crossfade back to their
34 virtual void SetButtonsToNormal(Animate animate
) = 0;
36 // Sets the minimize and close button icons. The buttons will crossfade to
37 // their new icons if |animate| is ANIMATE_YES.
38 virtual void SetButtonIcons(CaptionButtonIcon minimize_button_icon
,
39 CaptionButtonIcon close_button_icon
,
42 // Returns the button closest to |position_in_screen|.
43 virtual const FrameCaptionButton
* GetButtonClosestTo(
44 const gfx::Point
& position_in_screen
) const = 0;
46 // Sets |to_hover| and |to_pressed| to STATE_HOVERED and STATE_PRESSED
47 // respectively. All other buttons are to set to STATE_NORMAL.
48 virtual void SetHoveredAndPressedButtons(
49 const FrameCaptionButton
* to_hover
,
50 const FrameCaptionButton
* to_press
) = 0;
53 virtual ~FrameSizeButtonDelegate() {}
58 #endif // ASH_FRAME_CAPTION_BUTTONS_FRAME_SIZE_BUTTON_DELEGATE_H_