diff options
Diffstat (limited to 'indra/newview/llimpanel.h')
-rw-r--r-- | indra/newview/llimpanel.h | 60 |
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 |