OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/common/system/chromeos/ime_menu/ime_list_view.h" | 5 #include "ash/common/system/chromeos/ime_menu/ime_list_view.h" |
6 | 6 |
7 #include "ash/common/material_design/material_design_controller.h" | 7 #include "ash/common/material_design/material_design_controller.h" |
8 #include "ash/common/system/tray/hover_highlight_view.h" | 8 #include "ash/common/system/tray/hover_highlight_view.h" |
9 #include "ash/common/system/tray/ime_info.h" | 9 #include "ash/common/system/tray/ime_info.h" |
10 #include "ash/common/system/tray/system_menu_button.h" | 10 #include "ash/common/system/tray/system_menu_button.h" |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 const int kMinFontSizeDelta = -10; | 43 const int kMinFontSizeDelta = -10; |
44 | 44 |
45 const SkColor kKeyboardRowSeparatorColor = SkColorSetA(SK_ColorBLACK, 0x1F); | 45 const SkColor kKeyboardRowSeparatorColor = SkColorSetA(SK_ColorBLACK, 0x1F); |
46 | 46 |
47 // Creates a separator that will be used between the IME list items. | 47 // Creates a separator that will be used between the IME list items. |
48 views::Separator* CreateListItemSeparator() { | 48 views::Separator* CreateListItemSeparator() { |
49 views::Separator* separator = | 49 views::Separator* separator = |
50 new views::Separator(views::Separator::HORIZONTAL); | 50 new views::Separator(views::Separator::HORIZONTAL); |
51 separator->SetColor(kBorderLightColor); | 51 separator->SetColor(kBorderLightColor); |
52 separator->SetPreferredSize(kSeparatorWidth); | 52 separator->SetPreferredSize(kSeparatorWidth); |
53 separator->SetBorder(views::Border::CreateEmptyBorder( | 53 separator->SetBorder( |
54 kMenuSeparatorVerticalPadding, | 54 views::CreateEmptyBorder(kMenuSeparatorVerticalPadding, |
55 kMenuExtraMarginFromLeftEdge + kMenuButtonSize, | 55 kMenuExtraMarginFromLeftEdge + kMenuButtonSize, |
56 kMenuSeparatorVerticalPadding, 0)); | 56 kMenuSeparatorVerticalPadding, 0)); |
57 return separator; | 57 return separator; |
58 } | 58 } |
59 | 59 |
60 // A |HoverHighlightView| that uses bold or normal font depending on whether it | 60 // A |HoverHighlightView| that uses bold or normal font depending on whether it |
61 // is selected. This view exposes itself as a checkbox to the accessibility | 61 // is selected. This view exposes itself as a checkbox to the accessibility |
62 // framework. | 62 // framework. |
63 class SelectableHoverHighlightView : public HoverHighlightView { | 63 class SelectableHoverHighlightView : public HoverHighlightView { |
64 public: | 64 public: |
65 SelectableHoverHighlightView(ViewClickListener* listener, | 65 SelectableHoverHighlightView(ViewClickListener* listener, |
66 const base::string16& label, | 66 const base::string16& label, |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 int GetHeightForWidth(int w) const override { | 194 int GetHeightForWidth(int w) const override { |
195 return GetPreferredSize().height(); | 195 return GetPreferredSize().height(); |
196 } | 196 } |
197 | 197 |
198 void OnNativeThemeChanged(const ui::NativeTheme* theme) override { | 198 void OnNativeThemeChanged(const ui::NativeTheme* theme) override { |
199 UpdateStyle(); | 199 UpdateStyle(); |
200 } | 200 } |
201 | 201 |
202 private: | 202 private: |
203 void Init() { | 203 void Init() { |
204 SetBorder(views::Border::CreateSolidSidedBorder( | 204 SetBorder(views::CreateSolidSidedBorder(kKeyboardRowSeparatorThickness, 0, |
205 kKeyboardRowSeparatorThickness, 0, 0, 0, kKeyboardRowSeparatorColor)); | 205 0, 0, kKeyboardRowSeparatorColor)); |
206 TriView* tri_view = TrayPopupUtils::CreateDefaultRowView(); | 206 TriView* tri_view = TrayPopupUtils::CreateDefaultRowView(); |
207 AddChildView(tri_view); | 207 AddChildView(tri_view); |
208 SetLayoutManager(new views::FillLayout); | 208 SetLayoutManager(new views::FillLayout); |
209 | 209 |
210 // The on-screen keyboard image button. | 210 // The on-screen keyboard image button. |
211 views::ImageView* keyboard_image = TrayPopupUtils::CreateMainImageView(); | 211 views::ImageView* keyboard_image = TrayPopupUtils::CreateMainImageView(); |
212 keyboard_image->SetImage(gfx::CreateVectorIcon( | 212 keyboard_image->SetImage(gfx::CreateVectorIcon( |
213 kImeMenuOnScreenKeyboardIcon, kMenuIconSize, kMenuIconColor)); | 213 kImeMenuOnScreenKeyboardIcon, kMenuIconSize, kMenuIconColor)); |
214 tri_view->AddView(TriView::Container::START, keyboard_image); | 214 tri_view->AddView(TriView::Container::START, keyboard_image); |
215 | 215 |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 } | 317 } |
318 | 318 |
319 void ImeListView::AppendIMEProperties( | 319 void ImeListView::AppendIMEProperties( |
320 const IMEPropertyInfoList& property_list) { | 320 const IMEPropertyInfoList& property_list) { |
321 DCHECK(property_map_.empty()); | 321 DCHECK(property_map_.empty()); |
322 for (size_t i = 0; i < property_list.size(); i++) { | 322 for (size_t i = 0; i < property_list.size(); i++) { |
323 HoverHighlightView* container = new SelectableHoverHighlightView( | 323 HoverHighlightView* container = new SelectableHoverHighlightView( |
324 this, property_list[i].name, property_list[i].selected); | 324 this, property_list[i].name, property_list[i].selected); |
325 if (i == 0) | 325 if (i == 0) |
326 container->SetBorder( | 326 container->SetBorder( |
327 views::Border::CreateSolidSidedBorder(1, 0, 0, 0, kBorderLightColor)); | 327 views::CreateSolidSidedBorder(1, 0, 0, 0, kBorderLightColor)); |
328 scroll_content()->AddChildView(container); | 328 scroll_content()->AddChildView(container); |
329 property_map_[container] = property_list[i].key; | 329 property_map_[container] = property_list[i].key; |
330 } | 330 } |
331 } | 331 } |
332 | 332 |
333 void ImeListView::AppendImeListAndProperties( | 333 void ImeListView::AppendImeListAndProperties( |
334 const IMEInfoList& list, | 334 const IMEInfoList& list, |
335 const IMEPropertyInfoList& property_list) { | 335 const IMEPropertyInfoList& property_list) { |
336 DCHECK(ime_map_.empty()); | 336 DCHECK(ime_map_.empty()); |
337 for (size_t i = 0; i < list.size(); i++) { | 337 for (size_t i = 0; i < list.size(); i++) { |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 } | 412 } |
413 | 413 |
414 void ImeListView::ButtonPressed(views::Button* sender, const ui::Event& event) { | 414 void ImeListView::ButtonPressed(views::Button* sender, const ui::Event& event) { |
415 if (material_keyboard_statuts_view_ && | 415 if (material_keyboard_statuts_view_ && |
416 sender == material_keyboard_statuts_view_->toggle()) { | 416 sender == material_keyboard_statuts_view_->toggle()) { |
417 WmShell::Get()->ToggleIgnoreExternalKeyboard(); | 417 WmShell::Get()->ToggleIgnoreExternalKeyboard(); |
418 } | 418 } |
419 } | 419 } |
420 | 420 |
421 } // namespace ash | 421 } // namespace ash |
OLD | NEW |