| OLD | NEW |
| 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 "base/i18n/number_formatting.h" |
| 7 #include "chrome/browser/ui/view_ids.h" | 8 #include "chrome/browser/ui/view_ids.h" |
| 8 #include "chrome/browser/ui/views/location_bar/zoom_bubble_view.h" | 9 #include "chrome/browser/ui/views/location_bar/zoom_bubble_view.h" |
| 9 #include "chrome/grit/generated_resources.h" | 10 #include "chrome/grit/generated_resources.h" |
| 10 #include "components/toolbar/toolbar_model.h" | 11 #include "components/toolbar/toolbar_model.h" |
| 11 #include "components/ui/zoom/zoom_controller.h" | 12 #include "components/ui/zoom/zoom_controller.h" |
| 12 #include "ui/accessibility/ax_view_state.h" | 13 #include "ui/accessibility/ax_view_state.h" |
| 13 #include "ui/base/l10n/l10n_util.h" | 14 #include "ui/base/l10n/l10n_util.h" |
| 14 #include "ui/events/event.h" | 15 #include "ui/events/event.h" |
| 15 #include "ui/gfx/geometry/size.h" | 16 #include "ui/gfx/geometry/size.h" |
| 16 #include "ui/gfx/vector_icons_public.h" | 17 #include "ui/gfx/vector_icons_public.h" |
| 17 | 18 |
| 18 ZoomView::ZoomView(LocationBarView::Delegate* location_bar_delegate) | 19 ZoomView::ZoomView(LocationBarView::Delegate* location_bar_delegate) |
| 19 : BubbleIconView(nullptr, 0), | 20 : BubbleIconView(nullptr, 0), |
| 20 location_bar_delegate_(location_bar_delegate), | 21 location_bar_delegate_(location_bar_delegate), |
| 21 image_id_(gfx::VectorIconId::VECTOR_ICON_NONE) { | 22 image_id_(gfx::VectorIconId::VECTOR_ICON_NONE) { |
| 22 Update(NULL); | 23 Update(NULL); |
| 23 } | 24 } |
| 24 | 25 |
| 25 ZoomView::~ZoomView() { | 26 ZoomView::~ZoomView() { |
| 26 } | 27 } |
| 27 | 28 |
| 28 void ZoomView::Update(ui_zoom::ZoomController* zoom_controller) { | 29 void ZoomView::Update(ui_zoom::ZoomController* zoom_controller) { |
| 29 if (!zoom_controller || zoom_controller->IsAtDefaultZoom() || | 30 if (!zoom_controller || zoom_controller->IsAtDefaultZoom() || |
| 30 location_bar_delegate_->GetToolbarModel()->input_in_progress()) { | 31 location_bar_delegate_->GetToolbarModel()->input_in_progress()) { |
| 31 SetVisible(false); | 32 SetVisible(false); |
| 32 ZoomBubbleView::CloseCurrentBubble(); | 33 ZoomBubbleView::CloseCurrentBubble(); |
| 33 return; | 34 return; |
| 34 } | 35 } |
| 35 | 36 |
| 36 SetTooltipText(l10n_util::GetStringFUTF16Int( | 37 SetTooltipText(l10n_util::GetStringFUTF16( |
| 37 IDS_TOOLTIP_ZOOM, zoom_controller->GetZoomPercent())); | 38 IDS_TOOLTIP_ZOOM, |
| 39 base::FormatPercent(zoom_controller->GetZoomPercent()))); |
| 38 | 40 |
| 39 // The icon is hidden when the zoom level is default. | 41 // The icon is hidden when the zoom level is default. |
| 40 image_id_ = zoom_controller->GetZoomRelativeToDefault() == | 42 image_id_ = zoom_controller->GetZoomRelativeToDefault() == |
| 41 ui_zoom::ZoomController::ZOOM_BELOW_DEFAULT_ZOOM | 43 ui_zoom::ZoomController::ZOOM_BELOW_DEFAULT_ZOOM |
| 42 ? gfx::VectorIconId::ZOOM_MINUS | 44 ? gfx::VectorIconId::ZOOM_MINUS |
| 43 : gfx::VectorIconId::ZOOM_PLUS; | 45 : gfx::VectorIconId::ZOOM_PLUS; |
| 44 if (GetNativeTheme()) | 46 if (GetNativeTheme()) |
| 45 UpdateIcon(); | 47 UpdateIcon(); |
| 46 | 48 |
| 47 SetVisible(true); | 49 SetVisible(true); |
| 48 } | 50 } |
| 49 | 51 |
| 50 void ZoomView::OnExecuting(BubbleIconView::ExecuteSource source) { | 52 void ZoomView::OnExecuting(BubbleIconView::ExecuteSource source) { |
| 51 ZoomBubbleView::ShowBubble(location_bar_delegate_->GetWebContents(), | 53 ZoomBubbleView::ShowBubble(location_bar_delegate_->GetWebContents(), |
| 52 ZoomBubbleView::USER_GESTURE); | 54 ZoomBubbleView::USER_GESTURE); |
| 53 } | 55 } |
| 54 | 56 |
| 55 void ZoomView::GetAccessibleState(ui::AXViewState* state) { | 57 void ZoomView::GetAccessibleState(ui::AXViewState* state) { |
| 56 BubbleIconView::GetAccessibleState(state); | 58 BubbleIconView::GetAccessibleState(state); |
| 57 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_ZOOM); | 59 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_ZOOM); |
| 58 } | 60 } |
| 59 | 61 |
| 60 views::BubbleDialogDelegateView* ZoomView::GetBubble() const { | 62 views::BubbleDialogDelegateView* ZoomView::GetBubble() const { |
| 61 return ZoomBubbleView::GetZoomBubble(); | 63 return ZoomBubbleView::GetZoomBubble(); |
| 62 } | 64 } |
| 63 | 65 |
| 64 gfx::VectorIconId ZoomView::GetVectorIcon() const { | 66 gfx::VectorIconId ZoomView::GetVectorIcon() const { |
| 65 return image_id_; | 67 return image_id_; |
| 66 } | 68 } |
| OLD | NEW |