summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-21 17:42:40 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-21 17:42:40 +0000
commit2b9c46d971042edef955d1ef615f841b1d058841 (patch)
tree7879dd9ad29c69548fa7559fc5ba319411826a87 /chrome/browser/views
parent02a791689967ea7779376b41dc4515aed1434c60 (diff)
downloadchromium_src-2b9c46d971042edef955d1ef615f841b1d058841.zip
chromium_src-2b9c46d971042edef955d1ef615f841b1d058841.tar.gz
chromium_src-2b9c46d971042edef955d1ef615f841b1d058841.tar.bz2
Add --disable-domui-menu switch
I used label/goto in ToolkitView::RunMenu. It sucks, but probably better because the change is smaller than other approach (for branch). Please let me know if you have better idea. BUG=chromium-os:6497 TEST=none Review URL: http://codereview.chromium.org/4046001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63376 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views')
-rw-r--r--chrome/browser/views/toolbar_view.cc56
-rw-r--r--chrome/browser/views/toolbar_view.h14
2 files changed, 39 insertions, 31 deletions
diff --git a/chrome/browser/views/toolbar_view.cc b/chrome/browser/views/toolbar_view.cc
index f349e08..ded8a63 100644
--- a/chrome/browser/views/toolbar_view.cc
+++ b/chrome/browser/views/toolbar_view.cc
@@ -38,9 +38,8 @@
#include "chrome/browser/chromeos/cros/update_library.h"
#include "chrome/browser/chromeos/dom_ui/wrench_menu_ui.h"
#include "views/controls/menu/menu_2.h"
-#else
-#include "chrome/browser/views/wrench_menu.h"
#endif
+#include "chrome/browser/views/wrench_menu.h"
// The space between items is 4 px in general.
const int ToolbarView::kStandardSpacing = 4;
@@ -121,10 +120,11 @@ void ToolbarView::Init(Profile* profile) {
browser_, BackForwardMenuModel::FORWARD_MENU));
wrench_menu_model_.reset(new WrenchMenuModel(this, browser_));
#if defined(OS_CHROMEOS)
- wrench_menu_.reset(
- chromeos::WrenchMenuUI::CreateMenu2(wrench_menu_model_.get()));
+ if (chromeos::MenuUI::IsEnabled()) {
+ wrench_menu_2_.reset(
+ chromeos::WrenchMenuUI::CreateMenu2(wrench_menu_model_.get()));
+ }
#endif
-
back_ = new views::ButtonDropDown(this, back_menu_model_.get());
back_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN |
views::Event::EF_MIDDLE_BUTTON_DOWN);
@@ -231,18 +231,23 @@ bool ToolbarView::IsAppMenuFocused() {
void ToolbarView::AddMenuListener(views::MenuListener* listener) {
#if defined(OS_CHROMEOS)
- DCHECK(wrench_menu_.get());
- wrench_menu_->AddMenuListener(listener);
-#else
- menu_listeners_.push_back(listener);
+ if (chromeos::MenuUI::IsEnabled()) {
+ DCHECK(wrench_menu_2_.get());
+ wrench_menu_2_->AddMenuListener(listener);
+ return;
+ }
#endif
+ menu_listeners_.push_back(listener);
}
void ToolbarView::RemoveMenuListener(views::MenuListener* listener) {
#if defined(OS_CHROMEOS)
- DCHECK(wrench_menu_.get());
- wrench_menu_->RemoveMenuListener(listener);
-#else
+ if (chromeos::MenuUI::IsEnabled()) {
+ DCHECK(wrench_menu_2_.get());
+ wrench_menu_2_->RemoveMenuListener(listener);
+ return;
+ }
+#endif
for (std::vector<views::MenuListener*>::iterator i(menu_listeners_.begin());
i != menu_listeners_.end(); ++i) {
if (*i == listener) {
@@ -250,7 +255,6 @@ void ToolbarView::RemoveMenuListener(views::MenuListener* listener) {
return;
}
}
-#endif
}
////////////////////////////////////////////////////////////////////////////////
@@ -285,15 +289,19 @@ void ToolbarView::RunMenu(views::View* source, const gfx::Point& /* pt */) {
bool destroyed_flag = false;
destroyed_flag_ = &destroyed_flag;
#if defined(OS_CHROMEOS)
- gfx::Point screen_loc;
- views::View::ConvertPointToScreen(app_menu_, &screen_loc);
- gfx::Rect bounds(screen_loc, app_menu_->size());
- if (base::i18n::IsRTL())
- bounds.set_x(bounds.x() - app_menu_->size().width());
- wrench_menu_->RunMenuAt(gfx::Point(bounds.right(), bounds.bottom()),
- views::Menu2::ALIGN_TOPRIGHT);
-
-#else // for all other views
+ if (chromeos::MenuUI::IsEnabled()) {
+ gfx::Point screen_loc;
+ views::View::ConvertPointToScreen(app_menu_, &screen_loc);
+ gfx::Rect bounds(screen_loc, app_menu_->size());
+ if (base::i18n::IsRTL())
+ bounds.set_x(bounds.x() - app_menu_->size().width());
+ wrench_menu_2_->RunMenuAt(gfx::Point(bounds.right(), bounds.bottom()),
+ views::Menu2::ALIGN_TOPRIGHT);
+ // TODO(oshima): nuke this once we made decision about go or no go
+ // for domui menu.
+ goto cleanup;
+ }
+#endif
wrench_menu_ = new WrenchMenu(browser_);
wrench_menu_->Init(wrench_menu_model_.get());
@@ -301,8 +309,10 @@ void ToolbarView::RunMenu(views::View* source, const gfx::Point& /* pt */) {
menu_listeners_[i]->OnMenuOpened();
wrench_menu_->RunMenu(app_menu_);
-#endif
+#if defined(OS_CHROMEOS)
+cleanup:
+#endif
if (destroyed_flag)
return;
destroyed_flag_ = NULL;
diff --git a/chrome/browser/views/toolbar_view.h b/chrome/browser/views/toolbar_view.h
index 7f50af9..8715dc5 100644
--- a/chrome/browser/views/toolbar_view.h
+++ b/chrome/browser/views/toolbar_view.h
@@ -31,9 +31,8 @@ class Profile;
namespace views {
class Menu2;
} // namespace views
-#else
-class WrenchMenu;
#endif
+class WrenchMenu;
// The Browser Window's toolbar.
class ToolbarView : public AccessiblePaneView,
@@ -200,18 +199,17 @@ class ToolbarView : public AccessiblePaneView,
scoped_ptr<menus::SimpleMenuModel> wrench_menu_model_;
#if defined(OS_CHROMEOS)
- // Wrench menu.
- scoped_ptr<views::Menu2> wrench_menu_;
-
- // MenuLister is managed by Menu2 on chromeos.
+ // Wrench menu using domui menu.
+ // MenuLister is managed by Menu2.
+ scoped_ptr<views::Menu2> wrench_menu_2_;
+#endif
-#else
// Wrench menu.
scoped_refptr<WrenchMenu> wrench_menu_;
// Vector of listeners to receive callbacks when the menu opens.
std::vector<views::MenuListener*> menu_listeners_;
-#endif
+
// The animation that makes the update reminder pulse.
scoped_ptr<SlideAnimation> update_reminder_animation_;