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

Unified Diff: chrome/browser/ui/views/location_bar/location_bar_view.cc

Issue 10494004: Implements a zoom icon in the Omnibox for Views. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 7 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/views/location_bar/location_bar_view.cc
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index 0a5408f773d82ef7f2eb05268c79af69a0277146..9b55c41552f316e69784af4b6a475ff7bb6277bb 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -42,6 +42,7 @@
#include "chrome/browser/ui/views/location_bar/page_action_with_badge_view.h"
#include "chrome/browser/ui/views/location_bar/selected_keyword_view.h"
#include "chrome/browser/ui/views/location_bar/star_view.h"
+#include "chrome/browser/ui/views/location_bar/zoom_view.h"
#include "chrome/browser/ui/views/omnibox/omnibox_view_views.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/chrome_switches.h"
@@ -148,6 +149,7 @@ LocationBarView::LocationBarView(Profile* profile,
#endif
keyword_hint_view_(NULL),
star_view_(NULL),
+ zoom_view_(NULL),
action_box_button_view_(NULL),
chrome_to_mobile_view_(NULL),
mode_(mode),
@@ -246,6 +248,9 @@ void LocationBarView::Init() {
AddChildView(star_view_);
star_view_->SetVisible(true);
+ zoom_view_ = new ZoomView();
+ AddChildView(zoom_view_);
+
// Also disable Chrome To Mobile for off-the-record and non-synced profiles,
// or if the feature is disabled by a command line flag or chrome://flags.
if (!profile_->IsOffTheRecord() && profile_->IsSyncAccessible() &&
@@ -451,6 +456,24 @@ void LocationBarView::ShowStarBubble(const GURL& url, bool newly_bookmarked) {
newly_bookmarked);
}
+void LocationBarView::SetZoomIconTooltipPercent(int zoom_percent) {
+ if (zoom_view_)
+ zoom_view_->SetZoomIconTooltipPercent(zoom_percent);
+}
+
+void LocationBarView::SetZoomIconState(
+ ZoomController::ZoomIconState zoom_icon_state) {
+ if (zoom_view_) {
+ zoom_view_->SetZoomIconState(zoom_icon_state);
+ UpdateContentSettingsIcons();
+ }
+}
+
+void LocationBarView::ShowZoomBubble(int zoom_percent) {
+ if (zoom_view_)
+ browser::ShowZoomBubbleView(zoom_view_, zoom_percent, true);
Ben Goodger (Google) 2012/06/04 15:16:49 is this function called from anywhere outside the
Kyle Horimoto 2012/06/05 05:03:59 Done.
+}
+
void LocationBarView::ShowChromeToMobileBubble() {
browser::ShowChromeToMobileBubbleView(chrome_to_mobile_view_, profile_);
}
@@ -579,6 +602,8 @@ void LocationBarView::Layout() {
if (star_view_ && star_view_->visible())
entry_width -= star_view_->GetPreferredSize().width() + GetItemPadding();
+ if (zoom_view_ && zoom_view_->visible())
+ entry_width -= zoom_view_->GetPreferredSize().width() + GetItemPadding();
if (chrome_to_mobile_view_ && chrome_to_mobile_view_->visible())
entry_width -= chrome_to_mobile_view_->GetPreferredSize().width() +
GetItemPadding();
@@ -663,6 +688,13 @@ void LocationBarView::Layout() {
offset -= GetItemPadding();
}
+ if (zoom_view_ && zoom_view_->visible()) {
+ int zoom_width = zoom_view_->GetPreferredSize().width();
+ offset -= zoom_width;
+ zoom_view_->SetBounds(offset, location_y, zoom_width, location_height);
+ offset -= GetItemPadding();
+ }
+
if (chrome_to_mobile_view_ && chrome_to_mobile_view_->visible()) {
int icon_width = chrome_to_mobile_view_->GetPreferredSize().width();
offset -= icon_width;
@@ -1332,18 +1364,16 @@ void LocationBarView::Observe(int type,
std::string* name = content::Details<std::string>(details).ptr();
if (*name == prefs::kEditBookmarksEnabled)
Update(NULL);
- break;
}
-
+ break;
case chrome::NOTIFICATION_EXTENSION_LOCATION_BAR_UPDATED: {
// Only update if the updated action box was for the active tab contents.
TabContentsWrapper* target_tab =
content::Details<TabContentsWrapper>(details).ptr();
if (target_tab == GetTabContentsWrapper())
UpdatePageActions();
- break;
}
-
+ break;
default:
NOTREACHED() << "Unexpected notification.";
}

Powered by Google App Engine
This is Rietveld 408576698