libpurple/purpleprotocolconversation.h

Mon, 23 Dec 2024 20:39:36 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 23 Dec 2024 20:39:36 -0600
changeset 43104
f87ae4effec7
parent 43056
49358391e695
child 43136
36eba703e2b9
permissions
-rw-r--r--

Add Purple.ProtocolConversation.refresh

This virtual function asks the protocol to update an existing conversation.
This could be to bring it back online, update the topic, whatever.

Testing Done:
Ran the unit tests under valgrind and called in the turtles for good measure.

Bugs closed: PIDGIN-17989

Reviewed at https://reviews.imfreedom.org/r/3699/

42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * source distribution.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
9 * This library is free software; you can redistribute it and/or modify it
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
10 * under the terms of the GNU General Public License as published by the Free
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
11 * Software Foundation; either version 2 of the License, or (at your option)
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
12 * any later version.
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
14 * This library is distributed in the hope that it will be useful, but WITHOUT
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
17 * more details.
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
19 * You should have received a copy of the GNU General Public License along with
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42387
diff changeset
20 * this library; if not, see <https://www.gnu.org/licenses/>.
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24 # error "only <purple.h> may be included directly"
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25 #endif
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 #ifndef PURPLE_PROTOCOL_CONVERSATION_H
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28 #define PURPLE_PROTOCOL_CONVERSATION_H
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 #include <glib.h>
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 #include <glib-object.h>
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32
42344
c51d37734155 Rename account.[ch] to purpleaccount.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 42332
diff changeset
33 #include "purpleaccount.h"
42354
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
34 #include "purpleavatar.h"
42332
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
35 #include "purplechanneljoindetails.h"
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 #include "purpleconversation.h"
42673
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
37 #include "purplecreateconversationdetails.h"
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 #include "purplemessage.h"
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 #include "purpleprotocol.h"
42368
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
40 #include "purpletyping.h"
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
41 #include "purpleversion.h"
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 G_BEGIN_DECLS
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44
42673
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
45 /**
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
46 * PURPLE_PROTOCOL_CONVERSATION_DOMAIN:
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
47 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
48 * An error domain for [iface@ProtocolConversation] errors.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
49 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
50 * Since: 3.0
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
51 */
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
52 #define PURPLE_PROTOCOL_CONVERSATION_DOMAIN \
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
53 (g_quark_from_static_string("purple-protocol-conversation")) \
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
54 PURPLE_AVAILABLE_MACRO_IN_3_0
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
55
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56 #define PURPLE_TYPE_PROTOCOL_CONVERSATION (purple_protocol_conversation_get_type())
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
57
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
58 PURPLE_AVAILABLE_IN_3_0
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 G_DECLARE_INTERFACE(PurpleProtocolConversation, purple_protocol_conversation,
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 PURPLE, PROTOCOL_CONVERSATION, PurpleProtocol)
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 /**
42656
df9aafbae930 Add a doc-check unit test to libpurple and fix the issues it has found
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
63 * PurpleProtocolConversation:
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 *
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 * This interface defines the behavior for interacting with conversations at
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 * the protocol layer. These methods will primarily be called by the user
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 * interface.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
69 * Since: 3.0
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 */
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 struct _PurpleProtocolConversationInterface {
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 /*< private >*/
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 GTypeInterface parent;
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 /*< public >*/
42673
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
76 PurpleCreateConversationDetails *(*get_create_conversation_details)(PurpleProtocolConversation *protocol, PurpleAccount *account);
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
77 void (*create_conversation_async)(PurpleProtocolConversation *protocol, PurpleAccount *account, PurpleCreateConversationDetails *details, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
78 PurpleConversation *(*create_conversation_finish)(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
79
42778
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
80 void (*leave_conversation_async)(PurpleProtocolConversation *protocol, PurpleConversation *conversation, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
81 gboolean (*leave_conversation_finish)(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
82
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 void (*send_message_async)(PurpleProtocolConversation *protocol, PurpleConversation *conversation, PurpleMessage *message, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84 gboolean (*send_message_finish)(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85
42325
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
86 void (*set_topic_async)(PurpleProtocolConversation *protocol, PurpleConversation *conversation, const char *topic, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
87 gboolean (*set_topic_finish)(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
88
42332
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
89 PurpleChannelJoinDetails *(*get_channel_join_details)(PurpleProtocolConversation *protocol, PurpleAccount *account);
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
90 void (*join_channel_async)(PurpleProtocolConversation *protocol, PurpleAccount *account, PurpleChannelJoinDetails *details, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
91 gboolean (*join_channel_finish)(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
92
42354
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
93 void (*set_avatar_async)(PurpleProtocolConversation *protocol, PurpleConversation *conversation, PurpleAvatar *avatar, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
94 gboolean (*set_avatar_finish)(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
95
42368
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
96 void (*send_typing)(PurpleProtocolConversation *protocol, PurpleConversation *conversation, PurpleTypingState state);
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
97
43104
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
98 void (*refresh)(PurpleProtocolConversation *protocol, PurpleConversation *conversation);
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
99
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 /*< private >*/
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101 gpointer reserved[8];
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102 };
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 /**
42673
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
105 * purple_protocol_conversation_implements_create_conversation:
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
106 * @protocol: The instance.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
107 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
108 * Checks if @protocol implements
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
109 * [vfunc@ProtocolConversation.get_create_conversation_details],
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
110 * [vfunc@ProtocolConversation.create_conversation_async], and
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
111 * [vfunc@ProtocolConversation.create_conversation_finish].
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
112 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
113 * Returns: %TRUE if everything is implemented, otherwise %FALSE.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
114 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
115 * Since: 3.0
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
116 */
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
117 PURPLE_AVAILABLE_IN_3_0
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
118 gboolean purple_protocol_conversation_implements_create_conversation(PurpleProtocolConversation *protocol);
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
119
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
120 /**
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
121 * purple_protocol_conversation_get_create_conversation_details:
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
122 * @protocol: The instance.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
123 * @account: The account.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
124 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
125 * Gets a [class@CreateConversationDetails] from @protocol for @account.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
126 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
127 * This can then be used in calls to
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
128 * [method@ProtocolConversation.create_conversation_async] to create the
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
129 * conversation.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
130 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
131 * Returns: (transfer full): The details to create a conversation with
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
132 * @account.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
133 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
134 * Since: 3.0
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
135 */
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
136 PURPLE_AVAILABLE_IN_3_0
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
137 PurpleCreateConversationDetails *purple_protocol_conversation_get_create_conversation_details(PurpleProtocolConversation *protocol, PurpleAccount *account);
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
138
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
139 /**
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
140 * purple_protocol_conversation_create_conversation_async:
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
141 * @protocol: The instance.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
142 * @account: The account.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
143 * @details: (transfer full): The create conversation details.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
144 * @cancellable: (nullable): optional GCancellable object, %NULL to ignore.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
145 * @callback: (nullable) (scope async): The callback to call after the
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
146 * conversation has been created.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
147 * @data: (nullable): Optional user data to pass to @callback.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
148 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
149 * Starts the process of creating a dm or group dm conversation on @account.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
150 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
151 * Since: 3.0
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
152 */
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
153 PURPLE_AVAILABLE_IN_3_0
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
154 void purple_protocol_conversation_create_conversation_async(PurpleProtocolConversation *protocol, PurpleAccount *account, PurpleCreateConversationDetails *details, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
155
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
156 /**
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
157 * purple_protocol_conversation_create_conversation_finish:
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
158 * @protocol: The instance.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
159 * @result: The [iface@Gio.AsyncResult] from the previous
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
160 * [method@ProtocolConversation.create_conversation_async] call.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
161 * @error: Return address for a #GError, or %NULL.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
162 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
163 * Finishes a previous call to
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
164 * [method@ProtocolConversation.create_conversation_async]. This should be
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
165 * called from the callback of that function to get the result of whether or
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
166 * not the conversation was created successfully.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
167 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
168 * It is the responsibility of the protocol to register the conversation with
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
169 * the default [class@ConversationManager].
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
170 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
171 * Returns: (transfer full): The new conversation if successful, otherwise
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
172 * %NULL with @error possibly set.
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
173 *
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
174 * Since: 3.0
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
175 */
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
176 PURPLE_AVAILABLE_IN_3_0
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
177 PurpleConversation *purple_protocol_conversation_create_conversation_finish(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
178
a9e988314724 Add the ability to create conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42656
diff changeset
179 /**
42778
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
180 * purple_protocol_conversation_implements_leave_conversation:
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
181 * @protocol: The instance.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
182 *
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
183 * Checks if @protocol implements
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
184 * [vfunc@ProtocolConversation.leave_conversation_async] and
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
185 * [vfunc@ProtocolConversation.leave_conversation_finish].
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
186 *
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
187 * Returns: %TRUE if everything is implemented, otherwise %FALSE.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
188 *
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
189 * Since: 3.0
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
190 */
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
191 PURPLE_AVAILABLE_IN_3_0
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
192 gboolean purple_protocol_conversation_implements_leave_conversation(PurpleProtocolConversation *protocol);
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
193
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
194 /**
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
195 * purple_protocol_conversation_leave_conversation_async:
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
196 * @protocol: The instance.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
197 * @conversation: The conversation to leave.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
198 * @cancellable: (nullable): optional GCancellable object, %NULL to ignore.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
199 * @callback: (nullable) (scope async): The callback to call after the
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
200 * conversation has been created.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
201 * @data: (nullable): Optional user data to pass to @callback.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
202 *
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
203 * Attempts to leave @conversation.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
204 *
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
205 * This needs to support all conversation types that @protocol supports.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
206 *
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
207 * Call [method@ProtocolConversation.leave_conversation_finish] from @callback
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
208 * to determine whether or not leaving was successful.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
209 *
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
210 * Since: 3.0
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
211 */
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
212 PURPLE_AVAILABLE_IN_3_0
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
213 void purple_protocol_conversation_leave_conversation_async(PurpleProtocolConversation *protocol, PurpleConversation *conversation, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
214
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
215 /**
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
216 * purple_protocol_conversation_leave_conversation_finish:
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
217 * @protocol: The instance.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
218 * @result: The result that was passed to the callback.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
219 * @error: A return address for a #GError.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
220 *
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
221 * Finishes a previous call to
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
222 * [method@ProtocolConversation.leave_conversation_async].
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
223 *
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
224 * Returns: %TRUE if the conversation was left successfully, otherwise %FALSE
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
225 * with @error set.
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
226 *
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
227 * Since: 3.0
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
228 */
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
229 PURPLE_AVAILABLE_IN_3_0
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
230 gboolean purple_protocol_conversation_leave_conversation_finish(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
231
4aa4ab7b24a7 Add the ability to leave conversations to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42673
diff changeset
232 /**
43056
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
233 * purple_protocol_conversation_implements_send_message:
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
234 * @protocol: The instance.
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
235 *
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
236 * Checks if a protocol implements all of the send message virtual functions.
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
237 *
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
238 * This checks if the [vfunc@ProtocolConversation.send_message_async] and
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
239 * [vfunc@ProtocolConversation.send_message_finish] functions are implemented.
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
240 *
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
241 * Returns: %TRUE if @protocol implements all of the virtual functions for
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
242 * sending messages, otherwise %FALSE.
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
243 *
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
244 * Since: 3.0
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
245 */
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
246 PURPLE_AVAILABLE_IN_3_0
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
247 gboolean purple_protocol_conversation_implements_send_message(PurpleProtocolConversation *protocol);
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
248
49358391e695 Add Purple.ProtocolConversation.implements_send_message
Gary Kramlich <grim@reaperworld.com>
parents: 42884
diff changeset
249 /**
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
250 * purple_protocol_conversation_send_message_async:
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
251 * @protocol: The instance.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
252 * @conversation: The conversation to send a message to.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
253 * @message: The message to send.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
254 * @cancellable: (nullable): optional GCancellable object, %NULL to ignore.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
255 * @callback: (nullable) (scope async): The callback to call after the message
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
256 * has been sent.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
257 * @data: (nullable): Optional user data to pass to @callback.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
258 *
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
259 * Starts the process of sending @message to @conversation.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
260 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
261 * Since: 3.0
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
262 */
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
263 PURPLE_AVAILABLE_IN_3_0
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
264 void purple_protocol_conversation_send_message_async(PurpleProtocolConversation *protocol, PurpleConversation *conversation, PurpleMessage *message, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
265
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
266 /**
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
267 * purple_protocol_conversation_send_message_finish:
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
268 * @protocol: The instance.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
269 * @result: The [iface@Gio.AsyncResult] from the previous
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
270 * [method@ProtocolConversation.send_message_async] call.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
271 * @error: Return address for a #GError, or %NULL.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
272 *
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
273 * Finishes a previous call to
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
274 * [method@ProtocolConversation.send_message_async]. This should be called from
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
275 * the callback of that function to get the result of whether or not the
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
276 * message was sent successfully.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
277 *
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
278 * Returns: %TRUE if the message was sent successfully, otherwise %FALSE with
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
279 * @error possibly set.
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
280 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
281 * Since: 3.0
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
282 */
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
283 PURPLE_AVAILABLE_IN_3_0
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
284 gboolean purple_protocol_conversation_send_message_finish(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
285
42325
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
286 /**
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
287 * purple_protocol_conversation_set_topic_async:
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
288 * @protocol: The instance.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
289 * @conversation: The conversation whose topic to set.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
290 * @topic: (nullable): The new topic to set.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
291 * @cancellable: (nullable): optional GCancellable object, %NULL to ignore.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
292 * @callback: (nullable) (scope async): The callback to call after the message
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
293 * has been sent.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
294 * @data: (nullable): Optional user data to pass to @callback.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
295 *
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
296 * Starts the process of setting the topic of @conversation to @topic.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
297 *
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
298 * It is up to the protocol to define how [property@Conversation:topic] is
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
299 * updated. It may be able to do this immediately based on a result from the
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
300 * other end, or it might have to wait until another event comes in telling it
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
301 * to update it. Regardless, user interfaces should not be updating the topic
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
302 * directly.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
303 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
304 * Since: 3.0
42325
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
305 */
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
306 PURPLE_AVAILABLE_IN_3_0
42325
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
307 void purple_protocol_conversation_set_topic_async(PurpleProtocolConversation *protocol, PurpleConversation *conversation, const char *topic, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
308
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
309 /**
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
310 * purple_protocol_conversation_set_topic_finish:
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
311 * @protocol: The instance.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
312 * @result: The [iface@Gio.AsyncResult] from the previous
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
313 * [method@ProtocolConversation.set_topic_async] call.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
314 * @error: Return address for a #GError, or %NULL.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
315 *
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
316 * Finishes a previous call to
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
317 * [method@ProtocolConversation.set_topic_async]. This should be called from
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
318 * the callback of that function to get the result of whether or not the
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
319 * message was sent successfully.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
320 *
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
321 * Returns: %TRUE if the message was sent successfully, otherwise %FALSE with
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
322 * @error possibly set.
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
323 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
324 * Since: 3.0
42325
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
325 */
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
326 PURPLE_AVAILABLE_IN_3_0
42325
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
327 gboolean purple_protocol_conversation_set_topic_finish(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
9e5c583e13de Add PurpleProtocolConversation->set_topic_async and _finish
Gary Kramlich <grim@reaperworld.com>
parents: 42319
diff changeset
328
42332
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
329 /**
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
330 * purple_protocol_conversation_get_channel_join_details:
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
331 * @protocol: The instance.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
332 * @account: The account that will be joining a channel.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
333 *
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
334 * User interfaces will use this function to get an instance of
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
335 * [class@ChannelJoinDetails] that can be presented to a user for them to edit.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
336 *
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
337 * Returns: (transfer full): The new join channel details.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
338 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
339 * Since: 3.0
42332
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
340 */
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
341 PURPLE_AVAILABLE_IN_3_0
42332
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
342 PurpleChannelJoinDetails *purple_protocol_conversation_get_channel_join_details(PurpleProtocolConversation *protocol, PurpleAccount *account);
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
343
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
344 /**
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
345 * purple_protocol_conversation_join_channel_async:
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
346 * @protocol: The instance.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
347 * @account: The account that's joining the channel.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
348 * @details: The details of the channel that's being joined.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
349 * @cancellable: (nullable): optional GCancellable object, %NULL to ignore.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
350 * @callback: (nullable) (scope async): The callback to call after the message
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
351 * has been sent.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
352 * @data: (nullable): Optional user data to pass to @callback.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
353 *
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
354 * Attempts to join the channel identified by @details using @account.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
355 *
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
356 * If the channel is joined successfully, it is the responsibility of
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
357 * @protocol to add the conversation to the [class@ConversationManager] during
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
358 * this process.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
359 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
360 * Since: 3.0
42332
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
361 */
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
362 PURPLE_AVAILABLE_IN_3_0
42332
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
363 void purple_protocol_conversation_join_channel_async(PurpleProtocolConversation *protocol, PurpleAccount *account, PurpleChannelJoinDetails *details, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
364
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
365 /**
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
366 * purple_protocol_conversation_join_channel_finish:
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
367 * @protocol: The instance.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
368 * @result: The [iface@Gio.AsyncResult] from the previous
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
369 * [method@ProtocolConversation.join_channel_async] call.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
370 * @error: Return address for a #GError, or %NULL.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
371 *
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
372 * Finishes a previous call to
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
373 * [method@ProtocolConversation.join_channel_async]. This should be called from
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
374 * the callback of that function to get the result of whether or not the
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
375 * channel was joined successfully.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
376 *
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
377 * Returns: %TRUE if the channel was joined successfully, otherwise %FALSE with
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
378 * @error possibly set.
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
379 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
380 * Since: 3.0
42332
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
381 */
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
382 PURPLE_AVAILABLE_IN_3_0
42332
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
383 gboolean purple_protocol_conversation_join_channel_finish(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
0de4f569ccf3 Add the ability to join channels to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42325
diff changeset
384
42354
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
385 /**
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
386 * purple_protocol_conversation_set_avatar_async:
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
387 * @protocol: The instance.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
388 * @conversation: The conversation instance.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
389 * @avatar: (nullable): The new avatar.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
390 * @cancellable: (nullable): optional GCancellable object, %NULL to ignore.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
391 * @callback: (nullable) (scope async): The callback to call after the message
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
392 * has been sent.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
393 * @data: (nullable): Optional user data to pass to @callback.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
394 *
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
395 * Sets the avatar for @conversation to @pixbuf. Pass %NULL to clear the
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
396 * current avatar.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
397 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
398 * Since: 3.0
42354
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
399 */
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
400 PURPLE_AVAILABLE_IN_3_0
42354
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
401 void purple_protocol_conversation_set_avatar_async(PurpleProtocolConversation *protocol, PurpleConversation *conversation, PurpleAvatar *avatar, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data);
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
402
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
403 /**
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
404 * purple_protocol_conversation_set_avatar_finish:
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
405 * @protocol: The instance.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
406 * @result: The [iface@Gio.AsyncResult] from the previous
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
407 * [method@ProtocolConversation.set_avatar_async] call.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
408 * @error: Return address for a #GError, or %NULL.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
409 *
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
410 * Finishes a previous call to
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
411 * [method@ProtocolConversation.set_avatar_async]. This should be called from
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
412 * the callback of that function to get the result of whether or not the
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
413 * avatar was set successfully.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
414 *
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
415 * Returns: %TRUE if the avatar was set successfully, otherwise %FALSE with
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
416 * @error possibly set.
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
417 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
418 * Since: 3.0
42354
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
419 */
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
420 PURPLE_AVAILABLE_IN_3_0
42354
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
421 gboolean purple_protocol_conversation_set_avatar_finish(PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error);
b5caf6b7705a Add set_avatar_async and set_avatar_finish to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42344
diff changeset
422
42368
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
423 /**
42884
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
424 * purple_protocol_conversation_implements_send_typing:
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
425 * @protocol: The instance.
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
426 *
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
427 * Checks if @protocol implements [vfunc@ProtocolConversation.send_typing].
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
428 *
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
429 * Returns: %TRUE if everything is implemented, otherwise %FALSE.
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
430 *
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
431 * Since: 3.0
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
432 */
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
433 PURPLE_AVAILABLE_IN_3_0
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
434 gboolean purple_protocol_conversation_implements_send_typing(PurpleProtocolConversation *protocol);
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
435
5a7d425c9d1b Add a typing-state property to Purple.Conversation
Gary Kramlich <grim@reaperworld.com>
parents: 42778
diff changeset
436 /**
42656
df9aafbae930 Add a doc-check unit test to libpurple and fix the issues it has found
Gary Kramlich <grim@reaperworld.com>
parents: 42615
diff changeset
437 * purple_protocol_conversation_send_typing:
42368
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
438 * @protocol: The instance.
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
439 * @conversation: The conversation.
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
440 * @state: The new typing state.
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
441 *
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
442 * Sends the libpurple user's typing state for the conversation.
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
443 *
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
444 * This should primarily be called by the user interface.
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
445 *
42615
2f3308794a8f Remove the micro version from since tags for libpurple part 4
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
446 * Since: 3.0
42368
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
447 */
42387
d9350cda1556 Export symbols added for 3.0.0
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42368
diff changeset
448 PURPLE_AVAILABLE_IN_3_0
42368
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
449 void purple_protocol_conversation_send_typing(PurpleProtocolConversation *protocol, PurpleConversation *conversation, PurpleTypingState state);
2630a8a2d64d Add a send_typing vfunc to PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42354
diff changeset
450
43104
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
451 /**
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
452 * purple_protocol_conversation_implements_refresh:
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
453 *
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
454 * Checks if @protocol implements [vfunc@ProtocolConversation.refresh].
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
455 *
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
456 * Returns: true if everything is implemented; false otherwise.
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
457 *
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
458 * Since: 3.0
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
459 */
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
460 PURPLE_AVAILABLE_IN_3_0
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
461 gboolean purple_protocol_conversation_implements_refresh(PurpleProtocolConversation *protocol);
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
462
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
463 /**
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
464 * purple_protocol_conversation_refresh:
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
465 * @conversation: the conversation
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
466 *
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
467 * Asks the protocol to refresh a conversation.
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
468 *
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
469 * A conversation could need to be refreshed for any number of reasons, but the
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
470 * primary case is to help restore conversations when user interfaces restart.
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
471 *
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
472 * This allows the user interface to recreate a conversation and then have the
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
473 * protocol do whatever is necessary to bring the conversation back up to date
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
474 * and online.
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
475 *
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
476 * Since: 3.0
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
477 */
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
478 PURPLE_AVAILABLE_IN_3_0
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
479 void purple_protocol_conversation_refresh(PurpleProtocolConversation *protocol, PurpleConversation *conversation);
f87ae4effec7 Add Purple.ProtocolConversation.refresh
Gary Kramlich <grim@reaperworld.com>
parents: 43056
diff changeset
480
42319
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
481 G_END_DECLS
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
482
98931e2d3ca2 Create the initial PurpleProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
483 #endif /* PURPLE_PROTOCOL_CONVERSATION_H */

mercurial