00001
00032
00033
00034
00035
00036
00037 #ifndef LL_LLFLOATERCHAT_H
00038 #define LL_LLFLOATERCHAT_H
00039
00040 #include "llfloater.h"
00041 #include "lllogchat.h"
00042 class LLButton;
00043 class LLChat;
00044 class LLComboBox;
00045 class LLLineEditor;
00046 class LLViewerTextEditor;
00047 class LLMessageSystem;
00048 class LLUUID;
00049 class LLCheckBoxCtrl;
00050 class LLPanelActiveSpeakers;
00051 class LLLogChat;
00052
00053 class LLFloaterChat
00054 : public LLFloater, public LLUISingleton<LLFloaterChat, LLFloaterChat>
00055 {
00056 public:
00057 LLFloaterChat(const LLSD& seed);
00058 ~LLFloaterChat();
00059
00060 virtual void setVisible( BOOL b );
00061 virtual void draw();
00062 virtual BOOL postBuild();
00063 virtual void onClose(bool app_quitting);
00064 virtual void onVisibilityChange(BOOL cur_visibility);
00065 virtual void setMinimized(BOOL);
00066 void updateConsoleVisibility();
00067
00068 static void setHistoryCursorAndScrollToEnd();
00069
00070
00071
00072 static void addChat(const LLChat& chat, BOOL from_im = FALSE, BOOL local_agent = FALSE);
00073
00074
00075 static void addChatHistory(const LLChat& chat, bool log_to_file = true);
00076
00077 static void onClickMute(void *data);
00078 static void onClickToggleShowMute(LLUICtrl* caller, void *data);
00079 static void onClickToggleActiveSpeakers(void* userdata);
00080 static void chatFromLogFile(LLLogChat::ELogLineType type,LLString line, void* userdata);
00081 static void loadHistory();
00082 static void* createSpeakersPanel(void* data);
00083 static void* createChatPanel(void* data);
00084
00085
00086 static bool visible(LLFloater* instance, const LLSD& key);
00087 static void show(LLFloater* instance, const LLSD& key);
00088 static void hide(LLFloater* instance, const LLSD& key);
00089
00090 LLPanelActiveSpeakers* mPanel;
00091 BOOL mScrolledToEnd;
00092 };
00093
00094 #endif