summaryrefslogtreecommitdiff
path: root/indra/newview/lltoolpipette.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lltoolpipette.cpp')
-rw-r--r--indra/newview/lltoolpipette.cpp37
1 files changed, 20 insertions, 17 deletions
diff --git a/indra/newview/lltoolpipette.cpp b/indra/newview/lltoolpipette.cpp
index 9d95ccc06f..beebb47537 100644
--- a/indra/newview/lltoolpipette.cpp
+++ b/indra/newview/lltoolpipette.cpp
@@ -40,6 +40,7 @@
#include "lltoolpipette.h"
// Library includes
+#include "lltooltip.h"
// Viewer includes
#include "llviewerobjectlist.h"
@@ -55,8 +56,6 @@ LLToolPipette::LLToolPipette()
: LLTool(std::string("Pipette")),
mSuccess(TRUE)
{
- mSelectCallback = NULL;
- mUserData = NULL;
}
@@ -94,18 +93,31 @@ BOOL LLToolPipette::handleHover(S32 x, S32 y, MASK mask)
return FALSE;
}
-BOOL LLToolPipette::handleToolTip(S32 x, S32 y, std::string& msg, LLRect *sticky_rect_screen)
+BOOL LLToolPipette::handleToolTip(S32 x, S32 y, MASK mask)
{
if (mTooltipMsg.empty())
{
return FALSE;
}
- // keep tooltip message up when mouse in this part of screen
- sticky_rect_screen->setCenterAndSize(x, y, 20, 20);
- msg = mTooltipMsg;
+
+ LLRect sticky_rect;
+ sticky_rect.setCenterAndSize(x, y, 20, 20);
+ LLToolTipMgr::instance().show(LLToolTip::Params()
+ .message(mTooltipMsg)
+ .sticky_rect(sticky_rect));
+
return TRUE;
}
+void LLToolPipette::setTextureEntry(const LLTextureEntry* entry)
+{
+ if (entry)
+ {
+ mTextureEntry = *entry;
+ mSignal(mTextureEntry);
+ }
+}
+
void LLToolPipette::pickCallback(const LLPickInfo& pick_info)
{
LLViewerObject* hit_obj = pick_info.getObject();
@@ -118,20 +130,11 @@ void LLToolPipette::pickCallback(const LLPickInfo& pick_info)
{
//TODO: this should highlight the selected face only
LLSelectMgr::getInstance()->highlightObjectOnly(hit_obj);
- LLToolPipette::getInstance()->mTextureEntry = *hit_obj->getTE(pick_info.mObjectFace);
- if (LLToolPipette::getInstance()->mSelectCallback)
- {
- LLToolPipette::getInstance()->mSelectCallback(LLToolPipette::getInstance()->mTextureEntry, LLToolPipette::getInstance()->mUserData);
- }
+ const LLTextureEntry* entry = hit_obj->getTE(pick_info.mObjectFace);
+ LLToolPipette::getInstance()->setTextureEntry(entry);
}
}
-void LLToolPipette::setSelectCallback(select_callback callback, void* user_data)
-{
- mSelectCallback = callback;
- mUserData = user_data;
-}
-
void LLToolPipette::setResult(BOOL success, const std::string& msg)
{
mTooltipMsg = msg;