1 // Copyright (c) 2011 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_CHROMEOS_STATUS_STATUS_AREA_VIEW_H_ 6 #define CHROME_BROWSER_CHROMEOS_STATUS_STATUS_AREA_VIEW_H_ 7 #pragma once 8 9 #include "base/basictypes.h" 10 #include "chrome/browser/ui/views/accessible_pane_view.h" 11 #include "views/view.h" 12 13 namespace chromeos { 14 15 class ClockMenuButton; 16 class InputMethodMenuButton; 17 class NetworkMenuButton; 18 class PowerMenuButton; 19 class StatusAreaHost; 20 class WindowSwitcherButton; 21 22 // This class is used to wrap the small informative widgets in the upper-right 23 // of the window title bar. It is used on ChromeOS only. 24 class StatusAreaView : public AccessiblePaneView { 25 public: 26 explicit StatusAreaView(StatusAreaHost* host); 27 virtual ~StatusAreaView() {} 28 29 virtual void Init(); 30 void MakeButtonsActive(bool active); 31 32 // views::View* overrides. 33 virtual gfx::Size GetPreferredSize(); 34 virtual void Layout(); 35 virtual void ChildPreferredSizeChanged(View* child); 36 37 ClockMenuButton* clock_view() { return clock_view_; } 38 InputMethodMenuButton* input_method_view() { return input_method_view_; } 39 NetworkMenuButton* network_view() { return network_view_; } 40 PowerMenuButton* power_view() { return power_view_; } 41 WindowSwitcherButton* window_switcher_view() { 42 return window_switcher_view_; 43 } 44 45 private: 46 StatusAreaHost* host_; 47 48 ClockMenuButton* clock_view_; 49 InputMethodMenuButton* input_method_view_; 50 NetworkMenuButton* network_view_; 51 PowerMenuButton* power_view_; 52 WindowSwitcherButton* window_switcher_view_; 53 54 DISALLOW_COPY_AND_ASSIGN(StatusAreaView); 55 }; 56 57 } // namespace chromeos 58 59 #endif // CHROME_BROWSER_CHROMEOS_STATUS_STATUS_AREA_VIEW_H_ 60