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