void UI::update(const SDL_Event &event) { if (m_windows.empty()) { return; } switch (event.type) { case SDL_MOUSEBUTTONDOWN: handle_click(event); break; case SDL_MOUSEBUTTONUP: m_dragging = Drag_Status::NOT_DRAGGING; handle_click(event); break; case SDL_MOUSEMOTION: handle_motion(event); break; case SDL_KEYDOWN: handle_key_event(event); break; case SDL_TEXTINPUT: handle_text_input(event); break; default: break; } }
///////////////////////////////// // PanZoomTrackerSDLEvent methods void PanZoomTrackerSDLEvent:: handle_event(const SDL_Event &ev) { switch(ev.type) { case SDL_MOUSEBUTTONDOWN: if(ev.button.button == 1) { handle_down(m_scale_event * fastuidraw::vec2(ev.button.x, ev.button.y) + m_translate_event); } break; case SDL_MOUSEBUTTONUP: if(ev.button.button == 1) { handle_up(); } break; case SDL_MOUSEMOTION: handle_motion(m_scale_event * fastuidraw::vec2(ev.motion.x, ev.motion.y) + m_translate_event, m_scale_event * fastuidraw::vec2(ev.motion.xrel, ev.motion.yrel)); break; } }