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

Method pushFormEvent

forms/control.cpp:1077–1169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1075}
1076
1077void Control::pushFormEvent(FormEventType type, Event *parentEvent)
1078{
1079 FormsEvent *event = nullptr;
1080 switch (type)
1081 {
1082 // Mouse events fall-through
1083 case FormEventType::MouseEnter:
1084 case FormEventType::MouseLeave:
1085 // Only mouseEnter/mouseLeave could cause a state change (e.g. stop highlighting a
1086 // button)
1087 this->setDirty();
1088 // Fall-though
1089 case FormEventType::MouseMove:
1090 {
1091 event = new FormsEvent();
1092 event->forms().RaisedBy = shared_from_this();
1093 event->forms().EventFlag = type;
1094 event->forms().MouseInfo = parentEvent->mouse();
1095 event->forms().MouseInfo.X -= resolvedLocation.x;
1096 event->forms().MouseInfo.Y -= resolvedLocation.y;
1097 fw().pushEvent(event);
1098 break;
1099 }
1100 case FormEventType::MouseDown:
1101 case FormEventType::MouseUp:
1102 case FormEventType::MouseClick:
1103 {
1104 event = new FormsEvent();
1105 event->forms().RaisedBy = shared_from_this();
1106 event->forms().EventFlag = type;
1107 event->forms().MouseInfo = parentEvent->mouse();
1108 event->forms().MouseInfo.X -= resolvedLocation.x;
1109 event->forms().MouseInfo.Y -= resolvedLocation.y;
1110 fw().pushEvent(event);
1111 this->setDirty();
1112 break;
1113 }
1114 // Keyboard events fall-through
1115 case FormEventType::KeyDown:
1116 case FormEventType::KeyUp:
1117 case FormEventType::KeyPress:
1118 {
1119 event = new FormsEvent();
1120 event->forms().RaisedBy = shared_from_this();
1121 event->forms().EventFlag = type;
1122 event->forms().KeyInfo = parentEvent->keyboard();
1123 fw().pushEvent(event);
1124 this->setDirty();
1125 break;
1126 }
1127 // Input event special
1128 case FormEventType::TextInput:
1129 {
1130 event = new FormsEvent();
1131 event->forms().RaisedBy = shared_from_this();
1132 event->forms().EventFlag = type;
1133 event->forms().Input = parentEvent->text();
1134 fw().pushEvent(event);

Callers 9

eventOccuredMethod · 0.95
updateValuesMethod · 0.80
setStateMethod · 0.80
eventOccuredMethod · 0.80
setValueMethod · 0.80
eventOccuredMethod · 0.80
setCheckedMethod · 0.80
eventOccuredMethod · 0.80
eventOccuredMethod · 0.80

Calls 3

setDirtyMethod · 0.95
triggerEventCallbacksMethod · 0.95
pushEventMethod · 0.80

Tested by

no test coverage detected