libpurple/purpleconversationmember.c

Wed, 19 Feb 2025 01:52:06 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Wed, 19 Feb 2025 01:52:06 -0600
changeset 43185
c7b0c4b88dfb
parent 43172
8f93d317f96a
child 43202
1c2e548285f3
permissions
-rw-r--r--

Implement Purple.ConversationMember.compare

Testing Done:
Ran the tests under valgrind and called in the turtles.

Bugs closed: PIDGIN-18051

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

42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
7 * source distribution.
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
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: 42584
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: 42584
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: 42584
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: 42584
diff changeset
12 * any later version.
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
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: 42584
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: 42584
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: 42584
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: 42584
diff changeset
17 * more details.
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
diff changeset
18 *
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42584
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: 42584
diff changeset
20 * this library; if not, see <https://www.gnu.org/licenses/>.
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #include "purpleconversationmember.h"
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
25 #include "purpleenums.h"
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
26 #include "util.h"
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
27
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28 struct _PurpleConversationMember {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29 GObject parent;
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30
43139
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
31 char *alias;
42921
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
32 PurpleBadges *badges;
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 PurpleContactInfo *contact_info;
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 PurpleTags *tags;
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
35
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
36 guint typing_timeout;
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
37 PurpleTypingState typing_state;
43140
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
38
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
39 char *nickname;
43140
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
40 char *color;
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 };
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 enum {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 PROP_0,
43139
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
45 PROP_ALIAS,
42921
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
46 PROP_BADGES,
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 PROP_CONTACT_INFO,
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 PROP_TAGS,
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
49 PROP_TYPING_STATE,
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
50 PROP_NICKNAME,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
51 PROP_NAME_FOR_DISPLAY,
43140
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
52 PROP_COLOR,
42584
687260353985 Make signal and property enums and initializers consistent
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42576
diff changeset
53 N_PROPERTIES,
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54 };
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56
42576
ab1ca778ddb2 Make sure all of the final types in libpurple are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42175
diff changeset
57 G_DEFINE_FINAL_TYPE(PurpleConversationMember, purple_conversation_member,
ab1ca778ddb2 Make sure all of the final types in libpurple are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42175
diff changeset
58 G_TYPE_OBJECT)
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
60 static void
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
61 purple_conversation_member_info_changed_cb(GObject *self, GParamSpec *pspec,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
62 gpointer data);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
63
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 /******************************************************************************
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 * Helpers
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 *****************************************************************************/
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 static void
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 purple_conversation_member_set_contact_info(PurpleConversationMember *member,
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 PurpleContactInfo *contact_info)
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 g_return_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member));
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 g_return_if_fail(PURPLE_IS_CONTACT_INFO(contact_info));
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
74 if(PURPLE_IS_CONTACT_INFO(member->contact_info)) {
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
75 g_signal_handlers_disconnect_by_func(member->contact_info,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
76 purple_conversation_member_info_changed_cb,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
77 member);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
78 }
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
79
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 if(g_set_object(&member->contact_info, contact_info)) {
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
81 GObject *obj = G_OBJECT(member);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
82
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
83 if(PURPLE_IS_CONTACT_INFO(member->contact_info)) {
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
84 g_signal_connect_object(member->contact_info,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
85 "notify::name-for-display",
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
86 G_CALLBACK(purple_conversation_member_info_changed_cb),
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
87 member, G_CONNECT_DEFAULT);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
88 }
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
89
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
90 g_object_freeze_notify(obj);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
91 g_object_notify_by_pspec(obj, properties[PROP_CONTACT_INFO]);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
92 g_object_notify_by_pspec(obj, properties[PROP_NAME_FOR_DISPLAY]);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
93 g_object_thaw_notify(obj);
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 /******************************************************************************
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
98 * Callbacks
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
99 *****************************************************************************/
43127
eae3279e871c Use g_timeout_add_once where possible
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42921
diff changeset
100 static void
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
101 purple_conversation_member_reset_typing_state(gpointer data) {
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
102 PurpleConversationMember *member = data;
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
103
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
104 purple_conversation_member_set_typing_state(member,
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
105 PURPLE_TYPING_STATE_NONE,
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
106 0);
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
107 }
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
108
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
109 static void
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
110 purple_conversation_member_info_changed_cb(G_GNUC_UNUSED GObject *self,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
111 G_GNUC_UNUSED GParamSpec *pspec,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
112 gpointer data)
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
113 {
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
114 g_object_notify_by_pspec(G_OBJECT(data),
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
115 properties[PROP_NAME_FOR_DISPLAY]);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
116 }
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
117
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
118 /******************************************************************************
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
119 * GObject Implementation
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
120 *****************************************************************************/
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121 static void
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122 purple_conversation_member_get_property(GObject *obj, guint param_id,
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
123 GValue *value, GParamSpec *pspec)
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124 {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
125 PurpleConversationMember *member = PURPLE_CONVERSATION_MEMBER(obj);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
126
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
127 switch(param_id) {
43139
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
128 case PROP_ALIAS:
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
129 g_value_set_string(value,
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
130 purple_conversation_member_get_alias(member));
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
131 break;
42921
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
132 case PROP_BADGES:
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
133 g_value_set_object(value,
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
134 purple_conversation_member_get_badges(member));
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
135 break;
43140
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
136 case PROP_COLOR:
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
137 g_value_set_string(value,
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
138 purple_conversation_member_get_color(member));
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
139 break;
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
140 case PROP_CONTACT_INFO:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
141 g_value_set_object(value,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
142 purple_conversation_member_get_contact_info(member));
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
143 break;
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
144 case PROP_TAGS:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
145 g_value_set_object(value,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
146 purple_conversation_member_get_tags(member));
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
147 break;
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
148 case PROP_TYPING_STATE:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
149 g_value_set_enum(value,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
150 purple_conversation_member_get_typing_state(member));
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
151 break;
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
152 case PROP_NICKNAME:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
153 g_value_set_string(value,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
154 purple_conversation_member_get_nickname(member));
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
155 break;
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
156 case PROP_NAME_FOR_DISPLAY:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
157 g_value_set_string(value,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
158 purple_conversation_member_get_name_for_display(member));
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
159 break;
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
160 default:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
161 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
162 break;
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
163 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
164 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
165
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
166 static void
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
167 purple_conversation_member_set_property(GObject *obj, guint param_id,
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
168 const GValue *value, GParamSpec *pspec)
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
169 {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
170 PurpleConversationMember *member = PURPLE_CONVERSATION_MEMBER(obj);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
172 switch(param_id) {
43139
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
173 case PROP_ALIAS:
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
174 purple_conversation_member_set_alias(member,
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
175 g_value_get_string(value));
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
176 break;
43140
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
177 case PROP_COLOR:
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
178 purple_conversation_member_set_color(member,
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
179 g_value_get_string(value));
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
180 break;
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
181 case PROP_CONTACT_INFO:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
182 purple_conversation_member_set_contact_info(member,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
183 g_value_get_object(value));
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
184 break;
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
185 case PROP_TYPING_STATE:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
186 purple_conversation_member_set_typing_state(member,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
187 g_value_get_enum(value),
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
188 0);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
189 break;
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
190 case PROP_NICKNAME:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
191 purple_conversation_member_set_nickname(member,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
192 g_value_get_string(value));
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
193 break;
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
194 default:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
195 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
196 break;
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
197 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
198 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
199
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
200 static void
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
201 purple_conversation_member_dispose(GObject *obj) {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
202 PurpleConversationMember *member = PURPLE_CONVERSATION_MEMBER(obj);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
203
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
204 g_clear_object(&member->contact_info);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
205
42175
4185b4043214 Use g_clear_handle_id everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42113
diff changeset
206 g_clear_handle_id(&member->typing_timeout, g_source_remove);
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
207
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
208 G_OBJECT_CLASS(purple_conversation_member_parent_class)->dispose(obj);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
209 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
210
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
211 static void
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
212 purple_conversation_member_finalize(GObject *obj) {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
213 PurpleConversationMember *member = PURPLE_CONVERSATION_MEMBER(obj);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
214
43139
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
215 g_clear_pointer(&member->alias, g_free);
43140
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
216 g_clear_pointer(&member->color, g_free);
42921
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
217 g_clear_object(&member->badges);
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
218 g_clear_object(&member->tags);
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
219 g_clear_pointer(&member->nickname, g_free);
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
220
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
221 G_OBJECT_CLASS(purple_conversation_member_parent_class)->finalize(obj);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
222 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
223
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
224 static void
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
225 purple_conversation_member_init(PurpleConversationMember *member) {
42921
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
226 member->badges = purple_badges_new();
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
227 member->tags = purple_tags_new();
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
228 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
229
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
230 static void
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
231 purple_conversation_member_class_init(PurpleConversationMemberClass *klass) {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
233
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234 obj_class->dispose = purple_conversation_member_dispose;
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
235 obj_class->finalize = purple_conversation_member_finalize;
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
236 obj_class->get_property = purple_conversation_member_get_property;
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
237 obj_class->set_property = purple_conversation_member_set_property;
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
238
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
239 /**
43139
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
240 * PurpleConversationMember:alias:
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
241 *
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
242 * The alias of a member.
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
243 *
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
244 * The alias is set by a libpurple user and could potentially be stored
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
245 * server side.
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
246 *
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
247 * Since: 3.0
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
248 */
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
249 properties[PROP_ALIAS] = g_param_spec_string(
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
250 "alias", NULL, NULL,
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
251 NULL,
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
252 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
253
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
254 /**
42921
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
255 * PurpleConversationMember:badges:
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
256 *
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
257 * The badges for the member.
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
258 *
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
259 * Since: 3.0
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
260 */
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
261 properties[PROP_BADGES] = g_param_spec_object(
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
262 "badges", NULL, NULL,
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
263 PURPLE_TYPE_BADGES,
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
264 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
265
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
266 /**
43140
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
267 * PurpleConversationMember:color:
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
268 *
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
269 * The hex color code for the member.
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
270 *
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
271 * This color code should be used by user interfaces when displaying the
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
272 * member. It may be modified by the user interface to increase contrast
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
273 * ratios.
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
274 *
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
275 * Since: 3.0
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
276 */
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
277 properties[PROP_COLOR] = g_param_spec_string(
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
278 "color", NULL, NULL,
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
279 NULL,
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
280 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
281
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
282 /**
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
283 * PurpleConversationMember:contact-info:
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
284 *
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
285 * The contact info that this member is for.
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
286 *
42613
780d7efe37c2 Remove the micro version from since tags for libpurple part 2
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
287 * Since: 3.0
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
288 */
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
289 properties[PROP_CONTACT_INFO] = g_param_spec_object(
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
290 "contact-info", NULL, NULL,
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
291 PURPLE_TYPE_CONTACT_INFO,
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
292 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
293
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
294 /**
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
295 * PurpleConversationMember:tags:
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
296 *
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
297 * The [class@Purple.Tags] instance for this member.
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
298 *
42613
780d7efe37c2 Remove the micro version from since tags for libpurple part 2
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
299 * Since: 3.0
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
300 */
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
301 properties[PROP_TAGS] = g_param_spec_object(
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
302 "tags", NULL, NULL,
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
303 PURPLE_TYPE_TAGS,
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
304 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
305
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
306 /**
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
307 * PurpleConversationMember:typing-state:
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
308 *
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
309 * The [enum@Purple.TypingState] for this member.
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
310 *
42613
780d7efe37c2 Remove the micro version from since tags for libpurple part 2
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
311 * Since: 3.0
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
312 */
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
313 properties[PROP_TYPING_STATE] = g_param_spec_enum(
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
314 "typing-state", NULL, NULL,
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
315 PURPLE_TYPE_TYPING_STATE,
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
316 PURPLE_TYPING_STATE_NONE,
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
317 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
318
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
319 /**
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
320 * PurpleConversationMember:nickname:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
321 *
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
322 * A custom nick name that the remote user has chosen for themselves in the
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
323 * chat.
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
324 *
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
325 * Since: 3.0
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
326 */
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
327 properties[PROP_NICKNAME] = g_param_spec_string(
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
328 "nickname", NULL, NULL,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
329 NULL,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
330 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
331
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
332 /**
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
333 * PurpleConversationMember:name-for-display:
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
334 *
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
335 * The nick name that should be display for the conversation member.
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
336 *
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
337 * If [property@ConversationMember:nickname] is set, that will be returned.
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
338 *
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
339 * Otherwise [property@ContactInfo:name-for-display] will be returned.
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
340 *
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
341 * Since: 3.0
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
342 */
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
343 properties[PROP_NAME_FOR_DISPLAY] = g_param_spec_string(
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
344 "name-for-display", NULL, NULL,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
345 NULL,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
346 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
347
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
348 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
349 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
350
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
351 /******************************************************************************
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
352 * Public API
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
353 *****************************************************************************/
43185
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
354 int
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
355 purple_conversation_member_compare(PurpleConversationMember *member1,
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
356 PurpleConversationMember *member2)
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
357 {
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
358 const char *name1 = NULL;
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
359 const char *name2 = NULL;
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
360 int result = 0;
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
361
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
362 /* Shortcut if the pointer is the same. */
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
363 if(member1 == member2) {
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
364 return 0;
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
365 }
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
366
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
367 /* NULL checks. */
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
368 if(PURPLE_IS_CONVERSATION_MEMBER(member1) &&
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
369 !PURPLE_IS_CONVERSATION_MEMBER(member2))
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
370 {
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
371 return -1;
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
372 }
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
373
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
374 if(!PURPLE_IS_CONVERSATION_MEMBER(member1) &&
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
375 PURPLE_IS_CONVERSATION_MEMBER(member2))
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
376 {
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
377 return 1;
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
378 }
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
379
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
380 /* Check badges first. */
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
381 result = purple_badges_compare(member1->badges, member2->badges);
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
382 if(result != 0) {
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
383 return result;
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
384 }
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
385
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
386 /* Sort by the name for display. */
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
387 name1 = purple_conversation_member_get_name_for_display(member1);
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
388 name2 = purple_conversation_member_get_name_for_display(member2);
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
389
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
390 return purple_utf8_strcasecmp(name1, name2);
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
391 }
c7b0c4b88dfb Implement Purple.ConversationMember.compare
Gary Kramlich <grim@reaperworld.com>
parents: 43172
diff changeset
392
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
393 PurpleConversationMember *
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
394 purple_conversation_member_new(PurpleContactInfo *info) {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
395 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
396
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
397 return g_object_new(
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
398 PURPLE_TYPE_CONVERSATION_MEMBER,
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
399 "contact-info", info,
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
400 NULL);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
401 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
402
43139
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
403 const char *
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
404 purple_conversation_member_get_alias(PurpleConversationMember *member) {
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
405 g_return_val_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member), NULL);
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
406
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
407 return member->alias;
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
408 }
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
409
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
410 void
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
411 purple_conversation_member_set_alias(PurpleConversationMember *member,
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
412 const char *alias)
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
413 {
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
414 g_return_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member));
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
415
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
416 if(g_set_str(&member->alias, alias)) {
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
417 GObject *obj = G_OBJECT(member);
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
418
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
419 g_object_freeze_notify(obj);
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
420 g_object_notify_by_pspec(obj, properties[PROP_ALIAS]);
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
421 g_object_notify_by_pspec(obj, properties[PROP_NAME_FOR_DISPLAY]);
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
422 g_object_thaw_notify(obj);
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
423 }
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
424 }
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
425
42921
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
426 PurpleBadges *
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
427 purple_conversation_member_get_badges(PurpleConversationMember *member) {
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
428 g_return_val_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member), NULL);
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
429
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
430 return member->badges;
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
431 }
a595e51a5bfa Add a badges property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42779
diff changeset
432
43140
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
433 const char *
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
434 purple_conversation_member_get_color(PurpleConversationMember *member) {
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
435 g_return_val_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member), NULL);
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
436
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
437 return member->color;
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
438 }
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
439
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
440 void
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
441 purple_conversation_member_set_color(PurpleConversationMember *member,
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
442 const char *color)
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
443 {
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
444 g_return_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member));
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
445
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
446 if(g_set_str(&member->color, color)) {
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
447 g_object_notify_by_pspec(G_OBJECT(member), properties[PROP_COLOR]);
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
448 }
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
449 }
951c4110ad50 Create Purple.ConversationMember:color
Gary Kramlich <grim@reaperworld.com>
parents: 43139
diff changeset
450
42080
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
451 PurpleContactInfo *
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
452 purple_conversation_member_get_contact_info(PurpleConversationMember *member) {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
453 g_return_val_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member), NULL);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
454
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
455 return member->contact_info;
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
456 }
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
457
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
458 PurpleTags *
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
459 purple_conversation_member_get_tags(PurpleConversationMember *member) {
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
460 g_return_val_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member), NULL);
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
461
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
462 return member->tags;
df47db24cee6 Add PurpleConversationMember to link a PurpleContactInfo to a PurpleConversation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
463 }
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
464
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
465 PurpleTypingState
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
466 purple_conversation_member_get_typing_state(PurpleConversationMember *member)
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
467 {
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
468 g_return_val_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member),
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
469 PURPLE_TYPING_STATE_NONE);
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
470
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
471 return member->typing_state;
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
472 }
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
473
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
474 void
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
475 purple_conversation_member_set_typing_state(PurpleConversationMember *member,
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
476 PurpleTypingState state,
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
477 guint seconds)
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
478 {
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
479 g_return_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member));
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
480
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
481 /* Remove an existing timeout if necessary. */
42175
4185b4043214 Use g_clear_handle_id everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42113
diff changeset
482 g_clear_handle_id(&member->typing_timeout, g_source_remove);
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
483
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
484 /* If the state has changed, notify. */
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
485 if(state != member->typing_state) {
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
486 member->typing_state = state;
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
487
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
488 g_object_notify_by_pspec(G_OBJECT(member),
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
489 properties[PROP_TYPING_STATE]);
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
490 }
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
491
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
492 /* If we got a timeout, add it. */
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
493 if(seconds > 0) {
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
494 guint source = 0;
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
495
43127
eae3279e871c Use g_timeout_add_once where possible
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42921
diff changeset
496 source = g_timeout_add_seconds_once(seconds,
eae3279e871c Use g_timeout_add_once where possible
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42921
diff changeset
497 purple_conversation_member_reset_typing_state,
eae3279e871c Use g_timeout_add_once where possible
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42921
diff changeset
498 member);
42113
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
499
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
500 member->typing_timeout = source;
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
501 }
393c2ea6b399 Add PurpleTypingState and add it as a property to PurpleConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 42080
diff changeset
502 }
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
503
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
504 const char *
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
505 purple_conversation_member_get_nickname(PurpleConversationMember *member) {
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
506 g_return_val_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member), NULL);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
507
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
508 return member->nickname;
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
509 }
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
510
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
511 void
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
512 purple_conversation_member_set_nickname(PurpleConversationMember *member,
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
513 const char *nickname)
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
514 {
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
515 g_return_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member));
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
516
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
517 if(g_set_str(&member->nickname, nickname)) {
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
518 GObject *obj = G_OBJECT(member);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
519
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
520 g_object_freeze_notify(obj);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
521 g_object_notify_by_pspec(obj, properties[PROP_NICKNAME]);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
522 g_object_notify_by_pspec(obj, properties[PROP_NAME_FOR_DISPLAY]);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
523 g_object_thaw_notify(obj);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
524 }
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
525 }
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
526
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
527 const char *
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
528 purple_conversation_member_get_name_for_display(PurpleConversationMember *member)
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
529 {
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
530 g_return_val_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member), NULL);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
531
43139
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
532 if(!purple_strempty(member->alias)) {
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
533 return member->alias;
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
534 }
7b9d197a5e16 Add an alias property to Purple.ConversationMember
Gary Kramlich <grim@reaperworld.com>
parents: 43127
diff changeset
535
42779
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
536 if(!purple_strempty(member->nickname)) {
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
537 return member->nickname;
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
538 }
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
539
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
540 return purple_contact_info_get_name_for_display(member->contact_info);
365eaa9d46f8 Add ConversationMember:nickname and ConversationMember:name-for-display properties
Gary Kramlich <grim@reaperworld.com>
parents: 42613
diff changeset
541 }
43172
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
542
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
543 gboolean
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
544 purple_conversation_member_matches(PurpleConversationMember *member,
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
545 const char *needle)
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
546 {
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
547 g_return_val_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member), FALSE);
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
548
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
549 if(purple_strempty(needle)) {
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
550 return TRUE;
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
551 }
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
552
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
553 if(!purple_strempty(member->alias)) {
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
554 if(purple_strmatches(needle, member->alias)) {
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
555 return TRUE;
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
556 }
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
557 }
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
558
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
559 if(!purple_strempty(member->nickname)) {
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
560 if(purple_strmatches(needle, member->nickname)) {
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
561 return TRUE;
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
562 }
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
563 }
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
564
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
565 return purple_contact_info_matches(member->contact_info, needle);
8f93d317f96a Add Purple.ConversationMember.matches
Gary Kramlich <grim@reaperworld.com>
parents: 43140
diff changeset
566 }

mercurial