diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-21 15:05:46 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-21 15:05:46 +0000 |
commit | fb05865fb200994c4f861f94ca198eed522b4976 (patch) | |
tree | 672b07ad296dbdd924fe530d29a3127ce31bf45f /chrome/browser/automation/automation_provider_mac.mm | |
parent | 06dd877a2937a0b5ca74de4240117206df36628b (diff) | |
download | chromium_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.mm | 73 |
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(); +} |