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

Unified Diff: chrome/browser/gtk/browser_toolbar_view_gtk.h

Issue 20245: Port the Menu class to GTK. (Closed)
Patch Set: Fixes for evanm Created 11 years, 10 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/gtk/browser_toolbar_view_gtk.h
diff --git a/chrome/browser/gtk/browser_toolbar_view_gtk.h b/chrome/browser/gtk/browser_toolbar_view_gtk.h
index 36b9464fc5163013aca2135e789b4234ec2ffb81..48d278d8cc68145cc394969c815e5ebe31778daa 100644
--- a/chrome/browser/gtk/browser_toolbar_view_gtk.h
+++ b/chrome/browser/gtk/browser_toolbar_view_gtk.h
@@ -2,21 +2,25 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_BROWSER_TOOLBAR_VIEW_GTK_H_
-#define CHROME_BROWSER_BROWSER_TOOLBAR_VIEW_GTK_H_
+#ifndef CHROME_BROWSER_GTK_BROWSER_TOOLBAR_VIEW_GTK_H_
+#define CHROME_BROWSER_GTK_BROWSER_TOOLBAR_VIEW_GTK_H_
+#include <gtk/gtk.h>
+#include <string>
+
+#include "base/scoped_ptr.h"
#include "chrome/browser/command_updater.h"
+#include "chrome/browser/gtk/menu_gtk.h"
#include "chrome/common/pref_member.h"
-#include <gtk/gtk.h>
-
class Browser;
class Profile;
class ToolbarModel;
// View class that displays the GTK version of the toolbar and routes gtk
// events back to the Browser.
-class BrowserToolbarGtk : public CommandUpdater::CommandObserver {
+class BrowserToolbarGtk : public CommandUpdater::CommandObserver,
+ public MenuGtk::Delegate {
public:
explicit BrowserToolbarGtk(Browser* browser);
virtual ~BrowserToolbarGtk();
@@ -30,6 +34,11 @@ class BrowserToolbarGtk : public CommandUpdater::CommandObserver {
// Overridden from CommandUpdater::CommandObserver:
virtual void EnabledStateChangedForCommand(int id, bool enabled);
+ // Overridden from MenuGtk::Delegate:
+ virtual bool IsCommandEnabled(int command_id) const;
+ virtual bool IsItemChecked(int id) const;
+ virtual void ExecuteCommand(int command_id);
+
void SetProfile(Profile* profile);
private:
@@ -37,11 +46,22 @@ class BrowserToolbarGtk : public CommandUpdater::CommandObserver {
// Builds a toolbar button with all the properties set.
CustomDrawButton* BuildToolbarButton(const std::string& filename,
- const std::wstring& localized_tooltip);
+ const std::wstring& localized_tooltip,
+ bool menu_button);
// Gtk callback for the "clicked" signal.
- static void ButtonClickCallback(GtkWidget* button,
- BrowserToolbarGtk* toolbar);
+ static void OnButtonClick(GtkWidget* button, BrowserToolbarGtk* toolbar);
+
+ // Gtk callback to intercept mouse clicks to the menu buttons.
Evan Martin 2009/02/17 19:08:24 i guess "intercept" is sort of the wrong word -- i
+ static gint OnMenuButtonPressEvent(GtkWidget* button,
+ GdkEvent *event,
Evan Martin 2009/02/17 19:08:24 tabbing weird here
+ BrowserToolbarGtk* toolbar);
+
+ // Displays the page menu.
+ void RunPageMenu(GdkEvent* button_press_event);
+
+ // Displays the app menu.
+ void RunAppMenu(GdkEvent* button_press_event);
// Gtk widgets. The toolbar is an hbox with each of the other pieces of the
// toolbar placed side by side.
@@ -54,11 +74,14 @@ class BrowserToolbarGtk : public CommandUpdater::CommandObserver {
scoped_ptr<CustomDrawButton> back_, forward_;
scoped_ptr<CustomDrawButton> reload_, home_;
scoped_ptr<CustomDrawButton> star_, go_;
- scoped_ptr<CustomDrawButton> page_menu_, app_menu_;
+ scoped_ptr<CustomDrawButton> page_menu_button_, app_menu_button_;
// The model that contains the security level, text, icon to display...
ToolbarModel* model_;
+ scoped_ptr<MenuGtk> page_menu_;
+ scoped_ptr<MenuGtk> app_menu_;
+
// TODO(port): Port BackForwardMenuModel
// scoped_ptr<BackForwardMenuModel> back_menu_model_;
// scoped_ptr<BackForwardMenuModel> forward_menu_model_;
@@ -70,4 +93,4 @@ class BrowserToolbarGtk : public CommandUpdater::CommandObserver {
BooleanPrefMember show_home_button_;
};
-#endif
+#endif // CHROME_BROWSER_GTK_BROWSER_TOOLBAR_VIEW_GTK_H_

Powered by Google App Engine
This is Rietveld 408576698