diff options
Diffstat (limited to 'indra/newview/lltoolcomp.cpp')
-rw-r--r-- | indra/newview/lltoolcomp.cpp | 69 |
1 files changed, 63 insertions, 6 deletions
diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp index f295c66ee1..945a172b1c 100644 --- a/indra/newview/lltoolcomp.cpp +++ b/indra/newview/lltoolcomp.cpp @@ -39,6 +39,7 @@ const S32 BUTTON_WIDTH_BIG = 48; const S32 HPAD = 4; // Globals +LLToolCompInspect *gToolInspect = NULL; LLToolCompTranslate *gToolTranslate = NULL; LLToolCompScale *gToolStretch = NULL; LLToolCompRotate *gToolRotate = NULL; @@ -47,6 +48,7 @@ LLToolCompGun *gToolGun = NULL; extern LLControlGroup gSavedSettings; + //----------------------------------------------------------------------- // LLToolComposite @@ -109,6 +111,64 @@ void LLToolComposite::handleSelect() } //---------------------------------------------------------------------------- +// LLToolCompInspect +//---------------------------------------------------------------------------- + +LLToolCompInspect::LLToolCompInspect() +: LLToolComposite("Inspect") +{ + mSelectRect = new LLToolSelectRect(this); + mDefault = mSelectRect; +} + + +LLToolCompInspect::~LLToolCompInspect() +{ + delete mSelectRect; + mSelectRect = NULL; +} + +BOOL LLToolCompInspect::handleMouseDown(S32 x, S32 y, MASK mask) +{ + mMouseDown = TRUE; + gViewerWindow->hitObjectOrLandGlobalAsync(x, y, mask, pickCallback); + return TRUE; +} + +void LLToolCompInspect::pickCallback(S32 x, S32 y, MASK mask) +{ + LLViewerObject* hit_obj = gViewerWindow->lastObjectHit(); + + if (!gToolInspect->mMouseDown) + { + // fast click on object, but mouse is already up...just do select + gToolInspect->mSelectRect->handleObjectSelection(hit_obj, mask, !gSavedSettings.getBOOL("SelectLinkedSet"), FALSE); + return; + } + + if( hit_obj ) + { + if (gSelectMgr->getObjectCount()) + { + gEditMenuHandler = gSelectMgr; + } + gToolInspect->setCurrentTool( gToolInspect->mSelectRect ); + gToolInspect->mSelectRect->handleMouseDown( x, y, mask ); + + } + else + { + gToolInspect->setCurrentTool( gToolInspect->mSelectRect ); + gToolInspect->mSelectRect->handleMouseDown( x, y, mask); + } +} + +BOOL LLToolCompInspect::handleDoubleClick(S32 x, S32 y, MASK mask) +{ + return TRUE; +} + +//---------------------------------------------------------------------------- // LLToolCompTranslate //---------------------------------------------------------------------------- @@ -202,12 +262,9 @@ BOOL LLToolCompTranslate::handleDoubleClick(S32 x, S32 y, MASK mask) gFloaterTools->showPanel(LLFloaterTools::PANEL_CONTENTS); return TRUE; } - else - { - // Nothing selected means the first mouse click was probably - // bad, so try again. - return FALSE; - } + // Nothing selected means the first mouse click was probably + // bad, so try again. + return FALSE; } |