1d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// found in the LICENSE file.
4d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
5d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_PLATFORM_SPECIFIC_H_
6d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#define CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_PLATFORM_SPECIFIC_H_
7d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)class OpaqueBrowserFrameView;
9d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)class OpaqueBrowserFrameViewLayout;
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class Profile;
11d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Handles platform specific configuration concepts.
13d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)class OpaqueBrowserFrameViewPlatformSpecific {
14d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) public:
15d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  virtual ~OpaqueBrowserFrameViewPlatformSpecific() {}
16d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  // Returns whether we're using native system like rendering for theme
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  // elements.
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  //
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // Why not just ask ThemeService::UsingSystemTheme()? Because on Windows, the
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // default theme is UsingSystemTheme(). Therefore, the default implementation
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  // always returns false and we specifically override this on Linux.
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual bool IsUsingSystemTheme();
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  // Builds an observer for |view| and |layout|.
26d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  static OpaqueBrowserFrameViewPlatformSpecific* Create(
27d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)      OpaqueBrowserFrameView* view,
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      OpaqueBrowserFrameViewLayout* layout,
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      Profile* profile);
30d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)};
31d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
32d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_PLATFORM_SPECIFIC_H_
33