LLFloaterIMPanel Class Reference

#include <llimpanel.h>

Inheritance diagram for LLFloaterIMPanel:

Inheritance graph
[legend]
Collaboration diagram for LLFloaterIMPanel:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 LLFloaterIMPanel (const std::string &session_label, const LLUUID &session_id, const LLUUID &target_id, EInstantMessage dialog)
 LLFloaterIMPanel (const std::string &session_label, const LLUUID &session_id, const LLUUID &target_id, const LLDynamicArray< LLUUID > &ids, EInstantMessage dialog)
virtual ~LLFloaterIMPanel ()
BOOL postBuild ()
void draw ()
void onClose (bool app_quitting=FALSE)
void onVisibilityChange (BOOL new_visibility)
BOOL inviteToSession (const LLDynamicArray< LLUUID > &agent_ids)
void addHistoryLine (const std::string &utf8msg, const LLColor4 &color=LLColor4::white, bool log_to_file=true, const LLUUID &source=LLUUID::null, const char *name=NULL)
void setInputFocus (BOOL b)
void selectAll ()
void selectNone ()
void setVisible (BOOL b)
S32 getNumUnreadMessages ()
BOOL handleKeyHere (KEY key, MASK mask)
BOOL handleDragAndDrop (S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, void *cargo_data, EAcceptance *accept, LLString &tooltip_msg)
const LLUUIDgetSessionID () const
const LLUUIDgetOtherParticipantID () const
void updateSpeakersList (const LLSD &speaker_updates)
void processSessionUpdate (const LLSD &update)
void setSpeakers (const LLSD &speaker_list)
LLVoiceChannelgetVoiceChannel ()
EInstantMessage getDialogType () const
void requestAutoConnect ()
void sessionInitReplyReceived (const LLUUID &im_session_id)
void processIMTyping (const LLIMInfo *im_info, BOOL typing)
void showSessionStartError (const std::string &error_string)
void showSessionEventError (const std::string &event_string, const std::string &error_string)
void showSessionForceClose (const std::string &reason)

Static Public Member Functions

static void onInputEditorFocusReceived (LLFocusableElement *caller, void *userdata)
static void onInputEditorFocusLost (LLFocusableElement *caller, void *userdata)
static void onInputEditorKeystroke (LLLineEditor *caller, void *userdata)
static void onCommitChat (LLUICtrl *caller, void *userdata)
static void onTabClick (void *userdata)
static void onClickProfile (void *userdata)
static void onClickGroupInfo (void *userdata)
static void onClickClose (void *userdata)
static void onClickStartCall (void *userdata)
static void onClickEndCall (void *userdata)
static void onClickSend (void *userdata)
static void onClickToggleActiveSpeakers (void *userdata)
static void * createSpeakersPanel (void *data)
static void onKickSpeaker (void *user_data)
static void onClickMuteVoice (void *user_data)
static void onVolumeChange (LLUICtrl *source, void *user_data)
static void chatFromLogFile (LLLogChat::ELogLineType type, LLString line, void *userdata)
static void onConfirmForceCloseError (S32 option, void *data)

Private Types

typedef std::map< LLUUID,
LLStyleSP
styleMap

Private Member Functions

void init (const LLString &session_label)
void sendMsg ()
BOOL dropCallingCard (LLInventoryItem *item, BOOL drop)
BOOL dropCategory (LLInventoryCategory *category, BOOL drop)
BOOL isInviteAllowed () const
void setTyping (BOOL typing)
void addTypingIndicator (const std::string &name)
void removeTypingIndicator (const LLIMInfo *im_info)
void sendTypingState (BOOL typing)
void disableWhileSessionStarting ()

Private Attributes

LLLineEditormInputEditor
LLViewerTextEditormHistoryEditor
LLUUID mSessionUUID
LLString mSessionLabel
LLVoiceChannelmVoiceChannel
BOOL mSessionInitialized
LLSD mQueuedMsgsForInit
LLUUID mOtherParticipantUUID
LLDynamicArray< LLUUIDmSessionInitialTargetIDs
EInstantMessage mDialog
BOOL mTyping
BOOL mOtherTyping
std::string mOtherTypingName
S32 mTypingLineStartIndex
S32 mSessionStartMsgPos
S32 mNumUnreadMessages
BOOL mSentTypingState
BOOL mShowSpeakersOnConnect
BOOL mAutoConnect
LLIMSpeakerMgrmSpeakers
LLPanelActiveSpeakersmSpeakerPanel
LLFrameTimer mFirstKeystrokeTimer
LLFrameTimer mLastKeystrokeTimer

Static Private Attributes

static LLFloaterIMPanelsInstance
static styleMap mStyleMap


Detailed Description

Definition at line 175 of file llimpanel.h.


Member Typedef Documentation

typedef std::map<LLUUID, LLStyleSP> LLFloaterIMPanel::styleMap [private]

Definition at line 361 of file llimpanel.h.


Constructor & Destructor Documentation

LLFloaterIMPanel::LLFloaterIMPanel ( const std::string &  session_label,
const LLUUID session_id,
const LLUUID target_id,
EInstantMessage  dialog 
)

Definition at line 1053 of file llimpanel.cpp.

References LLPanel::init().

Here is the call graph for this function:

LLFloaterIMPanel::LLFloaterIMPanel ( const std::string &  session_label,
const LLUUID session_id,
const LLUUID target_id,
const LLDynamicArray< LLUUID > &  ids,
EInstantMessage  dialog 
)

Definition at line 1081 of file llimpanel.cpp.

References LLPanel::init(), and mSessionInitialTargetIDs.

Here is the call graph for this function:

LLFloaterIMPanel::~LLFloaterIMPanel (  )  [virtual]

Definition at line 1206 of file llimpanel.cpp.

References LLVoiceChannel::deactivate(), mSpeakers, mVoiceChannel, and NULL.

Here is the call graph for this function:


Member Function Documentation

BOOL LLFloaterIMPanel::postBuild ( void   )  [virtual]

void LLFloaterIMPanel::draw ( void   )  [virtual]

void LLFloaterIMPanel::onClose ( bool  app_quitting = FALSE  )  [virtual]

void LLFloaterIMPanel::onVisibilityChange ( BOOL  new_visibility  )  [virtual]

Reimplemented from LLView.

Definition at line 1816 of file llimpanel.cpp.

References mNumUnreadMessages.

BOOL LLFloaterIMPanel::inviteToSession ( const LLDynamicArray< LLUUID > &  agent_ids  ) 

void LLFloaterIMPanel::addHistoryLine ( const std::string &  utf8msg,
const LLColor4 color = LLColor4::white,
bool  log_to_file = true,
const LLUUID source = LLUUID::null,
const char *  name = NULL 
)

void LLFloaterIMPanel::setInputFocus ( BOOL  b  ) 

Definition at line 1545 of file llimpanel.cpp.

References mInputEditor, and LLLineEditor::setFocus().

Referenced by LLIMMgr::addSession().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::selectAll (  ) 

Definition at line 1551 of file llimpanel.cpp.

References mInputEditor, and LLLineEditor::selectAll().

Here is the call graph for this function:

void LLFloaterIMPanel::selectNone (  ) 

Definition at line 1557 of file llimpanel.cpp.

References LLLineEditor::deselect(), and mInputEditor.

Here is the call graph for this function:

void LLFloaterIMPanel::setVisible ( BOOL  b  )  [virtual]

Reimplemented from LLFloater.

Definition at line 1527 of file llimpanel.cpp.

References FALSE, LLFloater::getHost(), LLMultiFloater::setFloaterFlashing(), and LLView::setVisible().

Here is the call graph for this function:

S32 LLFloaterIMPanel::getNumUnreadMessages (  )  [inline]

Definition at line 218 of file llimpanel.h.

References mNumUnreadMessages.

Referenced by LLToolBar::updateCommunicateList().

Here is the caller graph for this function:

BOOL LLFloaterIMPanel::handleKeyHere ( KEY  key,
MASK  mask 
) [virtual]

Reimplemented from LLPanel.

Definition at line 1563 of file llimpanel.cpp.

References FALSE, LLControlGroup::getBOOL(), gFocusMgr, gIMMgr, gSavedSettings, KEY_ESCAPE, KEY_RETURN, MASK_CONTROL, MASK_NONE, MASK_SHIFT, NULL, sendMsg(), LLFocusMgr::setKeyboardFocus(), LLIMMgr::toggle(), and TRUE.

Here is the call graph for this function:

BOOL LLFloaterIMPanel::handleDragAndDrop ( S32  x,
S32  y,
MASK  mask,
BOOL  drop,
EDragAndDropType  cargo_type,
void *  cargo_data,
EAcceptance accept,
LLString tooltip_msg 
) [virtual]

Reimplemented from LLView.

Definition at line 1595 of file llimpanel.cpp.

References ACCEPT_NO, ACCEPT_YES_MULTI, DAD_CALLINGCARD, DAD_CATEGORY, dropCallingCard(), dropCategory(), FALSE, and TRUE.

Here is the call graph for this function:

void LLFloaterIMPanel::onInputEditorFocusReceived ( LLFocusableElement caller,
void *  userdata 
) [static]

Definition at line 1761 of file llimpanel.cpp.

Referenced by postBuild().

Here is the caller graph for this function:

void LLFloaterIMPanel::onInputEditorFocusLost ( LLFocusableElement caller,
void *  userdata 
) [static]

Definition at line 1768 of file llimpanel.cpp.

References FALSE.

Referenced by postBuild().

Here is the caller graph for this function:

void LLFloaterIMPanel::onInputEditorKeystroke ( LLLineEditor caller,
void *  userdata 
) [static]

Definition at line 1775 of file llimpanel.cpp.

References FALSE, and TRUE.

Referenced by postBuild().

Here is the caller graph for this function:

void LLFloaterIMPanel::onCommitChat ( LLUICtrl caller,
void *  userdata 
) [static]

Definition at line 1754 of file llimpanel.cpp.

Referenced by postBuild().

Here is the caller graph for this function:

void LLFloaterIMPanel::onTabClick ( void *  userdata  )  [static]

Definition at line 1684 of file llimpanel.cpp.

References TRUE.

void LLFloaterIMPanel::onClickProfile ( void *  userdata  )  [static]

Definition at line 1692 of file llimpanel.cpp.

References LLFloaterAvatarInfo::showFromDirectory().

Referenced by postBuild().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::onClickGroupInfo ( void *  userdata  )  [static]

Definition at line 1704 of file llimpanel.cpp.

References LLFloaterGroupInfo::showFromUUID().

Referenced by postBuild().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::onClickClose ( void *  userdata  )  [static]

Reimplemented from LLFloater.

Definition at line 1713 of file llimpanel.cpp.

void LLFloaterIMPanel::onClickStartCall ( void *  userdata  )  [static]

Definition at line 1723 of file llimpanel.cpp.

Referenced by draw(), LLIMMgr::inviteUserResponse(), postBuild(), and LLViewerChatterBoxInvitationAcceptResponder::result().

Here is the caller graph for this function:

void LLFloaterIMPanel::onClickEndCall ( void *  userdata  )  [static]

Definition at line 1731 of file llimpanel.cpp.

Referenced by postBuild().

Here is the caller graph for this function:

void LLFloaterIMPanel::onClickSend ( void *  userdata  )  [static]

Definition at line 1739 of file llimpanel.cpp.

Referenced by postBuild().

Here is the caller graph for this function:

void LLFloaterIMPanel::onClickToggleActiveSpeakers ( void *  userdata  )  [static]

Definition at line 1746 of file llimpanel.cpp.

Referenced by postBuild().

Here is the caller graph for this function:

void * LLFloaterIMPanel::createSpeakersPanel ( void *  data  )  [static]

Definition at line 1278 of file llimpanel.cpp.

References mSpeakerPanel, mSpeakers, and TRUE.

Referenced by init().

Here is the caller graph for this function:

void LLFloaterIMPanel::onKickSpeaker ( void *  user_data  )  [static]

Definition at line 2195 of file llimpanel.cpp.

Referenced by postBuild().

Here is the caller graph for this function:

void LLFloaterIMPanel::onClickMuteVoice ( void *  user_data  )  [static]

Definition at line 1286 of file llimpanel.cpp.

References LLMuteList::add(), LLMute::AGENT, LLMute::flagVoiceChat, LLMuteList::getInstance(), LLFloater::getTitle(), LLMuteList::isMuted(), mOtherParticipantUUID, and LLMuteList::remove().

Referenced by postBuild().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::onVolumeChange ( LLUICtrl source,
void *  user_data 
) [static]

Definition at line 1306 of file llimpanel.cpp.

References LLSD::asReal(), LLUICtrl::getValue(), gVoiceClient, mOtherParticipantUUID, and LLVoiceClient::setUserVolume().

Referenced by postBuild().

Here is the call graph for this function:

Here is the caller graph for this function:

const LLUUID& LLFloaterIMPanel::getSessionID (  )  const [inline]

Definition at line 246 of file llimpanel.h.

References mSessionUUID.

Referenced by LLIMMgr::addSession(), LLIMMgr::findFloaterBySession(), and LLToolBar::updateCommunicateList().

Here is the caller graph for this function:

const LLUUID& LLFloaterIMPanel::getOtherParticipantID (  )  const [inline]

Definition at line 247 of file llimpanel.h.

References mOtherParticipantUUID.

void LLFloaterIMPanel::updateSpeakersList ( const LLSD speaker_updates  ) 

Definition at line 1940 of file llimpanel.cpp.

References mSpeakers, and LLIMSpeakerMgr::updateSpeakers().

Referenced by LLViewerChatterBoxSessionAgentListUpdates::post(), LLViewerChatterBoxSessionStartReply::post(), and LLViewerChatterBoxInvitationAcceptResponder::result().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::processSessionUpdate ( const LLSD update  ) 

Definition at line 1945 of file llimpanel.cpp.

References LLPanel::getString(), LLSD::has(), mSessionLabel, mSpeakerPanel, LLFloater::setTitle(), and LLPanelActiveSpeakers::setVoiceModerationCtrlMode().

Referenced by LLViewerChatterBoxSessionUpdate::post(), and LLViewerChatterBoxSessionStartReply::post().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::setSpeakers ( const LLSD speaker_list  ) 

Definition at line 1968 of file llimpanel.cpp.

References mSpeakers, and LLIMSpeakerMgr::setSpeakers().

Referenced by LLViewerChatterBoxSessionStartReply::post(), and LLViewerChatterBoxInvitationAcceptResponder::result().

Here is the call graph for this function:

Here is the caller graph for this function:

LLVoiceChannel* LLFloaterIMPanel::getVoiceChannel (  )  [inline]

Definition at line 251 of file llimpanel.h.

References mVoiceChannel.

Referenced by LLIMMgr::addP2PSession(), and LLFloaterChatterBox::getCurrentVoiceFloater().

Here is the caller graph for this function:

EInstantMessage LLFloaterIMPanel::getDialogType (  )  const [inline]

Definition at line 252 of file llimpanel.h.

References mDialog.

void LLFloaterIMPanel::requestAutoConnect (  ) 

Definition at line 2000 of file llimpanel.cpp.

References mAutoConnect, and TRUE.

Referenced by LLIMMgr::inviteUserResponse(), and LLViewerChatterBoxInvitationAcceptResponder::result().

Here is the caller graph for this function:

void LLFloaterIMPanel::sessionInitReplyReceived ( const LLUUID im_session_id  ) 

void LLFloaterIMPanel::processIMTyping ( const LLIMInfo im_info,
BOOL  typing 
)

Definition at line 2060 of file llimpanel.cpp.

References addTypingIndicator(), LLIMInfo::mName, and removeTypingIndicator().

Referenced by LLIMMgr::processIMTypingCore().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::chatFromLogFile ( LLLogChat::ELogLineType  type,
LLString  line,
void *  userdata 
) [static]

Definition at line 2110 of file llimpanel.cpp.

References LLUIFactory< LLFloaterChat, LLUISingleton< LLFloaterChat, LLFloaterChat >, LLFloaterChat >::getInstance(), LLPanel::getUIString(), LLColor4::grey, LLLogChat::LOG_EMPTY, LLLogChat::LOG_END, and LLLogChat::LOG_LINE.

Referenced by init().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::showSessionStartError ( const std::string &  error_string  ) 

Definition at line 2137 of file llimpanel.cpp.

References LLViewerWindow::alertXml(), LLFloater::getTitle(), gViewerWindow, mSessionUUID, onConfirmForceCloseError(), and LLFloaterIM::sErrorStringsMap.

Referenced by LLViewerChatterBoxInvitationAcceptResponder::error(), and LLViewerChatterBoxSessionStartReply::post().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::showSessionEventError ( const std::string &  event_string,
const std::string &  error_string 
)

void LLFloaterIMPanel::showSessionForceClose ( const std::string &  reason  ) 

Definition at line 2178 of file llimpanel.cpp.

References LLViewerWindow::alertXml(), LLFloater::getTitle(), gViewerWindow, onConfirmForceCloseError(), and LLFloaterIM::sForceCloseSessionMap.

Referenced by LLViewerForceCloseChatterBoxSession::post().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::onConfirmForceCloseError ( S32  option,
void *  data 
) [static]

Definition at line 2200 of file llimpanel.cpp.

References LLFloater::close(), FALSE, LLIMMgr::findFloaterBySession(), and gIMMgr.

Referenced by showSessionForceClose(), and showSessionStartError().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::init ( const LLString session_label  )  [private]

void LLFloaterIMPanel::sendMsg (  )  [private]

BOOL LLFloaterIMPanel::dropCallingCard ( LLInventoryItem item,
BOOL  drop 
) [private]

Definition at line 1624 of file llimpanel.cpp.

References FALSE, LLInventoryItem::getCreatorUUID(), inviteToSession(), isInviteAllowed(), LLUUID::notNull(), and LLDynamicArray< Type, BlockSize >::put().

Referenced by handleDragAndDrop().

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL LLFloaterIMPanel::dropCategory ( LLInventoryCategory category,
BOOL  drop 
) [private]

Definition at line 1644 of file llimpanel.cpp.

References LLInventoryModel::collectDescendentsIf(), LLInventoryModel::EXCLUDE_TRASH, FALSE, LLInventoryObject::getUUID(), gInventory, i, inviteToSession(), isInviteAllowed(), LLDynamicArray< Type, BlockSize >::put(), and S32.

Referenced by handleDragAndDrop().

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL LLFloaterIMPanel::isInviteAllowed (  )  const [private]

Definition at line 1675 of file llimpanel.cpp.

References IM_SESSION_CONFERENCE_START, IM_SESSION_INVITE, and mDialog.

Referenced by dropCallingCard(), dropCategory(), and inviteToSession().

Here is the caller graph for this function:

void LLFloaterIMPanel::setTyping ( BOOL  typing  )  [private]

Definition at line 2005 of file llimpanel.cpp.

References FALSE, gAgent, LLAgent::getID(), mFirstKeystrokeTimer, mLastKeystrokeTimer, mSentTypingState, mSpeakers, mTyping, LLFrameTimer::reset(), sendTypingState(), LLSpeakerMgr::setSpeakerTyping(), and TRUE.

Referenced by draw(), and onClose().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::addTypingIndicator ( const std::string &  name  )  [private]

Definition at line 2075 of file llimpanel.cpp.

References addHistoryLine(), LLControlGroup::getColor4(), LLTextEditor::getWText(), gSavedSettings, mHistoryEditor, mOtherTyping, mOtherTypingName, mTypingLineStartIndex, LLUIString::setArg(), and TRUE.

Referenced by processIMTyping(), and sendMsg().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::removeTypingIndicator ( const LLIMInfo im_info  )  [private]

Definition at line 2093 of file llimpanel.cpp.

References FALSE, LLTextEditor::getWText(), LLIMInfo::mFromID, mHistoryEditor, mOtherTyping, mSpeakers, mTypingLineStartIndex, LLTextEditor::removeTextFromEnd(), S32, and LLSpeakerMgr::setSpeakerTyping().

Referenced by addHistoryLine(), and processIMTyping().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::sendTypingState ( BOOL  typing  )  [private]

Definition at line 2037 of file llimpanel.cpp.

References LLAgent::buildFullname(), FALSE, gAgent, LLAgent::getID(), LLAgent::getSessionID(), gMessageSystem, IM_NOTHING_SPECIAL, IM_ONLINE, IM_TYPING_START, IM_TYPING_STOP, mDialog, mOtherParticipantUUID, mSessionUUID, pack_instant_message(), and LLAgent::sendReliableMessage().

Referenced by draw(), and setTyping().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLFloaterIMPanel::disableWhileSessionStarting (  )  [private]


Member Data Documentation

Definition at line 297 of file llimpanel.h.

Definition at line 300 of file llimpanel.h.

Referenced by draw(), init(), postBuild(), selectAll(), selectNone(), sendMsg(), and setInputFocus().

Definition at line 310 of file llimpanel.h.

Referenced by init(), and processSessionUpdate().

Definition at line 311 of file llimpanel.h.

Referenced by draw(), getVoiceChannel(), init(), sessionInitReplyReceived(), and ~LLFloaterIMPanel().

Definition at line 313 of file llimpanel.h.

Referenced by draw(), init(), sendMsg(), and sessionInitReplyReceived().

Definition at line 314 of file llimpanel.h.

Referenced by sendMsg(), and sessionInitReplyReceived().

Definition at line 322 of file llimpanel.h.

Referenced by init(), and LLFloaterIMPanel().

Definition at line 327 of file llimpanel.h.

Referenced by draw(), sendMsg(), and setTyping().

Definition at line 330 of file llimpanel.h.

Referenced by addTypingIndicator(), removeTypingIndicator(), and sendMsg().

std::string LLFloaterIMPanel::mOtherTypingName [private]

Definition at line 333 of file llimpanel.h.

Referenced by addTypingIndicator(), and sendMsg().

Definition at line 336 of file llimpanel.h.

Referenced by addTypingIndicator(), and removeTypingIndicator().

Definition at line 338 of file llimpanel.h.

Referenced by init(), and sessionInitReplyReceived().

Definition at line 340 of file llimpanel.h.

Referenced by addHistoryLine(), getNumUnreadMessages(), and onVisibilityChange().

Definition at line 342 of file llimpanel.h.

Referenced by draw(), sendMsg(), and setTyping().

Definition at line 344 of file llimpanel.h.

Referenced by draw().

Definition at line 346 of file llimpanel.h.

Referenced by draw(), and requestAutoConnect().

Definition at line 349 of file llimpanel.h.

Referenced by createSpeakersPanel(), draw(), postBuild(), and processSessionUpdate().

Definition at line 354 of file llimpanel.h.

Referenced by draw(), and setTyping().

Definition at line 357 of file llimpanel.h.

Referenced by draw(), and setTyping().

Definition at line 362 of file llimpanel.h.


The documentation for this class was generated from the following files:

Generated on Fri May 16 08:45:54 2008 for SecondLife by  doxygen 1.5.5