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