• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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_BASE_BASE_WINDOW_H_
6 #define UI_BASE_BASE_WINDOW_H_
7 
8 #include "base/compiler_specific.h"
9 #include "ui/base/ui_base_types.h"  // WindowShowState
10 #include "ui/gfx/native_widget_types.h"
11 
12 namespace gfx {
13 class Rect;
14 }
15 
16 class SkRegion;
17 
18 namespace ui {
19 
20 // Provides an interface to perform actions on windows, and query window
21 // state.
22 class UI_BASE_EXPORT BaseWindow {
23  public:
24   // Returns true if the window is currently the active/focused window.
25   virtual bool IsActive() const = 0;
26 
27   // Returns true if the window is maximized (aka zoomed).
28   virtual bool IsMaximized() const = 0;
29 
30   // Returns true if the window is minimized.
31   virtual bool IsMinimized() const = 0;
32 
33   // Returns true if the window is full screen.
34   virtual bool IsFullscreen() const = 0;
35 
36   // Returns true if the window is fully restored (not Fullscreen, Maximized,
37   // Minimized).
38   static bool IsRestored(const BaseWindow& window);
39 
40   // Return a platform dependent identifier for this window.
41   virtual gfx::NativeWindow GetNativeWindow() = 0;
42 
43   // Returns the nonmaximized bounds of the window (even if the window is
44   // currently maximized or minimized) in terms of the screen coordinates.
45   virtual gfx::Rect GetRestoredBounds() const = 0;
46 
47   // Returns the restore state for the window (platform dependent).
48   virtual ui::WindowShowState GetRestoredState() const = 0;
49 
50   // Retrieves the window's current bounds, including its window.
51   // This will only differ from GetRestoredBounds() for maximized
52   // and minimized windows.
53   virtual gfx::Rect GetBounds() const = 0;
54 
55   // Shows the window, or activates it if it's already visible.
56   virtual void Show() = 0;
57 
58   // Hides the window.
59   virtual void Hide() = 0;
60 
61   // Show the window, but do not activate it. Does nothing if window
62   // is already visible.
63   virtual void ShowInactive() = 0;
64 
65   // Closes the window as soon as possible. The close action may be delayed
66   // if an operation is in progress (e.g. a drag operation).
67   virtual void Close() = 0;
68 
69   // Activates (brings to front) the window. Restores the window from minimized
70   // state if necessary.
71   virtual void Activate() = 0;
72 
73   // Deactivates the window, making the next window in the Z order the active
74   // window.
75   virtual void Deactivate() = 0;
76 
77   // Maximizes/minimizes/restores the window.
78   virtual void Maximize() = 0;
79   virtual void Minimize() = 0;
80   virtual void Restore() = 0;
81 
82   // Sets the window's size and position to the specified values.
83   virtual void SetBounds(const gfx::Rect& bounds) = 0;
84 
85   // Flashes the taskbar item associated with this window.
86   // Set |flash| to true to initiate flashing, false to stop flashing.
87   virtual void FlashFrame(bool flash) = 0;
88 
89   // Returns true if a window is set to be always on top.
90   virtual bool IsAlwaysOnTop() const = 0;
91 
92   // If set to true, the window will stay on top of other windows which do not
93   // have this flag enabled.
94   virtual void SetAlwaysOnTop(bool always_on_top) = 0;
95 };
96 
97 }  // namespace ui
98 
99 #endif  // UI_BASE_BASE_WINDOW_H_
100