Display received time
authorArtem Garmash <artemgarmash@gmail.com>
Sun, 18 Oct 2009 21:52:41 +0000 (00:52 +0300)
committerArtem Garmash <artem.garmash@nokia.com>
Sun, 27 Jun 2010 19:13:39 +0000 (22:13 +0300)
src/el-home-applet.c

index fe48da6..8b4ec0f 100644 (file)
@@ -54,6 +54,7 @@ struct _ELHomeAppletPrivate
         GtkWidget *message;
         GtkWidget *icon;
         GtkWidget *unread;
         GtkWidget *message;
         GtkWidget *icon;
         GtkWidget *unread;
+        GtkWidget *received;
 
         gint       event_id;
 
 
         gint       event_id;
 
@@ -226,6 +227,30 @@ finalize (GObject *self)
         G_OBJECT_CLASS (el_home_applet_parent_class)->finalize (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)
 {
 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 *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;
         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);
 
                         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);
 
                         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->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),
         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");
 
                                      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);
         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);
         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),
 
         align = gtk_alignment_new (0.5f, 0.0f, 1.0f, 1.0f);
         gtk_alignment_set_padding (GTK_ALIGNMENT (align),