summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterimsessiontab.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloaterimsessiontab.h')
-rw-r--r--indra/newview/llfloaterimsessiontab.h37
1 files changed, 26 insertions, 11 deletions
diff --git a/indra/newview/llfloaterimsessiontab.h b/indra/newview/llfloaterimsessiontab.h
index 6dd8e62482..367d988f26 100644
--- a/indra/newview/llfloaterimsessiontab.h
+++ b/indra/newview/llfloaterimsessiontab.h
@@ -45,6 +45,7 @@ class LLPanelEmojiComplete;
class LLFloaterIMSessionTab
: public LLTransientDockableFloater
+ , public LLIMSessionObserver
{
using super = LLTransientDockableFloater;
@@ -76,13 +77,13 @@ public:
bool isNearbyChat() {return mIsNearbyChat;}
// LLFloater overrides
- /*virtual*/ void onOpen(const LLSD& key);
- /*virtual*/ bool postBuild();
- /*virtual*/ void draw();
- /*virtual*/ void setVisible(bool visible);
- /*virtual*/ void setFocus(bool focus);
- /*virtual*/ void closeFloater(bool app_quitting = false);
- /*virtual*/ void deleteAllChildren();
+ void onOpen(const LLSD& key) override;
+ bool postBuild() override;
+ void draw() override;
+ void setVisible(bool visible) override;
+ void setFocus(bool focus) override;
+ void closeFloater(bool app_quitting = false) override;
+ void deleteAllChildren() override;
// Handle the left hand participant list widgets
void addConversationViewParticipant(LLConversationItem* item, bool update_view = true);
@@ -98,7 +99,7 @@ public:
virtual void updateMessages() {}
LLConversationItem* getCurSelectedViewModelItem();
void forceReshape();
- virtual bool handleKeyHere( KEY key, MASK mask );
+ virtual bool handleKeyHere( KEY key, MASK mask ) override;
bool isMessagePaneExpanded(){return mMessagePaneExpanded;}
void setMessagePaneExpanded(bool expanded){mMessagePaneExpanded = expanded;}
void restoreFloater();
@@ -108,6 +109,13 @@ public:
LLView* getChatHistory();
+ // LLIMSessionObserver triggers
+ virtual void sessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id, bool has_offline_msg) override {}; // Stub
+ virtual void sessionActivated(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id) override {}; // Stub
+ virtual void sessionRemoved(const LLUUID& session_id) override;
+ virtual void sessionVoiceOrIMStarted(const LLUUID& session_id) override {}; // Stub
+ virtual void sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id) override {}; // Stub
+
protected:
// callback for click on any items of the visual states menu
@@ -139,8 +147,8 @@ protected:
virtual void enableDisableCallBtn();
// process focus events to set a currently active session
- /* virtual */ void onFocusReceived();
- /* virtual */ void onFocusLost();
+ void onFocusReceived() override;
+ void onFocusLost() override;
// prepare chat's params and out one message to chatHistory
void appendMessage(const LLChat& chat, const LLSD& args = LLSD());
@@ -198,6 +206,11 @@ protected:
LLButton* mAddBtn;
LLButton* mVoiceButton;
+ // Since mVoiceButton can work in one of two modes, "Start call" or "Hang up",
+ // (with different images and tooltips depending on the currently chosen mode)
+ // we should track the mode we're currently using to react on click accordingly
+ bool mVoiceButtonHangUpMode { false };
+
private:
// Handling selection and contextual menu
void doToSelected(const LLSD& userdata);
@@ -207,7 +220,7 @@ private:
void getSelectedUUIDs(uuid_vec_t& selected_uuids);
/// Refreshes the floater at a constant rate.
- virtual void refresh() = 0;
+ virtual void refresh() override = 0;
/**
* Adjusts chat history height to fit vertically with input chat field
@@ -216,6 +229,8 @@ private:
*/
void reshapeChatLayoutPanel();
+ void onCallButtonClicked();
+
void onInputEditorClicked();
void onEmojiRecentPanelToggleBtnClicked();