summaryrefslogtreecommitdiff
path: root/indra/newview/lltoolcomp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lltoolcomp.cpp')
-rw-r--r--indra/newview/lltoolcomp.cpp69
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;
}