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/newview/llchatbar.h |
Print done when done.
Diffstat (limited to 'indra/newview/llchatbar.h')
-rw-r--r-- | indra/newview/llchatbar.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/indra/newview/llchatbar.h b/indra/newview/llchatbar.h new file mode 100644 index 0000000000..e0f31ae124 --- /dev/null +++ b/indra/newview/llchatbar.h @@ -0,0 +1,98 @@ +/** + * @file llchatbar.h + * @brief LLChatBar class definition + * + * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#ifndef LL_LLCHATBAR_H +#define LL_LLCHATBAR_H + +#include "llpanel.h" +#include "llframetimer.h" +#include "llchat.h" + +class LLButton; +class LLComboBox; +class LLLineEditor; +class LLMessageSystem; +class LLTextBox; +class LLTextEditor; +class LLUICtrl; +class LLUUID; +class LLFrameTimer; +class LLStatGraph; +class LLChatBarGestureObserver; + +class LLChatBar +: public LLPanel +{ +public: + LLChatBar(const std::string& name, const LLRect& rect ); + ~LLChatBar(); + virtual BOOL postBuild(); + + virtual void reshape(S32 width, S32 height, BOOL called_from_parent); + virtual BOOL handleKeyHere(KEY key, MASK mask, BOOL called_from_parent); + + // Adjust buttons and input field for width + void layout(); + + void refresh(); + void refreshGestures(); + + // Move cursor into chat input field. + void setKeyboardFocus(BOOL b); + + // Ignore arrow keys for chat bar + void setIgnoreArrowKeys(BOOL b); + + BOOL inputEditorHasFocus(); + LLString getCurrentChat(); + + // Send a chat (after stripping /20foo channel chats). + // "Animate" means the nodding animation for regular text. + void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate); + void sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate); + + // If input of the form "/20foo" or "/20 foo", returns "foo" and channel 20. + // Otherwise returns input and channel 0. + LLWString stripChannelNumber(const LLWString &mesg, S32* channel); + + // callbacks + static void onClickHistory( void* userdata ); + static void onClickSay( void* userdata ); + static void onClickShout( void* userdata ); + + static void onTabClick( void* userdata ); + static void onInputEditorKeystroke(LLLineEditor* caller, void* userdata); + static void onInputEditorFocusLost(LLLineEditor* caller,void* userdata); + static void onInputEditorGainFocus(LLUICtrl* caller,void* userdata); + + static void onCommitGesture(LLUICtrl* ctrl, void* data); + + static void startChat(void*); + static void stopChat(); + + /*virtual*/ void setVisible(BOOL visible); +protected: + void sendChat(EChatType type); + void updateChat(); + +protected: + LLLineEditor* mInputEditor; + + LLFrameTimer mGestureLabelTimer; + + // Which non-zero channel did we last chat on? + S32 mLastSpecialChatChannel; + + BOOL mIsBuilt; + + static LLChatBarGestureObserver* sObserver; +}; + +extern LLChatBar *gChatBar; + +#endif |