| 279 | } |
| 280 | |
| 281 | void 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 | } |
nothing calls this directly
no test coverage detected