// 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 CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_BROWSER_FRAME_AURA_H_ #define CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_BROWSER_FRAME_AURA_H_ #include "base/macros.h" #include "base/memory/scoped_ptr.h" #include "chrome/browser/ui/views/frame/native_browser_frame.h" #include "ui/views/context_menu_controller.h" #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" class BrowserDesktopWindowTreeHost; class BrowserFrame; class BrowserView; namespace wm { class VisibilityController; } //////////////////////////////////////////////////////////////////////////////// // DesktopBrowserFrameAura // // DesktopBrowserFrameAura is a DesktopNativeWidgetAura subclass that provides // the window frame for the Chrome browser window. // class DesktopBrowserFrameAura : public views::DesktopNativeWidgetAura, public NativeBrowserFrame { public: DesktopBrowserFrameAura(BrowserFrame* browser_frame, BrowserView* browser_view); BrowserView* browser_view() const { return browser_view_; } BrowserFrame* browser_frame() const { return browser_frame_; } protected: ~DesktopBrowserFrameAura() override; // Overridden from views::DesktopNativeWidgetAura: void OnHostClosed() override; void InitNativeWidget(const views::Widget::InitParams& params) override; // Overridden from NativeBrowserFrame: views::Widget::InitParams GetWidgetParams() override; bool UseCustomFrame() const override; bool UsesNativeSystemMenu() const override; int GetMinimizeButtonOffset() const override; bool ShouldSaveWindowPlacement() const override; void GetWindowPlacement(gfx::Rect* bounds, ui::WindowShowState* show_state) const override; private: // The BrowserView is our ClientView. This is a pointer to it. BrowserView* browser_view_; BrowserFrame* browser_frame_; // Owned by the RootWindow. BrowserDesktopWindowTreeHost* browser_desktop_window_tree_host_; scoped_ptr visibility_controller_; DISALLOW_COPY_AND_ASSIGN(DesktopBrowserFrameAura); }; #endif // CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_BROWSER_FRAME_AURA_H_