Esempio n. 1
0
        public static bool Button(UIInputManager im, object obj, float x0, float y0, float x1, float y1, UITouchInteraction ti)
        {
            if (!im.m_state.MouseDown)
            {
                if (im.MouseHitTest(x0, y0, x1, y1))
                    im.m_mouseInteraction.ObjectOver = obj;
                else if (im.m_mouseInteraction.ObjectOver == obj)
                    im.m_mouseInteraction.ObjectOver = null;
            }

            if (im.m_mouseInteraction.ObjectOver == obj)
            {
                if (im.m_state.MouseDown)
                    im.m_mouseInteraction.ObjectPressed = obj;
            }

            if (im.m_mouseInteraction.ObjectPressed == obj)
            {
                im.m_mouseInteraction.ObjectOver = im.MouseHitTest(x0, y0, x1, y1) ? obj : null;
                if (!im.m_state.MouseDown)
                {
                    im.m_mouseInteraction.ObjectPressed = null;

                    if (im.m_mouseInteraction.ObjectOver == obj)
                    {
                        // Triggering press, so dont do it doubly.
                        ti.PressedByTouchId = -1;
                        return true;
                    }
                }
            }

            if (ti != null)
            {
                bool pr = (ti.PressedByTouchId != -1) && ti.StillInside;
                im.TouchHitTest(x0, y0, x1, y1, ref ti);
                if (ti.PressedByTouchId == -1 && pr)
                {
                    //reset if needed
                    if (im.m_mouseInteraction.ObjectPressed == obj)
                        im.m_mouseInteraction.ObjectPressed = null;
                    return true;
                }
            }

            return false;
        }