summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/cocoa/find_bar_bridge.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/cocoa/find_bar_bridge.mm')
-rw-r--r--chrome/browser/ui/cocoa/find_bar_bridge.mm114
1 files changed, 114 insertions, 0 deletions
diff --git a/chrome/browser/ui/cocoa/find_bar_bridge.mm b/chrome/browser/ui/cocoa/find_bar_bridge.mm
new file mode 100644
index 0000000..9481b54
--- /dev/null
+++ b/chrome/browser/ui/cocoa/find_bar_bridge.mm
@@ -0,0 +1,114 @@
+// Copyright (c) 2010 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.
+
+#include "chrome/browser/ui/cocoa/find_bar_bridge.h"
+
+#include "base/sys_string_conversions.h"
+#import "chrome/browser/ui/cocoa/find_bar_cocoa_controller.h"
+
+// static
+bool FindBarBridge::disable_animations_during_testing_ = false;
+
+FindBarBridge::FindBarBridge()
+ : find_bar_controller_(NULL) {
+ cocoa_controller_ = [[FindBarCocoaController alloc] init];
+ [cocoa_controller_ setFindBarBridge:this];
+}
+
+FindBarBridge::~FindBarBridge() {
+ [cocoa_controller_ release];
+}
+
+void FindBarBridge::Show(bool animate) {
+ bool really_animate = animate && !disable_animations_during_testing_;
+ [cocoa_controller_ showFindBar:(really_animate ? YES : NO)];
+}
+
+void FindBarBridge::Hide(bool animate) {
+ bool really_animate = animate && !disable_animations_during_testing_;
+ [cocoa_controller_ hideFindBar:(really_animate ? YES : NO)];
+}
+
+void FindBarBridge::SetFocusAndSelection() {
+ [cocoa_controller_ setFocusAndSelection];
+}
+
+void FindBarBridge::ClearResults(const FindNotificationDetails& results) {
+ [cocoa_controller_ clearResults:results];
+}
+
+void FindBarBridge::SetFindText(const string16& find_text) {
+ [cocoa_controller_ setFindText:base::SysUTF16ToNSString(find_text)];
+}
+
+void FindBarBridge::UpdateUIForFindResult(const FindNotificationDetails& result,
+ const string16& find_text) {
+ [cocoa_controller_ updateUIForFindResult:result withText:find_text];
+}
+
+void FindBarBridge::AudibleAlert() {
+ // Beep beep, beep beep, Yeah!
+ NSBeep();
+}
+
+bool FindBarBridge::IsFindBarVisible() {
+ return [cocoa_controller_ isFindBarVisible] ? true : false;
+}
+
+void FindBarBridge::MoveWindowIfNecessary(const gfx::Rect& selection_rect,
+ bool no_redraw) {
+ // http://crbug.com/11084
+ // http://crbug.com/22036
+}
+
+void FindBarBridge::StopAnimation() {
+ [cocoa_controller_ stopAnimation];
+}
+
+void FindBarBridge::RestoreSavedFocus() {
+ [cocoa_controller_ restoreSavedFocus];
+}
+
+bool FindBarBridge::GetFindBarWindowInfo(gfx::Point* position,
+ bool* fully_visible) {
+ // TODO(rohitrao): Return the proper position. http://crbug.com/22036
+ if (position)
+ *position = gfx::Point(0, 0);
+
+ NSWindow* window = [[cocoa_controller_ view] window];
+ bool window_visible = [window isVisible] ? true : false;
+ if (fully_visible) {
+ *fully_visible = window_visible &&
+ [cocoa_controller_ isFindBarVisible] &&
+ ![cocoa_controller_ isFindBarAnimating];
+ }
+ return window_visible;
+}
+
+string16 FindBarBridge::GetFindText() {
+ // This function is currently only used in Windows and Linux specific browser
+ // tests (testing prepopulate values that Mac's don't rely on), but if we add
+ // more tests that are non-platform specific, we need to flesh out this
+ // function.
+ NOTIMPLEMENTED();
+ return string16();
+}
+
+string16 FindBarBridge::GetFindSelectedText() {
+ // This function is currently only used in Windows and Linux specific browser
+ // tests (testing prepopulate values that Mac's don't rely on), but if we add
+ // more tests that are non-platform specific, we need to flesh out this
+ // function.
+ NOTIMPLEMENTED();
+ return string16();
+}
+
+string16 FindBarBridge::GetMatchCountText() {
+ // This function is currently only used in Windows and Linux specific browser
+ // tests (testing prepopulate values that Mac's don't rely on), but if we add
+ // more tests that are non-platform specific, we need to flesh out this
+ // function.
+ NOTIMPLEMENTED();
+ return string16();
+}