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

Unified Diff: chrome/browser/ui/gtk/location_bar_view_gtk.cc

Issue 10736028: Refactor browser window zoom handling and enable zoom icon on all platforms. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/gtk/location_bar_view_gtk.cc
diff --git a/chrome/browser/ui/gtk/location_bar_view_gtk.cc b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
index 601a276ad1a97dc880c4ad58057f8978a8eb544c..c98b4f9ce7406a73c62826096d5f0b9222fe66f1 100644
--- a/chrome/browser/ui/gtk/location_bar_view_gtk.cc
+++ b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
@@ -1419,7 +1419,7 @@ gboolean LocationBarViewGtk::OnChromeToMobileButtonPress(
return FALSE;
}
-void LocationBarViewGtk::ShowZoomBubble(int zoom_percent) {
+void LocationBarViewGtk::ShowZoomBubble() {
if (!zoom_.get() || toolbar_model_->input_in_progress())
return;
@@ -1439,15 +1439,6 @@ void LocationBarViewGtk::ShowChromeToMobileBubble() {
ChromeToMobileBubbleGtk::Show(GTK_IMAGE(chrome_to_mobile_image_), browser_);
}
-void LocationBarViewGtk::SetZoomIconTooltipPercent(int zoom_percent) {
- UpdateZoomIcon();
-}
-
-void LocationBarViewGtk::SetZoomIconState(
- ZoomController::ZoomIconState zoom_icon_state) {
- UpdateZoomIcon();
-}
-
void LocationBarViewGtk::SetStarred(bool starred) {
if (starred == starred_)
return;
@@ -1456,29 +1447,36 @@ void LocationBarViewGtk::SetStarred(bool starred) {
UpdateStarIcon();
}
+void LocationBarViewGtk::ZoomChangedForActiveTab(bool can_show_bubble) {
+ UpdateZoomIcon();
+
+ // TODO(dbeam): don't show bubble if the wrench menu is showing.
+ if (can_show_bubble && gtk_widget_get_visible(zoom_.get()))
+ ShowZoomBubble();
+}
+
void LocationBarViewGtk::UpdateZoomIcon() {
- if (!zoom_.get() || !GetWebContents())
+ TabContents* tab_contents = GetTabContents();
+ if (!zoom_.get() || !tab_contents)
return;
- const ZoomController* zc = TabContents::FromWebContents(
- GetWebContents())->zoom_controller();
-
- if (toolbar_model_->input_in_progress() ||
- zc->zoom_icon_state() == ZoomController::NONE) {
+ ZoomController* zoom_controller = tab_contents->zoom_controller();
+ if (!zoom_controller || zoom_controller->IsAtDefaultZoom() ||
+ toolbar_model_->input_in_progress()) {
gtk_widget_hide(zoom_.get());
ZoomBubbleGtk::Close();
return;
}
- gtk_widget_show(zoom_.get());
- int zoom_resource = zc->zoom_icon_state() == ZoomController::ZOOM_PLUS_ICON ?
- IDR_ZOOM_PLUS : IDR_ZOOM_MINUS;
+ const int zoom_resource = zoom_controller->GetResourceForZoomLevel();
gtk_image_set_from_pixbuf(GTK_IMAGE(zoom_image_),
theme_service_->GetImageNamed(zoom_resource)->ToGdkPixbuf());
- string16 tooltip = l10n_util::GetStringFUTF16Int(IDS_TOOLTIP_ZOOM,
- zc->zoom_percent());
+ string16 tooltip = l10n_util::GetStringFUTF16Int(
+ IDS_TOOLTIP_ZOOM, zoom_controller->zoom_percent());
gtk_widget_set_tooltip_text(zoom_.get(), UTF16ToUTF8(tooltip).c_str());
+
+ gtk_widget_show(zoom_.get());
}
void LocationBarViewGtk::UpdateStarIcon() {

Powered by Google App Engine
This is Rietveld 408576698