r3918 - in trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src

chris at sita.openmoko.org chris at sita.openmoko.org
Tue Jan 22 16:07:47 CET 2008


Author: chris
Date: 2008-01-22 16:07:45 +0100 (Tue, 22 Jan 2008)
New Revision: 3918

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h
Log:
        * src/sms.h:
        * src/sms-contacts.c: (sms_contacts_page_new):
        Store the MokoFingerScroll the treeview is placed in

        * src/sms-notes.c: (forward_clicked_cb):
        Show a contacts chooser for picking which contact to forward to

        * src/sms-utils.c: (sms_contact_picker_dialog):
        * src/sms-utils.h:
        Add a utility function to pop up a dialog with the contacts chooser
        from the contacts page


Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog	2008-01-22 14:50:13 UTC (rev 3917)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog	2008-01-22 15:07:45 UTC (rev 3918)
@@ -1,3 +1,17 @@
+2008-01-22  Chris Lord  <chris at openedhand.com>
+
+	* src/sms.h:
+	* src/sms-contacts.c: (sms_contacts_page_new):
+	Store the MokoFingerScroll the treeview is placed in
+
+	* src/sms-notes.c: (forward_clicked_cb):
+	Show a contacts chooser for picking which contact to forward to
+
+	* src/sms-utils.c: (sms_contact_picker_dialog):
+	* src/sms-utils.h:
+	Add a utility function to pop up a dialog with the contacts chooser
+	from the contacts page
+
 2008-01-17  Chris Lord  <chris at openedhand.com>
 
 	* src/sms-main.c: (new_clicked_cb):

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c	2008-01-22 14:50:13 UTC (rev 3917)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c	2008-01-22 15:07:45 UTC (rev 3918)
@@ -594,7 +594,7 @@
 sms_contacts_page_new (SmsData *data)
 {
 	EBookQuery *qrys[(E_CONTACT_LAST_PHONE_ID-E_CONTACT_FIRST_PHONE_ID)+1];
-	GtkWidget *contacts_combo, *scroll, *vbox;
+	GtkWidget *contacts_combo, *vbox;
 	GtkTreeSelection *selection;
 	GtkCellRenderer *renderer;
 	EBookQuery *tel_query;
@@ -730,13 +730,16 @@
 		G_CALLBACK (jana_gtk_utils_treeview_resize), renderer);
 
 	/* Pack treeview into a finger-scroll */
-	scroll = moko_finger_scroll_new ();
-	gtk_container_add (GTK_CONTAINER (scroll), data->contacts_treeview);
+	data->contacts_scroll = moko_finger_scroll_new ();
+	gtk_container_add (GTK_CONTAINER (data->contacts_scroll),
+		data->contacts_treeview);
 	
 	/* Pack widgets into vbox and return */
 	vbox = gtk_vbox_new (FALSE, 0);
-	gtk_box_pack_start (GTK_BOX (vbox), data->contacts_search, FALSE, TRUE, 0);
-	gtk_box_pack_start (GTK_BOX (vbox), scroll, TRUE, TRUE, 0);
+	gtk_box_pack_start (GTK_BOX (vbox), data->contacts_search,
+		FALSE, TRUE, 0);
+	gtk_box_pack_start (GTK_BOX (vbox), data->contacts_scroll,
+		TRUE, TRUE, 0);
 	gtk_widget_show_all (vbox);
 	
 	/* Start book view */

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c	2008-01-22 14:50:13 UTC (rev 3917)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c	2008-01-22 15:07:45 UTC (rev 3918)
@@ -615,9 +615,9 @@
 forward_clicked_cb (GtkToolButton *button, SmsData *data)
 {
 	gchar *body;
-	GtkTreeIter iter;
+	GtkTreeIter iter, citer;
 	GtkTreeModel *model;
-	GtkTreeSelection *selection;
+	GtkTreeSelection *selection, *cselection;
 
 	/* Fill in compose box with message text and call new */
 	selection = gtk_tree_view_get_selection (
@@ -632,10 +632,18 @@
 		GTK_TEXT_VIEW (data->sms_textview)), body, -1);
 	g_free (body);
 	
-	/* TODO: Launch a contact-picker */
+	cselection = gtk_tree_view_get_selection (
+		GTK_TREE_VIEW (data->contacts_treeview));
+	if (cselection)
+		gtk_tree_selection_get_selected (cselection, NULL, &citer);
 	
-	gtk_notebook_set_current_page (
-		GTK_NOTEBOOK (data->notebook), SMS_PAGE_COMPOSE);
+	if (sms_contact_picker_dialog (
+	    data, "Choose a contact to forward to:")) {
+		gtk_notebook_set_current_page (
+			GTK_NOTEBOOK (data->notebook), SMS_PAGE_COMPOSE);
+	} else {
+		gtk_tree_selection_select_iter (cselection, &citer);
+	}
 }
 
 static void

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c	2008-01-22 14:50:13 UTC (rev 3917)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c	2008-01-22 15:07:45 UTC (rev 3918)
@@ -21,6 +21,7 @@
 #include "sms-utils.h"
 #include <string.h>
 #include <libmokoui2/moko-search-bar.h>
+#include <libmokoui2/moko-finger-scroll.h>
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
 #endif
@@ -443,3 +444,46 @@
 
 	return FALSE;
 }
+
+gboolean
+sms_contact_picker_dialog (SmsData *data, const gchar *message)
+{
+	GtkWidget *dialog, *scroll, *frame;
+	gint width, height;
+	gint result;
+	
+	dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW (data->window),
+		GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL,
+		message);
+	gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
+	gtk_button_box_set_layout (GTK_BUTTON_BOX (
+		GTK_DIALOG (dialog)->action_area), GTK_BUTTONBOX_SPREAD);
+	gtk_window_get_size (GTK_WINDOW (data->window), &width, &height);
+	gtk_window_resize (GTK_WINDOW (dialog), width * 0.85, height * 0.85);
+	
+	/* Remove the main contacts treeview from the contacts page and add it 
+	 * to this dialog... Bit hacky...
+	 */
+	g_object_ref (data->contacts_treeview);
+	gtk_container_remove (GTK_CONTAINER (data->contacts_treeview->parent),
+		data->contacts_treeview);
+	
+	frame = gtk_frame_new (NULL);
+	scroll = moko_finger_scroll_new ();
+	gtk_container_add (GTK_CONTAINER (scroll), data->contacts_treeview);
+	gtk_container_add (GTK_CONTAINER (frame), scroll);
+	gtk_widget_show_all (frame);
+	gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),
+		frame, TRUE, TRUE, 0);
+	result = gtk_dialog_run (GTK_DIALOG (dialog));
+	
+	gtk_container_remove (GTK_CONTAINER (data->contacts_treeview->parent),
+		data->contacts_treeview);
+	gtk_container_add (GTK_CONTAINER (data->contacts_scroll),
+		data->contacts_treeview);
+	g_object_unref (data->contacts_treeview);
+	
+	gtk_widget_destroy (dialog);
+	
+	return (result == GTK_RESPONSE_OK) ? TRUE : FALSE;
+}

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h	2008-01-22 14:50:13 UTC (rev 3917)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h	2008-01-22 15:07:45 UTC (rev 3918)
@@ -31,5 +31,6 @@
 gboolean sms_contacts_note_count_update (SmsData *data);
 gboolean sms_delete_selected_contact_messages (SmsData *data);
 gboolean sms_select_contact (SmsData *data, const gchar *uid);
+gboolean sms_contact_picker_dialog (SmsData *data, const gchar *message);
 
 #endif /* SMS_UTILS_H */

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h	2008-01-22 14:50:13 UTC (rev 3917)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h	2008-01-22 15:07:45 UTC (rev 3918)
@@ -69,6 +69,7 @@
 	GtkWidget *notes_treeview;
 	guint notes_scroll_idle;
 
+	GtkWidget *contacts_scroll;
 	GtkWidget *contacts_treeview;
 	GtkWidget *contacts_search;
 	GdkPixbuf *no_photo;





More information about the commitlog mailing list