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

Side by Side Diff: chrome/browser/ui/gtk/tabs/tab_gtk.h

Issue 6933037: Multi-tab selection for Linux. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing context menu commands Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_UI_GTK_TABS_TAB_GTK_H_ 5 #ifndef CHROME_BROWSER_UI_GTK_TABS_TAB_GTK_H_
6 #define CHROME_BROWSER_UI_GTK_TABS_TAB_GTK_H_ 6 #define CHROME_BROWSER_UI_GTK_TABS_TAB_GTK_H_
7 #pragma once 7 #pragma once
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 10 matching lines...) Expand all
21 } 21 }
22 22
23 class TabGtk : public TabRendererGtk, 23 class TabGtk : public TabRendererGtk,
24 public MessageLoopForUI::Observer { 24 public MessageLoopForUI::Observer {
25 public: 25 public:
26 // An interface implemented by an object that can help this Tab complete 26 // An interface implemented by an object that can help this Tab complete
27 // various actions. The index parameter is the index of this Tab in the 27 // various actions. The index parameter is the index of this Tab in the
28 // TabRenderer::Model. 28 // TabRenderer::Model.
29 class TabDelegate { 29 class TabDelegate {
30 public: 30 public:
31 // Returns true if the specified Tab is active.
32 virtual bool IsTabActive(const TabGtk* tab) const = 0;
33
31 // Returns true if the specified Tab is selected. 34 // Returns true if the specified Tab is selected.
32 virtual bool IsTabSelected(const TabGtk* tab) const = 0; 35 virtual bool IsTabSelected(const TabGtk* tab) const = 0;
33 36
34 // Returns true if the specified Tab is pinned. 37 // Returns true if the specified Tab is pinned.
35 virtual bool IsTabPinned(const TabGtk* tab) const = 0; 38 virtual bool IsTabPinned(const TabGtk* tab) const = 0;
36 39
37 // Returns true if the specified Tab is detached. 40 // Returns true if the specified Tab is detached.
38 virtual bool IsTabDetached(const TabGtk* tab) const = 0; 41 virtual bool IsTabDetached(const TabGtk* tab) const = 0;
39 42
40 // Selects the specified Tab. 43 // Activate the specified Tab.
41 virtual void SelectTab(TabGtk* tab) = 0; 44 virtual void ActivateTab(TabGtk* tab) = 0;
45
46 // Toggle selection of the specified Tab.
47 virtual void ToggleTabSelection(TabGtk* tab) = 0;
48
49 // Extends selection from the anchor to the specified Tab.
50 virtual void ExtendTabSelection(TabGtk* tab) = 0;
42 51
43 // Closes the specified Tab. 52 // Closes the specified Tab.
44 virtual void CloseTab(TabGtk* tab) = 0; 53 virtual void CloseTab(TabGtk* tab) = 0;
45 54
46 // Returns true if the specified command is enabled for the specified Tab. 55 // Returns true if the specified command is enabled for the specified Tab.
47 virtual bool IsCommandEnabledForTab( 56 virtual bool IsCommandEnabledForTab(
48 TabStripModel::ContextMenuCommand command_id, 57 TabStripModel::ContextMenuCommand command_id,
49 const TabGtk* tab) const = 0; 58 const TabGtk* tab) const = 0;
50 59
51 // Executes the specified command for the specified Tab. 60 // Executes the specified command for the specified Tab.
(...skipping 21 matching lines...) Expand all
73 82
74 // Returns true if the associated TabStrip's delegate supports tab moving or 83 // Returns true if the associated TabStrip's delegate supports tab moving or
75 // detaching. Used by the Frame to determine if dragging on the Tab 84 // detaching. Used by the Frame to determine if dragging on the Tab
76 // itself should move the window in cases where there's only one 85 // itself should move the window in cases where there's only one
77 // non drag-able Tab. 86 // non drag-able Tab.
78 virtual bool HasAvailableDragActions() const = 0; 87 virtual bool HasAvailableDragActions() const = 0;
79 88
80 // Returns the theme provider for icons and colors. 89 // Returns the theme provider for icons and colors.
81 virtual ui::ThemeProvider* GetThemeProvider() = 0; 90 virtual ui::ThemeProvider* GetThemeProvider() = 0;
82 91
92 virtual TabStripModel* model() const = 0;
93 virtual int GetIndexOfTab(const TabGtk* tab) const = 0;
94
83 protected: 95 protected:
84 virtual ~TabDelegate() {} 96 virtual ~TabDelegate() {}
85 }; 97 };
86 98
87 explicit TabGtk(TabDelegate* delegate); 99 explicit TabGtk(TabDelegate* delegate);
88 virtual ~TabGtk(); 100 virtual ~TabGtk();
89 101
90 // Access the delegate. 102 // Access the delegate.
91 TabDelegate* delegate() const { return delegate_; } 103 TabDelegate* delegate() const { return delegate_; }
92 104
93 GtkWidget* widget() const { return event_box_; } 105 GtkWidget* widget() const { return event_box_; }
94 106
95 // Used to set/check whether this Tab is being animated closed. 107 // Used to set/check whether this Tab is being animated closed.
96 void set_closing(bool closing) { closing_ = closing; } 108 void set_closing(bool closing) { closing_ = closing; }
97 bool closing() const { return closing_; } 109 bool closing() const { return closing_; }
98 110
99 // Used to set/check whether this Tab is being dragged. 111 // Used to set/check whether this Tab is being dragged.
100 void set_dragging(bool dragging) { dragging_ = dragging; } 112 void set_dragging(bool dragging) { dragging_ = dragging; }
101 bool dragging() const { return dragging_; } 113 bool dragging() const { return dragging_; }
102 114
103 // TabRendererGtk overrides: 115 // TabRendererGtk overrides:
116 virtual bool IsActive() const;
104 virtual bool IsSelected() const; 117 virtual bool IsSelected() const;
105 virtual bool IsVisible() const; 118 virtual bool IsVisible() const;
106 virtual void SetVisible(bool visible) const; 119 virtual void SetVisible(bool visible) const;
107 virtual void CloseButtonClicked(); 120 virtual void CloseButtonClicked();
108 virtual void UpdateData(TabContents* contents, bool app, bool loading_only); 121 virtual void UpdateData(TabContents* contents, bool app, bool loading_only);
109 virtual void SetBounds(const gfx::Rect& bounds); 122 virtual void SetBounds(const gfx::Rect& bounds);
110 123
111 private: 124 private:
112 class ContextMenuController; 125 class ContextMenuController;
113 class TabGtkObserverHelper; 126 class TabGtkObserverHelper;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 // mouse release event on the the dragged widget, otherwise, we don't know 216 // mouse release event on the the dragged widget, otherwise, we don't know
204 // when the drag has ended when the user presses space or enter. We queue 217 // when the drag has ended when the user presses space or enter. We queue
205 // a task to end the drag and only run it if GTK+ didn't send us the 218 // a task to end the drag and only run it if GTK+ didn't send us the
206 // drag-failed event. 219 // drag-failed event.
207 ScopedRunnableMethodFactory<TabGtk> drag_end_factory_; 220 ScopedRunnableMethodFactory<TabGtk> drag_end_factory_;
208 221
209 DISALLOW_COPY_AND_ASSIGN(TabGtk); 222 DISALLOW_COPY_AND_ASSIGN(TabGtk);
210 }; 223 };
211 224
212 #endif // CHROME_BROWSER_UI_GTK_TABS_TAB_GTK_H_ 225 #endif // CHROME_BROWSER_UI_GTK_TABS_TAB_GTK_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/gtk/tabs/tab_gtk.cc » ('j') | chrome/browser/ui/gtk/tabs/tab_gtk.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698