pidgin/pidgin

Add time property to PurpleMessage

2014-05-22, Tomasz Wasilczyk
f4d353818589
Parents 2172bd6dad3e
Children 5e1693f7c0d5
Add time property to PurpleMessage
--- a/libpurple/message.c Thu May 22 18:33:12 2014 +0200
+++ b/libpurple/message.c Thu May 22 19:09:10 2014 +0200
@@ -33,6 +33,7 @@
guint id;
gchar *who;
gchar *contents;
+ guint64 msgtime;
PurpleMessageFlags flags;
} PurpleMessagePrivate;
@@ -42,6 +43,7 @@
PROP_ID,
PROP_WHO,
PROP_CONTENTS,
+ PROP_TIME,
PROP_FLAGS,
PROP_LAST
};
@@ -63,6 +65,7 @@
"who", who,
"contents", contents,
"flags", flags,
+ "time", (guint64)time(NULL),
NULL);
}
@@ -118,6 +121,26 @@
return (cont == NULL || cont[0] == '\0');
}
+void
+purple_message_set_time(PurpleMessage *msg, guint64 msgtime)
+{
+ PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+
+ g_return_if_fail(priv != NULL);
+
+ priv->msgtime = msgtime;
+}
+
+guint64
+purple_message_get_time(PurpleMessage *msg)
+{
+ PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+
+ g_return_val_if_fail(priv != NULL, 0);
+
+ return priv->msgtime;
+}
+
PurpleMessageFlags
purple_message_get_flags(PurpleMessage *msg)
{
@@ -174,6 +197,9 @@
case PROP_CONTENTS:
g_value_set_string(value, priv->contents);
break;
+ case PROP_TIME:
+ g_value_set_uint64(value, priv->msgtime);
+ break;
case PROP_FLAGS:
g_value_set_uint(value, priv->flags);
break;
@@ -199,6 +225,9 @@
g_free(priv->contents);
priv->contents = g_strdup(g_value_get_string(value));
break;
+ case PROP_TIME:
+ priv->msgtime = g_value_get_uint64(value);
+ break;
case PROP_FLAGS:
priv->flags = g_value_get_uint(value);
break;
@@ -232,6 +261,9 @@
properties[PROP_CONTENTS] = g_param_spec_string("contents",
"Contents", "The message text",
NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ properties[PROP_TIME] = g_param_spec_uint64("time",
+ "Time", "Message time",
+ 0, G_MAXUINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
/* XXX: it should be spec_enum, but PurpleMessageFlags isn't
* gobjectified (yet) */
properties[PROP_FLAGS] = g_param_spec_uint("flags",
--- a/libpurple/message.h Thu May 22 18:33:12 2014 +0200
+++ b/libpurple/message.h Thu May 22 19:09:10 2014 +0200
@@ -104,6 +104,12 @@
gboolean
purple_message_is_empty(PurpleMessage *msg);
+void
+purple_message_set_time(PurpleMessage *msg, guint64 msgtime);
+
+guint64
+purple_message_get_time(PurpleMessage *msg);
+
PurpleMessageFlags
purple_message_get_flags(PurpleMessage *msg);