diff options
Diffstat (limited to 'app/bin/custom.c')
-rw-r--r-- | app/bin/custom.c | 258 |
1 files changed, 258 insertions, 0 deletions
diff --git a/app/bin/custom.c b/app/bin/custom.c new file mode 100644 index 0000000..61338d6 --- /dev/null +++ b/app/bin/custom.c @@ -0,0 +1,258 @@ +#define RENAME_H +/* + * $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/bin/custom.c,v 1.14 2010-01-01 13:24:59 m_fischer Exp $ + */ + +/* XTrkCad - Model Railroad CAD + * Copyright (C) 2005 Dave Bullis + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include <stdlib.h> +#include <stdio.h> +#ifndef WINDOWS +#include <unistd.h> +#include <dirent.h> +#endif +#include <math.h> +#include <ctype.h> +#include <string.h> +#include <time.h> +#ifdef WINDOWS +#include <io.h> +#include <windows.h> +#else +#include <sys/stat.h> +#endif +#include <stdarg.h> +#include <errno.h> + +#include "track.h" +#include "version.h" +#include "common.h" +#include "misc.h" +#include "fileio.h" +#include "cjoin.h" +#include "i18n.h" + +#define Product "XTrackCAD" +#define product "xtrkcad" +#define PRODUCT "XTRKCAD" +#define Version VERSION +#define KEYCODE "x" +#define PARAMKEY (0) + + +char * sProdName = Product; +char * sProdNameLower = product; +char * sProdNameUpper = PRODUCT; + +char * sEnvExtra = PRODUCT "EXTRA"; + +char * sTurnoutDesignerW = NULL; + +char * sAboutProd = NULL; + +char * sCustomF = product ".cus"; +char * sCheckPointF = product ".ckp"; +char * sCheckPoint1F = product ".ck1"; +char * sClipboardF = product ".clp"; +char * sParamQF = product "." KEYCODE "tq"; +char * sUndoF = product ".und"; +char * sAuditF = product ".aud"; + +char * sSourceFilePattern = NULL; +char * sImportFilePattern = NULL; +char * sDXFFilePattern = NULL; +char * sRecordFilePattern = NULL; +char * sNoteFilePattern = NULL; +char * sLogFilePattern = NULL; +char * sPartsListFilePattern = NULL; + +char * sVersion = Version; +int iParamVersion = PARAMVERSION; +int iMinParamVersion = MINPARAMVERSION; +long lParamKey = PARAMKEY; + +extern char *userLocale; + +EXPORT char * MakeWindowTitle( char * name ) +{ + static char title[STR_SHORT_SIZE]; + sprintf( title, "%s", name ); + return title; +} + +static addButtonCallBack_t easementP; + +void InitCmdEasement( void ) +{ + easementP = EasementInit(); +} +void DoEasementRedir( void ) +{ + if (easementP) + easementP(NULL); +} + +#ifdef STRUCTDESIGNER +static addButtonCallBack_t structDesignerP; +void DoStructDesignerRedir( void ) +{ + if (structDesignerP) + structDesignerP(NULL); +} +#endif + +/** + * Initialize track commands + * + * \return always TRUE + */ + +BOOL_T Initialize( void ) +{ + InitTrkCurve(); + InitTrkStraight(); + InitTrkEase(); + InitTrkTurnout(); + InitTrkTurntable(); + InitTrkStruct(); + InitTrkText(); + InitTrkDraw(); + InitTrkNote(); + +#ifdef XTRKCAD_USE_LAYOUTCONTROL + InitTrkBlock(); + InitTrkSwitchMotor(); +#endif + InitCarDlg(); + + memset( message, 0, sizeof message ); + + return TRUE; +} + +/** + * Initialize siome localized strings for filename patterns etc. + */ + +void InitCustom( void ) +{ + char buf[STR_SHORT_SIZE]; + + /* Initialize some localized strings */ + if (sTurnoutDesignerW == NULL) + { + sprintf(buf, _("%s Turnout Designer"), Product); + sTurnoutDesignerW = strdup(buf); + } + if (sAboutProd == NULL) + { + sprintf(buf, _("%s Version %s"), Product, Version); + sAboutProd = strdup(buf); + } + if (sSourceFilePattern == NULL) + { + sprintf(buf, _("%s Files|*.xtc"), Product); + sSourceFilePattern = strdup(buf); + } + if (sImportFilePattern == NULL) + { + sprintf(buf, _("%s Import Files|*.%sti"), Product, KEYCODE); + sImportFilePattern = strdup(buf); + } + if (sDXFFilePattern == NULL) + { + sDXFFilePattern = strdup(_("Data Exchange Format Files|*.dxf")); + } + if (sRecordFilePattern == NULL) + { + sprintf(buf, _("%s Record Files|*.%str"), Product, KEYCODE); + sRecordFilePattern = strdup(buf); + } + if (sNoteFilePattern == NULL) + { + sprintf(buf, _("%s Note Files|*.not"), Product); + sNoteFilePattern = strdup(buf); + } + if (sLogFilePattern == NULL) + { + sprintf(buf, _("%s Log Files|*.log"), Product); + sLogFilePattern = strdup(buf); + } + if (sPartsListFilePattern == NULL) + { + sprintf(buf, _("%s PartsList Files|*.txt"), Product); + sPartsListFilePattern = strdup(buf); + } +} + + +void CleanupCustom( void ) +{ + /* Free dynamically allocated strings */ + if (sTurnoutDesignerW) + { + free(sTurnoutDesignerW); + sTurnoutDesignerW = NULL; + } + if (sAboutProd) + { + free(sAboutProd); + sAboutProd = NULL; + } + if (sSourceFilePattern) + { + free(sSourceFilePattern); + sSourceFilePattern = NULL; + } + if (sImportFilePattern) + { + free(sImportFilePattern); + sImportFilePattern = NULL; + } + if (sDXFFilePattern) + { + free(sDXFFilePattern); + sDXFFilePattern = NULL; + } + if (sRecordFilePattern) + { + free(sRecordFilePattern); + sRecordFilePattern = NULL; + } + if (sNoteFilePattern) + { + free(sNoteFilePattern); + sNoteFilePattern = NULL; + } + if (sLogFilePattern) + { + free(sLogFilePattern); + sLogFilePattern = NULL; + } + if (sPartsListFilePattern) + { + free(sPartsListFilePattern); + sPartsListFilePattern = NULL; + } + if (userLocale) + { + free(userLocale); + userLocale = NULL; + } +} |