BOOL LLToolSelectRect::handleHover(S32 x, S32 y, MASK mask) { if( hasMouseCapture() ) { if (mMouseOutsideSlop || outsideSlop(x, y, mDragStartX, mDragStartY)) { if (!mMouseOutsideSlop && !(mask & MASK_SHIFT) && !(mask & MASK_CONTROL)) { // just started rect select, and not adding to current selection gSelectMgr->deselectAll(); } mMouseOutsideSlop = TRUE; mDragEndX = x; mDragEndY = y; handleRectangleSelection(x, y, mask); } else { return LLToolSelect::handleHover(x, y, mask); } lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolSelectRect (active)" << llendl; } else { lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolSelectRect (inactive)" << llendl; } gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); return TRUE; }
BOOL LLToolSelectRect::handleHover(S32 x, S32 y, MASK mask) { if( hasMouseCapture() ) { if (mMouseOutsideSlop || outsideSlop(x, y, mDragStartX, mDragStartY)) { if (!mMouseOutsideSlop && !(mask & MASK_SHIFT) && !(mask & MASK_CONTROL)) { // just started rect select, and not adding to current selection LLSelectMgr::getInstance()->deselectAll(); } mMouseOutsideSlop = TRUE; mDragEndX = x; mDragEndY = y; handleRectangleSelection(x, y, mask); } else { return LLToolSelect::handleHover(x, y, mask); } LL_DEBUGS("UserInput") << "hover handled by LLToolSelectRect (active)" << LL_ENDL; } else { LL_DEBUGS("UserInput") << "hover handled by LLToolSelectRect (inactive)" << LL_ENDL; } gViewerWindow->setCursor(UI_CURSOR_ARROW); return TRUE; }
BOOL LLToolSelectLand::handleHover(S32 x, S32 y, MASK mask) { if( hasMouseCapture() ) { if (mMouseOutsideSlop || outsideSlop(x, y, mDragStartX, mDragStartY)) { mMouseOutsideSlop = TRUE; // Must do this every frame, in case the camera moved or the land moved // since last frame. // If doesn't hit land, doesn't change old value LLVector3d land_global; BOOL hit_land = gViewerWindow->mousePointOnLandGlobal(x, y, &land_global); if (hit_land) { mDragEndValid = TRUE; mDragEndGlobal = land_global; sanitize_corners(mDragStartGlobal, mDragEndGlobal, mWestSouthBottom, mEastNorthTop); mWestSouthBottom -= LLVector3d( PARCEL_GRID_STEP_METERS/2, PARCEL_GRID_STEP_METERS/2, 0 ); mEastNorthTop += LLVector3d( PARCEL_GRID_STEP_METERS/2, PARCEL_GRID_STEP_METERS/2, 0 ); roundXY(mWestSouthBottom); roundXY(mEastNorthTop); lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolSelectLand (active, land)" << llendl; gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); } else { mDragEndValid = FALSE; lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolSelectLand (active, no land)" << llendl; gViewerWindow->getWindow()->setCursor(UI_CURSOR_NO); } mDragEndX = x; mDragEndY = y; } else { lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolSelectLand (active, in slop)" << llendl; gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); } } else { lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolSelectLand (inactive)" << llendl; gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); } return TRUE; }
BOOL LLNetMap::handleHover( S32 x, S32 y, MASK mask ) { if (hasMouseCapture()) { if (mPanning || outsideSlop(x, y, mMouseDownX, mMouseDownY, MOUSE_DRAG_SLOP)) { if (!mPanning) { // just started panning, so hide cursor mPanning = TRUE; gViewerWindow->hideCursor(); } F32 delta_x = (F32)(gViewerWindow->getCurrentMouseDX()); F32 delta_y = (F32)(gViewerWindow->getCurrentMouseDY()); // Set pan to value at start of drag + offset mCurPanX += delta_x; mCurPanY += delta_y; mTargetPanX = mCurPanX; mTargetPanY = mCurPanY; gViewerWindow->moveCursorToCenter(); } // Doesn't really matter, cursor should be hidden gViewerWindow->setCursor( UI_CURSOR_TOOLPAN ); } else { if (mask & MASK_SHIFT) { // If shift is held, change the cursor to hint that the map can be dragged gViewerWindow->setCursor( UI_CURSOR_TOOLPAN ); } else { gViewerWindow->setCursor( UI_CURSOR_CROSS ); } } return TRUE; }
BOOL LLNetMap::handleHover( S32 x, S32 y, MASK mask ) { if (hasMouseCapture()) { if (mPanning || outsideSlop(x, y, mMouseDownX, mMouseDownY)) { // just started panning, so hide cursor if (!mPanning) { mPanning = TRUE; gViewerWindow->hideCursor(); } F32 delta_x = (F32)(gViewerWindow->getCurrentMouseDX()); F32 delta_y = (F32)(gViewerWindow->getCurrentMouseDY()); // Set pan to value at start of drag + offset mCurPanX += delta_x; mCurPanY += delta_y; mTargetPanX = mCurPanX; mTargetPanY = mCurPanY; gViewerWindow->moveCursorToCenter(); } // Doesn't matter, cursor should be hidden gViewerWindow->setCursor( UI_CURSOR_CROSS ); return TRUE; } else { gViewerWindow->setCursor( UI_CURSOR_CROSS ); lldebugst(LLERR_USER_INPUT) << "hover handled by LLNetMap" << llendl; return TRUE; } }