| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/status/volume_menu_button.h" | 5 #include "chrome/browser/chromeos/status/volume_menu_button.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
| 10 #include "chrome/browser/chromeos/audio/audio_handler.h" | 10 #include "chrome/browser/chromeos/audio/audio_handler.h" |
| 11 #include "chrome/browser/chromeos/status/status_area_bubble.h" | 11 #include "chrome/browser/chromeos/status/status_area_bubble.h" |
| 12 #include "chrome/browser/chromeos/system/runtime_environment.h" |
| 12 #include "chrome/browser/chromeos/view_ids.h" | 13 #include "chrome/browser/chromeos/view_ids.h" |
| 13 #include "grit/generated_resources.h" | 14 #include "grit/generated_resources.h" |
| 14 #include "grit/theme_resources.h" | 15 #include "grit/theme_resources.h" |
| 15 #include "ui/base/l10n/l10n_util.h" | 16 #include "ui/base/l10n/l10n_util.h" |
| 16 #include "ui/base/resource/resource_bundle.h" | 17 #include "ui/base/resource/resource_bundle.h" |
| 17 #include "ui/gfx/canvas.h" | 18 #include "ui/gfx/canvas.h" |
| 18 #include "ui/gfx/canvas_skia.h" | 19 #include "ui/gfx/canvas_skia.h" |
| 19 #include "ui/gfx/image/image.h" | 20 #include "ui/gfx/image/image.h" |
| 20 #include "ui/views/controls/menu/menu_item_view.h" | 21 #include "ui/views/controls/menu/menu_item_view.h" |
| 21 #include "ui/views/controls/menu/menu_runner.h" | 22 #include "ui/views/controls/menu/menu_runner.h" |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 | 166 |
| 166 namespace chromeos { | 167 namespace chromeos { |
| 167 | 168 |
| 168 //////////////////////////////////////////////////////////////////////////////// | 169 //////////////////////////////////////////////////////////////////////////////// |
| 169 // VolumeMenuButton | 170 // VolumeMenuButton |
| 170 | 171 |
| 171 VolumeMenuButton::VolumeMenuButton(StatusAreaButton::Delegate* delegate) | 172 VolumeMenuButton::VolumeMenuButton(StatusAreaButton::Delegate* delegate) |
| 172 : StatusAreaButton(delegate, this) { | 173 : StatusAreaButton(delegate, this) { |
| 173 set_id(VIEW_ID_STATUS_BUTTON_VOLUME); | 174 set_id(VIEW_ID_STATUS_BUTTON_VOLUME); |
| 174 UpdateIcon(); | 175 UpdateIcon(); |
| 175 // TODO(achuith): Query SystemKeyEventListener to determine when we | 176 |
| 176 // can show statusbar volume controls. | 177 DCHECK(SystemKeyEventListener::GetInstance() || |
| 177 SetVisible(false); | 178 !system::runtime_environment::IsRunningOnChromeOS()); |
| 179 if (SystemKeyEventListener::GetInstance()) |
| 180 SystemKeyEventListener::GetInstance()->AddStatusAreaVolumeObserver(this); |
| 178 } | 181 } |
| 179 | 182 |
| 180 VolumeMenuButton::~VolumeMenuButton() { | 183 VolumeMenuButton::~VolumeMenuButton() { |
| 184 if (SystemKeyEventListener::GetInstance()) |
| 185 SystemKeyEventListener::GetInstance()->RemoveStatusAreaVolumeObserver(this); |
| 181 } | 186 } |
| 182 | 187 |
| 183 int VolumeMenuButton::icon_width() { | 188 int VolumeMenuButton::icon_width() { |
| 184 return kVolumeIconWidth; | 189 return kVolumeIconWidth; |
| 185 } | 190 } |
| 186 | 191 |
| 187 void VolumeMenuButton::UpdateIcon() { | 192 void VolumeMenuButton::UpdateIcon() { |
| 188 const int volume_percent = GetVolumePercent(); | 193 const int volume_percent = GetVolumePercent(); |
| 189 string16 tooltip_text = (volume_percent == 0) | 194 string16 tooltip_text = (volume_percent == 0) |
| 190 ? l10n_util::GetStringUTF16(IDS_STATUSBAR_VOLUME_MUTE) | 195 ? l10n_util::GetStringUTF16(IDS_STATUSBAR_VOLUME_MUTE) |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 source->GetWidget()->GetTopLevelWidget(), | 231 source->GetWidget()->GetTopLevelWidget(), |
| 227 this, | 232 this, |
| 228 bounds, | 233 bounds, |
| 229 views::MenuItemView::TOPRIGHT, | 234 views::MenuItemView::TOPRIGHT, |
| 230 views::MenuRunner::HAS_MNEMONICS); | 235 views::MenuRunner::HAS_MNEMONICS); |
| 231 | 236 |
| 232 if (result != views::MenuRunner::MENU_DELETED) | 237 if (result != views::MenuRunner::MENU_DELETED) |
| 233 delete menu_runner; | 238 delete menu_runner; |
| 234 } | 239 } |
| 235 | 240 |
| 241 void VolumeMenuButton::ShowStatusAreaVolume(bool show) { |
| 242 SetVisible(show); |
| 243 } |
| 244 |
| 236 } // namespace chromeos | 245 } // namespace chromeos |
| OLD | NEW |