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

Side by Side Diff: chrome/browser/ui/views/location_bar/zoom_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, 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/views/location_bar/zoom_view.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/views/location_bar/zoom_view.h"
6
7 #include "chrome/browser/ui/views/browser_dialogs.h"
8 #include "chrome/browser/ui/views/location_bar/zoom_bubble_view.h"
9 #include "chrome/browser/ui/view_ids.h"
10 #include "grit/generated_resources.h"
11 #include "grit/theme_resources_standard.h"
12 #include "ui/base/accessibility/accessible_view_state.h"
13 #include "ui/base/l10n/l10n_util.h"
14 #include "ui/base/resource/resource_bundle.h"
15 #include "ui/gfx/size.h"
16
17 ZoomView::ZoomView(ToolbarModel* toolbar_model)
18 : toolbar_model_(toolbar_model),
19 zoom_icon_state_(ZoomController::NONE),
20 zoom_percent_(100) {
21 set_accessibility_focusable(true);
22 }
23
24 ZoomView::~ZoomView() {
25 }
26
27 void ZoomView::SetZoomIconState(ZoomController::ZoomIconState zoom_icon_state) {
28 if (zoom_icon_state == zoom_icon_state_)
29 return;
30
31 zoom_icon_state_ = zoom_icon_state;
32 Update();
33 }
34
35 void ZoomView::SetZoomIconTooltipPercent(int zoom_percent) {
36 if (zoom_percent == zoom_percent_)
37 return;
38
39 zoom_percent_ = zoom_percent;
40 Update();
41 }
42
43 void ZoomView::Update() {
44 if (toolbar_model_->input_in_progress() ||
45 zoom_icon_state_ == ZoomController::NONE) {
46 SetVisible(false);
47 ZoomBubbleView::CloseBubble();
48 } else {
49 SetVisible(true);
50 SetTooltipText(
51 l10n_util::GetStringFUTF16Int(IDS_TOOLTIP_ZOOM, zoom_percent_));
52 SetImage(ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
53 zoom_icon_state_ == ZoomController::ZOOM_PLUS_ICON ?
54 IDR_ZOOM_PLUS : IDR_ZOOM_MINUS));
55 }
56 }
57
58 void ZoomView::GetAccessibleState(ui::AccessibleViewState* state) {
59 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_ZOOM);
60 state->role = ui::AccessibilityTypes::ROLE_PUSHBUTTON;
61 }
62
63 bool ZoomView::GetTooltipText(const gfx::Point& p, string16* tooltip) const {
64 // Don't show tooltip if the zoom bubble is displayed.
65 return !ZoomBubbleView::IsShowing() && ImageView::GetTooltipText(p, tooltip);
66 }
67
68 bool ZoomView::OnMousePressed(const views::MouseEvent& event) {
69 // Do nothing until mouse is released.
70 return true;
71 }
72
73 void ZoomView::OnMouseReleased(const views::MouseEvent& event) {
74 if (event.IsOnlyLeftMouseButton() && HitTest(event.location()))
75 ZoomBubbleView::ShowBubble(this, zoom_percent_, false);
76 }
77
78 bool ZoomView::OnKeyPressed(const views::KeyEvent& event) {
79 if (event.key_code() != ui::VKEY_SPACE &&
80 event.key_code() != ui::VKEY_RETURN)
81 return false;
82
83 ZoomBubbleView::ShowBubble(this, zoom_percent_, false);
84 return true;
85 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/location_bar/zoom_view.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698