Esempio n. 1
0
//---------------------------------------------------------------------
void BaseTween::Update(float _dt)
{
	if(!IsStarted() || IsPaused() || IsKilled())
    {
		return;
    }

	m_dt = _dt;

	if(!IsInit())
    {
		Initialize();
    }

	if(IsInit())
	{
		UpdateRelaunch();
		UpdateStep();
		UpdateCompletion();
	}

	m_currentTime += m_dt;
	m_dt = 0.0f;
}
Esempio n. 2
0
void LuaConsole::OnKeyPressed(const SDL_keysym *sym) {
	// XXX totally horrible doing this on every key press
	ResizeRequest();

	if ((sym->sym == SDLK_UP) || (sym->sym == SDLK_DOWN)) {
		if (m_historyPosition == -1) {
			if (sym->sym == SDLK_UP) {
				m_historyPosition = (m_statementHistory.size() - 1);
				if (m_historyPosition != -1) {
					m_stashedStatement = m_entryField->GetText();
					m_entryField->SetText(m_statementHistory[m_historyPosition]);
					ResizeRequest();
				}
			}
		} else {
			if (sym->sym == SDLK_DOWN) {
				++m_historyPosition;
				if (m_historyPosition >= int(m_statementHistory.size())) {
					m_historyPosition = -1;
					m_entryField->SetText(m_stashedStatement);
					m_stashedStatement.clear();
					ResizeRequest();
				} else {
					m_entryField->SetText(m_statementHistory[m_historyPosition]);
					ResizeRequest();
				}
			} else {
				if (m_historyPosition > 0) {
					--m_historyPosition;
					m_entryField->SetText(m_statementHistory[m_historyPosition]);
					ResizeRequest();
				}
			}
		}
	}

	// CTRL+U clears the current command
	if ((sym->sym == SDLK_u) && (sym->mod & KMOD_CTRL)) {
		m_stashedStatement.clear();
		m_entryField->SetText("");
		m_historyPosition = -1;
		ResizeRequest();
	}

	if (sym->sym == SDLK_TAB) {
		if (m_completionList.empty()) {
			UpdateCompletion(m_entryField->GetText());
		}
		if (!m_completionList.empty()) { // We still need to test whether it failed or not.
			if (sym->mod & KMOD_SHIFT) {
				if (m_currentCompletion == 0)
					m_currentCompletion = m_completionList.size();
				m_currentCompletion--;
			} else {
				m_currentCompletion++;
				if (m_currentCompletion == m_completionList.size())
					m_currentCompletion = 0;
			}
			m_entryField->SetText(m_precompletionStatement + m_completionList[m_currentCompletion]);
			ResizeRequest();
		}
	} else if (!m_completionList.empty() && (sym->sym < SDLK_NUMLOCK || sym->sym > SDLK_COMPOSE)) {
		m_completionList.clear();
	}


	if (((sym->unicode == '\n') || (sym->unicode == '\r')) && ((sym->mod & KMOD_CTRL) == 0)) {
		ExecOrContinue();
	}
}
Esempio n. 3
0
bool LuaConsole::OnKeyDown(const UI::KeyboardEvent &event) {

	switch (event.keysym.sym) {
		case SDLK_UP:
		case SDLK_DOWN: {
			if (m_historyPosition == -1) {
				if (event.keysym.sym == SDLK_UP) {
					m_historyPosition = (m_statementHistory.size() - 1);
					if (m_historyPosition != -1) {
						m_stashedStatement = m_entry->GetText();
						m_entry->SetText(m_statementHistory[m_historyPosition]);
					}
				}
			} else {
				if (event.keysym.sym == SDLK_DOWN) {
					++m_historyPosition;
					if (m_historyPosition >= int(m_statementHistory.size())) {
						m_historyPosition = -1;
						m_entry->SetText(m_stashedStatement);
						m_stashedStatement.clear();
					} else {
						m_entry->SetText(m_statementHistory[m_historyPosition]);
					}
				} else {
					if (m_historyPosition > 0) {
						--m_historyPosition;
						m_entry->SetText(m_statementHistory[m_historyPosition]);
					}
				}
			}

			return true;
		}

		case SDLK_u:
		case SDLK_w:
			if (event.keysym.mod & KMOD_CTRL) {
				// TextEntry already cleared the input, we must cleanup the history
				m_stashedStatement.clear();
				m_historyPosition = -1;
				return true;
			}
			break;

		case SDLK_l:
			if (event.keysym.mod & KMOD_CTRL) {
				m_output->SetText("");
				return true;
			}
			break;

		case SDLK_TAB:
			if (m_completionList.empty()) {
				UpdateCompletion(m_entry->GetText());
			}
			if (!m_completionList.empty()) { // We still need to test whether it failed or not.
				if (event.keysym.mod & KMOD_SHIFT) {
					if (m_currentCompletion == 0)
						m_currentCompletion = m_completionList.size();
					m_currentCompletion--;
				} else {
					m_currentCompletion++;
					if (m_currentCompletion == m_completionList.size())
						m_currentCompletion = 0;
				}
				m_entry->SetText(m_precompletionStatement + m_completionList[m_currentCompletion]);
			}
			return true;
	}

	return false;
}