OLD | NEW |
| (Empty) |
1 // Copyright 2013 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. | |
4 | |
5 #ifndef ASH_FRAME_CAPTION_BUTTONS_BUBBLE_CONTENTS_BUTTON_ROW_H_ | |
6 #define ASH_FRAME_CAPTION_BUTTONS_BUBBLE_CONTENTS_BUTTON_ROW_H_ | |
7 | |
8 #include "ash/wm/workspace/snap_types.h" | |
9 #include "ui/views/controls/button/button.h" | |
10 | |
11 namespace views { | |
12 class CustomButton; | |
13 } | |
14 | |
15 namespace ash { | |
16 | |
17 class BubbleDialogButton; | |
18 class MaximizeBubbleControllerBubble; | |
19 | |
20 // A class that creates all buttons and puts them into a view. | |
21 class BubbleContentsButtonRow : public views::View, | |
22 public views::ButtonListener { | |
23 public: | |
24 explicit BubbleContentsButtonRow(MaximizeBubbleControllerBubble* bubble); | |
25 virtual ~BubbleContentsButtonRow(); | |
26 | |
27 // views::ButtonListener: | |
28 virtual void ButtonPressed(views::Button* sender, | |
29 const ui::Event& event) OVERRIDE; | |
30 | |
31 // Called from BubbleDialogButton. | |
32 void ButtonHovered(BubbleDialogButton* sender); | |
33 | |
34 // Added for unit test: Retrieve the button for an action. | |
35 // |state| can be either SNAP_LEFT, SNAP_RIGHT or SNAP_MINIMIZE. | |
36 views::CustomButton* GetButtonForUnitTest(SnapType state); | |
37 | |
38 MaximizeBubbleControllerBubble* bubble() { return bubble_; } | |
39 | |
40 private: | |
41 // Functions to add the left and right maximize / restore buttons. | |
42 void AddMaximizeLeftButton(); | |
43 void AddMaximizeRightButton(); | |
44 void AddMinimizeButton(); | |
45 | |
46 // The owning object which gets notifications. | |
47 MaximizeBubbleControllerBubble* bubble_; | |
48 | |
49 // The created buttons for our menu. | |
50 BubbleDialogButton* left_button_; | |
51 BubbleDialogButton* minimize_button_; | |
52 BubbleDialogButton* right_button_; | |
53 | |
54 DISALLOW_COPY_AND_ASSIGN(BubbleContentsButtonRow); | |
55 }; | |
56 | |
57 } // namespace ash | |
58 | |
59 #endif // ASH_FRAME_CAPTION_BUTTONS_BUBBLE_CONTENTS_BUTTON_ROW_H_ | |
OLD | NEW |