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