Modifying the behavior so that the user is able to drag the start/end points, but holding ctrl/shift while hovering will still not be destructive to the old values.

meow-7.2.2
Todd Stinson 2012-04-10 18:42:36 -07:00
parent ba0e3c3c64
commit 1f09812ad2
2 changed files with 69 additions and 0 deletions

View File

@ -83,11 +83,73 @@ BOOL LLPathfindingPathTool::handleMouseDown(S32 pX, S32 pY, MASK pMask)
computeFinalPath();
returnVal = TRUE;
setMouseCapture(TRUE);
}
return returnVal;
}
BOOL LLPathfindingPathTool::handleMouseUp(S32 pX, S32 pY, MASK pMask)
{
BOOL returnVal = FALSE;
if (isAnyPathToolModKeys(pMask))
{
LLVector3 dv = gViewerWindow->mouseDirectionGlobal(pX, pY);
LLVector3 mousePos = LLViewerCamera::getInstance()->getOrigin();
LLVector3 rayStart = mousePos;
LLVector3 rayEnd = mousePos + dv * 150;
if (isPointAModKeys(pMask))
{
setFinalA(rayStart, rayEnd);
}
else if (isPointBModKeys(pMask))
{
setFinalB(rayStart, rayEnd);
}
computeFinalPath();
setMouseCapture(FALSE);
returnVal = TRUE;
}
return returnVal;
}
BOOL LLPathfindingPathTool::handleMiddleMouseDown(S32 pX, S32 pY, MASK pMask)
{
setMouseCapture(TRUE);
return TRUE;
}
BOOL LLPathfindingPathTool::handleMiddleMouseUp(S32 pX, S32 pY, MASK pMask)
{
setMouseCapture(FALSE);
return TRUE;
}
BOOL LLPathfindingPathTool::handleRightMouseDown(S32 pX, S32 pY, MASK pMask)
{
setMouseCapture(TRUE);
return TRUE;
}
BOOL LLPathfindingPathTool::handleRightMouseUp(S32 pX, S32 pY, MASK pMask)
{
setMouseCapture(FALSE);
return TRUE;
}
BOOL LLPathfindingPathTool::handleDoubleClick(S32 pX, S32 pY, MASK pMask)
{
return TRUE;
}
BOOL LLPathfindingPathTool::handleHover(S32 pX, S32 pY, MASK pMask)
{
BOOL returnVal = FALSE;

View File

@ -68,6 +68,13 @@ public:
typedef boost::signals2::connection path_event_slot_t;
virtual BOOL handleMouseDown(S32 pX, S32 pY, MASK pMask);
virtual BOOL handleMouseUp(S32 pX, S32 pY, MASK pMask);
virtual BOOL handleMiddleMouseDown(S32 pX, S32 pY, MASK pMask);
virtual BOOL handleMiddleMouseUp(S32 pX, S32 pY, MASK pMask);
virtual BOOL handleRightMouseDown(S32 pX, S32 pY, MASK pMask);
virtual BOOL handleRightMouseUp(S32 pX, S32 pY, MASK pMask);
virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
virtual BOOL handleHover(S32 pX, S32 pY, MASK pMask);
EPathStatus getPathStatus() const;