Chromium Code Reviews| Index: ash/common/system/chromeos/palette/palette_tray.cc |
| diff --git a/ash/common/system/chromeos/palette/palette_tray.cc b/ash/common/system/chromeos/palette/palette_tray.cc |
| index 9d01c2b0733a7092c95ad8f23305aa4f53e50c6a..2a3e401191e69b61918b05bfdc13f38a9b6a34f6 100644 |
| --- a/ash/common/system/chromeos/palette/palette_tray.cc |
| +++ b/ash/common/system/chromeos/palette/palette_tray.cc |
| @@ -22,7 +22,9 @@ |
| #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/paint_vector_icon.h" |
| +#include "ui/gfx/vector_icons_public.h" |
| #include "ui/views/controls/image_view.h" |
| #include "ui/views/controls/label.h" |
| #include "ui/views/controls/separator.h" |
| @@ -41,20 +43,24 @@ const int kVerticalShelfHorizontalPadding = 2; |
| const int kVerticalShelfVerticalPadding = 5; |
| // Width of the palette itself (dp). |
| -const int kPaletteWidth = 360; |
| +const int kPaletteWidth = 332; |
| // Size of icon in the shelf (dp). |
| const int kShelfIconSize = 18; |
| +// Margins between the title view and the edges around it (dp). |
| +const int kPaddingBetweenTitleAndTopEdge = 4; |
| +const int kPaddingBetweenTitleAndLeftEdge = 12; |
| +const int kPaddingBetweenTitleAndSeparator = 3; |
| + |
| +// Size of the header icons (dp). |
| +const int kIconSize = 20; |
| + |
| // Creates a separator. |
| views::Separator* CreateSeparator(views::Separator::Orientation orientation) { |
| - const int kSeparatorInset = 10; |
| - |
| views::Separator* separator = |
| new views::Separator(views::Separator::HORIZONTAL); |
| separator->SetColor(ash::kBorderDarkColor); |
| - separator->SetBorder( |
| - views::Border::CreateEmptyBorder(kSeparatorInset, 0, kSeparatorInset, 0)); |
| return separator; |
| } |
| @@ -66,8 +72,6 @@ class TitleView : public views::View, public views::ButtonListener { |
| auto* box_layout = |
| new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0); |
| SetLayoutManager(box_layout); |
| - SetBorder(views::Border::CreateEmptyBorder( |
| - 0, ash::kTrayPopupPaddingHorizontal, 0, 0)); |
| views::Label* text_label = |
| new views::Label(l10n_util::GetStringUTF16(IDS_ASH_PALETTE_TITLE)); |
| @@ -76,16 +80,20 @@ class TitleView : public views::View, public views::ButtonListener { |
| AddChildView(text_label); |
| box_layout->SetFlexForView(text_label, 1); |
| - help_button_ = new ash::TrayPopupHeaderButton(this, IDR_AURA_UBER_TRAY_HELP, |
| + gfx::ImageSkia settings_icon = CreateVectorIcon( |
| + gfx::VectorIconId::SETTINGS, kIconSize, gfx::kChromeIconGrey); |
| + // TODO: Add HELP icon |
|
stevenjb
2016/08/24 15:58:57
TODO(jdufault)
jdufault
2016/08/24 18:48:06
Oops - I forgot to delete that before submitting :
|
| + gfx::ImageSkia help_icon = CreateVectorIcon( |
| + gfx::VectorIconId::HELP, kIconSize, gfx::kChromeIconGrey); |
| + |
| + help_button_ = new ash::TrayPopupHeaderButton(this, help_icon, |
| IDS_ASH_STATUS_TRAY_HELP); |
| help_button_->SetTooltipText( |
| - l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SHUTDOWN)); |
| + l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_HELP)); |
| AddChildView(help_button_); |
| - AddChildView(CreateSeparator(views::Separator::VERTICAL)); |
| - |
| settings_button_ = new ash::TrayPopupHeaderButton( |
| - this, IDR_AURA_UBER_TRAY_SETTINGS, IDS_ASH_STATUS_TRAY_SETTINGS); |
| + this, settings_icon, IDS_ASH_STATUS_TRAY_SETTINGS); |
| settings_button_->SetTooltipText( |
| l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SETTINGS)); |
| AddChildView(settings_button_); |
| @@ -170,11 +178,19 @@ bool PaletteTray::OpenBubble() { |
| views::TrayBubbleView::Create(tray_container(), this, &init_params); |
| bubble_view->SetArrowPaintType(views::BubbleBorder::PAINT_NONE); |
| bubble_view->UseCompactMargins(); |
| - bubble_view->set_margins(gfx::Insets(bubble_view->margins().top(), 0, 0, 0)); |
| + bubble_view->set_margins(gfx::Insets(0, 0, 0, 0)); |
| // Add child views. |
| - bubble_view->AddChildView(new TitleView(this)); |
| - bubble_view->AddChildView(CreateSeparator(views::Separator::HORIZONTAL)); |
| + auto* title_view = new TitleView(this); |
| + title_view->SetBorder(views::Border::CreateEmptyBorder(gfx::Insets( |
| + kPaddingBetweenTitleAndTopEdge, kPaddingBetweenTitleAndLeftEdge, |
| + kPaddingBetweenTitleAndSeparator, 0))); |
| + bubble_view->AddChildView(title_view); |
| + |
| + auto* separator = CreateSeparator(views::Separator::HORIZONTAL); |
|
stevenjb
2016/08/24 15:58:57
We generally avoid using auto* like this. It's all
jdufault
2016/08/24 18:48:06
Done.
|
| + separator->SetBorder( |
| + views::Border::CreateEmptyBorder(gfx::Insets(0, 0, 4, 0))); |
| + bubble_view->AddChildView(separator); |
| AddToolsToView(bubble_view); |
| // Show the bubble. |
| @@ -187,21 +203,8 @@ bool PaletteTray::OpenBubble() { |
| void PaletteTray::AddToolsToView(views::View* host) { |
| std::vector<PaletteToolView> views = palette_tool_manager_->CreateViews(); |
| - |
| - // There may not be any registered tools. |
| - if (!views.size()) |
| - return; |
| - |
| - PaletteGroup group = views[0].group; |
| - for (const PaletteToolView& view : views) { |
| - // If the group changes, add a separator. |
| - if (group != view.group) { |
| - group = view.group; |
| - host->AddChildView(CreateSeparator(views::Separator::HORIZONTAL)); |
| - } |
| - |
| + for (const PaletteToolView& view : views) |
| host->AddChildView(view.view); |
| - } |
| } |
| void PaletteTray::SessionStateChanged( |
| @@ -244,10 +247,18 @@ gfx::Rect PaletteTray::GetAnchorRect( |
| // Move the palette to the left so the right edge of the palette aligns with |
| // the right edge of the tray button. |
| - if (IsHorizontalAlignment(shelf_alignment())) |
| - r.Offset(-r.width() + tray_container()->width(), 0); |
| - else |
| + if (IsHorizontalAlignment(shelf_alignment())) { |
| + // TODO(jdufault): Figure out a more robust adjustment method that does not |
| + // break in md-shelf. |
| + int icon_size = tray_container()->width(); |
| + if (tray_container()->border()) |
| + icon_size -= tray_container()->border()->GetInsets().width(); |
| + |
| + r.Offset(-r.width() + icon_size, 0); |
| + } else { |
| + // Vertical layout doesn't need the border adjustment that horizontal needs. |
| r.Offset(0, -r.height() + tray_container()->height()); |
| + } |
| return r; |
| } |