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

Side by Side Diff: chrome/browser/ui/gtk/browser_toolbar_gtk.cc

Issue 23851016: Convert zoom callbacks to use CallbackRegistry (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Pure merge Created 7 years, 2 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "chrome/browser/ui/gtk/browser_toolbar_gtk.h" 5 #include "chrome/browser/ui/gtk/browser_toolbar_gtk.h"
6 6
7 #include <gdk/gdkkeysyms.h> 7 #include <gdk/gdkkeysyms.h>
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 #include <X11/XF86keysym.h> 9 #include <X11/XF86keysym.h>
10 10
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 93
94 } // namespace 94 } // namespace
95 95
96 // BrowserToolbarGtk, public --------------------------------------------------- 96 // BrowserToolbarGtk, public ---------------------------------------------------
97 97
98 BrowserToolbarGtk::BrowserToolbarGtk(Browser* browser, BrowserWindowGtk* window) 98 BrowserToolbarGtk::BrowserToolbarGtk(Browser* browser, BrowserWindowGtk* window)
99 : toolbar_(NULL), 99 : toolbar_(NULL),
100 location_bar_(new LocationBarViewGtk(browser)), 100 location_bar_(new LocationBarViewGtk(browser)),
101 is_wrench_menu_model_valid_(true), 101 is_wrench_menu_model_valid_(true),
102 browser_(browser), 102 browser_(browser),
103 window_(window), 103 window_(window) {
104 zoom_callback_(base::Bind(&BrowserToolbarGtk::OnZoomLevelChanged,
105 base::Unretained(this))) {
106 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_, false)); 104 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_, false));
107 105
108 chrome::AddCommandObserver(browser_, IDC_BACK, this); 106 chrome::AddCommandObserver(browser_, IDC_BACK, this);
109 chrome::AddCommandObserver(browser_, IDC_FORWARD, this); 107 chrome::AddCommandObserver(browser_, IDC_FORWARD, this);
110 chrome::AddCommandObserver(browser_, IDC_HOME, this); 108 chrome::AddCommandObserver(browser_, IDC_HOME, this);
111 chrome::AddCommandObserver(browser_, IDC_BOOKMARK_PAGE, this); 109 chrome::AddCommandObserver(browser_, IDC_BOOKMARK_PAGE, this);
112 110
113 registrar_.Add(this, 111 registrar_.Add(this,
114 chrome::NOTIFICATION_UPGRADE_RECOMMENDED, 112 chrome::NOTIFICATION_UPGRADE_RECOMMENDED,
115 content::NotificationService::AllSources()); 113 content::NotificationService::AllSources());
116 registrar_.Add(this, 114 registrar_.Add(this,
117 chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED, 115 chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED,
118 content::Source<Profile>(browser_->profile())); 116 content::Source<Profile>(browser_->profile()));
119 } 117 }
120 118
121 BrowserToolbarGtk::~BrowserToolbarGtk() { 119 BrowserToolbarGtk::~BrowserToolbarGtk() {
122 chrome::RemoveCommandObserver(browser_, IDC_BACK, this); 120 chrome::RemoveCommandObserver(browser_, IDC_BACK, this);
123 chrome::RemoveCommandObserver(browser_, IDC_FORWARD, this); 121 chrome::RemoveCommandObserver(browser_, IDC_FORWARD, this);
124 chrome::RemoveCommandObserver(browser_, IDC_HOME, this); 122 chrome::RemoveCommandObserver(browser_, IDC_HOME, this);
125 chrome::RemoveCommandObserver(browser_, IDC_BOOKMARK_PAGE, this); 123 chrome::RemoveCommandObserver(browser_, IDC_BOOKMARK_PAGE, this);
126 124
127 offscreen_entry_.Destroy(); 125 offscreen_entry_.Destroy();
128 126
129 wrench_menu_.reset(); 127 wrench_menu_.reset();
130
131 HostZoomMap::GetForBrowserContext(
132 browser()->profile())->RemoveZoomLevelChangedCallback(zoom_callback_);
133 } 128 }
134 129
135 void BrowserToolbarGtk::Init(GtkWindow* top_level_window) { 130 void BrowserToolbarGtk::Init(GtkWindow* top_level_window) {
136 Profile* profile = browser_->profile(); 131 Profile* profile = browser_->profile();
137 theme_service_ = GtkThemeService::GetFrom(profile); 132 theme_service_ = GtkThemeService::GetFrom(profile);
138 registrar_.Add(this, 133 registrar_.Add(this,
139 chrome::NOTIFICATION_BROWSER_THEME_CHANGED, 134 chrome::NOTIFICATION_BROWSER_THEME_CHANGED,
140 content::Source<ThemeService>(theme_service_)); 135 content::Source<ThemeService>(theme_service_));
141 136
142 offscreen_entry_.Own(gtk_entry_new()); 137 offscreen_entry_.Own(gtk_entry_new());
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 GtkWidget* wrench_box = gtk_alignment_new(0, 0, 1, 1); 234 GtkWidget* wrench_box = gtk_alignment_new(0, 0, 1, 1);
240 g_signal_connect_after(wrench_box, "expose-event", 235 g_signal_connect_after(wrench_box, "expose-event",
241 G_CALLBACK(OnWrenchMenuButtonExposeThunk), this); 236 G_CALLBACK(OnWrenchMenuButtonExposeThunk), this);
242 gtk_container_add(GTK_CONTAINER(wrench_box), wrench_button); 237 gtk_container_add(GTK_CONTAINER(wrench_box), wrench_button);
243 gtk_box_pack_start(GTK_BOX(toolbar_), wrench_box, FALSE, FALSE, 4); 238 gtk_box_pack_start(GTK_BOX(toolbar_), wrench_box, FALSE, FALSE, 4);
244 239
245 wrench_menu_.reset(new MenuGtk(this, wrench_menu_model_.get())); 240 wrench_menu_.reset(new MenuGtk(this, wrench_menu_model_.get()));
246 // The bookmark menu model needs to be able to force the wrench menu to close. 241 // The bookmark menu model needs to be able to force the wrench menu to close.
247 wrench_menu_model_->bookmark_sub_menu_model()->SetMenuGtk(wrench_menu_.get()); 242 wrench_menu_model_->bookmark_sub_menu_model()->SetMenuGtk(wrench_menu_.get());
248 243
249 HostZoomMap::GetForBrowserContext( 244 zoom_subscription_ = HostZoomMap::GetForBrowserContext(
250 browser()->profile())->AddZoomLevelChangedCallback(zoom_callback_); 245 browser()->profile())->AddZoomLevelChangedCallback(
246 base::Bind(&BrowserToolbarGtk::OnZoomLevelChanged,
247 base::Unretained(this)));
251 248
252 if (ShouldOnlyShowLocation()) { 249 if (ShouldOnlyShowLocation()) {
253 gtk_widget_show(event_box_); 250 gtk_widget_show(event_box_);
254 gtk_widget_show(alignment_); 251 gtk_widget_show(alignment_);
255 gtk_widget_show(toolbar_); 252 gtk_widget_show(toolbar_);
256 gtk_widget_show_all(location_hbox_); 253 gtk_widget_show_all(location_hbox_);
257 gtk_widget_hide(reload_->widget()); 254 gtk_widget_hide(reload_->widget());
258 } else { 255 } else {
259 gtk_widget_show_all(event_box_); 256 gtk_widget_show_all(event_box_);
260 if (actions_toolbar_->button_count() == 0) 257 if (actions_toolbar_->button_count() == 0)
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 allocation.x + x_offset, 713 allocation.x + x_offset,
717 allocation.y + y_offset); 714 allocation.y + y_offset);
718 715
719 return FALSE; 716 return FALSE;
720 } 717 }
721 718
722 void BrowserToolbarGtk::UpdateShowHomeButton() { 719 void BrowserToolbarGtk::UpdateShowHomeButton() {
723 bool visible = show_home_button_.GetValue() && !ShouldOnlyShowLocation(); 720 bool visible = show_home_button_.GetValue() && !ShouldOnlyShowLocation();
724 gtk_widget_set_visible(home_->widget(), visible); 721 gtk_widget_set_visible(home_->widget(), visible);
725 } 722 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/browser_toolbar_gtk.h ('k') | chrome/browser/ui/gtk/location_bar_view_gtk_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698