summaryrefslogtreecommitdiff
path: root/indra/newview/llchatmsgbox.h
diff options
context:
space:
mode:
authorBryan O'Sullivan <bos@lindenlab.com>2009-09-08 14:49:49 -0700
committerBryan O'Sullivan <bos@lindenlab.com>2009-09-08 14:49:49 -0700
commit1018b36b87d0d19e020c1e416c33c76b06125633 (patch)
treeef111a3f5b634ddc3aa23f6e6c3505142e54261a /indra/newview/llchatmsgbox.h
parent91aa2f37f409b7755d460c5a8e9c8d6a9a50557c (diff)
parent76001ce3f0b53391c674f315855017b78a3a2873 (diff)
Merge
Diffstat (limited to 'indra/newview/llchatmsgbox.h')
-rw-r--r--indra/newview/llchatmsgbox.h129
1 files changed, 24 insertions, 105 deletions
diff --git a/indra/newview/llchatmsgbox.h b/indra/newview/llchatmsgbox.h
index 61035499c7..b81b740bdc 100644
--- a/indra/newview/llchatmsgbox.h
+++ b/indra/newview/llchatmsgbox.h
@@ -1,10 +1,11 @@
/**
* @file llchatmsgbox.h
+ * @author Martin Reddy
* @brief chat history text box, able to show array of strings with separator
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
*
- * Copyright (c) 2004-2009, Linden Research, Inc.
+ * Copyright (c) 2009, Linden Research, Inc.
*
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
@@ -33,127 +34,45 @@
#ifndef LL_LLCHATMSGBOX_H
#define LL_LLCHATMSGBOX_H
-
+#include "lltextbox.h"
#include "lluictrl.h"
#include "v4color.h"
#include "llstring.h"
-#include "lluistring.h"
-
-class LLChatMsgBox
-: public LLUICtrl
+///
+/// LLChatMsgBox provides a text box with support for multiple blocks
+/// of text that can be added incrementally. Each block of text is
+/// visual separated from the previous block (e.g., with a horizontal
+/// line).
+///
+class LLChatMsgBox :
+ public LLTextBox
{
-protected:
- struct text_block
- {
- LLUIString text;
- std::vector<S32> lines;
- };
public:
- typedef boost::function<void (void)> callback_t;
-
- struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
+ struct Params : public LLInitParam::Block<Params, LLTextBox::Params>
{
- Optional<std::string> text;
-
- Optional<bool> highlight_on_hover,
- border_visible,
- border_drop_shadow_visible,
- bg_visible,
- use_ellipses,
- word_wrap;
-
- Optional<LLFontGL::ShadowType> font_shadow;
-
- Optional<LLUIColor> text_color,
- hover_color,
- disabled_color,
- background_color,
- border_color;
-
- Optional<S32> line_spacing;
-
- Optional<S32> block_spacing;
+ Optional<S32> block_spacing;
Params();
};
+
protected:
LLChatMsgBox(const Params&);
friend class LLUICtrlFactory;
-public:
- virtual void draw();
- virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
- virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
- virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
- virtual BOOL handleHover(S32 x, S32 y, MASK mask);
-
- void setColor( const LLColor4& c ) { mTextColor = c; }
- void setDisabledColor( const LLColor4& c) { mDisabledColor = c; }
- void setBackgroundColor( const LLColor4& c) { mBackgroundColor = c; }
- void setBorderColor( const LLColor4& c) { mBorderColor = c; }
-
- void setHoverColor( const LLColor4& c ) { mHoverColor = c; }
- void setHoverActive( BOOL active ) { mHoverActive = active; }
-
- void setText( const LLStringExplicit& text );
- void addText( const LLStringExplicit& text );
-
- void setUseEllipses( BOOL use_ellipses ) { mUseEllipses = use_ellipses; }
+public:
+ void setText(const LLStringExplicit &text);
+ void addText(const LLStringExplicit &text);
- void setBackgroundVisible(BOOL visible) { mBackgroundVisible = visible; }
- void setBorderVisible(BOOL visible) { mBorderVisible = visible; }
- void setBorderDropshadowVisible(BOOL visible){ mBorderDropShadowVisible = visible; }
- void setRightAlign() { mHAlign = LLFontGL::RIGHT; }
- void setHAlign( LLFontGL::HAlign align ) { mHAlign = align; }
- void setClickedCallback( boost::function<void (void*)> cb, void* userdata = NULL ){ mClickedCallback = boost::bind(cb, userdata); } // mouse down and up within button
-
- const LLFontGL* getFont() const { return mFontGL; }
-
- S32 getTextPixelHeight();
- S32 getTextLinesNum();
-
- virtual void setValue(const LLSD& value );
-
+ S32 getTextPixelHeight();
+ S32 getTextLinesNum();
+ /*virtual*/ void setValue(const LLSD &value);
+ /*virtual*/ void drawText(S32 x, S32 y, const LLWString &text, const LLColor4 &color);
private:
- std::string wrapText (const LLStringExplicit& in_text, F32 max_width = -1.0);
-
- void setLineLengths (text_block& t);
- void resetLineLengths ();
- void drawText (S32 x, S32 y, const LLColor4& color );
-
- const LLFontGL* mFontGL;
- LLUIColor mTextColor;
- LLUIColor mDisabledColor;
- LLUIColor mBackgroundColor;
- LLUIColor mBorderColor;
- LLUIColor mHoverColor;
-
- BOOL mHoverActive;
- BOOL mHasHover;
- BOOL mBackgroundVisible;
- BOOL mBorderVisible;
- BOOL mWordWrap;
-
- U8 mFontStyle; // style bit flags for font
- LLFontGL::ShadowType mShadowType;
- BOOL mBorderDropShadowVisible;
- BOOL mUseEllipses;
-
- S32 mLineSpacing;
- S32 mBlockSpasing;
-
- LLFontGL::HAlign mHAlign;
- LLFontGL::VAlign mVAlign;
-
- callback_t mClickedCallback;
-
-
- //same as mLineLengthList and mText in LLTextBox
- std::vector< boost::shared_ptr<text_block> > mTextStrings;
-
+ S32 mBlockSpacing;
+ std::vector<S32> mSeparatorOffset;
};
#endif