OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef ASH_SHELL_WINDOW_TYPE_LAUNCHER_H_ | 5 #ifndef ASH_SHELL_WINDOW_TYPE_LAUNCHER_H_ |
6 #define ASH_SHELL_WINDOW_TYPE_LAUNCHER_H_ | 6 #define ASH_SHELL_WINDOW_TYPE_LAUNCHER_H_ |
7 | 7 |
8 #include "ui/views/context_menu_controller.h" | 8 #include "ui/views/context_menu_controller.h" |
9 #include "ui/views/controls/button/button.h" | 9 #include "ui/views/controls/button/button.h" |
10 #include "ui/views/controls/menu/menu_delegate.h" | 10 #include "ui/views/controls/menu/menu_delegate.h" |
11 #include "ui/views/widget/widget_delegate.h" | 11 #include "ui/views/widget/widget_delegate.h" |
12 | 12 |
13 namespace views { | 13 namespace views { |
14 class MenuRunner; | 14 class MenuRunner; |
15 class LabelButton; | 15 class LabelButton; |
16 } | 16 } |
17 | 17 |
18 namespace ash { | 18 namespace ash { |
19 namespace shell { | 19 namespace shell { |
20 | 20 |
21 // The contents view/delegate of a window that shows some buttons that create | 21 // The contents view/delegate of a window that shows some buttons that create |
22 // various window types. | 22 // various window types. |
23 class WindowTypeLauncher : public views::WidgetDelegateView, | 23 class WindowTypeLauncher : public views::WidgetDelegateView, |
24 public views::ButtonListener, | 24 public views::ButtonListener, |
25 public views::MenuDelegate, | 25 public views::MenuDelegate, |
26 public views::ContextMenuController { | 26 public views::ContextMenuController { |
27 public: | 27 public: |
28 WindowTypeLauncher(); | 28 WindowTypeLauncher(); |
29 virtual ~WindowTypeLauncher(); | 29 ~WindowTypeLauncher() override; |
30 | 30 |
31 private: | 31 private: |
32 typedef std::pair<aura::Window*, gfx::Rect> WindowAndBoundsPair; | 32 typedef std::pair<aura::Window*, gfx::Rect> WindowAndBoundsPair; |
33 | 33 |
34 enum MenuCommands { | 34 enum MenuCommands { |
35 COMMAND_NEW_WINDOW = 1, | 35 COMMAND_NEW_WINDOW = 1, |
36 COMMAND_TOGGLE_FULLSCREEN = 3, | 36 COMMAND_TOGGLE_FULLSCREEN = 3, |
37 }; | 37 }; |
38 | 38 |
39 // Overridden from views::View: | 39 // Overridden from views::View: |
40 virtual void OnPaint(gfx::Canvas* canvas) override; | 40 void OnPaint(gfx::Canvas* canvas) override; |
41 virtual bool OnMousePressed(const ui::MouseEvent& event) override; | 41 bool OnMousePressed(const ui::MouseEvent& event) override; |
42 | 42 |
43 // Overridden from views::WidgetDelegate: | 43 // Overridden from views::WidgetDelegate: |
44 virtual views::View* GetContentsView() override; | 44 views::View* GetContentsView() override; |
45 virtual bool CanResize() const override; | 45 bool CanResize() const override; |
46 virtual base::string16 GetWindowTitle() const override; | 46 base::string16 GetWindowTitle() const override; |
47 virtual bool CanMaximize() const override; | 47 bool CanMaximize() const override; |
48 virtual bool CanMinimize() const override; | 48 bool CanMinimize() const override; |
49 | 49 |
50 // Overridden from views::ButtonListener: | 50 // Overridden from views::ButtonListener: |
51 virtual void ButtonPressed(views::Button* sender, | 51 void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
52 const ui::Event& event) override; | |
53 | 52 |
54 // Overridden from views::MenuDelegate: | 53 // Overridden from views::MenuDelegate: |
55 virtual void ExecuteCommand(int id, int event_flags) override; | 54 void ExecuteCommand(int id, int event_flags) override; |
56 | 55 |
57 // Override from views::ContextMenuController: | 56 // Override from views::ContextMenuController: |
58 virtual void ShowContextMenuForView(views::View* source, | 57 void ShowContextMenuForView(views::View* source, |
59 const gfx::Point& point, | 58 const gfx::Point& point, |
60 ui::MenuSourceType source_type) override; | 59 ui::MenuSourceType source_type) override; |
61 | 60 |
62 views::LabelButton* create_button_; | 61 views::LabelButton* create_button_; |
63 views::LabelButton* create_persistant_button_; | 62 views::LabelButton* create_persistant_button_; |
64 views::LabelButton* panel_button_; | 63 views::LabelButton* panel_button_; |
65 views::LabelButton* create_nonresizable_button_; | 64 views::LabelButton* create_nonresizable_button_; |
66 views::LabelButton* bubble_button_; | 65 views::LabelButton* bubble_button_; |
67 views::LabelButton* lock_button_; | 66 views::LabelButton* lock_button_; |
68 views::LabelButton* widgets_button_; | 67 views::LabelButton* widgets_button_; |
69 views::LabelButton* system_modal_button_; | 68 views::LabelButton* system_modal_button_; |
70 views::LabelButton* window_modal_button_; | 69 views::LabelButton* window_modal_button_; |
71 views::LabelButton* child_modal_button_; | 70 views::LabelButton* child_modal_button_; |
72 views::LabelButton* transient_button_; | 71 views::LabelButton* transient_button_; |
73 views::LabelButton* examples_button_; | 72 views::LabelButton* examples_button_; |
74 views::LabelButton* show_hide_window_button_; | 73 views::LabelButton* show_hide_window_button_; |
75 views::LabelButton* show_screensaver_; | 74 views::LabelButton* show_screensaver_; |
76 views::LabelButton* show_web_notification_; | 75 views::LabelButton* show_web_notification_; |
77 scoped_ptr<views::MenuRunner> menu_runner_; | 76 scoped_ptr<views::MenuRunner> menu_runner_; |
78 | 77 |
79 DISALLOW_COPY_AND_ASSIGN(WindowTypeLauncher); | 78 DISALLOW_COPY_AND_ASSIGN(WindowTypeLauncher); |
80 }; | 79 }; |
81 | 80 |
82 } // namespace shell | 81 } // namespace shell |
83 } // namespace ash | 82 } // namespace ash |
84 | 83 |
85 #endif // ASH_SHELL_WINDOW_TYPE_LAUNCHER_H_ | 84 #endif // ASH_SHELL_WINDOW_TYPE_LAUNCHER_H_ |
OLD | NEW |