Example #1
0
void CControl::DispatchEvent( EEventType type , float x, float y, int delta )
{
    switch ( type )
    {
    case eET_EVENT_TOUCH_BEGAN:
        OnTouchBegin( x, y );
        break;
    case eET_EVENT_TOUCH_ENDED:
        OnTouchEnded( x, y );
        break;
    case eET_EVENT_TOUCH_CANCELLED:
        OnTouchCancelled( x, y );
        break;
    case eET_EVENT_TOUCH_DOUBLE_TAPPED:
        OnTouchDoubleTapped( x, y );
        break;
    case eET_EVENT_TOUCH_SINGLE_TAPPED:
        OnTouchSingleTapped( x, y );
        break;
    case eET_EVENT_TOUCH_SCORLLED:
        OnTouchScorll( x, y, delta );
        break;
    case eET_EVENT_TOUCH_PINCHED:
        OnTouchSingleTapped( x, y );
        break;
    default:
        BEATS_ASSERT( false, _T("unknow event type!!") );
        break;
    }
}
Example #2
0
bool CControl::HandleTouchEvent( CTouchEvent* event )
{
    bool bRet = false;
    if ( m_bResiveTouchEvent )
    {
        const CVec2& pos = event->GetTouchPoint();
        if ( event->GetType() == eET_EVENT_TOUCH_MOVED )
        {
            m_bTouchInRect = HitTest(pos.x, pos.y);
            if ( m_bTouchInRect )
            {
                OnTouchMove( pos.x, pos.y );
                bRet = true;
            }
            else
            {
                if ( m_bClick )
                {
                    StopClickAnimation();
                }
            }
        }
        else
        {
            if( event->GetType() == eET_EVENT_TOUCH_ENDED && m_bClick )
            {
                OnTouchEnded( pos.x, pos.y );
            }
            else
            {
                bRet = HitTest(pos.x, pos.y);
                if(bRet)
                {
                    if ( m_bDispatchEventToParent )
                    {
                        CNode* pParent = GetParentNode();
                        bRet = pParent && pParent->GetType() == eNT_NodeGUI;
                        if (bRet)
                        {
                            down_cast<CControl*>(pParent)->DispatchEvent( event->GetType(), pos.x, pos.y, event->GetDelta() );
                        }
                    }
                    else
                    {
                        DispatchEvent( event->GetType(), pos.x, pos.y, event->GetDelta() );
                    }
                }
            }
        }
    }
    return bRet;
}
Example #3
0
void CControl::OnTouchCancelled( float x, float y )
{
    OnTouchEnded( x, y );
}
Example #4
0
FReply UUserWidget::NativeOnTouchEnded( const FGeometry& InGeometry, const FPointerEvent& InGestureEvent )
{
	return OnTouchEnded( InGeometry, InGestureEvent ).NativeReply;
}