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

Unified Diff: chrome/browser/gtk/tabs/tab_strip_gtk.h

Issue 119020: Add a context menu to the tab strip. It appears when you click in the (Closed)
Patch Set: comment cleanup Created 11 years, 7 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
« no previous file with comments | « no previous file | chrome/browser/gtk/tabs/tab_strip_gtk.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/gtk/tabs/tab_strip_gtk.h
diff --git a/chrome/browser/gtk/tabs/tab_strip_gtk.h b/chrome/browser/gtk/tabs/tab_strip_gtk.h
index 0516c5af381a2e9d3588b9a69690e1a1651c3dba..cf0fff32616c07dd4dd8cf6d4a283d2875d867ce 100644
--- a/chrome/browser/gtk/tabs/tab_strip_gtk.h
+++ b/chrome/browser/gtk/tabs/tab_strip_gtk.h
@@ -10,6 +10,7 @@
#include "base/basictypes.h"
#include "base/gfx/rect.h"
+#include "chrome/browser/gtk/menu_gtk.h"
#include "chrome/browser/gtk/tabs/tab_gtk.h"
#include "chrome/browser/tabs/tab_strip_model.h"
#include "chrome/common/owned_widget_gtk.h"
@@ -18,7 +19,8 @@ class CustomDrawButton;
class DraggedTabControllerGtk;
class TabStripGtk : public TabStripModelObserver,
- public TabGtk::TabDelegate {
+ public TabGtk::TabDelegate,
+ public MenuGtk::Delegate {
public:
class TabAnimation;
@@ -123,6 +125,10 @@ class TabStripGtk : public TabStripModelObserver,
static void OnSizeAllocate(GtkWidget* widget, GtkAllocation* allocation,
TabStripGtk* tabstrip);
+ // Event handler for context menu popups.
+ static gboolean OnButtonPress(GtkWidget* widget, GdkEventButton* event,
+ TabStripGtk* tabstrip);
+
// Handles the clicked signal from the new tab button.
static void OnNewTabClicked(GtkWidget* widget, TabStripGtk* tabstrip);
@@ -179,6 +185,16 @@ class TabStripGtk : public TabStripModelObserver,
// during animations, so we can't use current_unselected_width_.
void LayoutNewTabButton(double last_tab_right, double unselected_width);
+ // -- Context Menu -----------------------------------------------------------
+
+ // On Windows, right clicking in the tab strip background brings up the
+ // system menu. There's no such thing on linux, so we just show the menu
+ // items we add to the menu.
+ void ShowContextMenu();
+ // MenuGtk::Delegate implementation:
+ virtual bool IsCommandEnabled(int command_id) const;
+ virtual void ExecuteCommand(int command_id);
+
// -- Animations -------------------------------------------------------------
// A generic Layout method for various classes of TabStrip animations,
@@ -247,6 +263,9 @@ class TabStripGtk : public TabStripModelObserver,
// the drag session.
scoped_ptr<DraggedTabControllerGtk> drag_controller_;
+ // The context menu.
+ scoped_ptr<MenuGtk> context_menu_;
+
DISALLOW_COPY_AND_ASSIGN(TabStripGtk);
};
« no previous file with comments | « no previous file | chrome/browser/gtk/tabs/tab_strip_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698