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

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: fix mac Created 8 years, 5 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 3859e58e77db904c69a158ac2105a184a542a282..34d0039439cbc5508d6a7e1320dfc5c989f6a5b4 100644
--- a/chrome/browser/ui/gtk/location_bar_view_gtk.cc
+++ b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
@@ -1230,9 +1230,7 @@ void LocationBarViewGtk::OnEntryBoxSizeAllocate(GtkWidget* sender,
gboolean LocationBarViewGtk::OnZoomButtonPress(GtkWidget* widget,
GdkEventButton* event) {
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);
+ UpdateZoomIcon();
Kyle Horimoto 2012/07/24 03:22:28 OnZoomButtonPress() should display the zoom bubble
Dan Beam 2012/08/15 09:04:59 This works again.
return TRUE;
}
return FALSE;
@@ -1257,13 +1255,6 @@ gboolean LocationBarViewGtk::OnChromeToMobileButtonPress(
return FALSE;
}
-void LocationBarViewGtk::ShowZoomBubble(int zoom_percent) {
- if (!zoom_.get() || toolbar_model_->input_in_progress())
- return;
-
- ZoomBubbleGtk::Show(zoom_.get(), GetTabContents(), true);
-}
-
void LocationBarViewGtk::ShowStarBubble(const GURL& url,
bool newly_bookmarked) {
if (!star_.get())
@@ -1277,15 +1268,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;
@@ -1294,29 +1276,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();
+
+ // TODO(dbeam): show a zoom bubble when appropriate.
+}
+
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;
+ int zoom_percent = zoom_controller->zoom_percent();
+ int zoom_resource = zoom_percent > 100 ? IDR_ZOOM_PLUS : IDR_ZOOM_MINUS;
Kyle Horimoto 2012/07/24 03:22:28 This is incorrect: zoom_resource should be IDR_ZOO
Dan Beam 2012/08/15 09:04:59 Done.
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_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