diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-19 13:57:53 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-19 13:57:53 +0000 |
commit | 73564f932ddbe8fcaa977a0e07bfaec395be4c33 (patch) | |
tree | 00912cee3c983e2221c3d62e630536ff8eb97ba9 /chrome/browser/ui/gtk/browser_toolbar_gtk.cc | |
parent | 5388c32361d1b66670866bcc9199d7c2abcfb9f2 (diff) | |
download | chromium_src-73564f932ddbe8fcaa977a0e07bfaec395be4c33.zip chromium_src-73564f932ddbe8fcaa977a0e07bfaec395be4c33.tar.gz chromium_src-73564f932ddbe8fcaa977a0e07bfaec395be4c33.tar.bz2 |
Remove PrefObserver usages, batch 7.
In this series we converted BrowserToolbarGtk, BrowserWindowGtk and ZoomController to use callback interface API instead of using PrefObserver.
BUG=155525
R=joi@chromium.org,mnissler@chromium.org
TBR=erg@chromium.org
Review URL: https://codereview.chromium.org/11360254
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168519 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/gtk/browser_toolbar_gtk.cc')
-rw-r--r-- | chrome/browser/ui/gtk/browser_toolbar_gtk.cc | 43 |
1 files changed, 19 insertions, 24 deletions
diff --git a/chrome/browser/ui/gtk/browser_toolbar_gtk.cc b/chrome/browser/ui/gtk/browser_toolbar_gtk.cc index a85c95c..edd0ee0 100644 --- a/chrome/browser/ui/gtk/browser_toolbar_gtk.cc +++ b/chrome/browser/ui/gtk/browser_toolbar_gtk.cc @@ -136,10 +136,17 @@ void BrowserToolbarGtk::Init(GtkWindow* top_level_window) { offscreen_entry_.Own(gtk_entry_new()); - show_home_button_.Init(prefs::kShowHomeButton, profile->GetPrefs(), this); - home_page_.Init(prefs::kHomePage, profile->GetPrefs(), this); + base::Closure callback = + base::Bind(&BrowserToolbarGtk::SetUpDragForHomeButton, + base::Unretained(this)); + + show_home_button_.Init(prefs::kShowHomeButton, profile->GetPrefs(), + base::Bind(&BrowserToolbarGtk::UpdateShowHomeButton, + base::Unretained(this))); + home_page_.Init(prefs::kHomePage, profile->GetPrefs(), callback); home_page_is_new_tab_page_.Init(prefs::kHomePageIsNewTabPage, - profile->GetPrefs(), this); + profile->GetPrefs(), + callback); event_box_ = gtk_event_box_new(); // Make the event box transparent so themes can use transparent toolbar @@ -252,7 +259,8 @@ void BrowserToolbarGtk::Init(GtkWindow* top_level_window) { } // Initialize pref-dependent UI state. - NotifyPrefChanged(NULL); + UpdateShowHomeButton(); + SetUpDragForHomeButton(); // Because the above does a recursive show all on all widgets we need to // update the icon visibility to hide them. @@ -425,11 +433,6 @@ void BrowserToolbarGtk::Observe(int type, } } -void BrowserToolbarGtk::OnPreferenceChanged(PrefServiceBase* service, - const std::string& pref_name) { - NotifyPrefChanged(&pref_name); -} - // BrowserToolbarGtk, public --------------------------------------------------- void BrowserToolbarGtk::UpdateWebContents(WebContents* contents, @@ -446,8 +449,8 @@ bool BrowserToolbarGtk::IsWrenchMenuShowing() const { // BrowserToolbarGtk, private -------------------------------------------------- -void BrowserToolbarGtk::SetUpDragForHomeButton(bool enable) { - if (enable) { +void BrowserToolbarGtk::SetUpDragForHomeButton() { + if (!home_page_.IsManaged() && !home_page_is_new_tab_page_.IsManaged()) { gtk_drag_dest_set(home_->widget(), GTK_DEST_DEFAULT_ALL, NULL, 0, GDK_ACTION_COPY); static const int targets[] = { ui::TEXT_PLAIN, ui::TEXT_URI_LIST, -1 }; @@ -654,19 +657,6 @@ void BrowserToolbarGtk::OnDragDataReceived(GtkWidget* widget, home_page_.SetValue(url.spec()); } -void BrowserToolbarGtk::NotifyPrefChanged(const std::string* pref) { - if (!pref || *pref == prefs::kShowHomeButton) { - bool visible = show_home_button_.GetValue() && !ShouldOnlyShowLocation(); - gtk_widget_set_visible(home_->widget(), visible); - } - - if (!pref || - *pref == prefs::kHomePage || - *pref == prefs::kHomePageIsNewTabPage) - SetUpDragForHomeButton(!home_page_.IsManaged() && - !home_page_is_new_tab_page_.IsManaged()); -} - bool BrowserToolbarGtk::ShouldOnlyShowLocation() const { // If we're a popup window, only show the location bar (omnibox). return !browser_->is_type_tabbed(); @@ -709,3 +699,8 @@ gboolean BrowserToolbarGtk::OnWrenchMenuButtonExpose(GtkWidget* sender, return FALSE; } + +void BrowserToolbarGtk::UpdateShowHomeButton() { + bool visible = show_home_button_.GetValue() && !ShouldOnlyShowLocation(); + gtk_widget_set_visible(home_->widget(), visible); +} |