// 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_