Commit 64ce634f authored by Shengsong Tan's avatar Shengsong Tan Committed by Chromium LUCI CQ

Adding metadata to ImeMenu views.

This is part of the "Views Posse" effort. See this document:
https://docs.google.com/document/d/1Rst3792TjXtVA8k8GXaPD8MnuB1JAneSOpIILdA4268/edit?usp=sharing

Bug: 1159562
Test: build
Change-Id: I784f58acb01fd54cc3efadf526ae0df5a5e9865f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2600418
Commit-Queue: Shengsong Tan <sstan@google.com>
Reviewed-by: default avatarTetsui Ohkubo <tetsui@chromium.org>
Reviewed-by: default avatarAllen Bauer <kylixrd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#839049}
parent 43fb9f71
......@@ -33,6 +33,7 @@
#include "ui/views/controls/label.h"
#include "ui/views/controls/separator.h"
#include "ui/views/layout/fill_layout.h"
#include "ui/views/metadata/metadata_impl_macros.h"
#include "ui/views/painter.h"
#include "ui/views/view.h"
#include "ui/views/widget/widget.h"
......@@ -46,6 +47,8 @@ const int kMinFontSizeDelta = -10;
// an IME property. A checkmark icon is shown in the row if selected.
class ImeListItemView : public ActionableView {
public:
METADATA_HEADER(ImeListItemView);
ImeListItemView(ImeListView* list_view,
const base::string16& id,
const base::string16& label,
......@@ -102,7 +105,8 @@ class ImeListItemView : public ActionableView {
}
SetAccessibleName(label_view->GetText());
}
ImeListItemView(const ImeListItemView&) = delete;
ImeListItemView& operator=(const ImeListItemView&) = delete;
~ImeListItemView() override = default;
// ActionableView:
......@@ -130,10 +134,11 @@ class ImeListItemView : public ActionableView {
private:
ImeListView* ime_list_view_;
bool selected_;
DISALLOW_COPY_AND_ASSIGN(ImeListItemView);
};
BEGIN_METADATA(ImeListItemView, ActionableView)
END_METADATA
} // namespace
// Contains a toggle button to let the user enable/disable whether the
......@@ -142,7 +147,11 @@ class ImeListItemView : public ActionableView {
// attached and the user is in TabletMode mode.
class KeyboardStatusRow : public views::View {
public:
METADATA_HEADER(KeyboardStatusRow);
KeyboardStatusRow() = default;
KeyboardStatusRow(const KeyboardStatusRow&) = delete;
KeyboardStatusRow& operator=(const KeyboardStatusRow&) = delete;
~KeyboardStatusRow() override = default;
views::ToggleButton* toggle() const { return toggle_; }
......@@ -181,16 +190,14 @@ class KeyboardStatusRow : public views::View {
tri_view->AddView(TriView::Container::END, toggle_);
}
// views::View:
const char* GetClassName() const override { return "KeyboardStatusRow"; }
private:
// ToggleButton to toggle keyboard on or off.
views::ToggleButton* toggle_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(KeyboardStatusRow);
};
BEGIN_METADATA(KeyboardStatusRow, views::View)
END_METADATA
ImeListView::ImeListView(DetailedViewDelegate* delegate)
: TrayDetailedView(delegate) {}
......@@ -347,10 +354,6 @@ void ImeListView::VisibilityChanged(View* starting_from, bool is_visible) {
ScrollItemToVisible(current_ime_view_);
}
const char* ImeListView::GetClassName() const {
return "ImeListView";
}
void ImeListView::FocusCurrentImeIfNeeded() {
views::FocusManager* manager = GetFocusManager();
if (!manager || manager->GetFocusedView() || last_selected_item_id_.empty())
......@@ -371,6 +374,9 @@ void ImeListView::FocusCurrentImeIfNeeded() {
}
}
BEGIN_METADATA(ImeListView, TrayDetailedView)
END_METADATA
ImeListViewTestApi::ImeListViewTestApi(ImeListView* ime_list_view)
: ime_list_view_(ime_list_view) {}
......
......@@ -10,6 +10,7 @@
#include "ash/ash_export.h"
#include "ash/system/tray/tray_detailed_view.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/metadata/metadata_header_macros.h"
namespace ash {
......@@ -23,6 +24,8 @@ class KeyboardStatusRow;
// of the virtual keyboard.
class ImeListView : public TrayDetailedView {
public:
METADATA_HEADER(ImeListView);
enum SingleImeBehavior {
// Shows the IME menu if there's only one IME in system.
SHOW_SINGLE_IME,
......@@ -31,6 +34,8 @@ class ImeListView : public TrayDetailedView {
};
explicit ImeListView(DetailedViewDelegate* delegate);
ImeListView(const ImeListView&) = delete;
ImeListView& operator=(const ImeListView&) = delete;
~ImeListView() override;
// Initializes the contents of a newly-instantiated ImeListView.
......@@ -71,7 +76,6 @@ class ImeListView : public TrayDetailedView {
// views::View:
void VisibilityChanged(View* starting_from, bool is_visible) override;
const char* GetClassName() const override;
private:
friend class ImeListViewTestApi;
......@@ -108,8 +112,6 @@ class ImeListView : public TrayDetailedView {
// The item view of the current selected IME.
views::View* current_ime_view_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(ImeListView);
};
class ASH_EXPORT ImeListViewTestApi {
......
......@@ -45,6 +45,7 @@
#include "ui/views/controls/scroll_view.h"
#include "ui/views/controls/separator.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/metadata/metadata_impl_macros.h"
namespace ash {
......@@ -81,12 +82,16 @@ bool IsInPasswordInputContext() {
class ImeMenuLabel : public views::Label {
public:
METADATA_HEADER(ImeMenuLabel);
ImeMenuLabel() {
// Sometimes the label will be more than 2 characters, e.g. INTL and EXTD.
// This border makes sure we only leave room for ~2 and the others are
// truncated.
SetBorder(views::CreateEmptyBorder(gfx::Insets(0, 6)));
}
ImeMenuLabel(const ImeMenuLabel&) = delete;
ImeMenuLabel& operator=(const ImeMenuLabel&) = delete;
~ImeMenuLabel() override = default;
// views:Label:
......@@ -94,27 +99,28 @@ class ImeMenuLabel : public views::Label {
return gfx::Size(kTrayItemSize, kTrayItemSize);
}
int GetHeightForWidth(int width) const override { return kTrayItemSize; }
const char* GetClassName() const override { return "ImeMenuLabel"; }
private:
DISALLOW_COPY_AND_ASSIGN(ImeMenuLabel);
};
BEGIN_METADATA(ImeMenuLabel, views::Label)
END_METADATA
class ImeMenuImageView : public views::ImageView {
public:
METADATA_HEADER(ImeMenuImageView);
ImeMenuImageView() { SetBorder(views::CreateEmptyBorder(gfx::Insets(0, 6))); }
ImeMenuImageView(const ImeMenuImageView&) = delete;
ImeMenuImageView& operator=(const ImeMenuImageView&) = delete;
~ImeMenuImageView() override = default;
// views::View:
const char* GetClassName() const override { return "ImeMenuImageView"; }
private:
DISALLOW_COPY_AND_ASSIGN(ImeMenuImageView);
};
BEGIN_METADATA(ImeMenuImageView, views::ImageView)
END_METADATA
// The view that contains IME menu title.
class ImeTitleView : public views::View {
public:
METADATA_HEADER(ImeTitleView);
ImeTitleView() {
auto* color_provider = AshColorProvider::Get();
SetBorder(views::CreatePaddedBorder(
......@@ -147,21 +153,22 @@ class ImeTitleView : public views::View {
kSystemMenuSettingsIcon, IDS_ASH_STATUS_TRAY_IME_SETTINGS));
settings_button_->SetEnabled(TrayPopupUtils::CanOpenWebUISettings());
}
ImeTitleView(const ImeTitleView&) = delete;
ImeTitleView& operator=(const ImeTitleView&) = delete;
~ImeTitleView() override = default;
// views::View:
const char* GetClassName() const override { return "ImeTitleView"; }
private:
TopShortcutButton* settings_button_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(ImeTitleView);
};
BEGIN_METADATA(ImeTitleView, views::View)
END_METADATA
// The view that contains buttons shown on the bottom of IME menu.
class ImeButtonsView : public views::View {
public:
METADATA_HEADER(ImeButtonsView);
ImeButtonsView(ImeMenuTray* ime_menu_tray,
bool show_emoji,
bool show_handwriting,
......@@ -171,6 +178,8 @@ class ImeButtonsView : public views::View {
Init(show_emoji, show_handwriting, show_voice);
}
ImeButtonsView(const ImeButtonsView&) = delete;
ImeButtonsView& operator=(const ImeButtonsView&) = delete;
~ImeButtonsView() override = default;
......@@ -187,9 +196,6 @@ class ImeButtonsView : public views::View {
ime_menu_tray_->ShowKeyboardWithKeyset(keyset);
}
// views::View:
const char* GetClassName() const override { return "ImeButtonsView"; }
private:
void Init(bool show_emoji, bool show_handwriting, bool show_voice) {
auto box_layout = std::make_unique<views::BoxLayout>(
......@@ -237,19 +243,22 @@ class ImeButtonsView : public views::View {
SystemMenuButton* emoji_button_;
SystemMenuButton* handwriting_button_;
SystemMenuButton* voice_button_;
DISALLOW_COPY_AND_ASSIGN(ImeButtonsView);
};
BEGIN_METADATA(ImeButtonsView, views::View)
END_METADATA
// A list of available IMEs shown in the opt-in IME menu, which has a different
// height depending on the number of IMEs in the list.
class ImeMenuListView : public ImeListView {
public:
METADATA_HEADER(ImeMenuListView);
ImeMenuListView() : ImeMenuListView(std::make_unique<Delegate>()) {}
~ImeMenuListView() override = default;
ImeMenuListView(const ImeMenuListView&) = delete;
ImeMenuListView& operator=(const ImeMenuListView&) = delete;
// views::View:
const char* GetClassName() const override { return "ImeMenuListView"; }
~ImeMenuListView() override = default;
private:
class Delegate : public DetailedViewDelegate {
......@@ -278,10 +287,11 @@ class ImeMenuListView : public ImeListView {
}
std::unique_ptr<Delegate> delegate_;
DISALLOW_COPY_AND_ASSIGN(ImeMenuListView);
};
BEGIN_METADATA(ImeMenuListView, ImeListView)
END_METADATA
} // namespace
ImeMenuTray::ImeMenuTray(Shelf* shelf)
......@@ -462,10 +472,6 @@ TrayBubbleView* ImeMenuTray::GetBubbleView() {
return bubble_ ? bubble_->bubble_view() : nullptr;
}
const char* ImeMenuTray::GetClassName() const {
return "ImeMenuTray";
}
void ImeMenuTray::OnIMERefresh() {
UpdateTrayLabel();
if (bubble_ && ime_list_view_) {
......@@ -570,4 +576,7 @@ void ImeMenuTray::CreateImageView() {
tray_container()->AddChildView(image_view_);
}
BEGIN_METADATA(ImeMenuTray, TrayBackgroundView)
END_METADATA
} // namespace ash
......@@ -14,6 +14,7 @@
#include "ash/system/virtual_keyboard/virtual_keyboard_observer.h"
#include "base/macros.h"
#include "ui/base/ime/chromeos/ime_keyset.h"
#include "ui/views/metadata/metadata_header_macros.h"
namespace views {
class ImageView;
......@@ -33,7 +34,11 @@ class ASH_EXPORT ImeMenuTray : public TrayBackgroundView,
public KeyboardControllerObserver,
public VirtualKeyboardObserver {
public:
METADATA_HEADER(ImeMenuTray);
explicit ImeMenuTray(Shelf* shelf);
ImeMenuTray(const ImeMenuTray&) = delete;
ImeMenuTray& operator=(const ImeMenuTray&) = delete;
~ImeMenuTray() override;
// Shows the virtual keyboard with the given keyset: emoji, handwriting or
......@@ -59,7 +64,6 @@ class ASH_EXPORT ImeMenuTray : public TrayBackgroundView,
void CloseBubble() override;
void ShowBubble(bool show_by_click) override;
TrayBubbleView* GetBubbleView() override;
const char* GetClassName() const override;
// IMEObserver:
void OnIMERefresh() override;
......@@ -105,8 +109,6 @@ class ASH_EXPORT ImeMenuTray : public TrayBackgroundView,
bool is_voice_enabled_;
base::WeakPtrFactory<ImeMenuTray> weak_ptr_factory_{this};
DISALLOW_COPY_AND_ASSIGN(ImeMenuTray);
};
} // namespace ash
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment