Simplify KeyModifier

This commit is contained in:
Yuriy Skalko 2020-11-29 10:19:58 +02:00
parent baf792f1b0
commit 89d05890bf

View File

@ -16,31 +16,18 @@
namespace lyx {
/// Set of KeyModifierFlags
typedef unsigned int KeyModifier;
/// modifier key states
enum KeyModifier {
NoModifier = 0, //< no modifiers held
ControlModifier = 1, //< control button held
AltModifier = 2, //< alt key held
ShiftModifier = 4, //< shift key held
MetaModifier = 8 //< meta key held
enum KeyModifierFlags : unsigned int {
NoModifier = 0, //< no modifiers held
ControlModifier = 1 << 0, //< control button held
AltModifier = 1 << 1, //< alt key held
ShiftModifier = 1 << 2, //< shift key held
MetaModifier = 1 << 3 //< meta key held
};
inline KeyModifier operator|(KeyModifier s1, KeyModifier s2)
{
int const i1 = static_cast<int>(s1);
int const i2 = static_cast<int>(s2);
return static_cast<KeyModifier>(i1 | i2);
}
inline void operator|=(KeyModifier & s1, KeyModifier s2)
{
s1 = static_cast<KeyModifier>(s1 | s2);
}
} // namespace lyx
#endif // KEYMODIFIER_H