diff options
Diffstat (limited to 'chrome/browser/automation')
-rw-r--r-- | chrome/browser/automation/automation_provider.cc | 2 | ||||
-rw-r--r-- | chrome/browser/automation/automation_provider_mac.mm | 73 |
2 files changed, 74 insertions, 1 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc index b461636..263ad5b 100644 --- a/chrome/browser/automation/automation_provider.cc +++ b/chrome/browser/automation/automation_provider.cc @@ -737,7 +737,7 @@ void AutomationProvider::GetLastActiveBrowserWindow(int* handle) { *handle = browser_tracker_->Add(browser); } -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_MACOSX) // TODO(estade): use this implementation for all platforms? void AutomationProvider::GetActiveWindow(int* handle) { gfx::NativeWindow window = 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(); +} |