r911 - trunk/src/target/OM-2007/applications/openmoko-messages/src
alex_tang at sita.openmoko.org
alex_tang at sita.openmoko.org
Thu Feb 8 15:00:54 CET 2007
Author: alex_tang
Date: 2007-02-08 15:00:35 +0100 (Thu, 08 Feb 2007)
New Revision: 911
Modified:
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:
Replace the comment for each file
Clean the code to remove warnings, although there are still some warnings :P
Systems folder add "trash"
Reply and forward message complete
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/Makefile.am 2007-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/Makefile.am 2007-02-08 14:00:35 UTC (rev 911)
@@ -3,9 +3,9 @@
INCLUDES = -DPKGDATADIR=\"$(pkgdatadir)\" @OPENMOKO_CFLAGS@ -Wall -std=c99 -pedantic
-bin_PROGRAMS = openmoko-messenger
+bin_PROGRAMS = openmoko-messages
-openmoko_messenger_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
-openmoko_messenger_LDADD = @OPENMOKO_LIBS@
+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-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.c 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,3 +1,23 @@
+/*
+ * callbacks.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$) [$Author$]
+ */
+
+
#include "callbacks.h"
#include "detail-area.h"
#include <gtk/gtk.h>
@@ -7,7 +27,7 @@
{
g_debug("changed to %s folder",text);
d->currentfolder = g_strdup(text);
- gtk_tree_model_filter_refilter (d->filter);
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));
return FALSE;
}
@@ -33,7 +53,7 @@
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,NULL,30,10);
+ gtk_alignment_set_padding (GTK_ALIGNMENT(nfAlign), 100, 0, 30, 10);
moko_dialog_window_set_title (nfWin, "New Folder");
GtkWidget* nfLabel = gtk_label_new ("Please input new folder name:");
@@ -70,72 +90,69 @@
{
g_debug ("mode read");
message* msg;
- GtkTreeSelection* selection = gtk_tree_view_get_selection( d->view );
- GtkTreeView* view = gtk_tree_selection_get_tree_view( selection );
+ 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 );
- gchar* name = NULL;
- gchar* folder = NULL;
- if ( has_selection )
- {
- msg = g_malloc(sizeof(message));
+ 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 (d->details,msg);
+ 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( d->view );
- GtkTreeView* view = gtk_tree_selection_get_tree_view( selection );
+ 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 );
- gchar* name = NULL;
- gchar* folder = NULL;
- if ( has_selection )
- {
- msg = g_malloc(sizeof(message));
+ 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;
+ }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( d->view );
- GtkTreeView* view = gtk_tree_selection_get_tree_view( selection );
+ 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 );
- gchar* name = NULL;
- gchar* folder = NULL;
- if ( has_selection )
- {
- msg = g_malloc(sizeof(message));
+ 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 );
- }
+ COLUMN_FROM, &msg->name,
+ COLUMN_SUBJECT, &msg->subject,
+ COLUMN_FOLDER, &msg->folder,
+ COLUMN_CONTENT, &msg->content,
+ -1 );
+ }
else msg = NULL;
- detail_forward_message (d->details,msg);
+
+ 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)
@@ -143,67 +160,61 @@
g_debug ("delete folder called");
GtkWidget* msgDialog;
- GtkWidget* menuitem = gtk_menu_get_attach_widget (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")){
-
- msgDialog = gtk_message_dialog_new( 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( 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);
- }
+ 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;
+ GtkTreeModel* model;
GtkTreeIter iter;
GtkTreeIter childiter;
GtkTreeSelection* selection;
- selection = gtk_tree_view_get_selection (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( moko_application_get_main_window(d->app),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_OK,
- "No message selected");
- gint result = gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
- }
+ 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)
@@ -214,98 +225,96 @@
sms_membership_window_set_menubox (SMS_MEMBERSHIP_WINDOW(d->mmWin), d->folderlist);
sms_membership_window_set_messages (SMS_MEMBERSHIP_WINDOW(d->mmWin), d->liststore);
}
- sms_membership_window_show ( d->mmWin );
+ sms_membership_window_show ( SMS_MEMBERSHIP_WINDOW(d->mmWin) );
}
void cb_frBtn_clicked (GtkButton* button, MessengerData* d)
{
- GSList *c;
- GtkMenu* filtmenu;
+ GSList *c;
gchar* folder;
- GtkWidget* menuitem = gtk_menu_get_attach_widget (d->filtmenu);
- GtkWidget* menulabel = GTK_BIN(menuitem)->child;
- gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel)));
+ 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 (d->filter);
+ 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);
- }
+ 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 = 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,d->filtmenu);
- gtk_widget_show_all (menubox);
+ moko_menu_box_set_filter_menu(menubox, GTK_MENU(d->filtmenu));
+ gtk_widget_show_all (GTK_WIDGET(menubox));
}
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 (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")){
-
- GtkWidget* msgDialog = gtk_message_dialog_new( 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 {
- MokoDialogWindow* 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,NULL,30,10);
- moko_dialog_window_set_title (frWin, "Folder Rename");
+ 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 {
+ MokoDialogWindow* 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 (frWin, "Folder Rename");
- GtkWidget* menuitem = gtk_menu_get_attach_widget (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);
- GtkWidget* hbox = gtk_hbox_new (FALSE,20);
- d->frEntry = gtk_entry_new ();
- gtk_box_pack_start (GTK_BOX(hbox), d->frEntry, FALSE, TRUE, 0);
- GtkWidget* frResetBtn = gtk_button_new_with_label ("Reset");
- gtk_box_pack_start (GTK_BOX(hbox), frResetBtn, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX(frBox), hbox, FALSE, TRUE, 0);
+ GtkWidget* hbox = gtk_hbox_new (FALSE,20);
+ d->frEntry = gtk_entry_new ();
+ gtk_box_pack_start (GTK_BOX(hbox), d->frEntry, FALSE, TRUE, 0);
+ GtkWidget* frResetBtn = gtk_button_new_with_label ("Reset");
+ gtk_box_pack_start (GTK_BOX(hbox), frResetBtn, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(frBox), hbox, FALSE, TRUE, 0);
- hbox = gtk_hbox_new (FALSE,0);
- GtkWidget* frConfirmBtn = gtk_button_new_with_label ("OK");
- gtk_box_pack_start (GTK_BOX(hbox), frConfirmBtn, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX(frBox), hbox, FALSE, TRUE, 0);
- gtk_container_add (GTK_CONTAINER(frAlign),frBox);
+ hbox = gtk_hbox_new (FALSE,0);
+ GtkWidget* frConfirmBtn = gtk_button_new_with_label ("OK");
+ gtk_box_pack_start (GTK_BOX(hbox), frConfirmBtn, 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 (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(frWin) );
+ moko_dialog_window_set_contents (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(frWin) );
}
}
@@ -317,9 +326,9 @@
d->filtmenu = reload_filter_menu (d,d->folderlist);
MokoMenuBox* menubox = moko_paned_window_get_menubox( d->window );
g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d );
- moko_menu_box_set_filter_menu(menubox,d->filtmenu);
- gtk_widget_show_all (menubox);
- /*foldersdb_update (d->folderlist);*/
+ 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);
}
@@ -333,58 +342,53 @@
{
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 = 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,d->filtmenu);
+ 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 (menubox);
+ gtk_widget_show_all (GTK_WIDGET(menubox));
update_folder_sensitive (d, d->folderlist);
/*result inform */
- GtkWidget *dialog = gtk_message_dialog_new ((gtk_widget_get_parent_window(button)),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_CLOSE,
- "Delete successful");
+ 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);
+ 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 = 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,d->filtmenu);
+ 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 (menubox);
+ gtk_widget_show_all (GTK_WIDGET(menubox));
update_folder_sensitive (d, d->folderlist);
}
@@ -395,8 +399,6 @@
void cb_cursor_changed(GtkTreeSelection* selection, MessengerData* d)
{
- gchar* name = NULL;
- gchar* folder = NULL;
GtkTreeModel* model;
GtkTreeIter iter;
GtkTreeIter childiter;
@@ -405,27 +407,25 @@
GdkPixbuf* icon;
GError* error = NULL;
- g_debug( "openmoko-messenger: selection changed" );
+ g_debug( "openmoko-messenger: selection changed" );
view = gtk_tree_selection_get_tree_view( selection );
- if ( gtk_tree_selection_get_selected( selection, &model, &iter ) )
- {
- msg = g_malloc(sizeof(message));
+ 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 (d->details,msg);
+ 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);
}
}
@@ -433,42 +433,44 @@
on_btnsend_clicked (GtkButton *button,
gpointer user_data)
{
- g_printf("Button send clicked\n");
+ g_debug("Button send clicked\n");
}
void
on_btn_address_clicked (GtkButton *button,
gpointer user_data)
{
- g_printf("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(search_entry));
- gtk_tree_model_filter_refilter (d->filter);
- g_debug ("search %s",d->s_key);
+ 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",d->s_key);
}
void cb_search_on (MessengerData* d)
{
- g_debug ("search on",d->s_key);
- GtkWidget* menuitem = gtk_menu_get_attach_widget (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",d->s_key);
- GtkWidget* menuitem = gtk_menu_get_attach_widget (d->filtmenu);
- GtkWidget* menulabel = GTK_BIN(menuitem)->child;
- gtk_label_set_text (GTK_LABEL(menulabel),"Inbox");
- d->searchOn = FALSE;
- GtkWidget* search_entry = moko_tool_box_get_entry (d->toolbox);
- gtk_entry_set_text (search_entry, "");
- d->s_key = "";
- gtk_tree_model_filter_refilter (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));
}
+
+
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.h 2007-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.h 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,3 +1,22 @@
+/*
+ * callbacks.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$) [$Author$]
+ */
+
#ifndef _CALLBACKS_H_
#define _CALLBACKS_H_
@@ -6,17 +25,6 @@
#include "sms-membership-window.h"
#include "main.h"
-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 *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 *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"};
-
gboolean cb_filter_changed(GtkWidget* widget, gchar* text, MessengerData* d);
void cb_new_sms (GtkMenuItem* item, MessengerData* d);
@@ -37,13 +45,15 @@
void cb_frResetBtn_clicked (GtkButton* button, GtkWidget* entry);
void cb_dfBtn_clicked (GtkButton* button, MessengerData* d);
void on_mmode_rdo_btn_clicked (gchar* folder);
-void on_btnsend_clicked (GtkButton *button,
+void on_btnsend_clicked (GtkButton *button,
gpointer user_data);
-void on_btn_address_clicked (GtkButton *button,
+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);
+void delete_folder (MessengerData* d, gchar* oldName);
+
#endif
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-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/detail-area.c 2007-02-08 14:00:35 UTC (rev 911)
@@ -2,7 +2,8 @@
*
* Authored By Alex Tang <alex at fic-sh.com.cn>
*
- * Copyright (C) 2006 First International Company
+ * 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.
@@ -91,10 +92,9 @@
}
-DetailArea*
-detail_area_new (void)
+GtkWidget* detail_area_new (void)
{
- return g_object_new(TYPE_DETAIL_AREA, NULL );
+ return GTK_WIDGET(g_object_new(TYPE_DETAIL_AREA, NULL ));
}
GtkWidget* detail_area_mode_edit (DetailArea* self)
@@ -131,10 +131,10 @@
moko_fixed_set_cargo(MOKO_FIXED(self->entryarea),GTK_WIDGET(alignment));
/* fill textview */
- editAttributes->txtView = GTK_TEXT_VIEW(gtk_text_view_new());
+ 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 (editAttributes->txtView,GTK_WRAP_CHAR);
+ 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);
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-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/detail-area.h 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,7 +1,9 @@
/* detail-area.h
+ *
* Authored By Alex Tang <alex at fic-sh.com.cn>
*
- * Copyright (C) 2006 First International Company
+ * 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.
@@ -26,24 +28,26 @@
//#include "main.h"
#include "message.h"
+G_BEGIN_DECLS
+
#define TYPE_DETAIL_AREA detail_area_get_type()
-#define DETAIL_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DETAIL_AREA, DetailArea))
+#define DETAIL_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DETAIL_AREA, DetailArea))
#define DETAIL_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DETAIL_AREA, DetailAreaClass))
#define IS_DETAIL_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DETAIL_AREA))
#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{
- GtkWidget* from_label;
- GtkWidget* date_label;
- GtkWidget* details;
+ GtkWidget* from_label;
+ GtkWidget* date_label;
+ GtkWidget* details;
}ReadAttributes;
typedef struct _Edit_Attributes{
- GtkWidget* sendBtn;
- GtkWidget* addrBtn;
- GtkWidget* toEntry;
- GtkWidget* txtView;
+ GtkWidget* sendBtn;
+ GtkWidget* addrBtn;
+ GtkWidget* toEntry;
+ GtkWidget* txtView;
}EditAttributes;
typedef struct _DetailArea{
@@ -63,7 +67,7 @@
}DetailAreaClass;
GType detail_area_get_type();
-DetailArea* detail_area_new(void);
+GtkWidget* detail_area_new(void);
void detail_new_sms (DetailArea* self);
void detail_read_message (DetailArea* self, message* msg);
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.c 2007-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.c 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,3 +1,23 @@
+/*
+ * foldersdb.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$) [$Author$]
+ */
+
+
#include "foldersdb.h"
#include <stdio.h>
@@ -2,9 +22,9 @@
-G_DEFINE_TYPE (FoldersDB, foldersdb, G_TYPE_OBJECT);
+G_DEFINE_TYPE (FoldersDB, foldersdb, G_TYPE_OBJECT)
#define FOLDERSDB_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_FOLDERSDB, FoldersDBPrivate))
-typedef struct _FoldersDBPrivate
+/*typedef struct _FoldersDBPrivate
{
-} FoldersDBPrivate;
+} FoldersDBPrivate;*/
@@ -30,7 +50,7 @@
GObjectClass *object_class = G_OBJECT_CLASS (klass);
/* register private data */
- g_type_class_add_private (klass, sizeof (FoldersDBPrivate));
+ /*g_type_class_add_private (klass, sizeof (FoldersDBPrivate));*/
/* hook virtual methods */
/* ... */
@@ -41,16 +61,16 @@
object_class->dispose = foldersdb_dispose;
object_class->finalize = foldersdb_finalize;
- FILE* file = g_fopen( "folderlist", "r" );
+ FILE* file = fopen( PKGDATADIR "/folderlist", "rw" );
g_assert( file ); //FIXME error handling, if folder file is not present
- gchar line[256];
- gchar *elem;
- gchar *tok = "\n";
+ 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_list_append(klass->folders, elem);
+ elem = g_strdup(strtok(line, tok));
+ klass->folders = g_slist_append(klass->folders, elem);
}
fclose( file );
@@ -76,15 +96,15 @@
void foldersdb_update ( GSList* folderlist )
{
/*FILE* file = g_fopen( PKGDATADIR "/folderlist", "w" );*/
- FILE* file = g_fopen( "folderlist", "w" );
+ FILE* file = fopen( PKGDATADIR "/folderlist", "w" );
g_assert( file );
GSList* c;
- gchar *elem;
+ char *elem;
for( c =folderlist; c; c=g_slist_next(c))
{
if(g_slist_next(c) != NULL)
- elem = g_strdup_printf( "%s\n", c->data);
+ elem = g_strdup_printf( "%s\n", (char*)c->data);
else
elem = g_strdup(c->data);
fputs(elem, 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-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/foldersdb.h 2007-02-08 14:00:35 UTC (rev 911)
@@ -3,7 +3,7 @@
*
* Authored By Alex Tang <alex at fic-sh.com.cn>
*
- * Copyright (C) 2006 First International Company
+ * 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
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/main.c 2007-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/main.c 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,9 +1,9 @@
/*
- * Messenger -- An messenger application for OpenMoko Framework
+ * Messages -- An messages application for OpenMoko Framework
*
* Authored By Alex Tang <alex at fic-sh.com.cn>
*
- * Copyright (C) 2006 First International Company
+ * 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
@@ -46,8 +46,8 @@
/* ui */
setup_ui(d);
- //disable mmitem
- update_folder_sensitive (d, d->folderlist);
+ /* disable mmitem if necessary*/
+ update_folder_sensitive (d, d->folderlist);
/* show everything and run main loop */
gtk_widget_show_all( GTK_WIDGET(d->window) );
@@ -59,297 +59,283 @@
void update_folder_sensitive (MessengerData* d, GSList* folderlist)
{
- if (g_slist_length (folderlist) > 4){
- 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);
- }
+ 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);
+ }
}
GtkWidget* reload_filter_menu (MessengerData* d, GSList* folderlist)
{
GSList *c;
- GtkMenu* filtmenu;
- filtmenu = GTK_MENU(gtk_menu_new());
+ 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 );
+ g_debug( "adding folder '%s'", folder );
gtk_menu_shell_append( GTK_MENU_SHELL( filtmenu ), gtk_menu_item_new_with_label( folder ) );
}
- return GTK_WIDGET(filtmenu);
+ return filtmenu;
}
void setup_ui( MessengerData* d )
{
- /* main window */
- d->window = MOKO_PANED_WINDOW(moko_paned_window_new());
- d->mmWin = NULL;
+ /* main window */
+ d->window = MOKO_PANED_WINDOW(moko_paned_window_new());
+ d->mmWin = NULL;
- /* application menu */
- d->menu = GTK_MENU(gtk_menu_new());
- d->mmitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Message Membership" ));/* message membershp item */
- d->fnitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Folder Rename" ));/* folder rename item */
- GtkMenuItem* accountitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Account" ));/* account item */
- GtkMenuItem* helpitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label( "Help" ));/* message membershp item */
- GtkWidget* sepitem = gtk_separator_menu_item_new();
- GtkMenuItem* closeitem = GTK_MENU_ITEM(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), GTK_WIDGET(d->mmitem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), GTK_WIDGET(d->fnitem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), GTK_WIDGET(accountitem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), GTK_WIDGET(helpitem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), GTK_WIDGET(sepitem) );
- gtk_menu_shell_append( GTK_MENU_SHELL(d->menu), GTK_WIDGET(closeitem) );
- moko_paned_window_set_application_menu( d->window, GTK_MENU(d->menu) );
+ /* application menu */
+ d->menu = gtk_menu_new();
+ 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) );
- /* filter menu */
- d->filtmenu = GTK_MENU(gtk_menu_new());
+ /* filter menu */
+ d->filtmenu = gtk_menu_new();
+ d->folderlist = foldersdb_get_folders( d->foldersdb );
+ d->filtmenu = reload_filter_menu( d, d->folderlist );
- d->folderlist = foldersdb_get_folders( d->foldersdb );
- d->filtmenu = GTK_MENU(reload_filter_menu (d, d->folderlist));
-
- moko_paned_window_set_filter_menu( d->window, d->filtmenu );
- MokoMenuBox* menubox = moko_paned_window_get_menubox( d->window );
+ 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 );
- /* connect close event */
- g_signal_connect( G_OBJECT(d->window), "delete_event", G_CALLBACK( main_quit ), d );
+ /* connect close event */
+ g_signal_connect( G_OBJECT(d->window), "delete_event", G_CALLBACK( main_quit ), d );
/* set navagation area */
populate_navigation_area( d );
/* set toolbox */
- MokoPixmapButton* newButton;
- MokoPixmapButton* modeButton;
- MokoPixmapButton* getmailButton;
- MokoPixmapButton* deleteButton;
+ GtkWidget* newButton;
+ GtkWidget* modeButton;
+ GtkWidget* getmailButton;
+ GtkWidget* deleteButton;
- GtkMenu* newMenu;
- GtkMenu* modeMenu;
- GtkMenu* deleteMenu;
+ GtkWidget* newMenu;
+ GtkWidget* modeMenu;
+ GtkWidget* deleteMenu;
GtkWidget* image;
/* set tool bar */
- d->toolbox = MOKO_TOOL_BOX(moko_tool_box_new_with_search());
- //gtk_widget_grab_focus( GTK_WIDGET(d->toolbox) );
- GtkWidget* searchEntry = moko_tool_box_get_entry (d->toolbox);
+ d->toolbox = moko_tool_box_new_with_search();
+ GtkWidget* searchEntry = GTK_WIDGET (moko_tool_box_get_entry (MOKO_TOOL_BOX(d->toolbox)));
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 );
/* set action buttons*/
- deleteMenu = GTK_MENU( gtk_menu_new() );
- GtkImageMenuItem* delMsgItem = GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label( "Delete Message" ));
- GtkImageMenuItem* delFolderItem = GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label( "Delete Folder" ));
+ 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 );
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 (GTK_WIDGET(deleteMenu));
- deleteButton = moko_tool_box_add_action_button( MOKO_TOOL_BOX(d->toolbox) );
+ 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), deleteMenu);
+ moko_pixmap_button_set_menu (MOKO_PIXMAP_BUTTON(deleteButton), GTK_MENU(deleteMenu));
- getmailButton = moko_tool_box_add_action_button( MOKO_TOOL_BOX(d->toolbox) );
+ 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);
- modeMenu = GTK_MENU( gtk_menu_new() );
- GtkImageMenuItem* modeReadItem = GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label( "Mode Read" ));
- GtkImageMenuItem* modeReplyItem = GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label( "Mode Reply" ));
- GtkImageMenuItem* modeFwdItem = GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label( "Mode Forward" ));
+ 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(modeMenu), GTK_WIDGET(modeReadItem));
- gtk_menu_shell_append( GTK_MENU_SHELL(modeMenu), GTK_WIDGET(modeReplyItem));
- gtk_menu_shell_append( GTK_MENU_SHELL(modeMenu), GTK_WIDGET(modeFwdItem));
+ 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 (GTK_WIDGET(modeMenu));
- modeButton = moko_tool_box_add_action_button( MOKO_TOOL_BOX(d->toolbox) );
+ 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_pixmap_button_set_menu ( MOKO_PIXMAP_BUTTON(modeButton), GTK_MENU(modeMenu) );
- newMenu = GTK_MENU( gtk_menu_new() );
- GtkImageMenuItem* newMsgItem = GTK_IMAGE_MENU_ITEM ( gtk_image_menu_item_new_with_label( "New SMS") );
- GtkImageMenuItem* newFolderItem = GTK_IMAGE_MENU_ITEM ( gtk_image_menu_item_new_with_label( "New Folder") );
- GtkImageMenuItem* newMailItem = GTK_IMAGE_MENU_ITEM ( gtk_image_menu_item_new_with_label( "New Mail") );
+ 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") ;
- gtk_menu_shell_append( GTK_MENU_SHELL(newMenu), GTK_WIDGET(newMsgItem));
- gtk_menu_shell_append( GTK_MENU_SHELL(newMenu), GTK_WIDGET(newMailItem));
- gtk_menu_shell_append( GTK_MENU_SHELL(newMenu), GTK_WIDGET(newFolderItem));
- gtk_widget_show_all ( GTK_WIDGET(newMenu) );
+ 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 = moko_tool_box_add_action_button( MOKO_TOOL_BOX(d->toolbox) );
+ 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, d->toolbox );
+ moko_paned_window_add_toolbox( d->window, MOKO_TOOL_BOX(d->toolbox) );
/* detail area */
populate_detail_area (d);
- //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 );
+ /* 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);
}
int in_string(char *str, char *key)
{
- int length, key_length;
- int m,n,i;
+ int length, key_length;
+ int m,n,i;
- length = strlen(str);
- key_length = strlen(key);
+ length = strlen(str);
+ key_length = strlen(key);
- n=0;
+ n=0;
- for(m=0;m<length;m++)
- {
- if(str[m] == key[n])
- {
- for(i=0;i<key_length;i++)
- if(str[m+i]!= key[i+n])
- break;
-
- if(i == key_length)
- return 1;
- else
- {
- m = m+i+1;
- n=0;
- }
- }
+ for(m=0;m<length;m++){
+ if(str[m] == key[n]){
+ for(i=0;i<key_length;i++)
+ if(str[m+i]!= key[i+n])
+ break;
+ if(i == key_length)
+ return 1;
+ else{
+ m = m+i+1;
+ n=0;
+ }
+ }
}
- return 0;
+ return 0;
}
gboolean filter_visible_function (GtkTreeModel* model, GtkTreeIter* iter, MessengerData* d)
{
- 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);
+ 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) && !in_string(from, d->s_key) && !in_string(subject, d->s_key))
- return FALSE;
- }
- else {
- gtk_menu_set_active (d->filtmenu,0);
- if(g_strcasecmp(folder,d->currentfolder))
- return FALSE;
- }
+ if (d->searchOn){
+ if ((strlen(d->s_key) > 0) && !in_string(from, d->s_key) && !in_string(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)
+void cell_data_func (GtkTreeViewColumn *col,
+ 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;
- GError* error = NULL;
- GtkTreeIter iter;
+ 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( moko_tree_view_new_with_model( GTK_TREE_MODEL (d->filter)) );
+ 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);
-
+ 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");
+ 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 */
+ 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, cell_data_func, d->liststore, NULL);
- moko_tree_view_append_column( d->view, column );
+ 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, 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_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( d->view, column );
+ moko_tree_view_append_column( MOKO_TREE_VIEW(d->view), column );
- GtkTreeSelection* selection = gtk_tree_view_get_selection( 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(d->view)) );
+ 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))) );
gtk_widget_hide(d->mmWin);
}
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/main.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/main.h 2007-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/main.h 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,9 +1,9 @@
/*
- * Messenger -- An messenger application for OpenMoko Framework
+ * Messages -- An messages application for OpenMoko Framework
*
* Authored By Alex Tang <alex at fic-sh.com.cn>
*
- * Copyright (C) 2006 First International Company
+ * 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
@@ -33,14 +33,14 @@
typedef struct _MessengerData{
MokoApplication* app;
MokoPanedWindow* window;
- GtkMenu* menu;
- GtkMenu* filtmenu;
+ GtkWidget* menu;
+ GtkWidget* filtmenu;
FoldersDB* foldersdb;
- MokoToolBox* toolbox;
+ GtkWidget* toolbox;
GtkListStore* liststore;
- GtkTreeModelFilter* filter;
- MokoTreeView* view;
- DetailArea* details;
+ GtkTreeModel* filter;
+ GtkWidget* view;
+ GtkWidget* details;
GSList* folderlist;
gchar* currentfolder;
gchar* s_key;
@@ -53,7 +53,7 @@
}MessengerData;
enum {
- COLUMN_ICON,
+ COLUMN_ICON,
COLUMN_FROM,
COLUMN_SUBJECT,
COLUMN_CONTENT,
@@ -72,19 +72,12 @@
NUM_PAGES,
};
-enum {
- UNREAD,
- READ,
- REPLIED,
- FORWARD,
- NUM_STATES,
-};
-
GtkWidget* reload_filter_menu (MessengerData* d, GSList* folderlist);
void setup_ui( MessengerData* d );
void populate_navigation_area( MessengerData* d );
void populate_detail_area( MessengerData* d );
void main_quit(GtkWidget* widget, GdkEvent* event, MessengerData* d);
void update_folder_sensitive (MessengerData* d, GSList* folderlist);
+
#endif
Modified: trunk/src/target/OM-2007/applications/openmoko-messages/src/message.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-messages/src/message.h 2007-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/message.h 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,3 +1,23 @@
+/*
+ * messages.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$) [$Author$]
+ */
+
+
#ifndef _MESSAGE_H_
#define _MESSAGE_H_
@@ -2,9 +22,31 @@
typedef struct message{
- gchar* name;
- gchar* subject;
- gchar* folder;
- gchar* content;
- gint status;
+ gchar* name;
+ gchar* subject;
+ gchar* folder;
+ gchar* content;
+ gint status;
}message;
+enum {
+ UNREAD,
+ READ,
+ REPLIED,
+ FORWARD,
+ NUM_STATES,
+};
+
+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 *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 *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
+
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-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-dialog-window.c 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,7 +1,10 @@
-/* sms-dialog-window.c
+/*
+ * sms-dialog-window.c
+ *
* Authored By Alex Tang <alex at fic-sh.com.cn>
*
- * Copyright (C) 2006 First International Company
+ * 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.
@@ -40,13 +43,15 @@
struct _SmsDialogWindowPrivate
{
- GtkVBox* vbox;
- GtkHBox* hbox;
- GtkEventBox* eventbox;
- GtkLabel* titleLabel;
- GtkLabel* textInLabel;
- MokoToolBox* toolbox;
- MokoPixmapButton* closebutton;
+ GtkWidget* vbox;
+ GtkWidget* hbox;
+ GtkWidget* eventbox;
+ GtkWidget* titleLabel;
+ GtkWidget* textInLabel;
+ GtkWidget* toolbox;
+ GtkWidget* closebutton;
+ GtkWidget* txtView;
+ GtkWidget* toEntry;
};
typedef struct _SmsDialogRunInfo
@@ -58,7 +63,11 @@
} SmsDialogRunInfo;
static void sms_dialog_window_close(SmsDialogWindow* self);
+gboolean on_sms_txtView_key_release_event (GtkWidget *widget,
+ GdkEventKey *event,
+ SmsDialogWindow *self);
+
static void
shutdown_loop (SmsDialogRunInfo *ri)
{
@@ -89,9 +98,9 @@
}
static gint
- run_delete_handler (SmsDialogWindow* dialog,
- GdkEventAny *event,
- gpointer data)
+run_delete_handler (SmsDialogWindow* dialog,
+ GdkEventAny *event,
+ gpointer data)
{
SmsDialogRunInfo *ri = data;
@@ -124,6 +133,7 @@
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);
@@ -146,7 +156,7 @@
MokoWindow* parent = moko_application_get_main_window( moko_application_get_instance() );
if ( parent )
{
- gtk_window_set_transient_for( GTK_WINDOW(self), parent );
+ gtk_window_set_transient_for( GTK_WINDOW(self), GTK_WINDOW(parent) );
#ifndef DEBUG_THIS_FILE
gtk_window_set_modal( GTK_WINDOW(self), TRUE );
#endif
@@ -165,7 +175,7 @@
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( "14(2)" );
+ 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);
@@ -179,14 +189,14 @@
}
else
{
- gtk_label_set_text( priv->titleLabel, title );
+ gtk_label_set_text( GTK_LABEL(priv->titleLabel), title );
gtk_window_set_title( GTK_WINDOW(self), title );
}
if ( !priv->vbox )
{
- GtkImage* image;
- MokoPixmapButton* smsSendBtn;
- MokoPixmapButton* emailBtn;
+ GtkWidget* image;
+ MokoPixmapButton* smsSendBtn;
+ MokoPixmapButton* emailBtn;
priv->vbox = gtk_vbox_new( FALSE, 0 );
gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->eventbox), FALSE, FALSE, 0 );
@@ -209,47 +219,50 @@
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);
+ 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);
- GtkWidget* toEntry = gtk_entry_new();
- gtk_widget_set_size_request (toEntry, 320, -1);
- gtk_box_pack_start (GTK_BOX(entrybox),toLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(entrybox),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 );
+ 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 */
- GtkTextView* txtView = 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),10,10,30,30);
- GtkScrolledWindow* scolwin = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scolwin), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
- GtkViewport* viewport = gtk_viewport_new (NULL, NULL);
- gtk_text_view_set_wrap_mode (txtView,GTK_WRAP_CHAR);
- gtk_container_add (GTK_CONTAINER(viewport),GTK_WIDGET(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 mail_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 );
gtk_window_set_title( GTK_WINDOW(self), title );
gtk_widget_set_name( GTK_WIDGET(priv->titleLabel), "mokodialogwindow-title-label" );
@@ -262,17 +275,15 @@
gtk_widget_show( GTK_WIDGET(priv->titleLabel) );
gtk_widget_show( GTK_WIDGET(priv->eventbox) );
}
- else
- {
- gtk_label_set_text( priv->titleLabel, title );
+ else{
+ gtk_label_set_text( GTK_LABEL(priv->titleLabel), title );
gtk_window_set_title( GTK_WINDOW(self), title );
}
- if ( !priv->vbox )
- {
- GtkImage* image;
- MokoPixmapButton* smsSendBtn;
- MokoPixmapButton* emailBtn;
- MokoPixmapButton* attachBtn;
+ if ( !priv->vbox ){
+ GtkWidget* image;
+ MokoPixmapButton* smsSendBtn;
+ MokoPixmapButton* emailBtn;
+ MokoPixmapButton* attachBtn;
priv->vbox = gtk_vbox_new( FALSE, 0 );
gtk_box_pack_start( GTK_BOX(priv->vbox), GTK_WIDGET(priv->eventbox), FALSE, FALSE, 0 );
@@ -288,8 +299,8 @@
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 );
- attachBtn = moko_tool_box_add_action_button (MOKO_TOOL_BOX(priv->toolbox));
- gtk_widget_set_name( GTK_WIDGET(attachBtn), "mokostylusbutton-white" );
+ 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);
@@ -300,111 +311,111 @@
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);
+ 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);
- GtkWidget* toEntry = gtk_entry_new();
- gtk_widget_set_size_request (toEntry, 320, -1);
- gtk_box_pack_start (GTK_BOX(hbox),toLabel,FALSE,TRUE,0);
- gtk_box_pack_start (GTK_BOX(hbox),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 );
-
- 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);
-
- 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 textview */
- GtkWidget* txtView = 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),10,10,30,30);
- GtkScrolledWindow* scolwin = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scolwin), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
- GtkViewport* viewport = gtk_viewport_new (NULL, NULL);
- gtk_text_view_set_wrap_mode (txtView,GTK_WRAP_CHAR);
- gtk_container_add (GTK_CONTAINER(viewport),GTK_WIDGET(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) );
+ 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 );
+
+ 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);
+
+ 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 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) );
}
}
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 );
+ 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 );
}
static void sms_dialog_window_close(SmsDialogWindow* self)
{
- /* Synthesize delete_event to close dialog. */
+ /* Synthesize delete_event to close dialog. */
- 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 );
}
guint sms_dialog_window_run(SmsDialogWindow* dialog)
@@ -478,6 +489,35 @@
return ri.response_id;
}
-/*void sms_dialog_window_set_title(SmsDialogWindow* self, message* msg)
+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);
+}
+
+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);
+}
+
+gboolean on_sms_txtView_key_release_event (GtkWidget *widget,
+ GdkEventKey *event,
+ 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;
+}
+
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-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-dialog-window.h 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,7 +1,10 @@
-/* sms-dialog-window.h
+/*
+ * sms-dialog-window.h
+ *
* Authored By Alex Tang <alex at fic-sh.com.cn>
*
- * Copyright (C) 2006 First International Company
+ * 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.
@@ -19,6 +22,7 @@
#include <libmokoui/moko-window.h>
#include <libmokoui/moko-tool-box.h>
+#include "message.h"
#include <glib-object.h>
@@ -45,8 +49,11 @@
void sms_dialog_window_set_title(SmsDialogWindow* self, const gchar* title);
void mail_dialog_window_set_title(SmsDialogWindow* self, const gchar* title);
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
-#endif // _SMS_DIALOG_WINDOW_H_
\ No newline at end of file
+#endif // _SMS_DIALOG_WINDOW_H_
+
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-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-membership-window.c 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,7 +1,10 @@
-/* sms-membership-window.c
+/*
+ * sms-membership-window.c
+ *
* Authored By Alex Tang <alex at fic-sh.com.cn>
*
- * Copyright (C) 2006 First International Company
+ * 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.
@@ -36,17 +39,17 @@
struct _SmsMembershipWindowPrivate
{
- GtkVBox* vbox;
- GtkHBox* hbox;
- GtkVBox* folderbox;
- GtkEventBox* eventbox;
- MokoMenuBox* menubox;
- GtkLabel* titleLabel;
- GtkLabel* fromLabel;
- GtkLabel* subjectLabel;
+ GtkWidget* vbox;
+ GtkWidget* hbox;
+ GtkWidget* folderbox;
+ GtkWidget* eventbox;
+ GtkWidget* menubox;
+ GtkWidget* titleLabel;
+ GtkWidget* fromLabel;
+ GtkWidget* subjectLabel;
GtkWidget* closebutton;
- GtkTreeModelFilter* filter;
- MokoTreeView* view;
+ GtkTreeModel* filter;
+ GtkWidget* view;
GtkListStore* liststore;
gchar* currentfolder;
GSList* rdoBtnList;
@@ -60,61 +63,16 @@
gboolean destroyed;
} SmsMembershipRunInfo;
-static void sms_membership_window_close(SmsMembershipWindow* self);
+/*static void sms_membership_window_close(SmsMembershipWindow* self);*/
-static void
+/*static void
shutdown_loop (SmsMembershipRunInfo *ri)
{
if (g_main_loop_is_running (ri->loop))
g_main_loop_quit (ri->loop);
-}
+}*/
static void
-run_unmap_handler (SmsMembershipWindow* dialog, gpointer data)
-{
- SmsMembershipRunInfo *ri = data;
-
- shutdown_loop (ri);
-}
-
-static void
-run_response_handler (SmsMembershipWindow* dialog,
- gint response_id,
- gpointer data)
-{
- SmsMembershipRunInfo *ri;
-
- ri = data;
-
- ri->response_id = response_id;
-
- shutdown_loop (ri);
-}
-
-static gint
- run_delete_handler (SmsMembershipWindow* dialog,
- GdkEventAny *event,
- gpointer data)
-{
- SmsMembershipRunInfo *ri = data;
-
- shutdown_loop (ri);
-
- return TRUE; /* Do not destroy */
-}
-
-static void
- run_destroy_handler (SmsMembershipWindow* dialog, gpointer data)
-{
- SmsMembershipRunInfo *ri = data;
-
- /* shutdown_loop will be called by run_unmap_handler */
-
- ri->destroyed = TRUE;
-}
-
-
-static void
sms_membership_window_dispose(GObject* object)
{
if (G_OBJECT_CLASS (sms_membership_window_parent_class)->dispose)
@@ -127,6 +85,7 @@
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);
@@ -137,16 +96,14 @@
object_class->finalize = sms_membership_window_finalize;
}
-SmsMembershipWindow*
+GtkWidget*
sms_membership_window_new(void)
{
- return 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)
+/*static void sms_membership_window_close(SmsMembershipWindow* self)
{
- /* Synthesize delete_event to close dialog. */
-
GtkWidget *widget = GTK_WIDGET(self);
GdkEvent *event;
@@ -157,14 +114,14 @@
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);
priv->currentfolder = g_strdup(text);
- gtk_tree_model_filter_refilter (priv->filter);
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(priv->filter));
return FALSE;
}
@@ -186,7 +143,7 @@
MokoWindow* parent = moko_application_get_main_window( moko_application_get_instance() );
if ( parent )
{
- gtk_window_set_transient_for( GTK_WINDOW(self), parent );
+ gtk_window_set_transient_for( GTK_WINDOW(self), GTK_WINDOW(parent) );
#ifndef DEBUG_THIS_FILE
gtk_window_set_modal( GTK_WINDOW(self), TRUE );
#endif
@@ -215,7 +172,7 @@
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
- GtkHBox* closebox = gtk_hbox_new( FALSE, 0 );
+ 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" );
@@ -226,7 +183,7 @@
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
- GtkVBox* headerbox = gtk_vbox_new( FALSE, 0 );
+ 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);
@@ -250,46 +207,41 @@
gtk_widget_show_all( GTK_WIDGET(priv->vbox) );
gtk_container_add( GTK_CONTAINER(self), GTK_WIDGET(priv->vbox) );
- g_signal_connect( G_OBJECT(priv->closebutton), "clicked", sms_membership_hide, self );
+ g_signal_connect( G_OBJECT(priv->closebutton), "clicked", G_CALLBACK(sms_membership_hide), 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)
{
- g_debug (gtk_button_get_label(button));
- GtkTreeModel* model;
+ g_debug (gtk_button_get_label(button));
+ GtkTreeModel* model;
GtkTreeIter iter;
GtkTreeIter childiter;
GtkTreeSelection* selection;
- SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
+ SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
- selection = gtk_tree_view_get_selection (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);
- 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);
- g_debug (gtk_button_get_label(button));
-
- gtk_tree_model_filter_refilter (priv->filter);
- }
+ 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);
+ 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);
+ g_debug (gtk_button_get_label(button));
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(priv->filter));
+ }
}
-void sms_membership_window_set_menubox(SmsMembershipWindow* self, GtkList* folderlist)
+void sms_membership_window_set_menubox(SmsMembershipWindow* self, GSList* folderlist)
{
- GtkWidget* appmenu;
- GtkWidget* filtmenu;
-
- SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
-
- /* application menu */
+ 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" ));
@@ -303,43 +255,39 @@
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) );*/
-
- GtkVBox* rdobtnbox = gtk_vbox_new(FALSE, 0) ;
- GtkWidget *rdo_btn = NULL;
+
+ GtkWidget* rdobtnbox = gtk_vbox_new(FALSE, 0) ;
+ GtkWidget *rdo_btn = NULL;
GSList *rdo_btn_group;
GSList* c = folderlist;
- filtmenu = GTK_MENU(gtk_menu_new());
+ filtmenu = gtk_menu_new();
for (; c; c = g_slist_next(c) ){
- //add folder to filter menu
+ //add folder to filter menu
gchar* folder = (gchar*) c->data;
- g_debug( "adding folder '%s'", folder );
+ 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);
+ 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_list_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
GtkAlignment* alignment = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 1, 1));
gtk_alignment_set_padding (alignment, 5, 5, 30, 5);
gtk_container_add( GTK_CONTAINER(alignment), GTK_WIDGET(rdobtnbox) );
- gtk_box_pack_start (GTK_BOX (priv->folderbox), alignment, FALSE, TRUE, 0);
- moko_menu_box_set_application_menu( priv->menubox, appmenu );
- moko_menu_box_set_filter_menu( priv->menubox, filtmenu );
- gtk_widget_show (priv->menubox);
- gtk_widget_show_all (priv->vbox);
+ gtk_box_pack_start (GTK_BOX (priv->folderbox), GTK_WIDGET(alignment), FALSE, TRUE, 0);
+ moko_menu_box_set_application_menu( MOKO_MENU_BOX(priv->menubox), GTK_MENU(appmenu) );
+ 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
@@ -361,34 +309,32 @@
void membership_cursor_changed(GtkTreeSelection* selection, SmsMembershipWindow* self)
{
- SmsMembershipWindowPrivate* priv = SMS_MEMBERSHIP_WINDOW_GET_PRIVATE(self);
- GtkTreeModel* model;
+ 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));
+ 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 (priv->fromLabel, msg->name);
- gtk_label_set_text (priv->subjectLabel, msg->subject);
+ 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 (elem, TRUE);
- break;
- }
- }
- }
+
+ 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)
@@ -403,51 +349,48 @@
void sms_membership_window_set_messages (SmsMembershipWindow* self, GtkListStore* liststore)
{
- GtkCellRenderer* ren;
+ 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( 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);
+ 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 */
+ 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, liststore, NULL);
- moko_tree_view_append_column( priv->view, column );
+ 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, 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_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( priv->view, column );
+ moko_tree_view_append_column( MOKO_TREE_VIEW(priv->view), column );
GtkWidget* treeViewAlign = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT(treeViewAlign),10,10,10,10);
- gtk_container_add (GTK_CONTAINER(treeViewAlign),GTK_WIDGET(moko_tree_view_put_into_scrolled_window(priv->view)));
+ gtk_alignment_set_padding (GTK_ALIGNMENT(treeViewAlign),10,10,10,10);
+ gtk_container_add (GTK_CONTAINER(treeViewAlign),GTK_WIDGET(moko_tree_view_put_into_scrolled_window(MOKO_TREE_VIEW(priv->view))));
gtk_box_pack_start (GTK_BOX (priv->vbox), GTK_WIDGET(treeViewAlign), TRUE, TRUE, 0);
- gtk_widget_show_all (priv->vbox);
+ gtk_widget_show_all (priv->vbox);
- GtkTreeSelection* selection = gtk_tree_view_get_selection( priv->view );
+ 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-02-08 13:59:54 UTC (rev 910)
+++ trunk/src/target/OM-2007/applications/openmoko-messages/src/sms-membership-window.h 2007-02-08 14:00:35 UTC (rev 911)
@@ -1,7 +1,10 @@
-/* sms-membership-window.h
+/*
+ * sms-membership-window.h
+ *
* Authored By Alex Tang <alex at fic-sh.com.cn>
*
- * Copyright (C) 2006 First International Company
+ * 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.
@@ -47,9 +50,9 @@
} SmsMembershipWindowClass;
GType sms_membership_window_get_type();
-SmsMembershipWindow* sms_membership_window_new();
+GtkWidget* sms_membership_window_new();
-void sms_membership_window_set_menubox(SmsMembershipWindow* self, GtkList* folderlist);
+void sms_membership_window_set_menubox(SmsMembershipWindow* self, GSList* folderlist);
void sms_membership_window_set_messages (SmsMembershipWindow* self, GtkListStore* liststore);
void sms_membership_window_show (SmsMembershipWindow* self);
guint sms_membership_window_run(SmsMembershipWindow* self);
@@ -57,4 +60,5 @@
G_END_DECLS
#endif // _SMS_MEMBERSHIP_WINDOW_H_
-
\ No newline at end of file
+
+
More information about the commitlog
mailing list