/*------------------------------------------------- * push_mouse_leave_event - pushes a * mouse leave event to the specified render_target * -------------------------------------------------*/ public void push_mouse_leave_event(render_target target) { ui_event evt = new ui_event(ui_event.type.NONE); evt.event_type = ui_event.type.MOUSE_LEAVE; evt.target = target; push_event(evt); }
/*------------------------------------------------- * push_char_event - pushes a char event * to the specified render_target * -------------------------------------------------*/ public void push_char_event(render_target target, char32_t ch) { ui_event evt = new ui_event(ui_event.type.NONE); evt.event_type = ui_event.type.IME_CHAR; evt.target = target; evt.ch = ch; push_event(evt); }
//void push_mouse_rdown_event(render_target* target, INT32 x, INT32 y); //void push_mouse_rup_event(render_target* target, INT32 x, INT32 y); /*------------------------------------------------- * push_mouse_double_click_event - pushes * a mouse double-click event to the specified * render_target * -------------------------------------------------*/ public void push_mouse_double_click_event(render_target target, s32 x, s32 y) { ui_event evt = new ui_event(ui_event.type.NONE); evt.event_type = ui_event.type.MOUSE_DOUBLE_CLICK; evt.target = target; evt.mouse_x = x; evt.mouse_y = y; push_event(evt); }
/*------------------------------------------------- * push_mouse_down_event - pushes a mouse * down event to the specified render_target * -------------------------------------------------*/ public void push_mouse_up_event(render_target target, s32 x, s32 y) { ui_event evt = new ui_event(ui_event.type.NONE); evt.event_type = ui_event.type.MOUSE_UP; evt.target = target; evt.mouse_x = x; evt.mouse_y = y; push_event(evt); }
/*------------------------------------------------- * push_mouse_down_event - pushes a mouse * down event to the specified render_target * -------------------------------------------------*/ public void push_mouse_down_event(render_target target, int x, int y) { ui_event evt = new ui_event(ui_event.type.NONE); evt.event_type = ui_event.type.MOUSE_DOWN; evt.target = target; evt.mouse_x = x; evt.mouse_y = y; push_event(evt); }
/*------------------------------------------------- * push_mouse_wheel_event - pushes a mouse * wheel event to the specified render_target * -------------------------------------------------*/ public void push_mouse_wheel_event(render_target target, s32 x, s32 y, short delta, int ucNumLines) { ui_event event_ = new ui_event(ui_event.type.NONE); event_.event_type = ui_event.type.MOUSE_WHEEL; event_.target = target; event_.mouse_x = x; event_.mouse_y = y; event_.zdelta = delta; event_.num_lines = ucNumLines; push_event(event_); }
// pops an event off of the queue /*------------------------------------------------- * pop_event - pops an event off of the queue * -------------------------------------------------*/ public bool pop_event(out ui_event evt) { if (m_events_start != m_events_end) { evt = m_events[m_events_start++]; m_events_start %= (int)std.size(m_events); return(true); } else { evt = new ui_event(ui_event.type.NONE); //memset(evt, 0, sizeof(*evt)); return(false); } }
// pushes a single event onto the queue /*------------------------------------------------- * push_event - pushes a single event * onto the queue * -------------------------------------------------*/ bool push_event(ui_event evt) { // some pre-processing (this is an icky place to do this stuff!) switch (evt.event_type) { case ui_event.type.MOUSE_MOVE: m_current_mouse_target = evt.target; m_current_mouse_x = evt.mouse_x; m_current_mouse_y = evt.mouse_y; break; case ui_event.type.MOUSE_LEAVE: if (m_current_mouse_target == evt.target) { m_current_mouse_target = null; m_current_mouse_x = -1; m_current_mouse_y = -1; } break; case ui_event.type.MOUSE_DOWN: m_current_mouse_down = true; break; case ui_event.type.MOUSE_UP: m_current_mouse_down = false; break; default: /* do nothing */ break; } // is the queue filled up? if ((m_events_end + 1) % (int)std.size(m_events) == m_events_start) { return(false); } m_events[m_events_end++] = evt; m_events_end %= (int)std.size(m_events); return(true); }