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