MCPcopy Create free account
hub / github.com/LibreSprite/LibreSprite / generateMessagesFromSheEvents

Method generateMessagesFromSheEvents

src/ui/manager.cpp:281–429  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

279}
280
281void Manager::generateMessagesFromSheEvents()
282{
283 she::Event lastMouseMoveEvent;
284
285 // Events from "she" layer.
286 she::Event sheEvent;
287 for (;;) {
288 // bool canWait = (msg_queue.empty());
289 bool canWait = false;
290
291 m_eventQueue->getEvent(sheEvent, canWait);
292 if (sheEvent.type() == she::Event::None)
293 break;
294
295 switch (sheEvent.type()) {
296
297 case she::Event::CloseDisplay: {
298 Message* msg = new Message(kCloseDisplayMessage);
299 msg->broadcastToChildren(this);
300 enqueueMessage(msg);
301 break;
302 }
303
304 case she::Event::ResizeDisplay: {
305 Message* msg = new Message(kResizeDisplayMessage);
306 msg->broadcastToChildren(this);
307 enqueueMessage(msg);
308 break;
309 }
310
311 case she::Event::DropFiles: {
312 Message* msg = new DropFilesMessage(sheEvent.files());
313 msg->addRecipient(this);
314 enqueueMessage(msg);
315 break;
316 }
317
318 case she::Event::KeyDown:
319 case she::Event::KeyUp: {
320 Message* msg = new KeyMessage(
321 (sheEvent.type() == she::Event::KeyDown ?
322 kKeyDownMessage:
323 kKeyUpMessage),
324 sheEvent.scancode(),
325 sheEvent.modifiers(),
326 sheEvent.unicodeChar(),
327 sheEvent.repeat());
328 broadcastKeyMsg(msg);
329 enqueueMessage(msg);
330 break;
331 }
332
333 case she::Event::MouseEnter: {
334 _internal_set_mouse_position(sheEvent.position());
335 set_mouse_cursor(kArrowCursor);
336 lastMouseMoveEvent = sheEvent;
337 break;
338 }

Callers

nothing calls this directly

Calls 15

set_mouse_cursorFunction · 0.85
getEventMethod · 0.80
broadcastToChildrenMethod · 0.80
addRecipientMethod · 0.80
EventClass · 0.70
typeMethod · 0.45
scancodeMethod · 0.45
modifiersMethod · 0.45

Tested by

no test coverage detected