Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: ash/common/system/chromeos/ime_menu/ime_menu_tray.cc

Issue 2540103003: Update the layout of opt-in IME menu. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 29 matching lines...) Expand all
40 #include "ui/views/controls/button/button.h" 40 #include "ui/views/controls/button/button.h"
41 #include "ui/views/controls/label.h" 41 #include "ui/views/controls/label.h"
42 #include "ui/views/controls/separator.h" 42 #include "ui/views/controls/separator.h"
43 #include "ui/views/layout/box_layout.h" 43 #include "ui/views/layout/box_layout.h"
44 44
45 using chromeos::input_method::InputMethodManager; 45 using chromeos::input_method::InputMethodManager;
46 46
47 namespace ash { 47 namespace ash {
48 48
49 namespace { 49 namespace {
50 // The width of the IME menu in dp.
51 const int kImeMenuWidth = 332;
tdanderson 2016/11/30 23:16:01 The system menu size has since been increased to 3
Azure Wei 2016/12/01 02:55:34 Done. Move kMinimumSystemTrayMenuWidth(Md) into tr
52
53 // The bottom padding of the title label.
54 const int kTitleRowBottomPadding = 5;
55
50 // Returns the height range of ImeListView. 56 // Returns the height range of ImeListView.
51 gfx::Range GetImeListViewRange() { 57 gfx::Range GetImeListViewRange() {
52 const int max_items = 5; 58 const int max_items = 5;
53 const int min_items = 2; 59 const int min_items = 2;
54 const int tray_item_height = GetTrayConstant(TRAY_POPUP_ITEM_MIN_HEIGHT); 60 const int tray_item_height = GetTrayConstant(TRAY_POPUP_ITEM_MIN_HEIGHT);
55 return gfx::Range(tray_item_height * min_items, tray_item_height * max_items); 61 return gfx::Range(tray_item_height * min_items, tray_item_height * max_items);
56 } 62 }
57 63
58 // Shows language and input settings page. 64 // Shows language and input settings page.
59 void ShowIMESettings() { 65 void ShowIMESettings() {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 views::CreateSolidSidedBorder(0, 0, kSeparatorWidth, 0, 113 views::CreateSolidSidedBorder(0, 0, kSeparatorWidth, 0,
108 kHorizontalSeparatorColor), 114 kHorizontalSeparatorColor),
109 gfx::Insets(kMenuSeparatorVerticalPadding - kSeparatorWidth, 0))); 115 gfx::Insets(kMenuSeparatorVerticalPadding - kSeparatorWidth, 0)));
110 auto* box_layout = 116 auto* box_layout =
111 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0); 117 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0);
112 box_layout->set_minimum_cross_axis_size( 118 box_layout->set_minimum_cross_axis_size(
113 GetTrayConstant(TRAY_POPUP_ITEM_MIN_HEIGHT)); 119 GetTrayConstant(TRAY_POPUP_ITEM_MIN_HEIGHT));
114 SetLayoutManager(box_layout); 120 SetLayoutManager(box_layout);
115 title_label_ = 121 title_label_ =
116 new views::Label(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_IME)); 122 new views::Label(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_IME));
117 title_label_->SetBorder( 123 title_label_->SetBorder(views::CreateEmptyBorder(
tdanderson 2016/11/30 23:16:01 For reference can you post a screenshot to the bug
Azure Wei 2016/12/01 02:55:34 Compared that the title row height should match. I
118 views::CreateEmptyBorder(0, kMenuEdgeEffectivePadding, 0, 0)); 124 0, kMenuEdgeEffectivePadding, kTitleRowBottomPadding, 0));
119 title_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); 125 title_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
120 AddChildView(title_label_); 126 AddChildView(title_label_);
121 box_layout->SetFlexForView(title_label_, 1); 127 box_layout->SetFlexForView(title_label_, 1);
122 128
123 if (show_settings_button) { 129 if (show_settings_button) {
124 settings_button_ = CreateImeMenuButton( 130 settings_button_ = CreateImeMenuButton(
125 this, kSystemMenuSettingsIcon, IDS_ASH_STATUS_TRAY_IME_SETTINGS, 0); 131 this, kSystemMenuSettingsIcon, IDS_ASH_STATUS_TRAY_IME_SETTINGS, 0);
126 if (IsInLoginOrLockScreen()) 132 if (IsInLoginOrLockScreen())
127 settings_button_->SetEnabled(false); 133 settings_button_->SetEnabled(false);
128 AddChildView(settings_button_); 134 AddChildView(settings_button_);
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 ImeMenuTray::~ImeMenuTray() { 324 ImeMenuTray::~ImeMenuTray() {
319 if (bubble_) 325 if (bubble_)
320 bubble_->bubble_view()->reset_delegate(); 326 bubble_->bubble_view()->reset_delegate();
321 SystemTrayNotifier* tray_notifier = WmShell::Get()->system_tray_notifier(); 327 SystemTrayNotifier* tray_notifier = WmShell::Get()->system_tray_notifier();
322 tray_notifier->RemoveIMEObserver(this); 328 tray_notifier->RemoveIMEObserver(this);
323 tray_notifier->RemoveVirtualKeyboardObserver(this); 329 tray_notifier->RemoveVirtualKeyboardObserver(this);
324 } 330 }
325 331
326 void ImeMenuTray::ShowImeMenuBubble() { 332 void ImeMenuTray::ShowImeMenuBubble() {
327 should_block_shelf_auto_hide_ = true; 333 should_block_shelf_auto_hide_ = true;
328 views::TrayBubbleView::InitParams init_params( 334 views::TrayBubbleView::InitParams init_params(GetAnchorAlignment(),
329 GetAnchorAlignment(), kTrayPopupMinWidth, kTrayPopupMaxWidth); 335 kImeMenuWidth, kImeMenuWidth);
330 init_params.can_activate = true; 336 init_params.can_activate = true;
331 init_params.close_on_deactivate = true; 337 init_params.close_on_deactivate = true;
332 338
333 views::TrayBubbleView* bubble_view = 339 views::TrayBubbleView* bubble_view =
334 views::TrayBubbleView::Create(GetBubbleAnchor(), this, &init_params); 340 views::TrayBubbleView::Create(GetBubbleAnchor(), this, &init_params);
335 bubble_view->set_anchor_view_insets(GetBubbleAnchorInsets()); 341 bubble_view->set_anchor_view_insets(GetBubbleAnchorInsets());
336 342
337 // In the material design, we will add a title item with a separator on the 343 // In the material design, we will add a title item with a separator on the
338 // top of the IME menu. 344 // top of the IME menu.
339 if (MaterialDesignController::IsSystemTrayMenuMaterial()) { 345 if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
(...skipping 10 matching lines...) Expand all
350 ImeListView::SHOW_SINGLE_IME); 356 ImeListView::SHOW_SINGLE_IME);
351 357
352 uint32_t current_height = ime_list_view_->scroll_content()->height(); 358 uint32_t current_height = ime_list_view_->scroll_content()->height();
353 const gfx::Range height_range = GetImeListViewRange(); 359 const gfx::Range height_range = GetImeListViewRange();
354 360
355 if (MaterialDesignController::IsSystemTrayMenuMaterial()) { 361 if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
356 ime_list_view_->scroller()->ClipHeightTo(height_range.start(), 362 ime_list_view_->scroller()->ClipHeightTo(height_range.start(),
357 height_range.end()); 363 height_range.end());
358 } else if (current_height > height_range.end()) { 364 } else if (current_height > height_range.end()) {
359 ime_list_view_->scroller()->SetFixedSize( 365 ime_list_view_->scroller()->SetFixedSize(
360 gfx::Size(kTrayPopupMaxWidth, height_range.end())); 366 gfx::Size(kImeMenuWidth, height_range.end()));
361 } else if (current_height < height_range.start()) { 367 } else if (current_height < height_range.start()) {
362 ime_list_view_->scroller()->SetFixedSize( 368 ime_list_view_->scroller()->SetFixedSize(
363 gfx::Size(kTrayPopupMaxWidth, height_range.start())); 369 gfx::Size(kImeMenuWidth, height_range.start()));
364 } 370 }
365 bubble_view->AddChildView(ime_list_view_); 371 bubble_view->AddChildView(ime_list_view_);
366 372
367 // The bottom view that contains buttons are not supported in login/lock 373 // The bottom view that contains buttons are not supported in login/lock
368 // screen. 374 // screen.
369 if (!IsInLoginOrLockScreen()) { 375 if (!IsInLoginOrLockScreen()) {
370 if (ShouldShowEmojiHandwritingVoiceButtons()) { 376 if (ShouldShowEmojiHandwritingVoiceButtons()) {
371 bubble_view->AddChildView( 377 bubble_view->AddChildView(
372 new ImeButtonsView(this, true, true, true, true)); 378 new ImeButtonsView(this, true, true, true, true));
373 } else if (!MaterialDesignController::IsSystemTrayMenuMaterial()) { 379 } else if (!MaterialDesignController::IsSystemTrayMenuMaterial()) {
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 WmShell::Get()->system_tray_delegate()->GetCurrentIME(&current_ime_); 567 WmShell::Get()->system_tray_delegate()->GetCurrentIME(&current_ime_);
562 568
563 // Updates the tray label based on the current input method. 569 // Updates the tray label based on the current input method.
564 if (current_ime_.third_party) 570 if (current_ime_.third_party)
565 label_->SetText(current_ime_.short_name + base::UTF8ToUTF16("*")); 571 label_->SetText(current_ime_.short_name + base::UTF8ToUTF16("*"));
566 else 572 else
567 label_->SetText(current_ime_.short_name); 573 label_->SetText(current_ime_.short_name);
568 } 574 }
569 575
570 } // namespace ash 576 } // namespace ash
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698