Add a struct for spellcheck marker
[chromium-blink-merge.git] / ash / shell / window_type_launcher.h
blobde2159ebc44b1de744338879bc15ae072c94bf89
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
3 // found in the LICENSE file.
5 #ifndef ASH_SHELL_WINDOW_TYPE_LAUNCHER_H_
6 #define ASH_SHELL_WINDOW_TYPE_LAUNCHER_H_
8 #include "ui/views/context_menu_controller.h"
9 #include "ui/views/controls/button/button.h"
10 #include "ui/views/controls/menu/menu_delegate.h"
11 #include "ui/views/widget/widget_delegate.h"
13 namespace views {
14 class MenuRunner;
15 class LabelButton;
18 namespace ash {
19 namespace shell {
21 // The contents view/delegate of a window that shows some buttons that create
22 // various window types.
23 #if defined(OS_MACOSX)
24 class WindowTypeLauncher : public views::WidgetDelegateView,
25 public views::ButtonListener {
26 #else
27 class WindowTypeLauncher : public views::WidgetDelegateView,
28 public views::ButtonListener,
29 public views::MenuDelegate,
30 public views::ContextMenuController {
31 #endif // defined(OS_MACOSX)
32 public:
33 WindowTypeLauncher();
34 virtual ~WindowTypeLauncher();
36 private:
37 typedef std::pair<aura::Window*, gfx::Rect> WindowAndBoundsPair;
39 enum MenuCommands {
40 COMMAND_NEW_WINDOW = 1,
41 COMMAND_TOGGLE_FULLSCREEN = 3,
44 // Overridden from views::View:
45 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
46 virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE;
48 // Overridden from views::WidgetDelegate:
49 virtual views::View* GetContentsView() OVERRIDE;
50 virtual bool CanResize() const OVERRIDE;
51 virtual base::string16 GetWindowTitle() const OVERRIDE;
52 virtual bool CanMaximize() const OVERRIDE;
54 // Overridden from views::ButtonListener:
55 virtual void ButtonPressed(views::Button* sender,
56 const ui::Event& event) OVERRIDE;
58 #if !defined(OS_MACOSX)
59 // Overridden from views::MenuDelegate:
60 virtual void ExecuteCommand(int id, int event_flags) OVERRIDE;
62 // Override from views::ContextMenuController:
63 virtual void ShowContextMenuForView(views::View* source,
64 const gfx::Point& point) OVERRIDE;
65 #endif // !defined(OS_MACOSX)
67 views::LabelButton* create_button_;
68 views::LabelButton* create_persistant_button_;
69 views::LabelButton* panel_button_;
70 views::LabelButton* create_nonresizable_button_;
71 views::LabelButton* bubble_button_;
72 views::LabelButton* lock_button_;
73 views::LabelButton* widgets_button_;
74 views::LabelButton* system_modal_button_;
75 views::LabelButton* window_modal_button_;
76 views::LabelButton* child_modal_button_;
77 views::LabelButton* transient_button_;
78 views::LabelButton* examples_button_;
79 views::LabelButton* show_hide_window_button_;
80 views::LabelButton* show_screensaver_;
81 views::LabelButton* show_web_notification_;
82 #if !defined(OS_MACOSX)
83 scoped_ptr<views::MenuRunner> menu_runner_;
84 #endif
86 DISALLOW_COPY_AND_ASSIGN(WindowTypeLauncher);
89 } // namespace shell
90 } // namespace ash
92 #endif // ASH_SHELL_WINDOW_TYPE_LAUNCHER_H_