00001
00032 #ifndef LL_TOOLOBJPICKER_H
00033 #define LL_TOOLOBJPICKER_H
00034
00035 #include "lltool.h"
00036 #include "v3math.h"
00037 #include "lluuid.h"
00038
00039 class LLToolObjPicker : public LLTool, public LLSingleton<LLToolObjPicker>
00040 {
00041 public:
00042 LLToolObjPicker();
00043
00044 virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
00045 virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
00046 virtual BOOL handleHover(S32 x, S32 y, MASK mask);
00047
00048 virtual void handleSelect();
00049 virtual void handleDeselect();
00050
00051 virtual void onMouseCaptureLost();
00052
00053 virtual void setExitCallback(void (*callback)(void *), void *callback_data);
00054
00055 LLUUID getObjectID() const { return mHitObjectID; }
00056
00057 static void pickCallback(S32 x, S32 y, MASK mask);
00058
00059 protected:
00060 BOOL mPicked;
00061 LLUUID mHitObjectID;
00062 void (*mExitCallback)(void *callback_data);
00063 void *mExitCallbackData;
00064 };
00065
00066
00067 #endif