From 8d23af4449f0fa68db563f56ce4c4b5d677dd2f1 Mon Sep 17 00:00:00 2001 From: Artem Garmash Date: Mon, 19 Oct 2009 00:52:41 +0300 Subject: [PATCH] Display received time --- src/el-home-applet.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/el-home-applet.c b/src/el-home-applet.c index fe48da6..8b4ec0f 100644 --- a/src/el-home-applet.c +++ b/src/el-home-applet.c @@ -54,6 +54,7 @@ struct _ELHomeAppletPrivate GtkWidget *message; GtkWidget *icon; GtkWidget *unread; + GtkWidget *received; gint event_id; @@ -226,6 +227,30 @@ finalize (GObject *self) G_OBJECT_CLASS (el_home_applet_parent_class)->finalize (self); } +static gchar* +format_time (time_t t) +{ + static const guint RESULT_SIZE = 32; + + time_t now; + struct tm now_tm, t_tm; + const gchar *format = "%Y.%m.%d %T"; + gchar *result = g_malloc0 (RESULT_SIZE); + + now = time (NULL); + localtime_r (&now, &now_tm); + localtime_r (&t, &t_tm); + + if ((now_tm.tm_year == t_tm.tm_year) && + (now_tm.tm_mon == t_tm.tm_mon) && + (now_tm.tm_mday == t_tm.tm_mday)) + format = "%T"; + + strftime (result, RESULT_SIZE, format, &t_tm); + + return result; +} + static void show_event (ELHomeApplet *self, RTComElIter *it) { @@ -233,14 +258,18 @@ show_event (ELHomeApplet *self, RTComElIter *it) gchar *message = NULL; gchar *remote = NULL; + gchar *received = NULL; const gchar *icon_name = NULL; if (it && rtcom_el_iter_first (it)){ rtcom_el_iter_dup_string (it, "free-text", &message); if (message){ const gchar *service; + time_t received_t; rtcom_el_iter_get_int (it, "id", &priv->event_id); + if (rtcom_el_iter_get_int (it, "start-time", (gint*)&received_t)) + received = format_time (received_t); if(!rtcom_el_iter_dup_string (it, "remote-name", &remote)) rtcom_el_iter_dup_string (it, "remote-id", &remote); @@ -257,6 +286,8 @@ show_event (ELHomeApplet *self, RTComElIter *it) gtk_label_set_text (GTK_LABEL (priv->message), message); gtk_label_set_text (GTK_LABEL (priv->sender), remote); + gtk_label_set_text (GTK_LABEL (priv->received), received); + if (icon_name){ const gchar *current_icon_name; gtk_image_get_icon_name (GTK_IMAGE (priv->icon), @@ -526,6 +557,16 @@ el_home_applet_init (ELHomeApplet *self) MESSAGE_HEIGHT); gtk_widget_set_name (priv->message, "hildon-shadow-label"); + priv->received = gtk_label_new ("aewf aewf aewf awef"); + gtk_misc_set_alignment (GTK_MISC (priv->received), + 1.0f, + 0.5f); + gtk_widget_set_size_request (priv->received, + MESSAGE_WIDTH, + -1); + hildon_helper_set_logical_font (priv->received, "SmallSystemFont"); + gtk_widget_set_name (priv->received, "hildon-shadow-label"); + hbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), priv->unread, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), priv->icon, FALSE, FALSE, 0); @@ -534,6 +575,7 @@ el_home_applet_init (ELHomeApplet *self) vbox = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), priv->message, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox), priv->received, FALSE, FALSE, 0); align = gtk_alignment_new (0.5f, 0.0f, 1.0f, 1.0f); gtk_alignment_set_padding (GTK_ALIGNMENT (align), -- 1.7.9.5