native_browser_frame.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 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
8class BrowserFrame;
9class BrowserView;
10
11namespace views {
12class NativeWidget;
13}
14
15class NativeBrowserFrame {
16 public:
17  virtual ~NativeBrowserFrame() {}
18
19  // Construct a platform-specific implementation of this interface.
20  static NativeBrowserFrame* CreateNativeBrowserFrame(
21      BrowserFrame* browser_frame,
22      BrowserView* browser_view);
23
24  virtual views::NativeWidget* AsNativeWidget() = 0;
25  virtual const views::NativeWidget* AsNativeWidget() const = 0;
26
27  // Initializes the system context menu.
28  virtual void InitSystemContextMenu() = 0;
29
30 protected:
31  friend class BrowserFrame;
32
33  // BrowserFrame pass-thrus ---------------------------------------------------
34  // See browser_frame.h for documentation:
35  virtual int GetMinimizeButtonOffset() const = 0;
36  // TODO(beng): replace with some kind of "framechanged" signal to Window.
37  virtual void TabStripDisplayModeChanged() = 0;
38};
39
40#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_NATIVE_BROWSER_FRAME_H_
41