Send commitlog mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
        [EMAIL PROTECTED]

You can reach the person managing the list at
        [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:

   1. r2619 - in
      trunk/src/target/OM-2007.2/applications/openmoko-today2: .
      libtaku src ([EMAIL PROTECTED])
   2. r2620 - in
      trunk/src/target/OM-2007.2/applications/openmoko-dialer2: . src
      ([EMAIL PROTECTED])
   3. r2621 -
      trunk/src/target/OM-2007.2/artwork/themes/openmoko-standard-2/gtk-2.0
      ([EMAIL PROTECTED])
   4. r2622 - in
      trunk/src/target/OM-2007.2/applications/openmoko-today2: .
      libtaku src ([EMAIL PROTECTED])
--- Begin Message ---
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,,,  <[EMAIL PROTECTED]>
+
+       * 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,,,  <[EMAIL PROTECTED]>
 
        * 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;




--- End Message ---
--- Begin Message ---
Author: njp
Date: 2007-08-03 15:01:49 +0200 (Fri, 03 Aug 2007)
New Revision: 2620

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-contacts.c
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer.c
Log:
2007-08-03  Neil J. Patel  <[EMAIL PROTECTED]>

        * src/moko-contacts.c: (moko_contacts_lookup):
        Check entry is valid before performing operations on it.

        * src/moko-dialer.c: (on_incoming_clip), (moko_dialer_dispose):
        Make sure to write to the journal on dispose.

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog  
2007-08-03 11:54:21 UTC (rev 2619)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog  
2007-08-03 13:01:49 UTC (rev 2620)
@@ -1,5 +1,13 @@
 2007-08-03  Neil J. Patel  <[EMAIL PROTECTED]>
 
+       * src/moko-contacts.c: (moko_contacts_lookup):
+       Check entry is valid before performing operations on it.
+
+       * src/moko-dialer.c: (on_incoming_clip), (moko_dialer_dispose):
+       Make sure to write to the journal on dispose.
+
+2007-08-03  Neil J. Patel  <[EMAIL PROTECTED]>
+
        * src/moko-dialer.c: (on_keypad_dial_clicked),
        (on_talking_accept_call), (on_talking_reject_call),
        (on_incoming_call), (on_incoming_clip), (on_call_progress_changed):

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-contacts.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-contacts.c    
    2007-08-03 11:54:21 UTC (rev 2619)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-contacts.c    
    2007-08-03 13:01:49 UTC (rev 2620)
@@ -89,7 +89,7 @@
   
   entry =  g_hash_table_lookup (priv->prefixes, number);
 
-  if (!GDK_IS_PIXBUF (entry->contact->photo))
+  if (entry && !GDK_IS_PIXBUF (entry->contact->photo))
     moko_contacts_get_photo (contacts, entry->contact);
 
   return entry;

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer.c  
2007-08-03 11:54:21 UTC (rev 2619)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer.c  
2007-08-03 13:01:49 UTC (rev 2620)
@@ -448,7 +448,7 @@
   last = g_strdup (number);
   timestamp = GDK_CURRENT_TIME;
   
-  entry = moko_contacts_lookup (priv->contacts, number);
+  entry = moko_contacts_lookup (moko_contacts_get_default (), number);
   moko_talking_set_clip (MOKO_TALKING (priv->talking), number, entry);
 
   /* Add the info to the journal entry */
@@ -581,6 +581,7 @@
   priv = dialer->priv;
 
   /* Close journal */
+  moko_journal_write_to_storage (priv->journal);
   moko_journal_close (priv->journal);
 
   /* Free contacts list */




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-08-03 15:43:10 +0200 (Fri, 03 Aug 2007)
New Revision: 2621

Modified:
   trunk/src/target/OM-2007.2/artwork/themes/openmoko-standard-2/gtk-2.0/gtkrc
Log:
* Disable icons in menus and buttons


Modified: 
trunk/src/target/OM-2007.2/artwork/themes/openmoko-standard-2/gtk-2.0/gtkrc
===================================================================
--- trunk/src/target/OM-2007.2/artwork/themes/openmoko-standard-2/gtk-2.0/gtkrc 
2007-08-03 13:01:49 UTC (rev 2620)
+++ trunk/src/target/OM-2007.2/artwork/themes/openmoko-standard-2/gtk-2.0/gtkrc 
2007-08-03 13:43:10 UTC (rev 2621)
@@ -1,5 +1,8 @@
 gtk-icon-sizes = 
"gtk-button=32,32:gtk-small-toolbar=48,48:gtk-large-toolbar=48,48"
 
+gtk_button_images = 0
+gtk_menu_images = 0
+
 style "moko-window-default" {
 
     bg[NORMAL]        = "#e5e5e5" #




--- End Message ---
--- Begin Message ---
Author: chris
Date: 2007-08-03 16:08:48 +0200 (Fri, 03 Aug 2007)
New Revision: 2622

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
   
trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/launcher-util.c
   
trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/launcher-util.h
   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-journal.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-utils.c
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-utils.h
Log:
Launch the appropriate apps when clicking the summaries on the home page


Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog   
2007-08-03 13:43:10 UTC (rev 2621)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog   
2007-08-03 14:08:48 UTC (rev 2622)
@@ -1,5 +1,28 @@
 2007-08-03  Chris Lord,,,  <[EMAIL PROTECTED]>
 
+       * libtaku/launcher-util.c: (launcher_start):
+       * libtaku/launcher-util.h:
+       Make the LauncherData const, it isn't changed
+
+       * src/today-main.c: (today_dial_button_clicked_cb),
+       (today_contacts_button_clicked_cb),
+       (today_messages_button_clicked_cb),
+       (today_dates_button_clicked_cb), (main):
+       * src/today-pim-journal.c: (today_pim_journal_header_clicked_cb),
+       (today_pim_journal_selection_changed_cb),
+       (today_pim_journal_box_new):
+       * src/today-pim-summary.c: (today_pim_summary_header_clicked_cb),
+       (today_pim_summary_events_selection_changed_cb),
+       (today_pim_summary_tasks_selection_changed_cb),
+       (today_pim_summary_box_new):
+       Launch the appropriate apps when clicking the summaries on the home page
+
+       * src/today-utils.c: (today_get_launcher):
+       * src/today-utils.h:
+       Make a global LauncherData filling convenience function
+
+2007-08-03  Chris Lord,,,  <[EMAIL PROTECTED]>
+
        * libtaku/taku-launcher-tile.c: (taku_launcher_tile_finalize),
        (reset_state), (taku_launcher_tile_clicked),
        (taku_launcher_tile_for_desktop_file),

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/launcher-util.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/launcher-util.c 
    2007-08-03 13:43:10 UTC (rev 2621)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/launcher-util.c 
    2007-08-03 14:08:48 UTC (rev 2622)
@@ -289,7 +289,7 @@
 
 /* TODO: optionally link to GtkUnique and directly handle that? */
 void
-launcher_start (GtkWidget *widget, LauncherData *data)
+launcher_start (GtkWidget *widget, const LauncherData *data)
 {
   GError *error = NULL;
 #ifdef USE_LIBSN

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/launcher-util.h
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/launcher-util.h 
    2007-08-03 13:43:10 UTC (rev 2621)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-today2/libtaku/launcher-util.h 
    2007-08-03 14:08:48 UTC (rev 2622)
@@ -16,6 +16,9 @@
  * Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
+#ifndef HAVE_LAUNCHER_UTIL_H
+#define HAVE_LAUNCHER_UTIL_H
+
 #include <glib.h>
 #include <gtk/gtkicontheme.h>
 #include <gtk/gtkwidget.h>
@@ -36,8 +39,10 @@
 
 LauncherData *launcher_parse_desktop_file (const char *filename, GError 
**error);
 
-void launcher_start (GtkWidget *widget, LauncherData *data);
+void launcher_start (GtkWidget *widget, const LauncherData *data);
 
 char * launcher_get_icon (GtkIconTheme *icon_theme, LauncherData *data, int 
size);
 
 void launcher_destroy (LauncherData *data);
+
+#endif

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 13:43:10 UTC (rev 2621)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c    
2007-08-03 14:08:48 UTC (rev 2622)
@@ -32,47 +32,32 @@
                "tab-expand", TRUE, NULL);
 }
 
-/* TODO: Make this less nasty */
-static LauncherData launcher_data;
 static void
-today_fill_launcher (const gchar *exec, gboolean use_sn, gboolean single)
-{
-       if (launcher_data.argv) g_free (launcher_data.argv);
-       launcher_data.argv = exec_to_argv (exec);
-       launcher_data.name = (gchar *)exec;
-       launcher_data.description = "";
-       launcher_data.icon = NULL;
-       launcher_data.categories = (char *[]){ "" };
-       launcher_data.use_sn = use_sn;
-       launcher_data.single_instance = single;
-}
-
-static void
 today_dial_button_clicked_cb (GtkToolButton *button, TodayData *data)
 {
-       today_fill_launcher ("openmoko-dialer", TRUE, TRUE);
-       launcher_start (data->window, &launcher_data);
+       launcher_start (data->window, today_get_launcher (
+               "openmoko-dialer -s", TRUE, TRUE));
 }
 
 static void
 today_contacts_button_clicked_cb (GtkToolButton *button, TodayData *data)
 {
-       today_fill_launcher ("openmoko-contacts", TRUE, TRUE);
-       launcher_start (data->window, &launcher_data);
+       launcher_start (data->window, today_get_launcher (
+               "openmoko-contacts", TRUE, TRUE));
 }
 
 static void
 today_messages_button_clicked_cb (GtkToolButton *button, TodayData *data)
 {
-       today_fill_launcher ("openmoko-messages", TRUE, TRUE);
-       launcher_start (data->window, &launcher_data);
+       launcher_start (data->window, today_get_launcher (
+               "openmoko-messages", TRUE, TRUE));
 }
 
 static void
 today_dates_button_clicked_cb (GtkToolButton *button, TodayData *data)
 {
-       today_fill_launcher ("dates", TRUE, TRUE);
-       launcher_start (data->window, &launcher_data);
+       launcher_start (data->window, today_get_launcher (
+               "dates", TRUE, TRUE));
 }
 
 static GtkWidget *
@@ -220,8 +205,6 @@
        }
 #endif
        
-       launcher_data.argv = NULL;
-       
        /* Show and start */
        gtk_widget_show (data.window);
        gtk_main ();

Modified: 
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 13:43:10 UTC (rev 2621)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.c 
    2007-08-03 14:08:48 UTC (rev 2622)
@@ -1,7 +1,9 @@
 
-#include "today-pim-journal.h"
 #include <glib/gi18n.h>
 #include <moko-stock.h>
+#include <libtaku/launcher-util.h>
+#include "today-utils.h"
+#include "today-pim-journal.h"
 
 enum {
        COLUMN_ICON,
@@ -76,6 +78,25 @@
        }
 }
 
+static void
+today_pim_journal_header_clicked_cb (GtkTreeViewColumn *column, TodayData 
*data)
+{
+       /* TODO: Maybe just launch dialer normally here? */
+       launcher_start (data->window, today_get_launcher (
+               "openmoko-dialer -m", TRUE, TRUE));
+}
+
+static void
+today_pim_journal_selection_changed_cb (GtkTreeSelection *selection,
+                                       TodayData *data)
+{
+       if (gtk_tree_selection_count_selected_rows (selection)) {
+               gtk_tree_selection_unselect_all (selection);
+               launcher_start (data->window, today_get_launcher (
+                       "openmoko-dialer -m", TRUE, TRUE));
+       }
+}
+
 GtkWidget *
 today_pim_journal_box_new (TodayData *data)
 {
@@ -119,7 +140,14 @@
        gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
 
        gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), TRUE);
+       gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW (treeview), TRUE);
        
+       g_signal_connect (G_OBJECT (column), "clicked",
+               G_CALLBACK (today_pim_journal_header_clicked_cb), data);
+       g_signal_connect (G_OBJECT (gtk_tree_view_get_selection (treeview)),
+               "changed", G_CALLBACK (today_pim_journal_selection_changed_cb),
+               data);
+       
        /* 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

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 13:43:10 UTC (rev 2621)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-summary.c 
    2007-08-03 14:08:48 UTC (rev 2622)
@@ -3,6 +3,8 @@
 #include <gtk/gtk.h>
 #include <libkoto/koto-task.h>
 #include <libkoto/koto-task-view.h>
+#include <libtaku/launcher-util.h>
+#include "today-utils.h"
 #include "today-pim-summary.h"
 #include "today-events-store.h"
 #include "today-tasks-store.h"
@@ -104,6 +106,34 @@
                "strikethrough", done, NULL);
 }
 
+static void
+today_pim_summary_header_clicked_cb (GtkTreeViewColumn *column, TodayData 
*data)
+{
+       g_debug ("TODO: App to set time/date");
+}
+
+static void
+today_pim_summary_events_selection_changed_cb (GtkTreeSelection *selection,
+                                              TodayData *data)
+{
+       if (gtk_tree_selection_count_selected_rows (selection)) {
+               gtk_tree_selection_unselect_all (selection);
+               launcher_start (data->window, today_get_launcher (
+                       "openmoko-contacts", TRUE, TRUE));
+       }
+}
+
+static void
+today_pim_summary_tasks_selection_changed_cb (GtkTreeSelection *selection,
+                                              TodayData *data)
+{
+       if (gtk_tree_selection_count_selected_rows (selection)) {
+               gtk_tree_selection_unselect_all (selection);
+               launcher_start (data->window, today_get_launcher (
+                       "openmoko-tasks", TRUE, TRUE));
+       }
+}
+
 GtkWidget *
 today_pim_summary_box_new (TodayData *data)
 {
@@ -147,6 +177,7 @@
                renderer, "text", TODAY_EVENTS_STORE_COL_SUMMARY, NULL);
        gtk_tree_view_insert_column (GTK_TREE_VIEW (events_tree), column, 0);   
        gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (events_tree), TRUE);
+       gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW (events_tree), TRUE);
 
        today_pim_summary_update_date (column);
        g_timeout_add (60 * 1000, (GSourceFunc)
@@ -165,6 +196,15 @@
        g_signal_connect (G_OBJECT (tasks_model), "row-deleted",
                G_CALLBACK (today_pim_summary_row_deleted_cb), data);
        
+       g_signal_connect (G_OBJECT (column), "clicked",
+               G_CALLBACK (today_pim_summary_header_clicked_cb), data);
+       g_signal_connect (G_OBJECT (gtk_tree_view_get_selection (
+               GTK_TREE_VIEW (events_tree))), "changed", G_CALLBACK (
+                       today_pim_summary_events_selection_changed_cb), data);
+       g_signal_connect (G_OBJECT (gtk_tree_view_get_selection (
+               GTK_TREE_VIEW (tasks_tree))), "changed", G_CALLBACK (
+                       today_pim_summary_tasks_selection_changed_cb), data);
+
        today_pim_summary_show_notice (data);
 
        return vbox;

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-utils.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-utils.c   
2007-08-03 13:43:10 UTC (rev 2621)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-utils.c   
2007-08-03 14:08:48 UTC (rev 2622)
@@ -21,224 +21,11 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-/**
- * e_cal_component_list_free:
- * @list: the list ECalComooment to free
- *
- * Free a list of ECalComponent
- */
 #include <string.h>
+#include <gtk/gtk.h>
+#include <libtaku/launcher-util.h>
 #include "today-utils.h"
-#include <libical/icalcomponent.h>
 
-#define LOG_ERROR \
-g_warning ("Got error '%s', code '%d'", \
-           error->message, error->code);
-
-#define FREE_ERROR g_error_free (error) ; error = NULL ;
-
-static ECal *calendar_db = NULL;
-static ECal *tasks_db = NULL;
-
-void
-e_cal_component_list_free (GList * list)
-{
-  GList *cur = NULL;
-
-  for (cur = list; cur; cur = cur->next)
-  {
-    /*if an element of the list is not of type ECalComponent, leak it */
-    if (cur->data && E_IS_CAL_COMPONENT (cur->data))
-    {
-      g_object_unref (G_OBJECT (cur->data));
-      cur->data = NULL;
-    }
-    else
-    {
-      g_warning ("cur->data is not of type ECalComponent !");
-    }
-  }
-  g_list_free (list);
-}
-
-/*
- * if the timetype is today, then only display it's hour part,
- * without the seconds
- * If it's not today, then only display it's date part, without the year
- */
-gchar*
-icaltime_to_pretty_string (const icaltimetype *timetype)
-{
-#define TMP_STR_LEN 10
-    icaltimetype today ;
-    gboolean     hour_only              = FALSE ;
-    gboolean     date_only              = FALSE ;
-    gchar        *result                = NULL  ;
-    gchar        tmp_str[TMP_STR_LEN+1]         ;
-    struct tm    native_tm                      ;
-
-    g_return_val_if_fail (timetype, NULL) ;
-
-    today = icaltime_today () ;
-    if (!icaltime_compare_date_only (*timetype, today))
-    {
-        hour_only = TRUE ;
-    }
-    else
-    {
-        date_only = TRUE ;
-    }
-    if (hour_only)
-    {
-        result = g_strdup_printf ("%d:%d", timetype->hour, timetype->minute) ;
-    }
-    else if (date_only)
-    {
-        native_tm = icaltimetype_to_tm ((icaltimetype*)timetype) ;
-        memset (tmp_str, 0, TMP_STR_LEN+1) ;
-        strftime (tmp_str, TMP_STR_LEN, "%d/%b", &native_tm) ;
-        result = g_strdup (tmp_str) ;
-    }
-    return result ;
-}
-
-GList*
-today_clone_icalcomponent_list (const GList *a_list)
-{
-  GList *result=NULL, *cur=NULL ;
-
-  for (cur =(GList*)a_list ; cur ; cur = cur->next)
-  {
-    if (!icalcomponent_isa_component (cur->data))
-      continue ;
-    result = g_list_prepend (result, icalcomponent_new_clone (cur->data)) ;
-  }
-  return result ;
-}
-
-/**
- * today_get_today_events:
- *
- * Return value:  a list of ECalComponents, of type VEVENT
- * or VTODO
- * must be freed with e_cal_component_list_free()
- */
-GList *
-today_get_today_events ()
-{
-  GList *result=NULL, *ical_comps=NULL, *ical_comps2=NULL;
-  GError *error = NULL;
-  gchar *query = NULL;
-
-  if (!calendar_db)
-  {
-    calendar_db = e_cal_new_system_calendar ();
-    g_return_val_if_fail (calendar_db, NULL);
-
-    if (!e_cal_open (calendar_db, TRUE, &error))
-    {
-      g_warning ("failed to open the calendar");
-    }
-    if (error)
-    {
-      LOG_ERROR;
-      goto out;
-    }
-  }
-
-  /*
-  query = g_strdup_printf ("(occur-in-time-range? "
-                               "(time-day-begin (time-now)) "
-                               "(time-day-end   (time-now)) "
-                           ")");
-   */
-  query = g_strdup_printf ("#t");
-  e_cal_get_object_list (calendar_db, query, &ical_comps, &error);
-  g_free (query) ;
-  query = NULL ;
-  if (error)
-  {
-    LOG_ERROR;
-    FREE_ERROR;
-  }
-
-  if (!tasks_db)
-  {
-    tasks_db = e_cal_new_system_tasks ();
-    g_return_val_if_fail (tasks_db, NULL);
-    if (!e_cal_open (tasks_db, TRUE, &error))
-    {
-      g_warning ("failed to open the tasks");
-    }
-    if (error)
-    {
-      LOG_ERROR;
-      goto out;
-    }
-  }
-
-  query = g_strdup_printf ("#t");
-  e_cal_get_object_list (tasks_db, query, &ical_comps2, &error);
-  g_free (query) ;
-  query = NULL ;
-  if (error)
-  {
-    LOG_ERROR;
-    FREE_ERROR ;
-  }
-  ical_comps = g_list_concat (ical_comps, ical_comps2) ;
-
-  result = ical_comps;
-  ical_comps = ical_comps2 = NULL;
-
-out:
-  if (ical_comps)
-  {
-    e_cal_free_object_list (ical_comps);
-  }
-
-  if (ical_comps2)
-  {
-    e_cal_free_object_list (ical_comps);
-  }
-
-  /*
-   the calender must stay alive during the app's lifetime
-  if (ecal)
-  {
-    g_object_unref (G_OBJECT (ecal));
-  }
-  */
-
-  if (error)
-  {
-    g_error_free (error);
-  }
-  if (query)
-  {
-    g_free (query);
-  }
-  return result;
-}
-
-gboolean
-icalcomponent_has_alarm (icalcomponent *a_icalcomp)
-{
-  icalcompiter iter ;
-
-  g_return_val_if_fail (a_icalcomp, FALSE) ;
-  g_return_val_if_fail (icalcomponent_isa_component (a_icalcomp), FALSE) ;
-
-  for (iter = icalcomponent_begin_component (a_icalcomp,
-                                             ICAL_VALARM_COMPONENT);
-      icalcompiter_deref (&iter) != NULL ;
-      icalcompiter_next (&iter))
-  {
-    return TRUE ;
-  }
-  return FALSE ;
-}
-
 GtkToolItem *
 today_toolbutton_new (const gchar *icon_name)
 {
@@ -248,3 +35,26 @@
        gtk_tool_item_set_expand (button, TRUE);
        return button;
 }
+
+const LauncherData *
+today_get_launcher (const gchar *exec, gboolean use_sn, gboolean single)
+{
+       static LauncherData launcher_data;
+       static gboolean first = TRUE;
+       
+       if (first) {
+               launcher_data.argv = NULL;
+               first = FALSE;
+       }
+       
+       if (launcher_data.argv) g_free (launcher_data.argv);
+       launcher_data.argv = exec_to_argv (exec);
+       launcher_data.name = (gchar *)exec;
+       launcher_data.description = "";
+       launcher_data.icon = NULL;
+       launcher_data.categories = (char *[]){ "" };
+       launcher_data.use_sn = use_sn;
+       launcher_data.single_instance = single;
+       
+       return &launcher_data;
+}

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-utils.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-utils.h   
2007-08-03 13:43:10 UTC (rev 2621)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-utils.h   
2007-08-03 14:08:48 UTC (rev 2622)
@@ -1,4 +1,3 @@
-/* vi: set sw=2: */
 /*
  *  Today - At a glance view of date, time, calender events, todo items and
  *  other images.
@@ -25,18 +24,11 @@
 #define  __TODAY_UTILS_H__
 
 #include <glib.h>
-#include <libical/icalcomponent.h>
-#include <libecal/e-cal.h>
-#include <libecal/e-cal-time-util.h>
 #include <gtk/gtk.h>
+#include <libtaku/launcher-util.h>
 
-GList* today_get_today_events () ;
-void e_cal_component_list_free (GList * list) ;
-gchar* icaltime_to_pretty_string (const icaltimetype *timetype) ;
-gboolean icalcomponent_has_alarm (icalcomponent *a_icalcomp) ;
-GList* today_clone_icalcomponent_list (const GList *a_list) ;
-
 GtkToolItem *today_toolbutton_new (const gchar *icon_name);
+const LauncherData *today_get_launcher (const gchar *exec, gboolean use_sn,
+                                       gboolean single);
 
 #endif /*__TODAY_UTILS_H__*/
-




--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to