summaryrefslogtreecommitdiff
path: root/indra/newview/lltoolindividual.cpp
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
committerJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
commit420b91db29485df39fd6e724e782c449158811cb (patch)
treeb471a94563af914d3ed3edd3e856d21cb1b69945 /indra/newview/lltoolindividual.cpp
Print done when done.
Diffstat (limited to 'indra/newview/lltoolindividual.cpp')
-rw-r--r--indra/newview/lltoolindividual.cpp102
1 files changed, 102 insertions, 0 deletions
diff --git a/indra/newview/lltoolindividual.cpp b/indra/newview/lltoolindividual.cpp
new file mode 100644
index 0000000000..a5afd379ed
--- /dev/null
+++ b/indra/newview/lltoolindividual.cpp
@@ -0,0 +1,102 @@
+/**
+ * @file lltoolindividual.cpp
+ * @brief LLToolIndividual class implementation
+ *
+ * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+//*****************************************************************************
+//
+// This is a tool for selecting individual object from the
+// toolbox. Handy for when you want to deal with child object
+// inventory...
+//
+//*****************************************************************************
+
+#include "llviewerprecompiledheaders.h"
+#include "lltoolindividual.h"
+
+#include "llselectmgr.h"
+#include "llviewerobject.h"
+#include "llviewerwindow.h"
+#include "llfloatertools.h"
+
+///----------------------------------------------------------------------------
+/// Globals
+///----------------------------------------------------------------------------
+
+LLToolIndividual* gToolIndividual = NULL;
+
+///----------------------------------------------------------------------------
+/// Local function declarations, constants, enums, and typedefs
+///----------------------------------------------------------------------------
+
+
+///----------------------------------------------------------------------------
+/// Class LLToolIndividual
+///----------------------------------------------------------------------------
+
+// Default constructor
+LLToolIndividual::LLToolIndividual()
+ : LLTool("Individual")
+{
+}
+
+// Destroys the object
+LLToolIndividual::~LLToolIndividual()
+{
+}
+
+BOOL LLToolIndividual::handleMouseDown(S32 x, S32 y, MASK mask)
+{
+ gViewerWindow->hitObjectOrLandGlobalAsync(x, y, mask, pickCallback);
+ return TRUE;
+}
+
+void LLToolIndividual::pickCallback(S32 x, S32 y, MASK mask)
+{
+ LLViewerObject* obj = gViewerWindow->lastObjectHit();
+ gSelectMgr->deselectAll();
+ if(obj)
+ {
+ gSelectMgr->selectObjectOnly(obj);
+ }
+}
+
+BOOL LLToolIndividual::handleDoubleClick(S32 x, S32 y, MASK mask)
+{
+ if(!gSelectMgr->isEmpty())
+ {
+ // You should already have an object selected from the mousedown.
+ // If so, show its inventory.
+ //gBuildView->showInventoryPanel();
+ //gBuildView->showPanel(LLBuildView::PANEL_CONTENTS);
+ gFloaterTools->showPanel(LLFloaterTools::PANEL_CONTENTS);
+ return TRUE;
+ }
+ else
+ {
+ // Nothing selected means the first mouse click was probably
+ // bad, so try again.
+ return FALSE;
+ }
+}
+
+void LLToolIndividual::handleSelect()
+{
+ LLViewerObject* obj = gSelectMgr->getFirstRootObject();
+ if(!obj)
+ {
+ obj = gSelectMgr->getFirstObject();
+ }
+ gSelectMgr->deselectAll();
+ if(obj)
+ {
+ gSelectMgr->selectObjectOnly(obj);
+ }
+}
+
+///----------------------------------------------------------------------------
+/// Local function definitions
+///----------------------------------------------------------------------------