/** * Adds a bunch of controls to the list. * @param keys Array of controls. * @param count Number of controls. */ void OptionsControlsState::addControls(const std::vector<OptionInfo> &keys) { for (std::vector<OptionInfo>::const_iterator i = keys.begin(); i != keys.end(); ++i) { std::wstring name = tr(i->description()); SDLKey *key = i->getKey(); std::wstring keyName = Language::utf8ToWstr(ucWords(SDL_GetKeyName(*key))); if (*key == SDLK_UNKNOWN) keyName = L""; _lstControls->addRow(2, name.c_str(), keyName.c_str()); } }
/** * Adds a bunch of controls to the list. * @param keys Array of controls. * @param count Number of controls. */ void OptionsControlsState::addControls(KeyOption keys[], int count) { for (int i = 0; i < count; ++i) { keys[i].key = (SDLKey)Options::getInt(keys[i].option); std::wstring name = tr(keys[i].name); std::wstring key = Language::utf8ToWstr(ucWords(SDL_GetKeyName(keys[i].key))); if (keys[i].key == SDLK_UNKNOWN) key = L""; _lstControls->addRow(2, name.c_str(), key.c_str()); } }
/** * Change selected control. * @param action Pointer to an action. */ void OptionsControlsState::lstControlsKeyPress(Action *action) { if (_selected != -1) { SDLKey key = action->getDetails()->key.keysym.sym; if (key != 0) { _selKey->key = key; std::wstring name = Language::utf8ToWstr(ucWords(SDL_GetKeyName(_selKey->key))); _lstControls->setCellText(_selected, 1, name); } _lstControls->setCellColor(_selected, 0, Palette::blockOffset(8)+10); _lstControls->setCellColor(_selected, 1, Palette::blockOffset(8)+10); _selected = -1; _selKey = 0; } }
/** * Change selected control. * @param action Pointer to an action. */ void OptionsControlsState::lstControlsKeyPress(Action *action) { if (_selected != -1) { SDLKey key = action->getDetails()->key.keysym.sym; if (key != 0) { *_selKey->asKey() = key; std::wstring name = Language::utf8ToWstr(ucWords(SDL_GetKeyName(*_selKey->asKey()))); _lstControls->setCellText(_selected, 1, name); } _lstControls->setCellColor(_selected, 0, _colorNormal); _lstControls->setCellColor(_selected, 1, _colorNormal); _selected = -1; _selKey = 0; } }