mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 12:23:15 +00:00
LibGUI: Allow overriding toolbar button tooltips
The EmojiInputDialog, for example, will want its toolbar buttons to have a tooltip which differs from its text. If no tooltip override has been provided, we fall back to the button text still.
This commit is contained in:
parent
f8a0365002
commit
153218ed76
|
@ -296,4 +296,17 @@ void Action::set_text(DeprecatedString text)
|
|||
});
|
||||
}
|
||||
|
||||
void Action::set_tooltip(DeprecatedString tooltip)
|
||||
{
|
||||
if (m_tooltip == tooltip)
|
||||
return;
|
||||
m_tooltip = move(tooltip);
|
||||
for_each_toolbar_button([&](auto& button) {
|
||||
button.set_tooltip(*m_tooltip);
|
||||
});
|
||||
for_each_menu_item([&](auto& menu_item) {
|
||||
menu_item.update_from_action({});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -85,6 +85,9 @@ public:
|
|||
DeprecatedString text() const { return m_text; }
|
||||
void set_text(DeprecatedString);
|
||||
|
||||
DeprecatedString tooltip() const { return m_tooltip.value_or(m_text); }
|
||||
void set_tooltip(DeprecatedString);
|
||||
|
||||
DeprecatedString const& status_tip() const { return m_status_tip; }
|
||||
void set_status_tip(DeprecatedString status_tip) { m_status_tip = move(status_tip); }
|
||||
|
||||
|
@ -144,6 +147,7 @@ private:
|
|||
void for_each_menu_item(Callback);
|
||||
|
||||
DeprecatedString m_text;
|
||||
Optional<DeprecatedString> m_tooltip;
|
||||
DeprecatedString m_status_tip;
|
||||
RefPtr<Gfx::Bitmap const> m_icon;
|
||||
Shortcut m_shortcut;
|
||||
|
|
|
@ -71,7 +71,7 @@ private:
|
|||
DeprecatedString tooltip(Action const& action) const
|
||||
{
|
||||
StringBuilder builder;
|
||||
builder.append(action.text());
|
||||
builder.append(action.tooltip());
|
||||
if (action.shortcut().is_valid()) {
|
||||
builder.append(" ("sv);
|
||||
builder.append(action.shortcut().to_deprecated_string());
|
||||
|
|
Loading…
Reference in a new issue