diff options
author | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
---|---|---|
committer | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
commit | 420b91db29485df39fd6e724e782c449158811cb (patch) | |
tree | b471a94563af914d3ed3edd3e856d21cb1b69945 /indra/llui/llviewborder.h |
Print done when done.
Diffstat (limited to 'indra/llui/llviewborder.h')
-rw-r--r-- | indra/llui/llviewborder.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/indra/llui/llviewborder.h b/indra/llui/llviewborder.h new file mode 100644 index 0000000000..984eee6e60 --- /dev/null +++ b/indra/llui/llviewborder.h @@ -0,0 +1,77 @@ +/** + * @file llviewborder.h + * @brief LLViewBorder base class + * + * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +// A customizable decorative border. Does not interact with mouse events. + +#ifndef LL_LLVIEWBORDER_H +#define LL_LLVIEWBORDER_H + +#include "llview.h" +#include "v4color.h" +#include "lluuid.h" +#include "llimagegl.h" +#include "llxmlnode.h" + +class LLUUID; + + +class LLViewBorder : public LLView +{ +public: + enum EBevel { BEVEL_IN, BEVEL_OUT, BEVEL_BRIGHT, BEVEL_NONE }; + + enum EStyle { STYLE_LINE, STYLE_TEXTURE }; + + LLViewBorder( const LLString& name, const LLRect& rect, EBevel bevel = BEVEL_OUT, EStyle style = STYLE_LINE, S32 width = 1 ); + + virtual void setValue(const LLSD& val); + virtual EWidgetType getWidgetType() const; + virtual LLString getWidgetTag() const; + + virtual BOOL isCtrl(); + + // llview functionality + virtual void draw(); + + static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); + static bool getBevelFromAttribute(LLXMLNodePtr node, LLViewBorder::EBevel& bevel_style); + + void setBorderWidth(S32 width) { mBorderWidth = width; } + void setBevel(EBevel bevel) { mBevel = bevel; } + void setColors( const LLColor4& shadow_dark, const LLColor4& highlight_light ); + void setColorsExtended( const LLColor4& shadow_light, const LLColor4& shadow_dark, + const LLColor4& highlight_light, const LLColor4& highlight_dark ); + void setTexture( const LLUUID &image_id ); + + EBevel getBevel() const { return mBevel; } + EStyle getStyle() const { return mStyle; } + S32 getBorderWidth() const { return mBorderWidth; } + + void setKeyboardFocusHighlight( BOOL b ) { mHasKeyboardFocus = b; } + +protected: + void drawOnePixelLines(); + void drawTwoPixelLines(); + void drawTextures(); + void drawTextureTrapezoid( F32 degrees, S32 width, S32 length, F32 start_x, F32 start_y ); + +protected: + EBevel mBevel; + EStyle mStyle; + LLColor4 mHighlightLight; + LLColor4 mHighlightDark; + LLColor4 mShadowLight; + LLColor4 mShadowDark; + LLColor4 mBackgroundColor; + S32 mBorderWidth; + LLPointer<LLImageGL> mTexture; + BOOL mHasKeyboardFocus; +}; + +#endif // LL_LLVIEWBORDER_H + |