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_LINUX_H_
6d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#define CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_LINUX_H_
7d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/basictypes.h"
9d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/compiler_specific.h"
10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.h"
11d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/views/linux_ui/window_button_order_observer.h"
12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class ThemeService;
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
15d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Plumbs button change events from views::LinuxUI to
16d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// OpaqueBrowserFrameViewLayout.
17d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)class OpaqueBrowserFrameViewLinux
18d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)    : public OpaqueBrowserFrameViewPlatformSpecific,
19d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)      public views::WindowButtonOrderObserver {
20d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) public:
21d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  OpaqueBrowserFrameViewLinux(
22d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)      OpaqueBrowserFrameView* view,
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      OpaqueBrowserFrameViewLayout* layout,
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      Profile* profile);
25d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  virtual ~OpaqueBrowserFrameViewLinux();
26d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
27a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  // Overridden from OpaqueBrowserFrameViewPlatformSpecific:
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual bool IsUsingSystemTheme() OVERRIDE;
29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
30d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  // Overridden from views::WindowButtonOrderObserver:
31d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  virtual void OnWindowButtonOrderingChange(
32d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)      const std::vector<views::FrameButton>& leading_buttons,
33d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)      const std::vector<views::FrameButton>& trailing_buttons) OVERRIDE;
34d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
35d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) private:
36d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  OpaqueBrowserFrameView* view_;
37d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  OpaqueBrowserFrameViewLayout* layout_;
38d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ThemeService* theme_service_;
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
41d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(OpaqueBrowserFrameViewLinux);
42d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)};
43d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
44d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_LINUX_H_
45