+inline unsigned int buttons_for_button_and_modifiers(ButtonIdentifier button, ModifierFlags flags)
+{
+ unsigned int buttons = 0;
+
+ switch (button.get())
+ {
+ case ButtonEnumeration::LEFT: buttons |= RAD_LBUTTON; break;
+ case ButtonEnumeration::MIDDLE: buttons |= RAD_MBUTTON; break;
+ case ButtonEnumeration::RIGHT: buttons |= RAD_RBUTTON; break;
+ }
+
+ if(bitfield_enabled(flags, c_modifierControl))
+ buttons |= RAD_CONTROL;
+
+ if(bitfield_enabled(flags, c_modifierShift))
+ buttons |= RAD_SHIFT;
+
+ if(bitfield_enabled(flags, c_modifierAlt))
+ buttons |= RAD_ALT;
+
+ return buttons;
+}
+