| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |