Sun, 10 Aug 2025 23:44:08 +0800
Add Purple.Conversation.find_message_by_id
The method was added so that a protocol or plugin could easily lookup
for the reference for a message. This will be especially useful when a
protocol received a quoted message but only with an id.
|
42304
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Purple - Internet Messaging Library |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * This library is free software; you can redistribute it and/or |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * modify it under the terms of the GNU Lesser General Public |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * License as published by the Free Software Foundation; either |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * version 2 of the License, or (at your option) any later version. |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * This library is distributed in the hope that it will be useful, |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * Lesser General Public License for more details. |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * You should have received a copy of the GNU Lesser General Public |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * License along with this library; if not, see <https://www.gnu.org/licenses/>. |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | */ |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | #include <glib/gi18n-lib.h> |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | #include "purpledemoprotocolcontacts.h" |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | /****************************************************************************** |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
24 | * PurpleProtocolContacts Implementation |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 | *****************************************************************************/ |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
26 | static char * |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | purple_demo_protocol_contacts_get_profile_finish(G_GNUC_UNUSED PurpleProtocolContacts *contacts, |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | GAsyncResult *result, |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 | GError **error) |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 | { |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 | g_return_val_if_fail(G_IS_TASK(result), NULL); |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | return g_task_propagate_pointer(G_TASK(result), error); |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 | } |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 | |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
36 | static void |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 | purple_demo_protocol_contacts_get_profile_async(PurpleProtocolContacts *contacts, |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
38 | PurpleContactInfo *info, |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 | GCancellable *cancellable, |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
40 | GAsyncReadyCallback callback, |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
41 | gpointer data) |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
42 | { |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
43 | GTask *task = NULL; |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 | const char *profile = NULL; |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
45 | |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
46 | task = g_task_new(contacts, cancellable, callback, data); |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
47 | |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 | profile = g_object_get_data(G_OBJECT(info), "demo-profile"); |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
49 | g_task_return_pointer(task, g_strdup(profile), g_free); |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 | g_clear_object(&task); |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
51 | } |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
52 | |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
53 | void |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
54 | purple_demo_protocol_contacts_init(PurpleProtocolContactsInterface *iface) { |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
55 | iface->get_profile_async = purple_demo_protocol_contacts_get_profile_async; |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
56 | iface->get_profile_finish = purple_demo_protocol_contacts_get_profile_finish; |
|
51a419226147
A basic context menu for PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
57 | } |