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 13class ThemeService; 14 15// Plumbs button change events from views::LinuxUI to 16// OpaqueBrowserFrameViewLayout. 17class OpaqueBrowserFrameViewLinux 18 : public OpaqueBrowserFrameViewPlatformSpecific, 19 public views::WindowButtonOrderObserver { 20 public: 21 OpaqueBrowserFrameViewLinux( 22 OpaqueBrowserFrameView* view, 23 OpaqueBrowserFrameViewLayout* layout, 24 Profile* profile); 25 virtual ~OpaqueBrowserFrameViewLinux(); 26 27 // Overridden from OpaqueBrowserFrameViewPlatformSpecific: 28 virtual bool IsUsingSystemTheme() OVERRIDE; 29 30 // Overridden from views::WindowButtonOrderObserver: 31 virtual 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_ 45