13
0

Add API to format keyboard modifiers for tooltips

This commit is contained in:
Robin Gareus 2022-06-21 22:11:49 +02:00
parent 5b03bf72fa
commit 71ee12af6a
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 32 additions and 0 deletions

View File

@ -89,6 +89,7 @@ public:
static const char* momentary_push_name ();
static const char* group_override_event_name ();
static std::string format_modifier (uint32_t);
bool key_is_down (uint32_t keyval);
guint modifier_state ();

View File

@ -204,6 +204,37 @@ Keyboard::group_override_event_name ()
return tertiary_modifier_name ();
}
std::string
Keyboard::format_modifier (uint32_t mod)
{
std::string rv = "";
if (mod & PrimaryModifier) {
rv += primary_modifier_short_name ();
}
if (mod & SecondaryModifier) {
if (!rv.empty ()) {
rv += "+";
}
rv += secondary_modifier_short_name ();
}
if (mod & TertiaryModifier) {
if (!rv.empty ()) {
rv += "+";
}
rv += tertiary_modifier_short_name ();
}
if (mod & Level4Modifier) {
if (!rv.empty ()) {
rv += "+";
}
rv += level4_modifier_short_name ();
}
if (!rv.empty ()) {
rv += "+";
}
return rv;
}
guint Keyboard::GainFineScaleModifier = Keyboard::PrimaryModifier;
guint Keyboard::GainExtraFineScaleModifier = Keyboard::SecondaryModifier;