Home | History | Annotate | Download | only in automation
      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:
     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:
     47   virtual ~WindowProxy() {}
     48  private:
     49   DISALLOW_COPY_AND_ASSIGN(WindowProxy);
     50 };
     51 
     52 #endif  // CHROME_TEST_AUTOMATION_WINDOW_PROXY_H__
     53