Index: chrome/browser/ui/cocoa/location_bar/zoom_decoration.mm |
diff --git a/chrome/browser/ui/cocoa/location_bar/zoom_decoration.mm b/chrome/browser/ui/cocoa/location_bar/zoom_decoration.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3646d78f9c122d740faac80a4f521ccef5257521 |
--- /dev/null |
+++ b/chrome/browser/ui/cocoa/location_bar/zoom_decoration.mm |
@@ -0,0 +1,44 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#import "chrome/browser/ui/cocoa/location_bar/zoom_decoration.h" |
+ |
+#include "base/string_number_conversions.h" |
+#include "chrome/app/chrome_command_ids.h" |
+#import "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h" |
+#include "chrome/browser/ui/toolbar/toolbar_model.h" |
+#include "chrome/browser/ui/zoom/zoom_controller.h" |
+#include "grit/generated_resources.h" |
+#include "grit/theme_resources.h" |
+#include "ui/base/l10n/l10n_util_mac.h" |
+ |
+ZoomDecoration::ZoomDecoration(ToolbarModel* toolbar_model) |
+ : toolbar_model_(toolbar_model) { |
+ Update(NULL); |
+} |
+ |
+ZoomDecoration::~ZoomDecoration() { |
+} |
+ |
+void ZoomDecoration::Update(ZoomController* zoom_controller) { |
+ if (!zoom_controller || zoom_controller->IsAtDefaultZoom() || |
+ toolbar_model_->input_in_progress()) { |
+ SetVisible(false); |
+ return; |
+ } |
+ |
+ int zoom_percent = zoom_controller->zoom_percent(); |
+ |
+ const int image_id = zoom_percent > 100 ? IDR_ZOOM_PLUS : IDR_ZOOM_MINUS; |
+ SetImage(OmniboxViewMac::ImageForResource(image_id)); |
+ |
+ tooltip_.reset([l10n_util::GetNSStringFWithFixup( |
+ IDS_TOOLTIP_ZOOM, base::IntToString16(zoom_percent)) retain]); |
+ |
+ SetVisible(true); |
+} |
+ |
+NSString* ZoomDecoration::GetToolTip() { |
+ return tooltip_.get(); |
+} |