• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_TEST_AUTOMATION_WINDOW_PROXY_H__
6 #define CHROME_TEST_AUTOMATION_WINDOW_PROXY_H__
7 
8 #include "build/build_config.h"
9 
10 #if defined(OS_WIN)
11 #include <windows.h>
12 #endif
13 
14 #include "base/strings/string16.h"
15 #include "base/threading/thread.h"
16 #include "chrome/test/automation/automation_handle_tracker.h"
17 
18 class BrowserProxy;
19 class WindowProxy;
20 
21 namespace gfx {
22 class Rect;
23 }
24 
25 // This class presents the interface to actions that can be performed on a given
26 // window.  Note that this object can be invalidated at any time if the
27 // corresponding window in the app is closed.  In that case, any subsequent
28 // calls will return false immediately.
29 class WindowProxy : public AutomationResourceProxy {
30  public:
WindowProxy(AutomationMessageSender * sender,AutomationHandleTracker * tracker,int handle)31   WindowProxy(AutomationMessageSender* sender,
32               AutomationHandleTracker* tracker,
33               int handle)
34     : AutomationResourceProxy(tracker, sender, handle) {}
35 
36   // Gets the bounds (in window coordinates) that correspond to the view with
37   // the given ID in this window.  Returns true if bounds could be obtained.
38   // If |screen_coordinates| is true, the bounds are returned in the coordinates
39   // of the screen, if false in the coordinates of the browser.
40   bool GetViewBounds(int view_id, gfx::Rect* bounds, bool screen_coordinates);
41 
42   // Sets the position and size of the window. Returns true if setting the
43   // bounds was successful.
44   bool SetBounds(const gfx::Rect& bounds);
45 
46  protected:
~WindowProxy()47   virtual ~WindowProxy() {}
48  private:
49   DISALLOW_COPY_AND_ASSIGN(WindowProxy);
50 };
51 
52 #endif  // CHROME_TEST_AUTOMATION_WINDOW_PROXY_H__
53