- Timestamp:
- 03/27/07 10:34:31 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/target/OM-2007/applications/openmoko-messages/src/callbacks.c
r1452 r1516 21 21 #include "callbacks.h" 22 22 #include "detail-area.h" 23 #include "sms-contact-window.h" 23 24 #include <gtk/gtk.h> 24 25 #include <dbus/dbus.h> 25 26 #include <dbus/dbus-glib.h> 26 27 28 void cb_addressBtn_clicked (GtkButton* button, gpointer* data); 29 void sms_contact_select_done (GtkWidget* widget, gpointer data); 30 27 31 void 28 32 send_signal_to_footer (DBusConnection* bus, gchar* message_str) 29 33 { 30 DBusMessage *message;31 32 if(message_str == NULL)33 g_debug("Input string is null");34 else35 g_debug(message_str);36 37 message = dbus_message_new_signal ("/org/openmoko/footer",38 "org.openmoko.dbus.TaskManager",39 "push_statusbar_message");40 dbus_message_append_args (message,41 DBUS_TYPE_STRING, &message_str,42 DBUS_TYPE_INVALID);43 dbus_connection_send (bus, message, NULL);44 dbus_message_unref (message);45 } 46 47 static gboolean 34 DBusMessage *message; 35 36 if(message_str == NULL) 37 g_debug("Input string is null"); 38 else 39 g_debug(message_str); 40 41 message = dbus_message_new_signal ("/org/openmoko/footer", 42 "org.openmoko.dbus.TaskManager", 43 "push_statusbar_message"); 44 dbus_message_append_args (message, 45 DBUS_TYPE_STRING, &message_str, 46 DBUS_TYPE_INVALID); 47 dbus_connection_send (bus, message, NULL); 48 dbus_message_unref (message); 49 } 50 51 static gboolean 48 52 model_number_helper (GtkTreeModel* model, 49 GtkTreePath* path,50 GtkTreeIter* iter,51 gpointer data)52 { 53 MessengerData* d = (MessengerData*)data;54 d->msg_num ++;55 return FALSE;53 GtkTreePath* path, 54 GtkTreeIter* iter, 55 gpointer data) 56 { 57 MessengerData* d = (MessengerData*)data; 58 d->msg_num ++; 59 return FALSE; 56 60 } 57 61 58 62 gint get_model_number (MessengerData* d) 59 63 { 60 d->msg_num = 0;61 gtk_tree_model_foreach (d->filter,model_number_helper,d);62 return d->msg_num;64 d->msg_num = 0; 65 gtk_tree_model_foreach (d->filter,model_number_helper,d); 66 return d->msg_num; 63 67 } 64 68 65 69 gboolean cb_filter_changed(GtkWidget* widget, gchar* text, MessengerData* d) 66 70 { 67 d->currentfolder = g_strdup(text);68 gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));69 gchar* str = g_strdup_printf("folder %s has %d messages",text,get_model_number(d));70 send_signal_to_footer(d->bus,str);71 72 return FALSE;71 d->currentfolder = g_strdup(text); 72 gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter)); 73 gchar* str = g_strdup_printf("folder %s has %d messages",text,get_model_number(d)); 74 send_signal_to_footer(d->bus,str); 75 76 return FALSE; 73 77 } 74 78 75 79 void cb_new_sms (GtkMenuItem* item, MessengerData* d) 76 80 { 77 SmsDialogWindow* sms_window = sms_dialog_window_new(); 78 sms_dialog_window_set_title (sms_window,"New SMS"); 79 gtk_window_set_decorated (GTK_WINDOW(sms_window), FALSE); 80 gtk_widget_show_all (GTK_WIDGET(sms_window)); 81 SmsDialogWindow* sms_window = sms_dialog_window_new(); 82 sms_dialog_window_set_title (sms_window,"New SMS"); 83 gtk_window_set_decorated (GTK_WINDOW(sms_window), FALSE); 84 gtk_widget_show_all (GTK_WIDGET(sms_window)); 85 86 g_signal_connect (G_OBJECT(sms_window->addressBtn), 87 "clicked", 88 G_CALLBACK(cb_addressBtn_clicked), 89 sms_window->toEntry ); 81 90 } 82 91 83 92 void cb_new_mail (GtkMenuItem* item, MessengerData* d) 84 93 { 85 SmsDialogWindow* mail_window = sms_dialog_window_new(); 86 mail_dialog_window_set_title (mail_window,"New Email"); 87 gtk_window_set_decorated (GTK_WINDOW(mail_window), FALSE); 88 gtk_widget_show_all ( GTK_WIDGET(mail_window) ); 94 SmsDialogWindow* mail_window = sms_dialog_window_new(); 95 mail_dialog_window_set_title (mail_window,"New Email"); 96 gtk_window_set_decorated (GTK_WINDOW(mail_window), FALSE); 97 gtk_widget_show_all ( GTK_WIDGET(mail_window) ); 98 99 g_signal_connect (G_OBJECT(mail_window->addressBtn), 100 "clicked", 101 G_CALLBACK(cb_addressBtn_clicked), 102 mail_window->toEntry); 89 103 } 90 104 91 105 void cb_new_folder (GtkMenuItem* item, MessengerData* d) 92 106 { 93 g_debug ("new folder called");94 GtkWidget* hbox;95 GtkWidget* nfResetBtn;96 GtkWidget* nfConfirmBtn;97 98 if ((d->nfWin != NULL) && (d->nfWin->window != NULL))99 gtk_entry_set_text (GTK_ENTRY(d->nfEntry),"");100 else101 { 102 d->nfWin = moko_dialog_window_new();103 GtkWidget* nfBox = gtk_vbox_new (FALSE,10);104 gtk_widget_set_size_request (nfBox, 480, -1);105 GtkWidget* nfAlign = gtk_alignment_new (0,0,1,1);106 gtk_alignment_set_padding (GTK_ALIGNMENT(nfAlign), 100, 0, 30, 10);107 moko_dialog_window_set_title ( MOKO_DIALOG_WINDOW(d->nfWin), "New Folder");108 109 GtkWidget* nfLabel = gtk_label_new ("Please input new folder name:");110 gtk_misc_set_alignment (GTK_MISC(nfLabel),0,0.5);111 gtk_box_pack_start (GTK_BOX(nfBox), nfLabel, FALSE, TRUE, 0);112 113 d->nfEntry = gtk_entry_new ();114 gtk_box_pack_start (GTK_BOX(nfBox), d->nfEntry, FALSE, TRUE, 0);115 116 hbox = gtk_hbox_new (FALSE,20);117 nfConfirmBtn = gtk_button_new_with_label ("OK");118 nfResetBtn = gtk_button_new_with_label ("Reset");119 gtk_box_pack_start (GTK_BOX(hbox), nfConfirmBtn, FALSE, TRUE, 0);120 gtk_box_pack_start (GTK_BOX(hbox), nfResetBtn, FALSE, TRUE, 0);121 gtk_box_pack_start (GTK_BOX(nfBox), hbox, FALSE, TRUE, 0);122 123 gtk_container_add (GTK_CONTAINER(nfAlign),nfBox);124 125 moko_dialog_window_set_contents (MOKO_DIALOG_WINDOW(d->nfWin), nfAlign);126 g_signal_connect (G_OBJECT(nfConfirmBtn), 127 "clicked",128 G_CALLBACK(cb_nfBtn_clicked),129 d);130 g_signal_connect (G_OBJECT(nfResetBtn),131 "clicked",132 G_CALLBACK(cb_nfResetBtn_clicked),133 d);134 } 135 gtk_window_set_decorated (GTK_WINDOW(d->nfWin), FALSE);136 gtk_widget_show_all (d->nfWin);107 g_debug ("new folder called"); 108 GtkWidget* hbox; 109 GtkWidget* nfResetBtn; 110 GtkWidget* nfConfirmBtn; 111 112 if ((d->nfWin != NULL) && (d->nfWin->window != NULL)) 113 gtk_entry_set_text (GTK_ENTRY(d->nfEntry),""); 114 else 115 { 116 d->nfWin = moko_dialog_window_new(); 117 GtkWidget* nfBox = gtk_vbox_new (FALSE,10); 118 gtk_widget_set_size_request (nfBox, 480, -1); 119 GtkWidget* nfAlign = gtk_alignment_new (0,0,1,1); 120 gtk_alignment_set_padding (GTK_ALIGNMENT(nfAlign), 100, 0, 30, 10); 121 moko_dialog_window_set_title ( MOKO_DIALOG_WINDOW(d->nfWin), "New Folder"); 122 123 GtkWidget* nfLabel = gtk_label_new ("Please input new folder name:"); 124 gtk_misc_set_alignment (GTK_MISC(nfLabel),0,0.5); 125 gtk_box_pack_start (GTK_BOX(nfBox), nfLabel, FALSE, TRUE, 0); 126 127 d->nfEntry = gtk_entry_new (); 128 gtk_box_pack_start (GTK_BOX(nfBox), d->nfEntry, FALSE, TRUE, 0); 129 130 hbox = gtk_hbox_new (FALSE,20); 131 nfConfirmBtn = gtk_button_new_with_label ("OK"); 132 nfResetBtn = gtk_button_new_with_label ("Reset"); 133 gtk_box_pack_start (GTK_BOX(hbox), nfConfirmBtn, FALSE, TRUE, 0); 134 gtk_box_pack_start (GTK_BOX(hbox), nfResetBtn, FALSE, TRUE, 0); 135 gtk_box_pack_start (GTK_BOX(nfBox), hbox, FALSE, TRUE, 0); 136 137 gtk_container_add (GTK_CONTAINER(nfAlign),nfBox); 138 139 moko_dialog_window_set_contents (MOKO_DIALOG_WINDOW(d->nfWin), nfAlign); 140 g_signal_connect (G_OBJECT(nfConfirmBtn), 141 "clicked", 142 G_CALLBACK(cb_nfBtn_clicked), 143 d); 144 g_signal_connect (G_OBJECT(nfResetBtn), 145 "clicked", 146 G_CALLBACK(cb_nfResetBtn_clicked), 147 d); 148 } 149 gtk_window_set_decorated (GTK_WINDOW(d->nfWin), FALSE); 150 gtk_widget_show_all (d->nfWin); 137 151 } 138 152 139 153 void cb_mode_read (GtkMenuItem* item, MessengerData* d) 140 154 { 141 g_debug ("mode read"); 142 message* msg; 143 GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view )); 144 GtkTreeModel* model; 145 GtkTreeIter iter; 146 gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter ); 147 148 if ( has_selection ){ 149 msg = g_malloc(sizeof(message)); 150 gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 ); 151 gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 ); 152 gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 ); 153 } 154 else msg = NULL; 155 detail_read_message (DETAIL_AREA(d->details),msg); 155 g_debug ("mode read"); 156 message* msg; 157 GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view )); 158 GtkTreeModel* model; 159 GtkTreeIter iter; 160 gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter ); 161 162 if ( has_selection ) 163 { 164 msg = g_malloc(sizeof(message)); 165 gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 ); 166 gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 ); 167 gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 ); 168 } 169 else msg = NULL; 170 detail_read_message (DETAIL_AREA(d->details),msg); 156 171 } 157 172 158 173 void cb_mode_reply (GtkMenuItem* item, MessengerData* d) 159 174 { 160 g_debug ("mode reply"); 161 message* msg; 162 GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view )); 163 GtkTreeModel* model; 164 GtkTreeIter iter; 165 gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter ); 166 167 if ( has_selection ) { 168 msg = g_malloc(sizeof(message)); 169 gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 ); 170 gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 ); 171 gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 ); 172 }else msg = NULL; 173 174 SmsDialogWindow* sms_window = sms_dialog_window_new(); 175 if (msg != NULL){ 176 sms_dialog_window_set_title (sms_window,"Reply SMS"); 177 sms_dialog_reply_message (sms_window,msg); 178 }else sms_dialog_window_set_title (sms_window,"New SMS"); 179 gtk_widget_show_all ( GTK_WIDGET(sms_window) ); 175 g_debug ("mode reply"); 176 message* msg; 177 GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view )); 178 GtkTreeModel* model; 179 GtkTreeIter iter; 180 gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter ); 181 182 if ( has_selection ) 183 { 184 msg = g_malloc(sizeof(message)); 185 gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 ); 186 gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 ); 187 gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 ); 188 } 189 else msg = NULL; 190 191 SmsDialogWindow* sms_window = sms_dialog_window_new(); 192 if (msg != NULL) 193 { 194 sms_dialog_window_set_title (sms_window,"Reply SMS"); 195 sms_dialog_reply_message (sms_window,msg); 196 } 197 else sms_dialog_window_set_title (sms_window,"New SMS"); 198 gtk_widget_show_all ( GTK_WIDGET(sms_window) ); 180 199 } 181 200 182 201 void cb_mode_forward (GtkMenuItem* item, MessengerData* d) 183 202 { 184 g_debug ("mode forward"); 185 message* msg; 186 GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view )); 187 GtkTreeModel* model; 188 GtkTreeIter iter; 189 gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter ); 190 191 if ( has_selection ){ 192 msg = g_malloc(sizeof(message)); 193 gtk_tree_model_get( model, &iter, 194 COLUMN_FROM, &msg->name, 195 COLUMN_SUBJECT, &msg->subject, 196 COLUMN_FOLDER, &msg->folder, 197 COLUMN_CONTENT, &msg->content, 198 -1 ); 199 } 200 else msg = NULL; 201 202 SmsDialogWindow* sms_window = sms_dialog_window_new(); 203 sms_dialog_window_set_title (sms_window,"Forward SMS"); 204 sms_dialog_forward_message (sms_window, msg); 205 gtk_widget_show_all ( GTK_WIDGET(sms_window) ); 203 g_debug ("mode forward"); 204 message* msg; 205 GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( d->view )); 206 GtkTreeModel* model; 207 GtkTreeIter iter; 208 gboolean has_selection = gtk_tree_selection_get_selected( selection, &model, &iter ); 209 210 if ( has_selection ) 211 { 212 msg = g_malloc(sizeof(message)); 213 gtk_tree_model_get( model, &iter, 214 COLUMN_FROM, &msg->name, 215 COLUMN_SUBJECT, &msg->subject, 216 COLUMN_FOLDER, &msg->folder, 217 COLUMN_CONTENT, &msg->content, 218 -1 ); 219 } 220 else msg = NULL; 221 222 SmsDialogWindow* sms_window = sms_dialog_window_new(); 223 sms_dialog_window_set_title (sms_window,"Forward SMS"); 224 sms_dialog_forward_message (sms_window, msg); 225 gtk_widget_show_all ( GTK_WIDGET(sms_window) ); 206 226 } 207 227 208 228 void cb_delete_folder (GtkMenuItem* item, MessengerData* d) 209 229 { 210 g_debug ("delete folder called"); 211 GtkWidget* msgDialog; 212 213 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 214 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 215 gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel))); 216 if (!g_strcasecmp(oldName,"Inbox") || 217 !g_strcasecmp(oldName,"Outbox") || 218 !g_strcasecmp(oldName,"Draft") || 219 !g_strcasecmp(oldName,"Sent") || 220 !g_strcasecmp(oldName,"Trash")){ 221 msgDialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)), 222 GTK_DIALOG_DESTROY_WITH_PARENT, 223 GTK_MESSAGE_WARNING, 224 GTK_BUTTONS_CLOSE, 225 g_strdup_printf("Current folder '%s'\nis not a custom folder\nCan't delete",oldName) ); 226 gtk_dialog_run (GTK_DIALOG (msgDialog)); 227 gtk_widget_destroy (msgDialog); 228 }else{ 229 GtkWidget* dialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)), 230 GTK_DIALOG_DESTROY_WITH_PARENT, 231 GTK_MESSAGE_WARNING, 232 GTK_BUTTONS_OK_CANCEL, 233 g_strdup_printf("Are you sure to delete folder: %s",d->currentfolder)); 234 gint result = gtk_dialog_run (GTK_DIALOG (dialog)); 235 switch (result){ 236 case GTK_RESPONSE_OK: 237 g_debug ("clicked ok"); 238 delete_folder(d,oldName); 239 break; 240 case GTK_RESPONSE_CANCEL: g_debug ("clicked cancel"); break; 241 default: g_debug ("clicked default"); break; 242 } 243 gtk_widget_destroy (dialog); 230 g_debug ("delete folder called"); 231 GtkWidget* msgDialog; 232 233 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 234 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 235 gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel))); 236 if (!g_strcasecmp(oldName,"Inbox") || 237 !g_strcasecmp(oldName,"Outbox") || 238 !g_strcasecmp(oldName,"Draft") || 239 !g_strcasecmp(oldName,"Sent") || 240 !g_strcasecmp(oldName,"Trash")) 241 { 242 msgDialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)), 243 GTK_DIALOG_DESTROY_WITH_PARENT, 244 GTK_MESSAGE_WARNING, 245 GTK_BUTTONS_CLOSE, 246 g_strdup_printf("Current folder '%s'\nis not a custom folder\nCan't delete",oldName) ); 247 gtk_dialog_run (GTK_DIALOG (msgDialog)); 248 gtk_widget_destroy (msgDialog); 249 } 250 else 251 { 252 GtkWidget* dialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)), 253 GTK_DIALOG_DESTROY_WITH_PARENT, 254 GTK_MESSAGE_WARNING, 255 GTK_BUTTONS_OK_CANCEL, 256 g_strdup_printf("Are you sure to delete folder: %s",d->currentfolder)); 257 gint result = gtk_dialog_run (GTK_DIALOG (dialog)); 258 switch (result) 259 { 260 case GTK_RESPONSE_OK: 261 g_debug ("clicked ok"); 262 delete_folder(d,oldName); 263 break; 264 case GTK_RESPONSE_CANCEL: 265 g_debug ("clicked cancel"); 266 break; 267 default: 268 g_debug ("clicked default"); 269 break; 270 } 271 gtk_widget_destroy (dialog); 244 272 } 245 273 } … … 247 275 void cb_delete_message (GtkMenuItem* item, MessengerData* d) 248 276 { 249 GtkTreeModel* model; 250 GtkTreeIter iter; 251 GtkTreeIter childiter; 252 GtkTreeSelection* selection; 253 254 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(d->view)); 255 gboolean has_selection = gtk_tree_selection_get_selected (selection, &model,&iter); 256 if (has_selection){ 257 gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(d->filter),&childiter,&iter); 258 gtk_list_store_remove (d->liststore, &childiter); 259 }else { 260 GtkWidget* dialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)), 261 GTK_DIALOG_DESTROY_WITH_PARENT, 262 GTK_MESSAGE_WARNING, 263 GTK_BUTTONS_OK, 264 "No message selected"); 265 gtk_dialog_run (GTK_DIALOG (dialog)); 266 gtk_widget_destroy (dialog); 277 GtkTreeModel* model; 278 GtkTreeIter iter; 279 GtkTreeIter childiter; 280 GtkTreeSelection* selection; 281 282 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(d->view)); 283 gboolean has_selection = gtk_tree_selection_get_selected (selection, &model,&iter); 284 if (has_selection) 285 { 286 gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(d->filter),&childiter,&iter); 287 gtk_list_store_remove (d->liststore, &childiter); 288 } 289 else 290 { 291 GtkWidget* dialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)), 292 GTK_DIALOG_DESTROY_WITH_PARENT, 293 GTK_MESSAGE_WARNING, 294 GTK_BUTTONS_OK, 295 "No message selected"); 296 gtk_dialog_run (GTK_DIALOG (dialog)); 297 gtk_widget_destroy (dialog); 267 298 } 268 299 } … … 270 301 void cb_mmitem_activate (GtkMenuItem* item, MessengerData* d) 271 302 { 272 g_debug ("message membership");273 d->mmWin = sms_membership_window_new();274 gtk_window_set_decorated (GTK_WINDOW(d->mmWin), FALSE);275 sms_membership_window_set_messages (SMS_MEMBERSHIP_WINDOW(d->mmWin), d->liststore);276 sms_membership_window_set_menubox (SMS_MEMBERSHIP_WINDOW(d->mmWin), d->folderlist);277 sms_membership_window_show ( SMS_MEMBERSHIP_WINDOW(d->mmWin) );303 g_debug ("message membership"); 304 d->mmWin = sms_membership_window_new(); 305 gtk_window_set_decorated (GTK_WINDOW(d->mmWin), FALSE); 306 sms_membership_window_set_messages (SMS_MEMBERSHIP_WINDOW(d->mmWin), d->liststore); 307 sms_membership_window_set_menubox (SMS_MEMBERSHIP_WINDOW(d->mmWin), d->folderlist); 308 sms_membership_window_show ( SMS_MEMBERSHIP_WINDOW(d->mmWin) ); 278 309 } 279 310 280 311 void cb_frBtn_clicked (GtkButton* button, MessengerData* d) 281 312 { 282 GSList *c; 283 gchar* folder; 284 285 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 286 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 287 gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel))); 288 gchar* newName = g_strdup (gtk_entry_get_text(GTK_ENTRY(d->frEntry))); 289 gtk_label_set_text (GTK_LABEL(menulabel),newName); 290 gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter)); 291 292 c = d->folderlist; 293 for (; c; c = g_slist_next(c) ){ 294 folder = (gchar*) c->data; 295 if (!g_strcasecmp(folder,oldName)){ 296 g_debug ("old %s, new %s", oldName, newName); 297 c->data = g_strdup(newName); 298 } 299 } 300 d->filtmenu = reload_filter_menu (d,d->folderlist); 301 MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(d->window) ); 302 g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d ); 303 moko_menu_box_set_filter_menu(menubox, GTK_MENU(d->filtmenu)); 304 gtk_widget_show_all (GTK_WIDGET(menubox)); 305 gtk_widget_hide (d->frWin); 313 GSList *c; 314 gchar* folder; 315 316 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 317 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 318 gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel))); 319 gchar* newName = g_strdup (gtk_entry_get_text(GTK_ENTRY(d->frEntry))); 320 gtk_label_set_text (GTK_LABEL(menulabel),newName); 321 gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter)); 322 323 c = d->folderlist; 324 for (; c; c = g_slist_next(c) ) 325 { 326 folder = (gchar*) c->data; 327 if (!g_strcasecmp(folder,oldName)) 328 { 329 g_debug ("old %s, new %s", oldName, newName); 330 c->data = g_strdup(newName); 331 } 332 } 333 d->filtmenu = reload_filter_menu (d,d->folderlist); 334 MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(d->window) ); 335 g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d ); 336 moko_menu_box_set_filter_menu(menubox, GTK_MENU(d->filtmenu)); 337 gtk_widget_show_all (GTK_WIDGET(menubox)); 338 gtk_widget_hide (d->frWin); 306 339 } 307 340 308 341 void cb_frResetBtn_clicked (GtkButton* button, GtkWidget* entry) 309 342 { 310 gtk_entry_set_text(GTK_ENTRY(entry),"");343 gtk_entry_set_text(GTK_ENTRY(entry),""); 311 344 } 312 345 313 346 void cb_fnitem_activate (GtkMenuItem* item, MessengerData* d) 314 347 { 315 g_debug ("folder rename called"); 316 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 317 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 318 319 gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel))); 320 if (!g_strcasecmp(oldName,"Inbox") || 321 !g_strcasecmp(oldName,"Outbox") || 322 !g_strcasecmp(oldName,"Draft") || 323 !g_strcasecmp(oldName,"Sent") || 324 !g_strcasecmp(oldName,"Sent")){ 325 GtkWidget* msgDialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)), 326 GTK_DIALOG_DESTROY_WITH_PARENT, 327 GTK_MESSAGE_WARNING, 328 GTK_BUTTONS_CLOSE, 329 g_strdup_printf("Current folder '%s'\nis not a custom folder\nCan't rename",oldName) ); 330 gtk_dialog_run (GTK_DIALOG (msgDialog)); 331 gtk_widget_destroy (msgDialog); 332 }else { 333 GtkWidget* hbox; 334 GtkWidget* frResetBtn; 335 GtkWidget* frConfirmBtn; 336 337 if ((d->frWin != NULL) && (d->frWin->window != NULL)) 338 gtk_entry_set_text (GTK_ENTRY(d->frEntry),""); 339 else{ 340 d->frWin = moko_dialog_window_new(); 341 GtkWidget* frBox = gtk_vbox_new (FALSE,10); 342 gtk_widget_set_size_request (frBox, 480, -1); 343 GtkWidget* frAlign = gtk_alignment_new (0,0,1,1); 344 gtk_alignment_set_padding (GTK_ALIGNMENT(frAlign), 100, 0, 30, 10); 345 moko_dialog_window_set_title (MOKO_DIALOG_WINDOW(d->frWin), "Folder Rename"); 346 347 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 348 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 349 GtkWidget* frLabel = gtk_label_new (g_strdup_printf("Please input new folder name for %s:", gtk_label_get_text (GTK_LABEL(menulabel)))); 350 gtk_misc_set_alignment (GTK_MISC(frLabel),0,0.5); 351 gtk_box_pack_start (GTK_BOX(frBox), frLabel, FALSE, TRUE, 0); 352 353 d->frEntry = gtk_entry_new (); 354 gtk_box_pack_start (GTK_BOX(frBox), d->frEntry, FALSE, TRUE, 0); 355 356 hbox = gtk_hbox_new (FALSE,20); 357 frConfirmBtn = gtk_button_new_with_label ("OK"); 358 frResetBtn = gtk_button_new_with_label ("Reset"); 359 gtk_box_pack_start (GTK_BOX(hbox), frConfirmBtn, FALSE, TRUE, 0); 360 gtk_box_pack_start (GTK_BOX(hbox), frResetBtn, FALSE, TRUE, 0); 361 gtk_box_pack_start (GTK_BOX(frBox), hbox, FALSE, TRUE, 0); 362 gtk_container_add (GTK_CONTAINER(frAlign),frBox); 363 364 moko_dialog_window_set_contents (MOKO_DIALOG_WINDOW(d->frWin), frAlign); 365 g_signal_connect (G_OBJECT(frConfirmBtn), 366 "clicked", 367 G_CALLBACK(cb_frBtn_clicked), 368 d); 369 g_signal_connect (G_OBJECT(frResetBtn), 370 "clicked", 371 G_CALLBACK(cb_frResetBtn_clicked), 372 d->frEntry); 373 } 374 gtk_widget_show_all ( GTK_WIDGET(d->frWin) ); 375 } 348 g_debug ("folder rename called"); 349 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 350 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 351 352 gchar* oldName = g_strdup (gtk_label_get_text (GTK_LABEL(menulabel))); 353 if (!g_strcasecmp(oldName,"Inbox") || 354 !g_strcasecmp(oldName,"Outbox") || 355 !g_strcasecmp(oldName,"Draft") || 356 !g_strcasecmp(oldName,"Sent") || 357 !g_strcasecmp(oldName,"Sent")) 358 { 359 GtkWidget* msgDialog = gtk_message_dialog_new( GTK_WINDOW(moko_application_get_main_window(d->app)), 360 GTK_DIALOG_DESTROY_WITH_PARENT, 361 GTK_MESSAGE_WARNING, 362 GTK_BUTTONS_CLOSE, 363 g_strdup_printf("Current folder '%s'\nis not a custom folder\nCan't rename",oldName) ); 364 gtk_dialog_run (GTK_DIALOG (msgDialog)); 365 gtk_widget_destroy (msgDialog); 366 } 367 else 368 { 369 GtkWidget* hbox; 370 GtkWidget* frResetBtn; 371 GtkWidget* frConfirmBtn; 372 373 if ((d->frWin != NULL) && (d->frWin->window != NULL)) 374 gtk_entry_set_text (GTK_ENTRY(d->frEntry),""); 375 else 376 { 377 d->frWin = moko_dialog_window_new(); 378 GtkWidget* frBox = gtk_vbox_new (FALSE,10); 379 gtk_widget_set_size_request (frBox, 480, -1); 380 GtkWidget* frAlign = gtk_alignment_new (0,0,1,1); 381 gtk_alignment_set_padding (GTK_ALIGNMENT(frAlign), 100, 0, 30, 10); 382 moko_dialog_window_set_title (MOKO_DIALOG_WINDOW(d->frWin), "Folder Rename"); 383 384 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 385 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 386 GtkWidget* frLabel = gtk_label_new (g_strdup_printf("Please input new folder name for %s:", gtk_label_get_text (GTK_LABEL(menulabel)))); 387 gtk_misc_set_alignment (GTK_MISC(frLabel),0,0.5); 388 gtk_box_pack_start (GTK_BOX(frBox), frLabel, FALSE, TRUE, 0); 389 390 d->frEntry = gtk_entry_new (); 391 gtk_box_pack_start (GTK_BOX(frBox), d->frEntry, FALSE, TRUE, 0); 392 393 hbox = gtk_hbox_new (FALSE,20); 394 frConfirmBtn = gtk_button_new_with_label ("OK"); 395 frResetBtn = gtk_button_new_with_label ("Reset"); 396 gtk_box_pack_start (GTK_BOX(hbox), frConfirmBtn, FALSE, TRUE, 0); 397 gtk_box_pack_start (GTK_BOX(hbox), frResetBtn, FALSE, TRUE, 0); 398 gtk_box_pack_start (GTK_BOX(frBox), hbox, FALSE, TRUE, 0); 399 gtk_container_add (GTK_CONTAINER(frAlign),frBox); 400 401 moko_dialog_window_set_contents (MOKO_DIALOG_WINDOW(d->frWin), frAlign); 402 g_signal_connect (G_OBJECT(frConfirmBtn), 403 "clicked", 404 G_CALLBACK(cb_frBtn_clicked), 405 d); 406 g_signal_connect (G_OBJECT(frResetBtn), 407 "clicked", 408 G_CALLBACK(cb_frResetBtn_clicked), 409 d->frEntry); 410 } 411 gtk_widget_show_all ( GTK_WIDGET(d->frWin) ); 412 } 376 413 } 377 414 378 415 void cb_nfBtn_clicked (GtkButton* button, MessengerData* d) 379 416 { 380 gchar* folder = g_strdup(gtk_entry_get_text(GTK_ENTRY(d->nfEntry)));381 g_debug ("new folder %s",folder);382 d->folderlist = g_slist_append (d->folderlist,folder);383 d->filtmenu = reload_filter_menu (d,d->folderlist);384 MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( d->window );385 g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d );386 moko_menu_box_set_filter_menu(menubox,GTK_MENU(d->filtmenu));387 gtk_widget_show_all (GTK_WIDGET(menubox));388 foldersdb_update (d->folderlist);389 update_folder_sensitive(d, d->folderlist);390 gtk_widget_hide (d->nfWin);417 gchar* folder = g_strdup(gtk_entry_get_text(GTK_ENTRY(d->nfEntry))); 418 g_debug ("new folder %s",folder); 419 d->folderlist = g_slist_append (d->folderlist,folder); 420 d->filtmenu = reload_filter_menu (d,d->folderlist); 421 MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( d->window ); 422 g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d ); 423 moko_menu_box_set_filter_menu(menubox,GTK_MENU(d->filtmenu)); 424 gtk_widget_show_all (GTK_WIDGET(menubox)); 425 foldersdb_update (d->folderlist); 426 update_folder_sensitive(d, d->folderlist); 427 gtk_widget_hide (d->nfWin); 391 428 } 392 429 393 430 void cb_nfResetBtn_clicked (GtkButton* button, MessengerData* d) 394 431 { 395 gtk_entry_set_text(GTK_ENTRY(d->nfEntry),"");396 g_debug ("reset entry");432 gtk_entry_set_text(GTK_ENTRY(d->nfEntry),""); 433 g_debug ("reset entry"); 397 434 } 398 435 399 436 void cb_dfBtn_clicked (GtkButton* button, MessengerData* d) 400 437 { 401 GSList* c; 402 403 for( c =d->folderlist; c; c=g_slist_next(c)){ 404 if(!g_strcasecmp((gchar*)c->data, d->currentfolder)) { 405 d->folderlist = g_slist_remove (d->folderlist, c->data); 406 break; 407 } 408 } 409 410 d->filtmenu = reload_filter_menu (d,d->folderlist); 411 MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(d->window) ); 412 g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d ); 413 moko_menu_box_set_filter_menu(menubox,GTK_MENU(d->filtmenu)); 414 415 /*set the default filter item to "Inbox" */ 416 gchar* str = g_strdup("Inbox"); 417 moko_menu_box_set_active_filter (menubox,str); 418 gtk_widget_show_all (GTK_WIDGET(menubox)); 419 update_folder_sensitive (d, d->folderlist); 420 421 /*result inform */ 422 GtkWidget *dialog = gtk_message_dialog_new (GTK_WINDOW(gtk_widget_get_parent_window(GTK_WIDGET(button))), 423 GTK_DIALOG_DESTROY_WITH_PARENT, 424 GTK_MESSAGE_INFO, 425 GTK_BUTTONS_CLOSE, 426 "Delete successful"); 427 gtk_dialog_run (GTK_DIALOG (dialog)); 428 gtk_widget_destroy (dialog); 438 GSList* c; 439 440 for( c =d->folderlist; c; c=g_slist_next(c)) 441 { 442 if(!g_strcasecmp((gchar*)c->data, d->currentfolder)) 443 { 444 d->folderlist = g_slist_remove (d->folderlist, c->data); 445 break; 446 } 447 } 448 449 d->filtmenu = reload_filter_menu (d,d->folderlist); 450 MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(d->window) ); 451 g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d ); 452 moko_menu_box_set_filter_menu(menubox,GTK_MENU(d->filtmenu)); 453 454 /*set the default filter item to "Inbox" */ 455 gchar* str = g_strdup("Inbox"); 456 moko_menu_box_set_active_filter (menubox,str); 457 gtk_widget_show_all (GTK_WIDGET(menubox)); 458 update_folder_sensitive (d, d->folderlist); 459 460 /*result inform */ 461 GtkWidget *dialog = gtk_message_dialog_new (GTK_WINDOW(gtk_widget_get_parent_window(GTK_WIDGET(button))), 462 GTK_DIALOG_DESTROY_WITH_PARENT, 463 GTK_MESSAGE_INFO, 464 GTK_BUTTONS_CLOSE, 465 "Delete successful"); 466 gtk_dialog_run (GTK_DIALOG (dialog)); 467 gtk_widget_destroy (dialog); 429 468 } 430 469 431 470 void delete_folder (MessengerData* d, gchar* oldName) 432 471 { 433 GSList* c; 434 435 for( c =d->folderlist; c; c=g_slist_next(c)) { 436 if(!g_strcasecmp((gchar*)c->data, oldName)) { 437 d->folderlist = g_slist_remove (d->folderlist, c->data); 438 break; 472 GSList* c; 473 474 for( c =d->folderlist; c; c=g_slist_next(c)) 475 { 476 if(!g_strcasecmp((gchar*)c->data, oldName)) 477 { 478 d->folderlist = g_slist_remove (d->folderlist, c->data); 479 break; 439 480 } 440 481 } 441 482 442 d->filtmenu = reload_filter_menu (d,d->folderlist);443 MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(d->window) );444 g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d );445 moko_menu_box_set_filter_menu(menubox,GTK_MENU(d->filtmenu));446 447 /*set the default filter item to "Inbox" */448 gchar* str = g_strdup("Inbox");449 moko_menu_box_set_active_filter (menubox,str);450 gtk_widget_show_all (GTK_WIDGET(menubox));451 update_folder_sensitive (d, d->folderlist);483 d->filtmenu = reload_filter_menu (d,d->folderlist); 484 MokoMenuBox* menubox = (MokoMenuBox*)moko_paned_window_get_menubox( MOKO_PANED_WINDOW(d->window) ); 485 g_signal_connect( G_OBJECT(menubox), "filter_changed", G_CALLBACK(cb_filter_changed), d ); 486 moko_menu_box_set_filter_menu(menubox,GTK_MENU(d->filtmenu)); 487 488 /*set the default filter item to "Inbox" */ 489 gchar* str = g_strdup("Inbox"); 490 moko_menu_box_set_active_filter (menubox,str); 491 gtk_widget_show_all (GTK_WIDGET(menubox)); 492 update_folder_sensitive (d, d->folderlist); 452 493 } 453 494 454 495 void on_mmode_rdo_btn_clicked (gchar* folder) 455 496 { 456 g_debug ("switch to %s folder", folder);497 g_debug ("switch to %s folder", folder); 457 498 } 458 499 459 500 void cb_cursor_changed(GtkTreeSelection* selection, MessengerData* d) 460 501 { 461 GtkTreeModel* model; 462 GtkTreeIter iter; 463 GtkTreeIter childiter; 464 GtkTreeView* view; 465 message* msg; 466 GdkPixbuf* icon; 467 GError* error = NULL; 468 469 view = gtk_tree_selection_get_tree_view( selection ); 470 if ( gtk_tree_selection_get_selected( selection, &model, &iter ) ) { 471 msg = g_malloc(sizeof(message)); 472 gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 ); 473 gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 ); 474 gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 ); 475 gtk_tree_model_get( model, &iter, COLUMN_STATUS, &msg->status, -1); 476 477 if (msg->status == UNREAD) { 478 icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Mode_Read.png", &error); 479 msg->status = READ; 480 gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(d->filter),&childiter,&iter); 481 gtk_list_store_set (d->liststore, &childiter, 482 COLUMN_ICON, icon, 483 COLUMN_STATUS, msg->status, 484 -1); 502 GtkTreeModel* model; 503 GtkTreeIter iter; 504 GtkTreeIter childiter; 505 GtkTreeView* view; 506 message* msg; 507 GdkPixbuf* icon; 508 GError* error = NULL; 509 510 view = gtk_tree_selection_get_tree_view( selection ); 511 if ( gtk_tree_selection_get_selected( selection, &model, &iter ) ) 512 { 513 msg = g_malloc(sizeof(message)); 514 gtk_tree_model_get( model, &iter, COLUMN_FROM, &msg->name, -1 ); 515 gtk_tree_model_get( model, &iter, COLUMN_SUBJECT, &msg->subject, -1 ); 516 gtk_tree_model_get( model, &iter, COLUMN_FOLDER, &msg->folder, -1 ); 517 gtk_tree_model_get( model, &iter, COLUMN_STATUS, &msg->status, -1); 518 519 if (msg->status == UNREAD) 520 { 521 icon = gdk_pixbuf_new_from_file (PKGDATADIR "/Mode_Read.png", &error); 522 msg->status = READ; 523 gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(d->filter),&childiter,&iter); 524 gtk_list_store_set (d->liststore, &childiter, 525 COLUMN_ICON, icon, 526 COLUMN_STATUS, msg->status, 527 -1); 485 528 } 486 detail_read_message (DETAIL_AREA(d->details),msg);487 }529 detail_read_message (DETAIL_AREA(d->details),msg); 530 } 488 531 } 489 532 … … 492 535 gpointer user_data) 493 536 { 494 g_debug("Button send clicked\n");537 g_debug("Button send clicked\n"); 495 538 } 496 539 … … 499 542 gpointer user_data) 500 543 { 501 g_debug("Button address clicked\n");544 g_debug("Button address clicked\n"); 502 545 } 503 546 504 547 void cb_search_entry_changed (GtkEditable* editable, MessengerData* d) 505 548 { 506 GtkWidget* search_entry = GTK_WIDGET(editable);507 d->s_key = g_strdup (gtk_entry_get_text(GTK_ENTRY(search_entry)));508 gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter));509 g_debug ("search %s, result has %d messages",d->s_key,get_model_number(d));510 gchar* str = g_strdup_printf("search %s, result has %d messages",d->s_key,get_model_number(d));511 send_signal_to_footer(d->bus,str);549 GtkWidget* search_entry = GTK_WIDGET(editable); 550 d->s_key = g_strdup (gtk_entry_get_text(GTK_ENTRY(search_entry))); 551 gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter)); 552 g_debug ("search %s, result has %d messages",d->s_key,get_model_number(d)); 553 gchar* str = g_strdup_printf("search %s, result has %d messages",d->s_key,get_model_number(d)); 554 send_signal_to_footer(d->bus,str); 512 555 } 513 556 514 557 void cb_search_on (MessengerData* d) 515 558 { 516 g_debug ("search on");517 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu));518 GtkWidget* menulabel = GTK_BIN(menuitem)->child;519 gtk_label_set_text (GTK_LABEL(menulabel),"Search Result");520 d->searchOn = TRUE;559 g_debug ("search on"); 560 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 561 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 562 gtk_label_set_text (GTK_LABEL(menulabel),"Search Result"); 563 d->searchOn = TRUE; 521 564 } 522 565 523 566 void cb_search_off (MessengerData* d) 524 567 { 525 g_debug ("search off "); 526 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 527 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 528 gtk_label_set_text (GTK_LABEL(menulabel),"Inbox"); 529 d->searchOn = FALSE; 530 GtkWidget* search_entry = GTK_WIDGET(moko_tool_box_get_entry (MOKO_TOOL_BOX(d->toolbox))); 531 gtk_entry_set_text (GTK_ENTRY(search_entry), ""); 532 d->s_key = ""; 533 gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter)); 534 } 535 536 568 g_debug ("search off "); 569 GtkWidget* menuitem = gtk_menu_get_attach_widget (GTK_MENU(d->filtmenu)); 570 GtkWidget* menulabel = GTK_BIN(menuitem)->child; 571 gtk_label_set_text (GTK_LABEL(menulabel),"Inbox"); 572 d->searchOn = FALSE; 573 GtkWidget* search_entry = GTK_WIDGET(moko_tool_box_get_entry (MOKO_TOOL_BOX(d->toolbox))); 574 gtk_entry_set_text (GTK_ENTRY(search_entry), ""); 575 d->s_key = ""; 576 gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(d->filter)); 577 } 578 579 void cb_addressBtn_clicked (GtkButton* button, gpointer* data) 580 { 581 GtkWidget* contactWin = sms_contact_new(); 582 gtk_window_set_decorated (GTK_WINDOW(contactWin),FALSE); 583 GtkWidget* toEntry = (GtkWidget*)data; 584 g_signal_connect (G_OBJECT(contactWin),"contact_select_done", 585 G_CALLBACK(sms_contact_select_done), toEntry); 586 gtk_widget_show(contactWin); 587 } 588 589 void sms_contact_select_done (GtkWidget* widget, gpointer data) 590 { 591 g_debug("sms select contact done"); 592 GtkWidget* toEntry = (GtkWidget*)data; 593 gtk_entry_set_text (GTK_ENTRY(toEntry),SMS_CONTACT_WINDOW(widget)->nameList); 594 } 595
Note: See TracChangeset
for help on using the changeset viewer.
