Index: chrome/browser/chromeos/status/status_area_view_chromeos.cc |
diff --git a/chrome/browser/chromeos/status/status_area_view_chromeos.cc b/chrome/browser/chromeos/status/status_area_view_chromeos.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f4eb77a5de31824206bb91104792bc26982b58a8 |
--- /dev/null |
+++ b/chrome/browser/chromeos/status/status_area_view_chromeos.cc |
@@ -0,0 +1,77 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/chromeos/status/status_area_view_chromeos.h" |
+ |
+#include "base/command_line.h" |
+#include "chrome/browser/chromeos/cros/cros_library.h" |
+#include "chrome/browser/chromeos/status/accessibility_menu_button.h" |
+#include "chrome/browser/chromeos/status/caps_lock_menu_button.h" |
+#include "chrome/browser/chromeos/status/clock_menu_button.h" |
+#include "chrome/browser/chromeos/status/input_method_menu_button.h" |
+#include "chrome/browser/chromeos/status/memory_menu_button.h" |
+#include "chrome/browser/chromeos/status/network_menu_button.h" |
+#include "chrome/browser/chromeos/status/power_menu_button.h" |
+#include "chrome/browser/chromeos/view_ids.h" |
+#include "chrome/common/chrome_switches.h" |
+ |
+namespace chromeos { |
+ |
+StatusAreaViewChromeos::StatusAreaViewChromeos() { |
+ CrosLibrary::Get()->GetPowerLibrary()->AddObserver(this); |
+ system::TimezoneSettings::GetInstance()->AddObserver(this); |
+} |
+ |
+StatusAreaViewChromeos::~StatusAreaViewChromeos() { |
+ CrosLibrary::Get()->GetPowerLibrary()->RemoveObserver(this); |
+ system::TimezoneSettings::GetInstance()->RemoveObserver(this); |
+} |
+ |
+void StatusAreaViewChromeos::Init(StatusAreaButton::Delegate* delegate, |
+ ScreenMode screen_mode) { |
+ AddChromeosButtons(this, delegate, screen_mode); |
+} |
+ |
+void StatusAreaViewChromeos::PowerChanged(const PowerSupplyStatus& status) { |
+} |
+ |
+void StatusAreaViewChromeos::SystemResumed() { |
+ UpdateClockText(); |
+} |
+ |
+void StatusAreaViewChromeos::TimezoneChanged(const icu::TimeZone& timezone) { |
+ UpdateClockText(); |
+} |
+ |
+void StatusAreaViewChromeos::UpdateClockText() { |
+ views::View* view = GetViewByID(VIEW_ID_STATUS_BUTTON_CLOCK); |
+ if (view) { |
+ ClockMenuButton* clock_button = static_cast<ClockMenuButton*>(view); |
+ clock_button->UpdateText(); |
+ } |
+} |
+ |
+// static |
+void StatusAreaViewChromeos::AddChromeosButtons( |
+ StatusAreaView* status_area, |
+ StatusAreaButton::Delegate* delegate, |
+ ScreenMode screen_mode) { |
+ const bool border = true; |
+ const bool no_border = false; |
+ |
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kMemoryWidget)) |
+ status_area->AddButton(new MemoryMenuButton(delegate), no_border); |
+ |
+ status_area->AddButton(new AccessibilityMenuButton(delegate), border); |
+ status_area->AddButton(new CapsLockMenuButton(delegate), border); |
+ status_area->AddButton(new ClockMenuButton(delegate), border); |
+ |
+ status_area->AddButton( |
+ new InputMethodMenuButton(delegate, screen_mode), no_border); |
+ status_area->AddButton( |
+ new NetworkMenuButton(delegate, screen_mode), no_border); |
+ status_area->AddButton(new PowerMenuButton(delegate), no_border); |
+} |
+ |
+} // namespace chromeos |