| // 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_VIEWS_WIN_FULLSCREEN_HANDLER_H_ |
| #define UI_VIEWS_WIN_FULLSCREEN_HANDLER_H_ |
| |
| #include <windows.h> |
| |
| #include <map> |
| |
| #include "base/basictypes.h" |
| |
| namespace gfx { |
| class Rect; |
| } |
| |
| namespace views { |
| |
| class FullscreenHandler { |
| public: |
| FullscreenHandler(); |
| ~FullscreenHandler(); |
| |
| void set_hwnd(HWND hwnd) { hwnd_ = hwnd; } |
| |
| void SetFullscreen(bool fullscreen); |
| void SetMetroSnap(bool metro_snap); |
| |
| gfx::Rect GetRestoreBounds() const; |
| |
| bool fullscreen() const { return fullscreen_; } |
| bool metro_snap() const { return metro_snap_; } |
| |
| private: |
| // Information saved before going into fullscreen mode, used to restore the |
| // window afterwards. |
| struct SavedWindowInfo { |
| bool maximized; |
| LONG style; |
| LONG ex_style; |
| RECT window_rect; |
| }; |
| |
| void SetFullscreenImpl(bool fullscreen, bool for_metro); |
| |
| HWND hwnd_; |
| bool fullscreen_; |
| bool metro_snap_; |
| |
| // Saved window information from before entering fullscreen mode. |
| // TODO(beng): move to private once GetRestoredBounds() moves onto Widget. |
| SavedWindowInfo saved_window_info_; |
| |
| DISALLOW_COPY_AND_ASSIGN(FullscreenHandler); |
| }; |
| |
| } // namespace views |
| |
| #endif // UI_VIEWS_WIN_FULLSCREEN_HANDLER_H_ |