Wed, 20 Jun 2018 02:13:44 -0400
prefs: Add binding versions of pref widget functions.
These just bind settings to existing widgets and copy the saved value to
the widget, except for combos which are produced from runtime lists.
Those are populated in a similar way as before.
There are some extra _bind_ words that will probably be dropped once the
other functions are unused.
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
1 | /* purple |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
2 | * |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
3 | * Purple is the legal property of its developers, whose names are too numerous |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
5 | * source distribution. |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
6 | * |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
7 | * This program is free software; you can redistribute it and/or modify |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
8 | * it under the terms of the GNU General Public License as published by |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
9 | * the Free Software Foundation; either version 2 of the License, or |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
10 | * (at your option) any later version. |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
11 | * |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
12 | * This program is distributed in the hope that it will be useful, |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
15 | * GNU General Public License for more details. |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
16 | * |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
17 | * You should have received a copy of the GNU General Public License |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
18 | * along with this program; if not, write to the Free Software |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
20 | */ |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
21 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
22 | #include "internal.h" |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
23 | #include "dbus-maybe.h" |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
24 | #include "glibcompat.h" |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
25 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
26 | #include "debug.h" |
|
36086
5e1693f7c0d5
Remove whisper completely, fix flags property in PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36085
diff
changeset
|
27 | #include "enums.h" |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
28 | #include "message.h" |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
29 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
30 | #define PURPLE_MESSAGE_GET_PRIVATE(obj) \ |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
31 | (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_MESSAGE, PurpleMessagePrivate)) |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
32 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
33 | typedef struct { |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
34 | guint id; |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
35 | gchar *author; |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
36 | gchar *author_alias; |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
37 | gchar *recipient; |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
38 | gchar *contents; |
|
36085
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
39 | guint64 msgtime; |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
40 | PurpleMessageFlags flags; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
41 | } PurpleMessagePrivate; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
42 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
43 | enum |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
44 | { |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
45 | PROP_0, |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
46 | PROP_ID, |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
47 | PROP_AUTHOR, |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
48 | PROP_AUTHOR_ALIAS, |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
49 | PROP_RECIPIENT, |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
50 | PROP_CONTENTS, |
|
36085
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
51 | PROP_TIME, |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
52 | PROP_FLAGS, |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
53 | PROP_LAST |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
54 | }; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
55 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
56 | static GObjectClass *parent_class; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
57 | static GParamSpec *properties[PROP_LAST]; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
58 | |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
59 | static GHashTable *messages = NULL; |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
60 | |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
61 | /****************************************************************************** |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
62 | * API implementation |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
63 | ******************************************************************************/ |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
64 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
65 | PurpleMessage * |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
66 | purple_message_new_outgoing(const gchar *who, const gchar *contents, |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
67 | PurpleMessageFlags flags) |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
68 | { |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
69 | g_warn_if_fail(!(flags & PURPLE_MESSAGE_RECV)); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
70 | g_warn_if_fail(!(flags & PURPLE_MESSAGE_SYSTEM)); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
71 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
72 | flags |= PURPLE_MESSAGE_SEND; |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
73 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
74 | /* who may be NULL for outgoing MUC messages */ |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
75 | return g_object_new(PURPLE_TYPE_MESSAGE, |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
76 | "author-alias", _("Me"), |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
77 | "recipient", who, |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
78 | "contents", contents, |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
79 | "time", (guint64)time(NULL), |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
80 | "flags", flags, |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
81 | NULL); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
82 | } |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
83 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
84 | PurpleMessage * |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
85 | purple_message_new_incoming(const gchar *who, const gchar *contents, |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
86 | PurpleMessageFlags flags, guint64 timestamp) |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
87 | { |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
88 | g_warn_if_fail(!(flags & PURPLE_MESSAGE_SEND)); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
89 | g_warn_if_fail(!(flags & PURPLE_MESSAGE_SYSTEM)); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
90 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
91 | flags |= PURPLE_MESSAGE_RECV; |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
92 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
93 | if (timestamp == 0) |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
94 | timestamp = time(NULL); |
|
36092
cf0a11121049
Fix message flags
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36088
diff
changeset
|
95 | |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
96 | return g_object_new(PURPLE_TYPE_MESSAGE, |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
97 | "author", who, |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
98 | "author-alias", who, |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
99 | "contents", contents, |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
100 | "time", timestamp, |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
101 | "flags", flags, |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
102 | NULL); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
103 | } |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
104 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
105 | PurpleMessage * |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
106 | purple_message_new_system(const gchar *contents, PurpleMessageFlags flags) |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
107 | { |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
108 | g_warn_if_fail(!(flags & PURPLE_MESSAGE_SEND)); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
109 | g_warn_if_fail(!(flags & PURPLE_MESSAGE_RECV)); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
110 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
111 | flags |= PURPLE_MESSAGE_SYSTEM; |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
112 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
113 | return g_object_new(PURPLE_TYPE_MESSAGE, |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
114 | "contents", contents, |
|
36085
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
115 | "time", (guint64)time(NULL), |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
116 | "flags", flags, |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
117 | NULL); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
118 | } |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
119 | |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
120 | guint |
|
36115
09387009bb17
Drop PurpleConversationMessage in favor of PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36108
diff
changeset
|
121 | purple_message_get_id(const PurpleMessage *msg) |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
122 | { |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
123 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
124 | |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
125 | g_return_val_if_fail(priv != NULL, 0); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
126 | |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
127 | return priv->id; |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
128 | } |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
129 | |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
130 | PurpleMessage * |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
131 | purple_message_find_by_id(guint id) |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
132 | { |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
133 | g_return_val_if_fail(id > 0, NULL); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
134 | |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
135 | return g_hash_table_lookup(messages, GINT_TO_POINTER(id)); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
136 | } |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
137 | |
|
36076
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
138 | const gchar * |
|
36115
09387009bb17
Drop PurpleConversationMessage in favor of PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36108
diff
changeset
|
139 | purple_message_get_author(const PurpleMessage *msg) |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
140 | { |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
141 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
142 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
143 | g_return_val_if_fail(priv != NULL, NULL); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
144 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
145 | return priv->author; |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
146 | } |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
147 | |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
148 | const gchar * |
|
36115
09387009bb17
Drop PurpleConversationMessage in favor of PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36108
diff
changeset
|
149 | purple_message_get_recipient(const PurpleMessage *msg) |
|
36076
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
150 | { |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
151 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg); |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
152 | |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
153 | g_return_val_if_fail(priv != NULL, NULL); |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
154 | |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
155 | return priv->recipient; |
|
36076
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
156 | } |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
157 | |
|
36079
2e449140fe0b
Switch sending-im-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36077
diff
changeset
|
158 | void |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
159 | purple_message_set_author_alias(PurpleMessage *msg, const gchar *alias) |
|
36094
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
160 | { |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
161 | g_object_set(msg, "author-alias", alias, NULL); |
|
36094
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
162 | } |
|
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
163 | |
|
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
164 | const gchar * |
|
36115
09387009bb17
Drop PurpleConversationMessage in favor of PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36108
diff
changeset
|
165 | purple_message_get_author_alias(const PurpleMessage *msg) |
|
36094
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
166 | { |
|
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
167 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg); |
|
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
168 | |
|
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
169 | g_return_val_if_fail(priv != NULL, NULL); |
|
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
170 | |
|
36108
69b4fce85ffa
Switch _purple_conversation_write_common and (writing|wrote)-(chat|im)-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36098
diff
changeset
|
171 | if (priv->author_alias == NULL) |
|
69b4fce85ffa
Switch _purple_conversation_write_common and (writing|wrote)-(chat|im)-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36098
diff
changeset
|
172 | return purple_message_get_author(msg); |
|
69b4fce85ffa
Switch _purple_conversation_write_common and (writing|wrote)-(chat|im)-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36098
diff
changeset
|
173 | |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
174 | return priv->author_alias; |
|
36094
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
175 | } |
|
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
176 | |
|
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
177 | void |
|
36079
2e449140fe0b
Switch sending-im-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36077
diff
changeset
|
178 | purple_message_set_contents(PurpleMessage *msg, const gchar *cont) |
|
2e449140fe0b
Switch sending-im-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36077
diff
changeset
|
179 | { |
|
2e449140fe0b
Switch sending-im-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36077
diff
changeset
|
180 | g_object_set(msg, "contents", cont, NULL); |
|
2e449140fe0b
Switch sending-im-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36077
diff
changeset
|
181 | } |
|
2e449140fe0b
Switch sending-im-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36077
diff
changeset
|
182 | |
|
36076
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
183 | const gchar * |
|
36115
09387009bb17
Drop PurpleConversationMessage in favor of PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36108
diff
changeset
|
184 | purple_message_get_contents(const PurpleMessage *msg) |
|
36076
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
185 | { |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
186 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg); |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
187 | |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
188 | g_return_val_if_fail(priv != NULL, NULL); |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
189 | |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
190 | return priv->contents; |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
191 | } |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
192 | |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
193 | gboolean |
|
36115
09387009bb17
Drop PurpleConversationMessage in favor of PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36108
diff
changeset
|
194 | purple_message_is_empty(const PurpleMessage *msg) |
|
36076
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
195 | { |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
196 | const gchar *cont = purple_message_get_contents(msg); |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
197 | |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
198 | return (cont == NULL || cont[0] == '\0'); |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
199 | } |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
200 | |
|
36085
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
201 | void |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
202 | purple_message_set_time(PurpleMessage *msg, guint64 msgtime) |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
203 | { |
|
36092
cf0a11121049
Fix message flags
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36088
diff
changeset
|
204 | g_object_set(msg, "time", msgtime, NULL); |
|
36085
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
205 | } |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
206 | |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
207 | guint64 |
|
36115
09387009bb17
Drop PurpleConversationMessage in favor of PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36108
diff
changeset
|
208 | purple_message_get_time(const PurpleMessage *msg) |
|
36085
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
209 | { |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
210 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg); |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
211 | |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
212 | g_return_val_if_fail(priv != NULL, 0); |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
213 | |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
214 | return priv->msgtime; |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
215 | } |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
216 | |
|
36088
4c386387f6f3
Switch purple_conversation_write_message to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36086
diff
changeset
|
217 | void |
|
4c386387f6f3
Switch purple_conversation_write_message to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36086
diff
changeset
|
218 | purple_message_set_flags(PurpleMessage *msg, PurpleMessageFlags flags) |
|
4c386387f6f3
Switch purple_conversation_write_message to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36086
diff
changeset
|
219 | { |
|
36092
cf0a11121049
Fix message flags
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36088
diff
changeset
|
220 | g_object_set(msg, "flags", flags, NULL); |
|
36088
4c386387f6f3
Switch purple_conversation_write_message to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36086
diff
changeset
|
221 | } |
|
4c386387f6f3
Switch purple_conversation_write_message to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36086
diff
changeset
|
222 | |
|
36076
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
223 | PurpleMessageFlags |
|
36115
09387009bb17
Drop PurpleConversationMessage in favor of PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36108
diff
changeset
|
224 | purple_message_get_flags(const PurpleMessage *msg) |
|
36076
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
225 | { |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
226 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg); |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
227 | |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
228 | g_return_val_if_fail(priv != NULL, 0); |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
229 | |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
230 | return priv->flags; |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
231 | } |
|
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36075
diff
changeset
|
232 | |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
233 | /****************************************************************************** |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
234 | * Object stuff |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
235 | ******************************************************************************/ |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
236 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
237 | static void |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
238 | purple_message_init(GTypeInstance *instance, gpointer klass) |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
239 | { |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
240 | static guint max_id = 0; |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
241 | |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
242 | PurpleMessage *msg = PURPLE_MESSAGE(instance); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
243 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
244 | PURPLE_DBUS_REGISTER_POINTER(msg, PurpleMessage); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
245 | |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
246 | priv->id = ++max_id; |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
247 | g_hash_table_insert(messages, GINT_TO_POINTER(max_id), msg); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
248 | } |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
249 | |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
250 | static void |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
251 | purple_message_finalize(GObject *obj) |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
252 | { |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
253 | PurpleMessage *message = PURPLE_MESSAGE(obj); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
254 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(message); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
255 | |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
256 | g_free(priv->author); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
257 | g_free(priv->author_alias); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
258 | g_free(priv->recipient); |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
259 | g_free(priv->contents); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
260 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
261 | G_OBJECT_CLASS(parent_class)->finalize(obj); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
262 | } |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
263 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
264 | static void |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
265 | purple_message_get_property(GObject *object, guint par_id, GValue *value, |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
266 | GParamSpec *pspec) |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
267 | { |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
268 | PurpleMessage *message = PURPLE_MESSAGE(object); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
269 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(message); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
270 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
271 | switch (par_id) { |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
272 | case PROP_ID: |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
273 | g_value_set_uint(value, priv->id); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
274 | break; |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
275 | case PROP_AUTHOR: |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
276 | g_value_set_string(value, priv->author); |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
277 | break; |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
278 | case PROP_AUTHOR_ALIAS: |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
279 | g_value_set_string(value, priv->author_alias); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
280 | break; |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
281 | case PROP_RECIPIENT: |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
282 | g_value_set_string(value, priv->recipient); |
|
36094
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
283 | break; |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
284 | case PROP_CONTENTS: |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
285 | g_value_set_string(value, priv->contents); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
286 | break; |
|
36085
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
287 | case PROP_TIME: |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
288 | g_value_set_uint64(value, priv->msgtime); |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
289 | break; |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
290 | case PROP_FLAGS: |
|
36086
5e1693f7c0d5
Remove whisper completely, fix flags property in PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36085
diff
changeset
|
291 | g_value_set_flags(value, priv->flags); |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
292 | break; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
293 | default: |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
294 | G_OBJECT_WARN_INVALID_PROPERTY_ID(object, par_id, pspec); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
295 | break; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
296 | } |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
297 | } |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
298 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
299 | static void |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
300 | purple_message_set_property(GObject *object, guint par_id, const GValue *value, |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
301 | GParamSpec *pspec) |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
302 | { |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
303 | PurpleMessage *message = PURPLE_MESSAGE(object); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
304 | PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(message); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
305 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
306 | switch (par_id) { |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
307 | case PROP_AUTHOR: |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
308 | g_free(priv->author); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
309 | priv->author = g_strdup(g_value_get_string(value)); |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
310 | break; |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
311 | case PROP_AUTHOR_ALIAS: |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
312 | g_free(priv->author_alias); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
313 | priv->author_alias = g_strdup(g_value_get_string(value)); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
314 | break; |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
315 | case PROP_RECIPIENT: |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
316 | g_free(priv->recipient); |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
317 | priv->recipient = g_strdup(g_value_get_string(value)); |
|
36094
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
318 | break; |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
319 | case PROP_CONTENTS: |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
320 | g_free(priv->contents); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
321 | priv->contents = g_strdup(g_value_get_string(value)); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
322 | break; |
|
36085
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
323 | case PROP_TIME: |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
324 | priv->msgtime = g_value_get_uint64(value); |
|
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
325 | break; |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
326 | case PROP_FLAGS: |
|
36086
5e1693f7c0d5
Remove whisper completely, fix flags property in PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36085
diff
changeset
|
327 | priv->flags = g_value_get_flags(value); |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
328 | break; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
329 | default: |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
330 | G_OBJECT_WARN_INVALID_PROPERTY_ID(object, par_id, pspec); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
331 | break; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
332 | } |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
333 | } |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
334 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
335 | static void |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
336 | purple_message_class_init(PurpleMessageClass *klass) |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
337 | { |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
338 | GObjectClass *gobj_class = G_OBJECT_CLASS(klass); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
339 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
340 | parent_class = g_type_class_peek_parent(klass); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
341 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
342 | g_type_class_add_private(klass, sizeof(PurpleMessagePrivate)); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
343 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
344 | gobj_class->finalize = purple_message_finalize; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
345 | gobj_class->get_property = purple_message_get_property; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
346 | gobj_class->set_property = purple_message_set_property; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
347 | |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
348 | properties[PROP_ID] = g_param_spec_uint("id", |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
349 | "ID", "The session-unique message id", |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
350 | 0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
351 | properties[PROP_AUTHOR] = g_param_spec_string("author", |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
352 | "Author", "The username of the person, who sent the message.", |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
353 | NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
354 | properties[PROP_AUTHOR_ALIAS] = g_param_spec_string("author-alias", |
|
36094
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
355 | "Author's alias", "The alias of the person, who sent the " |
|
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
356 | "message. For outgoing messages, it's your alias.", |
|
dc5d15df3a88
PurpleMessage: add author's alias
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36092
diff
changeset
|
357 | NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
358 | properties[PROP_RECIPIENT] = g_param_spec_string("recipient", |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
359 | "Recipient", "The username of the recipient.", |
|
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36094
diff
changeset
|
360 | NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
361 | properties[PROP_CONTENTS] = g_param_spec_string("contents", |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
362 | "Contents", "The message text", |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
363 | NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
36085
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
364 | properties[PROP_TIME] = g_param_spec_uint64("time", |
|
36116
e1f9a50effbc
Fill comments for PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36115
diff
changeset
|
365 | "Time", "Message timestamp", |
|
36085
f4d353818589
Add time property to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36079
diff
changeset
|
366 | 0, G_MAXUINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
36086
5e1693f7c0d5
Remove whisper completely, fix flags property in PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36085
diff
changeset
|
367 | properties[PROP_FLAGS] = g_param_spec_flags("flags", |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
368 | "Flags", "Bitwise set of #PurpleMessageFlags flags", |
|
36086
5e1693f7c0d5
Remove whisper completely, fix flags property in PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36085
diff
changeset
|
369 | PURPLE_TYPE_MESSAGE_FLAGS, 0, |
|
5e1693f7c0d5
Remove whisper completely, fix flags property in PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36085
diff
changeset
|
370 | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
371 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
372 | g_object_class_install_properties(gobj_class, PROP_LAST, properties); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
373 | } |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
374 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
375 | GType |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
376 | purple_message_get_type(void) |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
377 | { |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
378 | static GType type = 0; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
379 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
380 | if (G_UNLIKELY(type == 0)) { |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
381 | static const GTypeInfo info = { |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
382 | .class_size = sizeof(PurpleMessageClass), |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
383 | .class_init = (GClassInitFunc)purple_message_class_init, |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
384 | .instance_size = sizeof(PurpleMessage), |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
385 | .instance_init = purple_message_init, |
|
36074
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
386 | }; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
387 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
388 | type = g_type_register_static(G_TYPE_OBJECT, |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
389 | "PurpleMessage", &info, 0); |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
390 | } |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
391 | |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
392 | return type; |
|
4f7b1fea3cd3
Initial implementation for PurpleMessage class
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
diff
changeset
|
393 | } |
|
36075
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
394 | |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
395 | void |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
396 | _purple_message_init(void) |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
397 | { |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
398 | messages = g_hash_table_new_full(g_direct_hash, g_direct_equal, |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
399 | NULL, g_object_unref); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
400 | } |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
401 | |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
402 | void |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
403 | _purple_message_uninit(void) |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
404 | { |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
405 | g_hash_table_destroy(messages); |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
406 | messages = NULL; |
|
dfb5988e053b
PurpleMessage: implement IDs and storage-by-id
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36074
diff
changeset
|
407 | } |