~ubuntu-branches/debian/experimental/tickr/experimental

« back to all changes in this revision

Viewing changes to src/tickr/tickr_otherwins.c

  • Committer: Package Import Robot
  • Author(s): Emmanuel Thomas-Maurin
  • Date: 2012-03-07 00:48:53 UTC
  • mto: This revision was merged to the branch mainline in revision 5.
  • Revision ID: package-import@ubuntu.com-20120307004853-jsyb2z1pgaaeusq9
Tags: upstream-0.6.0
ImportĀ upstreamĀ versionĀ 0.6.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 *      TICKR - GTK-based Feed Reader - Copyright (C) Emmanuel Thomas-Maurin 2009-2011
 
2
 *      TICKR - GTK-based Feed Reader - Copyright (C) Emmanuel Thomas-Maurin 2009-2012
3
3
 *      <manutm007@gmail.com>
4
4
 *
5
5
 *      This program is free software: you can redistribute it and/or modify
19
19
#include "tickr.h"
20
20
 
21
21
#if USE_GUI
22
 
static gint esc_key_pressed(GtkWidget *dialog2, GdkEventKey *event, gpointer unused)
 
22
static gint esc_key_pressed(GtkWidget *dialog2, GdkEventKey *event)
23
23
{
24
 
        unused = unused;
25
24
        if (event->keyval == GDK_Escape) {
26
25
                gtk_dialog_response(GTK_DIALOG(dialog2), GTK_RESPONSE_CLOSE);
27
26
                return TRUE;
55
54
                        GTK_STOCK_OK, GTK_RESPONSE_OK,
56
55
                        NULL);
57
56
 
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);
60
59
 
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);
74
73
 
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;
80
77
                        break;
81
78
                } else {
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;
88
84
                }
89
85
        }
90
86
        gtk_widget_destroy(dialog);
129
125
                        GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
130
126
                        NULL);
131
127
 
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);
134
130
 
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,
212
208
                        NULL);
213
209
 
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);
217
213
 
260
256
 
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 */
263
260
 
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);
266
263
 
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);
275
272
 
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);
278
275
 
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>");
299
296
 
300
297
/*
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 ===
303
300
 */
304
301
void info_win(const char *title, const char *txt, info_type info, gboolean selectable)
305
302
{
316
313
                        GTK_STOCK_OK, GTK_RESPONSE_OK,
317
314
                        NULL);
318
315
 
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);
321
319
 
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);
376
374
 
377
375
        win = gtk_window_new(GTK_WINDOW_POPUP);
378
376
 
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);
381
380
 
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();
413
412
}
414
413
 
 
414
/* win centered */
415
415
int question_win(const char *txt)
416
416
{
 
417
        return question_win_at(txt, GTK_WIN_POS_CENTER);
 
418
}
 
419
 
 
420
int question_win_at(const char *txt, int win_pos)
 
421
{
417
422
        GtkWidget       *dialog, *table, *image, *label[2];
418
423
        gint            response;
419
424
 
426
431
                        GTK_STOCK_YES, GTK_RESPONSE_YES,
427
432
                        NULL);
428
433
 
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);*/
433
439
 
452
458
        return ((response == GTK_RESPONSE_YES) ? YES : NO);
453
459
}
454
460
 
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)
456
463
{
457
464
        static GtkWidget        *win;
458
465
        GtkWidget               *hbox, *label;
466
473
                gtk_window_set_keep_above(GTK_WINDOW(get_ticker_env()->win), FALSE);
467
474
 
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);
472
479
 
506
513
                gtk_widget_destroy(win);
507
514
                check_main_win_always_on_top();
508
515
        } else
509
 
                warning("win_with_spinner():", "Invalid mode", "", "", FALSE);
 
516
                warning(FALSE, 1, "win_with_spinner(): Invalid mode");
 
517
}
 
518
 
 
519
void win_with_progress_bar(win_with_progress_bar_mode mode, const char *txt)
 
520
{
 
521
        static GtkWidget        *win, *hbox, *progress_bar;
 
522
 
 
523
        if (mode == WIN_WITH_PROGRESS_BAR_OPEN) {
 
524
                gtk_window_set_keep_above(GTK_WINDOW(get_ticker_env()->win), FALSE);
 
525
 
 
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);
 
530
 
 
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);
 
536
 
 
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);
 
539
 
 
540
                gtk_widget_show_all(win);
 
541
 
 
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) {
 
546
                if (txt != NULL)
 
547
                        gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progress_bar), txt);
 
548
                gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progress_bar));
 
549
 
 
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();
 
555
        } else
 
556
                warning(FALSE, 1, "win_with_spinner(): Invalid mode");
510
557
}
511
558
#endif