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_menu_tray.h" | 5 #include "ash/common/system/chromeos/ime_menu/ime_menu_tray.h" |
6 | 6 |
7 #include "ash/common/accessibility_delegate.h" | 7 #include "ash/common/accessibility_delegate.h" |
8 #include "ash/common/ash_constants.h" | 8 #include "ash/common/ash_constants.h" |
9 #include "ash/common/material_design/material_design_controller.h" | 9 #include "ash/common/material_design/material_design_controller.h" |
10 #include "ash/common/session/session_state_delegate.h" | 10 #include "ash/common/session/session_state_delegate.h" |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 }; | 83 }; |
84 | 84 |
85 SystemMenuButton* CreateImeMenuButton(views::ButtonListener* listener, | 85 SystemMenuButton* CreateImeMenuButton(views::ButtonListener* listener, |
86 const gfx::VectorIcon& icon, | 86 const gfx::VectorIcon& icon, |
87 int accessible_name_id, | 87 int accessible_name_id, |
88 int right_border) { | 88 int right_border) { |
89 SystemMenuButton* button = | 89 SystemMenuButton* button = |
90 new SystemMenuButton(listener, SystemMenuButton::InkDropStyle::SQUARE, | 90 new SystemMenuButton(listener, SystemMenuButton::InkDropStyle::SQUARE, |
91 icon, accessible_name_id); | 91 icon, accessible_name_id); |
92 if (!MaterialDesignController::IsShelfMaterial()) { | 92 if (!MaterialDesignController::IsShelfMaterial()) { |
93 button->SetBorder(views::Border::CreateSolidSidedBorder( | 93 button->SetBorder( |
94 0, 0, 0, right_border, kBorderDarkColor)); | 94 views::CreateSolidSidedBorder(0, 0, 0, right_border, kBorderDarkColor)); |
95 } | 95 } |
96 return button; | 96 return button; |
97 } | 97 } |
98 | 98 |
99 // The view that contains IME menu title in the material design. | 99 // The view that contains IME menu title in the material design. |
100 class ImeTitleView : public views::View { | 100 class ImeTitleView : public views::View { |
101 public: | 101 public: |
102 ImeTitleView() { | 102 ImeTitleView() { |
103 auto* box_layout = new views::BoxLayout(views::BoxLayout::kHorizontal, 0, | 103 auto* box_layout = new views::BoxLayout(views::BoxLayout::kHorizontal, 0, |
104 kMenuSeparatorVerticalPadding, 0); | 104 kMenuSeparatorVerticalPadding, 0); |
105 SetLayoutManager(box_layout); | 105 SetLayoutManager(box_layout); |
106 | 106 |
107 views::Label* title_label = | 107 views::Label* title_label = |
108 new views::Label(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_IME)); | 108 new views::Label(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_IME)); |
109 const int title_padding = | 109 const int title_padding = |
110 kMenuSeparatorVerticalPadding + (kMenuButtonSize - kMenuIconSize) / 2; | 110 kMenuSeparatorVerticalPadding + (kMenuButtonSize - kMenuIconSize) / 2; |
111 title_label->SetBorder( | 111 title_label->SetBorder(views::CreateEmptyBorder(0, title_padding, 0, 0)); |
112 views::Border::CreateEmptyBorder(0, title_padding, 0, 0)); | |
113 title_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 112 title_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
114 TrayPopupItemStyle style(GetNativeTheme(), | 113 TrayPopupItemStyle style(GetNativeTheme(), |
115 TrayPopupItemStyle::FontStyle::TITLE); | 114 TrayPopupItemStyle::FontStyle::TITLE); |
116 style.SetupLabel(title_label); | 115 style.SetupLabel(title_label); |
117 AddChildView(title_label); | 116 AddChildView(title_label); |
118 box_layout->SetFlexForView(title_label, 1); | 117 box_layout->SetFlexForView(title_label, 1); |
119 } | 118 } |
120 | 119 |
121 ~ImeTitleView() override {} | 120 ~ImeTitleView() override {} |
122 | 121 |
(...skipping 16 matching lines...) Expand all Loading... |
139 public ViewClickListener { | 138 public ViewClickListener { |
140 public: | 139 public: |
141 ImeButtonsView(ImeMenuTray* ime_menu_tray, | 140 ImeButtonsView(ImeMenuTray* ime_menu_tray, |
142 bool show_emoji_button, | 141 bool show_emoji_button, |
143 bool show_voice_button, | 142 bool show_voice_button, |
144 bool show_handwriting_button, | 143 bool show_handwriting_button, |
145 bool show_settings_button) | 144 bool show_settings_button) |
146 : ime_menu_tray_(ime_menu_tray) { | 145 : ime_menu_tray_(ime_menu_tray) { |
147 DCHECK(ime_menu_tray_); | 146 DCHECK(ime_menu_tray_); |
148 | 147 |
149 SetBorder( | 148 SetBorder(views::CreateSolidSidedBorder(1, 0, 0, 0, kBorderDarkColor)); |
150 views::Border::CreateSolidSidedBorder(1, 0, 0, 0, kBorderDarkColor)); | |
151 | 149 |
152 // If there's only one settings button, the bottom should be a label with | 150 // If there's only one settings button, the bottom should be a label with |
153 // normal background. Otherwise, show button icons with header background. | 151 // normal background. Otherwise, show button icons with header background. |
154 if (show_settings_button && !show_emoji_button && | 152 if (show_settings_button && !show_emoji_button && |
155 !show_handwriting_button && !show_voice_button) { | 153 !show_handwriting_button && !show_voice_button) { |
156 ShowOneSettingButton(); | 154 ShowOneSettingButton(); |
157 } else { | 155 } else { |
158 ShowButtons(show_emoji_button, show_handwriting_button, show_voice_button, | 156 ShowButtons(show_emoji_button, show_handwriting_button, show_voice_button, |
159 show_settings_button); | 157 show_settings_button); |
160 } | 158 } |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 | 303 |
306 // In the material design, we will add a title item with a separator on the | 304 // In the material design, we will add a title item with a separator on the |
307 // top of the IME menu. | 305 // top of the IME menu. |
308 if (MaterialDesignController::IsSystemTrayMenuMaterial()) { | 306 if (MaterialDesignController::IsSystemTrayMenuMaterial()) { |
309 ImeTitleView* title_view = new ImeTitleView(); | 307 ImeTitleView* title_view = new ImeTitleView(); |
310 bubble_view->AddChildView(title_view); | 308 bubble_view->AddChildView(title_view); |
311 views::Separator* separator = | 309 views::Separator* separator = |
312 new views::Separator(views::Separator::HORIZONTAL); | 310 new views::Separator(views::Separator::HORIZONTAL); |
313 separator->SetColor(kBorderLightColor); | 311 separator->SetColor(kBorderLightColor); |
314 separator->SetPreferredSize(kSeparatorWidth); | 312 separator->SetPreferredSize(kSeparatorWidth); |
315 separator->SetBorder(views::Border::CreateEmptyBorder( | 313 separator->SetBorder( |
316 0, 0, kMenuSeparatorVerticalPadding, 0)); | 314 views::CreateEmptyBorder(0, 0, kMenuSeparatorVerticalPadding, 0)); |
317 bubble_view->AddChildView(separator); | 315 bubble_view->AddChildView(separator); |
318 } | 316 } |
319 | 317 |
320 // Adds IME list to the bubble. | 318 // Adds IME list to the bubble. |
321 ime_list_view_ = | 319 ime_list_view_ = |
322 new ImeListView(nullptr, false, ImeListView::SHOW_SINGLE_IME); | 320 new ImeListView(nullptr, false, ImeListView::SHOW_SINGLE_IME); |
323 | 321 |
324 uint32_t current_height = ime_list_view_->scroll_content()->height(); | 322 uint32_t current_height = ime_list_view_->scroll_content()->height(); |
325 const gfx::Range height_range = GetImeListViewRange(); | 323 const gfx::Range height_range = GetImeListViewRange(); |
326 if (current_height > height_range.end()) { | 324 if (current_height > height_range.end()) { |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 } | 397 } |
400 } | 398 } |
401 | 399 |
402 bool ImeMenuTray::ShouldBlockShelfAutoHide() const { | 400 bool ImeMenuTray::ShouldBlockShelfAutoHide() const { |
403 return should_block_shelf_auto_hide_; | 401 return should_block_shelf_auto_hide_; |
404 } | 402 } |
405 | 403 |
406 void ImeMenuTray::SetShelfAlignment(ShelfAlignment alignment) { | 404 void ImeMenuTray::SetShelfAlignment(ShelfAlignment alignment) { |
407 TrayBackgroundView::SetShelfAlignment(alignment); | 405 TrayBackgroundView::SetShelfAlignment(alignment); |
408 if (!MaterialDesignController::IsShelfMaterial()) | 406 if (!MaterialDesignController::IsShelfMaterial()) |
409 tray_container()->SetBorder(views::Border::NullBorder()); | 407 tray_container()->SetBorder(views::NullBorder()); |
410 } | 408 } |
411 | 409 |
412 base::string16 ImeMenuTray::GetAccessibleNameForTray() { | 410 base::string16 ImeMenuTray::GetAccessibleNameForTray() { |
413 return l10n_util::GetStringUTF16(IDS_ASH_IME_MENU_ACCESSIBLE_NAME); | 411 return l10n_util::GetStringUTF16(IDS_ASH_IME_MENU_ACCESSIBLE_NAME); |
414 } | 412 } |
415 | 413 |
416 void ImeMenuTray::HideBubbleWithView(const views::TrayBubbleView* bubble_view) { | 414 void ImeMenuTray::HideBubbleWithView(const views::TrayBubbleView* bubble_view) { |
417 if (bubble_->bubble_view() == bubble_view) | 415 if (bubble_->bubble_view() == bubble_view) |
418 HideImeMenuBubble(); | 416 HideImeMenuBubble(); |
419 } | 417 } |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
535 WmShell::Get()->system_tray_delegate()->GetCurrentIME(¤t_ime_); | 533 WmShell::Get()->system_tray_delegate()->GetCurrentIME(¤t_ime_); |
536 | 534 |
537 // Updates the tray label based on the current input method. | 535 // Updates the tray label based on the current input method. |
538 if (current_ime_.third_party) | 536 if (current_ime_.third_party) |
539 label_->SetText(current_ime_.short_name + base::UTF8ToUTF16("*")); | 537 label_->SetText(current_ime_.short_name + base::UTF8ToUTF16("*")); |
540 else | 538 else |
541 label_->SetText(current_ime_.short_name); | 539 label_->SetText(current_ime_.short_name); |
542 } | 540 } |
543 | 541 |
544 } // namespace ash | 542 } // namespace ash |
OLD | NEW |