summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/automation_provider_mac.mm
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-21 15:05:46 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-21 15:05:46 +0000
commitfb05865fb200994c4f861f94ca198eed522b4976 (patch)
tree672b07ad296dbdd924fe530d29a3127ce31bf45f /chrome/browser/automation/automation_provider_mac.mm
parent06dd877a2937a0b5ca74de4240117206df36628b (diff)
downloadchromium_src-fb05865fb200994c4f861f94ca198eed522b4976.zip
chromium_src-fb05865fb200994c4f861f94ca198eed522b4976.tar.gz
chromium_src-fb05865fb200994c4f861f94ca198eed522b4976.tar.bz2
Adding basic window control to the automation provider for the Mac.
BUG=http://crbug.com/16616 TEST=as described in bug. Review URL: http://codereview.chromium.org/216024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26681 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation/automation_provider_mac.mm')
-rw-r--r--chrome/browser/automation/automation_provider_mac.mm73
1 files changed, 73 insertions, 0 deletions
diff --git a/chrome/browser/automation/automation_provider_mac.mm b/chrome/browser/automation/automation_provider_mac.mm
new file mode 100644
index 0000000..6e8ae1b
--- /dev/null
+++ b/chrome/browser/automation/automation_provider_mac.mm
@@ -0,0 +1,73 @@
+// Copyright (c) 2009 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/automation/automation_provider.h"
+
+#import <Cocoa/Cocoa.h>
+#include "base/gfx/point.h"
+#include "base/gfx/rect.h"
+
+void AutomationProvider::SetWindowBounds(int handle, const gfx::Rect& bounds,
+ bool* success) {
+ *success = false;
+ NSWindow* window = window_tracker_->GetResource(handle);
+ if (window) {
+ NSRect new_bounds = NSRectFromCGRect(bounds.ToCGRect());
+
+ // This is likely incorrect for a multiple-monitor setup; OK because this is
+ // used only for testing purposes.
+ new_bounds.origin.y = [[window screen] frame].size.height -
+ new_bounds.origin.y - new_bounds.size.height;
+
+ [window setFrame:new_bounds display:NO];
+ *success = true;
+ }
+}
+
+void AutomationProvider::SetWindowVisible(int handle, bool visible,
+ bool* result) {
+ *result = false;
+ NSWindow* window = window_tracker_->GetResource(handle);
+ if (window) {
+ if (visible) {
+ [window orderFront:nil];
+ } else {
+ [window orderOut:nil];
+ }
+ *result = true;
+ }
+}
+
+void AutomationProvider::WindowGetViewBounds(int handle, int view_id,
+ bool screen_coordinates,
+ bool* success,
+ gfx::Rect* bounds) {
+ // AutomationProxyVisibleTest claims that this is used only by Chrome Views
+ // which we don't use on the Mac. Is this true?
+
+ *success = false;
+ NOTIMPLEMENTED();
+}
+
+void AutomationProvider::ActivateWindow(int handle) { NOTIMPLEMENTED(); }
+
+void AutomationProvider::GetFocusedViewID(int handle, int* view_id) {
+ NOTIMPLEMENTED();
+}
+
+void AutomationProvider::PrintAsync(int tab_handle) {
+ NOTIMPLEMENTED();
+}
+
+void AutomationProvider::SetInitialFocus(const IPC::Message& message,
+ int handle, bool reverse) {
+ NOTIMPLEMENTED();
+}
+
+void AutomationProvider::GetBookmarkBarVisibility(int handle, bool* visible,
+ bool* animating) {
+ *visible = false;
+ *animating = false;
+ NOTIMPLEMENTED();
+}