public override string HandleEvent(SystemEvent e, ref bool updateVisuals)
{
if(this.Disposed == true)
{
throw new ObjectDisposedException(this.GetType().Name);
}
idConsole.Warning("TODO: ChoiceWindow HandleEvent");
/*int key;
bool runAction = false;
bool runAction2 = false;
if ( event->evType == SE_KEY ) {
key = event->evValue;
if ( key == K_RIGHTARROW || key == K_KP_RIGHTARROW || key == K_MOUSE1) {
// never affects the state, but we want to execute script handlers anyway
if ( !event->evValue2 ) {
RunScript( ON_ACTIONRELEASE );
return cmd;
}
currentChoice++;
if (currentChoice >= choices.Num()) {
currentChoice = 0;
}
runAction = true;
}
if ( key == K_LEFTARROW || key == K_KP_LEFTARROW || key == K_MOUSE2) {
// never affects the state, but we want to execute script handlers anyway
if ( !event->evValue2 ) {
RunScript( ON_ACTIONRELEASE );
return cmd;
}
currentChoice--;
if (currentChoice < 0) {
currentChoice = choices.Num() - 1;
}
runAction = true;
}
if ( !event->evValue2 ) {
// is a key release with no action catch
return "";
}
} else if ( event->evType == SE_CHAR ) {
key = event->evValue;
int potentialChoice = -1;
for ( int i = 0; i < choices.Num(); i++ ) {
if ( toupper(key) == toupper(choices[i][0]) ) {
if ( i < currentChoice && potentialChoice < 0 ) {
potentialChoice = i;
} else if ( i > currentChoice ) {
potentialChoice = -1;
currentChoice = i;
break;
}
}
}
if ( potentialChoice >= 0 ) {
currentChoice = potentialChoice;
}
runAction = true;
runAction2 = true;
} else {
return "";
}
if ( runAction ) {
RunScript( ON_ACTION );
}
if ( choiceType == 0 ) {
cvarStr.Set( va( "%i", currentChoice ) );
} else if ( values.Num() ) {
cvarStr.Set( values[ currentChoice ] );
} else {
cvarStr.Set( choices[ currentChoice ] );
}
UpdateVars( false );
if ( runAction2 ) {
RunScript( ON_ACTIONRELEASE );
}
return cmd;*/
return string.Empty;
}