Refining the behavior of the pathing test tool behavior with regards to mouse clicks.
parent
c7df83c77d
commit
6aeb2c68b9
|
|
@ -70,6 +70,7 @@ ECursorType getCursorFromString(const std::string& cursor_string)
|
|||
cursor_string_table["UI_CURSOR_TOOLBUY"] = UI_CURSOR_TOOLBUY;
|
||||
cursor_string_table["UI_CURSOR_TOOLOPEN"] = UI_CURSOR_TOOLOPEN;
|
||||
cursor_string_table["UI_CURSOR_TOOLPATHFINDING"] = UI_CURSOR_TOOLPATHFINDING;
|
||||
cursor_string_table["UI_CURSOR_TOOLNO"] = UI_CURSOR_TOOLNO;
|
||||
}
|
||||
|
||||
std::map<std::string,U32>::const_iterator iter = cursor_string_table.find(cursor_string);
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ enum ECursorType {
|
|||
UI_CURSOR_TOOLBUY,
|
||||
UI_CURSOR_TOOLOPEN,
|
||||
UI_CURSOR_TOOLPATHFINDING,
|
||||
UI_CURSOR_TOOLNO,
|
||||
UI_CURSOR_COUNT // Number of elements in this enum (NOT a cursor)
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1698,6 +1698,7 @@ void LLWindowWin32::initCursors()
|
|||
mCursor[ UI_CURSOR_TOOLBUY ] = LoadCursor(module, TEXT("TOOLBUY"));
|
||||
mCursor[ UI_CURSOR_TOOLOPEN ] = LoadCursor(module, TEXT("TOOLOPEN"));
|
||||
mCursor[ UI_CURSOR_TOOLPATHFINDING ] = LoadCursor(module, TEXT("TOOLPATHFINDING"));
|
||||
mCursor[ UI_CURSOR_TOOLNO ] = LoadCursor(module, TEXT("TOOLNO"));
|
||||
|
||||
// Color cursors
|
||||
mCursor[ UI_CURSOR_TOOLPLAY ] = loadColorCursor(TEXT("TOOLPLAY"));
|
||||
|
|
|
|||
|
|
@ -46,7 +46,10 @@ LLPathfindingPathTool::LLPathfindingPathTool()
|
|||
mTempPathData(),
|
||||
mPathResult(LLPathingLib::LLPL_NO_PATH),
|
||||
mCharacterType(kCharacterTypeNone),
|
||||
mPathEventSignal()
|
||||
mPathEventSignal(),
|
||||
mIsLeftMouseButtonHeld(false),
|
||||
mIsMiddleMouseButtonHeld(false),
|
||||
mIsRightMouseButtonHeld(false)
|
||||
{
|
||||
if (!LLPathingLib::getInstance())
|
||||
{
|
||||
|
|
@ -65,12 +68,16 @@ BOOL LLPathfindingPathTool::handleMouseDown(S32 pX, S32 pY, MASK pMask)
|
|||
{
|
||||
BOOL returnVal = FALSE;
|
||||
|
||||
if (isAnyPathToolModKeys(pMask))
|
||||
llinfos << "STINSON DEBUG: got here" << llendl;
|
||||
|
||||
if (!mIsLeftMouseButtonHeld && !mIsMiddleMouseButtonHeld && !mIsRightMouseButtonHeld && isAnyPathToolModKeys(pMask))
|
||||
{
|
||||
computeFinalPoints(pX, pY, pMask);
|
||||
mIsLeftMouseButtonHeld = true;
|
||||
setMouseCapture(TRUE);
|
||||
returnVal = TRUE;
|
||||
}
|
||||
mIsLeftMouseButtonHeld = true;
|
||||
|
||||
return returnVal;
|
||||
}
|
||||
|
|
@ -79,54 +86,85 @@ BOOL LLPathfindingPathTool::handleMouseUp(S32 pX, S32 pY, MASK pMask)
|
|||
{
|
||||
BOOL returnVal = FALSE;
|
||||
|
||||
if (isAnyPathToolModKeys(pMask))
|
||||
llinfos << "STINSON DEBUG: got here" << llendl;
|
||||
|
||||
if (mIsLeftMouseButtonHeld && !mIsMiddleMouseButtonHeld && !mIsRightMouseButtonHeld && isAnyPathToolModKeys(pMask))
|
||||
{
|
||||
computeFinalPoints(pX, pY, pMask);
|
||||
setMouseCapture(FALSE);
|
||||
returnVal = TRUE;
|
||||
}
|
||||
mIsLeftMouseButtonHeld = false;
|
||||
|
||||
return returnVal;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleMiddleMouseDown(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
setMouseCapture(FALSE);
|
||||
llinfos << "STINSON DEBUG: got here" << llendl;
|
||||
|
||||
setMouseCapture(TRUE);
|
||||
mIsMiddleMouseButtonHeld = true;
|
||||
gViewerWindow->setCursor(UI_CURSOR_TOOLNO);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleMiddleMouseUp(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
setMouseCapture(FALSE);
|
||||
llinfos << "STINSON DEBUG: got here" << llendl;
|
||||
|
||||
if (!mIsLeftMouseButtonHeld && mIsMiddleMouseButtonHeld && !mIsRightMouseButtonHeld)
|
||||
{
|
||||
setMouseCapture(FALSE);
|
||||
}
|
||||
mIsMiddleMouseButtonHeld = false;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleRightMouseDown(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
setMouseCapture(FALSE);
|
||||
llinfos << "STINSON DEBUG: got here" << llendl;
|
||||
|
||||
setMouseCapture(TRUE);
|
||||
mIsRightMouseButtonHeld = true;
|
||||
gViewerWindow->setCursor(UI_CURSOR_TOOLNO);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleRightMouseUp(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
setMouseCapture(FALSE);
|
||||
llinfos << "STINSON DEBUG: got here" << llendl;
|
||||
|
||||
if (!mIsLeftMouseButtonHeld && !mIsMiddleMouseButtonHeld && mIsRightMouseButtonHeld)
|
||||
{
|
||||
setMouseCapture(FALSE);
|
||||
}
|
||||
mIsRightMouseButtonHeld = false;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleDoubleClick(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
llinfos << "STINSON DEBUG: got here" << llendl;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LLPathfindingPathTool::onMouseCaptureLost()
|
||||
{
|
||||
llinfos << "STINSON DEBUG: got here" << llendl;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleHover(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
BOOL returnVal = FALSE;
|
||||
llinfos << "STINSON DEBUG: got here" << llendl;
|
||||
|
||||
if (isAnyPathToolModKeys(pMask))
|
||||
if (!mIsMiddleMouseButtonHeld && !mIsRightMouseButtonHeld && isAnyPathToolModKeys(pMask))
|
||||
{
|
||||
gViewerWindow->setCursor(UI_CURSOR_TOOLPATHFINDING);
|
||||
computeTempPoints(pX, pY, pMask);
|
||||
|
|
|
|||
|
|
@ -68,12 +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 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 void onMouseCaptureLost();
|
||||
|
||||
virtual BOOL handleHover(S32 pX, S32 pY, MASK pMask);
|
||||
|
||||
|
|
@ -128,6 +129,9 @@ private:
|
|||
LLPathingLib::LLPLResult mPathResult;
|
||||
ECharacterType mCharacterType;
|
||||
path_event_signal_t mPathEventSignal;
|
||||
bool mIsLeftMouseButtonHeld;
|
||||
bool mIsMiddleMouseButtonHeld;
|
||||
bool mIsRightMouseButtonHeld;
|
||||
};
|
||||
|
||||
#endif // LL_LLPATHFINDINGPATHTOOL_H
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@ TOOLBUY CURSOR "toolbuy.cur"
|
|||
TOOLOPEN CURSOR "toolopen.cur"
|
||||
TOOLSIT CURSOR "toolsit.cur"
|
||||
TOOLPATHFINDING CURSOR "lltoolpathfinding.cur"
|
||||
TOOLNO CURSOR "llno.cur"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
|
|
|||
Loading…
Reference in New Issue