/* $Id$
This file is part of libmspgbase
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
+Copyright © 2008, 2010 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
#ifdef WIN32
#include <windows.h>
#else
+#include <X11/X.h>
#include <X11/keysym.h>
#endif
#include <msp/core/except.h>
#endif
};
+unsigned modmap[Msp::Input::N_MODS_]=
+{
+#ifndef WIN32
+ ShiftMask, ControlMask, Mod1Mask, Mod4Mask
+#else
+ 1, 2, 4, 8
+#endif
+};
+
}
namespace Msp {
unsigned key_to_sys(unsigned key)
{
- if(key>N_KEYS_)
+ if(key>=N_KEYS_)
throw InvalidParameterValue("Key out of range");
return keymap[key];
}
+unsigned mod_from_sys(unsigned mod)
+{
+ unsigned result;
+ for(unsigned i=0; i<N_MODS_; ++i)
+ if(mod&modmap[i])
+ result|=1<<i;
+ return result;
+}
+
} // namespace Input
} // namespace Msp