1 // Copyright (c) 2011 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 #pragma once 8 9 class BrowserNonClientFrameView; 10 11 namespace gfx { 12 class Rect; 13 } 14 15 namespace ui { 16 class ThemeProvider; 17 } 18 19 namespace views { 20 class NativeWindow; 21 class View; 22 } 23 24 class NativeBrowserFrame { 25 public: ~NativeBrowserFrame()26 virtual ~NativeBrowserFrame() {} 27 28 virtual views::NativeWindow* AsNativeWindow() = 0; 29 virtual const views::NativeWindow* AsNativeWindow() const = 0; 30 31 protected: 32 friend class BrowserFrame; 33 34 virtual BrowserNonClientFrameView* CreateBrowserNonClientFrameView() = 0; 35 36 // BrowserFrame pass-thrus --------------------------------------------------- 37 // See browser_frame.h for documentation: 38 virtual int GetMinimizeButtonOffset() const = 0; 39 virtual ui::ThemeProvider* GetThemeProviderForFrame() const = 0; 40 virtual bool AlwaysUseNativeFrame() const = 0; 41 virtual void TabStripDisplayModeChanged() = 0; 42 }; 43 44 #endif // CHROME_BROWSER_UI_VIEWS_FRAME_NATIVE_BROWSER_FRAME_H_ 45