MCPcopy Create free account
hub / github.com/MITK/MITK / ProcessEvent

Method ProcessEvent

Modules/Core/src/Interactions/mitkDispatcher.cpp:105–227  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103}
104
105bool mitk::Dispatcher::ProcessEvent(InteractionEvent *event)
106{
107 InteractionEvent::Pointer p = event;
108 bool eventIsHandled = false;
109 /* Filter out and handle Internal Events separately */
110 auto *internalEvent = dynamic_cast<InternalEvent *>(event);
111 if (internalEvent != nullptr)
112 {
113 eventIsHandled = HandleInternalEvent(internalEvent);
114 // InternalEvents that are handled are not sent to the listeners
115 if (eventIsHandled)
116 {
117 return true;
118 }
119 }
120
121 auto selectedInteractor = m_SelectedInteractor.Lock();
122
123 switch (m_ProcessingMode)
124 {
125 case CONNECTEDMOUSEACTION:
126 // finished connected mouse action
127 if (std::strcmp(p->GetNameOfClass(), "MouseReleaseEvent") == 0)
128 {
129 m_ProcessingMode = REGULAR;
130
131 if (selectedInteractor.IsNotNull())
132 eventIsHandled = selectedInteractor->HandleEvent(event, selectedInteractor->GetDataNode());
133
134 m_SelectedInteractor = nullptr;
135 }
136 // give event to selected interactor
137 selectedInteractor = m_SelectedInteractor.Lock();
138
139 if (eventIsHandled == false && selectedInteractor.IsNotNull())
140 eventIsHandled = selectedInteractor->HandleEvent(event, selectedInteractor->GetDataNode());
141
142 break;
143
144 case GRABINPUT:
145 if (selectedInteractor.IsNotNull())
146 {
147 eventIsHandled = selectedInteractor->HandleEvent(event,selectedInteractor->GetDataNode());
148 SetEventProcessingMode(selectedInteractor);
149 }
150
151 break;
152
153 case PREFERINPUT:
154 if (selectedInteractor.IsNotNull() &&
155 selectedInteractor->HandleEvent(event, selectedInteractor->GetDataNode()) == true)
156 {
157 SetEventProcessingMode(selectedInteractor);
158 eventIsHandled = true;
159 }
160
161 break;
162

Callers 2

HandleEventMethod · 0.80
PlaybackInteractionMethod · 0.80

Calls 15

cmpClass · 0.85
IsNotNullMethod · 0.80
SetRenderWindowFocusMethod · 0.80
GetSenderMethod · 0.80
GetServiceReferencesMethod · 0.80
frontMethod · 0.80
LockMethod · 0.45
GetNameOfClassMethod · 0.45
HandleEventMethod · 0.45
GetDataNodeMethod · 0.45
GetRenderWindowMethod · 0.45
sortMethod · 0.45

Tested by 1

PlaybackInteractionMethod · 0.64