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