// ImgButton void ImgButton::Paint(Draw &w) { Size sz = GetSize(); if (look) ChPaint(w, sz, look[Pusher::GetVisualState()]); int dx = IsPush() * -1; int dy = IsPush(); if (!img.IsEmpty()) { Size isz = img.GetSize(); w.DrawImage((sz.cx - isz.cx) / 2 + dx, (sz.cy - isz.cy) / 2 + dy, img); } }
void FDirectInputJoystick::EventPov(const TSharedPtr<FGenericApplicationMessageHandler>& MessageHandler) { if(IsPush(POV_UP)) { MessageHandler->OnControllerButtonPressed(EKeysDirectInputPad::DIGamePad_POV_Up.GetFName(), GetPlayerIndex(), false); } else if(IsRelease(POV_UP)) { MessageHandler->OnControllerButtonReleased(EKeysDirectInputPad::DIGamePad_POV_Up.GetFName(), GetPlayerIndex(), false); } else if(IsPush(POV_DOWN)) { MessageHandler->OnControllerButtonPressed(EKeysDirectInputPad::DIGamePad_POV_Down.GetFName(), GetPlayerIndex(), false); } else if(IsRelease(POV_DOWN)) { MessageHandler->OnControllerButtonReleased(EKeysDirectInputPad::DIGamePad_POV_Down.GetFName(), GetPlayerIndex(), false); } if(IsPush(POV_RIGHT)) { MessageHandler->OnControllerButtonPressed(EKeysDirectInputPad::DIGamePad_POV_Right.GetFName(), GetPlayerIndex(), false); } else if(IsRelease(POV_RIGHT)) { MessageHandler->OnControllerButtonReleased(EKeysDirectInputPad::DIGamePad_POV_Right.GetFName(), GetPlayerIndex(), false); } else if(IsPush(POV_LEFT)) { MessageHandler->OnControllerButtonPressed(EKeysDirectInputPad::DIGamePad_POV_Left.GetFName(), GetPlayerIndex(), false); } else if(IsRelease(POV_LEFT)) { MessageHandler->OnControllerButtonReleased(EKeysDirectInputPad::DIGamePad_POV_Left.GetFName(), GetPlayerIndex(), false); } }
bool GnInterfaceGroup::PushMove(float fPointX, float fPointY) { if( IsEnablePushMove() == false ) return false; if( IfUseCheckCollision( fPointX, fPointY ) == false && mAllPush == false ) { for ( gtuint i = 0; i < mPersonalChildren.GetSize(); i++ ) { GnInterface* child = mPersonalChildren.GetAt( i ); if( child->IsVisible() && child->PushMove( fPointX, fPointY ) ) { GnIInputEvent event(GnIInputEvent::PUSHUP, fPointX, fPointY); mSignal.EmitSignal( child, &event ); } } if( IsPush() ) { for ( gtuint i = 0; i < GetChildrenSize(); i++ ) { GnInterface* child = GetChild( i ); if( child->IsPush() ) { child->PushUp( fPointX, fPointY ); GnIInputEvent event(GnIInputEvent::PUSHUP, fPointX, fPointY); mSignal.EmitSignal( child, &event ); } } } return false; } if ( IsPush() == false ) { Push( fPointX, fPointY ); return true; } for( gtuint i = 0; i < GetChildrenSize() ; i++ ) { GnInterface* child = GetChild( i ); if( child->IfUseCheckCollision( fPointX, fPointY ) == false ) { if( child->IsPush() ) { child->PushUp(); GnIInputEvent event(GnIInputEvent::PUSHUP, fPointX, fPointY); mSignal.EmitSignal( child, &event ); } } else { if( child->IsVisible() && child->IsPush() == false ) { child->Push( fPointX, fPointY ); GnIInputEvent event(GnIInputEvent::PUSH, fPointX, fPointY); mSignal.EmitSignal( child, &event ); } else { child->PushMove( fPointX, fPointY ); GnIInputEvent event(GnIInputEvent::MOVE, fPointX, fPointY); mSignal.EmitSignal( child, &event ); } } } return true; }
void FDirectInputJoystick::EventButtonPressed(const TSharedPtr<FGenericApplicationMessageHandler>& MessageHandler, EDirectInputPadKeyNames ePadName, FKey DIKey) { if(!IsPush(ePadName-DIGamePad_Button1)) return; MessageHandler->OnControllerButtonPressed(DIKey.GetFName(), GetPlayerIndex(), false); }