Mercurial > pidgin.yaz
comparison pidgin/gtknotify.c @ 15820:c02a897a67c7
More Gaim to Pidgin changes
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sun, 18 Mar 2007 21:12:40 +0000 |
parents | 427ca6a0aa87 |
children | cebfc6af3eb5 |
comparison
equal
deleted
inserted
replaced
15818:0e3a8505ebbe | 15820:c02a897a67c7 |
---|---|
65 | 65 |
66 } GaimNotifySearchResultsButtonData; | 66 } GaimNotifySearchResultsButtonData; |
67 | 67 |
68 enum | 68 enum |
69 { | 69 { |
70 GAIM_MAIL_ICON, | 70 PIDGIN_MAIL_ICON, |
71 GAIM_MAIL_TEXT, | 71 PIDGIN_MAIL_TEXT, |
72 GAIM_MAIL_DATA, | 72 PIDGIN_MAIL_DATA, |
73 COLUMNS_GAIM_MAIL | 73 COLUMNS_PIDGIN_MAIL |
74 }; | 74 }; |
75 | 75 |
76 typedef struct _GaimMailDialog GaimMailDialog; | 76 typedef struct _PidginMailDialog PidginMailDialog; |
77 | 77 |
78 struct _GaimMailDialog | 78 struct _PidginMailDialog |
79 { | 79 { |
80 GtkWidget *dialog; | 80 GtkWidget *dialog; |
81 GtkWidget *treeview; | 81 GtkWidget *treeview; |
82 GtkTreeStore *treemodel; | 82 GtkTreeStore *treemodel; |
83 GtkLabel *label; | 83 GtkLabel *label; |
84 GtkWidget *open_button; | 84 GtkWidget *open_button; |
85 int total_count; | 85 int total_count; |
86 gboolean in_use; | 86 gboolean in_use; |
87 }; | 87 }; |
88 | 88 |
89 static GaimMailDialog *mail_dialog = NULL; | 89 static PidginMailDialog *mail_dialog = NULL; |
90 | 90 |
91 static void *pidgin_notify_emails(GaimConnection *gc, size_t count, gboolean detailed, | 91 static void *pidgin_notify_emails(GaimConnection *gc, size_t count, gboolean detailed, |
92 const char **subjects, | 92 const char **subjects, |
93 const char **froms, const char **tos, | 93 const char **froms, const char **tos, |
94 const char **urls); | 94 const char **urls); |
98 { | 98 { |
99 gaim_notify_close(GAIM_NOTIFY_MESSAGE, widget); | 99 gaim_notify_close(GAIM_NOTIFY_MESSAGE, widget); |
100 } | 100 } |
101 | 101 |
102 static void | 102 static void |
103 email_response_cb(GtkDialog *dlg, gint id, GaimMailDialog *dialog) | 103 email_response_cb(GtkDialog *dlg, gint id, PidginMailDialog *dialog) |
104 { | 104 { |
105 GaimNotifyMailData *data = NULL; | 105 GaimNotifyMailData *data = NULL; |
106 GtkTreeIter iter; | 106 GtkTreeIter iter; |
107 | 107 |
108 if (id == GTK_RESPONSE_YES) | 108 if (id == GTK_RESPONSE_YES) |
112 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); | 112 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); |
113 | 113 |
114 if (gtk_tree_selection_get_selected(selection, NULL, &iter)) | 114 if (gtk_tree_selection_get_selected(selection, NULL, &iter)) |
115 { | 115 { |
116 gtk_tree_model_get(GTK_TREE_MODEL(dialog->treemodel), &iter, | 116 gtk_tree_model_get(GTK_TREE_MODEL(dialog->treemodel), &iter, |
117 GAIM_MAIL_DATA, &data, -1); | 117 PIDGIN_MAIL_DATA, &data, -1); |
118 gaim_notify_uri(NULL, data->url); | 118 gaim_notify_uri(NULL, data->url); |
119 | 119 |
120 gtk_tree_store_remove(dialog->treemodel, &iter); | 120 gtk_tree_store_remove(dialog->treemodel, &iter); |
121 gaim_notify_close(GAIM_NOTIFY_EMAILS, data); | 121 gaim_notify_close(GAIM_NOTIFY_EMAILS, data); |
122 | 122 |
129 else | 129 else |
130 { | 130 { |
131 while (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mail_dialog->treemodel), &iter)) | 131 while (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mail_dialog->treemodel), &iter)) |
132 { | 132 { |
133 gtk_tree_model_get(GTK_TREE_MODEL(dialog->treemodel), &iter, | 133 gtk_tree_model_get(GTK_TREE_MODEL(dialog->treemodel), &iter, |
134 GAIM_MAIL_DATA, &data, -1); | 134 PIDGIN_MAIL_DATA, &data, -1); |
135 | 135 |
136 if (id == GTK_RESPONSE_ACCEPT) | 136 if (id == GTK_RESPONSE_ACCEPT) |
137 gaim_notify_uri(NULL, data->url); | 137 gaim_notify_uri(NULL, data->url); |
138 | 138 |
139 gtk_tree_store_remove(dialog->treemodel, &iter); | 139 gtk_tree_store_remove(dialog->treemodel, &iter); |
275 | 275 |
276 return dialog; | 276 return dialog; |
277 } | 277 } |
278 | 278 |
279 static void | 279 static void |
280 selection_changed_cb(GtkTreeSelection *sel, GaimMailDialog *dialog) | 280 selection_changed_cb(GtkTreeSelection *sel, PidginMailDialog *dialog) |
281 { | 281 { |
282 GtkTreeIter iter; | 282 GtkTreeIter iter; |
283 GtkTreeModel *model; | 283 GtkTreeModel *model; |
284 GaimNotifyMailData *data; | 284 GaimNotifyMailData *data; |
285 gboolean active = TRUE; | 285 gboolean active = TRUE; |
286 | 286 |
287 if (gtk_tree_selection_get_selected(sel, &model, &iter) == FALSE) | 287 if (gtk_tree_selection_get_selected(sel, &model, &iter) == FALSE) |
288 active = FALSE; | 288 active = FALSE; |
289 else | 289 else |
290 { | 290 { |
291 gtk_tree_model_get(model, &iter, GAIM_MAIL_DATA, &data, -1); | 291 gtk_tree_model_get(model, &iter, PIDGIN_MAIL_DATA, &data, -1); |
292 if (data->url == NULL) | 292 if (data->url == NULL) |
293 active = FALSE; | 293 active = FALSE; |
294 } | 294 } |
295 | 295 |
296 gtk_widget_set_sensitive(dialog->open_button, active); | 296 gtk_widget_set_sensitive(dialog->open_button, active); |
353 | 353 |
354 sw = gtk_scrolled_window_new(NULL, NULL); | 354 sw = gtk_scrolled_window_new(NULL, NULL); |
355 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | 355 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
356 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); | 356 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
357 | 357 |
358 mail_dialog = g_new0(GaimMailDialog, 1); | 358 mail_dialog = g_new0(PidginMailDialog, 1); |
359 mail_dialog->dialog = dialog; | 359 mail_dialog->dialog = dialog; |
360 mail_dialog->open_button = button; | 360 mail_dialog->open_button = button; |
361 | 361 |
362 mail_dialog->treemodel = gtk_tree_store_new(COLUMNS_GAIM_MAIL, | 362 mail_dialog->treemodel = gtk_tree_store_new(COLUMNS_PIDGIN_MAIL, |
363 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER); | 363 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER); |
364 mail_dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(mail_dialog->treemodel)); | 364 mail_dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(mail_dialog->treemodel)); |
365 gtk_tree_view_set_search_column(GTK_TREE_VIEW(mail_dialog->treeview), GAIM_MAIL_TEXT); | 365 gtk_tree_view_set_search_column(GTK_TREE_VIEW(mail_dialog->treeview), PIDGIN_MAIL_TEXT); |
366 gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(mail_dialog->treeview), | 366 gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(mail_dialog->treeview), |
367 pidgin_tree_view_search_equal_func, NULL, NULL); | 367 pidgin_tree_view_search_equal_func, NULL, NULL); |
368 | 368 |
369 g_signal_connect(G_OBJECT(dialog), "response", | 369 g_signal_connect(G_OBJECT(dialog), "response", |
370 G_CALLBACK(email_response_cb), mail_dialog); | 370 G_CALLBACK(email_response_cb), mail_dialog); |
377 | 377 |
378 column = gtk_tree_view_column_new(); | 378 column = gtk_tree_view_column_new(); |
379 gtk_tree_view_column_set_resizable(column, TRUE); | 379 gtk_tree_view_column_set_resizable(column, TRUE); |
380 rend = gtk_cell_renderer_pixbuf_new(); | 380 rend = gtk_cell_renderer_pixbuf_new(); |
381 gtk_tree_view_column_pack_start(column, rend, FALSE); | 381 gtk_tree_view_column_pack_start(column, rend, FALSE); |
382 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", GAIM_MAIL_ICON, NULL); | 382 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", PIDGIN_MAIL_ICON, NULL); |
383 rend = gtk_cell_renderer_text_new(); | 383 rend = gtk_cell_renderer_text_new(); |
384 gtk_tree_view_column_pack_start(column, rend, TRUE); | 384 gtk_tree_view_column_pack_start(column, rend, TRUE); |
385 gtk_tree_view_column_set_attributes(column, rend, "markup", GAIM_MAIL_TEXT, NULL); | 385 gtk_tree_view_column_set_attributes(column, rend, "markup", PIDGIN_MAIL_TEXT, NULL); |
386 gtk_tree_view_append_column(GTK_TREE_VIEW(mail_dialog->treeview), column); | 386 gtk_tree_view_append_column(GTK_TREE_VIEW(mail_dialog->treeview), column); |
387 | 387 |
388 label = gtk_label_new(NULL); | 388 label = gtk_label_new(NULL); |
389 gtk_label_set_markup(GTK_LABEL(label), _("<span weight=\"bold\" size=\"larger\">You have mail!</span>")); | 389 gtk_label_set_markup(GTK_LABEL(label), _("<span weight=\"bold\" size=\"larger\">You have mail!</span>")); |
390 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | 390 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
412 if (count > 0) { | 412 if (count > 0) { |
413 /* Allow only one non-detailed email notification for each account */ | 413 /* Allow only one non-detailed email notification for each account */ |
414 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(treemodel), &iter)) { | 414 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(treemodel), &iter)) { |
415 do { | 415 do { |
416 gtk_tree_model_get(GTK_TREE_MODEL(treemodel), &iter, | 416 gtk_tree_model_get(GTK_TREE_MODEL(treemodel), &iter, |
417 GAIM_MAIL_DATA, &data, -1); | 417 PIDGIN_MAIL_DATA, &data, -1); |
418 if (data->account == account && data->count > 0) { | 418 if (data->account == account && data->count > 0) { |
419 new_n = FALSE; | 419 new_n = FALSE; |
420 g_free(data->url); | 420 g_free(data->url); |
421 data->url = NULL; | 421 data->url = NULL; |
422 mail_dialog->total_count -= data->count; | 422 mail_dialog->total_count -= data->count; |
433 | 433 |
434 if (url != NULL) | 434 if (url != NULL) |
435 data->url = g_strdup(url); | 435 data->url = g_strdup(url); |
436 | 436 |
437 gtk_tree_store_set(treemodel, &iter, | 437 gtk_tree_store_set(treemodel, &iter, |
438 GAIM_MAIL_ICON, icon, | 438 PIDGIN_MAIL_ICON, icon, |
439 GAIM_MAIL_TEXT, notification, | 439 PIDGIN_MAIL_TEXT, notification, |
440 GAIM_MAIL_DATA, data, | 440 PIDGIN_MAIL_DATA, data, |
441 -1); | 441 -1); |
442 data->iter = iter; /* XXX: Do we use this for something? */ | 442 data->iter = iter; /* XXX: Do we use this for something? */ |
443 data->account = account; | 443 data->account = account; |
444 data->count = count; | 444 data->count = count; |
445 gtk_tree_model_get(GTK_TREE_MODEL(treemodel), &iter, | 445 gtk_tree_model_get(GTK_TREE_MODEL(treemodel), &iter, |
446 GAIM_MAIL_DATA, &data, -1); | 446 PIDGIN_MAIL_DATA, &data, -1); |
447 if (icon) | 447 if (icon) |
448 g_object_unref(icon); | 448 g_object_unref(icon); |
449 return data; | 449 return data; |
450 } | 450 } |
451 | 451 |