2020-05-26 20:06:26 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: deepak1556 <hop2deep@gmail.com>
|
|
|
|
Date: Thu, 21 May 2020 13:58:01 -0700
|
|
|
|
Subject: Allow setting secondary label via SimpleMenuModel
|
|
|
|
|
|
|
|
Builds on https://chromium-review.googlesource.com/c/chromium/src/+/2208976
|
|
|
|
|
|
|
|
diff --git a/ui/base/models/simple_menu_model.cc b/ui/base/models/simple_menu_model.cc
|
2024-08-12 17:47:27 +00:00
|
|
|
index fbf6043fc4322561438de7d09dfd9a4ec541af8a..e85a4a16e9090435e742fb127c0bc607c644b51b 100644
|
2020-05-26 20:06:26 +00:00
|
|
|
--- a/ui/base/models/simple_menu_model.cc
|
|
|
|
+++ b/ui/base/models/simple_menu_model.cc
|
2023-10-24 15:24:20 +00:00
|
|
|
@@ -53,6 +53,11 @@ std::u16string SimpleMenuModel::Delegate::GetLabelForCommandId(
|
2021-03-15 18:32:18 +00:00
|
|
|
return std::u16string();
|
2020-05-26 20:06:26 +00:00
|
|
|
}
|
|
|
|
|
2021-03-15 18:32:18 +00:00
|
|
|
+std::u16string SimpleMenuModel::Delegate::GetSecondaryLabelForCommandId(
|
2020-05-26 20:06:26 +00:00
|
|
|
+ int command_id) const {
|
2021-03-15 18:32:18 +00:00
|
|
|
+ return std::u16string();
|
2020-05-26 20:06:26 +00:00
|
|
|
+}
|
|
|
|
+
|
|
|
|
ImageModel SimpleMenuModel::Delegate::GetIconForCommandId(
|
|
|
|
int command_id) const {
|
|
|
|
return ImageModel();
|
2023-10-24 15:24:20 +00:00
|
|
|
@@ -338,6 +343,11 @@ void SimpleMenuModel::SetLabel(size_t index, const std::u16string& label) {
|
2020-05-26 20:06:26 +00:00
|
|
|
MenuItemsChanged();
|
|
|
|
}
|
|
|
|
|
2022-08-17 18:35:53 +00:00
|
|
|
+void SimpleMenuModel::SetSecondaryLabel(size_t index, const std::u16string& secondary_label) {
|
2020-05-26 20:06:26 +00:00
|
|
|
+ items_[ValidateItemIndex(index)].secondary_label = secondary_label;
|
|
|
|
+ MenuItemsChanged();
|
|
|
|
+}
|
|
|
|
+
|
2022-08-17 18:35:53 +00:00
|
|
|
void SimpleMenuModel::SetMinorText(size_t index,
|
2021-03-15 18:32:18 +00:00
|
|
|
const std::u16string& minor_text) {
|
2020-05-26 20:06:26 +00:00
|
|
|
items_[ValidateItemIndex(index)].minor_text = minor_text;
|
2024-08-12 17:47:27 +00:00
|
|
|
@@ -433,6 +443,12 @@ std::u16string SimpleMenuModel::GetLabelAt(size_t index) const {
|
2020-05-26 20:06:26 +00:00
|
|
|
return items_[ValidateItemIndex(index)].label;
|
|
|
|
}
|
|
|
|
|
2022-08-17 18:35:53 +00:00
|
|
|
+std::u16string SimpleMenuModel::GetSecondaryLabelAt(size_t index) const {
|
2020-05-26 20:06:26 +00:00
|
|
|
+ if (IsItemDynamicAt(index))
|
|
|
|
+ return delegate_->GetSecondaryLabelForCommandId(GetCommandIdAt(index));
|
|
|
|
+ return items_[ValidateItemIndex(index)].secondary_label;
|
|
|
|
+}
|
|
|
|
+
|
2022-08-17 18:35:53 +00:00
|
|
|
std::u16string SimpleMenuModel::GetMinorTextAt(size_t index) const {
|
2020-05-26 20:06:26 +00:00
|
|
|
return items_[ValidateItemIndex(index)].minor_text;
|
|
|
|
}
|
|
|
|
diff --git a/ui/base/models/simple_menu_model.h b/ui/base/models/simple_menu_model.h
|
2024-08-12 17:47:27 +00:00
|
|
|
index e7d5811973ab8e81c0a4c8e93ef8653e0aebded8..d43bcbc19564c49c87e10951f7d6a2ed4a027586 100644
|
2020-05-26 20:06:26 +00:00
|
|
|
--- a/ui/base/models/simple_menu_model.h
|
|
|
|
+++ b/ui/base/models/simple_menu_model.h
|
2024-06-07 21:18:35 +00:00
|
|
|
@@ -99,6 +99,7 @@ class COMPONENT_EXPORT(UI_BASE) SimpleMenuModel : public MenuModel {
|
2020-05-26 20:06:26 +00:00
|
|
|
// Some command ids have labels and icons that change over time.
|
|
|
|
virtual bool IsItemForCommandIdDynamic(int command_id) const;
|
2021-03-15 18:32:18 +00:00
|
|
|
virtual std::u16string GetLabelForCommandId(int command_id) const;
|
|
|
|
+ virtual std::u16string GetSecondaryLabelForCommandId(int command_id) const;
|
2020-05-26 20:06:26 +00:00
|
|
|
// Gets the icon for the item with the specified id.
|
|
|
|
virtual ImageModel GetIconForCommandId(int command_id) const;
|
|
|
|
|
2024-06-07 21:18:35 +00:00
|
|
|
@@ -218,6 +219,9 @@ class COMPONENT_EXPORT(UI_BASE) SimpleMenuModel : public MenuModel {
|
2020-05-26 20:06:26 +00:00
|
|
|
// Sets the label for the item at |index|.
|
2022-08-17 18:35:53 +00:00
|
|
|
void SetLabel(size_t index, const std::u16string& label);
|
2020-05-26 20:06:26 +00:00
|
|
|
|
|
|
|
+ // Sets the secondary_label for the item at |index|.
|
2022-08-17 18:35:53 +00:00
|
|
|
+ void SetSecondaryLabel(size_t index, const std::u16string& secondary_label);
|
2020-05-26 20:06:26 +00:00
|
|
|
+
|
|
|
|
// Sets the minor text for the item at |index|.
|
2022-08-17 18:35:53 +00:00
|
|
|
void SetMinorText(size_t index, const std::u16string& minor_text);
|
2020-05-26 20:06:26 +00:00
|
|
|
|
2024-08-12 17:47:27 +00:00
|
|
|
@@ -261,6 +265,7 @@ class COMPONENT_EXPORT(UI_BASE) SimpleMenuModel : public MenuModel {
|
2022-08-17 18:35:53 +00:00
|
|
|
ui::MenuSeparatorType GetSeparatorTypeAt(size_t index) const override;
|
|
|
|
int GetCommandIdAt(size_t index) const override;
|
|
|
|
std::u16string GetLabelAt(size_t index) const override;
|
|
|
|
+ std::u16string GetSecondaryLabelAt(size_t index) const override;
|
|
|
|
std::u16string GetMinorTextAt(size_t index) const override;
|
|
|
|
ImageModel GetMinorIconAt(size_t index) const override;
|
|
|
|
bool IsItemDynamicAt(size_t index) const override;
|
2024-08-12 17:47:27 +00:00
|
|
|
@@ -300,6 +305,7 @@ class COMPONENT_EXPORT(UI_BASE) SimpleMenuModel : public MenuModel {
|
2020-05-26 20:06:26 +00:00
|
|
|
int command_id = 0;
|
|
|
|
ItemType type = TYPE_COMMAND;
|
2021-03-15 18:32:18 +00:00
|
|
|
std::u16string label;
|
|
|
|
+ std::u16string secondary_label;
|
|
|
|
std::u16string minor_text;
|
2020-05-26 20:06:26 +00:00
|
|
|
ImageModel minor_icon;
|
|
|
|
ImageModel icon;
|