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