// 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_BROWSER_DESKTOP_WINDOW_TREE_HOST_H_ #define CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_DESKTOP_WINDOW_TREE_HOST_H_ class BrowserFrame; class BrowserView; namespace gfx { class Rect; } namespace views { class DesktopNativeWidgetAura; class DesktopWindowTreeHost; namespace internal { class NativeWidgetDelegate; } } // Interface to a platform specific browser frame implementation. The object // implementing this interface will also implement views::DesktopWindowTreeHost. class BrowserDesktopWindowTreeHost { public: // BDRWH is owned by the RootWindow. static BrowserDesktopWindowTreeHost* CreateBrowserDesktopWindowTreeHost( views::internal::NativeWidgetDelegate* native_widget_delegate, views::DesktopNativeWidgetAura* desktop_native_widget_aura, BrowserView* browser_view, BrowserFrame* browser_frame); virtual views::DesktopWindowTreeHost* AsDesktopWindowTreeHost() = 0; virtual int GetMinimizeButtonOffset() const = 0; // Returns true if the OS takes care of showing the system menu. Returning // false means BrowserFrame handles showing the system menu. virtual bool UsesNativeSystemMenu() const = 0; }; #endif // CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_DESKTOP_WINDOW_TREE_HOST_H_