| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_BASE_BASE_WINDOW_H_ |
| #define UI_BASE_BASE_WINDOW_H_ |
| |
| #include "base/compiler_specific.h" |
| #include "ui/base/ui_base_types.h" // WindowShowState |
| #include "ui/gfx/native_widget_types.h" |
| |
| namespace gfx { |
| class Rect; |
| } |
| |
| class SkRegion; |
| |
| namespace ui { |
| |
| // Provides an interface to perform actions on windows, and query window |
| // state. |
| class UI_BASE_EXPORT BaseWindow { |
| public: |
| // Returns true if the window is currently the active/focused window. |
| virtual bool IsActive() const = 0; |
| |
| // Returns true if the window is maximized (aka zoomed). |
| virtual bool IsMaximized() const = 0; |
| |
| // Returns true if the window is minimized. |
| virtual bool IsMinimized() const = 0; |
| |
| // Returns true if the window is full screen. |
| virtual bool IsFullscreen() const = 0; |
| |
| // Returns true if the window is fully restored (not Fullscreen, Maximized, |
| // Minimized). |
| static bool IsRestored(const BaseWindow& window); |
| |
| // Return a platform dependent identifier for this window. |
| virtual gfx::NativeWindow GetNativeWindow() const = 0; |
| |
| // Returns the nonmaximized bounds of the window (even if the window is |
| // currently maximized or minimized) in terms of the screen coordinates. |
| virtual gfx::Rect GetRestoredBounds() const = 0; |
| |
| // Returns the restore state for the window (platform dependent). |
| virtual ui::WindowShowState GetRestoredState() const = 0; |
| |
| // Retrieves the window's current bounds, including its window. |
| // This will only differ from GetRestoredBounds() for maximized |
| // and minimized windows. |
| virtual gfx::Rect GetBounds() const = 0; |
| |
| // Shows the window, or activates it if it's already visible. |
| virtual void Show() = 0; |
| |
| // Hides the window. |
| virtual void Hide() = 0; |
| |
| // Show the window, but do not activate it. Does nothing if window |
| // is already visible. |
| virtual void ShowInactive() = 0; |
| |
| // Closes the window as soon as possible. The close action may be delayed |
| // if an operation is in progress (e.g. a drag operation). |
| virtual void Close() = 0; |
| |
| // Activates (brings to front) the window. Restores the window from minimized |
| // state if necessary. |
| virtual void Activate() = 0; |
| |
| // Deactivates the window, making the next window in the Z order the active |
| // window. |
| virtual void Deactivate() = 0; |
| |
| // Maximizes/minimizes/restores the window. |
| virtual void Maximize() = 0; |
| virtual void Minimize() = 0; |
| virtual void Restore() = 0; |
| |
| // Sets the window's size and position to the specified values. |
| virtual void SetBounds(const gfx::Rect& bounds) = 0; |
| |
| // Flashes the taskbar item associated with this window. |
| // Set |flash| to true to initiate flashing, false to stop flashing. |
| virtual void FlashFrame(bool flash) = 0; |
| |
| // Returns true if a window is set to be always on top. |
| virtual bool IsAlwaysOnTop() const = 0; |
| |
| // If set to true, the window will stay on top of other windows which do not |
| // have this flag enabled. |
| virtual void SetAlwaysOnTop(bool always_on_top) = 0; |
| }; |
| |
| } // namespace ui |
| |
| #endif // UI_BASE_BASE_WINDOW_H_ |