Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: chrome/browser/chromeos/status/volume_menu_button.cc

Issue 9169033: Support for showing/hiding status area volume controls in desktop devices (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: lint errors Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698