Exemple #1
0
        /*-------------------------------------------------
        *   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);
        }
Exemple #2
0
        /*-------------------------------------------------
        *   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);
        }
Exemple #3
0
        //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);
        }
Exemple #4
0
        /*-------------------------------------------------
        *   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);
        }
Exemple #5
0
        /*-------------------------------------------------
        *   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);
        }
Exemple #6
0
        /*-------------------------------------------------
        *   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_);
        }
Exemple #7
0
        // 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);
            }
        }
Exemple #8
0
        // 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);
        }