| Index: ash/common/system/chromeos/bluetooth/tray_bluetooth.cc
|
| diff --git a/ash/common/system/chromeos/bluetooth/tray_bluetooth.cc b/ash/common/system/chromeos/bluetooth/tray_bluetooth.cc
|
| index c3cd91d650e401804fb35d316d98df250546cc4d..6e6042356fb4eaec6c18121d2980a2b6e49c8343 100644
|
| --- a/ash/common/system/chromeos/bluetooth/tray_bluetooth.cc
|
| +++ b/ash/common/system/chromeos/bluetooth/tray_bluetooth.cc
|
| @@ -23,8 +23,10 @@
|
| #include "grit/ash_strings.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/base/resource/resource_bundle.h"
|
| +#include "ui/gfx/color_palette.h"
|
| #include "ui/gfx/image/image.h"
|
| #include "ui/gfx/paint_vector_icon.h"
|
| +#include "ui/gfx/vector_icons_public.h"
|
| #include "ui/views/controls/button/toggle_button.h"
|
| #include "ui/views/controls/image_view.h"
|
| #include "ui/views/controls/label.h"
|
| @@ -230,10 +232,12 @@ class BluetoothDetailedView : public TrayDetailsView {
|
| }
|
|
|
| void UpdateHeaderEntry() {
|
| - if (toggle_bluetooth_) {
|
| - toggle_bluetooth_->SetToggled(
|
| - !WmShell::Get()->system_tray_delegate()->GetBluetoothEnabled());
|
| - }
|
| + bool is_bluetooth_enabled =
|
| + WmShell::Get()->system_tray_delegate()->GetBluetoothEnabled();
|
| + if (toggle_)
|
| + toggle_->SetIsOn(is_bluetooth_enabled, false);
|
| + else if (toggle_bluetooth_)
|
| + toggle_bluetooth_->SetToggled(!is_bluetooth_enabled);
|
| }
|
|
|
| void UpdateDeviceScrollList() {
|
| @@ -280,11 +284,18 @@ class BluetoothDetailedView : public TrayDetailsView {
|
| bool enabled) {
|
| for (size_t i = 0; i < list.size(); ++i) {
|
| HoverHighlightView* container =
|
| - AddScrollListItem(list[i].display_name, highlight, checked, enabled);
|
| + MaterialDesignController::IsSystemTrayMenuMaterial()
|
| + ? AddScrollListItemWithIcon(list[i].display_name, highlight,
|
| + checked, enabled, list[i].icon_image)
|
| + : AddScrollListItem(list[i].display_name, highlight, checked,
|
| + enabled);
|
| device_map_[container] = list[i].address;
|
| }
|
| }
|
|
|
| + // TODO(fukino): Remove this code when material design is enabled by default,
|
| + // since AddScrollListItem should be used only in the old design.
|
| + // See crbug.com/614453".
|
| HoverHighlightView* AddScrollListItem(const base::string16& text,
|
| bool highlight,
|
| bool checked,
|
| @@ -297,6 +308,25 @@ class BluetoothDetailedView : public TrayDetailsView {
|
| return container;
|
| }
|
|
|
| + HoverHighlightView* AddScrollListItemWithIcon(const base::string16& text,
|
| + bool highlight,
|
| + bool checked,
|
| + bool enabled,
|
| + const gfx::ImageSkia& image) {
|
| + HoverHighlightView* container = new HoverHighlightView(this);
|
| + const int padding = (kMenuButtonSize - image.width()) / 2;
|
| + container->AddIconAndLabelCustomSize(
|
| + image, text, highlight,
|
| + image.width() + kMenuSeparatorVerticalPadding * 2, padding, padding);
|
| + gfx::ImageSkia check_mark =
|
| + CreateVectorIcon(gfx::VectorIconId::CHECK_CIRCLE, gfx::kGoogleGreen700);
|
| + container->AddRightIcon(check_mark, check_mark.width());
|
| + container->SetRightIconVisible(checked);
|
| + container->text_label()->SetEnabled(enabled);
|
| + scroll_content()->AddChildView(container);
|
| + return container;
|
| + }
|
| +
|
| // Add settings entries.
|
| void AppendSettingsEntries() {
|
| if (!WmShell::Get()->system_tray_delegate()->ShouldShowSettings())
|
| @@ -389,9 +419,10 @@ class BluetoothDetailedView : public TrayDetailsView {
|
| void HandleButtonPressed(views::Button* sender,
|
| const ui::Event& event) override {
|
| if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
|
| - // TODO(fukino): Make the toggle button functional.
|
| if (sender == toggle_)
|
| - toggle_->SetIsOn(toggle_->is_on(), true);
|
| + WmShell::Get()->system_tray_delegate()->ToggleBluetooth();
|
| + else
|
| + NOTREACHED();
|
| return;
|
| }
|
|
|
|
|