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

Side by Side Diff: chrome/browser/ui/views/status_icons/status_icon_chromeos.cc

Issue 9693022: views: Rename MenuButtonDelegate::RunMenu to something more obvious. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: menu_button_listener.h Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
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 #include "chrome/browser/ui/views/status_icons/status_icon_chromeos.h" 5 #include "chrome/browser/ui/views/status_icons/status_icon_chromeos.h"
6 6
7 #include "chrome/browser/chromeos/frame/browser_view.h" 7 #include "chrome/browser/chromeos/frame/browser_view.h"
8 #include "chrome/browser/chromeos/status/status_area_button.h" 8 #include "chrome/browser/chromeos/status/status_area_button.h"
9 #include "chrome/browser/profiles/profile_manager.h" 9 #include "chrome/browser/profiles/profile_manager.h"
10 #include "chrome/browser/ui/browser.h" 10 #include "chrome/browser/ui/browser.h"
11 #include "chrome/browser/ui/browser_list.h" 11 #include "chrome/browser/ui/browser_list.h"
12 #include "chrome/common/chrome_notification_types.h" 12 #include "chrome/common/chrome_notification_types.h"
13 #include "content/public/browser/notification_service.h" 13 #include "content/public/browser/notification_service.h"
14 #include "ui/views/controls/button/menu_button_delegate.h" 14 #include "ui/views/controls/button/menu_button_listener.h"
15 #include "ui/views/controls/menu/menu_delegate.h" 15 #include "ui/views/controls/menu/menu_delegate.h"
16 #include "ui/views/controls/menu/menu_model_adapter.h" 16 #include "ui/views/controls/menu/menu_model_adapter.h"
17 #include "ui/views/controls/menu/menu_runner.h" 17 #include "ui/views/controls/menu/menu_runner.h"
18 18
19 class StatusIconChromeOS::NotificationTrayButton 19 class StatusIconChromeOS::NotificationTrayButton
20 : public StatusAreaButton, 20 : public StatusAreaButton,
21 public views::MenuDelegate, 21 public views::MenuDelegate,
22 public views::MenuButtonDelegate { 22 public views::MenuButtonListener {
23 public: 23 public:
24 NotificationTrayButton(StatusIconChromeOS* status_icon, 24 NotificationTrayButton(StatusIconChromeOS* status_icon,
25 StatusAreaButton::Delegate* delegate) 25 StatusAreaButton::Delegate* delegate)
26 : StatusAreaButton(delegate, this), 26 : StatusAreaButton(delegate, this),
27 status_icon_(status_icon) { 27 status_icon_(status_icon) {
28 } 28 }
29 virtual ~NotificationTrayButton() {} 29 virtual ~NotificationTrayButton() {}
30 30
31 void SetImage(const SkBitmap& image) { 31 void SetImage(const SkBitmap& image) {
32 SetIcon(image); 32 SetIcon(image);
33 SetVisible(true); 33 SetVisible(true);
34 PreferredSizeChanged(); 34 PreferredSizeChanged();
35 SchedulePaint(); 35 SchedulePaint();
36 } 36 }
37 37
38 void Hide() { 38 void Hide() {
39 SetVisible(false); 39 SetVisible(false);
40 SchedulePaint(); 40 SchedulePaint();
41 } 41 }
42 42
43 // views::MenuButton overrides. 43 // Overridden from views::MenuButton:
44 virtual bool Activate() OVERRIDE { 44 virtual bool Activate() OVERRIDE {
45 // All tray buttons are removed on status icon destruction. 45 // All tray buttons are removed on status icon destruction.
46 // This should never be called afterwards. 46 // This should never be called afterwards.
47 bool retval = views::MenuButton::Activate(); 47 bool retval = views::MenuButton::Activate();
48 status_icon_->Clicked(); 48 status_icon_->Clicked();
49 return retval; 49 return retval;
50 } 50 }
51 51
52 // views::MenuButtonDelegate implementation. 52 // Overridden from views::MenuButtonListener:
53 virtual void RunMenu(views::View* source, const gfx::Point& pt) 53 virtual void OnMenuButtonClicked(views::View* source,
54 OVERRIDE { 54 const gfx::Point& point) OVERRIDE {
55 views::MenuRunner* menu_runner = status_icon_->menu_runner(); 55 views::MenuRunner* menu_runner = status_icon_->menu_runner();
56 if (!menu_runner) 56 if (!menu_runner)
57 return; 57 return;
58 58
59 gfx::Point screen_location; 59 gfx::Point screen_location;
60 views::View::ConvertPointToScreen(source, &screen_location); 60 views::View::ConvertPointToScreen(source, &screen_location);
61 gfx::Rect bounds(screen_location, source->size()); 61 gfx::Rect bounds(screen_location, source->size());
62 if (menu_runner->RunMenuAt( 62 if (menu_runner->RunMenuAt(
63 source->GetWidget()->GetTopLevelWidget(), this, bounds, 63 source->GetWidget()->GetTopLevelWidget(), this, bounds,
64 views::MenuItemView::TOPRIGHT, views::MenuRunner::HAS_MNEMONICS) == 64 views::MenuItemView::TOPRIGHT, views::MenuRunner::HAS_MNEMONICS) ==
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 194
195 // Create context menu with the new contents. 195 // Create context menu with the new contents.
196 views::MenuModelAdapter* adapter = new views::MenuModelAdapter(menu); 196 views::MenuModelAdapter* adapter = new views::MenuModelAdapter(menu);
197 context_menu_adapter_.reset(adapter); 197 context_menu_adapter_.reset(adapter);
198 views::MenuItemView* menu_view = new views::MenuItemView(adapter); 198 views::MenuItemView* menu_view = new views::MenuItemView(adapter);
199 adapter->BuildMenu(menu_view); 199 adapter->BuildMenu(menu_view);
200 200
201 // menu_runner_ takes ownership of menu. 201 // menu_runner_ takes ownership of menu.
202 menu_runner_.reset(new views::MenuRunner(menu_view)); 202 menu_runner_.reset(new views::MenuRunner(menu_view));
203 } 203 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/notifications/balloon_view.cc ('k') | chrome/browser/ui/views/tabs/tab_strip.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698