Home | History | Annotate | Download | only in platform_window
      1 // Copyright 2014 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 UI_PLATFORM_WINDOW_PLATFORM_WINDOW_H_
      6 #define UI_PLATFORM_WINDOW_PLATFORM_WINDOW_H_
      7 
      8 #include "base/memory/scoped_ptr.h"
      9 #include "ui/base/cursor/cursor.h"
     10 
     11 namespace gfx {
     12 class Rect;
     13 }
     14 
     15 namespace ui {
     16 
     17 class PlatformWindowDelegate;
     18 
     19 // Platform window.
     20 //
     21 // Each instance of PlatformWindow represents a single window in the
     22 // underlying platform windowing system (i.e. X11/Win/OSX).
     23 class PlatformWindow {
     24  public:
     25   virtual ~PlatformWindow() {}
     26 
     27   virtual void Show() = 0;
     28   virtual void Hide() = 0;
     29   virtual void Close() = 0;
     30 
     31   // Sets and gets the bounds of the platform-window. Note that the bounds is in
     32   // physical pixel coordinates.
     33   virtual void SetBounds(const gfx::Rect& bounds) = 0;
     34   virtual gfx::Rect GetBounds() = 0;
     35 
     36   virtual void SetCapture() = 0;
     37   virtual void ReleaseCapture() = 0;
     38 
     39   virtual void ToggleFullscreen() = 0;
     40   virtual void Maximize() = 0;
     41   virtual void Minimize() = 0;
     42   virtual void Restore() = 0;
     43 
     44   virtual void SetCursor(PlatformCursor cursor) = 0;
     45   virtual void MoveCursorTo(const gfx::Point& location) = 0;
     46 };
     47 
     48 }  // namespace ui
     49 
     50 #endif  // UI_PLATFORM_WINDOW_PLATFORM_WINDOW_H_
     51