Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Side by Side Diff: ui/message_center/views/notifier_settings_view.h

Issue 2300893002: Make notifier settings combobox a real combobox. (Closed)
Patch Set: rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/base/models/combobox_model.h ('k') | ui/message_center/views/notifier_settings_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 UI_MESSAGE_CENTER_VIEWS_NOTIFIER_SETTINGS_VIEW_H_ 5 #ifndef UI_MESSAGE_CENTER_VIEWS_NOTIFIER_SETTINGS_VIEW_H_
6 #define UI_MESSAGE_CENTER_VIEWS_NOTIFIER_SETTINGS_VIEW_H_ 6 #define UI_MESSAGE_CENTER_VIEWS_NOTIFIER_SETTINGS_VIEW_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <set> 9 #include <set>
10 10
11 #include "base/gtest_prod_util.h" 11 #include "base/gtest_prod_util.h"
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "ui/message_center/message_center_export.h" 13 #include "ui/message_center/message_center_export.h"
14 #include "ui/message_center/notifier_settings.h" 14 #include "ui/message_center/notifier_settings.h"
15 #include "ui/message_center/views/message_bubble_base.h" 15 #include "ui/message_center/views/message_bubble_base.h"
16 #include "ui/views/controls/button/checkbox.h" 16 #include "ui/views/controls/button/checkbox.h"
17 #include "ui/views/controls/button/image_button.h" 17 #include "ui/views/controls/button/image_button.h"
18 #include "ui/views/controls/button/menu_button_listener.h" 18 #include "ui/views/controls/combobox/combobox_listener.h"
19 #include "ui/views/controls/image_view.h" 19 #include "ui/views/controls/image_view.h"
20 #include "ui/views/view.h" 20 #include "ui/views/view.h"
21 21
22 namespace ui {
23 class ComboboxModel;
24 }
25
22 namespace views { 26 namespace views {
27 class Combobox;
23 class Label; 28 class Label;
24 class MenuButton;
25 class MenuModelAdapter;
26 class MenuRunner;
27 } 29 }
28 30
29 namespace message_center { 31 namespace message_center {
30 class NotifierGroupMenuModel;
31 32
32 // A class to show the list of notifier extensions / URL patterns and allow 33 // A class to show the list of notifier extensions / URL patterns and allow
33 // users to customize the settings. 34 // users to customize the settings.
34 class MESSAGE_CENTER_EXPORT NotifierSettingsView 35 class MESSAGE_CENTER_EXPORT NotifierSettingsView
35 : public NotifierSettingsObserver, 36 : public NotifierSettingsObserver,
36 public views::View, 37 public views::View,
37 public views::ButtonListener, 38 public views::ButtonListener,
38 public views::MenuButtonListener { 39 public views::ComboboxListener {
39 public: 40 public:
40 explicit NotifierSettingsView(NotifierSettingsProvider* provider); 41 explicit NotifierSettingsView(NotifierSettingsProvider* provider);
41 ~NotifierSettingsView() override; 42 ~NotifierSettingsView() override;
42 43
43 bool IsScrollable(); 44 bool IsScrollable();
44 45
45 // Overridden from NotifierSettingsDelegate: 46 // Overridden from NotifierSettingsDelegate:
46 void UpdateIconImage(const NotifierId& notifier_id, 47 void UpdateIconImage(const NotifierId& notifier_id,
47 const gfx::Image& icon) override; 48 const gfx::Image& icon) override;
48 void NotifierGroupChanged() override; 49 void NotifierGroupChanged() override;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 // Overridden from views::View: 101 // Overridden from views::View:
101 void Layout() override; 102 void Layout() override;
102 gfx::Size GetMinimumSize() const override; 103 gfx::Size GetMinimumSize() const override;
103 gfx::Size GetPreferredSize() const override; 104 gfx::Size GetPreferredSize() const override;
104 bool OnKeyPressed(const ui::KeyEvent& event) override; 105 bool OnKeyPressed(const ui::KeyEvent& event) override;
105 bool OnMouseWheel(const ui::MouseWheelEvent& event) override; 106 bool OnMouseWheel(const ui::MouseWheelEvent& event) override;
106 107
107 // Overridden from views::ButtonListener: 108 // Overridden from views::ButtonListener:
108 void ButtonPressed(views::Button* sender, const ui::Event& event) override; 109 void ButtonPressed(views::Button* sender, const ui::Event& event) override;
109 110
110 // Overridden from views::MenuButtonListener: 111 // Overridden from views::ComboboxListener:
111 void OnMenuButtonClicked(views::MenuButton* source, 112 void OnPerformAction(views::Combobox* combobox) override;
112 const gfx::Point& point,
113 const ui::Event* event) override;
114 113
115 // Callback for views::MenuModelAdapter. 114 // Callback for views::MenuModelAdapter.
116 void OnMenuClosed(); 115 void OnMenuClosed();
117 116
118 views::ImageButton* title_arrow_; 117 views::ImageButton* title_arrow_;
119 views::Label* title_label_; 118 views::Label* title_label_;
120 views::MenuButton* notifier_group_selector_; 119 views::Combobox* notifier_group_combobox_;
121 views::ScrollView* scroller_; 120 views::ScrollView* scroller_;
122 NotifierSettingsProvider* provider_; 121 NotifierSettingsProvider* provider_;
123 std::set<NotifierButton*> buttons_; 122 std::set<NotifierButton*> buttons_;
124 std::unique_ptr<NotifierGroupMenuModel> notifier_group_menu_model_; 123 std::unique_ptr<ui::ComboboxModel> notifier_group_model_;
125 std::unique_ptr<views::MenuModelAdapter> notifier_group_menu_model_adapter_;
126 std::unique_ptr<views::MenuRunner> notifier_group_menu_runner_;
127 124
128 DISALLOW_COPY_AND_ASSIGN(NotifierSettingsView); 125 DISALLOW_COPY_AND_ASSIGN(NotifierSettingsView);
129 }; 126 };
130 127
131 } // namespace message_center 128 } // namespace message_center
132 129
133 #endif // UI_MESSAGE_CENTER_VIEWS_NOTIFIER_SETTINGS_VIEW_H_ 130 #endif // UI_MESSAGE_CENTER_VIEWS_NOTIFIER_SETTINGS_VIEW_H_
OLDNEW
« no previous file with comments | « ui/base/models/combobox_model.h ('k') | ui/message_center/views/notifier_settings_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698