opaque_browser_frame_view_platform_specific.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1// Copyright (c) 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_OPAQUE_BROWSER_FRAME_VIEW_PLATFORM_SPECIFIC_H_
6#define CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_PLATFORM_SPECIFIC_H_
7
8class OpaqueBrowserFrameView;
9class OpaqueBrowserFrameViewLayout;
10class Profile;
11
12// Handles platform specific configuration concepts.
13class OpaqueBrowserFrameViewPlatformSpecific {
14 public:
15  virtual ~OpaqueBrowserFrameViewPlatformSpecific() {}
16
17  // Returns whether we're using native system like rendering for theme
18  // elements.
19  //
20  // Why not just ask ThemeService::UsingSystemTheme()? Because on Windows, the
21  // default theme is UsingSystemTheme(). Therefore, the default implementation
22  // always returns false and we specifically override this on Linux.
23  virtual bool IsUsingSystemTheme();
24
25  // Builds an observer for |view| and |layout|.
26  static OpaqueBrowserFrameViewPlatformSpecific* Create(
27      OpaqueBrowserFrameView* view,
28      OpaqueBrowserFrameViewLayout* layout,
29      Profile* profile);
30};
31
32#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_PLATFORM_SPECIFIC_H_
33