Пример #1
0
/**
 * 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());
	}
}
Пример #2
0
/**
 * 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());
	}
}
Пример #3
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->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;
	}
}
Пример #4
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;
	}
}