00001 00032 #ifndef LL_LLTOOLFOCUS_H 00033 #define LL_LLTOOLFOCUS_H 00034 00035 #include "lltool.h" 00036 00037 class LLToolCamera 00038 : public LLTool 00039 { 00040 public: 00041 LLToolCamera(); 00042 virtual ~LLToolCamera(); 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 onMouseCaptureLost(); 00049 00050 virtual void handleSelect(); 00051 virtual void handleDeselect(); 00052 00053 virtual LLTool* getOverrideTool(MASK mask) { return NULL; } 00054 00055 static void pickCallback(S32 x, S32 y, MASK mask); 00056 BOOL mouseSteerMode() { return mMouseSteering; } 00057 00058 protected: 00059 // called from handleMouseUp and onMouseCaptureLost to "let go" 00060 // of the mouse and make it visible JC 00061 void releaseMouse(); 00062 00063 protected: 00064 S32 mAccumX; 00065 S32 mAccumY; 00066 S32 mMouseDownX; 00067 S32 mMouseDownY; 00068 BOOL mOutsideSlopX; 00069 BOOL mOutsideSlopY; 00070 BOOL mValidClickPoint; 00071 BOOL mMouseSteering; 00072 S32 mMouseUpX; // needed for releaseMouse() 00073 S32 mMouseUpY; 00074 MASK mMouseUpMask; 00075 }; 00076 00077 00078 extern LLToolCamera *gToolCamera; 00079 00080 extern BOOL gCameraBtnOrbit; 00081 extern BOOL gCameraBtnPan; 00082 00083 #endif