summaryrefslogtreecommitdiff
path: root/indra/newview/llimpanel.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llimpanel.h')
-rw-r--r--indra/newview/llimpanel.h60
1 files changed, 58 insertions, 2 deletions
diff --git a/indra/newview/llimpanel.h b/indra/newview/llimpanel.h
index 7cd19d4872..e6bde5c93a 100644
--- a/indra/newview/llimpanel.h
+++ b/indra/newview/llimpanel.h
@@ -47,6 +47,7 @@ class LLInventoryItem;
class LLInventoryCategory;
class LLIMSpeakerMgr;
class LLPanelActiveSpeakers;
+class LLIMChiclet;
class LLVoiceChannel : public LLVoiceClientStatusObserver
{
@@ -356,10 +357,65 @@ private:
LLFrameTimer mLastKeystrokeTimer;
void disableWhileSessionStarting();
+};
+
+
+// Individual IM window that appears at the bottom of the screen,
+// optionally "docked" to the bottom tray.
+class LLIMFloater : public LLFloater
+{
+public:
+ LLIMFloater(const LLUUID& session_id,
+ const std::string title,
+ EInstantMessage dialog);
+
+ virtual ~LLIMFloater();
+
+ // LLView overrides
+ /*virtual*/ BOOL postBuild();
+
+ // Floater should close when user clicks away to other UI area,
+ // hence causing focus loss.
+ /*virtual*/ void onFocusLost();
+
+ // LLFloater overrides
+ /*virtual*/ void setDocked(bool docked, bool pop_on_undock = true);
+
+ static LLIMFloater* show(const LLUUID& session_id);
+ void onClose(bool app_quitting);
+
+ // get new messages from LLIMModel
+ void updateMessages();
+ static void onSendMsg( LLUICtrl*, void*);
+ void sendMsg();
+
+ // callback for LLIMModel on new messages
+ // route to specific floater if it is visible
+ static void newIMCallback(const LLSD& data);
+
+ static std::map<LLUUID, LLIMFloater*> sIMFloaterMap;
+
+
+private:
+
+ static void onInputEditorFocusReceived( LLFocusableElement* caller, void* userdata );
+ static void onInputEditorFocusLost(LLFocusableElement* caller, void* userdata);
+ static void onInputEditorKeystroke(LLLineEditor* caller, void* userdata);
+ void setTyping(BOOL typing);
+
+ void onSlide();
+
+ LLUUID mSessionID;
+ S32 mLastMessageIndex;
+ EInstantMessage mDialog;
+ LLIMChiclet* mChiclet;
+ LLUUID mOtherParticipantUUID;
+ LLViewerTextEditor* mHistoryEditor;
+ LLLineEditor* mInputEditor;
- typedef std::map<LLUUID, LLStyleSP> styleMap;
- static styleMap mStyleMap;
};
+
+
#endif // LL_IMPANEL_H