コード例 #1
0
bool UKUISimpleClickWidget::OnMouseButtonUp( const FKUIInterfaceContainerMouseButtonEvent& stEventInfo )
{
	if ( stEventInfo.bHandled )
		return true;

	if ( !CanReceieveMouseEvents() )
		return Super::OnMouseButtonUp( stEventInfo );

	if ( stEventInfo.eButton != EMouseButtons::Left )
		return Super::OnMouseButtonUp( stEventInfo );

	if ( !bDown )
		return Super::OnMouseButtonUp( stEventInfo );

	bool bTriggerClick = ( IsVisibleRecursive() && !IsDisabledRecursive() );

	if ( bTriggerClick && bMouseOver )
	{
		FKUIInterfaceWidgetClickEvent stClickEventInfo( EKUIInterfaceWidgetEventList::E_Click, v2ClickOffset );
		SendEvent( stClickEventInfo );
	}

	bDown = false;
	FKUIInterfaceEvent stStateEventInfo( EKUIInterfaceWidgetEventList::E_StateChange );
	SendEvent( stStateEventInfo );

	if ( bTriggerClick )
		return bMouseOver;

	return Super::OnMouseButtonUp( stEventInfo );
}
コード例 #2
0
bool UKUISimpleClickWidget::OnMouseButtonDown( const FKUIInterfaceContainerMouseButtonEvent& stEventInfo )
{
	if ( stEventInfo.bHandled )
		return true;

	if ( !CanReceieveMouseEvents() )
		return Super::OnMouseButtonDown( stEventInfo );

	if ( stEventInfo.eButton != EMouseButtons::Left )
		return Super::OnMouseButtonDown( stEventInfo );

	bDown = false;

	if ( !bMouseOver )
		return Super::OnMouseButtonDown( stEventInfo );

	if ( !IsVisibleRecursive() )
		return Super::OnMouseButtonDown( stEventInfo );

	if ( IsDisabledRecursive() )
		return Super::OnMouseButtonDown( stEventInfo );

	bDown = true;
	v2ClickOffset = stEventInfo.v2Location - GetScreenLocation();
	KUISendSubEvent( FKUIInterfaceEvent, EKUIInterfaceWidgetEventList::E_StateChange );

	return true;
}
コード例 #3
0
ファイル: KUISliderWidget.cpp プロジェクト: mrG7/KeshUI
bool UKUISliderWidget::OnMouseButtonDown( const FKUIInterfaceContainerMouseButtonEvent& stEventInfo )
{
	if ( !CanReceieveMouseEvents() )
		return Super::OnMouseButtonDown( stEventInfo );

	if ( stEventInfo.eButton != EMouseButtons::Left )
		return Super::OnMouseButtonDown( stEventInfo );

	if ( !IsVisibleRecursive() )
		return Super::OnMouseButtonDown( stEventInfo );

	if ( IsDisabledRecursive() )
		return Super::OnMouseButtonDown( stEventInfo );

	if ( !IsMouseOver() )
		return Super::OnMouseButtonDown( stEventInfo );

	if ( oHandle.IsValid() && oHandle->IsMouseOver() )
	{
		if ( bHorizontal )
			fMouseDownOffset = stEventInfo.v2Location.X - oHandle->GetScreenLocation().X - oHandle->GetSize().X / 2.f;

		else
			fMouseDownOffset = stEventInfo.v2Location.Y - oHandle->GetScreenLocation().Y - oHandle->GetSize().Y / 2.f;
	}

	else
		fMouseDownOffset = 0.f;

	bDragging = true;
	OnDrag( bHorizontal ? stEventInfo.v2Location.X : stEventInfo.v2Location.Y );
	KUISendSubEvent( FKUIInterfaceEvent, EKUIInterfaceWidgetEventList::E_StateChange );

	return true;
}
コード例 #4
0
ファイル: KUISliderWidget.cpp プロジェクト: mrG7/KeshUI
void UKUISliderWidget::OnMouseMove( const FKUIInterfaceContainerMouseLocationEvent& stEventInfo )
{
	Super::OnMouseMove( stEventInfo );

	if ( !CanReceieveMouseEvents() )
		return;

	if ( !bDragging )
		return;

	if ( IsDisabledRecursive() )
		return;

	OnDrag( bHorizontal ? stEventInfo.v2NewLocation.X : stEventInfo.v2NewLocation.Y );
}
コード例 #5
0
ファイル: KUISliderWidget.cpp プロジェクト: mrG7/KeshUI
bool UKUISliderWidget::OnMouseButtonUp( const FKUIInterfaceContainerMouseButtonEvent& stEventInfo )
{
	if ( !CanReceieveMouseEvents() )
		return Super::OnMouseButtonUp( stEventInfo );

	if ( stEventInfo.eButton != EMouseButtons::Left )
		return Super::OnMouseButtonUp( stEventInfo );

	if ( !IsVisibleRecursive() )
		return Super::OnMouseButtonUp( stEventInfo );

	if ( IsDisabledRecursive() )
		return Super::OnMouseButtonUp( stEventInfo );

	if ( !bDragging )
		return Super::OnMouseButtonUp( stEventInfo );

	bDragging = false;
	KUISendSubEvent( FKUIInterfaceEvent, EKUIInterfaceWidgetEventList::E_StateChange );

	return true;
}