void stf_init (void) { GSList *suffixes = go_slist_create ( g_strdup ("csv"), g_strdup ("tsv"), g_strdup ("txt"), NULL); GSList *mimes = go_slist_create ( g_strdup ("application/tab-separated-values"), g_strdup ("text/comma-separated-values"), g_strdup ("text/csv"), g_strdup ("text/x-csv"), g_strdup ("text/spreadsheet"), g_strdup ("text/tab-separated-values"), NULL); GSList *mimes_txt = go_slist_create ( g_strdup ("text/plain"), g_strdup ("text/csv"), g_strdup ("text/x-csv"), g_strdup ("text/comma-separated-values"), g_strdup ("text/tab-separated-values"), NULL); GOFileSaver *saver; GOFileOpener *opener; opener = go_file_opener_new_with_enc ( "Gnumeric_stf:stf_csvtab", _("Comma or tab separated values (CSV/TSV)"), suffixes, mimes, csv_tsv_probe, stf_read_workbook_auto_csvtab); go_file_opener_register (opener, 0); g_object_unref (opener); opener = go_file_opener_new_with_enc ( "Gnumeric_stf:stf_assistant", _("Text import (configurable)"), NULL, mimes_txt, NULL, stf_read_workbook); g_object_set (G_OBJECT (opener), "interactive-only", TRUE, NULL); go_file_opener_register (opener, 0); g_object_unref (opener); saver = gnm_stf_file_saver_create ("Gnumeric_stf:stf_assistant"); /* Unlike the opener, the saver doesn't require interaction. */ go_file_saver_register (saver); g_object_unref (saver); saver = go_file_saver_new ( "Gnumeric_stf:stf_csv", "csv", _("Comma separated values (CSV)"), GO_FILE_FL_MANUAL_REMEMBER, stf_write_csv); go_file_saver_set_save_scope (saver, GO_FILE_SAVE_SHEET); go_file_saver_register (saver); g_object_unref (saver); }
static void go_plugin_service_file_opener_activate (GOPluginService *service, GOErrorInfo **ret_error) { GOPluginServiceFileOpener *service_file_opener = GO_PLUGIN_SERVICE_FILE_OPENER (service); GO_INIT_RET_ERROR_INFO (ret_error); service_file_opener->opener = GO_FILE_OPENER (go_plugin_file_opener_new (service)); go_file_opener_register (service_file_opener->opener, service_file_opener->priority); service->is_active = TRUE; }