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 9class BrowserNonClientFrameView; 10 11namespace gfx { 12class Rect; 13} 14 15namespace ui { 16class ThemeProvider; 17} 18 19namespace views { 20class NativeWindow; 21class View; 22} 23 24class NativeBrowserFrame { 25 public: 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