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

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: . 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
« no previous file with comments | « chrome/browser/ui/gtk/location_bar_view_gtk.h ('k') | chrome/browser/ui/panels/panel_browser_window.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 3c5d6ef1737bbf80b94bde1e17974ead94d115ce..456f5770fffa5732dffadadd1da34251ec4d1e15 100644
--- a/chrome/browser/ui/gtk/location_bar_view_gtk.cc
+++ b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
@@ -1393,7 +1393,7 @@ gboolean LocationBarViewGtk::OnZoomButtonPress(GtkWidget* widget,
if (event->button == 1 && GetWebContents()) {
// If the zoom icon is clicked, show the zoom bubble and keep it open until
// it loses focus.
- ZoomBubbleGtk::Show(zoom_.get(), GetTabContents(), false);
Evan Stade 2012/08/15 22:01:34 false is important
Dan Beam 2012/08/15 23:13:38 Done. (reverted this change)
+ ShowZoomBubble();
return TRUE;
}
return FALSE;
@@ -1418,7 +1418,7 @@ gboolean LocationBarViewGtk::OnChromeToMobileButtonPress(
return FALSE;
}
-void LocationBarViewGtk::ShowZoomBubble(int zoom_percent) {
+void LocationBarViewGtk::ShowZoomBubble() {
if (!zoom_.get() || toolbar_model_->input_in_progress())
return;
@@ -1438,15 +1438,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;
@@ -1455,29 +1446,36 @@ void LocationBarViewGtk::SetStarred(bool starred) {
UpdateStarIcon();
}
+// TODO(dbeam): make a generic helper that updates both the zoom icon and shows
+// the zoom bubble, if appropriate, for a zoom change.
+void LocationBarViewGtk::ZoomChangedForActiveTab(bool can_show_bubble) {
+ UpdateZoomIcon();
+
+ if (can_show_bubble)
+ 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() {
« no previous file with comments | « chrome/browser/ui/gtk/location_bar_view_gtk.h ('k') | chrome/browser/ui/panels/panel_browser_window.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698