r3678 - in trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src
chris at sita.openmoko.org
chris at sita.openmoko.org
Tue Dec 18 13:18:11 CET 2007
Author: chris
Date: 2007-12-18 13:18:10 +0100 (Tue, 18 Dec 2007)
New Revision: 3678
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.c
Log:
* src/sms-compose.c: (text_changed_cb), (sms_compose_page_new):
Add a message length indicator to the composition page
Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog 2007-12-18 11:57:37 UTC (rev 3677)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog 2007-12-18 12:18:10 UTC (rev 3678)
@@ -1,5 +1,10 @@
2007-12-18 Chris Lord <chris at openedhand.com>
+ * src/sms-compose.c: (text_changed_cb), (sms_compose_page_new):
+ Add a message length indicator to the composition page
+
+2007-12-18 Chris Lord <chris at openedhand.com>
+
* src/sms-notes.c: (notes_visible_func), (sms_notes_page_new):
Add all/sent/received filter to notes page
Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.c 2007-12-18 11:57:37 UTC (rev 3677)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.c 2007-12-18 12:18:10 UTC (rev 3678)
@@ -194,6 +194,29 @@
}
}
+static void
+text_changed_cb (GtkTextBuffer *buffer, SmsData *data)
+{
+ GtkTextIter start, end;
+ gchar *text, *markup;
+ gint length;
+
+ gtk_text_buffer_get_start_iter (buffer, &start);
+ gtk_text_buffer_get_end_iter (buffer, &end);
+ text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+
+ length = g_utf8_strlen (text, -1);
+ if (length > 160)
+ markup = g_strdup_printf ("<small><span foreground='#FF0000'>"
+ "%d / 160</span></small>", length);
+ else
+ markup = g_strdup_printf ("<small>%d / 160</small>", length);
+ gtk_label_set_markup (GTK_LABEL (data->length_label), markup);
+
+ g_free (markup);
+ g_free (text);
+}
+
GtkWidget *
sms_compose_page_new (SmsData *data)
{
@@ -212,13 +235,18 @@
data->contact_label = gtk_label_new (NULL);
gtk_label_set_use_markup (GTK_LABEL (data->contact_label), TRUE);
gtk_misc_set_alignment (GTK_MISC (data->contact_label), 0, 0.5);
+ data->length_label = gtk_label_new (NULL);
+ gtk_label_set_use_markup (GTK_LABEL (data->length_label), TRUE);
+ gtk_misc_set_alignment (GTK_MISC (data->length_label), 1.0, 0.5);
data->number_combo = gtk_combo_box_entry_new_text ();
gtk_table_attach (GTK_TABLE (contact_table), data->contact_image,
0, 1, 0, 2, GTK_FILL, GTK_FILL, 0, 0);
gtk_table_attach (GTK_TABLE (contact_table), data->contact_label,
1, 2, 0, 1, GTK_EXPAND | GTK_SHRINK | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_table_attach (GTK_TABLE (contact_table), data->length_label,
+ 2, 3, 0, 1, GTK_EXPAND | GTK_SHRINK | GTK_FILL, GTK_FILL, 0, 0);
gtk_table_attach (GTK_TABLE (contact_table), data->number_combo,
- 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ 1, 3, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
/* Create sms entry bits */
data->sms_textview = gtk_text_view_new ();
@@ -227,6 +255,11 @@
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_container_add (GTK_CONTAINER (frame), data->sms_textview);
+ g_signal_connect (gtk_text_view_get_buffer (
+ GTK_TEXT_VIEW (data->sms_textview)), "changed",
+ G_CALLBACK (text_changed_cb), data);
+ text_changed_cb (gtk_text_view_get_buffer (
+ GTK_TEXT_VIEW (data->sms_textview)), data);
/* Pack widgets */
vbox = gtk_vbox_new (FALSE, 0);
More information about the commitlog
mailing list