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; }
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; }
void UKUIInterfaceElement::SetContainer( UKUIInterfaceContainer* ctContainer ) { if ( ctContainer == this->ctContainer ) return; if ( this->ctContainer.IsValid() ) { KUISendSubEvent( FKUIInterfaceElementContainerEvent, EKUIInterfaceElementEventList::E_RemovedFromContainer, this->ctContainer.Get() ); } this->ctContainer = ctContainer; // Run the child event to set up containers. if ( this->ctContainer != NULL ) { KUISendSubEvent( FKUIInterfaceElementContainerEvent, EKUIInterfaceElementEventList::E_AddedToContainer, this->ctContainer.Get() ); } }
void UKUISimpleClickWidget::OnMouseMove( const FKUIInterfaceContainerMouseLocationEvent& stEventInfo ) { Super::OnMouseMove( stEventInfo ); if ( !CanReceieveMouseEvents() ) return; bool bMouseOver = IsMouseOver(); if ( this->bMouseOver == bMouseOver ) return; this->bMouseOver = bMouseOver; KUISendSubEvent( FKUIInterfaceEvent, EKUIInterfaceWidgetEventList::E_StateChange ); }
void UKUISliderWidget::SetValue( float fValue ) { //KUILogUO( "Value %f -> %f", this->fValue, fValue ); if ( iStepCount == 0 ) fValue = clamp( fValue, 0.f, 1.f ); else fValue = round( clamp( fValue, 0.f, ( float ) iStepCount ) ); if ( this->fValue == fValue ) return; this->fValue = fValue; KUISendEvent( FKUIInterfaceEvent, EKUIInterfaceWidgetEventList::E_StateChange ); KUISendSubEvent( FKUIInterfaceEvent, EKUIInterfaceWidgetEventList::E_ValueChange ); }
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; }
void UKUIInterfaceElement::OnAddedToContainer( const FKUIInterfaceElementContainerEvent& stEventInfo ) { this->ctContainer = stEventInfo.ctContainer; if ( this->ctContainer != NULL && this->ctContainer->IsInitialized() && !bInitialized ) { UKUIInterfaceContainer* ctContainer = Cast<UKUIInterfaceContainer>( this ); if ( ctContainer != NULL ) { KUIBroadcastSubEventObj( ctContainer, FKUIInterfaceEvent, EKUIInterfaceElementEventList::E_Initialize ); } else { KUISendSubEvent( FKUIInterfaceEvent, EKUIInterfaceElementEventList::E_Initialize ); } } InvalidateAlignLocation(); InvalidateContainerRenderCache(); }