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