blob: 6916b52ad1303b7fdda75a7c67bc36d05ffdf853 [file] [log] [blame]
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_PLATFORM_SPECIFIC_H_
#define CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_PLATFORM_SPECIFIC_H_
class OpaqueBrowserFrameView;
class OpaqueBrowserFrameViewLayout;
class ThemeService;
// Handles platform specific configuration concepts.
class OpaqueBrowserFrameViewPlatformSpecific {
public:
virtual ~OpaqueBrowserFrameViewPlatformSpecific() {}
// Returns whether we're using native system like rendering for theme
// elements.
//
// Why not just ask ThemeService::UsingSystemTheme()? Because on Windows, the
// default theme is UsingSystemTheme(). Therefore, the default implementation
// always returns false and we specifically override this on Linux.
virtual bool IsUsingSystemTheme();
// Builds an observer for |view| and |layout|.
static OpaqueBrowserFrameViewPlatformSpecific* Create(
OpaqueBrowserFrameView* view,
OpaqueBrowserFrameViewLayout* layout,
ThemeService* theme_service);
};
#endif // CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_PLATFORM_SPECIFIC_H_