native_browser_frame_factory.h revision 58537e28ecd584eab876aee8be7156509866d23a
1// Copyright 2013 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_FACTORY_H_
6#define CHROME_BROWSER_UI_VIEWS_FRAME_NATIVE_BROWSER_FRAME_FACTORY_H_
7
8#include "base/basictypes.h"
9
10class BrowserFrame;
11class BrowserView;
12class NativeBrowserFrame;
13
14// Factory for creating a NativeBrowserFrame.
15class NativeBrowserFrameFactory {
16 public:
17  // Construct a platform-specific implementation of this interface.
18  static NativeBrowserFrame* CreateNativeBrowserFrame(
19      BrowserFrame* browser_frame,
20      BrowserView* browser_view);
21
22  // Sets the factory. Takes ownership of |new_factory|, deleting existing
23  // factory. Use NULL to go back to default factory.
24  static void Set(NativeBrowserFrameFactory* new_factory);
25
26  virtual NativeBrowserFrame* Create(BrowserFrame* browser_frame,
27                                     BrowserView* browser_view);
28
29 protected:
30  NativeBrowserFrameFactory() {}
31  virtual ~NativeBrowserFrameFactory() {}
32
33  DISALLOW_COPY_AND_ASSIGN(NativeBrowserFrameFactory);
34};
35
36#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_NATIVE_BROWSER_FRAME_FACTORY_H_
37