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

Unified Diff: ash/system/audio/audio_detailed_view.cc

Issue 2831023003: Refactor AddScrollListItem() in system menu detailed views (Closed)
Patch Set: Rebased Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/system/audio/audio_detailed_view.h ('k') | ash/system/bluetooth/tray_bluetooth.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/audio/audio_detailed_view.cc
diff --git a/ash/system/audio/audio_detailed_view.cc b/ash/system/audio/audio_detailed_view.cc
index 2bcfc8b00f17f867832598513a239a629c96dd79..bf378b6d688b132be5c6fe21cadc9bfbfb08dd19 100644
--- a/ash/system/audio/audio_detailed_view.cc
+++ b/ash/system/audio/audio_detailed_view.cc
@@ -13,10 +13,7 @@
#include "chromeos/audio/cras_audio_handler.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/color_palette.h"
-#include "ui/gfx/paint_vector_icon.h"
-#include "ui/native_theme/native_theme.h"
#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
#include "ui/views/controls/scroll_view.h"
#include "ui/views/controls/separator.h"
@@ -73,47 +70,10 @@ void AudioDetailedView::Update() {
Layout();
}
-void AudioDetailedView::AddInputHeader() {
- AddScrollListInfoItem(IDS_ASH_STATUS_TRAY_AUDIO_INPUT,
- kSystemMenuAudioInputIcon);
-}
-
-void AudioDetailedView::AddOutputHeader() {
- AddScrollListInfoItem(IDS_ASH_STATUS_TRAY_AUDIO_OUTPUT,
- kSystemMenuAudioOutputIcon);
-}
-
-void AudioDetailedView::AddScrollListInfoItem(int text_id,
- const gfx::VectorIcon& icon) {
- TriView* header = TrayPopupUtils::CreateDefaultRowView();
- TrayPopupUtils::ConfigureAsStickyHeader(header);
- views::ImageView* image_view = TrayPopupUtils::CreateMainImageView();
- image_view->SetImage(gfx::CreateVectorIcon(
- icon, GetNativeTheme()->GetSystemColor(
- ui::NativeTheme::kColorId_ProminentButtonColor)));
- header->AddView(TriView::Container::START, image_view);
-
- views::Label* label = TrayPopupUtils::CreateDefaultLabel();
- label->SetText(l10n_util::GetStringUTF16(text_id));
- TrayPopupItemStyle style(TrayPopupItemStyle::FontStyle::SUB_HEADER);
- style.SetupLabel(label);
- header->AddView(TriView::Container::CENTER, label);
-
+void AudioDetailedView::AddAudioSubHeader(const gfx::VectorIcon& icon,
+ int text_id) {
+ TriView* header = AddScrollListSubHeader(icon, text_id);
header->SetContainerVisible(TriView::Container::END, false);
- scroll_content()->AddChildView(header);
-}
-
-HoverHighlightView* AudioDetailedView::AddScrollListItem(
- const base::string16& text,
- bool highlight,
- bool checked) {
- HoverHighlightView* container = new HoverHighlightView(this);
-
- container->AddLabelRow(text);
- TrayPopupUtils::InitializeAsCheckableRow(container, checked);
-
- scroll_content()->AddChildView(container);
- return container;
}
void AudioDetailedView::CreateItems() {
@@ -129,21 +89,20 @@ void AudioDetailedView::UpdateAudioDevices() {
audio_handler->GetAudioDevices(&devices);
bool has_dual_internal_mic = audio_handler->HasDualInternalMic();
bool is_front_or_rear_mic_active = false;
- for (size_t i = 0; i < devices.size(); ++i) {
+ for (const auto& device : devices) {
// Don't display keyboard mic or aokr type.
- if (!devices[i].is_for_simple_usage())
+ if (!device.is_for_simple_usage())
continue;
- if (devices[i].is_input) {
+ if (device.is_input) {
// Do not expose the internal front and rear mic to UI.
- if (has_dual_internal_mic &&
- audio_handler->IsFrontOrRearMic(devices[i])) {
- if (devices[i].active)
+ if (has_dual_internal_mic && audio_handler->IsFrontOrRearMic(device)) {
+ if (device.active)
is_front_or_rear_mic_active = true;
continue;
}
- input_devices_.push_back(devices[i]);
+ input_devices_.push_back(device);
} else {
- output_devices_.push_back(devices[i]);
+ output_devices_.push_back(device);
}
}
@@ -168,14 +127,15 @@ void AudioDetailedView::UpdateScrollableList() {
// Add audio output devices.
const bool has_output_devices = output_devices_.size() > 0;
- if (has_output_devices)
- AddOutputHeader();
-
- for (size_t i = 0; i < output_devices_.size(); ++i) {
- HoverHighlightView* container = AddScrollListItem(
- GetAudioDeviceName(output_devices_[i]), false /* highlight */,
- output_devices_[i].active); /* checkmark if active */
- device_map_[container] = output_devices_[i];
+ if (has_output_devices) {
+ AddAudioSubHeader(kSystemMenuAudioOutputIcon,
+ IDS_ASH_STATUS_TRAY_AUDIO_OUTPUT);
+ }
+
+ for (const auto& device : output_devices_) {
+ HoverHighlightView* container =
+ AddScrollListCheckableItem(GetAudioDeviceName(device), device.active);
+ device_map_[container] = device;
}
if (has_output_devices) {
@@ -185,14 +145,15 @@ void AudioDetailedView::UpdateScrollableList() {
// Add audio input devices.
const bool has_input_devices = input_devices_.size() > 0;
- if (has_input_devices)
- AddInputHeader();
-
- for (size_t i = 0; i < input_devices_.size(); ++i) {
- HoverHighlightView* container = AddScrollListItem(
- GetAudioDeviceName(input_devices_[i]), false /* highlight */,
- input_devices_[i].active); /* checkmark if active */
- device_map_[container] = input_devices_[i];
+ if (has_input_devices) {
+ AddAudioSubHeader(kSystemMenuAudioInputIcon,
+ IDS_ASH_STATUS_TRAY_AUDIO_INPUT);
+ }
+
+ for (const auto& device : input_devices_) {
+ HoverHighlightView* container =
+ AddScrollListCheckableItem(GetAudioDeviceName(device), device.active);
+ device_map_[container] = device;
}
scroll_content()->SizeToPreferredSize();
« no previous file with comments | « ash/system/audio/audio_detailed_view.h ('k') | ash/system/bluetooth/tray_bluetooth.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698