22
static gint esc_key_pressed(GtkWidget *dialog2, GdkEventKey *event, gpointer unused)
22
static gint esc_key_pressed(GtkWidget *dialog2, GdkEventKey *event)
25
24
if (event->keyval == GDK_Escape) {
26
25
gtk_dialog_response(GTK_DIALOG(dialog2), GTK_RESPONSE_CLOSE);
55
54
GTK_STOCK_OK, GTK_RESPONSE_OK,
58
set_news_icon_to_dialog(GTK_WINDOW(dialog));
57
set_tickr_icon_to_dialog(GTK_WINDOW(dialog));
59
58
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
61
60
g_signal_connect(G_OBJECT(dialog), "key-press-event", G_CALLBACK(esc_key_pressed), NULL);
72
71
str_n_cpy(resrc->id, file_name2, FILE_NAME_MAXLEN);
73
72
g_free(file_name2);
75
env->suspend_rq = TRUE;
76
74
get_ticker_env()->selection_mode = SINGLE;
77
75
if ((resource_flag = load_resource(resrc, NULL)) == OK) {
78
76
env->reload_rq = TRUE;
79
env->suspend_rq = FALSE;
82
79
snprintf(tmp, TMPSTR_SIZE + 1, "load_resource() error %d", resource_flag);
84
81
str_n_cpy(resrc->id, resrc_bak.id, FILE_NAME_MAXLEN);
85
82
get_ticker_env()->selection_mode = selection_mode_bak;
86
83
load_resource(resrc, NULL);
87
env->suspend_rq = FALSE;
90
86
gtk_widget_destroy(dialog);
129
125
GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
132
set_news_icon_to_dialog(GTK_WINDOW(dialog));
128
set_tickr_icon_to_dialog(GTK_WINDOW(dialog));
133
129
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
135
131
g_signal_connect(G_OBJECT(dialog), "key-press-event", G_CALLBACK(esc_key_pressed), NULL);
211
207
GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
214
set_news_icon_to_dialog(GTK_WINDOW(dialog));
210
set_tickr_icon_to_dialog(GTK_WINDOW(dialog));
215
211
gtk_container_set_border_width(GTK_CONTAINER(dialog), 15);
216
212
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_NONE);
261
257
license_but = gtk_dialog_add_button(GTK_DIALOG(dialog), "License", GTK_RESPONSE_NONE);
262
258
close_but = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE);
259
close_but = close_but; /* to get rid of one compiler warning */
264
set_news_icon_to_dialog(GTK_WINDOW(dialog));
261
set_tickr_icon_to_dialog(GTK_WINDOW(dialog));
265
262
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
267
264
g_signal_connect(G_OBJECT(license_but), "clicked", G_CALLBACK(license_win), NULL);
273
270
gtk_container_set_border_width(GTK_CONTAINER(table), 15);
274
271
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), table);
276
image = gtk_image_new_from_file(get_imagefile_full_name_from_name(NEWS_LOGO));
273
image = gtk_image_new_from_file(get_imagefile_full_name_from_name(TICKR_LOGO));
277
274
gtk_table_attach_defaults(GTK_TABLE(table), image, 0, 1, 0, 1);
279
label[0] = gtk_label_new("\n<b>"APP_NAME" version "APP_VERSION_NUMBER" - RSS Feed Reader</b>");
276
label[0] = gtk_label_new("\n<b>"APP_NAME" version "APP_VERSION_NUMBER" - Feed Reader</b>");
280
277
gtk_label_set_use_markup(GTK_LABEL(label[0]), TRUE);
281
278
gtk_table_attach_defaults(GTK_TABLE(table), label[0], 0, 1, 1, 2);
282
label[1] = gtk_label_new("<small>Copyright (C) Emmanuel Thomas-Maurin 2009-2011</small>");
279
label[1] = gtk_label_new("<small>Copyright (C) Emmanuel Thomas-Maurin 2009-2012</small>");
283
280
gtk_label_set_use_markup(GTK_LABEL(label[1]), TRUE);
284
281
gtk_table_attach_defaults(GTK_TABLE(table), label[1], 0, 1, 2, 3);
285
282
label[2] = gtk_label_new("<a href=\"mailto:"APP_SUPPORT_EMAIL"\">"APP_SUPPORT_EMAIL"</a>");
301
298
* info, warning or error
302
* === should format txt in case it's a long string ===
299
* === should format text in case it's a long string ===
304
301
void info_win(const char *title, const char *txt, info_type info, gboolean selectable)
316
313
GTK_STOCK_OK, GTK_RESPONSE_OK,
319
set_news_icon_to_dialog(GTK_WINDOW(dialog));
316
set_tickr_icon_to_dialog(GTK_WINDOW(dialog));
320
317
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
318
gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE);
322
320
g_signal_connect(G_OBJECT(dialog), "key-press-event", G_CALLBACK(esc_key_pressed), NULL);
323
321
g_signal_connect(G_OBJECT(dialog), "delete_event", G_CALLBACK(force_quit_dialog), NULL);
377
375
win = gtk_window_new(GTK_WINDOW_POPUP);
379
set_news_icon_to_dialog(GTK_WINDOW(win));
377
set_tickr_icon_to_dialog(GTK_WINDOW(win));
380
378
gtk_window_set_position(GTK_WINDOW(win), INFO_WIN_WAIT_POS);
379
gtk_window_set_keep_above(GTK_WINDOW(win), TRUE);
382
381
table = gtk_table_new(1, 3, FALSE);
383
382
gtk_table_set_col_spacings(GTK_TABLE(table), 10);
412
411
check_main_win_always_on_top();
415
415
int question_win(const char *txt)
417
return question_win_at(txt, GTK_WIN_POS_CENTER);
420
int question_win_at(const char *txt, int win_pos)
417
422
GtkWidget *dialog, *table, *image, *label[2];
426
431
GTK_STOCK_YES, GTK_RESPONSE_YES,
429
set_news_icon_to_dialog(GTK_WINDOW(dialog));
430
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
434
set_tickr_icon_to_dialog(GTK_WINDOW(dialog));
435
gtk_window_set_position(GTK_WINDOW(dialog), win_pos);
436
gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE);
431
437
/* why always no?
432
438
gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_NO);*/
452
458
return ((response == GTK_RESPONSE_YES) ? YES : NO);
455
void win_with_spinner(spinner_win_mode mode, const char *txt)
461
/* this one is buggy as the spinner don't always spin as expected (hmm...) */
462
void win_with_spinner(win_with_spinner_mode mode, const char *txt)
457
464
static GtkWidget *win;
458
465
GtkWidget *hbox, *label;
466
473
gtk_window_set_keep_above(GTK_WINDOW(get_ticker_env()->win), FALSE);
468
475
win = gtk_window_new(GTK_WINDOW_POPUP);
469
set_news_icon_to_dialog(GTK_WINDOW(win));
476
set_tickr_icon_to_dialog(GTK_WINDOW(win));
470
477
gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER);
471
478
gtk_window_set_keep_above(GTK_WINDOW(win), TRUE);
506
513
gtk_widget_destroy(win);
507
514
check_main_win_always_on_top();
509
warning("win_with_spinner():", "Invalid mode", "", "", FALSE);
516
warning(FALSE, 1, "win_with_spinner(): Invalid mode");
519
void win_with_progress_bar(win_with_progress_bar_mode mode, const char *txt)
521
static GtkWidget *win, *hbox, *progress_bar;
523
if (mode == WIN_WITH_PROGRESS_BAR_OPEN) {
524
gtk_window_set_keep_above(GTK_WINDOW(get_ticker_env()->win), FALSE);
526
win = gtk_window_new(GTK_WINDOW_POPUP);
527
set_tickr_icon_to_dialog(GTK_WINDOW(win));
528
gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER);
529
gtk_window_set_keep_above(GTK_WINDOW(win), TRUE);
531
hbox = gtk_hbox_new(FALSE, 0);
532
gtk_container_add(GTK_CONTAINER(GTK_WINDOW(win)), hbox);
533
progress_bar = gtk_progress_bar_new();
534
gtk_container_add(GTK_CONTAINER(GTK_BOX(hbox)), progress_bar);
535
gtk_container_set_border_width(GTK_CONTAINER(GTK_BOX(hbox)), 15);
537
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progress_bar), txt);
538
gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(progress_bar), 0.2);
540
gtk_widget_show_all(win);
542
/* so that win will popup immediately */
543
while (gtk_events_pending())
544
gtk_main_iteration();
545
} else if (mode == WIN_WITH_PROGRESS_BAR_PULSE) {
547
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progress_bar), txt);
548
gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progress_bar));
550
while (gtk_events_pending())
551
gtk_main_iteration();
552
} else if (mode == WIN_WITH_PROGRESS_BAR_CLOSE) {
553
gtk_widget_destroy(win);
554
check_main_win_always_on_top();
556
warning(FALSE, 1, "win_with_spinner(): Invalid mode");