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. 4 5#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_NATIVE_BROWSER_FRAME_H_ 6#define CHROME_BROWSER_UI_VIEWS_FRAME_NATIVE_BROWSER_FRAME_H_ 7 8#include "ui/base/ui_base_types.h" 9#include "ui/gfx/rect.h" 10 11class BrowserFrame; 12class BrowserView; 13 14namespace views { 15class NativeWidget; 16} 17 18class NativeBrowserFrame { 19 public: 20 virtual ~NativeBrowserFrame() {} 21 22 virtual views::NativeWidget* AsNativeWidget() = 0; 23 virtual const views::NativeWidget* AsNativeWidget() const = 0; 24 25 // Returns true if the OS takes care of showing the system menu. Returning 26 // false means BrowserFrame handles showing the system menu. 27 virtual bool UsesNativeSystemMenu() const = 0; 28 29 // Returns true when the window placement should be stored. 30 virtual bool ShouldSaveWindowPlacement() const = 0; 31 32 // Retrieves the window placement (show state and bounds) for restoring. 33 virtual void GetWindowPlacement(gfx::Rect* bounds, 34 ui::WindowShowState* show_state) const = 0; 35 36 protected: 37 friend class BrowserFrame; 38 39 // BrowserFrame pass-thrus --------------------------------------------------- 40 // See browser_frame.h for documentation: 41 virtual int GetMinimizeButtonOffset() const = 0; 42}; 43 44#endif // CHROME_BROWSER_UI_VIEWS_FRAME_NATIVE_BROWSER_FRAME_H_ 45