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

Unified Diff: chrome/browser/ui/gtk/action_box_button_gtk.cc

Issue 10889052: Display action box menu on Linux/gtk. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Switched to a base::Closure Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/gtk/action_box_button_gtk.cc
diff --git a/chrome/browser/ui/gtk/action_box_button_gtk.cc b/chrome/browser/ui/gtk/action_box_button_gtk.cc
index d7e68697473fae2ec3128c72ec07939d146716d8..4732fe5ae40a0c476117f323117e4e04c4f574c6 100644
--- a/chrome/browser/ui/gtk/action_box_button_gtk.cc
+++ b/chrome/browser/ui/gtk/action_box_button_gtk.cc
@@ -6,9 +6,11 @@
#include <gtk/gtk.h>
+#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/gtk/custom_button.h"
#include "chrome/browser/ui/gtk/view_id_util.h"
+#include "chrome/browser/ui/toolbar/action_box_menu_model.h"
#include "chrome/browser/ui/view_ids.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -23,8 +25,8 @@ ActionBoxButtonGtk::ActionBoxButtonGtk(Browser* browser) : browser_(browser) {
gtk_widget_set_tooltip_text(widget(),
l10n_util::GetStringUTF8(IDS_TOOLTIP_ACTION_BOX_BUTTON).c_str());
- g_signal_connect(widget(), "clicked",
- G_CALLBACK(OnClickThunk), this);
+ g_signal_connect(widget(), "button-press-event",
+ G_CALLBACK(OnButtonPressThunk), this);
ViewIDUtil::SetID(widget(), VIEW_ID_ACTION_BOX_BUTTON);
}
@@ -32,11 +34,24 @@ ActionBoxButtonGtk::ActionBoxButtonGtk(Browser* browser) : browser_(browser) {
ActionBoxButtonGtk::~ActionBoxButtonGtk() {
}
+bool ActionBoxButtonGtk::AlwaysShowIconForCmd(int command_id) const {
+ return true;
+}
+
GtkWidget* ActionBoxButtonGtk::widget() {
return button_->widget();
}
-void ActionBoxButtonGtk::OnClick(GtkWidget* widget) {
- // TODO(mpcomplete): show the menu. See back_forward_button_gtk for menu
- // stuff.
+gboolean ActionBoxButtonGtk::OnButtonPress(GtkWidget* widget,
+ GdkEventButton* event) {
+ if (event->button != 1)
+ return FALSE;
+
+ ExtensionService* extension_service = extensions::ExtensionSystem::Get(
+ browser_->profile())->extension_service();
+ model_.reset(new ActionBoxMenuModel(browser_, extension_service));
+ menu_.reset(new MenuGtk(this, model_.get()));
+ menu_->PopupForWidget(button_->widget(), event->button, event->time);
+
+ return FALSE;
}

Powered by Google App Engine
This is Rietveld 408576698