| 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 "ash/system/tray/tray_utils.h" | 5 #include "ash/system/tray/tray_utils.h" |
| 6 | 6 |
| 7 #include "ash/shelf/shelf_util.h" |
| 7 #include "ash/system/tray/tray_constants.h" | 8 #include "ash/system/tray/tray_constants.h" |
| 8 #include "ash/system/tray/tray_item_view.h" | 9 #include "ash/system/tray/tray_item_view.h" |
| 9 #include "ui/accessibility/ax_view_state.h" | 10 #include "ui/accessibility/ax_view_state.h" |
| 10 #include "ui/gfx/font_list.h" | 11 #include "ui/gfx/font_list.h" |
| 11 #include "ui/gfx/geometry/vector2d.h" | 12 #include "ui/gfx/geometry/vector2d.h" |
| 12 #include "ui/views/border.h" | 13 #include "ui/views/border.h" |
| 13 #include "ui/views/controls/label.h" | 14 #include "ui/views/controls/label.h" |
| 14 | 15 |
| 15 namespace ash { | 16 namespace ash { |
| 16 | 17 |
| 17 void SetupLabelForTray(views::Label* label) { | 18 void SetupLabelForTray(views::Label* label) { |
| 18 label->SetFontList(gfx::FontList().Derive(1, gfx::Font::BOLD)); | 19 label->SetFontList(gfx::FontList().Derive(1, gfx::Font::BOLD)); |
| 19 label->SetAutoColorReadabilityEnabled(false); | 20 label->SetAutoColorReadabilityEnabled(false); |
| 20 label->SetEnabledColor(SK_ColorWHITE); | 21 label->SetEnabledColor(SK_ColorWHITE); |
| 21 label->SetBackgroundColor(SkColorSetARGB(0, 255, 255, 255)); | 22 label->SetBackgroundColor(SkColorSetARGB(0, 255, 255, 255)); |
| 22 label->SetShadows(gfx::ShadowValues( | 23 label->SetShadows(gfx::ShadowValues( |
| 23 1, | 24 1, |
| 24 gfx::ShadowValue(gfx::Vector2d(0, 1), 0, SkColorSetARGB(64, 0, 0, 0)))); | 25 gfx::ShadowValue(gfx::Vector2d(0, 1), 0, SkColorSetARGB(64, 0, 0, 0)))); |
| 25 } | 26 } |
| 26 | 27 |
| 27 void SetTrayImageItemBorder(views::View* tray_view, | 28 void SetTrayImageItemBorder(views::View* tray_view, |
| 28 ShelfAlignment alignment) { | 29 ShelfAlignment alignment) { |
| 29 if (alignment == SHELF_ALIGNMENT_BOTTOM) { | 30 if (IsHorizontalAlignment(alignment)) { |
| 30 tray_view->SetBorder(views::Border::CreateEmptyBorder( | 31 tray_view->SetBorder(views::Border::CreateEmptyBorder( |
| 31 0, | 32 0, kTrayImageItemHorizontalPaddingBottomAlignment, 0, |
| 32 kTrayImageItemHorizontalPaddingBottomAlignment, | |
| 33 0, | |
| 34 kTrayImageItemHorizontalPaddingBottomAlignment)); | 33 kTrayImageItemHorizontalPaddingBottomAlignment)); |
| 35 } else { | 34 } else { |
| 36 tray_view->SetBorder(views::Border::CreateEmptyBorder( | 35 tray_view->SetBorder(views::Border::CreateEmptyBorder( |
| 37 kTrayImageItemVerticalPaddingVerticalAlignment, | 36 kTrayImageItemVerticalPaddingVerticalAlignment, |
| 38 kTrayImageItemHorizontalPaddingVerticalAlignment, | 37 kTrayImageItemHorizontalPaddingVerticalAlignment, |
| 39 kTrayImageItemVerticalPaddingVerticalAlignment, | 38 kTrayImageItemVerticalPaddingVerticalAlignment, |
| 40 kTrayImageItemHorizontalPaddingVerticalAlignment)); | 39 kTrayImageItemHorizontalPaddingVerticalAlignment)); |
| 41 } | 40 } |
| 42 } | 41 } |
| 43 | 42 |
| 44 void SetTrayLabelItemBorder(TrayItemView* tray_view, | 43 void SetTrayLabelItemBorder(TrayItemView* tray_view, |
| 45 ShelfAlignment alignment) { | 44 ShelfAlignment alignment) { |
| 46 if (alignment == SHELF_ALIGNMENT_BOTTOM) { | 45 if (IsHorizontalAlignment(alignment)) { |
| 47 tray_view->SetBorder(views::Border::CreateEmptyBorder( | 46 tray_view->SetBorder(views::Border::CreateEmptyBorder( |
| 48 0, | 47 0, kTrayLabelItemHorizontalPaddingBottomAlignment, 0, |
| 49 kTrayLabelItemHorizontalPaddingBottomAlignment, | |
| 50 0, | |
| 51 kTrayLabelItemHorizontalPaddingBottomAlignment)); | 48 kTrayLabelItemHorizontalPaddingBottomAlignment)); |
| 52 } else { | 49 } else { |
| 53 // Center the label for vertical launcher alignment. | 50 // Center the label for vertical launcher alignment. |
| 54 int horizontal_padding = std::max(0, | 51 int horizontal_padding = std::max(0, |
| 55 (tray_view->GetPreferredSize().width() - | 52 (tray_view->GetPreferredSize().width() - |
| 56 tray_view->label()->GetPreferredSize().width()) / 2); | 53 tray_view->label()->GetPreferredSize().width()) / 2); |
| 57 tray_view->SetBorder(views::Border::CreateEmptyBorder( | 54 tray_view->SetBorder(views::Border::CreateEmptyBorder( |
| 58 kTrayLabelItemVerticalPaddingVerticalAlignment, | 55 kTrayLabelItemVerticalPaddingVerticalAlignment, horizontal_padding, |
| 59 horizontal_padding, | 56 kTrayLabelItemVerticalPaddingVerticalAlignment, horizontal_padding)); |
| 60 kTrayLabelItemVerticalPaddingVerticalAlignment, | |
| 61 horizontal_padding)); | |
| 62 } | 57 } |
| 63 } | 58 } |
| 64 | 59 |
| 65 void GetAccessibleLabelFromDescendantViews( | 60 void GetAccessibleLabelFromDescendantViews( |
| 66 views::View* view, | 61 views::View* view, |
| 67 std::vector<base::string16>& out_labels) { | 62 std::vector<base::string16>& out_labels) { |
| 68 ui::AXViewState temp_state; | 63 ui::AXViewState temp_state; |
| 69 view->GetAccessibleState(&temp_state); | 64 view->GetAccessibleState(&temp_state); |
| 70 if (!temp_state.name.empty()) | 65 if (!temp_state.name.empty()) |
| 71 out_labels.push_back(temp_state.name); | 66 out_labels.push_back(temp_state.name); |
| 72 | 67 |
| 73 // Do not descend into static text labels which may compute their own labels | 68 // Do not descend into static text labels which may compute their own labels |
| 74 // recursively. | 69 // recursively. |
| 75 if (temp_state.role == ui::AX_ROLE_STATIC_TEXT) | 70 if (temp_state.role == ui::AX_ROLE_STATIC_TEXT) |
| 76 return; | 71 return; |
| 77 | 72 |
| 78 for (int i = 0; i < view->child_count(); ++i) | 73 for (int i = 0; i < view->child_count(); ++i) |
| 79 GetAccessibleLabelFromDescendantViews(view->child_at(i), out_labels); | 74 GetAccessibleLabelFromDescendantViews(view->child_at(i), out_labels); |
| 80 } | 75 } |
| 81 | 76 |
| 82 } // namespace ash | 77 } // namespace ash |
| OLD | NEW |