summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterimcontainer.h
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2024-05-14 21:02:28 -0400
committerNat Goodspeed <nat@lindenlab.com>2024-05-14 21:02:28 -0400
commit094dcc07f8c1d90ae723dbe60eddacb90a09eae8 (patch)
treee750942e5f22ed677b543bd49509c2a7cdc5ce56 /indra/newview/llfloaterimcontainer.h
parentd4043d3b011c32eb503c43c551872f9c24d7344f (diff)
parent38c2a5bde985a6a8a96d912d432f8bdf7e5b60be (diff)
Merge DRTVWR-591-maint-X to main on promotion of secondlife/viewer #705: Maintenance X
Diffstat (limited to 'indra/newview/llfloaterimcontainer.h')
-rw-r--r--indra/newview/llfloaterimcontainer.h284
1 files changed, 142 insertions, 142 deletions
diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h
index 82f3b00ebc..71fe2bd204 100644
--- a/indra/newview/llfloaterimcontainer.h
+++ b/indra/newview/llfloaterimcontainer.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file llfloaterimcontainer.h
* @brief Multifloater containing active IM sessions in separate tab container tabs
*
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -49,192 +49,192 @@ class LLSpeaker;
class LLSpeakerMgr;
class LLFloaterIMContainer
- : public LLMultiFloater
- , public LLIMSessionObserver
+ : public LLMultiFloater
+ , public LLIMSessionObserver
{
public:
- LLFloaterIMContainer(const LLSD& seed, const Params& params = getDefaultParams());
- virtual ~LLFloaterIMContainer();
-
- /*virtual*/ BOOL postBuild();
- /*virtual*/ void onOpen(const LLSD& key);
- /*virtual*/ void draw();
- /*virtual*/ void setMinimized(BOOL b);
- /*virtual*/ void setVisible(BOOL visible);
- /*virtual*/ void setVisibleAndFrontmost(BOOL take_focus=TRUE, const LLSD& key = LLSD());
- /*virtual*/ void updateResizeLimits();
- /*virtual*/ void handleReshape(const LLRect& rect, bool by_user);
-
- void onCloseFloater(LLUUID& id);
-
- /*virtual*/ void addFloater(LLFloater* floaterp,
- BOOL select_added_floater,
- LLTabContainer::eInsertionPoint insertion_point = LLTabContainer::END);
- void returnFloaterToHost();
+ LLFloaterIMContainer(const LLSD& seed, const Params& params = getDefaultParams());
+ virtual ~LLFloaterIMContainer();
+
+ /*virtual*/ BOOL postBuild();
+ /*virtual*/ void onOpen(const LLSD& key);
+ /*virtual*/ void draw();
+ /*virtual*/ void setMinimized(BOOL b);
+ /*virtual*/ void setVisible(BOOL visible);
+ /*virtual*/ void setVisibleAndFrontmost(BOOL take_focus=TRUE, const LLSD& key = LLSD());
+ /*virtual*/ void updateResizeLimits();
+ /*virtual*/ void handleReshape(const LLRect& rect, bool by_user);
+
+ void onCloseFloater(LLUUID& id);
+
+ /*virtual*/ void addFloater(LLFloater* floaterp,
+ BOOL select_added_floater,
+ LLTabContainer::eInsertionPoint insertion_point = LLTabContainer::END);
+ void returnFloaterToHost();
void showConversation(const LLUUID& session_id);
void selectConversation(const LLUUID& session_id);
- void selectNextConversationByID(const LLUUID& session_id);
+ void selectNextConversationByID(const LLUUID& session_id);
BOOL selectConversationPair(const LLUUID& session_id, bool select_widget, bool focus_floater = true);
void clearAllFlashStates();
- bool selectAdjacentConversation(bool focus_selected);
+ bool selectAdjacentConversation(bool focus_selected);
bool selectNextorPreviousConversation(bool select_next, bool focus_selected = true);
void expandConversation();
- /*virtual*/ void tabClose();
- void showStub(bool visible);
+ /*virtual*/ void tabClose();
+ void showStub(bool visible);
+
+ static LLFloater* getCurrentVoiceFloater();
+ static LLFloaterIMContainer* findInstance();
+ static LLFloaterIMContainer* getInstance();
- static LLFloater* getCurrentVoiceFloater();
- static LLFloaterIMContainer* findInstance();
- static LLFloaterIMContainer* getInstance();
+ static void onCurrentChannelChanged(const LLUUID& session_id);
- static void onCurrentChannelChanged(const LLUUID& session_id);
+ void collapseMessagesPane(bool collapse);
+ bool isMessagesPaneCollapsed();
+ bool isConversationsPaneCollapsed();
- void collapseMessagesPane(bool collapse);
- bool isMessagesPaneCollapsed();
- bool isConversationsPaneCollapsed();
-
- // Callbacks
- static void idle(void* user_data);
+ // Callbacks
+ static void idle(void* user_data);
- // LLIMSessionObserver observe triggers
- /*virtual*/ void sessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id, BOOL has_offline_msg);
+ // LLIMSessionObserver observe triggers
+ /*virtual*/ void sessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id, BOOL has_offline_msg);
/*virtual*/ void sessionActivated(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id);
- /*virtual*/ void sessionVoiceOrIMStarted(const LLUUID& session_id);
- /*virtual*/ void sessionRemoved(const LLUUID& session_id);
- /*virtual*/ void sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id);
+ /*virtual*/ void sessionVoiceOrIMStarted(const LLUUID& session_id);
+ /*virtual*/ void sessionRemoved(const LLUUID& session_id);
+ /*virtual*/ void sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id);
- LLConversationViewModel& getRootViewModel() { return mConversationViewModel; }
+ LLConversationViewModel& getRootViewModel() { return mConversationViewModel; }
LLUUID getSelectedSession() { return mSelectedSession; }
void setSelectedSession(LLUUID sessionID) { mSelectedSession = sessionID; }
- LLConversationItem* getSessionModel(const LLUUID& session_id);
- LLConversationSort& getSortOrder() { return mConversationViewModel.getSorter(); }
+ LLConversationItem* getSessionModel(const LLUUID& session_id);
+ LLConversationSort& getSortOrder() { return mConversationViewModel.getSorter(); }
- // Handling of lists of participants is public so to be common with llfloatersessiontab
- // *TODO : Find a better place for this.
+ // Handling of lists of participants is public so to be common with llfloatersessiontab
+ // *TODO : Find a better place for this.
bool checkContextMenuItem(const std::string& item, uuid_vec_t& selectedIDS);
bool enableContextMenuItem(const std::string& item, uuid_vec_t& selectedIDS);
void doToParticipants(const std::string& item, uuid_vec_t& selectedIDS);
- void assignResizeLimits();
- virtual BOOL handleKeyHere(KEY key, MASK mask );
- /*virtual*/ void closeFloater(bool app_quitting = false);
+ void assignResizeLimits();
+ virtual BOOL handleKeyHere(KEY key, MASK mask );
+ /*virtual*/ void closeFloater(bool app_quitting = false);
void closeAllConversations();
void closeSelectedConversations(const uuid_vec_t& ids);
- /*virtual*/ BOOL isFrontmost();
+ /*virtual*/ BOOL isFrontmost();
private:
- typedef std::map<LLUUID,LLFloater*> avatarID_panel_map_t;
- avatarID_panel_map_t mSessions;
- boost::signals2::connection mNewMessageConnection;
+ typedef std::map<LLUUID,LLFloater*> avatarID_panel_map_t;
+ avatarID_panel_map_t mSessions;
+ boost::signals2::connection mNewMessageConnection;
- /*virtual*/ void computeResizeLimits(S32& new_min_width, S32& new_min_height) {}
+ /*virtual*/ void computeResizeLimits(S32& new_min_width, S32& new_min_height) {}
- void onNewMessageReceived(const LLSD& data);
+ void onNewMessageReceived(const LLSD& data);
- void onExpandCollapseButtonClicked();
- void onStubCollapseButtonClicked();
- void processParticipantsStyleUpdate();
- void onSpeakButtonPressed();
- void onSpeakButtonReleased();
- /*virtual*/ void onClickCloseBtn(bool app_quitting = false);
- /*virtual*/ void closeHostedFloater();
+ void onExpandCollapseButtonClicked();
+ void onStubCollapseButtonClicked();
+ void processParticipantsStyleUpdate();
+ void onSpeakButtonPressed();
+ void onSpeakButtonReleased();
+ /*virtual*/ void onClickCloseBtn(bool app_quitting = false);
+ /*virtual*/ void closeHostedFloater();
- void collapseConversationsPane(bool collapse, bool save_is_allowed=true);
+ void collapseConversationsPane(bool collapse, bool save_is_allowed=true);
- void reshapeFloaterAndSetResizeLimits(bool collapse, S32 delta_width);
+ void reshapeFloaterAndSetResizeLimits(bool collapse, S32 delta_width);
- void onAddButtonClicked();
- void onAvatarPicked(const uuid_vec_t& ids);
+ void onAddButtonClicked();
+ void onAvatarPicked(const uuid_vec_t& ids);
- BOOL isActionChecked(const LLSD& userdata);
- void onCustomAction (const LLSD& userdata);
- void setSortOrderSessions(const LLConversationFilter::ESortOrderType order);
- void setSortOrderParticipants(const LLConversationFilter::ESortOrderType order);
- void setSortOrder(const LLConversationSort& order);
+ BOOL isActionChecked(const LLSD& userdata);
+ void onCustomAction (const LLSD& userdata);
+ void setSortOrderSessions(const LLConversationFilter::ESortOrderType order);
+ void setSortOrderParticipants(const LLConversationFilter::ESortOrderType order);
+ void setSortOrder(const LLConversationSort& order);
void getSelectedUUIDs(uuid_vec_t& selected_uuids, bool participant_uuids = true);
const LLConversationItem * getCurSelectedViewModelItem();
void getParticipantUUIDs(uuid_vec_t& selected_uuids);
void doToSelected(const LLSD& userdata);
- bool checkContextMenuItem(const LLSD& userdata);
- bool enableContextMenuItem(const LLSD& userdata);
- bool visibleContextMenuItem(const LLSD& userdata);
+ bool checkContextMenuItem(const LLSD& userdata);
+ bool enableContextMenuItem(const LLSD& userdata);
+ bool visibleContextMenuItem(const LLSD& userdata);
void doToSelectedConversation(const std::string& command, uuid_vec_t& selectedIDS);
void doToSelectedGroup(const LLSD& userdata);
- static void confirmMuteAllCallback(const LLSD& notification, const LLSD& response);
- bool enableModerateContextMenuItem(const std::string& userdata, bool is_self = false);
- LLSpeaker * getSpeakerOfSelectedParticipant(LLSpeakerMgr * speaker_managerp);
- LLSpeakerMgr * getSpeakerMgrForSelectedParticipant();
- bool isGroupModerator();
- bool haveAbilityToBan();
- bool canBanSelectedMember(const LLUUID& participant_uuid);
- LLUUID getGroupUIIDForSelectedParticipant();
- bool isMuted(const LLUUID& avatar_id);
- void moderateVoice(const std::string& command, const LLUUID& userID);
- void moderateVoiceAllParticipants(bool unmute);
- void moderateVoiceParticipant(const LLUUID& avatar_id, bool unmute);
- void toggleAllowTextChat(const LLUUID& participant_uuid);
- void banSelectedMember(const LLUUID& participant_uuid);
- void openNearbyChat();
- bool isParticipantListExpanded();
-
- void idleUpdate(); // for convenience (self) from static idle
- void idleProcessEvents();
-
- LLButton* mExpandCollapseBtn;
- LLButton* mStubCollapseBtn;
+ static void confirmMuteAllCallback(const LLSD& notification, const LLSD& response);
+ bool enableModerateContextMenuItem(const std::string& userdata, bool is_self = false);
+ LLSpeaker * getSpeakerOfSelectedParticipant(LLSpeakerMgr * speaker_managerp);
+ LLSpeakerMgr * getSpeakerMgrForSelectedParticipant();
+ bool isGroupModerator();
+ bool haveAbilityToBan();
+ bool canBanSelectedMember(const LLUUID& participant_uuid);
+ LLUUID getGroupUIIDForSelectedParticipant();
+ bool isMuted(const LLUUID& avatar_id);
+ void moderateVoice(const std::string& command, const LLUUID& userID);
+ void moderateVoiceAllParticipants(bool unmute);
+ void moderateVoiceParticipant(const LLUUID& avatar_id, bool unmute);
+ void toggleAllowTextChat(const LLUUID& participant_uuid);
+ void banSelectedMember(const LLUUID& participant_uuid);
+ void openNearbyChat();
+ bool isParticipantListExpanded();
+
+ void idleUpdate(); // for convenience (self) from static idle
+ void idleProcessEvents();
+
+ LLButton* mExpandCollapseBtn;
+ LLButton* mStubCollapseBtn;
LLButton* mSpeakBtn;
- LLPanel* mStubPanel;
- LLTextBox* mStubTextBox;
- LLLayoutPanel* mMessagesPane;
- LLLayoutPanel* mConversationsPane;
- LLLayoutStack* mConversationsStack;
-
- bool mInitialized;
- bool mIsFirstLaunch;
+ LLPanel* mStubPanel;
+ LLTextBox* mStubTextBox;
+ LLLayoutPanel* mMessagesPane;
+ LLLayoutPanel* mConversationsPane;
+ LLLayoutStack* mConversationsStack;
+
+ bool mInitialized;
+ bool mIsFirstLaunch;
- bool mIsFirstOpen;
+ bool mIsFirstOpen;
- LLUUID mSelectedSession;
- std::string mGeneralTitle;
+ LLUUID mSelectedSession;
+ std::string mGeneralTitle;
- // Conversation list implementation
+ // Conversation list implementation
public:
- bool removeConversationListItem(const LLUUID& uuid, bool change_focus = true);
- LLConversationItem* addConversationListItem(const LLUUID& uuid, bool isWidgetSelected = false);
- void setTimeNow(const LLUUID& session_id, const LLUUID& participant_id);
- void setNearbyDistances();
- void reSelectConversation();
- void updateSpeakBtnState();
- static bool isConversationLoggingAllowed();
- void flashConversationItemWidget(const LLUUID& session_id, bool is_flashes);
- void highlightConversationItemWidget(const LLUUID& session_id, bool is_highlighted);
- bool isScrolledOutOfSight(LLConversationViewSession* conversation_item_widget);
- boost::signals2::connection mMicroChangedSignal;
- S32 getConversationListItemSize() { return mConversationsWidgets.size(); }
- typedef std::list<LLFloater*> floater_list_t;
- void getDetachedConversationFloaters(floater_list_t& floaters);
+ bool removeConversationListItem(const LLUUID& uuid, bool change_focus = true);
+ LLConversationItem* addConversationListItem(const LLUUID& uuid, bool isWidgetSelected = false);
+ void setTimeNow(const LLUUID& session_id, const LLUUID& participant_id);
+ void setNearbyDistances();
+ void reSelectConversation();
+ void updateSpeakBtnState();
+ static bool isConversationLoggingAllowed();
+ void flashConversationItemWidget(const LLUUID& session_id, bool is_flashes);
+ void highlightConversationItemWidget(const LLUUID& session_id, bool is_highlighted);
+ bool isScrolledOutOfSight(LLConversationViewSession* conversation_item_widget);
+ boost::signals2::connection mMicroChangedSignal;
+ S32 getConversationListItemSize() { return mConversationsWidgets.size(); }
+ typedef std::list<LLFloater*> floater_list_t;
+ void getDetachedConversationFloaters(floater_list_t& floaters);
private:
- LLConversationViewSession* createConversationItemWidget(LLConversationItem* item);
- LLConversationViewParticipant* createConversationViewParticipant(LLConversationItem* item);
- bool onConversationModelEvent(const LLSD& event);
- void handleConversationModelEvent(const LLSD& event);
-
- // Conversation list data
- LLPanel* mConversationsListPanel; // This is the main widget we add conversation widget to
- conversations_items_map mConversationsItems;
- conversations_widgets_map mConversationsWidgets;
- LLConversationViewModel mConversationViewModel;
- LLFolderView* mConversationsRoot;
- LLEventStream mConversationsEventStream;
-
- typedef std::map<LLUUID, std::deque<LLSD> > conversations_items_deque;
- conversations_items_deque mConversationEventQueue;
-
- LLTimer mParticipantRefreshTimer;
+ LLConversationViewSession* createConversationItemWidget(LLConversationItem* item);
+ LLConversationViewParticipant* createConversationViewParticipant(LLConversationItem* item);
+ bool onConversationModelEvent(const LLSD& event);
+ void handleConversationModelEvent(const LLSD& event);
+
+ // Conversation list data
+ LLPanel* mConversationsListPanel; // This is the main widget we add conversation widget to
+ conversations_items_map mConversationsItems;
+ conversations_widgets_map mConversationsWidgets;
+ LLConversationViewModel mConversationViewModel;
+ LLFolderView* mConversationsRoot;
+ LLEventStream mConversationsEventStream;
+
+ typedef std::map<LLUUID, std::deque<LLSD> > conversations_items_deque;
+ conversations_items_deque mConversationEventQueue;
+
+ LLTimer mParticipantRefreshTimer;
};
#endif // LL_LLFLOATERIMCONTAINER_H