diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2024-05-14 21:02:28 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2024-05-14 21:02:28 -0400 |
commit | 094dcc07f8c1d90ae723dbe60eddacb90a09eae8 (patch) | |
tree | e750942e5f22ed677b543bd49509c2a7cdc5ce56 /indra/newview/llfloaterimcontainer.h | |
parent | d4043d3b011c32eb503c43c551872f9c24d7344f (diff) | |
parent | 38c2a5bde985a6a8a96d912d432f8bdf7e5b60be (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.h | 284 |
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 |