platform_window.h revision 116680a4aac90f2aa7413d9095a592090648e557
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/platform_window/platform_window_export.h"
10
11namespace gfx {
12class Rect;
13}
14
15namespace ui {
16
17class 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).
23class PLATFORM_WINDOW_EXPORT 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
45}  // namespace ui
46
47#endif  // UI_PLATFORM_WINDOW_PLATFORM_WINDOW_H_
48