OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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_GTK_BROWSER_TOOLBAR_GTK_H_ | 5 #ifndef CHROME_BROWSER_GTK_BROWSER_TOOLBAR_GTK_H_ |
6 #define CHROME_BROWSER_GTK_BROWSER_TOOLBAR_GTK_H_ | 6 #define CHROME_BROWSER_GTK_BROWSER_TOOLBAR_GTK_H_ |
7 | 7 |
8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
9 #include <string> | 9 #include <string> |
10 | 10 |
11 #include "base/scoped_ptr.h" | 11 #include "base/scoped_ptr.h" |
12 #include "base/task.h" | 12 #include "base/task.h" |
13 #include "chrome/browser/command_updater.h" | 13 #include "chrome/browser/command_updater.h" |
14 #include "chrome/browser/gtk/menu_gtk.h" | 14 #include "chrome/browser/gtk/menu_gtk.h" |
15 #include "chrome/common/pref_member.h" | 15 #include "chrome/common/pref_member.h" |
16 | 16 |
17 class BackForwardMenuModelGtk; | 17 class BackForwardMenuModelGtk; |
18 class Browser; | 18 class Browser; |
19 class CustomContainerButton; | 19 class CustomContainerButton; |
20 class CustomDrawButton; | 20 class CustomDrawButton; |
21 class LocationBar; | 21 class LocationBar; |
| 22 class LocationBarViewGtk; |
22 class Profile; | 23 class Profile; |
23 class TabContents; | 24 class TabContents; |
24 class ToolbarModel; | 25 class ToolbarModel; |
25 | 26 |
26 // View class that displays the GTK version of the toolbar and routes gtk | 27 // View class that displays the GTK version of the toolbar and routes gtk |
27 // events back to the Browser. | 28 // events back to the Browser. |
28 class BrowserToolbarGtk : public CommandUpdater::CommandObserver, | 29 class BrowserToolbarGtk : public CommandUpdater::CommandObserver, |
29 public MenuGtk::Delegate, | 30 public MenuGtk::Delegate, |
30 public NotificationObserver { | 31 public NotificationObserver { |
31 public: | 32 public: |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 int icon_id, | 77 int icon_id, |
77 const std::wstring& localized_tooltip); | 78 const std::wstring& localized_tooltip); |
78 | 79 |
79 // Adds a keyboard accelerator which trigers a button. (i.e., Ctrl+R is now | 80 // Adds a keyboard accelerator which trigers a button. (i.e., Ctrl+R is now |
80 // equivalent to a reload click). | 81 // equivalent to a reload click). |
81 void AddAcceleratorToButton( | 82 void AddAcceleratorToButton( |
82 const scoped_ptr<CustomDrawButton>& button, | 83 const scoped_ptr<CustomDrawButton>& button, |
83 unsigned int accelerator, | 84 unsigned int accelerator, |
84 unsigned int accelerator_mod); | 85 unsigned int accelerator_mod); |
85 | 86 |
86 // Gtk callback for the "activate" signal on the |entry_| widget. Responds to | |
87 // enter. | |
88 static void OnEntryActivate(GtkEntry *entry, BrowserToolbarGtk* toolbar); | |
89 | |
90 // Gtk callback for the "focus" signal on the |entry_| widget. | |
91 static gboolean OnEntryFocus(GtkWidget* widget, | |
92 GtkDirectionType direction, | |
93 BrowserToolbarGtk* host); | |
94 | |
95 // Gtk callback for the "focus-in" signal on the |entry_| widget. | |
96 static gboolean OnEntryFocusIn(GtkWidget* widget, | |
97 GdkEventFocus* focus, | |
98 BrowserToolbarGtk* host); | |
99 | |
100 // Gtk callback for the "focus-out" signal on the |entry_| widget. | |
101 static gboolean OnEntryFocusOut(GtkWidget* widget, | |
102 GdkEventFocus* focus, | |
103 BrowserToolbarGtk* host); | |
104 | |
105 // Gtk callback for the "clicked" signal. | 87 // Gtk callback for the "clicked" signal. |
106 static void OnButtonClick(GtkWidget* button, BrowserToolbarGtk* toolbar); | 88 static void OnButtonClick(GtkWidget* button, BrowserToolbarGtk* toolbar); |
107 | 89 |
108 // Gtk callback to intercept mouse clicks to the menu buttons. | 90 // Gtk callback to intercept mouse clicks to the menu buttons. |
109 static gboolean OnMenuButtonPressEvent(GtkWidget* button, | 91 static gboolean OnMenuButtonPressEvent(GtkWidget* button, |
110 GdkEvent *event, | 92 GdkEvent *event, |
111 BrowserToolbarGtk* toolbar); | 93 BrowserToolbarGtk* toolbar); |
112 | 94 |
113 // Displays the page menu. | 95 // Displays the page menu. |
114 void RunPageMenu(GdkEvent* button_press_event); | 96 void RunPageMenu(GdkEvent* button_press_event); |
115 | 97 |
116 // Displays the app menu. | 98 // Displays the app menu. |
117 void RunAppMenu(GdkEvent* button_press_event); | 99 void RunAppMenu(GdkEvent* button_press_event); |
118 | 100 |
119 // Construct the Home button. | 101 // Construct the Home button. |
120 CustomDrawButton* MakeHomeButton(); | 102 CustomDrawButton* MakeHomeButton(); |
121 | 103 |
122 // Gtk widgets. The toolbar is an hbox with each of the other pieces of the | 104 // Gtk widgets. The toolbar is an hbox with each of the other pieces of the |
123 // toolbar placed side by side. | 105 // toolbar placed side by side. |
124 GtkWidget* toolbar_; | 106 GtkWidget* toolbar_; |
125 | 107 |
126 // Tooltip container for all GTK widgets in this class. | 108 // Tooltip container for all GTK widgets in this class. |
127 GtkTooltips* toolbar_tooltips_; | 109 GtkTooltips* toolbar_tooltips_; |
128 | 110 |
129 // Our temporary URL bar (until we get the omnibox up). | 111 // The location bar view. |
130 GtkWidget* entry_; | 112 scoped_ptr<LocationBarViewGtk> location_bar_; |
131 | 113 |
132 // A pointer to our window's accelerator list. | 114 // A pointer to our window's accelerator list. |
133 GtkAccelGroup* accel_group_; | 115 GtkAccelGroup* accel_group_; |
134 | 116 |
135 // All the buttons in the toolbar. | 117 // All the buttons in the toolbar. |
136 scoped_ptr<CustomDrawButton> back_, forward_; | 118 scoped_ptr<CustomDrawButton> back_, forward_; |
137 scoped_ptr<CustomDrawButton> reload_; | 119 scoped_ptr<CustomDrawButton> reload_; |
138 scoped_ptr<CustomDrawButton> home_; // May be NULL. | 120 scoped_ptr<CustomDrawButton> home_; // May be NULL. |
139 scoped_ptr<CustomDrawButton> star_, go_; | 121 scoped_ptr<CustomDrawButton> star_, go_; |
140 scoped_ptr<CustomContainerButton> page_menu_button_, app_menu_button_; | 122 scoped_ptr<CustomContainerButton> page_menu_button_, app_menu_button_; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 // The back/forward menu gets reset every time it is shown. | 159 // The back/forward menu gets reset every time it is shown. |
178 scoped_ptr<MenuGtk> back_forward_menu_; | 160 scoped_ptr<MenuGtk> back_forward_menu_; |
179 | 161 |
180 scoped_ptr<BackForwardMenuModelGtk> back_menu_model_; | 162 scoped_ptr<BackForwardMenuModelGtk> back_menu_model_; |
181 scoped_ptr<BackForwardMenuModelGtk> forward_menu_model_; | 163 scoped_ptr<BackForwardMenuModelGtk> forward_menu_model_; |
182 | 164 |
183 ScopedRunnableMethodFactory<BrowserToolbarGtk> show_menu_factory_; | 165 ScopedRunnableMethodFactory<BrowserToolbarGtk> show_menu_factory_; |
184 }; | 166 }; |
185 | 167 |
186 #endif // CHROME_BROWSER_GTK_BROWSER_TOOLBAR_GTK_H_ | 168 #endif // CHROME_BROWSER_GTK_BROWSER_TOOLBAR_GTK_H_ |
OLD | NEW |