summaryrefslogtreecommitdiff
path: root/indra/llui/llviewborder.h
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
committerJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
commit420b91db29485df39fd6e724e782c449158811cb (patch)
treeb471a94563af914d3ed3edd3e856d21cb1b69945 /indra/llui/llviewborder.h
Print done when done.
Diffstat (limited to 'indra/llui/llviewborder.h')
-rw-r--r--indra/llui/llviewborder.h77
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
+