summaryrefslogtreecommitdiff
path: root/indra/newview/lltoolcomp.cpp
diff options
context:
space:
mode:
authorSteven Bennetts <steve@lindenlab.com>2007-01-17 23:02:00 +0000
committerSteven Bennetts <steve@lindenlab.com>2007-01-17 23:02:00 +0000
commit71d28bdbf0baab9302c8f458e3bdbcfc60d656d4 (patch)
tree19f051897838d5a75e5ce1e776bb52a330173171 /indra/newview/lltoolcomp.cpp
parentfc664e93e62645fc6e9659664351e77f3c4b374f (diff)
merge release@56803 release-candidate@56833
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;
}