Esempio n. 1
0
static GtkWidget*
programsettings(JamWin *jw) {
    GtkWidget *group;
    GtkWidget *button, *vbox, *hbox;
    SettingsWidget *sw;
    JamView *jv = jam_win_get_cur_view(jw);

    group = groupedbox_new_with_text(_("Programs"));
    groupedbox_pack(GROUPEDBOX(group), sw_make("web_spawn"), FALSE);

    vbox = sw_make("music_command");
    groupedbox_pack(GROUPEDBOX(group), vbox, FALSE);
    sw = sw_lookup("music_command");
    g_signal_connect_swapped(G_OBJECT(sw->widget), "changed",
                             G_CALLBACK(jam_view_settings_changed), jv);

    button = sw_make("music_mpris");
    groupedbox_pack(GROUPEDBOX(group), button, FALSE);
    g_signal_connect(G_OBJECT(button), "toggled",
                     G_CALLBACK(mpris_update_cb), jdbus);
    toggle_tie_disable(button, vbox);
    g_signal_connect_swapped(G_OBJECT(button), "toggled",
                             G_CALLBACK(jam_view_settings_changed), jv);

    button = gtk_button_new_with_mnemonic(_("_Diagnose"));
    g_signal_connect(G_OBJECT(button), "clicked",
                     G_CALLBACK(music_diagnose), NULL);
    hbox = labelled_box_new_expand(_("Diagnose problems detecting music:"),
                                   button, FALSE);
    groupedbox_pack(GROUPEDBOX(group), hbox, FALSE);

    return group;
}
Esempio n. 2
0
static void
pollmultidlg_init(PollMultiDlg *pmdlg, GtkWindow *parent) {
	GtkWidget *mainbox, *vbox, *paned;
	GtkWidget *menu, *label;

	pmdlg->dlg = gtk_dialog_new_with_buttons(_("Multi Poll Question"),
			parent, GTK_DIALOG_MODAL,
			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
			GTK_STOCK_OK, GTK_RESPONSE_OK,
			NULL);
	jam_win_set_size(GTK_WINDOW(pmdlg->dlg), 500, -1);

	mainbox = gtk_vbox_new(FALSE, 12);

	menu = gtk_menu_new();
	gtk_menu_shell_append(GTK_MENU_SHELL(menu),
		gtk_menu_item_new_with_mnemonic(_("Choose best answer (_radio buttons)")));
	gtk_menu_shell_append(GTK_MENU_SHELL(menu),
		gtk_menu_item_new_with_mnemonic(_("Choose best answer (_drop-down menu)")));
	gtk_menu_shell_append(GTK_MENU_SHELL(menu),
		gtk_menu_item_new_with_mnemonic(_("Select _all that apply (checkboxes)")));

	pmdlg->typemenu = gtk_option_menu_new();
	gtk_option_menu_set_menu(GTK_OPTION_MENU(pmdlg->typemenu), menu);
	gtk_box_pack_start(GTK_BOX(mainbox),
			labelled_box_new_expand(_("Choice _Type:"), pmdlg->typemenu, TRUE),
			FALSE, FALSE, 0);

	paned = gtk_hpaned_new();
	gtk_box_pack_start(GTK_BOX(mainbox), paned, TRUE, TRUE, 0);

	vbox = gtk_vbox_new(FALSE, 6);
	label = gtk_label_new_with_mnemonic(_("_Question:"));
	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);

	pmdlg->question = gtk_text_view_new();
	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(pmdlg->question), GTK_WRAP_WORD);
	gtk_label_set_mnemonic_widget(GTK_LABEL(label), pmdlg->question);
	gtk_box_pack_start(GTK_BOX(vbox),
			scroll_wrap(pmdlg->question),
			TRUE, TRUE, 0);

	gtk_paned_pack1(GTK_PANED(paned), vbox, TRUE, FALSE);

	vbox = gtk_vbox_new(FALSE, 6);
	pollmulti_make_list(pmdlg);
	label = gtk_label_new_with_mnemonic(_("O_ptions:"));
	gtk_label_set_mnemonic_widget(GTK_LABEL(label), pmdlg->answers.view);
	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX(vbox), pmdlg->answers.box, TRUE, TRUE, 0);

	gtk_paned_pack2(GTK_PANED(paned), vbox, TRUE, FALSE);

	jam_dialog_set_contents(GTK_DIALOG(pmdlg->dlg), mainbox);
}
Esempio n. 3
0
static GtkWidget*
sw_make_sg(char *name, GtkSizeGroup *sg) {
    SettingsWidget *sw = sw_lookup(name);
    switch (sw->type) {
    case SW_TOGGLE:
        sw->widget = gtk_check_button_new_with_mnemonic(_(sw->caption));
        toggle_tie(sw);
        return sw->widget;
    case SW_RADIO:
        sw->widget = gtk_radio_button_new_with_mnemonic(NULL,
                     _(sw->caption));
        radio_tie(sw);
        return sw->widget;
    case SW_TEXT:
        sw->widget = gtk_entry_new();
        text_tie(sw);
        return labelled_box_new_sg(_(sw->caption), sw->widget, sg);
    case SW_INTEGER:
        sw->widget = gtk_entry_new();
        gtk_entry_set_width_chars(GTK_ENTRY(sw->widget), 4);
        integer_tie(sw);
        return labelled_box_new(_(sw->caption), sw->widget);
    case SW_SPIN_INTEGER:
    {
        gdouble default_value = *(gint*)sw->conf;
        GtkObject *adj = gtk_adjustment_new(default_value,
                                            /* client code should override these */
                                            G_MINDOUBLE, G_MAXDOUBLE, 1.0, 1.0, 0);
        sw->widget = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 1, 1);
    }
    spin_integer_tie(sw);
    return labelled_box_new_expand(_(sw->caption), sw->widget, FALSE);
    case SW_COMBO:
        sw->widget = gtk_combo_new();
        combo_tie(sw);
        return labelled_box_new(_(sw->caption), sw->widget);
    case SW_COMMAND:
        return command_make(sw);
    case SW_CUSTOM:
        if (sw->caption && sw->widget)
            return labelled_box_new(_(sw->caption), sw->widget);
        break;
    default:
        break;
    }
    return NULL;
}
Esempio n. 4
0
static GtkWidget*
uisettings(JamWin *jw) {
    SettingsWidget *sw;
    GtkWidget *vbox, *hbox, *button;
    char *fontname = NULL;
    GtkWidget *post, *entry, *misc;

    vbox = gtk_vbox_new(FALSE, 18);
    gtk_container_set_border_width(GTK_CONTAINER(vbox), 10);

    post = groupedbox_new_with_text(_("Posting"));
    gtk_box_pack_start(GTK_BOX(vbox), post, FALSE, FALSE, 0);

    groupedbox_pack(GROUPEDBOX(post),
                    sw_make("ui_revertusejournal"), FALSE);

    sw = sw_lookup("ui_defaultsecurity");
    sw->widget = secmgr_new(FALSE);
    secmgr_security_set(SECMGR(sw->widget), (LJSecurity*)sw->conf);
    g_signal_connect(G_OBJECT(sw->widget), "changed",
                     G_CALLBACK(sec_changed_cb), sw);
    groupedbox_pack(GROUPEDBOX(post), sw_make("ui_defaultsecurity"), FALSE);

#ifdef USE_DOCK
    groupedbox_pack(GROUPEDBOX(post), sw_make("ui_close_when_send"), FALSE);
#endif /* USE_DOCK */

    entry = groupedbox_new_with_text(_("Entries"));
    gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, FALSE, 0);

    groupedbox_pack(GROUPEDBOX(entry), sw_make("ui_autosave"), FALSE);

    groupedbox_pack(GROUPEDBOX(entry), sw_make("ui_keepsaveddrafts"), FALSE);

#ifdef HAVE_GTKSPELL
    {
        GtkWidget *toggle = sw_make("ui_spellcheck");
        GtkWidget *label, *box;

        hbox = sw_make("ui_spell_language");
        label = gtk_label_new("        ");
        gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
        gtk_box_reorder_child(GTK_BOX(hbox), label, 0);

        sw = sw_lookup("ui_spell_language");
        gtk_entry_set_width_chars(GTK_ENTRY(sw->widget), 5);

        box = gtk_vbox_new(FALSE, 3);
        gtk_box_pack_start(GTK_BOX(box), toggle, FALSE, FALSE, 0);
        gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);

        groupedbox_pack(GROUPEDBOX(entry), box, FALSE);
        toggle_tie_enable(toggle, hbox);
    }
#endif

    groupedbox_pack(GROUPEDBOX(entry), sw_make("ui_showloginhistory"), TRUE);
    groupedbox_pack(GROUPEDBOX(entry),
                    sw_make("ui_smartquotes"), FALSE);

    sw = sw_lookup("ui_font");
    if (conf.uifont == NULL) {
        fontname = pango_font_description_to_string(
                       pango_context_get_font_description(
                           gtk_widget_get_pango_context(jw->view)));
        sw->widget = gtk_label_new(fontname ? fontname : _("[gtk default]"));
        if (fontname)
            jam_widget_set_font(sw->widget, fontname);
        g_free(fontname);
    } else {
        sw->widget = gtk_label_new(conf.uifont);
        jam_widget_set_font(sw->widget, conf.uifont);
    }
    button = gtk_button_new_from_stock(GTK_STOCK_SELECT_FONT);
    sw->data = jw->view;

    hbox = labelled_box_new_expand(_(sw->caption), button, FALSE);
    gtk_box_pack_start(GTK_BOX(hbox), sw->widget, TRUE, TRUE, 0);
    gtk_box_reorder_child(GTK_BOX(hbox), sw->widget, 1);

    groupedbox_pack(GROUPEDBOX(entry), hbox, FALSE);
    g_signal_connect_swapped(G_OBJECT(button), "clicked",
                             G_CALLBACK(run_fontsel_settings_dlg), sw);

    misc = groupedbox_new_with_text(_("Behavior"));
    gtk_box_pack_start(GTK_BOX(vbox), misc, FALSE, FALSE, 0);

    groupedbox_pack(GROUPEDBOX(misc),
                    sw_make("ui_allowmultipleinstances"), FALSE);

#ifdef USE_DOCK
    button = sw_make("ui_docklet");
    g_signal_connect(G_OBJECT(button), "toggled",
                     G_CALLBACK(docklet_change_cb), jw);
    groupedbox_pack(GROUPEDBOX(misc), button, FALSE);
    groupedbox_pack(GROUPEDBOX(misc), sw_make("ui_start_in_dock"), FALSE);
#endif /* USE_DOCK */

    return vbox;
}