void LocalEvent::HandleKeyboardEvent(SDL_KeyboardEvent & event) { if(KEY_NONE != GetKeySym(event.keysym.sym)) { (event.type == SDL_KEYDOWN) ? SetModes(KEY_PRESSED) : ResetModes(KEY_PRESSED); #ifdef WITHOUT_MOUSE if(emulate_mouse && EmulateMouseAction(GetKeySym(event.keysym.sym))) return; #endif key_value = GetKeySym(event.keysym.sym); } }
void Game::HotKeysLoad(const std::string & hotkeys) { Tiny::Config config; const Tiny::Entry* entry = NULL; config.SetSeparator('='); config.SetComment('#'); if(config.Load(hotkeys.c_str())) { for(events_t evnt = EVENT_NONE; evnt < EVENT_LAST; ++evnt) { const char* name = EventsName(evnt); if(name) { entry = config.Find(name); if(entry) { const KeySym sym = GetKeySym(entry->IntParams()); key_events[evnt] = sym; DEBUG(DBG_GAME, DBG_INFO, "events: " << EventsName(evnt) << ", key: " << KeySymGetName(sym)); } } } #ifdef WITHOUT_MOUSE LocalEvent & le = LocalEvent::Get(); entry = config.Find("emulate mouse up"); if(entry) le.SetEmulateMouseUpKey(GetKeySym(entry->IntParams())); entry = config.Find("emulate mouse down"); if(entry) le.SetEmulateMouseDownKey(GetKeySym(entry->IntParams())); entry = config.Find("emulate mouse left"); if(entry) le.SetEmulateMouseLeftKey(GetKeySym(entry->IntParams())); entry = config.Find("emulate mouse right"); if(entry) le.SetEmulateMouseRightKey(GetKeySym(entry->IntParams())); entry = config.Find("emulate press left"); if(entry) le.SetEmulatePressLeftKey(GetKeySym(entry->IntParams())); entry = config.Find("emulate press right"); if(entry) le.SetEmulatePressRightKey(GetKeySym(entry->IntParams())); #endif } }