Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / frame / opaque_browser_frame_view_linux.h
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_LINUX_H_
6 #define CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_LINUX_H_
7
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.h"
11 #include "ui/views/linux_ui/window_button_order_observer.h"
12
13 class ThemeService;
14
15 // Plumbs button change events from views::LinuxUI to
16 // OpaqueBrowserFrameViewLayout.
17 class OpaqueBrowserFrameViewLinux
18     : public OpaqueBrowserFrameViewPlatformSpecific,
19       public views::WindowButtonOrderObserver {
20  public:
21   OpaqueBrowserFrameViewLinux(
22       OpaqueBrowserFrameView* view,
23       OpaqueBrowserFrameViewLayout* layout,
24       Profile* profile);
25   ~OpaqueBrowserFrameViewLinux() override;
26
27   // Overridden from OpaqueBrowserFrameViewPlatformSpecific:
28   bool IsUsingSystemTheme() override;
29
30   // Overridden from views::WindowButtonOrderObserver:
31   void OnWindowButtonOrderingChange(
32       const std::vector<views::FrameButton>& leading_buttons,
33       const std::vector<views::FrameButton>& trailing_buttons) override;
34
35  private:
36   OpaqueBrowserFrameView* view_;
37   OpaqueBrowserFrameViewLayout* layout_;
38
39   ThemeService* theme_service_;
40
41   DISALLOW_COPY_AND_ASSIGN(OpaqueBrowserFrameViewLinux);
42 };
43
44 #endif  // CHROME_BROWSER_UI_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_LINUX_H_