r1270 - trunk/src/target/OM-2007/applications/openmoko-messages/src

alex_tang at sita.openmoko.org alex_tang at sita.openmoko.org
Thu Mar 8 09:56:01 CET 2007


Author: alex_tang
Date: 2007-03-08 09:55:52 +0100 (Thu, 08 Mar 2007)
New Revision: 1270

Modified:
   trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.c
   trunk/src/target/OM-2007/applications/openmoko-messages/src/main.c
   trunk/src/target/OM-2007/applications/openmoko-messages/src/main.h
   trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-membership-window.c
Log:
Add send_signal_to_footer to send message information to footer
Modify cb_mmitem_activate .


Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.c	2007-03-08 06:45:50 UTC (rev 1269)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.c	2007-03-08 08:55:52 UTC (rev 1270)
@@ -21,7 +21,30 @@
 #include "callbacks.h"
 #include "detail-area.h"
 #include <gtk/gtk.h>
+#include <dbus/dbus.h>
 
+static void
+send_signal_to_footer (DBusConnection* bus, gchar* message_str)
+{
+    DBusMessage *message;
+
+    if(message_str == NULL)
+        g_debug("Input string is null");
+    else
+        g_debug(message_str);
+
+    message = dbus_message_new_signal ("/org/openmoko/footer",
+                                       "org.openmoko.dbus.TaskManager", 
+				       "push_statusbar_message");
+    dbus_message_append_args (message,
+                              DBUS_TYPE_STRING, &message_str,
+                              DBUS_TYPE_INVALID);
+    g_debug("begin send message");
+    dbus_connection_send (bus, message, NULL);
+    g_debug("end send message");
+    dbus_message_unref (message);
+}
+
 static gboolean 
 model_number_helper (GtkTreeModel* model,
 		     GtkTreePath*  path,
@@ -46,6 +69,8 @@
     d->currentfolder = g_strdup(text);
     gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
     g_debug("folder %s has %d messages",text,get_model_number(d));
+    gchar* str = g_strdup_printf("folder %s has %d messages",text,get_model_number(d));
+    send_signal_to_footer(d->bus,str);
     
     return FALSE;
 }
@@ -243,6 +268,7 @@
     	sms_membership_window_set_menubox (SMS_MEMBERSHIP_WINDOW(d->mmWin), d->folderlist);
     	sms_membership_window_set_messages (SMS_MEMBERSHIP_WINDOW(d->mmWin), d->liststore);
     }
+    sms_membership_window_set_menubox (SMS_MEMBERSHIP_WINDOW(d->mmWin), d->folderlist);
     sms_membership_window_show ( SMS_MEMBERSHIP_WINDOW(d->mmWin) );
 }
 
@@ -267,6 +293,7 @@
 	}
     }
     d->filtmenu = reload_filter_menu (d,d->folderlist);
+
     MokoMenuBox* menubox = moko_paned_window_get_menubox( d->window );
     g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d );
     moko_menu_box_set_filter_menu(menubox, GTK_MENU(d->filtmenu));
@@ -467,6 +494,8 @@
     d->s_key = g_strdup (gtk_entry_get_text(GTK_ENTRY(search_entry)));
     gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
     g_debug ("search %s, result has %d messages",d->s_key,get_model_number(d));
+    gchar* str = g_strdup_printf("search %s, result has %d messages",d->s_key,get_model_number(d));
+    send_signal_to_footer(d->bus,str);
 }
 
 void cb_search_on (MessengerData* d)

Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/main.c	2007-03-08 06:45:50 UTC (rev 1269)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/main.c	2007-03-08 08:55:52 UTC (rev 1270)
@@ -100,6 +100,35 @@
     }
 }
 
+gboolean init_dbus (MessengerData* d)
+{
+    DBusError error;
+
+    /* Get a connection to the session bus */
+    dbus_error_init (&error);
+    d->bus = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
+
+    if (!d->bus)
+    {
+        g_warning ("Failed to connect to the D-BUS daemon: %s", error.message);
+	return FALSE;
+    }
+
+    if (dbus_error_is_set (&error))
+    {
+        fprintf(stdout, "Connection Error (%s)\n", error.message);
+	dbus_error_free (&error);
+    }
+
+    if (NULL == d->bus)
+    {
+        fprintf(stdout, "Connection Error: bus == NULL \n");
+	exit (1);
+    }
+
+    return TRUE;
+}
+
 int main( int argc, char** argv )
 {
     g_debug( "openmoko-messenger starting up" );
@@ -108,6 +137,7 @@
     /* Initialize GTK+ */
     gtk_init( &argc, &argv );
 
+    /* initalize the lock */
     lockapp = testlock ("/tmp/messages.lock");
     if (lockapp > 0)
      {
@@ -124,12 +154,18 @@
     d->currentfolder = g_strdup("Inbox");
     g_set_application_name( "Messages" ); 
     
+    if (init_dbus(d))
+        g_debug("D-Bus initialize successfully");
+
     /* ui */
     setup_ui(d);
 
     /* disable mmitem if necessary*/
     update_folder_sensitive (d, d->folderlist);
 		
+    /* Set up this connection to work in a GLib event loop */
+    dbus_connection_setup_with_g_main (d->bus, NULL);
+
     /* show everything and run main loop */
     gtk_widget_show_all( GTK_WIDGET(d->window) );
     gtk_main();

Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/main.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/main.h	2007-03-08 06:45:50 UTC (rev 1269)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/main.h	2007-03-08 08:55:52 UTC (rev 1270)
@@ -26,6 +26,8 @@
 #include <libmokoui/moko-tree-view.h>
 #include <gtk/gtkliststore.h>
 #include <gtk/gtktreemodelfilter.h>
+//#include <dbus/dbus-glib.h>
+#include <dbus/dbus.h>
 
 #include "foldersdb.h"
 #include "detail-area.h"
@@ -51,6 +53,7 @@
     GtkWidget* mmWin;
     GtkWidget* mmitem;
     GtkWidget* fnitem;
+    DBusConnection *bus;
 }MessengerData;
 
 enum {
@@ -79,6 +82,7 @@
 void populate_detail_area( MessengerData* d );
 void main_quit(GtkWidget* widget, GdkEvent* event, MessengerData* d);
 void update_folder_sensitive (MessengerData* d, GSList* folderlist);
+gboolean init_dbus (MessengerData* d);
 
 #endif
 

Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-membership-window.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-membership-window.c	2007-03-08 06:45:50 UTC (rev 1269)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-membership-window.c	2007-03-08 08:55:52 UTC (rev 1270)
@@ -165,12 +165,14 @@
     priv->eventbox = gtk_event_box_new();
     gtk_container_add( GTK_CONTAINER(priv->eventbox), GTK_WIDGET(priv->titleLabel) );
     gtk_widget_set_name( GTK_WIDGET(priv->eventbox), "mokodialogwindow-title-labelbox" );
+
     //FIXME get from theme
     gtk_misc_set_padding( GTK_MISC(priv->titleLabel), 0, 6 );
     gtk_widget_show( GTK_WIDGET(priv->titleLabel) );
     gtk_widget_show( GTK_WIDGET(priv->eventbox) );
     gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->eventbox), FALSE, FALSE, 0 );
     priv->folderbox = gtk_vbox_new( FALSE, 0 );
+
     //Set folder list
     GtkWidget* closebox = gtk_hbox_new( FALSE, 0 );
     PangoFontDescription* font_desc;
@@ -182,6 +184,7 @@
     priv->subjectLabel = gtk_label_new( "Subject" );
     gtk_widget_set_size_request (priv->subjectLabel, 250, -1);
     gtk_misc_set_alignment (GTK_MISC(priv->subjectLabel), 0, 0.5);
+    
     //set header box: two labels and a closebutton
     GtkWidget* headerbox = gtk_vbox_new( FALSE, 0 );
     gtk_box_set_spacing (GTK_BOX(headerbox),5);
@@ -192,6 +195,7 @@
     gtk_container_add (GTK_CONTAINER(alignment), priv->closebutton);
     GtkWidget* hsep = gtk_hseparator_new();
     gtk_widget_set_size_request (hsep, -1, 3);
+
     //set folder box alignment fbAlign
     GtkAlignment* fbAlign = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
     gtk_alignment_set_padding (fbAlign, 5, 5, 30, 30);





More information about the commitlog mailing list