diff options
Diffstat (limited to 'indra/llui/llresizehandle.h')
-rw-r--r-- | indra/llui/llresizehandle.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/indra/llui/llresizehandle.h b/indra/llui/llresizehandle.h new file mode 100644 index 0000000000..1350d1af20 --- /dev/null +++ b/indra/llui/llresizehandle.h @@ -0,0 +1,56 @@ +/** + * @file llresizehandle.h + * @brief LLResizeHandle base class + * + * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#ifndef LL_RESIZEHANDLE_H +#define LL_RESIZEHANDLE_H + +#include "stdtypes.h" +#include "llview.h" +#include "llimagegl.h" +#include "llcoord.h" + + +class LLResizeHandle : public LLView +{ +public: + enum ECorner { LEFT_TOP, LEFT_BOTTOM, RIGHT_TOP, RIGHT_BOTTOM }; + + + LLResizeHandle(const LLString& name, const LLRect& rect, S32 min_width, S32 min_height, ECorner corner = RIGHT_BOTTOM ); + + virtual EWidgetType getWidgetType() const; + virtual LLString getWidgetTag() const; + + virtual void draw(); + virtual BOOL handleHover(S32 x, S32 y, MASK mask); + virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); + virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); + + void setResizeLimits( S32 min_width, S32 min_height ) { mMinWidth = min_width; mMinHeight = min_height; } + +protected: + BOOL pointInHandle( S32 x, S32 y ); + +protected: + S32 mDragStartScreenX; + S32 mDragStartScreenY; + S32 mLastMouseScreenX; + S32 mLastMouseScreenY; + LLCoordGL mLastMouseDir; + LLPointer<LLImageGL> mImage; + S32 mMinWidth; + S32 mMinHeight; + ECorner mCorner; +}; + +const S32 RESIZE_HANDLE_HEIGHT = 16; +const S32 RESIZE_HANDLE_WIDTH = 16; + +#endif // LL_RESIZEHANDLE_H + + |