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 13namespace chromeos { 14 15class ClockMenuButton; 16class InputMethodMenuButton; 17class NetworkMenuButton; 18class PowerMenuButton; 19class StatusAreaHost; 20class 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. 24class 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