MCPcopy Create free account
hub / github.com/OpenApoc/OpenApoc / eventOccurred

Method eventOccurred

game/ui/general/savemenu.cpp:333–416  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

331}
332
333void SaveMenu::eventOccurred(Event *e)
334{
335 menuform->eventOccured(e);
336
337 if (e->type() == EVENT_KEY_DOWN)
338 {
339 if (activeTextEdit && activeTextEdit->isFocused())
340 return;
341 if (e->keyboard().KeyCode == SDLK_ESCAPE || e->keyboard().KeyCode == SDLK_RETURN ||
342 e->keyboard().KeyCode == SDLK_KP_ENTER)
343 {
344 menuform->findControl("BUTTON_QUIT")->click();
345 return;
346 }
347 }
348
349 if (e->type() == EVENT_FORM_INTERACTION)
350 {
351 switch (e->forms().EventFlag)
352 {
353 case FormEventType::ButtonClick:
354 if (e->forms().RaisedBy->Name == "BUTTON_QUIT")
355 {
356 fw().stageQueueCommand({StageCmd::Command::POP});
357 }
358 else
359 {
360 sp<Control> slotControl;
361 switch (currentAction)
362 {
363 case SaveMenuAction::LoadNewGame:
364 slotControl = e->forms().RaisedBy->getParent();
365 if (slotControl)
366 {
367 tryToLoadGame(slotControl);
368 }
369 break;
370 case SaveMenuAction::Load:
371 slotControl = e->forms().RaisedBy->getParent();
372 if (slotControl)
373 {
374 loadWithWarning(slotControl);
375 }
376 break;
377 case SaveMenuAction::Save:
378 slotControl = e->forms().RaisedBy->getParent();
379 if (slotControl)
380 {
381 auto nameEdit =
382 slotControl->findControlTyped<TextEdit>("TEXTEDIT_SAVE_NAME");
383 if (nameEdit && nameEdit != activeTextEdit)
384 {
385 beginEditing(nameEdit, activeTextEdit);
386 activeTextEdit = nameEdit;
387 }
388 }
389 break;
390 case SaveMenuAction::Delete:

Callers

nothing calls this directly

Calls 8

typeMethod · 0.80
findControlMethod · 0.80
stageQueueCommandMethod · 0.80
getParentMethod · 0.80
eventOccuredMethod · 0.45
isFocusedMethod · 0.45
clickMethod · 0.45
getTextMethod · 0.45

Tested by

no test coverage detected