r1516 - in trunk/src/target/OM-2007/applications/openmoko-messages: . src
alex_tang at sita.openmoko.org
alex_tang at sita.openmoko.org
Tue Mar 27 10:34:54 CEST 2007
Author: alex_tang
Date: 2007-03-27 10:34:31 +0200 (Tue, 27 Mar 2007)
New Revision: 1516
Added:
trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-contact-window.c
trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-contact-window.h
Modified:
trunk/src/target/OM-2007/applications/openmoko-messages/configure.ac
trunk/src/target/OM-2007/applications/openmoko-messages/src/Makefile.am
trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.c
trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.h
trunk/src/target/OM-2007/applications/openmoko-messages/src/detail-area.c
trunk/src/target/OM-2007/applications/openmoko-messages/src/detail-area.h
trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.c
trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.h
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/message.h
trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-dialog-window.c
trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-dialog-window.h
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.h
Log:
Add contact window to choose contacts.
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/configure.ac
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/configure.ac 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/configure.ac 2007-03-27 08:34:31 UTC (rev 1516)
@@ -17,8 +17,10 @@
AC_MSG_ERROR([*** Required dbus-glib-1 not installed ***]))
PKG_CHECK_MODULES(DBUS, dbus-1,,
AC_MSG_ERROR([*** Required dbus-1 not installed ***]))
-LIBS="$LIBS $GTK_LIBS $DBUSGLIB_LIBS $DBUS"
-CFLAGS="$CFLAGS $OPENMOKO_CFLAGS $DBUSGLIB_CFLAGS $DBUS_DFALGS"
+PKG_CHECK_MODULES(LIBEBOOK, libebook-1.2,,
+ AC_MSG_ERROR([*** Required dbus-1 not installed ***]))
+LIBS="$LIBS $GTK_LIBS $DBUSGLIB_LIBS $DBUS $LIBEBOOK_LIBS"
+CFLAGS="$CFLAGS $OPENMOKO_CFLAGS $DBUSGLIB_CFLAGS $DBUS_DFALGS $LIBEBOOK_CFLAGS"
# output stuff
AC_OUTPUT([
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/Makefile.am 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/Makefile.am 2007-03-27 08:34:31 UTC (rev 1516)
@@ -5,7 +5,13 @@
bin_PROGRAMS = openmoko-messages
-openmoko_messages_SOURCES = main.c main.h foldersdb.c foldersdb.h callbacks.c callbacks.h detail-area.c detail-area.h sms-dialog-window.c sms-dialog-window.h sms-membership-window.c sms-membership-window.h
+openmoko_messages_SOURCES = main.c main.h \
+ foldersdb.c foldersdb.h \
+ callbacks.c callbacks.h \
+ detail-area.c detail-area.h \
+ sms-dialog-window.c sms-dialog-window.h \
+ sms-membership-window.c sms-membership-window.h \
+ sms-contact-window.c sms-contact-window.h
openmoko_messages_LDADD = @OPENMOKO_LIBS@
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-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.c 2007-03-27 08:34:31 UTC (rev 1516)
@@ -20,517 +20,576 @@
#include "callbacks.h"
#include "detail-area.h"
+#include "sms-contact-window.h"
#include <gtk/gtk.h>
#include <dbus/dbus.h>
#include <dbus/dbus-glib.h>
+void cb_addressBtn_clicked (GtkButton* button, gpointer* data);
+void sms_contact_select_done (GtkWidget* widget, gpointer data);
+
void
send_signal_to_footer (DBusConnection* bus, gchar* message_str)
{
- DBusMessage *message;
+ DBusMessage *message;
- if(message_str == NULL)
- g_debug("Input string is null");
- else
- g_debug(message_str);
+ 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);
- dbus_connection_send (bus, message, NULL);
- dbus_message_unref (message);
+ 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);
+ dbus_connection_send (bus, message, NULL);
+ dbus_message_unref (message);
}
-static gboolean
+static gboolean
model_number_helper (GtkTreeModel* model,
- GtkTreePath* path,
- GtkTreeIter* iter,
- gpointer data)
+ GtkTreePath* path,
+ GtkTreeIter* iter,
+ gpointer data)
{
- MessengerData* d = (MessengerData*)data;
- d->msg_num ++;
- return FALSE;
+ MessengerData* d = (MessengerData*)data;
+ d->msg_num ++;
+ return FALSE;
}
gint get_model_number (MessengerData* d)
{
- d->msg_num = 0;
- gtk_tree_model_foreach (d->filter,model_number_helper,d);
- return d->msg_num;
+ d->msg_num = 0;
+ gtk_tree_model_foreach (d->filter,model_number_helper,d);
+ return d->msg_num;
}
gboolean cb_filter_changed(GtkWidget* widget, gchar* text, MessengerData* d)
{
- d->currentfolder = g_strdup(text);
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
- gchar* str = g_strdup_printf("folder %s has %d messages",text,get_model_number(d));
- send_signal_to_footer(d->bus,str);
-
- return FALSE;
+ d->currentfolder = g_strdup(text);
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
+ gchar* str = g_strdup_printf("folder %s has %d messages",text,get_model_number(d));
+ send_signal_to_footer(d->bus,str);
+
+ return FALSE;
}
void cb_new_sms (GtkMenuItem* item, MessengerData* d)
{
- SmsDialogWindow* sms_window = sms_dialog_window_new();
- sms_dialog_window_set_title (sms_window,"New SMS");
- gtk_window_set_decorated (GTK_WINDOW(sms_window), FALSE);
- gtk_widget_show_all (GTK_WIDGET(sms_window));
+ SmsDialogWindow* sms_window = sms_dialog_window_new();
+ sms_dialog_window_set_title (sms_window,"New SMS");
+ gtk_window_set_decorated (GTK_WINDOW(sms_window), FALSE);
+ gtk_widget_show_all (GTK_WIDGET(sms_window));
+
+ g_signal_connect (G_OBJECT(sms_window->addressBtn),
+ "clicked",
+ G_CALLBACK(cb_addressBtn_clicked),
+ sms_window->toEntry );
}
void cb_new_mail (GtkMenuItem* item, MessengerData* d)
{
- SmsDialogWindow* mail_window = sms_dialog_window_new();
- mail_dialog_window_set_title (mail_window,"New Email");
- gtk_window_set_decorated (GTK_WINDOW(mail_window), FALSE);
- gtk_widget_show_all ( GTK_WIDGET(mail_window) );
+ SmsDialogWindow* mail_window = sms_dialog_window_new();
+ mail_dialog_window_set_title (mail_window,"New Email");
+ gtk_window_set_decorated (GTK_WINDOW(mail_window), FALSE);
+ gtk_widget_show_all ( GTK_WIDGET(mail_window) );
+
+ g_signal_connect (G_OBJECT(mail_window->addressBtn),
+ "clicked",
+ G_CALLBACK(cb_addressBtn_clicked),
+ mail_window->toEntry);
}
void cb_new_folder (GtkMenuItem* item, MessengerData* d)
{
- g_debug ("new folder called");
- GtkWidget* hbox;
- GtkWidget* nfResetBtn;
- GtkWidget* nfConfirmBtn;
+ g_debug ("new folder called");
+ GtkWidget* hbox;
+ GtkWidget* nfResetBtn;
+ GtkWidget* nfConfirmBtn;
- if ((d->nfWin != NULL) && (d->nfWin->window != NULL))
- gtk_entry_set_text (GTK_ENTRY(d->nfEntry),"");
- else
+ if ((d->nfWin != NULL) && (d->nfWin->window != NULL))
+ gtk_entry_set_text (GTK_ENTRY(d->nfEntry),"");
+ else
{
- d->nfWin = moko_dialog_window_new();
- GtkWidget* nfBox = gtk_vbox_new (FALSE,10);
- gtk_widget_set_size_request (nfBox, 480, -1);
- GtkWidget* nfAlign = gtk_alignment_new (0,0,1,1);
- gtk_alignment_set_padding (GTK_ALIGNMENT(nfAlign), 100, 0, 30, 10);
- moko_dialog_window_set_title ( MOKO_DIALOG_WINDOW(d->nfWin), "New Folder");
-
- GtkWidget* nfLabel = gtk_label_new ("Please input new folder name:");
- gtk_misc_set_alignment (GTK_MISC(nfLabel),0,0.5);
- gtk_box_pack_start (GTK_BOX(nfBox), nfLabel, FALSE, TRUE, 0);
-
- d->nfEntry = gtk_entry_new ();
- gtk_box_pack_start (GTK_BOX(nfBox), d->nfEntry, FALSE, TRUE, 0);
-
- hbox = gtk_hbox_new (FALSE,20);
- nfConfirmBtn = gtk_button_new_with_label ("OK");
- nfResetBtn = gtk_button_new_with_label ("Reset");
- gtk_box_pack_start (GTK_BOX(hbox), nfConfirmBtn, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX(hbox), nfResetBtn, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX(nfBox), hbox, FALSE, TRUE, 0);
+ d->nfWin = moko_dialog_window_new();
+ GtkWidget* nfBox = gtk_vbox_new (FALSE,10);
+ gtk_widget_set_size_request (nfBox, 480, -1);
+ GtkWidget* nfAlign = gtk_alignment_new (0,0,1,1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(nfAlign), 100, 0, 30, 10);
+ moko_dialog_window_set_title ( MOKO_DIALOG_WINDOW(d->nfWin), "New Folder");
- gtk_container_add (GTK_CONTAINER(nfAlign),nfBox);
+ GtkWidget* nfLabel = gtk_label_new ("Please input new folder name:");
+ gtk_misc_set_alignment (GTK_MISC(nfLabel),0,0.5);
+ gtk_box_pack_start (GTK_BOX(nfBox), nfLabel, FALSE, TRUE, 0);
- moko_dialog_window_set_contents (MOKO_DIALOG_WINDOW(d->nfWin), nfAlign);
- g_signal_connect (G_OBJECT(nfConfirmBtn),
- "clicked",
- G_CALLBACK(cb_nfBtn_clicked),
- d);
- g_signal_connect (G_OBJECT(nfResetBtn),
- "clicked",
- G_CALLBACK(cb_nfResetBtn_clicked),
- d);
+ d->nfEntry = gtk_entry_new ();
+ gtk_box_pack_start (GTK_BOX(nfBox), d->nfEntry, FALSE, TRUE, 0);
+
+ hbox = gtk_hbox_new (FALSE,20);
+ nfConfirmBtn = gtk_button_new_with_label ("OK");
+ nfResetBtn = gtk_button_new_with_label ("Reset");
+ gtk_box_pack_start (GTK_BOX(hbox), nfConfirmBtn, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(hbox), nfResetBtn, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(nfBox), hbox, FALSE, TRUE, 0);
+
+ gtk_container_add (GTK_CONTAINER(nfAlign),nfBox);
+
+ moko_dialog_window_set_contents (MOKO_DIALOG_WINDOW(d->nfWin), nfAlign);
+ g_signal_connect (G_OBJECT(nfConfirmBtn),
+ "clicked",
+ G_CALLBACK(cb_nfBtn_clicked),
+ d);
+ g_signal_connect (G_OBJECT(nfResetBtn),
+ "clicked",
+ G_CALLBACK(cb_nfResetBtn_clicked),
+ d);
}
- gtk_window_set_decorated (GTK_WINDOW(d->nfWin), FALSE);
- gtk_widget_show_all (d->nfWin);
+ gtk_window_set_decorated (GTK_WINDOW(d->nfWin), FALSE);
+ gtk_widget_show_all (d->nfWin);
}
void cb_mode_read (GtkMenuItem* item, MessengerData* d)
{
- g_debug ("mode read");
- message* msg;
- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view ));
- GtkTreeModel* model;
- GtkTreeIter iter;
- gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter );
+ g_debug ("mode read");
+ message* msg;
+ GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view ));
+ GtkTreeModel* model;
+ GtkTreeIter iter;
+ gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter );
- if ( has_selection ){
- msg = g_malloc(sizeof(message));
- gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 );
- gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 );
- gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 );
+ if ( has_selection )
+ {
+ msg = g_malloc(sizeof(message));
+ gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 );
+ gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 );
+ gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 );
}
- else msg = NULL;
- detail_read_message (DETAIL_AREA(d->details),msg);
+ else msg = NULL;
+ detail_read_message (DETAIL_AREA(d->details),msg);
}
void cb_mode_reply (GtkMenuItem* item, MessengerData* d)
{
- g_debug ("mode reply");
- message* msg;
- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view ));
- GtkTreeModel* model;
- GtkTreeIter iter;
- gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter );
+ g_debug ("mode reply");
+ message* msg;
+ GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view ));
+ GtkTreeModel* model;
+ GtkTreeIter iter;
+ gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter );
- if ( has_selection ) {
- msg = g_malloc(sizeof(message));
- gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 );
- gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 );
- gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 );
- }else msg = NULL;
-
- SmsDialogWindow* sms_window = sms_dialog_window_new();
- if (msg != NULL){
- sms_dialog_window_set_title (sms_window,"Reply SMS");
- sms_dialog_reply_message (sms_window,msg);
- }else sms_dialog_window_set_title (sms_window,"New SMS");
- gtk_widget_show_all ( GTK_WIDGET(sms_window) );
+ if ( has_selection )
+ {
+ msg = g_malloc(sizeof(message));
+ gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 );
+ gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 );
+ gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 );
+ }
+ else msg = NULL;
+
+ SmsDialogWindow* sms_window = sms_dialog_window_new();
+ if (msg != NULL)
+ {
+ sms_dialog_window_set_title (sms_window,"Reply SMS");
+ sms_dialog_reply_message (sms_window,msg);
+ }
+ else sms_dialog_window_set_title (sms_window,"New SMS");
+ gtk_widget_show_all ( GTK_WIDGET(sms_window) );
}
void cb_mode_forward (GtkMenuItem* item, MessengerData* d)
{
- g_debug ("mode forward");
- message* msg;
- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view ));
- GtkTreeModel* model;
- GtkTreeIter iter;
- gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter );
+ g_debug ("mode forward");
+ message* msg;
+ GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view ));
+ GtkTreeModel* model;
+ GtkTreeIter iter;
+ gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter );
- if ( has_selection ){
- msg = g_malloc(sizeof(message));
- gtk_tree_model_get( model, &iter,
- COLUMN_FROM, &msg->name,
- COLUMN_SUBJECT, &msg->subject,
- COLUMN_FOLDER, &msg->folder,
- COLUMN_CONTENT, &msg->content,
- -1 );
+ if ( has_selection )
+ {
+ msg = g_malloc(sizeof(message));
+ gtk_tree_model_get( model, &iter,
+ COLUMN_FROM, &msg->name,
+ COLUMN_SUBJECT, &msg->subject,
+ COLUMN_FOLDER, &msg->folder,
+ COLUMN_CONTENT, &msg->content,
+ -1 );
}
- else msg = NULL;
+ else msg = NULL;
- SmsDialogWindow* sms_window = sms_dialog_window_new();
- sms_dialog_window_set_title (sms_window,"Forward SMS");
- sms_dialog_forward_message (sms_window, msg);
- gtk_widget_show_all ( GTK_WIDGET(sms_window) );
+ SmsDialogWindow* sms_window = sms_dialog_window_new();
+ sms_dialog_window_set_title (sms_window,"Forward SMS");
+ sms_dialog_forward_message (sms_window, msg);
+ gtk_widget_show_all ( GTK_WIDGET(sms_window) );
}
void cb_delete_folder (GtkMenuItem* item, MessengerData* d)
{
- g_debug ("delete folder called");
- GtkWidget* msgDialog;
-
- GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
- GtkWidget* menulabel = GTK_BIN(menuitem)->child;
- gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel)));
- if (!g_strcasecmp(oldName,"Inbox") ||
- !g_strcasecmp(oldName,"Outbox") ||
- !g_strcasecmp(oldName,"Draft") ||
- !g_strcasecmp(oldName,"Sent") ||
- !g_strcasecmp(oldName,"Trash")){
- msgDialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_CLOSE,
- g_strdup_printf("Current folder '%s'\nis not a custom folder\nCan't delete",oldName) );
- gtk_dialog_run (GTK_DIALOG (msgDialog));
- gtk_widget_destroy (msgDialog);
- }else{
- GtkWidget* dialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_OK_CANCEL,
- g_strdup_printf("Are you sure to delete folder: %s",d->currentfolder));
- gint result = gtk_dialog_run (GTK_DIALOG (dialog));
- switch (result){
- case GTK_RESPONSE_OK:
- g_debug ("clicked ok");
- delete_folder(d,oldName);
- break;
- case GTK_RESPONSE_CANCEL: g_debug ("clicked cancel"); break;
- default: g_debug ("clicked default"); break;
- }
- gtk_widget_destroy (dialog);
+ g_debug ("delete folder called");
+ GtkWidget* msgDialog;
+
+ GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
+ GtkWidget* menulabel = GTK_BIN(menuitem)->child;
+ gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel)));
+ if (!g_strcasecmp(oldName,"Inbox") ||
+ !g_strcasecmp(oldName,"Outbox") ||
+ !g_strcasecmp(oldName,"Draft") ||
+ !g_strcasecmp(oldName,"Sent") ||
+ !g_strcasecmp(oldName,"Trash"))
+ {
+ msgDialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_CLOSE,
+ g_strdup_printf("Current folder '%s'\nis not a custom folder\nCan't delete",oldName) );
+ gtk_dialog_run (GTK_DIALOG (msgDialog));
+ gtk_widget_destroy (msgDialog);
}
+ else
+ {
+ GtkWidget* dialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_OK_CANCEL,
+ g_strdup_printf("Are you sure to delete folder: %s",d->currentfolder));
+ gint result = gtk_dialog_run (GTK_DIALOG (dialog));
+ switch (result)
+ {
+ case GTK_RESPONSE_OK:
+ g_debug ("clicked ok");
+ delete_folder(d,oldName);
+ break;
+ case GTK_RESPONSE_CANCEL:
+ g_debug ("clicked cancel");
+ break;
+ default:
+ g_debug ("clicked default");
+ break;
+ }
+ gtk_widget_destroy (dialog);
+ }
}
void cb_delete_message (GtkMenuItem* item, MessengerData* d)
{
- GtkTreeModel* model;
- GtkTreeIter iter;
- GtkTreeIter childiter;
- GtkTreeSelection* selection;
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(d->view));
- gboolean has_selection = gtk_tree_selection_get_selected (selection, &model,&iter);
- if (has_selection){
- gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(d->filter),&childiter,&iter);
- gtk_list_store_remove (d->liststore, &childiter);
- }else {
- GtkWidget* dialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_OK,
- "No message selected");
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
+ GtkTreeModel* model;
+ GtkTreeIter iter;
+ GtkTreeIter childiter;
+ GtkTreeSelection* selection;
+
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(d->view));
+ gboolean has_selection = gtk_tree_selection_get_selected (selection, &model,&iter);
+ if (has_selection)
+ {
+ gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(d->filter),&childiter,&iter);
+ gtk_list_store_remove (d->liststore, &childiter);
}
+ else
+ {
+ GtkWidget* dialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_OK,
+ "No message selected");
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+ }
}
void cb_mmitem_activate (GtkMenuItem* item, MessengerData* d)
{
- g_debug ("message membership");
- d->mmWin = sms_membership_window_new();
- gtk_window_set_decorated (GTK_WINDOW(d->mmWin), FALSE);
- 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) );
+ g_debug ("message membership");
+ d->mmWin = sms_membership_window_new();
+ gtk_window_set_decorated (GTK_WINDOW(d->mmWin), FALSE);
+ 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) );
}
void cb_frBtn_clicked (GtkButton* button, MessengerData* d)
{
- GSList *c;
- gchar* folder;
-
- GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
- GtkWidget* menulabel = GTK_BIN(menuitem)->child;
- gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel)));
- gchar* newName = g_strdup (gtk_entry_get_text(GTK_ENTRY(d->frEntry)));
- gtk_label_set_text (GTK_LABEL(menulabel),newName);
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
-
- c = d->folderlist;
- for (; c; c = g_slist_next(c) ){
- folder = (gchar*) c->data;
- if (!g_strcasecmp(folder,oldName)){
- g_debug ("old %s, new %s", oldName, newName);
- c->data = g_strdup(newName);
- }
+ GSList *c;
+ gchar* folder;
+
+ GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
+ GtkWidget* menulabel = GTK_BIN(menuitem)->child;
+ gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel)));
+ gchar* newName = g_strdup (gtk_entry_get_text(GTK_ENTRY(d->frEntry)));
+ gtk_label_set_text (GTK_LABEL(menulabel),newName);
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
+
+ c = d->folderlist;
+ for (; c; c = g_slist_next(c) )
+ {
+ folder = (gchar*) c->data;
+ if (!g_strcasecmp(folder,oldName))
+ {
+ g_debug ("old %s, new %s", oldName, newName);
+ c->data = g_strdup(newName);
+ }
}
- d->filtmenu = reload_filter_menu (d,d->folderlist);
- MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(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));
- gtk_widget_show_all (GTK_WIDGET(menubox));
- gtk_widget_hide (d->frWin);
+ d->filtmenu = reload_filter_menu (d,d->folderlist);
+ MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(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));
+ gtk_widget_show_all (GTK_WIDGET(menubox));
+ gtk_widget_hide (d->frWin);
}
void cb_frResetBtn_clicked (GtkButton* button, GtkWidget* entry)
{
- gtk_entry_set_text(GTK_ENTRY(entry),"");
+ gtk_entry_set_text(GTK_ENTRY(entry),"");
}
void cb_fnitem_activate (GtkMenuItem* item, MessengerData* d)
{
- g_debug ("folder rename called");
- GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
- GtkWidget* menulabel = GTK_BIN(menuitem)->child;
+ g_debug ("folder rename called");
+ GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
+ GtkWidget* menulabel = GTK_BIN(menuitem)->child;
- gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel)));
- if (!g_strcasecmp(oldName,"Inbox") ||
- !g_strcasecmp(oldName,"Outbox") ||
- !g_strcasecmp(oldName,"Draft") ||
- !g_strcasecmp(oldName,"Sent") ||
- !g_strcasecmp(oldName,"Sent")){
- GtkWidget* msgDialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_CLOSE,
- g_strdup_printf("Current folder '%s'\nis not a custom folder\nCan't rename",oldName) );
- gtk_dialog_run (GTK_DIALOG (msgDialog));
- gtk_widget_destroy (msgDialog);
- }else {
- GtkWidget* hbox;
- GtkWidget* frResetBtn;
- GtkWidget* frConfirmBtn;
+ gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel)));
+ if (!g_strcasecmp(oldName,"Inbox") ||
+ !g_strcasecmp(oldName,"Outbox") ||
+ !g_strcasecmp(oldName,"Draft") ||
+ !g_strcasecmp(oldName,"Sent") ||
+ !g_strcasecmp(oldName,"Sent"))
+ {
+ GtkWidget* msgDialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_CLOSE,
+ g_strdup_printf("Current folder '%s'\nis not a custom folder\nCan't rename",oldName) );
+ gtk_dialog_run (GTK_DIALOG (msgDialog));
+ gtk_widget_destroy (msgDialog);
+ }
+ else
+ {
+ GtkWidget* hbox;
+ GtkWidget* frResetBtn;
+ GtkWidget* frConfirmBtn;
- if ((d->frWin != NULL) && (d->frWin->window != NULL))
- gtk_entry_set_text (GTK_ENTRY(d->frEntry),"");
- else{
- d->frWin = moko_dialog_window_new();
- GtkWidget* frBox = gtk_vbox_new (FALSE,10);
- gtk_widget_set_size_request (frBox, 480, -1);
- GtkWidget* frAlign = gtk_alignment_new (0,0,1,1);
- gtk_alignment_set_padding (GTK_ALIGNMENT(frAlign), 100, 0, 30, 10);
- moko_dialog_window_set_title (MOKO_DIALOG_WINDOW(d->frWin), "Folder Rename");
+ if ((d->frWin != NULL) && (d->frWin->window != NULL))
+ gtk_entry_set_text (GTK_ENTRY(d->frEntry),"");
+ else
+ {
+ d->frWin = moko_dialog_window_new();
+ GtkWidget* frBox = gtk_vbox_new (FALSE,10);
+ gtk_widget_set_size_request (frBox, 480, -1);
+ GtkWidget* frAlign = gtk_alignment_new (0,0,1,1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(frAlign), 100, 0, 30, 10);
+ moko_dialog_window_set_title (MOKO_DIALOG_WINDOW(d->frWin), "Folder Rename");
- GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
- GtkWidget* menulabel = GTK_BIN(menuitem)->child;
- GtkWidget* frLabel = gtk_label_new (g_strdup_printf("Please input new folder name for %s:", gtk_label_get_text (GTK_LABEL(menulabel))));
- gtk_misc_set_alignment (GTK_MISC(frLabel),0,0.5);
- gtk_box_pack_start (GTK_BOX(frBox), frLabel, FALSE, TRUE, 0);
+ GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
+ GtkWidget* menulabel = GTK_BIN(menuitem)->child;
+ GtkWidget* frLabel = gtk_label_new (g_strdup_printf("Please input new folder name for %s:", gtk_label_get_text (GTK_LABEL(menulabel))));
+ gtk_misc_set_alignment (GTK_MISC(frLabel),0,0.5);
+ gtk_box_pack_start (GTK_BOX(frBox), frLabel, FALSE, TRUE, 0);
- d->frEntry = gtk_entry_new ();
- gtk_box_pack_start (GTK_BOX(frBox), d->frEntry, FALSE, TRUE, 0);
+ d->frEntry = gtk_entry_new ();
+ gtk_box_pack_start (GTK_BOX(frBox), d->frEntry, FALSE, TRUE, 0);
- hbox = gtk_hbox_new (FALSE,20);
- frConfirmBtn = gtk_button_new_with_label ("OK");
- frResetBtn = gtk_button_new_with_label ("Reset");
- gtk_box_pack_start (GTK_BOX(hbox), frConfirmBtn, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX(hbox), frResetBtn, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX(frBox), hbox, FALSE, TRUE, 0);
- gtk_container_add (GTK_CONTAINER(frAlign),frBox);
-
- moko_dialog_window_set_contents (MOKO_DIALOG_WINDOW(d->frWin), frAlign);
- g_signal_connect (G_OBJECT(frConfirmBtn),
- "clicked",
- G_CALLBACK(cb_frBtn_clicked),
- d);
- g_signal_connect (G_OBJECT(frResetBtn),
- "clicked",
- G_CALLBACK(cb_frResetBtn_clicked),
- d->frEntry);
- }
- gtk_widget_show_all ( GTK_WIDGET(d->frWin) );
- }
+ hbox = gtk_hbox_new (FALSE,20);
+ frConfirmBtn = gtk_button_new_with_label ("OK");
+ frResetBtn = gtk_button_new_with_label ("Reset");
+ gtk_box_pack_start (GTK_BOX(hbox), frConfirmBtn, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(hbox), frResetBtn, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(frBox), hbox, FALSE, TRUE, 0);
+ gtk_container_add (GTK_CONTAINER(frAlign),frBox);
+
+ moko_dialog_window_set_contents (MOKO_DIALOG_WINDOW(d->frWin), frAlign);
+ g_signal_connect (G_OBJECT(frConfirmBtn),
+ "clicked",
+ G_CALLBACK(cb_frBtn_clicked),
+ d);
+ g_signal_connect (G_OBJECT(frResetBtn),
+ "clicked",
+ G_CALLBACK(cb_frResetBtn_clicked),
+ d->frEntry);
+ }
+ gtk_widget_show_all ( GTK_WIDGET(d->frWin) );
+ }
}
void cb_nfBtn_clicked (GtkButton* button, MessengerData* d)
{
- gchar* folder = g_strdup(gtk_entry_get_text(GTK_ENTRY(d->nfEntry)));
- g_debug ("new folder %s",folder);
- d->folderlist = g_slist_append (d->folderlist,folder);
- d->filtmenu = reload_filter_menu (d,d->folderlist);
- MokoMenuBox* menubox = (MokoMenuBox*)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));
- gtk_widget_show_all (GTK_WIDGET(menubox));
- foldersdb_update (d->folderlist);
- update_folder_sensitive(d, d->folderlist);
- gtk_widget_hide (d->nfWin);
+ gchar* folder = g_strdup(gtk_entry_get_text(GTK_ENTRY(d->nfEntry)));
+ g_debug ("new folder %s",folder);
+ d->folderlist = g_slist_append (d->folderlist,folder);
+ d->filtmenu = reload_filter_menu (d,d->folderlist);
+ MokoMenuBox* menubox = (MokoMenuBox*)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));
+ gtk_widget_show_all (GTK_WIDGET(menubox));
+ foldersdb_update (d->folderlist);
+ update_folder_sensitive(d, d->folderlist);
+ gtk_widget_hide (d->nfWin);
}
void cb_nfResetBtn_clicked (GtkButton* button, MessengerData* d)
{
- gtk_entry_set_text(GTK_ENTRY(d->nfEntry),"");
- g_debug ("reset entry");
+ gtk_entry_set_text(GTK_ENTRY(d->nfEntry),"");
+ g_debug ("reset entry");
}
void cb_dfBtn_clicked (GtkButton* button, MessengerData* d)
{
- GSList* c;
+ GSList* c;
- for( c =d->folderlist; c; c=g_slist_next(c)){
- if(!g_strcasecmp((gchar*)c->data, d->currentfolder)) {
- d->folderlist = g_slist_remove (d->folderlist, c->data);
- break;
- }
+ for( c =d->folderlist; c; c=g_slist_next(c))
+ {
+ if(!g_strcasecmp((gchar*)c->data, d->currentfolder))
+ {
+ d->folderlist = g_slist_remove (d->folderlist, c->data);
+ break;
+ }
}
- d->filtmenu = reload_filter_menu (d,d->folderlist);
- MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(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));
+ d->filtmenu = reload_filter_menu (d,d->folderlist);
+ MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(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));
- /*set the default filter item to "Inbox" */
- gchar* str = g_strdup("Inbox");
- moko_menu_box_set_active_filter (menubox,str);
- gtk_widget_show_all (GTK_WIDGET(menubox));
- update_folder_sensitive (d, d->folderlist);
-
- /*result inform */
- GtkWidget *dialog = gtk_message_dialog_new (GTK_WINDOW(gtk_widget_get_parent_window(GTK_WIDGET(button))),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_CLOSE,
- "Delete successful");
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
+ /*set the default filter item to "Inbox" */
+ gchar* str = g_strdup("Inbox");
+ moko_menu_box_set_active_filter (menubox,str);
+ gtk_widget_show_all (GTK_WIDGET(menubox));
+ update_folder_sensitive (d, d->folderlist);
+
+ /*result inform */
+ GtkWidget *dialog = gtk_message_dialog_new (GTK_WINDOW(gtk_widget_get_parent_window(GTK_WIDGET(button))),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_CLOSE,
+ "Delete successful");
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
}
void delete_folder (MessengerData* d, gchar* oldName)
{
- GSList* c;
+ GSList* c;
- for( c =d->folderlist; c; c=g_slist_next(c)) {
- if(!g_strcasecmp((gchar*)c->data, oldName)) {
- d->folderlist = g_slist_remove (d->folderlist, c->data);
- break;
+ for( c =d->folderlist; c; c=g_slist_next(c))
+ {
+ if(!g_strcasecmp((gchar*)c->data, oldName))
+ {
+ d->folderlist = g_slist_remove (d->folderlist, c->data);
+ break;
}
}
- d->filtmenu = reload_filter_menu (d,d->folderlist);
- MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(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));
+ d->filtmenu = reload_filter_menu (d,d->folderlist);
+ MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(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));
- /*set the default filter item to "Inbox" */
- gchar* str = g_strdup("Inbox");
- moko_menu_box_set_active_filter (menubox,str);
- gtk_widget_show_all (GTK_WIDGET(menubox));
- update_folder_sensitive (d, d->folderlist);
+ /*set the default filter item to "Inbox" */
+ gchar* str = g_strdup("Inbox");
+ moko_menu_box_set_active_filter (menubox,str);
+ gtk_widget_show_all (GTK_WIDGET(menubox));
+ update_folder_sensitive (d, d->folderlist);
}
void on_mmode_rdo_btn_clicked (gchar* folder)
{
- g_debug ("switch to %s folder", folder);
+ g_debug ("switch to %s folder", folder);
}
void cb_cursor_changed(GtkTreeSelection* selection, MessengerData* d)
{
- GtkTreeModel* model;
- GtkTreeIter iter;
- GtkTreeIter childiter;
- GtkTreeView* view;
- message* msg;
- GdkPixbuf* icon;
- GError* error = NULL;
-
- view = gtk_tree_selection_get_tree_view( selection );
- if ( gtk_tree_selection_get_selected( selection, &model, &iter ) ) {
- msg = g_malloc(sizeof(message));
- gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 );
- gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 );
- gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 );
- gtk_tree_model_get( model, &iter, COLUMN_STATUS, &msg->status, -1);
-
- if (msg->status == UNREAD) {
- icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Mode_Read.png", &error);
- msg->status = READ;
- gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(d->filter),&childiter,&iter);
- gtk_list_store_set (d->liststore, &childiter,
- COLUMN_ICON, icon,
- COLUMN_STATUS, msg->status,
- -1);
+ GtkTreeModel* model;
+ GtkTreeIter iter;
+ GtkTreeIter childiter;
+ GtkTreeView* view;
+ message* msg;
+ GdkPixbuf* icon;
+ GError* error = NULL;
+
+ view = gtk_tree_selection_get_tree_view( selection );
+ if ( gtk_tree_selection_get_selected( selection, &model, &iter ) )
+ {
+ msg = g_malloc(sizeof(message));
+ gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 );
+ gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 );
+ gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 );
+ gtk_tree_model_get( model, &iter, COLUMN_STATUS, &msg->status, -1);
+
+ if (msg->status == UNREAD)
+ {
+ icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Mode_Read.png", &error);
+ msg->status = READ;
+ gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(d->filter),&childiter,&iter);
+ gtk_list_store_set (d->liststore, &childiter,
+ COLUMN_ICON, icon,
+ COLUMN_STATUS, msg->status,
+ -1);
}
- detail_read_message (DETAIL_AREA(d->details),msg);
- }
+ detail_read_message (DETAIL_AREA(d->details),msg);
+ }
}
void
on_btnsend_clicked (GtkButton *button,
gpointer user_data)
{
- g_debug("Button send clicked\n");
+ g_debug("Button send clicked\n");
}
void
on_btn_address_clicked (GtkButton *button,
gpointer user_data)
{
- g_debug("Button address clicked\n");
+ g_debug("Button address clicked\n");
}
void cb_search_entry_changed (GtkEditable* editable, MessengerData* d)
{
- GtkWidget* search_entry = GTK_WIDGET(editable);
- 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);
+ GtkWidget* search_entry = GTK_WIDGET(editable);
+ 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)
{
- g_debug ("search on");
- GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
- GtkWidget* menulabel = GTK_BIN(menuitem)->child;
- gtk_label_set_text (GTK_LABEL(menulabel),"Search Result");
- d->searchOn = TRUE;
+ g_debug ("search on");
+ GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
+ GtkWidget* menulabel = GTK_BIN(menuitem)->child;
+ gtk_label_set_text (GTK_LABEL(menulabel),"Search Result");
+ d->searchOn = TRUE;
}
void cb_search_off (MessengerData* d)
{
- g_debug ("search off ");
- GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
- GtkWidget* menulabel = GTK_BIN(menuitem)->child;
- gtk_label_set_text (GTK_LABEL(menulabel),"Inbox");
- d->searchOn = FALSE;
- GtkWidget* search_entry = GTK_WIDGET(moko_tool_box_get_entry (MOKO_TOOL_BOX(d->toolbox)));
- gtk_entry_set_text (GTK_ENTRY(search_entry), "");
- d->s_key = "";
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
+ g_debug ("search off ");
+ GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
+ GtkWidget* menulabel = GTK_BIN(menuitem)->child;
+ gtk_label_set_text (GTK_LABEL(menulabel),"Inbox");
+ d->searchOn = FALSE;
+ GtkWidget* search_entry = GTK_WIDGET(moko_tool_box_get_entry (MOKO_TOOL_BOX(d->toolbox)));
+ gtk_entry_set_text (GTK_ENTRY(search_entry), "");
+ d->s_key = "";
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
}
+void cb_addressBtn_clicked (GtkButton* button, gpointer* data)
+{
+ GtkWidget* contactWin = sms_contact_new();
+ gtk_window_set_decorated (GTK_WINDOW(contactWin),FALSE);
+ GtkWidget* toEntry = (GtkWidget*)data;
+ g_signal_connect (G_OBJECT(contactWin),"contact_select_done",
+ G_CALLBACK(sms_contact_select_done), toEntry);
+ gtk_widget_show(contactWin);
+}
+void sms_contact_select_done (GtkWidget* widget, gpointer data)
+{
+ g_debug("sms select contact done");
+ GtkWidget* toEntry = (GtkWidget*)data;
+ gtk_entry_set_text (GTK_ENTRY(toEntry),SMS_CONTACT_WINDOW(widget)->nameList);
+}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.h 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.h 2007-03-27 08:34:31 UTC (rev 1516)
@@ -50,7 +50,7 @@
gpointer user_data);
void on_btn_address_clicked (GtkButton *button,
gpointer user_data);
-
+
void cb_search_entry_changed (GtkEditable* editable, MessengerData* d);
void cb_search_on (MessengerData* d);
void cb_search_off (MessengerData* d);
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/detail-area.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/detail-area.c 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/detail-area.c 2007-03-27 08:34:31 UTC (rev 1516)
@@ -15,23 +15,20 @@
*
* Current Version: $Rev$ ($Date: 2006/10/05 17:38:14 $) [$Author: Alex $]
*
- */
+ */
#include "detail-area.h"
-#include "callbacks.h"
#include "main.h"
-GtkWidget* detail_area_mode_edit (DetailArea *self);
-GtkWidget* detail_area_new_mail (DetailArea* self);
GtkWidget* detail_area_mode_read (DetailArea* self);
-GtkWidget* detail_area_mode_membership (DetailArea* self);
G_DEFINE_TYPE (DetailArea, detail_area, GTK_TYPE_SCROLLED_WINDOW)
#define DETAIL_AREA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DETAIL_AREA, DetailAreaPrivate))
-typedef struct _DetailAreaPrivate{
-} DetailAreaPrivate;
+typedef struct _DetailAreaPrivate
+ {}
+DetailAreaPrivate;
/* parent class pointer */
GtkWindowClass* parent_class = NULL;
@@ -40,333 +37,128 @@
gboolean
_expose_event_callback(GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
-
- return TRUE;
+ return TRUE;
}
static void
detail_area_dispose (GObject *object)
{
- if (G_OBJECT_CLASS (detail_area_parent_class)->dispose)
- G_OBJECT_CLASS (detail_area_parent_class)->dispose (object);
+ if (G_OBJECT_CLASS (detail_area_parent_class)->dispose)
+ G_OBJECT_CLASS (detail_area_parent_class)->dispose (object);
}
static void
detail_area_finalize (GObject *object)
{
- G_OBJECT_CLASS (detail_area_parent_class)->finalize (object);
+ G_OBJECT_CLASS (detail_area_parent_class)->finalize (object);
}
-
+
static void
detail_area_class_init (DetailAreaClass *klass)
{
- /* hook parent */
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent(klass);
+ /* hook parent */
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ parent_class = g_type_class_peek_parent(klass);
- /* register private data */
- g_type_class_add_private (klass, sizeof (DetailAreaPrivate));
+ /* register private data */
+ g_type_class_add_private (klass, sizeof (DetailAreaPrivate));
- object_class->dispose = detail_area_dispose;
- object_class->finalize = detail_area_finalize;
-
+ object_class->dispose = detail_area_dispose;
+ object_class->finalize = detail_area_finalize;
+
}
static void
detail_area_init (DetailArea *self)
{
- gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(self), GTK_POLICY_NEVER, GTK_POLICY_NEVER );
-
- self->readAttributes = g_malloc (sizeof(ReadAttributes));
- self->editAttributes = g_malloc (sizeof(EditAttributes));
- self->notebook = GTK_NOTEBOOK( gtk_notebook_new() );
- //gtk_notebook_append_page (self->notebook,detail_area_mode_edit(self),NULL);
- //gtk_notebook_append_page (self->notebook,detail_area_new_mail(self),NULL);
- gtk_notebook_append_page (self->notebook,detail_area_mode_read(self),NULL);
-
- //gtk_notebook_append_page (self->notebook,detail_area_mode_membership(self),NULL);
- gtk_notebook_set_show_tabs (self->notebook,FALSE);
- gtk_notebook_set_show_border (self->notebook,FALSE);
- //gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(self), GTK_WIDGET(self->notebook) );
-
+ gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(self), GTK_POLICY_NEVER, GTK_POLICY_NEVER );
+
+ self->readAttributes = g_malloc (sizeof(ReadAttributes));
+ self->editAttributes = g_malloc (sizeof(EditAttributes));
+ self->notebook = GTK_NOTEBOOK( gtk_notebook_new() );
+ gtk_notebook_append_page (self->notebook,detail_area_mode_read(self),NULL);
+ gtk_notebook_set_show_tabs (self->notebook,FALSE);
+ gtk_notebook_set_show_border (self->notebook,FALSE);
}
GtkWidget* detail_area_new (void)
{
- return GTK_WIDGET(g_object_new(TYPE_DETAIL_AREA, NULL ));
+ return GTK_WIDGET(g_object_new(TYPE_DETAIL_AREA, NULL ));
}
GtkWidget* detail_area_get_notebook(DetailArea* self)
{
- return GTK_WIDGET(self->notebook);
+ return GTK_WIDGET(self->notebook);
}
-GtkWidget* detail_area_mode_edit (DetailArea* self)
-{
- /* create detail box */
- self->detailbox = GTK_VBOX(gtk_vbox_new(FALSE,0));
- EditAttributes* editAttributes = self->editAttributes;
-
- /* create tool box */
- self->toolbox = GTK_HBOX(gtk_hbox_new(FALSE,0));
- MokoToolBox* mokobox = (MokoToolBox*)MOKO_TOOL_BOX(moko_tool_box_new());
- GtkHBox* toolbox = moko_tool_box_get_button_box(MOKO_TOOL_BOX(mokobox));
- editAttributes->sendBtn = gtk_button_new_with_label("Send");
- gtk_box_pack_start( GTK_BOX(toolbox), GTK_WIDGET(editAttributes->sendBtn), FALSE, FALSE, 0 );
- editAttributes->addrBtn = gtk_button_new_with_label("Address");
- gtk_box_pack_start( GTK_BOX(toolbox), GTK_WIDGET(editAttributes->addrBtn), FALSE, FALSE, 0 );
-
- /* fill entry area */
- self->entryarea = MOKO_FIXED(moko_fixed_new());
- GtkAlignment* alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
- gtk_alignment_set_padding (alignment, 5, 5, 5, 5);
- GtkWidget* entrybox = gtk_hbox_new(FALSE,0);
- GtkWidget* toLabel = gtk_label_new("To:");
- gtk_widget_set_size_request (toLabel, 40, -1);
- editAttributes->toEntry = gtk_entry_new();
- gtk_widget_set_size_request (editAttributes->toEntry, 300, -1);
- GtkWidget* inputLabel = gtk_label_new("(120/1)");
- gtk_widget_set_size_request (inputLabel, 80, -1);
- gtk_box_pack_start (GTK_BOX(entrybox),toLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(entrybox),editAttributes->toEntry,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(entrybox),inputLabel,FALSE,TRUE,0);
- gtk_container_add (GTK_CONTAINER(alignment), entrybox);
-
- moko_fixed_set_cargo(MOKO_FIXED(self->entryarea),GTK_WIDGET(alignment));
-
- /* fill textview */
- editAttributes->txtView = gtk_text_view_new();
- GtkWidget* viewAlign = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT(viewAlign),0,0,0,50);
- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(editAttributes->txtView),GTK_WRAP_CHAR);
- gtk_container_add (GTK_CONTAINER(viewAlign),GTK_WIDGET(editAttributes->txtView));
-
- gtk_box_pack_start (GTK_BOX(self->detailbox),GTK_WIDGET(mokobox),FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(self->detailbox),GTK_WIDGET(self->entryarea),FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(self->detailbox),GTK_WIDGET(viewAlign),TRUE,TRUE,0);
-
- return GTK_WIDGET(self->detailbox);
-}
-
-//TODO move mail function to edit mode
-GtkWidget* detail_area_new_mail (DetailArea* self) {
-
- /* create detail box */
- self->detailbox = GTK_VBOX(gtk_vbox_new(FALSE,0));
-
- /* create tool box */
- self->toolbox = GTK_HBOX(gtk_hbox_new(FALSE,0));
- MokoToolBox* mokobox = MOKO_TOOL_BOX(moko_tool_box_new());
- GtkHBox* toolbox = moko_tool_box_get_button_box(MOKO_TOOL_BOX(mokobox));
- GtkWidget* button = gtk_button_new_with_label("Send");
- gtk_box_pack_start( GTK_BOX(toolbox), GTK_WIDGET(button), FALSE, FALSE, 0 );
- button = gtk_button_new_with_label("Attach");
- gtk_box_pack_start( GTK_BOX(toolbox), GTK_WIDGET(button), FALSE, FALSE, 0 );
- button = gtk_button_new_with_label("Address");
- gtk_box_pack_start( GTK_BOX(toolbox), GTK_WIDGET(button), FALSE, FALSE, 0 );
-
- /* fill entry area */
- self->entryarea = MOKO_FIXED(moko_fixed_new());
- GtkAlignment* alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
- gtk_alignment_set_padding (alignment, 5, 5, 5, 5);
-
- GtkVBox* entrybox = GTK_VBOX(gtk_vbox_new(FALSE,0));
- gtk_box_set_spacing (GTK_BOX(entrybox),2);
- GtkWidget* hbox = gtk_hbox_new(FALSE,0);
- GtkWidget* toLabel = gtk_label_new("To:");
- gtk_widget_set_size_request (toLabel, 110, -1);
- gtk_misc_set_alignment (GTK_MISC (toLabel),0.8,0.5);
- GtkWidget* toEntry = gtk_entry_new();
- gtk_widget_set_size_request (toEntry, 300, -1);
- gtk_box_pack_start (GTK_BOX(hbox),GTK_WIDGET(toLabel),FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(hbox),GTK_WIDGET(toEntry),FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(entrybox),GTK_WIDGET(hbox),FALSE,TRUE,0);
-
- hbox = gtk_hbox_new(FALSE,0);
- GtkWidget* ccLabel = gtk_label_new("CC:");
- gtk_widget_set_size_request (ccLabel, 110, -1);
- gtk_misc_set_alignment (GTK_MISC (ccLabel),0.8,0.5);
- GtkWidget* ccEntry = gtk_entry_new();
- gtk_widget_set_size_request (ccEntry, 300, -1);
- gtk_box_pack_start (GTK_BOX(hbox),ccLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(hbox),ccEntry,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(entrybox),GTK_WIDGET(hbox),FALSE,TRUE,0);
-
- hbox = gtk_hbox_new(FALSE,0);
- GtkWidget* bccLabel = gtk_label_new("Bcc:");
- gtk_widget_set_size_request (bccLabel, 110, -1);
- gtk_misc_set_alignment (GTK_MISC (bccLabel),0.8,0.5);
- GtkWidget* bccEntry = gtk_entry_new();
- gtk_widget_set_size_request (bccEntry, 300, -1);
- gtk_box_pack_start (GTK_BOX(hbox),bccLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(hbox),bccEntry,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(entrybox),hbox,FALSE,TRUE,0);
-
- hbox = gtk_hbox_new(FALSE,0);
- GtkWidget* subjectLabel = gtk_label_new("Subject:");
- gtk_widget_set_size_request (subjectLabel, 110, -1);
- gtk_misc_set_alignment (GTK_MISC (subjectLabel),0.55,0.5);
- GtkWidget* subjectEntry = gtk_entry_new();
- gtk_widget_set_size_request (subjectEntry, 300, -1);
- gtk_box_pack_start (GTK_BOX(hbox),subjectLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(hbox),subjectEntry,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(entrybox),hbox,FALSE,TRUE,0);
-
- gtk_container_add (GTK_CONTAINER(alignment), GTK_WIDGET(entrybox));
-
- moko_fixed_set_cargo(self->entryarea,GTK_WIDGET(alignment));
-
- /* fill textview */
- /*self->textview = GTK_TEXT_VIEW(gtk_text_view_new ());
- GtkWidget* viewAlign = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT(viewAlign),0,0,0,50);
- gtk_text_view_set_wrap_mode (self->textview,GTK_WRAP_CHAR);
- gtk_container_add (GTK_CONTAINER(viewAlign),GTK_WIDGET(self->textview));
-
- gtk_box_pack_start (GTK_BOX(self->detailbox),GTK_WIDGET(mokobox),FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(self->detailbox),GTK_WIDGET(self->entryarea),FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(self->detailbox),GTK_WIDGET(viewAlign),TRUE,TRUE,0);*/
-
- return GTK_WIDGET(self->detailbox);
-}
-
GtkWidget* detail_area_mode_read (DetailArea* self)
{
- /* create detail box */
- self->detailbox = GTK_VBOX(gtk_vbox_new(FALSE,0));
-
- ReadAttributes* readAttributes = self->readAttributes;
+ /* create detail box */
+ self->detailbox = GTK_VBOX(gtk_vbox_new(FALSE,0));
- GtkWidget* headerbox = gtk_vbox_new(FALSE,0);
- GtkWidget* hbox = gtk_hbox_new(FALSE,0);
- readAttributes->from_label = gtk_label_new ("Alex");
- gtk_misc_set_alignment (GTK_MISC (readAttributes->from_label),1,0.5);
- readAttributes->date_label = gtk_label_new ("Hello");
- gtk_misc_set_alignment (GTK_MISC (readAttributes->date_label),1,0.5);
-
- GtkWidget* cellalign = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT(cellalign), 5,5,5,5);
- GtkWidget* label = gtk_label_new ("From:");
- gtk_misc_set_alignment (GTK_MISC (label),1,0.5);
- gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
- gtk_box_pack_start(GTK_BOX(hbox),readAttributes->from_label,FALSE,FALSE,0);
- gtk_container_add(GTK_CONTAINER(cellalign),hbox);
- gtk_box_pack_start(GTK_BOX(headerbox),cellalign,FALSE,FALSE,0);
+ ReadAttributes* readAttributes = self->readAttributes;
- cellalign = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT(cellalign), 5,5,5,5);
- hbox = gtk_hbox_new(FALSE,0);
- label = gtk_label_new ("Date:");
- gtk_misc_set_alignment (GTK_MISC (label),1,0.5);
- gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
- gtk_box_pack_start(GTK_BOX(hbox),readAttributes->date_label,FALSE,FALSE,0);
- gtk_container_add(GTK_CONTAINER(cellalign),hbox);
- gtk_box_pack_start(GTK_BOX(headerbox),cellalign,FALSE,FALSE,0);
+ GtkWidget* headerbox = gtk_vbox_new(FALSE,0);
+ GtkWidget* hbox = gtk_hbox_new(FALSE,0);
+ readAttributes->from_label = gtk_label_new ("Alex");
+ gtk_misc_set_alignment (GTK_MISC (readAttributes->from_label),1,0.5);
+ readAttributes->date_label = gtk_label_new ("Hello");
+ gtk_misc_set_alignment (GTK_MISC (readAttributes->date_label),1,0.5);
- GtkWidget* hseparator = gtk_hseparator_new();
- GtkWidget* detailAlign = gtk_alignment_new(0, 0, 0, 0);
- gtk_alignment_set_padding (GTK_ALIGNMENT(detailAlign), 10, 10, 10, 50);
- /*GtkWidget* details = gtk_label_new("this is the detail");*/
- readAttributes->details = gtk_label_new( "Add your widget for showing details for the selected\n"
- "\ndata entry here\n \n \n \n \n \n \n \nThis particular label\n \nis very long\n"
- "\nto make the fullscreen\n \ntrigger more interesting\n \n \n");
- gtk_widget_set_size_request (readAttributes->details,420,-1);
- gtk_label_set_line_wrap (GTK_LABEL(readAttributes->details),TRUE);
- gtk_misc_set_alignment (GTK_MISC (readAttributes->details),0.1,0.5);
- gtk_container_add (GTK_CONTAINER(detailAlign),readAttributes->details);
- gtk_box_pack_start(GTK_BOX(self->detailbox),headerbox,FALSE,TRUE,0);
- gtk_box_pack_start(GTK_BOX(self->detailbox),hseparator,FALSE,TRUE,0);
- gtk_box_pack_start(GTK_BOX(self->detailbox),detailAlign,FALSE,TRUE,0);
-
- return GTK_WIDGET(self->detailbox);
-}
+ GtkWidget* cellalign = gtk_alignment_new (0.5, 0.5, 1, 1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(cellalign), 5,5,5,5);
+ GtkWidget* label = gtk_label_new ("From:");
+ gtk_misc_set_alignment (GTK_MISC (label),1,0.5);
+ gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
+ gtk_box_pack_start(GTK_BOX(hbox),readAttributes->from_label,FALSE,FALSE,0);
+ gtk_container_add(GTK_CONTAINER(cellalign),hbox);
+ gtk_box_pack_start(GTK_BOX(headerbox),cellalign,FALSE,FALSE,0);
-GtkWidget* detail_area_mode_membership (DetailArea* self)
-{
+ cellalign = gtk_alignment_new (0.5, 0.5, 1, 1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(cellalign), 5,5,5,5);
+ hbox = gtk_hbox_new(FALSE,0);
+ label = gtk_label_new ("Date:");
+ gtk_misc_set_alignment (GTK_MISC (label),1,0.5);
+ gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
+ gtk_box_pack_start(GTK_BOX(hbox),readAttributes->date_label,FALSE,FALSE,0);
+ gtk_container_add(GTK_CONTAINER(cellalign),hbox);
+ gtk_box_pack_start(GTK_BOX(headerbox),cellalign,FALSE,FALSE,0);
- /* create detail box */
- self->detailbox = GTK_VBOX(gtk_vbox_new(FALSE,0));
- GtkWidget *title = gtk_label_new ("Message Membership");
- gtk_misc_set_alignment (GTK_MISC(title),0.4,1);
- gtk_box_pack_start (GTK_BOX(self->detailbox),title,FALSE,TRUE,0);
+ GtkWidget* hseparator = gtk_hseparator_new();
+ GtkWidget* detailAlign = gtk_alignment_new(0, 0, 0, 0);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(detailAlign), 10, 10, 10, 50);
+ /*GtkWidget* details = gtk_label_new("this is the detail");*/
+ readAttributes->details = gtk_label_new( "Add your widget for showing details for the selected\n"
+ "\ndata entry here\n \n \n \n \n \n \n \nThis particular label\n \nis very long\n"
+ "\nto make the fullscreen\n \ntrigger more interesting\n \n \n");
+ gtk_widget_set_size_request (readAttributes->details,420,-1);
+ gtk_label_set_line_wrap (GTK_LABEL(readAttributes->details),TRUE);
+ gtk_misc_set_alignment (GTK_MISC (readAttributes->details),0.1,0.5);
+ gtk_container_add (GTK_CONTAINER(detailAlign),readAttributes->details);
+ gtk_box_pack_start(GTK_BOX(self->detailbox),headerbox,FALSE,TRUE,0);
+ gtk_box_pack_start(GTK_BOX(self->detailbox),hseparator,FALSE,TRUE,0);
+ gtk_box_pack_start(GTK_BOX(self->detailbox),detailAlign,FALSE,TRUE,0);
- GSList *c;
- GtkWidget *rdo_btn = NULL;
- GSList *rdo_btn_group;
- c = self->folderlist;
-
- for (; c; c = g_slist_next(c) ) {
- gchar* folder = (gchar*) c->data;
- g_debug( "find folder '%s'", folder );
- if(!g_strcasecmp(folder,"Inbox")){
- rdo_btn = gtk_radio_button_new_with_label (NULL, folder);
- rdo_btn_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (rdo_btn));
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rdo_btn), TRUE);
- }
- else
- rdo_btn = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (rdo_btn), folder);
-
- g_signal_connect_swapped (G_OBJECT(rdo_btn),
- "released",
- G_CALLBACK (on_mmode_rdo_btn_clicked),
- c->data);
- gtk_box_pack_start (GTK_BOX (self->detailbox), rdo_btn, FALSE, TRUE, 0);
- }
-
- return GTK_WIDGET(self->detailbox);
+ return GTK_WIDGET(self->detailbox);
}
-void detail_new_sms (DetailArea* self)
-{
- EditAttributes* editAttributes = self->editAttributes;
- gtk_entry_set_text (GTK_ENTRY(editAttributes->toEntry),"");
- GtkTextBuffer * buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (editAttributes->txtView));
- gtk_text_buffer_set_text (buffer,"",0);
- gtk_notebook_set_current_page (self->notebook,PAGE_EDIT_MODE);
-}
-
void detail_read_message (DetailArea* self, message* msg)
{
- ReadAttributes* readAttributes = self->readAttributes;
- if(msg != NULL)
- {
- gtk_label_set_text(GTK_LABEL(readAttributes->from_label), msg->name);
- gtk_label_set_text(GTK_LABEL(readAttributes->date_label), msg->subject);
- gtk_label_set_text(GTK_LABEL(readAttributes->details), msg->folder);
- g_free(msg);
- }
- else
- {
- gtk_label_set_text(GTK_LABEL(readAttributes->from_label), "");
- gtk_label_set_text(GTK_LABEL(readAttributes->date_label), "");
- gtk_label_set_text(GTK_LABEL(readAttributes->details), "please select a message");
- }
- gtk_notebook_set_current_page (self->notebook,PAGE_MODE_READ);
-}
+ ReadAttributes* readAttributes = self->readAttributes;
+ if(msg != NULL)
+ {
+ gtk_label_set_text(GTK_LABEL(readAttributes->from_label), msg->name);
+ gtk_label_set_text(GTK_LABEL(readAttributes->date_label), msg->subject);
+ gtk_label_set_text(GTK_LABEL(readAttributes->details), msg->folder);
+ g_free(msg);
+ }
+ else
+ {
+ gtk_label_set_text(GTK_LABEL(readAttributes->from_label), "");
+ gtk_label_set_text(GTK_LABEL(readAttributes->date_label), "");
+ gtk_label_set_text(GTK_LABEL(readAttributes->details), "please select a message");
+ }
-void detail_reply_message (DetailArea* self, message* msg)
-{
- EditAttributes* editAttributes = self->editAttributes;
- if(msg != NULL)
- {
- gtk_entry_set_text(GTK_ENTRY(editAttributes->toEntry), msg->name);
- g_free(msg);
- }
- GtkTextBuffer * buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (editAttributes->txtView));
- gtk_text_buffer_set_text (buffer,"",0);
- gtk_notebook_set_current_page (self->notebook,PAGE_EDIT_MODE);
+ gtk_notebook_set_current_page (self->notebook,PAGE_MODE_READ);
}
-void detail_forward_message (DetailArea* self, message* msg)
-{
- EditAttributes* editAttributes = self->editAttributes;
- if(msg != NULL)
- {
- gtk_entry_set_text(GTK_ENTRY(editAttributes->toEntry), msg->name);
- g_free(msg);
- }
- GtkTextBuffer * buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (editAttributes->txtView));
- gchar *fwdStr = g_strdup_printf("\n\n\n>%s",msg->content);
- gtk_text_buffer_set_text (buffer,fwdStr,strlen(fwdStr));
- gtk_notebook_set_current_page (self->notebook,PAGE_EDIT_MODE);
-}
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/detail-area.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/detail-area.h 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/detail-area.h 2007-03-27 08:34:31 UTC (rev 1516)
@@ -25,7 +25,6 @@
#include <libmokoui/moko-pixmap-button.h>
#include <libmokoui/moko-tool-box.h>
#include <libmokoui/moko-fixed.h>
-//#include "main.h"
#include "message.h"
G_BEGIN_DECLS
@@ -37,20 +36,25 @@
#define IS_DETAIL_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DETAIL_AREA))
#define DETAIL_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DETAIL_AREA, DetailAreaClass))
-typedef struct _Read_Attributes{
+typedef struct _Read_Attributes
+ {
GtkWidget* from_label;
GtkWidget* date_label;
GtkWidget* details;
-}ReadAttributes;
+ }
+ReadAttributes;
-typedef struct _Edit_Attributes{
+typedef struct _Edit_Attributes
+ {
GtkWidget* sendBtn;
GtkWidget* addrBtn;
GtkWidget* toEntry;
GtkWidget* txtView;
-}EditAttributes;
+ }
+EditAttributes;
-typedef struct _DetailArea{
+typedef struct _DetailArea
+ {
MokoDetailsWindow parent;
GtkNotebook* notebook;
GtkVBox* detailbox;
@@ -60,20 +64,20 @@
guint* page;
ReadAttributes* readAttributes;
EditAttributes* editAttributes;
-}DetailArea;
+ }
+DetailArea;
-typedef struct _DetailAreaClass{
+typedef struct _DetailAreaClass
+ {
MokoDetailsWindowClass parent_class;
-}DetailAreaClass;
+ }
+DetailAreaClass;
GType detail_area_get_type();
GtkWidget* detail_area_new(void);
GtkWidget* detail_area_get_notebook(DetailArea* self);
-void detail_new_sms (DetailArea* self);
void detail_read_message (DetailArea* self, message* msg);
-void detail_reply_message (DetailArea* self, message* msg);
-void detail_forward_message (DetailArea* self, message* msg);
G_END_DECLS
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.c 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.c 2007-03-27 08:34:31 UTC (rev 1516)
@@ -33,83 +33,82 @@
static void
foldersdb_dispose (GObject *object)
{
- if (G_OBJECT_CLASS (foldersdb_parent_class)->dispose)
- G_OBJECT_CLASS (foldersdb_parent_class)->dispose (object);
+ if (G_OBJECT_CLASS (foldersdb_parent_class)->dispose)
+ G_OBJECT_CLASS (foldersdb_parent_class)->dispose (object);
}
static void
foldersdb_finalize (GObject *object)
{
- G_OBJECT_CLASS (foldersdb_parent_class)->finalize (object);
+ G_OBJECT_CLASS (foldersdb_parent_class)->finalize (object);
}
static void
foldersdb_class_init (FoldersDBClass *klass)
{
- g_debug( "foldersdb_class_init" );
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ g_debug( "foldersdb_class_init" );
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- /* register private data */
- /*g_type_class_add_private (klass, sizeof (FoldersDBPrivate));*/
+ /* register private data */
+ /*g_type_class_add_private (klass, sizeof (FoldersDBPrivate));*/
- /* hook virtual methods */
- /* ... */
+ /* hook virtual methods */
+ /* ... */
- /* install properties */
- /* ... */
+ /* install properties */
+ /* ... */
- object_class->dispose = foldersdb_dispose;
- object_class->finalize = foldersdb_finalize;
+ object_class->dispose = foldersdb_dispose;
+ object_class->finalize = foldersdb_finalize;
- FILE* file = fopen( PKGDATADIR "/folderlist", "rw" );
- g_assert( file ); //FIXME error handling, if folder file is not present
- char line[256];
- char *elem;
- char *tok = "\n";
+ FILE* file = fopen( PKGDATADIR "/folderlist", "rw" );
+ g_assert( file ); //FIXME error handling, if folder file is not present
+ char line[256];
+ char *elem;
+ char *tok = "\n";
- while( fgets(line, sizeof(line), file) )
+ while( fgets(line, sizeof(line), file) )
{
- elem = g_strdup(strtok(line, tok));
- klass->folders = g_slist_append(klass->folders, elem);
+ elem = g_strdup(strtok(line, tok));
+ klass->folders = g_slist_append(klass->folders, elem);
}
- fclose( file );
+ fclose( file );
}
static void
foldersdb_init (FoldersDB *self)
-{
-}
+{}
FoldersDB*
foldersdb_new (void)
{
- return g_object_new (TYPE_FOLDERSDB, NULL);
+ return g_object_new (TYPE_FOLDERSDB, NULL);
}
GSList* foldersdb_get_folders(FoldersDB* self)
{
- FoldersDBClass* klass = FOLDERSDB_GET_CLASS(self);
- return klass->folders;
+ FoldersDBClass* klass = FOLDERSDB_GET_CLASS(self);
+ return klass->folders;
}
void foldersdb_update ( GSList* folderlist )
{
- /*FILE* file = g_fopen( PKGDATADIR "/folderlist", "w" );*/
- FILE* file = fopen( PKGDATADIR "/folderlist", "w" );
- g_assert( file );
- GSList* c;
- char *elem;
+ /*FILE* file = g_fopen( PKGDATADIR "/folderlist", "w" );*/
+ FILE* file = fopen( PKGDATADIR "/folderlist", "w" );
+ g_assert( file );
+ GSList* c;
+ char *elem;
- for( c =folderlist; c; c=g_slist_next(c))
- {
- if(g_slist_next(c) != NULL)
- elem = g_strdup_printf( "%s\n", (char*)c->data);
- else
- elem = g_strdup(c->data);
- fputs(elem, file);
- }
- fclose( file );
+ for( c =folderlist; c; c=g_slist_next(c))
+ {
+ if(g_slist_next(c) != NULL)
+ elem = g_strdup_printf( "%s\n", (char*)c->data);
+ else
+ elem = g_strdup(c->data);
+ fputs(elem, file);
+ }
+ fclose( file );
}
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.h 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.h 2007-03-27 08:34:31 UTC (rev 1516)
@@ -18,7 +18,7 @@
*/
#ifndef __FOLDERsDB_H_
-#define __FOLDERsDB_H_
+#define __FOLDERsDB_H_
#include <glib-object.h>
#include <stdio.h>
@@ -33,14 +33,18 @@
#define IS_FOLDERSDB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FOLDERSDB))
#define FOLDERSDB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FOLDERSDB, FoldersDBClass))
-typedef struct {
+typedef struct
+ {
GObject parent;
-} FoldersDB;
+ }
+FoldersDB;
-typedef struct {
+typedef struct
+ {
GObjectClass parent_class;
GSList* folders;
-} FoldersDBClass;
+ }
+FoldersDBClass;
GType foldersdb_get_type (void);
FoldersDB* foldersdb_new (void);
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-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/main.c 2007-03-27 08:34:31 UTC (rev 1516)
@@ -22,8 +22,10 @@
#include <fcntl.h>
#include <errno.h>
#include <signal.h>
+#include <stdlib.h>
#include <string.h>
-#include <stdlib.h>
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib.h>
#include "main.h"
#include "foldersdb.h"
@@ -39,349 +41,375 @@
#include <gtk/gtk.h>
+typedef gboolean (*GtkTreeModelFilterVisibleFunc) (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer data);
+
gboolean init_dbus (MessengerData* d)
{
- DBusError error;
+ DBusError error;
- /* Get a connection to the session bus */
- dbus_error_init (&error);
- d->bus = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
+ /* Get a connection to the session bus */
+ dbus_error_init (&error);
+ d->bus = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
- if (!d->bus)
+ if (!d->bus)
{
- g_warning ("Failed to connect to the D-BUS daemon: %s", error.message);
- return FALSE;
+ g_warning ("Failed to connect to the D-BUS daemon: %s", error.message);
+ return FALSE;
}
- if (dbus_error_is_set (&error))
+ if (dbus_error_is_set (&error))
{
- fprintf(stdout, "Connection Error (%s)\n", error.message);
- dbus_error_free (&error);
+ fprintf(stdout, "Connection Error (%s)\n", error.message);
+ dbus_error_free (&error);
}
- if (NULL == d->bus)
+ if (NULL == d->bus)
{
- fprintf(stdout, "Connection Error: bus == NULL \n");
- exit (1);
+ fprintf(stdout, "Connection Error: bus == NULL \n");
+ exit (1);
}
- return TRUE;
+ return TRUE;
}
int main( int argc, char** argv )
{
- g_debug( "openmoko-messenger starting up" );
+ g_debug( "openmoko-messenger starting up" );
- /* Initialize GTK+ */
- gtk_init( &argc, &argv );
+ /* Initialize GTK+ */
+ gtk_init( &argc, &argv );
- MessengerData* d = g_new ( MessengerData, 1);
- d->foldersdb = foldersdb_new();
- d->s_key = "";
- d->msg_num = 0;
- d->app = MOKO_APPLICATION (moko_application_get_instance());
- d->currentfolder = g_strdup("Inbox");
- g_set_application_name( "Messages" );
-
- if (init_dbus(d))
- g_debug("D-Bus initialize successfully");
+ MessengerData* d = g_new ( MessengerData, 1);
+ d->foldersdb = foldersdb_new();
+ d->s_key = "";
+ d->msg_num = 0;
+ d->app = MOKO_APPLICATION (moko_application_get_instance());
+ d->currentfolder = g_strdup("Inbox");
+ g_set_application_name( "Messages" );
- /* ui */
- setup_ui(d);
+ if (init_dbus(d))
+ g_debug("D-Bus initialize successfully");
- /* 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);
+ /* ui */
+ setup_ui(d);
- /* show everything and run main loop */
- gtk_window_set_decorated (GTK_WINDOW(d->window), FALSE);
- gtk_widget_show_all (GTK_WIDGET(d->window));
- gtk_main();
+ /* disable mmitem if necessary*/
+ update_folder_sensitive (d, d->folderlist);
- return 0;
+ /* 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_window_set_decorated (GTK_WINDOW(d->window), FALSE);
+ gtk_widget_show_all (GTK_WIDGET(d->window));
+ gtk_main();
+
+ return 0;
+
}
void update_folder_sensitive (MessengerData* d, GSList* folderlist)
{
- if (g_slist_length (folderlist) > 5){
- gtk_widget_set_sensitive (d->mmitem, TRUE);
- gtk_widget_set_sensitive (d->fnitem, TRUE);
+ if (g_slist_length (folderlist) > 5)
+ {
+ gtk_widget_set_sensitive (d->mmitem, TRUE);
+ gtk_widget_set_sensitive (d->fnitem, TRUE);
}
- else{
- gtk_widget_set_sensitive (d->mmitem, FALSE);
- gtk_widget_set_sensitive (d->fnitem, FALSE);
+ else
+ {
+ gtk_widget_set_sensitive (d->mmitem, FALSE);
+ gtk_widget_set_sensitive (d->fnitem, FALSE);
}
}
GtkWidget* reload_filter_menu (MessengerData* d, GSList* folderlist)
{
- GSList *c;
- GtkWidget* filtmenu;
+ GSList *c;
+ GtkWidget* filtmenu;
- filtmenu = gtk_menu_new();
- c = folderlist;
- for (; c; c = g_slist_next(c) ){
- gchar* folder = (gchar*) c->data;
- g_debug( "adding folder '%s'", folder );
- gtk_menu_shell_append( GTK_MENU_SHELL( filtmenu ), gtk_menu_item_new_with_label( folder ) );
+ filtmenu = gtk_menu_new();
+ c = folderlist;
+ for (; c; c = g_slist_next(c) )
+ {
+ gchar* folder = (gchar*) c->data;
+ g_debug( "adding folder '%s'", folder );
+ gtk_menu_shell_append( GTK_MENU_SHELL( filtmenu ), gtk_menu_item_new_with_label( folder ) );
}
- return filtmenu;
+ return filtmenu;
}
void setup_ui( MessengerData* d )
{
- /* main window */
- d->window = MOKO_PANED_WINDOW(moko_paned_window_new());
- d->mmWin = NULL;
-
- /* application menu */
- d->menu = gtk_menu_new();
- gtk_widget_show (d->menu);
- d->mmitem = gtk_menu_item_new_with_label( "Message Membership" );
- d->fnitem = gtk_menu_item_new_with_label( "Folder Rename" );
- GtkWidget* accountitem = gtk_menu_item_new_with_label( "Account" );
- GtkWidget* helpitem = gtk_menu_item_new_with_label( "Help" );
- GtkWidget* sepitem = gtk_separator_menu_item_new();
- GtkWidget* closeitem = gtk_menu_item_new_with_label( "Close" );
- g_signal_connect( G_OBJECT(closeitem), "activate", G_CALLBACK(main_quit), d );
- g_signal_connect( G_OBJECT(d->mmitem), "activate", G_CALLBACK(cb_mmitem_activate), d );
- g_signal_connect( G_OBJECT(d->fnitem), "activate", G_CALLBACK(cb_fnitem_activate), d );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), d->mmitem );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), d->fnitem );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), accountitem );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), helpitem );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), sepitem );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), closeitem );
- moko_paned_window_set_application_menu( d->window, GTK_MENU(d->menu) );
+ /* main window */
+ d->window = MOKO_PANED_WINDOW(moko_paned_window_new());
+ d->mmWin = NULL;
- /* filter menu */
- d->filtmenu = gtk_menu_new();
- gtk_widget_show (d->filtmenu);
- d->folderlist = foldersdb_get_folders( d->foldersdb );
- d->filtmenu = reload_filter_menu( d, d->folderlist );
+ /* application menu */
+ d->menu = gtk_menu_new();
+ gtk_widget_show (d->menu);
+ d->mmitem = gtk_menu_item_new_with_label( "Message Membership" );
+ d->fnitem = gtk_menu_item_new_with_label( "Folder Rename" );
+ GtkWidget* accountitem = gtk_menu_item_new_with_label( "Account" );
+ GtkWidget* helpitem = gtk_menu_item_new_with_label( "Help" );
+ GtkWidget* sepitem = gtk_separator_menu_item_new();
+ GtkWidget* closeitem = gtk_menu_item_new_with_label( "Close" );
+ g_signal_connect( G_OBJECT(closeitem), "activate", G_CALLBACK(main_quit), d );
+ g_signal_connect( G_OBJECT(d->mmitem), "activate", G_CALLBACK(cb_mmitem_activate), d );
+ g_signal_connect( G_OBJECT(d->fnitem), "activate", G_CALLBACK(cb_fnitem_activate), d );
+ gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), d->mmitem );
+ gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), d->fnitem );
+ gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), accountitem );
+ gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), helpitem );
+ gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), sepitem );
+ gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), closeitem );
+ moko_paned_window_set_application_menu( d->window, GTK_MENU(d->menu) );
- moko_paned_window_set_filter_menu( d->window, GTK_MENU(d->filtmenu) );
- GtkWidget* menubox = GTK_WIDGET(moko_paned_window_get_menubox(d->window));
- g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d );
+ /* filter menu */
+ d->filtmenu = gtk_menu_new();
+ gtk_widget_show (d->filtmenu);
+ d->folderlist = foldersdb_get_folders( d->foldersdb );
+ d->filtmenu = reload_filter_menu( d, d->folderlist );
- /* connect close event */
- g_signal_connect( G_OBJECT(d->window), "delete_event", G_CALLBACK( main_quit ), d );
+ moko_paned_window_set_filter_menu( d->window, GTK_MENU(d->filtmenu) );
+ GtkWidget* menubox = GTK_WIDGET(moko_paned_window_get_menubox(d->window));
+ g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d );
- /* set navagation area */
- populate_navigation_area( d );
+ /* connect close event */
+ g_signal_connect( G_OBJECT(d->window), "delete_event", G_CALLBACK( main_quit ), d );
- /* set toolbox */
- GtkWidget* newButton;
- GtkWidget* modeButton;
- GtkWidget* getmailButton;
- GtkWidget* deleteButton;
+ /* set navagation area */
+ populate_navigation_area( d );
- GtkWidget* newMenu;
- GtkWidget* modeMenu;
- GtkWidget* deleteMenu;
-
- GtkWidget* image;
+ /* set toolbox */
+ GtkWidget* newButton;
+ GtkWidget* modeButton;
+ GtkWidget* getmailButton;
+ GtkWidget* deleteButton;
- /* set tool bar */
- d->toolbox = moko_tool_box_new_with_search();
- gtk_widget_show (d->toolbox);
- GtkWidget* searchEntry = GTK_WIDGET (moko_tool_box_get_entry (MOKO_TOOL_BOX(d->toolbox)));
- gtk_widget_show (searchEntry);
- g_signal_connect( G_OBJECT(searchEntry), "changed", G_CALLBACK(cb_search_entry_changed), d );
- g_signal_connect_swapped ( G_OBJECT(d->toolbox), "searchbox_visible", G_CALLBACK(cb_search_on), d );
- g_signal_connect_swapped( G_OBJECT(d->toolbox), "searchbox_invisible", G_CALLBACK(cb_search_off), d );
+ GtkWidget* newMenu;
+ GtkWidget* modeMenu;
+ GtkWidget* deleteMenu;
- /* set action buttons*/
- deleteMenu = gtk_menu_new();
- GtkWidget* delMsgItem = gtk_image_menu_item_new_with_label( "Delete Message" );
- GtkWidget* delFolderItem = gtk_image_menu_item_new_with_label( "Delete Folder" );
- g_signal_connect( G_OBJECT(delFolderItem), "activate", G_CALLBACK(cb_delete_folder), d );
- g_signal_connect( G_OBJECT(delMsgItem), "activate", G_CALLBACK(cb_delete_message), d );
+ GtkWidget* image;
- gtk_menu_shell_append( GTK_MENU_SHELL(deleteMenu), GTK_WIDGET(delMsgItem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(deleteMenu), GTK_WIDGET(delFolderItem) );
- gtk_widget_show_all (deleteMenu);
- deleteButton = GTK_WIDGET (moko_tool_box_add_action_button(MOKO_TOOL_BOX(d->toolbox)));
- image = gtk_image_new_from_file (PKGDATADIR "/Delete_Message.png");
- moko_pixmap_button_set_center_image (MOKO_PIXMAP_BUTTON(deleteButton),image);
- moko_pixmap_button_set_menu (MOKO_PIXMAP_BUTTON(deleteButton), GTK_MENU(deleteMenu));
+ /* set tool bar */
+ d->toolbox = moko_tool_box_new_with_search();
+ gtk_widget_show (d->toolbox);
+ GtkWidget* searchEntry = GTK_WIDGET (moko_tool_box_get_entry (MOKO_TOOL_BOX(d->toolbox)));
+ gtk_widget_show (searchEntry);
+ g_signal_connect( G_OBJECT(searchEntry), "changed", G_CALLBACK(cb_search_entry_changed), d );
+ g_signal_connect_swapped ( G_OBJECT(d->toolbox), "searchbox_visible", G_CALLBACK(cb_search_on), d );
+ g_signal_connect_swapped( G_OBJECT(d->toolbox), "searchbox_invisible", G_CALLBACK(cb_search_off), d );
- getmailButton = GTK_WIDGET(moko_tool_box_add_action_button(MOKO_TOOL_BOX(d->toolbox)));
- image = gtk_image_new_from_file (PKGDATADIR "/GetMail.png");
- moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(getmailButton),image);
+ /* set action buttons*/
+ deleteMenu = gtk_menu_new();
+ GtkWidget* delMsgItem = gtk_image_menu_item_new_with_label( "Delete Message" );
+ GtkWidget* delFolderItem = gtk_image_menu_item_new_with_label( "Delete Folder" );
+ g_signal_connect( G_OBJECT(delFolderItem), "activate", G_CALLBACK(cb_delete_folder), d );
+ g_signal_connect( G_OBJECT(delMsgItem), "activate", G_CALLBACK(cb_delete_message), d );
- modeMenu = gtk_menu_new();
- GtkWidget* modeReadItem = gtk_image_menu_item_new_with_label( "Mode Read" );
- GtkWidget* modeReplyItem = gtk_image_menu_item_new_with_label( "Mode Reply" );
- GtkWidget* modeFwdItem = gtk_image_menu_item_new_with_label( "Mode Forward" );
+ gtk_menu_shell_append( GTK_MENU_SHELL(deleteMenu), GTK_WIDGET(delMsgItem) );
+ gtk_menu_shell_append( GTK_MENU_SHELL(deleteMenu), GTK_WIDGET(delFolderItem) );
+ gtk_widget_show_all (deleteMenu);
+ deleteButton = GTK_WIDGET (moko_tool_box_add_action_button(MOKO_TOOL_BOX(d->toolbox)));
+ image = gtk_image_new_from_file (PKGDATADIR "/Delete_Message.png");
+ moko_pixmap_button_set_center_image (MOKO_PIXMAP_BUTTON(deleteButton),image);
+ moko_pixmap_button_set_menu (MOKO_PIXMAP_BUTTON(deleteButton), GTK_MENU(deleteMenu));
- gtk_menu_shell_append( GTK_MENU_SHELL(modeMenu),modeReadItem);
- gtk_menu_shell_append( GTK_MENU_SHELL(modeMenu), modeReplyItem);
- gtk_menu_shell_append( GTK_MENU_SHELL(modeMenu), modeFwdItem);
- g_signal_connect( G_OBJECT(modeReadItem), "activate", G_CALLBACK(cb_mode_read), d );
- g_signal_connect( G_OBJECT(modeReplyItem), "activate", G_CALLBACK(cb_mode_reply), d );
- g_signal_connect( G_OBJECT(modeFwdItem), "activate", G_CALLBACK(cb_mode_forward), d );
- gtk_widget_show_all (modeMenu);
- modeButton = GTK_WIDGET(moko_tool_box_add_action_button(MOKO_TOOL_BOX(d->toolbox)));
- image = gtk_image_new_from_file (PKGDATADIR "/Mode_Read.png");
- moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(modeButton),image);
- moko_pixmap_button_set_menu ( MOKO_PIXMAP_BUTTON(modeButton), GTK_MENU(modeMenu) );
+ getmailButton = GTK_WIDGET(moko_tool_box_add_action_button(MOKO_TOOL_BOX(d->toolbox)));
+ image = gtk_image_new_from_file (PKGDATADIR "/GetMail.png");
+ moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(getmailButton),image);
- newMenu = gtk_menu_new();
- GtkWidget* newMsgItem = gtk_image_menu_item_new_with_label("New SMS") ;
- GtkWidget* newFolderItem = gtk_image_menu_item_new_with_label("New Folder") ;
- GtkWidget* newMailItem = gtk_image_menu_item_new_with_label("New Mail") ;
+ modeMenu = gtk_menu_new();
+ GtkWidget* modeReadItem = gtk_image_menu_item_new_with_label( "Mode Read" );
+ GtkWidget* modeReplyItem = gtk_image_menu_item_new_with_label( "Mode Reply" );
+ GtkWidget* modeFwdItem = gtk_image_menu_item_new_with_label( "Mode Forward" );
- gtk_menu_shell_append( GTK_MENU_SHELL(newMenu), newMsgItem);
- gtk_menu_shell_append( GTK_MENU_SHELL(newMenu), newMailItem);
- gtk_menu_shell_append( GTK_MENU_SHELL(newMenu), newFolderItem);
- gtk_widget_show_all (newMenu);
- g_signal_connect( G_OBJECT(newMsgItem), "activate", G_CALLBACK(cb_new_sms), d );
- g_signal_connect( G_OBJECT(newMailItem), "activate", G_CALLBACK(cb_new_mail), d );
- g_signal_connect( G_OBJECT(newFolderItem), "activate", G_CALLBACK(cb_new_folder), d );
- newButton = GTK_WIDGET(moko_tool_box_add_action_button(MOKO_TOOL_BOX(d->toolbox)));
- image = gtk_image_new_from_file (PKGDATADIR "/New_Mail.png");
- moko_pixmap_button_set_center_image (MOKO_PIXMAP_BUTTON(newButton),image);
- moko_pixmap_button_set_menu ( MOKO_PIXMAP_BUTTON(newButton),GTK_MENU(newMenu) );
+ gtk_menu_shell_append( GTK_MENU_SHELL(modeMenu),modeReadItem);
+ gtk_menu_shell_append( GTK_MENU_SHELL(modeMenu), modeReplyItem);
+ gtk_menu_shell_append( GTK_MENU_SHELL(modeMenu), modeFwdItem);
+ g_signal_connect( G_OBJECT(modeReadItem), "activate", G_CALLBACK(cb_mode_read), d );
+ g_signal_connect( G_OBJECT(modeReplyItem), "activate", G_CALLBACK(cb_mode_reply), d );
+ g_signal_connect( G_OBJECT(modeFwdItem), "activate", G_CALLBACK(cb_mode_forward), d );
+ gtk_widget_show_all (modeMenu);
+ modeButton = GTK_WIDGET(moko_tool_box_add_action_button(MOKO_TOOL_BOX(d->toolbox)));
+ image = gtk_image_new_from_file (PKGDATADIR "/Mode_Read.png");
+ moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(modeButton),image);
+ moko_pixmap_button_set_menu ( MOKO_PIXMAP_BUTTON(modeButton), GTK_MENU(modeMenu) );
- moko_paned_window_add_toolbox( d->window, MOKO_TOOL_BOX(d->toolbox) );
+ newMenu = gtk_menu_new();
+ GtkWidget* newMsgItem = gtk_image_menu_item_new_with_label("New SMS") ;
+ GtkWidget* newFolderItem = gtk_image_menu_item_new_with_label("New Folder") ;
+ GtkWidget* newMailItem = gtk_image_menu_item_new_with_label("New Mail") ;
- /* detail area */
- populate_detail_area (d);
-
- /* Fix default "Filter Menu" bug*/
- d->currentfolder = g_strdup("Inbox");
- GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
- GtkWidget* menulabel = GTK_BIN(menuitem)->child;
- gtk_label_set_text (GTK_LABEL(menulabel),"Inbox");
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
-
- /* select the first column */
- gint index = 0;
- GtkTreeSelection* tree_selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(d->view) );
- GtkTreePath *path = gtk_tree_path_new_from_indices( index, -1 );
- gtk_tree_selection_select_path( tree_selection, path );
- gtk_tree_view_set_cursor( GTK_TREE_VIEW(d->view), path, NULL, FALSE );
- gtk_widget_grab_focus (d->view);
+ gtk_menu_shell_append( GTK_MENU_SHELL(newMenu), newMsgItem);
+ gtk_menu_shell_append( GTK_MENU_SHELL(newMenu), newMailItem);
+ gtk_menu_shell_append( GTK_MENU_SHELL(newMenu), newFolderItem);
+ gtk_widget_show_all (newMenu);
+ g_signal_connect( G_OBJECT(newMsgItem), "activate", G_CALLBACK(cb_new_sms), d );
+ g_signal_connect( G_OBJECT(newMailItem), "activate", G_CALLBACK(cb_new_mail), d );
+ g_signal_connect( G_OBJECT(newFolderItem), "activate", G_CALLBACK(cb_new_folder), d );
+ newButton = GTK_WIDGET(moko_tool_box_add_action_button(MOKO_TOOL_BOX(d->toolbox)));
+ image = gtk_image_new_from_file (PKGDATADIR "/New_Mail.png");
+ moko_pixmap_button_set_center_image (MOKO_PIXMAP_BUTTON(newButton),image);
+ moko_pixmap_button_set_menu ( MOKO_PIXMAP_BUTTON(newButton),GTK_MENU(newMenu) );
+
+ moko_paned_window_add_toolbox( d->window, MOKO_TOOL_BOX(d->toolbox) );
+
+ /* detail area */
+ populate_detail_area (d);
+
+ /* Fix default "Filter Menu" bug*/
+ d->currentfolder = g_strdup("Inbox");
+ GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));
+ GtkWidget* menulabel = GTK_BIN(menuitem)->child;
+ gtk_label_set_text (GTK_LABEL(menulabel),"Inbox");
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
+
+ /* select the first column */
+ gint index = 0;
+ GtkTreeSelection* tree_selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(d->view) );
+ GtkTreePath *path = gtk_tree_path_new_from_indices( index, -1 );
+ gtk_tree_selection_select_path( tree_selection, path );
+ gtk_tree_view_set_cursor( GTK_TREE_VIEW(d->view), path, NULL, FALSE );
+ gtk_widget_grab_focus (d->view);
+
+ /* temporary setting */
+ GtkSettings* settings = gtk_settings_get_default();
+ g_object_set(settings,
+ "gtk-theme-name","openmoko-standard",
+ NULL);
}
gboolean filter_visible_function (GtkTreeModel* model, GtkTreeIter* iter, MessengerData* d)
{
- gchar* folder;
- gchar* from;
- gchar* subject;
+ gchar* folder;
+ gchar* from;
+ gchar* subject;
- gtk_tree_model_get (model, iter, COLUMN_FOLDER, &folder, -1);
- gtk_tree_model_get (model, iter, COLUMN_FROM, &from, -1);
- gtk_tree_model_get (model, iter, COLUMN_SUBJECT, &subject, -1);
-
- if (d->searchOn){
- if ((strlen(d->s_key) > 0) && !strcasestr(from, d->s_key) && !strcasestr(subject, d->s_key))
- return FALSE;
- }else {
- gtk_menu_set_active (GTK_MENU(d->filtmenu),0);
- if(g_strcasecmp(folder,d->currentfolder))
- return FALSE;
+ gtk_tree_model_get (model, iter, COLUMN_FOLDER, &folder, -1);
+ gtk_tree_model_get (model, iter, COLUMN_FROM, &from, -1);
+ gtk_tree_model_get (model, iter, COLUMN_SUBJECT, &subject, -1);
+
+ if (d->searchOn)
+ {
+ if ((strlen(d->s_key) > 0) && !strcasestr(from, d->s_key) && !strcasestr(subject, d->s_key))
+ return FALSE;
}
+ else
+ {
+ gtk_menu_set_active (GTK_MENU(d->filtmenu),0);
+ if(g_strcasecmp(folder,d->currentfolder))
+ return FALSE;
+ }
- return TRUE;
+ return TRUE;
}
void cell_data_func (GtkTreeViewColumn *col,
- GtkCellRenderer *renderer,
- GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer user_data)
+ GtkCellRenderer *renderer,
+ GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer user_data)
{
- gint status;
- gtk_tree_model_get(model, iter, COLUMN_STATUS, &status, -1);
+ gint status;
+ gtk_tree_model_get(model, iter, COLUMN_STATUS, &status, -1);
- if (status == UNREAD)
- g_object_set(renderer, "weight", PANGO_WEIGHT_BOLD, "weight-set", TRUE, NULL);
- else g_object_set(renderer, "weight", PANGO_WEIGHT_BOLD, "weight-set", FALSE, NULL);
+ if (status == UNREAD)
+ g_object_set(renderer, "weight", PANGO_WEIGHT_BOLD, "weight-set", TRUE, NULL);
+ else g_object_set(renderer, "weight", PANGO_WEIGHT_BOLD, "weight-set", FALSE, NULL);
}
void populate_navigation_area( MessengerData* d )
{
- guint i;
- GdkPixbuf* icon = NULL;
- GError* error = NULL;
- GtkTreeIter iter;
-
- d->liststore = gtk_list_store_new( NUM_COLS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING );
- d->filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (d->liststore),NULL);
- d->view = moko_tree_view_new_with_model (GTK_TREE_MODEL (d->filter));
-
- for (i = 0; i < G_N_ELEMENTS(names); ++i) {
- gtk_list_store_append(d->liststore, &iter);
- switch(states[i]) {
- case UNREAD : icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Unread.png", &error);break;
- case READ : icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Mode_Read.png", &error);break;
- case REPLIED : icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Mode_Reply.png", &error);break;
- case FORWARD : icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Mode_Forward.png", &error);break;
- }
- gtk_list_store_set(d->liststore, &iter,
- COLUMN_ICON, icon,
- COLUMN_FROM, names[i],
- COLUMN_SUBJECT, subjects[i],
- COLUMN_CONTENT, contents[i],
- COLUMN_STATUS, states[i],
- COLUMN_FOLDER, folders[i],
- -1);
+ guint i;
+ GdkPixbuf* icon = NULL;
+ GError* error = NULL;
+ GtkTreeIter iter;
+
+ d->liststore = gtk_list_store_new( NUM_COLS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING );
+ d->filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (d->liststore),NULL);
+ d->view = moko_tree_view_new_with_model (GTK_TREE_MODEL (d->filter));
+
+ for (i = 0; i < G_N_ELEMENTS(names); ++i)
+ {
+ gtk_list_store_append(d->liststore, &iter);
+ switch(states[i])
+ {
+ case UNREAD :
+ icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Unread.png", &error);
+ break;
+ case READ :
+ icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Mode_Read.png", &error);
+ break;
+ case REPLIED :
+ icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Mode_Reply.png", &error);
+ break;
+ case FORWARD :
+ icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Mode_Forward.png", &error);
+ break;
+ }
+ gtk_list_store_set(d->liststore, &iter,
+ COLUMN_ICON, icon,
+ COLUMN_FROM, names[i],
+ COLUMN_SUBJECT, subjects[i],
+ COLUMN_CONTENT, contents[i],
+ COLUMN_STATUS, states[i],
+ COLUMN_FOLDER, folders[i],
+ -1);
}
- gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (d->filter),
- filter_visible_function,
- d,
- NULL);
- GtkCellRenderer* ren;
- GtkTreeViewColumn* column = gtk_tree_view_column_new();
- gtk_tree_view_column_set_title(column, "From");
-
- /* Add status picture */
- ren = gtk_cell_renderer_pixbuf_new();
- gtk_tree_view_column_pack_start(column, ren, FALSE);
- gtk_tree_view_column_set_attributes(column, ren, "pixbuf", COLUMN_ICON, NULL);
-
- /* add message from name */
- ren = gtk_cell_renderer_text_new();
- gtk_tree_view_column_pack_start(column, ren, TRUE);
- gtk_tree_view_column_set_attributes(column, ren,
- "text", COLUMN_FROM,
- NULL);
+ gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (d->filter),
+ (GtkTreeModelFilterVisibleFunc)filter_visible_function,
+ d,
+ NULL);
+ GtkCellRenderer* ren;
+ GtkTreeViewColumn* column = gtk_tree_view_column_new();
+ gtk_tree_view_column_set_title(column, "From");
- /* Bold if UNREAD */
- gtk_tree_view_column_set_cell_data_func (column, ren, cell_data_func, d->liststore, NULL);
- moko_tree_view_append_column( MOKO_TREE_VIEW(d->view), column );
+ /* Add status picture */
+ ren = gtk_cell_renderer_pixbuf_new();
+ gtk_tree_view_column_pack_start(column, ren, FALSE);
+ gtk_tree_view_column_set_attributes(column, ren, "pixbuf", COLUMN_ICON, NULL);
- ren = gtk_cell_renderer_text_new();
- column = gtk_tree_view_column_new();
- gtk_tree_view_column_set_title(column, "Subject");
- gtk_tree_view_column_pack_start(column, ren, TRUE);
- gtk_tree_view_column_set_attributes(column, ren, "text", COLUMN_SUBJECT, NULL);
- gtk_tree_view_column_set_cell_data_func (column, ren, cell_data_func, d->liststore, NULL);
- moko_tree_view_append_column( MOKO_TREE_VIEW(d->view), column );
+ /* add message from name */
+ ren = gtk_cell_renderer_text_new();
+ gtk_tree_view_column_pack_start(column, ren, TRUE);
+ gtk_tree_view_column_set_attributes(column, ren,
+ "text", COLUMN_FROM,
+ NULL);
- GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(d->view) );
- g_signal_connect( G_OBJECT(selection), "changed", G_CALLBACK(cb_cursor_changed), d );
- moko_paned_window_set_upper_pane( d->window, GTK_WIDGET(moko_tree_view_put_into_scrolled_window(MOKO_TREE_VIEW(d->view))) );
+ /* Bold if UNREAD */
+ gtk_tree_view_column_set_cell_data_func (column, ren, cell_data_func, d->liststore, NULL);
+ moko_tree_view_append_column( MOKO_TREE_VIEW(d->view), column );
+
+ ren = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new();
+ gtk_tree_view_column_set_title(column, "Subject");
+ gtk_tree_view_column_pack_start(column, ren, TRUE);
+ gtk_tree_view_column_set_attributes(column, ren, "text", COLUMN_SUBJECT, NULL);
+ gtk_tree_view_column_set_cell_data_func (column, ren, cell_data_func, d->liststore, NULL);
+ moko_tree_view_append_column( MOKO_TREE_VIEW(d->view), column );
+
+ GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(d->view) );
+ g_signal_connect( G_OBJECT(selection), "changed", G_CALLBACK(cb_cursor_changed), d );
+ moko_paned_window_set_upper_pane( d->window, GTK_WIDGET(moko_tree_view_put_into_scrolled_window(MOKO_TREE_VIEW(d->view))) );
}
void populate_detail_area( MessengerData* d )
{
- d->details = detail_area_new();
- gtk_widget_show (d->details);
- gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(d->details), detail_area_get_notebook(DETAIL_AREA(d->details)));
- moko_paned_window_set_lower_pane( d->window, GTK_WIDGET(moko_details_window_put_in_box(DETAIL_AREA(d->details))));
+ d->details = detail_area_new();
+ gtk_widget_show (d->details);
+ gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(d->details), detail_area_get_notebook(DETAIL_AREA(d->details)));
+ moko_paned_window_set_lower_pane( MOKO_PANED_WINDOW(d->window), GTK_WIDGET(moko_details_window_put_in_box(d->details)));
}
void main_quit(GtkMenuItem* item, MessengerData* d)
{
- foldersdb_update (d->folderlist);
- send_signal_to_footer(d->bus,"");
- gtk_main_quit();
+ foldersdb_update (d->folderlist);
+ send_signal_to_footer(d->bus,"");
+ gtk_main_quit();
}
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-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/main.h 2007-03-27 08:34:31 UTC (rev 1516)
@@ -26,13 +26,13 @@
#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"
-typedef struct _MessengerData{
+typedef struct _MessengerData
+ {
MokoApplication* app;
MokoPanedWindow* window;
GtkWidget* menu;
@@ -56,26 +56,27 @@
GtkWidget* nfEntry;
GtkWidget* frEntry;
DBusConnection *bus;
-}MessengerData;
+ }
+MessengerData;
enum {
- COLUMN_ICON,
- COLUMN_FROM,
- COLUMN_SUBJECT,
- COLUMN_CONTENT,
- COLUMN_STATUS,
- COLUMN_FOLDER,
- NUM_COLS,
+ COLUMN_ICON,
+ COLUMN_FROM,
+ COLUMN_SUBJECT,
+ COLUMN_CONTENT,
+ COLUMN_STATUS,
+ COLUMN_FOLDER,
+ NUM_COLS,
};
enum {
- PAGE_EDIT_MODE,
- PAGE_NEW_MAIL,
- PAGE_MODE_READ,
- PAGE_MODE_REPLY,
- PAGE_MODE_FORWARD,
- PAGE_MODE_MMSHIP,
- NUM_PAGES,
+ PAGE_EDIT_MODE,
+ PAGE_NEW_MAIL,
+ PAGE_MODE_READ,
+ PAGE_MODE_REPLY,
+ PAGE_MODE_FORWARD,
+ PAGE_MODE_MMSHIP,
+ NUM_PAGES,
};
GtkWidget* reload_filter_menu (MessengerData* d, GSList* folderlist);
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/message.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/message.h 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/message.h 2007-03-27 08:34:31 UTC (rev 1516)
@@ -21,34 +21,47 @@
#ifndef _MESSAGE_H_
#define _MESSAGE_H_
-typedef struct message{
+typedef struct message
+ {
gchar* name;
gchar* subject;
gchar* folder;
gchar* content;
gint status;
-}message;
+ }
+message;
enum {
- UNREAD,
- READ,
- REPLIED,
- FORWARD,
- NUM_STATES,
+ UNREAD,
+ READ,
+ REPLIED,
+ FORWARD,
+ NUM_STATES,
};
-const static gint states[] = { UNREAD, READ, UNREAD, UNREAD, FORWARD,
- UNREAD, UNREAD, REPLIED, READ, UNREAD };
+const static gint states[] =
+ {
+ UNREAD, READ, UNREAD, UNREAD, FORWARD,
+ UNREAD, UNREAD, REPLIED, READ, UNREAD
+ };
-const static gchar *names[] = { "John B.", "Jane Z.", "Carl O.", "Owen P.", "Jeremy F.",
- "Michael M.", "Ute D.", "Akira T.", "Thomas F.", "Matthew J."};
+const static gchar *names[] =
+ { "John B.", "Jane Z.", "Carl O.", "Owen P.", "Jeremy F.",
+ "Michael M.", "Ute D.", "Akira T.", "Thomas F.", "Matthew J."
+ };
-const static gchar *subjects[] = { "Hello Alex", "We need sms support", "I need u", "Help harald", "The gui is really cool", "Can't u see", "2:00 pm", "Bugzillia page", "Hi there", "Target support"};
+const static gchar *subjects[] =
+ { "Hello Alex", "We need sms support", "I need u", "Help harald", "The gui is really cool", "Can't u see", "2:00 pm", "Bugzillia page", "Hi there", "Target support"
+ };
-const static gchar *folders[] = { "Inbox", "Outbox", "Sent", "Inbox", "Inbox",
- "Inbox", "Inbox", "Inbox", "Inbox", "Inbox"};
+const static gchar *folders[] =
+ { "Inbox", "Outbox", "Sent", "Inbox", "Inbox",
+ "Inbox", "Inbox", "Inbox", "Inbox", "Inbox"
+ };
-const static gchar *contents[] = {"Hello Alex", "We need sms support", "I need u", "Help harald", "The gui is really cool", "Can't u see", "2:00 pm", "Bugzillia page", "Hi there", "Target support"};
+const static gchar *contents[] =
+ {"Hello Alex", "We need sms support", "I need u", "Help harald", "The gui is really cool", "Can't u see", "2:00 pm", "Bugzillia page", "Hi there", "Target support"
+ };
#endif
Added: trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-contact-window.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-contact-window.c 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-contact-window.c 2007-03-27 08:34:31 UTC (rev 1516)
@@ -0,0 +1,278 @@
+/*
+ * sms-contact-window.c
+ *
+ * Authored By Alex Tang <alex at fic-sh.com.cn>
+ *
+ * Copyright (C) 2006-2007 OpenMoko Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Public License as published by
+ * the Free Software Foundation; version 2.1 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date: 2006/10/05 17:38:14 $) [$Author: alex $]
+ */
+#include "sms-contact-window.h"
+
+G_DEFINE_TYPE (SmsContactWindow, sms_contact_window, MOKO_TYPE_WINDOW)
+
+#define SMS_CONTACT_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SMS_TYPE_CONTACT_WINDOW, SmsContactWindowPrivate))
+
+typedef struct
+{
+ /* private members define here */
+ GtkWidget* vbox;
+ GtkWidget* buttonbox;
+ GtkWidget* contacts_view;
+}SmsContactWindowPrivate;
+
+static gint sms_contact_signals[LAST_SIGNAL] = {0};
+
+static void sms_contact_window_close (SmsContactWindow* self);
+GtkWidget* create_contacts_list (SmsContactData* data);
+static gboolean open_book(SmsContactData* data);
+static void loadContacts (EBook* book, EBookStatus status, gpointer closure);
+static void updateContactsView (EBook* book, EBookStatus status,
+ GList* contacts, gpointer closure);
+static void contacts_view_cursor_changed(GtkTreeSelection* selection, SmsContactData* data);
+static void contact_select_done(void);
+
+static void
+sms_contact_window_dispose(GObject* object)
+{
+ if (G_OBJECT_CLASS (sms_contact_window_parent_class)->dispose)
+ G_OBJECT_CLASS (sms_contact_window_parent_class)->dispose (object);
+}
+
+static void
+sms_contact_window_finalize(GObject* object)
+{
+ G_OBJECT_CLASS (sms_contact_window_parent_class)->finalize (object);
+}
+
+
+static void
+sms_contact_window_class_init (SmsContactWindowClass* klass)
+{
+ GObjectClass* object_class = G_OBJECT_CLASS(klass);
+ g_type_class_add_private (klass, sizeof(SmsContactWindowPrivate));
+
+ /* create a new signal */
+ sms_contact_signals[CONTACT_SELECT_DONE_SIGNAL] = g_signal_new("contact_select_done",
+ SMS_TYPE_CONTACT_WINDOW,
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(SmsContactWindowClass, contact_select_done),
+ NULL,NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,0,NULL);
+
+ object_class->dispose = sms_contact_window_dispose;
+ object_class->finalize = sms_contact_window_finalize;
+
+}
+
+GtkWidget* sms_contact_new()
+{
+ return GTK_WIDGET(g_object_new(SMS_TYPE_CONTACT_WINDOW, NULL));
+}
+
+static void updateContactsView (EBook* book, EBookStatus status,
+ GList* contacts, gpointer closure)
+{
+ g_debug("contacts has ");
+ GtkTreeIter iter;
+ SmsContactData* data = (SmsContactData*)closure;
+ GtkListStore *contacts_liststore = data->contacts_liststore;
+ GList* c = contacts;
+ g_debug ("list length %d", g_list_length(c));
+
+ for (;c;c=c->next){
+ EContact *contact = E_CONTACT (c->data);
+ const gchar *name, *phoneNum;
+ name = e_contact_get_const (contact, E_CONTACT_FULL_NAME);
+ phoneNum = e_contact_get_const (contact, E_CONTACT_PHONE_BUSINESS);
+ gtk_list_store_append(contacts_liststore, &iter);
+ gtk_list_store_set (contacts_liststore, &iter,
+ CONTACT_SEL_COL, FALSE,
+ CONTACT_NAME_COL, name,
+ CONTACT_CELLPHONE_COL, phoneNum,
+ -1);
+ }
+}
+
+static void loadContacts(EBook* book, EBookStatus status, gpointer closure)
+{
+ EBookQuery* query;
+ SmsContactData* data = (SmsContactData*)closure;
+
+ if(status == E_BOOK_ERROR_OK){
+ query = e_book_query_any_field_contains ("");
+ e_book_async_get_contacts(data->book, query, updateContactsView, data);
+ e_book_query_unref(query);
+ g_debug("start loading to tree view");
+ }
+ else
+ g_warning("Got error %d when opening book",status);
+}
+
+static gboolean
+open_book (SmsContactData* data)
+{
+ e_book_async_open(data->book,FALSE,loadContacts,data);
+ return FALSE;
+}
+
+static void
+sms_contact_window_init (SmsContactWindow* self)
+{
+ MokoWindow* parent = (MokoWindow*)moko_application_get_main_window( moko_application_get_instance() );
+ if ( parent )
+ {
+ gtk_window_set_transient_for( GTK_WINDOW(self), GTK_WINDOW(parent) );
+ gtk_window_set_modal( GTK_WINDOW(self), TRUE );
+ gtk_window_set_destroy_with_parent( GTK_WINDOW(self), TRUE );
+ }
+
+ /* initialzation */
+ SmsContactWindowPrivate* priv = SMS_CONTACT_WINDOW_GET_PRIVATE(self);
+ priv->vbox = gtk_vbox_new(FALSE,0);
+ SmsContactData* data = g_new0(SmsContactData,1);
+ data->book = e_book_new_system_addressbook(NULL);
+ if (!data->book)
+ g_critical ("Could not load system addressbook");
+ self->nameList = g_strdup("tyh");
+
+ /* Set the "select" window title */
+ GtkWidget* titleLabel = gtk_label_new ("Select Contacts");
+ gtk_widget_set_name( GTK_WIDGET(titleLabel), "mokodialogwindow-title-label" );
+ GtkWidget* eventbox = gtk_event_box_new();
+ gtk_container_add( GTK_CONTAINER(eventbox), GTK_WIDGET(titleLabel) );
+ gtk_widget_set_name( eventbox, "mokodialogwindow-title-labelbox" );
+ gtk_box_pack_start(GTK_BOX(priv->vbox), eventbox, FALSE, TRUE, 0);
+
+ /* create contact list */
+ data->contacts_liststore = gtk_list_store_new (3, G_TYPE_BOOLEAN,
+ G_TYPE_STRING, G_TYPE_STRING);
+ priv->contacts_view = create_contacts_list(data);
+ gtk_box_pack_start(GTK_BOX(priv->vbox), priv->contacts_view, TRUE, TRUE, 0);
+ g_object_unref (data->contacts_liststore);
+
+ /* add close and back window button */
+ GtkWidget* closebutton = moko_pixmap_button_new();
+ moko_pixmap_button_set_action_btn_lower_label ( MOKO_PIXMAP_BUTTON(closebutton),"Select");
+ g_signal_connect_swapped( G_OBJECT(closebutton), "clicked", G_CALLBACK(sms_contact_window_close), self );
+ GtkWidget* backbutton = moko_pixmap_button_new();
+ moko_pixmap_button_set_action_btn_lower_label ( MOKO_PIXMAP_BUTTON(backbutton),"Back");
+ g_signal_connect_swapped( G_OBJECT(backbutton), "clicked", G_CALLBACK(sms_contact_window_close), self );
+ priv->buttonbox = gtk_hbox_new (FALSE,0);
+ gtk_box_pack_start(GTK_BOX(priv->buttonbox), closebutton, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(priv->buttonbox), backbutton, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(priv->vbox), priv->buttonbox, FALSE, TRUE, 0);
+
+ /* loading contacts */
+ g_idle_add((GSourceFunc)open_book,data);
+ //loadBook(data);
+
+ gtk_widget_show_all(priv->vbox);
+ gtk_container_add(GTK_CONTAINER(self), priv->vbox);
+
+}
+
+GtkWidget *
+create_contacts_list (SmsContactData *data)
+{
+ MokoNavigationList* moko_navigation_list = (MokoNavigationList*)moko_navigation_list_new ();
+ GtkWidget* treeview = GTK_WIDGET (moko_navigation_list_get_tree_view (moko_navigation_list));
+
+ gtk_tree_view_set_model (GTK_TREE_VIEW (treeview),
+ GTK_TREE_MODEL (data->contacts_liststore));
+
+ /* add columns to treeview */
+ GtkCellRenderer* renderer;
+ GtkTreeViewColumn* column;
+
+ /* name column */
+ column = gtk_tree_view_column_new();
+ gtk_tree_view_column_set_title(column, "Name");
+
+ renderer = gtk_cell_renderer_toggle_new();
+ gtk_tree_view_column_pack_start (column, renderer, TRUE);
+ gtk_tree_view_column_set_attributes (column, renderer,
+ "active", CONTACT_SEL_COL, NULL);
+
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_column_pack_start (column, renderer, TRUE);
+ gtk_tree_view_column_set_attributes (column, renderer,
+ "text", CONTACT_NAME_COL, NULL);
+ gtk_tree_view_column_set_sort_column_id (column, CONTACT_NAME_COL);
+
+ moko_navigation_list_append_column (moko_navigation_list, column);
+
+ /* mobile column */
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes ("Cell Phone", renderer,
+ "text", CONTACT_CELLPHONE_COL, NULL);
+ gtk_tree_view_column_set_sort_column_id (column, CONTACT_CELLPHONE_COL);
+ moko_navigation_list_append_column (moko_navigation_list, column);
+
+ GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(treeview) );
+ g_signal_connect( G_OBJECT(selection), "changed", G_CALLBACK(contacts_view_cursor_changed), data );
+
+ return GTK_WIDGET (moko_navigation_list);
+}
+
+static void sms_contact_window_close (SmsContactWindow* self)
+{
+ g_signal_emit (G_OBJECT(self),sms_contact_signals[CONTACT_SELECT_DONE_SIGNAL],0);
+
+ /* Synthesize delete_event to close dialog. */
+
+ GtkWidget *widget = GTK_WIDGET(self);
+ GdkEvent *event;
+
+ event = gdk_event_new( GDK_DELETE );
+
+ event->any.window = g_object_ref(widget->window);
+ event->any.send_event = TRUE;
+
+ gtk_main_do_event( event );
+ gdk_event_free( event );
+
+}
+
+static void contacts_view_cursor_changed(GtkTreeSelection* selection, SmsContactData* data)
+{
+ GtkTreeModel* model;
+ GtkTreeIter iter;
+ //GtkTreeView* view = gtk_tree_selection_get_tree_view( selection );
+
+ if ( gtk_tree_selection_get_selected( selection, &model, &iter ) )
+ {
+ gchar* name;
+ gchar* phoneNum;
+ gboolean selected;
+ GtkListStore* liststore = data->contacts_liststore;
+
+ gtk_tree_model_get( model, &iter,
+ CONTACT_SEL_COL, &selected,
+ CONTACT_NAME_COL, &name,
+ CONTACT_CELLPHONE_COL, &phoneNum,
+ -1);
+
+ if (selected)
+ gtk_list_store_set (liststore, &iter, CONTACT_SEL_COL, FALSE, -1);
+ else
+ gtk_list_store_set (liststore, &iter, CONTACT_SEL_COL, TRUE, -1);
+ }
+
+}
+
+static void contact_select_done(void)
+{
+ g_debug("select ok");
+}
+
Added: trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-contact-window.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-contact-window.h 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-contact-window.h 2007-03-27 08:34:31 UTC (rev 1516)
@@ -0,0 +1,76 @@
+/*
+ * sms-contact-window.h
+ *
+ * Authored By Alex Tang <alex at fic-sh.com.cn>
+ *
+ * Copyright (C) 2006-2007 OpenMoko Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Public License as published by
+ * the Free Software Foundation; version 2.1 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date: 2006/10/05 17:38:14 $) [$Author: alex $]
+ */
+#ifndef _SMS_CONTACT_WINDOW_H_
+#define _SMS_CONTACT_WINDOW_H_
+
+#include <libmokoui/moko-window.h>
+#include <libmokoui/moko-pixmap-button.h>
+#include <libmokoui/moko-navigation-list.h>
+#include <libmokoui/moko-application.h>
+#include <libebook/e-book.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define SMS_TYPE_CONTACT_WINDOW sms_contact_window_get_type()
+#define SMS_CONTACT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SMS_TYPE_CONTACT_WINDOW, SmsContactWindow))
+#define SMS_CONTACT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SMS_TYPE_CONTACT_WINDOW, SmsContactWindowClass))
+#define SMS_IS_CONTACT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SMS_TYPE_CONTACT_WINDOW))
+#define SMS_IS_CONTACT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SMS_TYPE_CONTACT_WINDOW_CLASS)
+#define SMS_GET_CONTACT_WINDOW_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SMS_TYPE_CONTACT_WINDOW, SmsContactWindowClass)
+
+GType sms_contact_window_get_type();
+GtkWidget* sms_contact_new();
+
+enum {
+ CONTACT_SEL_COL,
+ CONTACT_NAME_COL,
+ CONTACT_CELLPHONE_COL,
+ CONTACT_LAST_COL
+};
+
+enum {
+ CONTACT_SELECT_DONE_SIGNAL,
+ LAST_SIGNAL
+};
+
+typedef struct
+{
+ MokoWindow parent;
+ /* instance members */
+ gchar* nameList;
+}SmsContactWindow;
+
+typedef struct
+{
+ MokoWindowClass parent_class;
+ /* class members */
+ void (*contact_select_done)(void);
+}SmsContactWindowClass;
+
+typedef struct
+{
+ EBook* book;
+ GtkListStore *contacts_liststore;
+}SmsContactData;
+
+G_END_DECLS
+
+#endif
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-dialog-window.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-dialog-window.c 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-dialog-window.c 2007-03-27 08:34:31 UTC (rev 1516)
@@ -1,4 +1,4 @@
-/*
+/*
* sms-dialog-window.c
*
* Authored By Alex Tang <alex at fic-sh.com.cn>
@@ -16,7 +16,7 @@
*
* Current Version: $Rev$ ($Date: 2006/10/05 17:38:14 $) [$Author: alex $]
*/
-
+
#include "sms-dialog-window.h"
#include "main.h"
#include <libmokoui/moko-pixmap-button.h>
@@ -42,7 +42,7 @@
typedef struct _SmsDialogWindowPrivate SmsDialogWindowPrivate;
struct _SmsDialogWindowPrivate
-{
+ {
GtkWidget* vbox;
GtkWidget* hbox;
GtkWidget* eventbox;
@@ -51,50 +51,50 @@
GtkWidget* toolbox;
GtkWidget* closebutton;
GtkWidget* txtView;
- GtkWidget* toEntry;
-};
+ };
typedef struct _SmsDialogRunInfo
-{
+ {
SmsDialogWindow *dialog;
gint response_id;
GMainLoop *loop;
gboolean destroyed;
-} SmsDialogRunInfo;
+ }
+SmsDialogRunInfo;
static void sms_dialog_window_close(SmsDialogWindow* self);
gboolean on_sms_txtView_key_release_event (GtkWidget *widget,
- GdkEventKey *event,
- SmsDialogWindow *self);
+ GdkEventKey *event,
+ SmsDialogWindow *self);
static void
shutdown_loop (SmsDialogRunInfo *ri)
{
- if (g_main_loop_is_running (ri->loop))
- g_main_loop_quit (ri->loop);
+ if (g_main_loop_is_running (ri->loop))
+ g_main_loop_quit (ri->loop);
}
static void
run_unmap_handler (SmsDialogWindow* dialog, gpointer data)
{
- SmsDialogRunInfo *ri = data;
+ SmsDialogRunInfo *ri = data;
- shutdown_loop (ri);
+ shutdown_loop (ri);
}
static void
run_response_handler (SmsDialogWindow* dialog,
- gint response_id,
- gpointer data)
+ gint response_id,
+ gpointer data)
{
- SmsDialogRunInfo *ri;
+ SmsDialogRunInfo *ri;
- ri = data;
+ ri = data;
- ri->response_id = response_id;
+ ri->response_id = response_id;
- shutdown_loop (ri);
+ shutdown_loop (ri);
}
static gint
@@ -102,422 +102,353 @@
GdkEventAny *event,
gpointer data)
{
- SmsDialogRunInfo *ri = data;
+ SmsDialogRunInfo *ri = data;
- shutdown_loop (ri);
+ shutdown_loop (ri);
- return TRUE; /* Do not destroy */
+ return TRUE; /* Do not destroy */
}
static void
- run_destroy_handler (SmsDialogWindow* dialog, gpointer data)
+run_destroy_handler (SmsDialogWindow* dialog, gpointer data)
{
- SmsDialogRunInfo *ri = data;
+ SmsDialogRunInfo *ri = data;
- /* shutdown_loop will be called by run_unmap_handler */
+ /* shutdown_loop will be called by run_unmap_handler */
- ri->destroyed = TRUE;
+ ri->destroyed = TRUE;
}
static void
sms_dialog_window_dispose(GObject* object)
{
- if (G_OBJECT_CLASS (sms_dialog_window_parent_class)->dispose)
- G_OBJECT_CLASS (sms_dialog_window_parent_class)->dispose (object);
+ if (G_OBJECT_CLASS (sms_dialog_window_parent_class)->dispose)
+ G_OBJECT_CLASS (sms_dialog_window_parent_class)->dispose (object);
}
static void
sms_dialog_window_finalize(GObject* object)
{
- G_OBJECT_CLASS (sms_dialog_window_parent_class)->finalize (object);
+ G_OBJECT_CLASS (sms_dialog_window_parent_class)->finalize (object);
}
static void
sms_dialog_window_class_init(SmsDialogWindowClass* klass)
{
- GObjectClass* object_class = G_OBJECT_CLASS(klass);
+ GObjectClass* object_class = G_OBJECT_CLASS(klass);
- g_type_class_add_private (klass, sizeof(SmsDialogWindowPrivate));
+ g_type_class_add_private (klass, sizeof(SmsDialogWindowPrivate));
- object_class->dispose = sms_dialog_window_dispose;
- object_class->finalize = sms_dialog_window_finalize;
+ object_class->dispose = sms_dialog_window_dispose;
+ object_class->finalize = sms_dialog_window_finalize;
}
SmsDialogWindow*
sms_dialog_window_new(void)
{
- return g_object_new(SMS_TYPE_DIALOG_WINDOW, NULL);
+ return g_object_new(SMS_TYPE_DIALOG_WINDOW, NULL);
}
static void
sms_dialog_window_init(SmsDialogWindow* self)
{
- MokoWindow* parent = (MokoWindow*)moko_application_get_main_window( moko_application_get_instance() );
- if ( parent )
+ MokoWindow* parent = (MokoWindow*)moko_application_get_main_window( moko_application_get_instance() );
+ if ( parent )
{
- gtk_window_set_transient_for( GTK_WINDOW(self), GTK_WINDOW(parent) );
+ gtk_window_set_transient_for( GTK_WINDOW(self), GTK_WINDOW(parent) );
#ifndef DEBUG_THIS_FILE
- gtk_window_set_modal( GTK_WINDOW(self), TRUE );
+ gtk_window_set_modal( GTK_WINDOW(self), TRUE );
#endif
- gtk_window_set_destroy_with_parent( GTK_WINDOW(self), TRUE );
+ gtk_window_set_destroy_with_parent( GTK_WINDOW(self), TRUE );
}
}
void sms_dialog_window_set_title(SmsDialogWindow* self, const gchar* title)
{
- SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
- if ( !priv->titleLabel )
+ SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
+ if ( !priv->titleLabel )
{
- priv->titleLabel = gtk_label_new( title );
- priv->hbox = gtk_hbox_new( FALSE, 0 );
- gtk_window_set_title( GTK_WINDOW(self), title );
- gtk_widget_set_name( GTK_WIDGET(priv->titleLabel), "mokodialogwindow-title-label" );
- gtk_box_pack_start( GTK_BOX(priv->hbox), GTK_WIDGET(priv->titleLabel), TRUE, TRUE, 0 );
- PangoFontDescription* font_desc = pango_font_description_from_string ("Bold 10");
- priv->textInLabel = gtk_label_new( "160(1)" );
- gtk_widget_modify_font (priv->textInLabel, font_desc);
- gtk_widget_set_name( GTK_WIDGET(priv->textInLabel), "mokodialogwindow-title-label" );
- gtk_box_pack_start( GTK_BOX(priv->hbox), GTK_WIDGET(priv->textInLabel), FALSE, FALSE, 0);
- priv->eventbox = gtk_event_box_new();
- gtk_container_add( GTK_CONTAINER(priv->eventbox), GTK_WIDGET(priv->hbox) );
- 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) );
+ priv->titleLabel = gtk_label_new( title );
+ priv->hbox = gtk_hbox_new( FALSE, 0 );
+ gtk_window_set_title( GTK_WINDOW(self), title );
+ gtk_widget_set_name( GTK_WIDGET(priv->titleLabel), "mokodialogwindow-title-label" );
+ gtk_box_pack_start( GTK_BOX(priv->hbox), GTK_WIDGET(priv->titleLabel), TRUE, TRUE, 0 );
+ PangoFontDescription* font_desc = pango_font_description_from_string ("Bold 10");
+ priv->textInLabel = gtk_label_new( "160(1)" );
+ gtk_widget_modify_font (priv->textInLabel, font_desc);
+ gtk_widget_set_name( GTK_WIDGET(priv->textInLabel), "mokodialogwindow-title-label" );
+ gtk_box_pack_start( GTK_BOX(priv->hbox), GTK_WIDGET(priv->textInLabel), FALSE, FALSE, 0);
+ priv->eventbox = gtk_event_box_new();
+ gtk_container_add( GTK_CONTAINER(priv->eventbox), GTK_WIDGET(priv->hbox) );
+ 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) );
}
- else
+ else
{
- gtk_label_set_text( GTK_LABEL(priv->titleLabel), title );
- gtk_window_set_title( GTK_WINDOW(self), title );
+ gtk_label_set_text( GTK_LABEL(priv->titleLabel), title );
+ gtk_window_set_title( GTK_WINDOW(self), title );
}
- if ( !priv->vbox )
+ if ( !priv->vbox )
{
- GtkWidget* image;
- GtkWidget* smsSendBtn;
- GtkWidget* emailBtn;
-
- priv->vbox = gtk_vbox_new( FALSE, 0 );
- gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->eventbox), FALSE, FALSE, 0 );
-
- //Add toolbox
- priv->hbox = gtk_hbox_new( FALSE, 0 );
- priv->toolbox = moko_tool_box_new();
- GtkWidget* btnBox = moko_tool_box_get_button_box (MOKO_TOOL_BOX(priv->toolbox));
- priv->closebutton = moko_pixmap_button_new();
- image = gtk_image_new_from_file (PKGDATADIR "/Cancel.png");
- moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(priv->closebutton),image);
- gtk_widget_set_name( GTK_WIDGET(priv->closebutton), "mokostylusbutton-black" );
- gtk_box_pack_end (GTK_BOX(btnBox),priv->closebutton,FALSE,FALSE,280);
- g_signal_connect_swapped( G_OBJECT(priv->closebutton), "clicked", G_CALLBACK(sms_dialog_window_close), self );
+ GtkWidget* image;
+ GtkWidget* smsSendBtn;
+ GtkWidget* emailBtn;
- emailBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
- gtk_widget_set_name( GTK_WIDGET(emailBtn), "mokostylusbutton-white" );
- image = gtk_image_new_from_file (PKGDATADIR "/Address.png");
- moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(emailBtn),image);
-
- smsSendBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
- gtk_widget_set_name( GTK_WIDGET(smsSendBtn), "mokostylusbutton-white" );
- image = gtk_image_new_from_file (PKGDATADIR "/Send.png");
- moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(smsSendBtn),image);
-
- gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->toolbox), FALSE, FALSE, 0 );
- gtk_container_add( GTK_CONTAINER(self), GTK_WIDGET(priv->vbox) );
-
- //Fill input entry
- GtkAlignment* alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
- gtk_alignment_set_padding (alignment, 10, 10, 50, 10);
- GtkWidget* entrybox = gtk_hbox_new(FALSE,0);
- GtkWidget* toLabel = gtk_label_new("To:");
- gtk_widget_set_size_request (toLabel, 40, -1);
- gtk_misc_set_alignment (GTK_MISC (toLabel),1,0.5);
- priv->toEntry = gtk_entry_new();
- gtk_widget_set_size_request (priv->toEntry, 320, -1);
- gtk_box_pack_start (GTK_BOX(entrybox),toLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(entrybox),priv->toEntry,FALSE,TRUE,0);
- gtk_container_add (GTK_CONTAINER(alignment), entrybox);
- gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(alignment), FALSE, FALSE, 0 );
-
- /* fill textview */
- priv->txtView = gtk_text_view_new();
- GtkWidget* viewAlign = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT(viewAlign),10,10,30,30);
- GtkWidget* scolwin = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scolwin), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
- GtkWidget* viewport = gtk_viewport_new (NULL, NULL);
- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(priv->txtView),GTK_WRAP_CHAR);
- gtk_container_add (GTK_CONTAINER(viewport), priv->txtView);
- gtk_container_add (GTK_CONTAINER (scolwin), viewport);
- gtk_container_add (GTK_CONTAINER(viewAlign),scolwin);
- gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(viewAlign), TRUE, TRUE, 0 );
- gtk_widget_show_all( GTK_WIDGET(priv->vbox) );
+ priv->vbox = gtk_vbox_new( FALSE, 0 );
+ gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->eventbox), FALSE, FALSE, 0 );
- g_signal_connect ( G_OBJECT(priv->txtView), "key_release_event",
- G_CALLBACK (on_sms_txtView_key_release_event),
- self);
- }
-}
+ //Add toolbox
+ priv->hbox = gtk_hbox_new( FALSE, 0 );
+ priv->toolbox = moko_tool_box_new();
+ GtkWidget* btnBox = moko_tool_box_get_button_box (MOKO_TOOL_BOX(priv->toolbox));
+ priv->closebutton = moko_pixmap_button_new();
+ image = gtk_image_new_from_file (PKGDATADIR "/Cancel.png");
+ moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(priv->closebutton),image);
+ gtk_widget_set_name( GTK_WIDGET(priv->closebutton), "mokostylusbutton-black" );
+ gtk_box_pack_end (GTK_BOX(btnBox),priv->closebutton,FALSE,FALSE,280);
+ g_signal_connect_swapped( G_OBJECT(priv->closebutton), "clicked", G_CALLBACK(sms_dialog_window_close), self );
-void mail_dialog_window_set_title(SmsDialogWindow* self, const gchar* title)
-{
- SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
- if ( !priv->titleLabel ) {
- priv->titleLabel = gtk_label_new( title );
- gtk_window_set_title( GTK_WINDOW(self), title );
- gtk_widget_set_name( GTK_WIDGET(priv->titleLabel), "mokodialogwindow-title-label" );
- priv->eventbox = gtk_event_box_new();
- gtk_container_add( GTK_CONTAINER(priv->eventbox), GTK_WIDGET(priv->hbox) );
- 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_container_add (GTK_CONTAINER(priv->eventbox), priv->titleLabel);
- gtk_widget_show( GTK_WIDGET(priv->titleLabel) );
- gtk_widget_show( GTK_WIDGET(priv->eventbox) );
- }
- else{
- gtk_label_set_text( GTK_LABEL(priv->titleLabel), title );
- gtk_window_set_title( GTK_WINDOW(self), title );
- }
- if ( !priv->vbox ){
- GtkWidget* image;
- GtkWidget* smsSendBtn;
- GtkWidget* emailBtn;
- GtkWidget* attachBtn;
-
- priv->vbox = gtk_vbox_new( FALSE, 0 );
- gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->eventbox), FALSE, FALSE, 0 );
-
- //Add toolbox
- priv->hbox = gtk_hbox_new( FALSE, 0 );
- priv->toolbox = moko_tool_box_new();
- GtkWidget* btnBox = moko_tool_box_get_button_box (MOKO_TOOL_BOX(priv->toolbox));
- priv->closebutton = moko_pixmap_button_new();
- image = gtk_image_new_from_file (PKGDATADIR "/Cancel.png");
- moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(priv->closebutton),image);
- gtk_widget_set_name( GTK_WIDGET(priv->closebutton), "mokostylusbutton-black" );
- gtk_box_pack_end (GTK_BOX(btnBox),priv->closebutton,FALSE,FALSE, 200);
- g_signal_connect_swapped( G_OBJECT(priv->closebutton), "clicked", G_CALLBACK(sms_dialog_window_close), self );
+ self->addressBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
+ gtk_widget_set_name( GTK_WIDGET(self->addressBtn ), "mokostylusbutton-white" );
+ image = gtk_image_new_from_file (PKGDATADIR "/Address.png");
+ moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(self->addressBtn ),image);
- attachBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
- gtk_widget_set_name( GTK_WIDGET(attachBtn), "mokostylusbutton-white" );
- image = gtk_image_new_from_file (PKGDATADIR "/Address.png");
- moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(attachBtn),image);
-
- emailBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
- gtk_widget_set_name( GTK_WIDGET(emailBtn), "mokostylusbutton-white" );
- image = gtk_image_new_from_file (PKGDATADIR "/Attached.png");
- moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(emailBtn),image);
-
- smsSendBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
- gtk_widget_set_name( GTK_WIDGET(smsSendBtn), "mokostylusbutton-white" );
- image = gtk_image_new_from_file (PKGDATADIR "/Send.png");
- moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(smsSendBtn),image);
-
- gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->toolbox), FALSE, FALSE, 0 );
- gtk_container_add( GTK_CONTAINER(self), GTK_WIDGET(priv->vbox) );
-
- //Fill input entry
- GtkAlignment* alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
- gtk_alignment_set_padding (alignment, 5, 5, 10, 10);
- GtkWidget* hbox = gtk_hbox_new(FALSE,0);
- PangoFontDescription* font_desc;
- font_desc = pango_font_description_from_string ("Bold 12");
- GtkWidget* toLabel = gtk_label_new("To:");
- gtk_widget_modify_font (toLabel, font_desc);
- gtk_widget_set_size_request (toLabel, 110, -1);
- gtk_misc_set_alignment (GTK_MISC (toLabel),0.9,0.5);
- priv->toEntry = gtk_entry_new();
- gtk_widget_set_size_request (priv->toEntry, 320, -1);
- gtk_box_pack_start (GTK_BOX(hbox),toLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(hbox),priv->toEntry,FALSE,TRUE,0);
- gtk_container_add (GTK_CONTAINER(alignment), hbox);
- gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(alignment), FALSE, FALSE, 0 );
+ smsSendBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
+ gtk_widget_set_name( GTK_WIDGET(smsSendBtn), "mokostylusbutton-white" );
+ image = gtk_image_new_from_file (PKGDATADIR "/Send.png");
+ moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(smsSendBtn),image);
- alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
- gtk_alignment_set_padding (alignment, 5, 5, 10, 10);
- hbox = gtk_hbox_new(FALSE,0);
- GtkWidget* ccLabel = gtk_label_new("CC:");
- font_desc = pango_font_description_from_string ("Bold 12");
- gtk_widget_set_size_request (ccLabel, 110, -1);
- gtk_widget_modify_font (ccLabel, font_desc);
- gtk_misc_set_alignment (GTK_MISC (ccLabel),0.9,0.5);
- GtkWidget* ccEntry = gtk_entry_new();
- gtk_widget_set_size_request (ccEntry, 320, -1);
- gtk_box_pack_start (GTK_BOX(hbox),ccLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(hbox),ccEntry,FALSE,TRUE,0);
- gtk_container_add (GTK_CONTAINER(alignment), hbox);
- gtk_box_pack_start (GTK_BOX(priv->vbox),GTK_WIDGET(alignment),FALSE,TRUE,0);
-
- alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
- gtk_alignment_set_padding (alignment, 5, 5, 10, 10);
- hbox = gtk_hbox_new(FALSE,0);
- GtkWidget* bccLabel = gtk_label_new("Bcc:");
- font_desc = pango_font_description_from_string ("Bold 12");
- gtk_widget_set_size_request (bccLabel, 110, -1);
- gtk_widget_modify_font (bccLabel, font_desc);
- gtk_misc_set_alignment (GTK_MISC (bccLabel),0.9,0.5);
- GtkWidget* bccEntry = gtk_entry_new();
- gtk_widget_set_size_request (bccEntry, 320, -1);
- gtk_box_pack_start (GTK_BOX(hbox),bccLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(hbox),bccEntry,FALSE,TRUE,0);
- gtk_container_add (GTK_CONTAINER(alignment), hbox);
- gtk_box_pack_start (GTK_BOX(priv->vbox),GTK_WIDGET(alignment),FALSE,TRUE,0);
+ gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->toolbox), FALSE, FALSE, 0 );
+ gtk_container_add( GTK_CONTAINER(self), GTK_WIDGET(priv->vbox) );
- alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
- gtk_alignment_set_padding (alignment, 5, 5, 10, 10);
- hbox = gtk_hbox_new(FALSE,0);
- GtkWidget* subjectLabel = gtk_label_new("Subject:");
- font_desc = pango_font_description_from_string ("Bold 12");
- gtk_widget_modify_font (subjectLabel, font_desc);
- gtk_widget_set_size_request (subjectLabel, 110, -1);
- gtk_misc_set_alignment (GTK_MISC (subjectLabel),0.9,0.5);
- GtkWidget* subjectEntry = gtk_entry_new();
- gtk_widget_set_size_request (subjectEntry, 320, -1);
- gtk_box_pack_start (GTK_BOX(hbox),subjectLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(hbox),subjectEntry,FALSE,TRUE,0);
- gtk_container_add (GTK_CONTAINER(alignment), hbox);
- gtk_box_pack_start (GTK_BOX(priv->vbox),GTK_WIDGET(alignment),FALSE,TRUE,0);
+ //Fill input entry
+ GtkAlignment* alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
+ gtk_alignment_set_padding (alignment, 10, 10, 50, 10);
+ GtkWidget* entrybox = gtk_hbox_new(FALSE,0);
+ GtkWidget* toLabel = gtk_label_new("To:");
+ gtk_widget_set_size_request (toLabel, 40, -1);
+ gtk_misc_set_alignment (GTK_MISC (toLabel),1,0.5);
+ self->toEntry = gtk_entry_new();
+ gtk_widget_set_size_request (self->toEntry, 320, -1);
+ gtk_box_pack_start (GTK_BOX(entrybox),toLabel,FALSE,TRUE,0);
+ gtk_box_pack_start (GTK_BOX(entrybox),self->toEntry,FALSE,TRUE,0);
+ gtk_container_add (GTK_CONTAINER(alignment), entrybox);
+ gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(alignment), FALSE, FALSE, 0 );
- /* fill textview */
- GtkWidget* txtView = gtk_text_view_new();
- GtkWidget* viewAlign = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT(viewAlign),10,10,30,30);
- GtkWidget* scolwin = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scolwin), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
- GtkWidget* viewport = gtk_viewport_new (NULL, NULL);
- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(txtView),GTK_WRAP_CHAR);
- gtk_container_add (GTK_CONTAINER(viewport), txtView);
- gtk_container_add (GTK_CONTAINER (scolwin), viewport);
- gtk_container_add (GTK_CONTAINER(viewAlign),GTK_WIDGET(scolwin));
- gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(viewAlign), TRUE, TRUE, 0 );
- gtk_widget_show_all( GTK_WIDGET(priv->vbox) );
+ /* fill textview */
+ priv->txtView = gtk_text_view_new();
+ GtkWidget* viewAlign = gtk_alignment_new (0.5, 0.5, 1, 1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(viewAlign),10,10,30,30);
+ GtkWidget* scolwin = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scolwin), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
+ GtkWidget* viewport = gtk_viewport_new (NULL, NULL);
+ gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(priv->txtView),GTK_WRAP_CHAR);
+ gtk_container_add (GTK_CONTAINER(viewport), priv->txtView);
+ gtk_container_add (GTK_CONTAINER (scolwin), viewport);
+ gtk_container_add (GTK_CONTAINER(viewAlign),scolwin);
+ gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(viewAlign), TRUE, TRUE, 0 );
+ gtk_widget_show_all( GTK_WIDGET(priv->vbox) );
+
+ g_signal_connect ( G_OBJECT(priv->txtView), "key_release_event",
+ G_CALLBACK (on_sms_txtView_key_release_event),
+ self);
}
}
-void sms_dialog_window_set_contents(SmsDialogWindow* self, GtkWidget* contents)
+void mail_dialog_window_set_title(SmsDialogWindow* self, const gchar* title)
{
- SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
- g_return_if_fail( priv->vbox );
- gtk_box_pack_start( GTK_BOX(priv->vbox), contents, TRUE, TRUE, 0 );
-}
+ SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
+ if ( !priv->titleLabel )
+ {
+ priv->titleLabel = gtk_label_new( title );
+ gtk_window_set_title( GTK_WINDOW(self), title );
+ gtk_widget_set_name( GTK_WIDGET(priv->titleLabel), "mokodialogwindow-title-label" );
+ priv->eventbox = gtk_event_box_new();
+ 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_container_add (GTK_CONTAINER(priv->eventbox), priv->titleLabel);
+ gtk_widget_show( GTK_WIDGET(priv->titleLabel) );
+ gtk_widget_show( GTK_WIDGET(priv->eventbox) );
+ }
+ else
+ {
+ gtk_label_set_text( GTK_LABEL(priv->titleLabel), title );
+ gtk_window_set_title( GTK_WINDOW(self), title );
+ }
+ if ( !priv->vbox )
+ {
+ GtkWidget* image;
+ GtkWidget* smsSendBtn;
+ GtkWidget* emailBtn;
-static void sms_dialog_window_close(SmsDialogWindow* self)
-{
- /* Synthesize delete_event to close dialog. */
+ priv->vbox = gtk_vbox_new( FALSE, 0 );
+ gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->eventbox), FALSE, FALSE, 0 );
- GtkWidget *widget = GTK_WIDGET(self);
- GdkEvent *event;
+ //Add toolbox
+ priv->hbox = gtk_hbox_new( FALSE, 0 );
+ priv->toolbox = moko_tool_box_new();
+ GtkWidget* btnBox = moko_tool_box_get_button_box (MOKO_TOOL_BOX(priv->toolbox));
+ priv->closebutton = moko_pixmap_button_new();
+ image = gtk_image_new_from_file (PKGDATADIR "/Cancel.png");
+ moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(priv->closebutton),image);
+ gtk_widget_set_name( GTK_WIDGET(priv->closebutton), "mokostylusbutton-black" );
+ gtk_box_pack_end (GTK_BOX(btnBox),priv->closebutton,FALSE,FALSE, 200);
+ g_signal_connect_swapped( G_OBJECT(priv->closebutton), "clicked", G_CALLBACK(sms_dialog_window_close), self );
- event = gdk_event_new( GDK_DELETE );
+ self->addressBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
+ gtk_widget_set_name( GTK_WIDGET(self->addressBtn), "mokostylusbutton-white" );
+ image = gtk_image_new_from_file (PKGDATADIR "/Address.png");
+ moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(self->addressBtn),image);
- event->any.window = g_object_ref(widget->window);
- event->any.send_event = TRUE;
+ emailBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
+ gtk_widget_set_name( GTK_WIDGET(emailBtn), "mokostylusbutton-white" );
+ image = gtk_image_new_from_file (PKGDATADIR "/Attached.png");
+ moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(emailBtn),image);
- gtk_main_do_event( event );
- gdk_event_free( event );
-}
+ smsSendBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
+ gtk_widget_set_name( GTK_WIDGET(smsSendBtn), "mokostylusbutton-white" );
+ image = gtk_image_new_from_file (PKGDATADIR "/Send.png");
+ moko_pixmap_button_set_center_image ( MOKO_PIXMAP_BUTTON(smsSendBtn),image);
-guint sms_dialog_window_run(SmsDialogWindow* dialog)
-{
- SmsDialogRunInfo ri = { NULL, GTK_RESPONSE_NONE, NULL, FALSE };
- gboolean was_modal;
- gulong response_handler;
- gulong unmap_handler;
- gulong destroy_handler;
- gulong delete_handler;
+ gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->toolbox), FALSE, FALSE, 0 );
+ gtk_container_add( GTK_CONTAINER(self), GTK_WIDGET(priv->vbox) );
- g_return_val_if_fail (SMS_IS_DIALOG_WINDOW(dialog), -1);
+ //Fill input entry
+ GtkAlignment* alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
+ gtk_alignment_set_padding (alignment, 5, 5, 10, 10);
+ GtkWidget* hbox = gtk_hbox_new(FALSE,0);
+ PangoFontDescription* font_desc;
+ font_desc = pango_font_description_from_string ("Bold 12");
+ GtkWidget* toLabel = gtk_label_new("To:");
+ gtk_widget_modify_font (toLabel, font_desc);
+ gtk_widget_set_size_request (toLabel, 110, -1);
+ gtk_misc_set_alignment (GTK_MISC (toLabel),0.9,0.5);
+ self->toEntry = gtk_entry_new();
+ gtk_widget_set_size_request (self->toEntry, 320, -1);
+ gtk_box_pack_start (GTK_BOX(hbox),toLabel,FALSE,TRUE,0);
+ gtk_box_pack_start (GTK_BOX(hbox),self->toEntry,FALSE,TRUE,0);
+ gtk_container_add (GTK_CONTAINER(alignment), hbox);
+ gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(alignment), FALSE, FALSE, 0 );
- g_object_ref (dialog);
+ alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
+ gtk_alignment_set_padding (alignment, 5, 5, 10, 10);
+ hbox = gtk_hbox_new(FALSE,0);
+ GtkWidget* ccLabel = gtk_label_new("CC:");
+ font_desc = pango_font_description_from_string ("Bold 12");
+ gtk_widget_set_size_request (ccLabel, 110, -1);
+ gtk_widget_modify_font (ccLabel, font_desc);
+ gtk_misc_set_alignment (GTK_MISC (ccLabel),0.9,0.5);
+ GtkWidget* ccEntry = gtk_entry_new();
+ gtk_widget_set_size_request (ccEntry, 320, -1);
+ gtk_box_pack_start (GTK_BOX(hbox),ccLabel,FALSE,TRUE,0);
+ gtk_box_pack_start (GTK_BOX(hbox),ccEntry,FALSE,TRUE,0);
+ gtk_container_add (GTK_CONTAINER(alignment), hbox);
+ gtk_box_pack_start (GTK_BOX(priv->vbox),GTK_WIDGET(alignment),FALSE,TRUE,0);
-#ifndef DEBUG_THIS_FILE
- was_modal = GTK_WINDOW (dialog)->modal;
- if (!was_modal)
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-#endif
+ alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
+ gtk_alignment_set_padding (alignment, 5, 5, 10, 10);
+ hbox = gtk_hbox_new(FALSE,0);
+ GtkWidget* bccLabel = gtk_label_new("Bcc:");
+ font_desc = pango_font_description_from_string ("Bold 12");
+ gtk_widget_set_size_request (bccLabel, 110, -1);
+ gtk_widget_modify_font (bccLabel, font_desc);
+ gtk_misc_set_alignment (GTK_MISC (bccLabel),0.9,0.5);
+ GtkWidget* bccEntry = gtk_entry_new();
+ gtk_widget_set_size_request (bccEntry, 320, -1);
+ gtk_box_pack_start (GTK_BOX(hbox),bccLabel,FALSE,TRUE,0);
+ gtk_box_pack_start (GTK_BOX(hbox),bccEntry,FALSE,TRUE,0);
+ gtk_container_add (GTK_CONTAINER(alignment), hbox);
+ gtk_box_pack_start (GTK_BOX(priv->vbox),GTK_WIDGET(alignment),FALSE,TRUE,0);
- if (!GTK_WIDGET_VISIBLE (dialog))
- gtk_widget_show (GTK_WIDGET (dialog));
+ alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
+ gtk_alignment_set_padding (alignment, 5, 5, 10, 10);
+ hbox = gtk_hbox_new(FALSE,0);
+ GtkWidget* subjectLabel = gtk_label_new("Subject:");
+ font_desc = pango_font_description_from_string ("Bold 12");
+ gtk_widget_modify_font (subjectLabel, font_desc);
+ gtk_widget_set_size_request (subjectLabel, 110, -1);
+ gtk_misc_set_alignment (GTK_MISC (subjectLabel),0.9,0.5);
+ GtkWidget* subjectEntry = gtk_entry_new();
+ gtk_widget_set_size_request (subjectEntry, 320, -1);
+ gtk_box_pack_start (GTK_BOX(hbox),subjectLabel,FALSE,TRUE,0);
+ gtk_box_pack_start (GTK_BOX(hbox),subjectEntry,FALSE,TRUE,0);
+ gtk_container_add (GTK_CONTAINER(alignment), hbox);
+ gtk_box_pack_start (GTK_BOX(priv->vbox),GTK_WIDGET(alignment),FALSE,TRUE,0);
- response_handler =
- g_signal_connect (dialog,
- "response",
- G_CALLBACK (run_response_handler),
- &ri);
+ /* fill textview */
+ GtkWidget* txtView = gtk_text_view_new();
+ GtkWidget* viewAlign = gtk_alignment_new (0.5, 0.5, 1, 1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(viewAlign),10,10,30,30);
+ GtkWidget* scolwin = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scolwin), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
+ GtkWidget* viewport = gtk_viewport_new (NULL, NULL);
+ gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(txtView),GTK_WRAP_CHAR);
+ gtk_container_add (GTK_CONTAINER(viewport), txtView);
+ gtk_container_add (GTK_CONTAINER (scolwin), viewport);
+ gtk_container_add (GTK_CONTAINER(viewAlign),GTK_WIDGET(scolwin));
+ gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(viewAlign), TRUE, TRUE, 0 );
+ gtk_widget_show_all( GTK_WIDGET(priv->vbox) );
+ }
+}
- unmap_handler =
- g_signal_connect (dialog,
- "unmap",
- G_CALLBACK (run_unmap_handler),
- &ri);
+void sms_dialog_window_set_contents(SmsDialogWindow* self, GtkWidget* contents)
+{
+ SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
+ g_return_if_fail( priv->vbox );
+ gtk_box_pack_start( GTK_BOX(priv->vbox), contents, TRUE, TRUE, 0 );
+}
- delete_handler =
- g_signal_connect (dialog,
- "delete-event",
- G_CALLBACK (run_delete_handler),
- &ri);
+static void sms_dialog_window_close(SmsDialogWindow* self)
+{
+ /* Synthesize delete_event to close dialog. */
- destroy_handler =
- g_signal_connect (dialog,
- "destroy",
- G_CALLBACK (run_destroy_handler),
- &ri);
+ GtkWidget *widget = GTK_WIDGET(self);
+ GdkEvent *event;
- ri.loop = g_main_loop_new (NULL, FALSE);
+ event = gdk_event_new( GDK_DELETE );
- GDK_THREADS_LEAVE ();
- g_main_loop_run (ri.loop);
- GDK_THREADS_ENTER ();
+ event->any.window = g_object_ref(widget->window);
+ event->any.send_event = TRUE;
- g_main_loop_unref (ri.loop);
- ri.loop = NULL;
-
- if (!ri.destroyed)
- {
- if (!was_modal)
- gtk_window_set_modal (GTK_WINDOW(dialog), FALSE);
-
- g_signal_handler_disconnect (dialog, response_handler);
- g_signal_handler_disconnect (dialog, unmap_handler);
- g_signal_handler_disconnect (dialog, delete_handler);
- g_signal_handler_disconnect (dialog, destroy_handler);
- }
-
- g_object_unref (dialog);
-
- return ri.response_id;
+ gtk_main_do_event( event );
+ gdk_event_free( event );
}
void sms_dialog_reply_message(SmsDialogWindow* self, message* msg)
{
- g_assert (msg != NULL);
- SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
- gtk_entry_set_text (GTK_ENTRY(priv->toEntry), msg->name);
- gtk_widget_grab_focus (priv->txtView);
+ g_assert (msg != NULL);
+ SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
+ gtk_entry_set_text (GTK_ENTRY(self->toEntry), msg->name);
+ gtk_widget_grab_focus (priv->txtView);
}
void sms_dialog_forward_message(SmsDialogWindow* self, message* msg)
{
- g_assert (msg != NULL);
- SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
- gtk_entry_set_text (GTK_ENTRY(priv->toEntry), msg->name);
- g_assert (priv->txtView != NULL);
- GtkTextBuffer* buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(priv->txtView));
- gchar* text = g_strdup_printf("\n\n\n>%s",msg->content);
- gtk_text_buffer_set_text (buffer, text, strlen(text));
- gtk_widget_grab_focus (priv->txtView);
+ g_assert (msg != NULL);
+ SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
+ gtk_entry_set_text (GTK_ENTRY(self->toEntry), msg->name);
+ g_assert (priv->txtView != NULL);
+ GtkTextBuffer* buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(priv->txtView));
+ gchar* text = g_strdup_printf("\n\n\n>%s",msg->content);
+ gtk_text_buffer_set_text (buffer, text, strlen(text));
+ gtk_widget_grab_focus (priv->txtView);
}
gboolean on_sms_txtView_key_release_event (GtkWidget *widget,
GdkEventKey *event,
- SmsDialogWindow *self)
+ SmsDialogWindow *self)
{
- SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
- GtkTextBuffer * buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(priv->txtView));
- gint n = 160 - gtk_text_buffer_get_char_count(buffer)%160;
- gint m = gtk_text_buffer_get_char_count(buffer)/160 + 1;
- gtk_label_set_text(GTK_LABEL(priv->textInLabel),g_strdup_printf("%d(%d)",n,m));
- return FALSE;
+ SmsDialogWindowPrivate* priv = SMS_DIALOG_WINDOW_GET_PRIVATE(self);
+ GtkTextBuffer * buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(priv->txtView));
+ gint n = 160 - gtk_text_buffer_get_char_count(buffer)%160;
+ gint m = gtk_text_buffer_get_char_count(buffer)/160 + 1;
+ gtk_label_set_text(GTK_LABEL(priv->textInLabel),g_strdup_printf("%d(%d)",n,m));
+ return FALSE;
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-dialog-window.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-dialog-window.h 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-dialog-window.h 2007-03-27 08:34:31 UTC (rev 1516)
@@ -1,4 +1,4 @@
-/*
+/*
* sms-dialog-window.h
*
* Authored By Alex Tang <alex at fic-sh.com.cn>
@@ -16,7 +16,7 @@
*
* Current Version: $Rev$ ($Date: 2006/10/05 17:38:14 $) [$Author: alex $]
*/
-
+
#ifndef _SMS_DIALOG_WINDOW_H_
#define _SMS_DIALOG_WINDOW_H_
@@ -35,13 +35,19 @@
#define SMS_IS_DIALOG_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SMS_TYPE_DIALOG_WINDOW))
#define SMS_DIALOG_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SMS_TYPE_DIALOG_WINDOW, SmsDialogWindowClass))
-typedef struct {
- MokoWindow parent;
-} SmsDialogWindow;
+typedef struct
+{
+ MokoWindow parent;
+ GtkWidget* addressBtn;
+ GtkWidget* toEntry;
+}
+SmsDialogWindow;
-typedef struct {
- MokoWindowClass parent_class;
-} SmsDialogWindowClass;
+typedef struct
+{
+ MokoWindowClass parent_class;
+}
+SmsDialogWindowClass;
GType sms_dialog_window_get_type();
SmsDialogWindow* sms_dialog_window_new();
@@ -51,7 +57,6 @@
void sms_dialog_window_set_contents(SmsDialogWindow* self, GtkWidget* contents);
void sms_dialog_reply_message(SmsDialogWindow* self, message* msg);
void sms_dialog_forward_message(SmsDialogWindow* self, message* msg);
-guint sms_dialog_window_run(SmsDialogWindow* self);
G_END_DECLS
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-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-membership-window.c 2007-03-27 08:34:31 UTC (rev 1516)
@@ -1,4 +1,4 @@
-/*
+/*
* sms-membership-window.c
*
* Authored By Alex Tang <alex at fic-sh.com.cn>
@@ -16,7 +16,7 @@
*
* Current Version: $Rev$ ($Date: 2006/10/05 17:38:14 $) [$Author: alex $]
*/
-
+
#include "sms-membership-window.h"
#include <libmokoui/moko-pixmap-button.h>
#include <gtk/gtkeventbox.h>
@@ -36,9 +36,12 @@
#define SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SMS_TYPE_MEMBERSHIP_WINDOW, SmsMembershipWindowPrivate))
typedef struct _SmsMembershipWindowPrivate SmsMembershipWindowPrivate;
+typedef gboolean (*GtkTreeModelFilterVisibleFunc) (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer data);
struct _SmsMembershipWindowPrivate
-{
+ {
GtkWidget* vbox;
GtkWidget* hbox;
GtkWidget* folderbox;
@@ -56,15 +59,16 @@
GtkWidget* view;
GtkListStore* liststore;
GSList* rdoBtnList;
-};
+ };
typedef struct _SmsMembershipRunInfo
-{
+ {
SmsMembershipWindow *dialog;
gint response_id;
GMainLoop *loop;
gboolean destroyed;
-} SmsMembershipRunInfo;
+ }
+SmsMembershipRunInfo;
static void sms_membership_window_close(SmsMembershipWindow* self);
@@ -78,341 +82,352 @@
static void
sms_membership_window_dispose(GObject* object)
{
- if (G_OBJECT_CLASS (sms_membership_window_parent_class)->dispose)
- G_OBJECT_CLASS (sms_membership_window_parent_class)->dispose (object);
+ if (G_OBJECT_CLASS (sms_membership_window_parent_class)->dispose)
+ G_OBJECT_CLASS (sms_membership_window_parent_class)->dispose (object);
}
static void
sms_membership_window_finalize(GObject* object)
{
- G_OBJECT_CLASS (sms_membership_window_parent_class)->finalize (object);
+ G_OBJECT_CLASS (sms_membership_window_parent_class)->finalize (object);
}
static void
sms_membership_window_class_init(SmsMembershipWindowClass* klass)
{
- GObjectClass* object_class = G_OBJECT_CLASS(klass);
+ GObjectClass* object_class = G_OBJECT_CLASS(klass);
- g_type_class_add_private (klass, sizeof(SmsMembershipWindowPrivate));
+ g_type_class_add_private (klass, sizeof(SmsMembershipWindowPrivate));
- object_class->dispose = sms_membership_window_dispose;
- object_class->finalize = sms_membership_window_finalize;
+ object_class->dispose = sms_membership_window_dispose;
+ object_class->finalize = sms_membership_window_finalize;
}
GtkWidget*
sms_membership_window_new(void)
{
- return GTK_WIDGET(g_object_new(SMS_TYPE_MEMBERSHIP_WINDOW, NULL));
+ return GTK_WIDGET(g_object_new(SMS_TYPE_MEMBERSHIP_WINDOW, NULL));
}
static void sms_membership_window_close(SmsMembershipWindow* self)
{
- GtkWidget *widget = GTK_WIDGET(self);
- GdkEvent *event;
+ GtkWidget *widget = GTK_WIDGET(self);
+ GdkEvent *event;
- event = gdk_event_new( GDK_DELETE );
+ event = gdk_event_new( GDK_DELETE );
- event->any.window = g_object_ref(widget->window);
- event->any.send_event = TRUE;
+ event->any.window = g_object_ref(widget->window);
+ event->any.send_event = TRUE;
- gtk_main_do_event( event );
- gdk_event_free( event );
+ gtk_main_do_event( event );
+ gdk_event_free( event );
}
gboolean membership_filter_changed(GtkWidget* widget, gchar* text, SmsMembershipWindow* self)
{
- g_debug("changed to %s folder",text);
- SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
- self->currentfolder = g_strdup(text);
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(priv->filter));
-
- return FALSE;
+ g_debug("changed to %s folder",text);
+ SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
+ self->currentfolder = g_strdup(text);
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(priv->filter));
+
+ return FALSE;
}
-void sms_membership_window_show (SmsMembershipWindow* self){
- GtkWidget *widget = GTK_WIDGET(self);
- gtk_widget_show (widget);
+void sms_membership_window_show (SmsMembershipWindow* self)
+{
+ GtkWidget *widget = GTK_WIDGET(self);
+ gtk_widget_show (widget);
}
static void
sms_membership_window_init(SmsMembershipWindow* self)
{
- MokoWindow* parent = (MokoWindow*)moko_application_get_main_window( moko_application_get_instance() );
- if ( parent )
+ MokoWindow* parent = (MokoWindow*)moko_application_get_main_window( moko_application_get_instance() );
+ if ( parent )
{
- gtk_window_set_transient_for( GTK_WINDOW(self), GTK_WINDOW(parent) );
+ gtk_window_set_transient_for( GTK_WINDOW(self), GTK_WINDOW(parent) );
#ifndef DEBUG_THIS_FILE
- gtk_window_set_modal( GTK_WINDOW(self), TRUE );
+ gtk_window_set_modal( GTK_WINDOW(self), TRUE );
#endif
- gtk_window_set_destroy_with_parent( GTK_WINDOW(self), TRUE );
+ gtk_window_set_destroy_with_parent( GTK_WINDOW(self), TRUE );
}
-
- SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
- self->currentfolder = g_strdup("Inbox");
- //Set title
- priv->liststore = NULL;
- priv->vbox = gtk_vbox_new( FALSE, 0 );
-
- priv->menubox = moko_menu_box_new();
- gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->menubox), FALSE, FALSE, 0 );
-
- priv->titleLabel = gtk_label_new( "Message Membership" );
- gtk_window_set_title( GTK_WINDOW(self), "Message Membership" );
- gtk_widget_set_name( GTK_WIDGET(priv->titleLabel), "mokodialogwindow-title-label" );
- 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 );
+ SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
+ self->currentfolder = g_strdup("Inbox");
+ //Set title
+ priv->liststore = NULL;
+ priv->vbox = gtk_vbox_new( FALSE, 0 );
- //Set folder list
- GtkWidget* closebox = gtk_hbox_new( FALSE, 0 );
- PangoFontDescription* font_desc;
- font_desc = pango_font_description_from_string ("bold 12");
- priv->fromLabel = gtk_label_new( "AlexTang" );
- gtk_widget_modify_font (priv->fromLabel, font_desc);
- gtk_widget_set_size_request (priv->fromLabel, 250, -1);
- gtk_misc_set_alignment (GTK_MISC(priv->fromLabel), 0, 0.5);
- 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);
- priv->closebutton = gtk_button_new_with_label ("Close");
- gtk_widget_set_size_request (priv->closebutton, -1, 38);
- GtkAlignment* alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
- gtk_alignment_set_padding (alignment, 5, 5, 5, 5);
- gtk_container_add (GTK_CONTAINER(alignment), priv->closebutton);
- GtkWidget* hsep = gtk_hseparator_new();
- gtk_widget_set_size_request (hsep, -1, 3);
+ priv->menubox = moko_menu_box_new();
+ gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->menubox), FALSE, FALSE, 0 );
- //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);
- gtk_container_add( GTK_CONTAINER(fbAlign), GTK_WIDGET(priv->folderbox) );
-
- gtk_box_pack_start( GTK_BOX(headerbox), GTK_WIDGET(priv->fromLabel), TRUE, TRUE, 0 );
- gtk_box_pack_start( GTK_BOX(headerbox), GTK_WIDGET(priv->subjectLabel), TRUE, TRUE, 0 );
- gtk_box_pack_start( GTK_BOX(closebox), GTK_WIDGET(headerbox), TRUE, FALSE, 0 );
- gtk_box_pack_start( GTK_BOX(closebox), GTK_WIDGET(alignment), FALSE, FALSE, 0 );
- gtk_box_pack_start( GTK_BOX(priv->folderbox), GTK_WIDGET(closebox), FALSE, FALSE, 0 );
- gtk_box_pack_start( GTK_BOX(priv->folderbox), GTK_WIDGET(hsep), FALSE, FALSE, 0 );
- gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(fbAlign), FALSE, FALSE, 0 );
-
- gtk_widget_show_all( GTK_WIDGET(priv->vbox) );
- gtk_container_add( GTK_CONTAINER(self), GTK_WIDGET(priv->vbox) );
- g_signal_connect_swapped ( G_OBJECT(priv->closebutton), "clicked", G_CALLBACK(sms_membership_window_close), self );
- g_signal_connect( G_OBJECT(priv->menubox), "filter_changed", G_CALLBACK(membership_filter_changed), self );
-
+ priv->titleLabel = gtk_label_new( "Message Membership" );
+ gtk_window_set_title( GTK_WINDOW(self), "Message Membership" );
+ gtk_widget_set_name( GTK_WIDGET(priv->titleLabel), "mokodialogwindow-title-label" );
+ 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;
+ font_desc = pango_font_description_from_string ("bold 12");
+ priv->fromLabel = gtk_label_new( "AlexTang" );
+ gtk_widget_modify_font (priv->fromLabel, font_desc);
+ gtk_widget_set_size_request (priv->fromLabel, 250, -1);
+ gtk_misc_set_alignment (GTK_MISC(priv->fromLabel), 0, 0.5);
+ 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);
+ priv->closebutton = gtk_button_new_with_label ("Close");
+ gtk_widget_set_size_request (priv->closebutton, -1, 38);
+ GtkAlignment* alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
+ gtk_alignment_set_padding (alignment, 5, 5, 5, 5);
+ 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);
+ gtk_container_add( GTK_CONTAINER(fbAlign), GTK_WIDGET(priv->folderbox) );
+
+ gtk_box_pack_start( GTK_BOX(headerbox), GTK_WIDGET(priv->fromLabel), TRUE, TRUE, 0 );
+ gtk_box_pack_start( GTK_BOX(headerbox), GTK_WIDGET(priv->subjectLabel), TRUE, TRUE, 0 );
+ gtk_box_pack_start( GTK_BOX(closebox), GTK_WIDGET(headerbox), TRUE, FALSE, 0 );
+ gtk_box_pack_start( GTK_BOX(closebox), GTK_WIDGET(alignment), FALSE, FALSE, 0 );
+ gtk_box_pack_start( GTK_BOX(priv->folderbox), GTK_WIDGET(closebox), FALSE, FALSE, 0 );
+ gtk_box_pack_start( GTK_BOX(priv->folderbox), GTK_WIDGET(hsep), FALSE, FALSE, 0 );
+ gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(fbAlign), FALSE, FALSE, 0 );
+
+ gtk_widget_show_all( GTK_WIDGET(priv->vbox) );
+ gtk_container_add( GTK_CONTAINER(self), GTK_WIDGET(priv->vbox) );
+ g_signal_connect_swapped ( G_OBJECT(priv->closebutton), "clicked", G_CALLBACK(sms_membership_window_close), self );
+ g_signal_connect( G_OBJECT(priv->menubox), "filter_changed", G_CALLBACK(membership_filter_changed), self );
+
}
void membeship_rdo_btn_clicked ( GtkButton* button, SmsMembershipWindow* self)
{
- GtkTreeModel* model;
- GtkTreeIter iter;
- GtkTreeIter childiter;
- GtkTreeSelection* selection;
- SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
-
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->view));
- gboolean has_selection = gtk_tree_selection_get_selected (selection, &model,&iter);
- if (has_selection){
- gchar* folder;
- gtk_tree_model_get (model, &iter, COLUMN_FOLDER, &folder, -1);
- g_debug ("folder is %s",folder);
- self->currentfolder = g_strdup(folder);
- gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(priv->filter),&childiter,&iter);
- gtk_list_store_set(priv->liststore, &childiter, COLUMN_FOLDER, gtk_button_get_label(button), -1);
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(priv->filter));
+ GtkTreeModel* model;
+ GtkTreeIter iter;
+ GtkTreeIter childiter;
+ GtkTreeSelection* selection;
+ SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
+
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->view));
+ gboolean has_selection = gtk_tree_selection_get_selected (selection, &model,&iter);
+ if (has_selection)
+ {
+ gchar* folder;
+ gtk_tree_model_get (model, &iter, COLUMN_FOLDER, &folder, -1);
+ g_debug ("folder is %s",folder);
+ self->currentfolder = g_strdup(folder);
+ gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(priv->filter),&childiter,&iter);
+ gtk_list_store_set(priv->liststore, &childiter, COLUMN_FOLDER, gtk_button_get_label(button), -1);
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(priv->filter));
}
}
void sms_membership_window_set_menubox(SmsMembershipWindow* self, GSList* folderlist)
{
- GtkWidget* appmenu;
- GtkWidget* filtmenu;
-
- SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
-
- /* application menu */
- appmenu = NULL;
- /*GtkMenuItem* mmitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Message Membership" ));
- GtkMenuItem* fnitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Folder Rename" ));
- GtkMenuItem* accountitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Account" ));
- GtkMenuItem* helpitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Help" ));
- GtkWidget* sepitem = gtk_separator_menu_item_new();
- GtkMenuItem* closeitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Close" ));
- gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(mmitem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(fnitem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(accountitem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(helpitem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(sepitem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(closeitem) );*/
-
- GtkWidget* rdobtnbox = gtk_vbox_new(FALSE, 0) ;
- GtkWidget *rdo_btn = NULL;
- GSList *rdo_btn_group;
- GSList* c = folderlist;
-
- filtmenu = gtk_menu_new();
- for (; c; c = g_slist_next(c) ){
- //add folder to filter menu
- gchar* folder = (gchar*) c->data;
- g_debug( "adding folder '%s'", folder );
- gtk_menu_shell_append( GTK_MENU_SHELL( filtmenu ), gtk_menu_item_new_with_label( folder ) );
-
- //add folder to folder list
- if(!g_strcasecmp(folder,"Inbox")){
- rdo_btn = gtk_radio_button_new_with_label (NULL, folder);
- rdo_btn_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (rdo_btn));
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rdo_btn), TRUE);
+ GtkWidget* appmenu;
+ GtkWidget* filtmenu;
+
+ SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
+
+ /* application menu */
+ appmenu = NULL;
+ /*GtkMenuItem* mmitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Message Membership" ));
+ GtkMenuItem* fnitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Folder Rename" ));
+ GtkMenuItem* accountitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Account" ));
+ GtkMenuItem* helpitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Help" ));
+ GtkWidget* sepitem = gtk_separator_menu_item_new();
+ GtkMenuItem* closeitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Close" ));
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(mmitem) );
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(fnitem) );
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(accountitem) );
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(helpitem) );
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(sepitem) );
+ gtk_menu_shell_append( GTK_MENU_SHELL(appmenu), GTK_WIDGET(closeitem) );*/
+
+ GtkWidget* rdobtnbox = gtk_vbox_new(FALSE, 0) ;
+ GtkWidget *rdo_btn = NULL;
+ GSList *rdo_btn_group;
+ GSList* c = folderlist;
+
+ filtmenu = gtk_menu_new();
+ for (; c; c = g_slist_next(c) )
+ {
+ //add folder to filter menu
+ gchar* folder = (gchar*) c->data;
+ g_debug( "adding folder '%s'", folder );
+ gtk_menu_shell_append( GTK_MENU_SHELL( filtmenu ), gtk_menu_item_new_with_label( folder ) );
+
+ //add folder to folder list
+ if(!g_strcasecmp(folder,"Inbox"))
+ {
+ rdo_btn = gtk_radio_button_new_with_label (NULL, folder);
+ rdo_btn_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (rdo_btn));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rdo_btn), TRUE);
}
- else
- rdo_btn = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (rdo_btn), folder);
- priv->rdoBtnList = g_slist_append (priv->rdoBtnList,rdo_btn);
- g_signal_connect (G_OBJECT(rdo_btn), "released", G_CALLBACK (membeship_rdo_btn_clicked), self);
- gtk_box_pack_start (GTK_BOX (rdobtnbox), rdo_btn, FALSE, TRUE, 0);
+ else
+ rdo_btn = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (rdo_btn), folder);
+ priv->rdoBtnList = g_slist_append (priv->rdoBtnList,rdo_btn);
+ g_signal_connect (G_OBJECT(rdo_btn), "released", G_CALLBACK (membeship_rdo_btn_clicked), self);
+ gtk_box_pack_start (GTK_BOX (rdobtnbox), rdo_btn, FALSE, TRUE, 0);
}
- //set radio button box alignment
- if (!GTK_IS_ALIGNMENT(priv->radioAlign)){
- g_debug("Should be the first fime");
- priv->radioAlign = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
- gtk_alignment_set_padding (GTK_ALIGNMENT(priv->radioAlign), 5, 5, 30, 5);
- priv->radioBtnBox = rdobtnbox;
- gtk_container_add( GTK_CONTAINER(priv->radioAlign), GTK_WIDGET(priv->radioBtnBox) );
- gtk_box_pack_start (GTK_BOX (priv->folderbox), GTK_WIDGET(priv->radioAlign), FALSE, FALSE, 0);
- moko_menu_box_set_application_menu( MOKO_MENU_BOX(priv->menubox), GTK_MENU(appmenu) );
+ //set radio button box alignment
+ if (!GTK_IS_ALIGNMENT(priv->radioAlign))
+ {
+ g_debug("Should be the first fime");
+ priv->radioAlign = gtk_alignment_new (0.5, 0.5, 1, 1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(priv->radioAlign), 5, 5, 30, 5);
+ priv->radioBtnBox = rdobtnbox;
+ gtk_container_add( GTK_CONTAINER(priv->radioAlign), GTK_WIDGET(priv->radioBtnBox) );
+ gtk_box_pack_start (GTK_BOX (priv->folderbox), GTK_WIDGET(priv->radioAlign), FALSE, FALSE, 0);
+ moko_menu_box_set_application_menu( MOKO_MENU_BOX(priv->menubox), GTK_MENU(appmenu) );
}
- else{
- gtk_container_remove( GTK_CONTAINER(priv->radioAlign), GTK_WIDGET(priv->radioBtnBox) );
- priv->radioBtnBox = rdobtnbox;
- gtk_container_add( GTK_CONTAINER(priv->radioAlign), GTK_WIDGET(priv->radioBtnBox) );
+ else
+ {
+ gtk_container_remove( GTK_CONTAINER(priv->radioAlign), GTK_WIDGET(priv->radioBtnBox) );
+ priv->radioBtnBox = rdobtnbox;
+ gtk_container_add( GTK_CONTAINER(priv->radioAlign), GTK_WIDGET(priv->radioBtnBox) );
}
- moko_menu_box_set_filter_menu( MOKO_MENU_BOX(priv->menubox), GTK_MENU(filtmenu) );
- gtk_widget_show (priv->menubox);
- gtk_widget_show_all (priv->vbox);
+ moko_menu_box_set_filter_menu( MOKO_MENU_BOX(priv->menubox), GTK_MENU(filtmenu) );
+ gtk_widget_show (priv->menubox);
+ gtk_widget_show_all (priv->vbox);
}
void
membership_cell_data_func (GtkTreeViewColumn *col,
- GtkCellRenderer *renderer,
- GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer user_data)
+ GtkCellRenderer *renderer,
+ GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer user_data)
{
- gint status;
-
- gtk_tree_model_get(model, iter, COLUMN_STATUS, &status, -1);
- if (status == UNREAD)
- g_object_set(renderer, "weight", PANGO_WEIGHT_BOLD, "weight-set", TRUE, NULL);
- else
- g_object_set(renderer, "weight", PANGO_WEIGHT_BOLD, "weight-set", FALSE, NULL);
+ gint status;
+
+ gtk_tree_model_get(model, iter, COLUMN_STATUS, &status, -1);
+ if (status == UNREAD)
+ g_object_set(renderer, "weight", PANGO_WEIGHT_BOLD, "weight-set", TRUE, NULL);
+ else
+ g_object_set(renderer, "weight", PANGO_WEIGHT_BOLD, "weight-set", FALSE, NULL);
}
-void membership_cursor_changed(GtkTreeSelection *selection,
+void membership_cursor_changed(GtkTreeSelection *selection,
SmsMembershipWindow *self)
{
- SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
- GtkTreeModel* model;
- GtkTreeIter iter;
- message* msg;
-
- if ( gtk_tree_selection_get_selected( selection, &model, &iter ) ) {
- msg = g_malloc(sizeof(message));
- gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 );
- gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 );
- gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 );
- gtk_tree_model_get( model, &iter, COLUMN_STATUS, &msg->status, -1);
-
- gtk_label_set_text (GTK_LABEL(priv->fromLabel), msg->name);
- gtk_label_set_text (GTK_LABEL(priv->subjectLabel), msg->subject);
- g_debug ("radio list length: %d",g_slist_length(priv->rdoBtnList));
-
- GSList* c;
- GtkWidget *elem;
- for( c =priv->rdoBtnList; c; c=g_slist_next(c)) {
- elem = c->data;
- if (!g_strcasecmp (msg->folder,gtk_button_get_label(GTK_BUTTON(elem)))){
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(elem), TRUE);
- break;
- }
- }
+ SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
+ GtkTreeModel* model;
+ GtkTreeIter iter;
+ message* msg;
+
+ if ( gtk_tree_selection_get_selected( selection, &model, &iter ) )
+ {
+ msg = g_malloc(sizeof(message));
+ gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 );
+ gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 );
+ gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 );
+ gtk_tree_model_get( model, &iter, COLUMN_STATUS, &msg->status, -1);
+
+ gtk_label_set_text (GTK_LABEL(priv->fromLabel), msg->name);
+ gtk_label_set_text (GTK_LABEL(priv->subjectLabel), msg->subject);
+ g_debug ("radio list length: %d",g_slist_length(priv->rdoBtnList));
+
+ GSList* c;
+ GtkWidget *elem;
+ for( c =priv->rdoBtnList; c; c=g_slist_next(c))
+ {
+ elem = c->data;
+ if (!g_strcasecmp (msg->folder,gtk_button_get_label(GTK_BUTTON(elem))))
+ {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(elem), TRUE);
+ break;
+ }
+ }
}
}
gboolean membership_filter_visible_function (GtkTreeModel* model, GtkTreeIter* iter, SmsMembershipWindow* self)
{
- gchar* folder;
- gtk_tree_model_get (model, iter, COLUMN_FOLDER, &folder, -1);
+ gchar* folder;
+ gtk_tree_model_get (model, iter, COLUMN_FOLDER, &folder, -1);
- if(!g_strcasecmp(folder,self->currentfolder))
- return TRUE;
- else
- return FALSE;
+ if(!g_strcasecmp(folder,self->currentfolder))
+ return TRUE;
+ else
+ return FALSE;
}
-void sms_membership_window_set_messages (SmsMembershipWindow* self,
- GtkListStore* liststore)
+void sms_membership_window_set_messages (SmsMembershipWindow* self,
+ GtkListStore* liststore)
{
- GtkCellRenderer* ren;
- GtkTreeViewColumn* column = gtk_tree_view_column_new();
- gtk_tree_view_column_set_title(column, "From");
+ GtkCellRenderer* ren;
+ GtkTreeViewColumn* column = gtk_tree_view_column_new();
+ gtk_tree_view_column_set_title(column, "From");
- SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
- priv->liststore = liststore;
- priv->filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (priv->liststore),NULL);
- priv->view = moko_tree_view_new_with_model( GTK_TREE_MODEL (priv->filter));
- gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (priv->filter),
- membership_filter_visible_function,
- self,
- NULL);
- /* Add status picture */
- ren = gtk_cell_renderer_pixbuf_new();
- gtk_tree_view_column_pack_start(column, ren, FALSE);
- gtk_tree_view_column_set_attributes(column, ren, "pixbuf", COLUMN_ICON, NULL);
-
- /* add message from name */
- ren = gtk_cell_renderer_text_new();
- gtk_tree_view_column_pack_start(column, ren, TRUE);
- gtk_tree_view_column_set_attributes(column, ren, "text", COLUMN_FROM, NULL);
-
- /* Bold if UNREAD */
- gtk_tree_view_column_set_cell_data_func (column, ren, membership_cell_data_func, priv->liststore, NULL);
- moko_tree_view_append_column( MOKO_TREE_VIEW(priv->view), column );
+ SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
+ priv->liststore = liststore;
+ priv->filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (priv->liststore),NULL);
+ priv->view = moko_tree_view_new_with_model( GTK_TREE_MODEL (priv->filter));
+ gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (priv->filter),
+ (GtkTreeModelFilterVisibleFunc)membership_filter_visible_function,
+ self,
+ NULL);
+ /* Add status picture */
+ ren = gtk_cell_renderer_pixbuf_new();
+ gtk_tree_view_column_pack_start(column, ren, FALSE);
+ gtk_tree_view_column_set_attributes(column, ren, "pixbuf", COLUMN_ICON, NULL);
- ren = gtk_cell_renderer_text_new();
- column = gtk_tree_view_column_new();
- gtk_tree_view_column_set_title(column, "Subject");
- gtk_tree_view_column_pack_start(column, ren, TRUE);
- gtk_tree_view_column_set_attributes(column, ren, "text", COLUMN_SUBJECT, NULL);
- gtk_tree_view_column_set_cell_data_func (column, ren, membership_cell_data_func, priv->liststore, NULL);
- moko_tree_view_append_column( MOKO_TREE_VIEW(priv->view), column );
-
- if (!GTK_IS_ALIGNMENT(priv->msgViewAlign)){
- GtkWidget* treeViewAlign = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT(treeViewAlign),10,10,10,10);
- priv->msgViewAlign = treeViewAlign;
- priv->msgViewWin = moko_tree_view_put_into_scrolled_window(MOKO_TREE_VIEW(priv->view));
- gtk_container_add (GTK_CONTAINER(priv->msgViewAlign),priv->msgViewWin);
- gtk_box_pack_start (GTK_BOX (priv->vbox), GTK_WIDGET(priv->msgViewAlign), TRUE, TRUE, 0);
+ /* add message from name */
+ ren = gtk_cell_renderer_text_new();
+ gtk_tree_view_column_pack_start(column, ren, TRUE);
+ gtk_tree_view_column_set_attributes(column, ren, "text", COLUMN_FROM, NULL);
+
+ /* Bold if UNREAD */
+ gtk_tree_view_column_set_cell_data_func (column, ren, membership_cell_data_func, priv->liststore, NULL);
+ moko_tree_view_append_column( MOKO_TREE_VIEW(priv->view), column );
+
+ ren = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new();
+ gtk_tree_view_column_set_title(column, "Subject");
+ gtk_tree_view_column_pack_start(column, ren, TRUE);
+ gtk_tree_view_column_set_attributes(column, ren, "text", COLUMN_SUBJECT, NULL);
+ gtk_tree_view_column_set_cell_data_func (column, ren, membership_cell_data_func, priv->liststore, NULL);
+ moko_tree_view_append_column( MOKO_TREE_VIEW(priv->view), column );
+
+ if (!GTK_IS_ALIGNMENT(priv->msgViewAlign))
+ {
+ GtkWidget* treeViewAlign = gtk_alignment_new (0.5, 0.5, 1, 1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(treeViewAlign),10,10,10,10);
+ priv->msgViewAlign = treeViewAlign;
+ priv->msgViewWin = moko_tree_view_put_into_scrolled_window(MOKO_TREE_VIEW(priv->view));
+ gtk_container_add (GTK_CONTAINER(priv->msgViewAlign),priv->msgViewWin);
+ gtk_box_pack_start (GTK_BOX (priv->vbox), GTK_WIDGET(priv->msgViewAlign), TRUE, TRUE, 0);
}
- else{
- gtk_container_remove (GTK_CONTAINER(priv->msgViewAlign),priv->msgViewWin);
- priv->msgViewWin = moko_tree_view_put_into_scrolled_window(MOKO_TREE_VIEW(priv->view));
- gtk_container_add (GTK_CONTAINER(priv->msgViewAlign),priv->msgViewWin);
+ else
+ {
+ gtk_container_remove (GTK_CONTAINER(priv->msgViewAlign),priv->msgViewWin);
+ priv->msgViewWin = moko_tree_view_put_into_scrolled_window(MOKO_TREE_VIEW(priv->view));
+ gtk_container_add (GTK_CONTAINER(priv->msgViewAlign),priv->msgViewWin);
}
- gtk_widget_show_all (priv->vbox);
-
- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->view));
- g_signal_connect( G_OBJECT(selection), "changed", G_CALLBACK(membership_cursor_changed), self);
+ gtk_widget_show_all (priv->vbox);
+
+ GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->view));
+ g_signal_connect( G_OBJECT(selection), "changed", G_CALLBACK(membership_cursor_changed), self);
}
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-membership-window.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-membership-window.h 2007-03-27 01:57:29 UTC (rev 1515)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-membership-window.h 2007-03-27 08:34:31 UTC (rev 1516)
@@ -1,4 +1,4 @@
-/*
+/*
* sms-membership-window.h
*
* Authored By Alex Tang <alex at fic-sh.com.cn>
@@ -16,7 +16,7 @@
*
* Current Version: $Rev$ ($Date: 2006/10/05 17:38:14 $) [$Author: alex $]
*/
-
+
#ifndef _SMS_MEMBERSHIP_WINDOW_H_
#define _SMS_MEMBERSHIP_WINDOW_H_
@@ -41,14 +41,18 @@
#define SMS_IS_MEMBERSHIP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SMS_TYPE_MEMBERSHIP_WINDOW))
#define SMS_MEMBERSHIP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SMS_TYPE_MEMBERSHIP_WINDOW, SmsMembershipWindowClass))
-typedef struct {
+typedef struct
+ {
MokoWindow parent;
gchar* currentfolder;
-} SmsMembershipWindow;
+ }
+SmsMembershipWindow;
-typedef struct {
+typedef struct
+ {
MokoWindowClass parent_class;
-} SmsMembershipWindowClass;
+ }
+SmsMembershipWindowClass;
GType sms_membership_window_get_type();
GtkWidget* sms_membership_window_new();
More information about the commitlog
mailing list