# HG changeset patch # User Matti Hamalainen # Date 1174584364 0 # Node ID 7ae251af5f839cd98d69e2f0123f7f55c95e87b0 # Parent acda6c2f10c88bd4eaae30ff6cf9348fad387894 Some macro magic for simplifying the repetitive code. diff -r acda6c2f10c8 -r 7ae251af5f83 src/xs_config.c --- a/src/xs_config.c Thu Mar 22 17:11:01 2007 +0000 +++ b/src/xs_config.c Thu Mar 22 17:26:04 2007 +0000 @@ -72,13 +72,19 @@ #define LUW(x) lookup_widget(xs_configwin, x) -#define XS_DEF_WINDOW_DELETE(ME, MV) \ +#define XS_DEF_WINDOW_DELETE(ME, MV) \ gboolean xs_ ## ME ## _delete(GtkWidget * w, GdkEvent * e, gpointer d) { \ (void) w; (void) e; (void) d; \ if (xs_ ## MV ) { gtk_widget_destroy(xs_ ## MV ); xs_ ## MV = NULL; } \ return FALSE; \ } +#define XS_DEF_WINDOW_CANCEL(ME, MV) \ +void xs_ ## ME ## _cancel(GtkButton *b, gpointer d) { \ + (void) b; (void) d; \ + gtk_widget_destroy(xs_ ## MV ); \ + xs_ ## MV = NULL; \ +} /* @@ -320,9 +326,10 @@ return FALSE; for (i = 0, j = 0; i < pResult->npoints; i++, j += XS_FITEM) { - sscanf(&tmpStr[j], "%4x%4x", + if (sscanf(&tmpStr[j], "%4x%4x", &(pResult->points[i].x), - &(pResult->points[i].y)); + &(pResult->points[i].y)) != 2) + return FALSE; } return TRUE; @@ -386,9 +393,10 @@ gchar inLine[XS_BUF_SIZE]; size_t lineNum; t_xs_sid2_filter *f; - +fprintf(stderr, "xs_filters_import(%s)\n", pcFilename); if ((inFile = fopen(pcFilename, "ra")) == NULL) return FALSE; +fprintf(stderr, "importing...\n"); lineNum = 0; while (fgets(inLine, XS_BUF_SIZE, inFile) != NULL) { @@ -571,11 +579,7 @@ /* Configuration panel was canceled */ -void xs_cfg_cancel(void) -{ - gtk_widget_destroy(xs_configwin); - xs_configwin = NULL; -} +XS_DEF_WINDOW_CANCEL(cfg, configwin) /* Configuration was accepted, save the settings @@ -703,18 +707,7 @@ xs_sldb_fileselector = NULL; } - -void xs_sldb_fs_cancel(GtkButton *button, gpointer user_data) -{ - (void) button; - (void) user_data; - - /* Close file selector window */ - gtk_widget_destroy(xs_sldb_fileselector); - xs_sldb_fileselector = NULL; -} - - +XS_DEF_WINDOW_CANCEL(sldb_fs, sldb_fileselector) XS_DEF_WINDOW_DELETE(sldb_fs, sldb_fileselector) @@ -753,17 +746,7 @@ } -void xs_stil_fs_cancel(GtkButton *button, gpointer user_data) -{ - (void) button; - (void) user_data; - - /* Close file selector window */ - gtk_widget_destroy(xs_stil_fileselector); - xs_stil_fileselector = NULL; -} - - +XS_DEF_WINDOW_CANCEL(stil_fs, stil_fileselector) XS_DEF_WINDOW_DELETE(stil_fs, stil_fileselector) @@ -802,17 +785,7 @@ } -void xs_hvsc_fs_cancel(GtkButton *button, gpointer user_data) -{ - (void) button; - (void) user_data; - - /* Close file selector window */ - gtk_widget_destroy(xs_hvsc_selector); - xs_hvsc_selector = NULL; -} - - +XS_DEF_WINDOW_CANCEL(hvsc_fs, hvsc_selector) XS_DEF_WINDOW_DELETE(hvsc_fs, hvsc_selector) @@ -840,8 +813,11 @@ } -void xs_cfg_sp2_presets_update() +void xs_cfg_sp2_presets_update(void) { + /* + update the drowdown list of preset names from current filter presets list + */ } @@ -942,28 +918,27 @@ void xs_filter_import_fs_ok(GtkButton *button, gpointer user_data) { + gchar *tmpStr; (void) button; (void) user_data; + + XS_MUTEX_LOCK(xs_cfg); + + /* Selection was accepted! */ + tmpStr = gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_filt_importselector)); +fprintf(stderr, "paf: %s\n", tmpStr); + xs_filters_import(tmpStr, xs_cfg.sid2FilterPresets, &xs_cfg.sid2NFilterPresets); xs_cfg_sp2_presets_update(); /* Close file selector window */ gtk_widget_destroy(xs_filt_importselector); xs_filt_importselector = NULL; + XS_MUTEX_UNLOCK(xs_cfg); } -void xs_filter_import_fs_cancel(GtkButton *button, gpointer user_data) -{ - (void) button; - (void) user_data; - - /* Close file selector window */ - gtk_widget_destroy(xs_filt_importselector); - xs_filt_importselector = NULL; -} - - +XS_DEF_WINDOW_CANCEL(filter_import_fs, filt_importselector) XS_DEF_WINDOW_DELETE(filter_import_fs, filt_importselector) @@ -984,26 +959,25 @@ void xs_filter_export_fs_ok(GtkButton *button, gpointer user_data) { + gchar *tmpStr; (void) button; (void) user_data; + XS_MUTEX_LOCK(xs_cfg); + + /* Selection was accepted! */ + tmpStr = gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_filt_exportselector)); +fprintf(stderr, "paf: %s\n", tmpStr); +// xs_filters_export(tmpStr, xs_cfg.sid2FilterPresets, &xs_cfg.sid2NFilterPresets); + /* Close file selector window */ gtk_widget_destroy(xs_filt_exportselector); xs_filt_exportselector = NULL; + XS_MUTEX_UNLOCK(xs_cfg); } -void xs_filter_export_fs_cancel(GtkButton *button, gpointer user_data) -{ - (void) button; - (void) user_data; - - /* Close file selector window */ - gtk_widget_destroy(xs_filt_exportselector); - xs_filt_exportselector = NULL; -} - - +XS_DEF_WINDOW_CANCEL(filter_export_fs, filt_exportselector) XS_DEF_WINDOW_DELETE(filter_export_fs, filt_exportselector)