r2619 - in trunk/src/target/OM-2007.2/applications/openmoko-today2: . libtaku src

chris at sita.openmoko.org chris at sita.openmoko.org
Fri Aug 3 13:54:24 CEST 2007


Author: chris
Date: 2007-08-03 13:54:21 +0200 (Fri, 03 Aug 2007)
New Revision: 2619

Added:
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.c
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.h
Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-today2/configure.ac
   trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-launcher-tile.c
   trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-launcher-tile.h
   trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-tile.c
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/Makefile.am
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-events-store.c
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-summary.c
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-summary.h
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h
Log:
- Synchronise with matchbox-desktop-2
- Sort rows with NULL components in the event-store to the top
- Put the 'no events/tasks' message in the treeview for a consistent look
- Add libmokojournal to dependencies
- Implement mokojournal summary box (missed calls/unread messages)


Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog	2007-08-03 11:54:21 UTC (rev 2619)
@@ -1,3 +1,35 @@
+2007-08-03  Chris Lord,,,  <chris at openedhand.com>
+
+	* libtaku/taku-launcher-tile.c: (taku_launcher_tile_finalize),
+	(reset_state), (taku_launcher_tile_clicked),
+	(taku_launcher_tile_for_desktop_file),
+	(taku_launcher_tile_get_filename):
+	* libtaku/taku-launcher-tile.h:
+	* libtaku/taku-tile.c: (taku_tile_clicked):
+	Synchronise with matchbox-desktop-2
+
+	* src/today-events-store.c: (today_events_store_objects_removed),
+	(today_events_store_compare):
+	Sort rows with NULL components to the top
+
+	* src/today-main.c: (today_create_home_page):
+	Create the journal box
+
+	* src/today-pim-summary.c: (today_pim_summary_show_notice),
+	(today_pim_summary_row_inserted_cb),
+	(today_pim_summary_row_deleted_cb), (today_pim_summary_box_new):
+	* src/today-pim-summary.h:
+	Put the 'no events/tasks' message in the treeview for a consistent look
+
+	* configure.ac:
+	Add libmokojournal to dependencies
+
+	* src/Makefile.am:
+	* src/today.h:
+	* src/today-pim-journal.h:
+	* src/today-pim-journal.c:
+	Implement mokojournal summary box (missed calls/unread messages)
+
 2007-08-01  Chris Lord,,,  <chris at openedhand.com>
 
 	* libtaku/taku-launcher-tile.c: (taku_launcher_tile_remove_group),

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/configure.ac
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/configure.ac	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/configure.ac	2007-08-03 11:54:21 UTC (rev 2619)
@@ -9,6 +9,7 @@
 LIBECAL_VERSION=1.4.2
 LIBGTK_VERSION=2.6.0
 LIBMOKOUI_VERSION=0.0.5
+LIBMOKOJOURNAL_VERSION=0.1.0
 
 AC_ISC_POSIX
 AC_PROG_CC
@@ -29,6 +30,7 @@
                    enable_sexy=false)
 
 PKG_CHECK_MODULES(MOKOUI, libmokoui2 >= $LIBMOKOUI_VERSION)
+PKG_CHECK_MODULES(MOKOJOURNAL, libmokojournal2 >= $LIBMOKOJOURNAL_VERSION)
 PKG_CHECK_MODULES(GTK, gtk+-2.0 >= $LIBGTK_VERSION)
 PKG_CHECK_MODULES(ECAL, libecal-1.2 >= $LIBECAL_VERSION)
 PKG_CHECK_MODULES(EBOOK, libebook-1.2 >= $LIBEBOOK_VERSION)

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-launcher-tile.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-launcher-tile.c	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-launcher-tile.c	2007-08-03 11:54:21 UTC (rev 2619)
@@ -30,6 +30,7 @@
 
 struct _TakuLauncherTilePrivate
 {
+  char *filename;
   GList *groups;
   LauncherData *data;
 };
@@ -110,14 +111,31 @@
     launcher_destroy (tile->priv->data);
   }
 
+  g_free (tile->priv->filename);
+
   G_OBJECT_CLASS (taku_launcher_tile_parent_class)->finalize (object);
 }
 
+/*
+ * Timeout callback to restore the state of the widget after the clicked state
+ * change.
+ */
+static gboolean
+reset_state (gpointer data)
+{
+  gtk_widget_set_state (GTK_WIDGET (data), GTK_STATE_NORMAL);
+  return FALSE;
+}
+
 static void
 taku_launcher_tile_clicked (TakuTile *tile)
 {
   TakuLauncherTile *launcher = TAKU_LAUNCHER_TILE (tile);
 
+  gtk_widget_set_state (GTK_WIDGET (tile), GTK_STATE_ACTIVE);
+
+  g_timeout_add (500, reset_state, tile);
+  
   launcher_start (GTK_WIDGET (tile), launcher->priv->data);
 }
 
@@ -207,9 +225,18 @@
 
   tile = (TakuLauncherTile*) taku_launcher_tile_new ();
   set_launcher_data (tile, data);
+  tile->priv->filename = g_strdup (filename);
   return (GtkWidget*) tile;
 }
 
+const char *
+taku_launcher_tile_get_filename (TakuLauncherTile *tile)
+{
+  g_return_val_if_fail (TAKU_IS_LAUNCHER_TILE (tile), NULL);
+  
+  return tile->priv->filename;
+}
+
 const char **
 taku_launcher_tile_get_categories (TakuLauncherTile *tile)
 {

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-launcher-tile.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-launcher-tile.h	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-launcher-tile.h	2007-08-03 11:54:21 UTC (rev 2619)
@@ -71,6 +71,8 @@
 
 GtkWidget * taku_launcher_tile_for_desktop_file (const char *filename);
 
+const char * taku_launcher_tile_get_filename (TakuLauncherTile *tile);
+
 const char ** taku_launcher_tile_get_categories (TakuLauncherTile *tile);
 
 void taku_launcher_tile_add_group (TakuLauncherTile *tile, TakuLauncherCategory *category);

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-tile.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-tile.c	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/taku-tile.c	2007-08-03 11:54:21 UTC (rev 2619)
@@ -100,17 +100,6 @@
 }
 
 /*
- * Timeout callback to restore the state of the widget after the clicked state
- * change.
- */
-static gboolean
-reset_state (gpointer data)
-{
-  gtk_widget_set_state (GTK_WIDGET (data), GTK_STATE_NORMAL);
-  return FALSE;
-}
-
-/*
  * The tile was clicked, so start the state animation and fire the signal.
  */
 static void
@@ -118,9 +107,6 @@
 {
   g_return_if_fail (TAKU_IS_TILE (tile));
 
-  gtk_widget_set_state (GTK_WIDGET (tile), GTK_STATE_ACTIVE);
-  g_timeout_add (500, reset_state, tile);
-
   g_signal_emit (tile, signals[CLICKED], 0);
 }
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/Makefile.am	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/Makefile.am	2007-08-03 11:54:21 UTC (rev 2619)
@@ -5,7 +5,7 @@
 	       -DDATADIR=\""$(datadir)"\" -D_GNU_SOURCE
 
 AM_CFLAGS    = -Wall -pedantic -std=c99 @GTK_CFLAGS@ @ECAL_CFLAGS@ \
-		@EBOOK_CFLAGS@ @MOKOUI_CFLAGS@
+		@EBOOK_CFLAGS@ @MOKOUI_CFLAGS@ @MOKOJOURNAL_CFLAGS@
 
 bin_PROGRAMS = openmoko-today
 
@@ -23,12 +23,14 @@
 	today-launcher.c		\
 	today-launcher.h		\
 	today-task-manager.c		\
-	today-task-manager.h
+	today-task-manager.h           \
+	today-pim-journal.c           \
+	today-pim-journal.h
 
 openmoko_today_LDADD  = $(top_builddir)/libkoto/libkoto.a 	\
 			$(top_builddir)/libtaku/libtaku.a	\
 			@GTK_LIBS@ @ECAL_LIBS@ @EBOOK_LIBS@ @SEXY_LIBS@ \
-			@SN_LIBS@ @MOKOUI_LIBS@
+			@SN_LIBS@ @MOKOUI_LIBS@ @MOKOJOURNAL_LIBS@
 
 MAINTAINERCLEANFILES  = config.h.in Makefile.in
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-events-store.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-events-store.c	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-events-store.c	2007-08-03 11:54:21 UTC (rev 2619)
@@ -186,7 +186,6 @@
 		
 #ifdef HAVE_ECALCOMPONENTID
 		ECalComponentId *id = uids->data;
-		/* FIXME: What happens with uid/rid here? */
 		uid = id->uid;
 #else
 		uid = uids->data;
@@ -278,10 +277,14 @@
 	gtk_tree_model_get (GTK_TREE_MODEL (store), b,
 		TODAY_EVENTS_STORE_COL_COMP, &comp2, -1);
 	
-	start1 = icalcomponent_get_dtstart (comp1);
-	start2 = icalcomponent_get_dtstart (comp2);
-	
-	return icaltime_compare (start1, start2);
+	/* Make sure inserted rows always sort before real rows */
+	if (comp1 && comp2) {
+		start1 = icalcomponent_get_dtstart (comp1);
+		start2 = icalcomponent_get_dtstart (comp2);
+		
+		return icaltime_compare (start1, start2);
+	} else if (comp1) return -1;
+	else return 1;
 }
 
 static void

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c	2007-08-03 11:54:21 UTC (rev 2619)
@@ -11,6 +11,7 @@
 #include "today.h"
 #include "today-utils.h"
 #include "today-pim-summary.h"
+#include "today-pim-journal.h"
 #include "today-launcher.h"
 #include "today-task-manager.h"
 
@@ -131,12 +132,13 @@
 	vbox = gtk_vbox_new (FALSE, 6);
 	gtk_container_add (GTK_CONTAINER (align), vbox);
 	gtk_widget_show_all (align);
-	/*data->message_box = today_header_box_new_with_markup (
-		"<b>Provider goes here</b>");
-	gtk_box_pack_start (GTK_BOX (vbox), data->message_box, FALSE, TRUE, 0);*/
 
-	data->summary_box = today_pim_summary_box_new ();
-	gtk_box_pack_start (GTK_BOX (vbox), data->summary_box, FALSE, TRUE, 0);
+	data->message_box = today_pim_journal_box_new (data);
+	gtk_box_pack_start (GTK_BOX (vbox), data->message_box, FALSE, TRUE, 0);
+	gtk_widget_show (data->message_box);
+	
+	data->summary_box = today_pim_summary_box_new (data);
+	gtk_box_pack_start (GTK_BOX (vbox), data->summary_box, FALSE, TRUE, 6);
 	gtk_widget_show (data->summary_box);
 	
 	return main_vbox;

Added: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.c	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.c	2007-08-03 11:54:21 UTC (rev 2619)
@@ -0,0 +1,138 @@
+
+#include "today-pim-journal.h"
+#include <glib/gi18n.h>
+#include <moko-stock.h>
+
+enum {
+	COLUMN_ICON,
+	COLUMN_TEXT,
+	COLUMN_LAST
+};
+
+static void
+today_pim_journal_update_messages (TodayData *data)
+{
+	gchar *message;
+
+	if (data->n_unread_messages > 0)
+		message = g_strdup_printf (_("%d new messages"),
+			data->n_unread_messages);
+	else
+		message = g_strdup_printf (_("No new messages"));
+
+	gtk_list_store_set (GTK_LIST_STORE (data->journal_model),
+		&data->unread_messages, COLUMN_TEXT,
+		message, -1);
+	g_free (message);
+
+	if (data->n_missed_calls > 0)
+		message = g_strdup_printf (_("%d missed calls"),
+			data->n_missed_calls);
+	else
+		message = g_strdup_printf (_("No missed calls"));
+	gtk_list_store_set (GTK_LIST_STORE (data->journal_model),
+		&data->missed_calls, COLUMN_TEXT,
+		message, -1);
+	g_free (message);
+}
+
+static void
+today_pim_journal_entry_added_cb (MokoJournal *journal,
+				  const MokoJournalEntry *entry,
+				  TodayData *data)
+{
+	switch (moko_journal_entry_get_entry_type (entry)) {
+	    case SMS_JOURNAL_ENTRY :
+	    case EMAIL_JOURNAL_ENTRY :
+		data->n_unread_messages ++;
+		today_pim_journal_update_messages (data);
+		break;
+	    case VOICE_JOURNAL_ENTRY :
+		data->n_missed_calls ++;
+		today_pim_journal_update_messages (data);
+		break;
+	    default :
+		break;
+	}
+}
+
+static void
+today_pim_journal_entry_removed_cb (MokoJournal *journal,
+				    const MokoJournalEntry *entry,
+				    TodayData *data)
+{
+	switch (moko_journal_entry_get_entry_type (entry)) {
+	    case SMS_JOURNAL_ENTRY :
+	    case EMAIL_JOURNAL_ENTRY :
+		data->n_unread_messages --;
+		today_pim_journal_update_messages (data);
+		break;
+	    case VOICE_JOURNAL_ENTRY :
+		data->n_missed_calls --;
+		today_pim_journal_update_messages (data);
+		break;
+	    default :
+		break;
+	}
+}
+
+GtkWidget *
+today_pim_journal_box_new (TodayData *data)
+{
+	GtkWidget *treeview;
+	GtkCellRenderer *text_renderer, *pixbuf_renderer;
+	GtkTreeViewColumn *column;	
+	
+	data->journal_model = gtk_list_store_new (COLUMN_LAST,
+		G_TYPE_STRING, G_TYPE_STRING);
+	
+	gtk_list_store_insert_with_values (data->journal_model,
+		&data->missed_calls,
+		0, COLUMN_ICON, MOKO_STOCK_CALL_MISSED,
+		COLUMN_TEXT, _("No missed calls"), -1);
+
+	gtk_list_store_insert_with_values (data->journal_model,
+		&data->unread_messages,
+		1, COLUMN_ICON, "openmoko-messages",
+		COLUMN_TEXT, _("No new messages"), -1);
+	
+	treeview = gtk_tree_view_new_with_model (
+		GTK_TREE_MODEL (data->journal_model));
+	gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), FALSE);
+
+	text_renderer = gtk_cell_renderer_text_new ();
+	pixbuf_renderer = gtk_cell_renderer_pixbuf_new ();
+
+	column = gtk_tree_view_column_new ();
+	gtk_tree_view_column_set_title (column, "OpenMoko");
+
+	gtk_tree_view_column_pack_start (column,
+		pixbuf_renderer, FALSE);
+	gtk_tree_view_column_pack_end (column,
+		text_renderer, TRUE);
+
+	gtk_tree_view_column_add_attribute (column, pixbuf_renderer,
+		"icon-name", COLUMN_ICON);
+	gtk_tree_view_column_add_attribute (column, text_renderer,
+		"text", COLUMN_TEXT);
+	
+	gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+
+	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), TRUE);
+	
+	/* Open up journal and connect to signals to find out about missed
+	 * calls and new messages.
+	 * TODO: Revise this when libmokojournal has support for 'new' missed
+	 *       calls and changes.
+	 */
+	data->n_missed_calls = 0;
+	data->n_unread_messages = 0;
+	data->journal = moko_journal_open_default ();
+	g_signal_connect (G_OBJECT (data->journal), "entry_added",
+		G_CALLBACK (today_pim_journal_entry_added_cb), data);
+	g_signal_connect (G_OBJECT (data->journal), "entry_removed",
+		G_CALLBACK (today_pim_journal_entry_removed_cb), data);
+	moko_journal_load_from_storage (data->journal);
+	
+	return treeview;
+}

Added: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.h	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.h	2007-08-03 11:54:21 UTC (rev 2619)
@@ -0,0 +1,10 @@
+
+#ifndef TODAY_PIM_JOURNAL_H
+#define TODAY_PIM_JOURNAL_H
+
+#include <gtk/gtk.h>
+#include "today.h"
+
+GtkWidget *today_pim_journal_box_new (TodayData *data);
+
+#endif

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-summary.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-summary.c	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-summary.c	2007-08-03 11:54:21 UTC (rev 2619)
@@ -6,12 +6,8 @@
 #include "today-pim-summary.h"
 #include "today-events-store.h"
 #include "today-tasks-store.h"
+#include "today.h"
 
-typedef struct {
-	GtkWidget *notice;
-	int rows;
-} TodayPimSummaryData;
-
 /**
  * today_update_date ()
  *
@@ -53,14 +49,32 @@
 }
 
 static void
+today_pim_summary_show_notice (TodayData *data)
+{
+	/* Add notice */
+	data->notice_visible = TRUE;
+	gtk_list_store_insert_with_values (
+		GTK_LIST_STORE (data->events_model),
+		&data->notice, 0,
+		TODAY_EVENTS_STORE_COL_COMP, NULL,
+		TODAY_EVENTS_STORE_COL_UID, NULL,
+		TODAY_EVENTS_STORE_COL_SUMMARY,
+		_("No pending events or tasks"),
+		-1);
+}
+
+static void
 today_pim_summary_row_inserted_cb (GtkTreeModel *tree_model,
 				   GtkTreePath *path, GtkTreeIter *iter,
 				   gpointer user_data)
 {
-	TodayPimSummaryData *data = (TodayPimSummaryData *)user_data;
+	TodayData *data = (TodayData *)user_data;
 	data->rows ++;
-	if (data->rows == 1) {
-		gtk_widget_hide (data->notice);
+	if ((data->notice_visible) && (data->rows == 2)) {
+		/* Remove notice */
+		data->notice_visible = FALSE;
+		gtk_list_store_remove (GTK_LIST_STORE (data->events_model),
+			&data->notice);
 	}
 }
 
@@ -68,10 +82,10 @@
 today_pim_summary_row_deleted_cb (GtkTreeModel *tree_model,
 				  GtkTreePath *path, gpointer user_data)
 {
-	TodayPimSummaryData *data = (TodayPimSummaryData *)user_data;
+	TodayData *data = (TodayData *)user_data;
 	data->rows --;
-	if (data->rows < 1) {
-		gtk_widget_show (data->notice);
+	if ((data->rows < 1) && (!data->notice_visible)) {
+		today_pim_summary_show_notice (data);
 	}
 }
 
@@ -91,25 +105,26 @@
 }
 
 GtkWidget *
-today_pim_summary_box_new ()
+today_pim_summary_box_new (TodayData *data)
 {
-	GtkTreeModel *events_model, *tasks_model, *tasks_sort_model;
-	GtkWidget *vbox, *events_tree, *tasks_tree, *label;
+	GtkTreeModel *tasks_model;
+	GtkWidget *vbox, *events_tree, *tasks_tree;
 	GtkCellRenderer *renderer;
 	GtkTreeViewColumn *column;
-	TodayPimSummaryData *data;
 
-	data = g_new0 (TodayPimSummaryData, 1);
-	events_model = GTK_TREE_MODEL (today_events_store_new ());
+	data->rows = 0;
+	data->events_model = GTK_TREE_MODEL (today_events_store_new ());
 	tasks_model = GTK_TREE_MODEL (today_tasks_store_new ());
-	tasks_sort_model = gtk_tree_model_filter_new (tasks_model, NULL);
-	events_tree = gtk_tree_view_new_with_model (events_model);
-	tasks_tree = gtk_tree_view_new_with_model (tasks_sort_model);
+	data->tasks_model = gtk_tree_model_filter_new (tasks_model, NULL);
+	events_tree = gtk_tree_view_new_with_model (data->events_model);
+	tasks_tree = gtk_tree_view_new_with_model (data->tasks_model);
+	gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (events_tree), FALSE);
+	gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (tasks_tree), FALSE);
 	gtk_widget_show (events_tree);
 	gtk_widget_show (tasks_tree);
 	
 	gtk_tree_model_filter_set_visible_func (
-		GTK_TREE_MODEL_FILTER (tasks_sort_model),
+		GTK_TREE_MODEL_FILTER (data->tasks_model),
 		today_pim_summary_visible_cb, NULL, NULL);
 	
 	renderer = gtk_cell_renderer_text_new ();
@@ -137,32 +152,20 @@
 	g_timeout_add (60 * 1000, (GSourceFunc)
 		today_pim_summary_update_date, column);
 	
-	label = gtk_label_new (_("No pending events or tasks"));
-	gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
-	gtk_misc_set_padding (GTK_MISC (label), 4, 4);
-	gtk_widget_show (label);
-	data->notice = gtk_event_box_new ();
-	gtk_container_add (GTK_CONTAINER (data->notice), label);
-	gtk_widget_show (data->notice);
-	
 	vbox = gtk_vbox_new (FALSE, 0);
 	gtk_box_pack_start (GTK_BOX (vbox), events_tree, FALSE, TRUE, 0);
 	gtk_box_pack_start (GTK_BOX (vbox), tasks_tree, FALSE, TRUE, 0);
-	gtk_box_pack_start (GTK_BOX (vbox), data->notice, FALSE, TRUE, 0);
 	
-	gtk_widget_modify_bg (data->notice, GTK_STATE_NORMAL,
-		&events_tree->style->base[GTK_STATE_NORMAL]);
-
-	g_signal_connect (G_OBJECT (events_model), "row-inserted",
+	g_signal_connect (G_OBJECT (data->events_model), "row-inserted",
 		G_CALLBACK (today_pim_summary_row_inserted_cb), data);
 	g_signal_connect (G_OBJECT (tasks_model), "row-inserted",
 		G_CALLBACK (today_pim_summary_row_inserted_cb), data);
-	g_signal_connect (G_OBJECT (events_model), "row-deleted",
+	g_signal_connect (G_OBJECT (data->events_model), "row-deleted",
 		G_CALLBACK (today_pim_summary_row_deleted_cb), data);
 	g_signal_connect (G_OBJECT (tasks_model), "row-deleted",
 		G_CALLBACK (today_pim_summary_row_deleted_cb), data);
-	g_signal_connect_swapped (G_OBJECT (vbox), "destroy",
-		G_CALLBACK (g_free), data);
+	
+	today_pim_summary_show_notice (data);
 
 	return vbox;
 }

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-summary.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-summary.h	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-summary.h	2007-08-03 11:54:21 UTC (rev 2619)
@@ -3,7 +3,8 @@
 #define TODAY_PIM_SUMMARY_H
 
 #include <gtk/gtk.h>
+#include "today.h"
 
-GtkWidget *today_pim_summary_box_new ();
+GtkWidget *today_pim_summary_box_new (TodayData *data);
 
 #endif

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h	2007-08-03 11:52:37 UTC (rev 2618)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h	2007-08-03 11:54:21 UTC (rev 2619)
@@ -4,11 +4,10 @@
 
 #include <gtk/gtk.h>
 #include <libtaku/taku-launcher-tile.h>
+#include <moko-journal.h>
 
 typedef struct {
-	/* UI vars */
-	
-	/* Main */
+	/* Home */
 	GtkWidget *window;
 	GtkWidget *notebook;
 	GtkWidget *home_toolbar;
@@ -19,8 +18,19 @@
 	GtkToolItem *messages_button;
 	GtkToolItem *dates_button;
 	
-	/* Misc. vars */
+	GtkTreeModel *events_model;
+	GtkTreeModel *tasks_model;
+	GtkTreeIter notice;
+	gboolean notice_visible;
+	int rows;
 	
+	MokoJournal *journal;
+	GtkListStore *journal_model;
+	GtkTreeIter missed_calls;
+	gint n_missed_calls;
+	GtkTreeIter unread_messages;
+	gint n_unread_messages;
+
 	/* App launcher */
 	GList *categories;
 	GtkWidget *launcher_table;





More information about the commitlog mailing list