c++11: Add discussion thread links, ban things that don't work with MSVS.
[chromium-blink-merge.git] / ui / base / base_window.h
blob664616994ae5cf29ec7b1a60dda55454255e346c
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.
5 #ifndef UI_BASE_BASE_WINDOW_H_
6 #define UI_BASE_BASE_WINDOW_H_
8 #include "base/compiler_specific.h"
9 #include "ui/base/ui_base_types.h" // WindowShowState
10 #include "ui/gfx/native_widget_types.h"
12 namespace gfx {
13 class Rect;
16 class SkRegion;
18 namespace ui {
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;
27 // Returns true if the window is maximized (aka zoomed).
28 virtual bool IsMaximized() const = 0;
30 // Returns true if the window is minimized.
31 virtual bool IsMinimized() const = 0;
33 // Returns true if the window is full screen.
34 virtual bool IsFullscreen() const = 0;
36 // Returns true if the window is fully restored (not Fullscreen, Maximized,
37 // Minimized).
38 static bool IsRestored(const BaseWindow& window);
40 // Return a platform dependent identifier for this window.
41 virtual gfx::NativeWindow GetNativeWindow() = 0;
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;
47 // Returns the restore state for the window (platform dependent).
48 virtual ui::WindowShowState GetRestoredState() const = 0;
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;
55 // Shows the window, or activates it if it's already visible.
56 virtual void Show() = 0;
58 // Hides the window.
59 virtual void Hide() = 0;
61 // Show the window, but do not activate it. Does nothing if window
62 // is already visible.
63 virtual void ShowInactive() = 0;
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;
69 // Activates (brings to front) the window. Restores the window from minimized
70 // state if necessary.
71 virtual void Activate() = 0;
73 // Deactivates the window, making the next window in the Z order the active
74 // window.
75 virtual void Deactivate() = 0;
77 // Maximizes/minimizes/restores the window.
78 virtual void Maximize() = 0;
79 virtual void Minimize() = 0;
80 virtual void Restore() = 0;
82 // Sets the window's size and position to the specified values.
83 virtual void SetBounds(const gfx::Rect& bounds) = 0;
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;
89 // Returns true if a window is set to be always on top.
90 virtual bool IsAlwaysOnTop() const = 0;
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;
97 } // namespace ui
99 #endif // UI_BASE_BASE_WINDOW_H_