00001 00032 #ifndef LL_RESIZEHANDLE_H 00033 #define LL_RESIZEHANDLE_H 00034 00035 #include "stdtypes.h" 00036 #include "llview.h" 00037 #include "llimagegl.h" 00038 #include "llcoord.h" 00039 00040 00041 class LLResizeHandle : public LLView 00042 { 00043 public: 00044 enum ECorner { LEFT_TOP, LEFT_BOTTOM, RIGHT_TOP, RIGHT_BOTTOM }; 00045 00046 00047 LLResizeHandle(const LLString& name, const LLRect& rect, S32 min_width, S32 min_height, ECorner corner = RIGHT_BOTTOM ); 00048 00049 virtual void draw(); 00050 virtual BOOL handleHover(S32 x, S32 y, MASK mask); 00051 virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); 00052 virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); 00053 00054 void setResizeLimits( S32 min_width, S32 min_height ) { mMinWidth = min_width; mMinHeight = min_height; } 00055 00056 private: 00057 BOOL pointInHandle( S32 x, S32 y ); 00058 00059 S32 mDragLastScreenX; 00060 S32 mDragLastScreenY; 00061 S32 mLastMouseScreenX; 00062 S32 mLastMouseScreenY; 00063 LLCoordGL mLastMouseDir; 00064 LLPointer<LLUIImage> mImage; 00065 S32 mMinWidth; 00066 S32 mMinHeight; 00067 const ECorner mCorner; 00068 }; 00069 00070 const S32 RESIZE_HANDLE_HEIGHT = 16; 00071 const S32 RESIZE_HANDLE_WIDTH = 16; 00072 00073 #endif // LL_RESIZEHANDLE_H 00074 00075