Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / frame / opaque_browser_frame_view_platform_specific.h
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
8 class OpaqueBrowserFrameView;
9 class OpaqueBrowserFrameViewLayout;
10 class Profile;
11
12 // Handles platform specific configuration concepts.
13 class 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::UsingNativeTheme()? Because on Windows, the
21   // default theme is UsingNativeTheme(). Therefore, the default implementation
22   // always returns false and we specifically override this on Linux.
23   virtual bool IsUsingNativeTheme();
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_