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"
20 // Provides an interface to perform actions on windows, and query window
22 class UI_BASE_EXPORT BaseWindow
{
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,
38 static bool IsRestored(const BaseWindow
& window
);
40 // Return a platform dependent identifier for this window.
41 virtual gfx::NativeWindow
GetNativeWindow() const = 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;
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
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;
99 #endif // UI_BASE_BASE_WINDOW_H_