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

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

Powered by Google App Engine
This is Rietveld 408576698