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::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