summaryrefslogtreecommitdiff
path: root/indra/newview/groupchatlistener.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/groupchatlistener.cpp')
-rw-r--r--indra/newview/groupchatlistener.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/indra/newview/groupchatlistener.cpp b/indra/newview/groupchatlistener.cpp
index 9b463c9a3f..d9c705adf0 100644
--- a/indra/newview/groupchatlistener.cpp
+++ b/indra/newview/groupchatlistener.cpp
@@ -18,6 +18,22 @@
// external library headers
// other Linden headers
#include "llgroupactions.h"
+#include "llimview.h"
+
+
+namespace {
+ void startIm_wrapper(LLSD const & event)
+ {
+ LLUUID session_id = LLGroupActions::startIM(event["id"].asUUID());
+ sendReply(LLSDMap("session_id", LLSD(session_id)), event);
+ }
+
+ void send_message_wrapper(const std::string& text, const LLUUID& session_id, const LLUUID& group_id)
+ {
+ LLIMModel::sendMessage(text, session_id, group_id, IM_SESSION_GROUP_START);
+ }
+}
+
GroupChatListener::GroupChatListener():
LLEventAPI("GroupChat",
@@ -26,11 +42,18 @@ GroupChatListener::GroupChatListener():
add("startIM",
"Enter a group chat in group with UUID [\"id\"]\n"
"Assumes the logged-in agent is already a member of this group.",
- &LLGroupActions::startIM,
- LLSDArray("id"));
+ &startIm_wrapper);
add("endIM",
"Leave a group chat in group with UUID [\"id\"]\n"
"Assumes a prior successful startIM request.",
&LLGroupActions::endIM,
LLSDArray("id"));
+ add("sendIM",
+ "send a groupchat IM",
+ &send_message_wrapper,
+ LLSDArray("text")("session_id")("group_id"));
}
+/*
+ static void sendMessage(const std::string& utf8_text, const LLUUID& im_session_id,
+ const LLUUID& other_participant_id, EInstantMessage dialog);
+*/ \ No newline at end of file