static void print_filetypes(void) { const GSList *list, *node; filetypes_init_types(); printf("Geany's filetype names:\n"); list = filetypes_get_sorted_by_name(); foreach_slist(node, list) { GeanyFiletype *ft = node->data; printf("%s\n", ft->name); }
static PyObject * Filetype_get_sorted_by_name(PyObject *self) { const GSList *glist, *iter; PyObject *list; glist = filetypes_get_sorted_by_name(); list = PyList_New(0); for (iter = glist; iter != NULL; iter = g_slist_next(iter)) { if (!iter->data) continue; PyList_Append(list, (PyObject *) Filetype_create_new_from_geany_filetype((GeanyFiletype *) iter->data)); } return list; }
GtkWidget *plugin_configure(GtkDialog *dialog) { GtkWidget *vbox, *label, *notebook_vbox, *checkbox_enable; GtkWidget *notebook, *inner_vbox; vbox = gtk_vbox_new(FALSE, 6); notebook = gtk_notebook_new(); gtk_widget_set_can_focus(notebook, FALSE); gtk_container_set_border_width(GTK_CONTAINER(notebook), 5); gtk_box_pack_start(GTK_BOX(vbox), notebook, FALSE, TRUE, 0); /* * Auto Save */ { GtkWidget *spin, *hbox, *checkbox, *checkbox_enable_as_lf, *radio1, *radio2; notebook_vbox = gtk_vbox_new(FALSE, 2); inner_vbox = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(inner_vbox), 5); gtk_box_pack_start(GTK_BOX(notebook_vbox), inner_vbox, TRUE, TRUE, 5); gtk_notebook_insert_page(GTK_NOTEBOOK(notebook), notebook_vbox, gtk_label_new(_("Auto Save")), NOTEBOOK_PAGE_AUTOSAVE); checkbox_enable_as_lf = gtk_check_button_new_with_mnemonic(_("Enable save when losing _focus")); gtk_button_set_focus_on_click(GTK_BUTTON(checkbox_enable_as_lf), FALSE); pref_widgets.checkbox_enable_autosave_losing_focus = checkbox_enable_as_lf; gtk_box_pack_start(GTK_BOX(inner_vbox), checkbox_enable_as_lf, FALSE, FALSE, 6); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox_enable_as_lf), enable_autosave_losing_focus); checkbox_enable = gtk_check_button_new_with_mnemonic(_("_Enable")); gtk_button_set_focus_on_click(GTK_BUTTON(checkbox_enable), FALSE); pref_widgets.checkbox_enable_autosave = checkbox_enable; gtk_box_pack_start(GTK_BOX(inner_vbox), checkbox_enable, FALSE, FALSE, 6); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox_enable), enable_autosave); g_signal_connect(checkbox_enable, "toggled", G_CALLBACK(checkbox_toggled_cb), GINT_TO_POINTER(NOTEBOOK_PAGE_AUTOSAVE)); label = gtk_label_new_with_mnemonic(_("Auto save _interval:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_box_pack_start(GTK_BOX(inner_vbox), label, TRUE, TRUE, 0); pref_widgets.autosave_interval_spin = spin = gtk_spin_button_new_with_range(1, 1800, 1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), autosave_interval); gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin); label = gtk_label_new(_("seconds")); hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(hbox), spin, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(inner_vbox), hbox, FALSE, FALSE, 5); checkbox = gtk_check_button_new_with_mnemonic( _("_Print status message if files have been automatically saved")); gtk_button_set_focus_on_click(GTK_BUTTON(checkbox), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), autosave_print_msg); gtk_label_set_mnemonic_widget(GTK_LABEL(label), checkbox); gtk_box_pack_start(GTK_BOX(inner_vbox), checkbox, FALSE, FALSE, 5); pref_widgets.autosave_print_msg_checkbox = checkbox; radio1 = gtk_radio_button_new_with_mnemonic(NULL, _("Save only current open _file")); pref_widgets.autosave_save_all_radio1 = radio1; gtk_label_set_mnemonic_widget(GTK_LABEL(label), radio1); gtk_button_set_focus_on_click(GTK_BUTTON(radio1), FALSE); gtk_container_add(GTK_CONTAINER(inner_vbox), radio1); radio2 = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON(radio1), _("Sa_ve all open files")); pref_widgets.autosave_save_all_radio2 = radio2; gtk_label_set_mnemonic_widget(GTK_LABEL(label), radio2); gtk_button_set_focus_on_click(GTK_BUTTON(radio2), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio2), autosave_save_all); gtk_container_add(GTK_CONTAINER(inner_vbox), radio2); } /* * Instant Save */ { GtkWidget *combo; guint i; const GSList *node; notebook_vbox = gtk_vbox_new(FALSE, 2); inner_vbox = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(inner_vbox), 5); gtk_box_pack_start(GTK_BOX(notebook_vbox), inner_vbox, TRUE, TRUE, 5); gtk_notebook_insert_page(GTK_NOTEBOOK(notebook), notebook_vbox, gtk_label_new(_("Instant Save")), NOTEBOOK_PAGE_INSTANTSAVE); checkbox_enable = gtk_check_button_new_with_mnemonic(_("_Enable")); pref_widgets.checkbox_enable_instantsave = checkbox_enable; gtk_button_set_focus_on_click(GTK_BUTTON(checkbox_enable), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox_enable), enable_instantsave); gtk_box_pack_start(GTK_BOX(inner_vbox), checkbox_enable, FALSE, FALSE, 6); g_signal_connect(checkbox_enable, "toggled", G_CALLBACK(checkbox_toggled_cb), GINT_TO_POINTER(NOTEBOOK_PAGE_INSTANTSAVE)); label = gtk_label_new_with_mnemonic(_("_Filetype to use for newly opened files:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_box_pack_start(GTK_BOX(inner_vbox), label, FALSE, FALSE, 0); pref_widgets.instantsave_ft_combo = combo = gtk_combo_box_text_new(); i = 0; foreach_slist(node, filetypes_get_sorted_by_name()) { GeanyFiletype *ft = node->data; gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), ft->name); if (utils_str_equal(ft->name, instantsave_default_ft)) gtk_combo_box_set_active(GTK_COMBO_BOX(combo), i); i++; } gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo), 3); gtk_label_set_mnemonic_widget(GTK_LABEL(label), combo); gtk_box_pack_start(GTK_BOX(inner_vbox), combo, FALSE, FALSE, 0); }