diff options
Diffstat (limited to 'app/bin/dcustmgm.c')
-rw-r--r-- | app/bin/dcustmgm.c | 53 |
1 files changed, 18 insertions, 35 deletions
diff --git a/app/bin/dcustmgm.c b/app/bin/dcustmgm.c index 39bd085..73de62c 100644 --- a/app/bin/dcustmgm.c +++ b/app/bin/dcustmgm.c @@ -20,29 +20,14 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include <assert.h> -#include <errno.h> -#include <string.h> - -#ifdef WINDOWS -#include <io.h> -#define F_OK (0) -#define W_OK (2) -#define access _access -#else -#include <unistd.h> -#endif - #include "custom.h" #include "fileio.h" -#include "i18n.h" -#include "messages.h" #include "param.h" #include "paths.h" #include "track.h" -#include "wlib.h" #include "include/paramfilelist.h" -#ifdef WINDOWS +#include "common-ui.h" +#ifdef UTFCONVERT #include "include/utf8convert.h" #endif @@ -55,7 +40,7 @@ static void CustomNewCar( void * action ); static const char * customTypes[] = { "Car Part", "Car Prototype", NULL }; static wIndex_t selectedType; -static wPos_t customListWidths[] = { 18, 100, 30, 80, 220 }; +static wWinPix_t customListWidths[] = { 18, 100, 30, 80, 220 }; static const char * customListTitles[] = { "", N_("Manufacturer"), N_("Scale"), N_("Part No"), N_("Description") }; static paramListData_t customListData = { 10, 400, 5, customListWidths, customListTitles }; @@ -64,17 +49,17 @@ static paramData_t customPLs[] = { #define customSelL ((wList_p)customPLs[I_CUSTOMLIST].control) { PD_LIST, NULL, "inx", PDO_DLGRESETMARGIN|PDO_DLGRESIZE|PDO_DLGBOXEND, &customListData, NULL, BL_MANY }, #define I_CUSTOMNEWTYPE (1) - { PD_DROPLIST, &selectedType, "newtype", PDO_DLGRESETMARGIN | PDO_LISTINDEX, (void*)150, N_("Create a new ") }, + { PD_DROPLIST, &selectedType, "newtype", PDO_DLGRESETMARGIN | PDO_LISTINDEX, I2VP(150), N_("Create a new ") }, #define I_CUSTOMNEW (2) - { PD_BUTTON, (void *)CustomNewCar, "newcar", PDO_DLGHORZ| PDO_DLGBOXEND, NULL, N_("Go") }, + { PD_BUTTON, CustomNewCar, "newcar", PDO_DLGHORZ| PDO_DLGBOXEND, NULL, N_("Go") }, #define I_CUSTOMEDIT (3) - { PD_BUTTON, (void*)CustomEdit, "edit", PDO_DLGCMDBUTTON, NULL, N_("Edit") }, + { PD_BUTTON, CustomEdit, "edit", PDO_DLGCMDBUTTON, NULL, N_("Edit") }, #define I_CUSTOMDEL (4) - { PD_BUTTON, (void*)CustomDelete, "delete", 0, NULL, N_("Delete") }, + { PD_BUTTON, CustomDelete, "delete", 0, NULL, N_("Delete") }, #define I_CUSTOMCOPYTO (5) - { PD_BUTTON, (void*)CustomExport, "export", 0, NULL, N_("Move To") }, + { PD_BUTTON, CustomExport, "export", 0, NULL, N_("Move To") }, } ; -static paramGroup_t customPG = { "custmgm", 0, customPLs, sizeof customPLs/sizeof customPLs[0] }; +static paramGroup_t customPG = { "custmgm", 0, customPLs, COUNT( customPLs ) }; typedef struct { @@ -186,8 +171,8 @@ EXPORT FILE * customMgmF; static char custMgmContentsStr[STR_SIZE]; static BOOL_T custMgmProceed; static paramData_t custMgmContentsPLs[] = { - { PD_STRING, custMgmContentsStr, "label", PDO_STRINGLIMITLENGTH, (void*)400, N_("Label"), 0, 0, sizeof(custMgmContentsStr)} }; -static paramGroup_t custMgmContentsPG = { "contents", 0, custMgmContentsPLs, sizeof custMgmContentsPLs/sizeof custMgmContentsPLs[0] }; + { PD_STRING, custMgmContentsStr, "label", PDO_NOTBLANK, I2VP(400), N_("Label"), 0, 0, sizeof(custMgmContentsStr)} }; +static paramGroup_t custMgmContentsPG = { "contents", 0, custMgmContentsPLs, COUNT( custMgmContentsPLs ) }; static void CustMgmContentsOk( void * junk ) { @@ -205,7 +190,6 @@ static int CustomDoExport( wIndex_t selcnt = wListGetSelectedCount( (wList_p)customPLs[0].control ); wIndex_t inx, cnt; custMgmContext_p context = NULL; - char *oldLocale = NULL; assert( fileName != NULL ); assert( files == 1 ); @@ -237,18 +221,18 @@ static int CustomDoExport( return FALSE; } - oldLocale = SaveLocale("C"); + SetCLocale(); if (rc == -1) { - #ifdef WINDOWS + #ifdef UTFCONVERT char *contents = MyStrdup(custMgmContentsStr); contents = Convert2UTF8(contents); fprintf(customMgmF, "CONTENTS %s\n", contents); MyFree(contents); #else fprintf(customMgmF, "CONTENTS %s\n", custMgmContentsStr); - #endif // WINDOWS + #endif // UTFCONVERT } cnt = wListGetCount( (wList_p)customPLs[0].control ); @@ -260,7 +244,7 @@ static int CustomDoExport( if (!context->proc( CUSTMGM_DO_COPYTO, context->data )) { NoticeMessage( MSG_WRITE_FAILURE, _("Ok"), NULL, strerror(errno), fileName[ 0 ] ); fclose( customMgmF ); - RestoreLocale(oldLocale); + SetUserLocale(); return FALSE; } context->proc( CUSTMGM_DO_DELETE, context->data ); @@ -270,7 +254,7 @@ static int CustomDoExport( cnt--; } fclose( customMgmF ); - RestoreLocale(oldLocale); + SetUserLocale(); LoadParamFile( 1, fileName, NULL ); DoChangeNotification( CHANGE_PARAMS ); return TRUE; @@ -288,18 +272,17 @@ static void CustomExport( void * junk ) static void CustomDone( void * action ) { - char *oldLocale = NULL; FILE * f = OpenCustom("w"); if (f == NULL) { wHide( customPG.win ); return; } - oldLocale = SaveLocale("C"); + SetCLocale(); CompoundCustomSave(f); CarCustomSave(f); fclose(f); - RestoreLocale(oldLocale); + SetUserLocale(); wHide( customPG.win ); } |