diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2024-11-14 19:35:45 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2024-11-14 19:35:45 +0100 |
commit | df5520aa2dae5b3ce7abf8733dcdd152898af163 (patch) | |
tree | 00d3047bfb14f682bfb5a21010c731ed649bfed7 /app/bin/doption.c | |
parent | df247efec654e512242e4f4f1b0212034f9e01fe (diff) | |
parent | ec3c0f6f6e7153fa797dc57a0e95779cbc63a23b (diff) |
Merge branch 'release/debian/1_5.3.0GA-1'debian/1_5.3.0GA-1
Diffstat (limited to 'app/bin/doption.c')
-rw-r--r-- | app/bin/doption.c | 375 |
1 files changed, 205 insertions, 170 deletions
diff --git a/app/bin/doption.c b/app/bin/doption.c index 3b9ed02..28010d4 100644 --- a/app/bin/doption.c +++ b/app/bin/doption.c @@ -17,23 +17,22 @@ * * 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. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include <ctype.h> - #include "ccurve.h" #include "cselect.h" #include "custom.h" -#include "i18n.h" -#include "messages.h" #include "param.h" #include "track.h" +#include "common-ui.h" +#include "ctrain.h" -static paramIntegerRange_t i0_64 = { 0, 64 }; -static paramIntegerRange_t i1_64 = { 1, 64 }; +//static paramIntegerRange_t i1_64 = { 1, 64 }; static paramIntegerRange_t i1_100 = { 1, 100 }; +static paramIntegerRange_t i0_256 = { 0, 256 }; static paramIntegerRange_t i1_256 = { 1, 256 }; +static paramIntegerRange_t i1_1024 = { 1, 1024 }; static paramIntegerRange_t i0_10000 = { 0, 10000 }; static paramIntegerRange_t i0_99 = { 0, 99}; static paramIntegerRange_t i1_1000 = { 1, 1000 }; @@ -61,8 +60,9 @@ long GetChanges( paramGroup_p pg ) long changed; int inx; for ( changed=ParamUpdate(pg),inx=0,changes=0; changed; changed>>=1,inx++ ) { - if ( changed&1 ) - changes |= (long)pg->paramPtr[inx].context; + if ( changed&1 ) { + changes |= VP2L(pg->paramPtr[inx].context); + } } return changes; } @@ -71,48 +71,10 @@ static paramGroup_t prefPG; -static void OptionDlgUpdate( - paramGroup_p pg, - int inx, - void * valueP ) -{ - if ( inx < 0 ) return; - if ( pg->paramPtr[inx].valueP == &enableBalloonHelp ) { - wEnableBalloonHelp((wBool_t)*(long*)valueP); - } else { - if (pg->paramPtr[inx].valueP == &units) { - UpdatePrefD(); - } - if (pg->paramPtr[inx].valueP == &distanceFormatInx) { - UpdateMeasureFmt(); - } - if (pg->paramPtr[inx].valueP == &showFlexTrack) { - DoChangeNotification(CHANGE_PARAMS|CHANGE_TOOLBAR); - } - if (pg->paramPtr[inx].valueP == &checkPtInterval) { - checkPtInterval = *(long *)valueP; - if (checkPtInterval == 0 ) { - wControlSetBalloon( pg->paramPtr[inx].control, 0, -5, _("Turning off AutoSave") ); - UpdateAutoSaveInterval(0); - } else { - wControlSetBalloon( pg->paramPtr[inx].control, 0, -5, NULL ); - } - } - if (pg->paramPtr[inx].valueP == &autosaveChkPoints) { - autosaveChkPoints = *(long *)valueP; - if (checkPtInterval == 0 && autosaveChkPoints>0 ) { - wControlSetBalloon( pg->paramPtr[inx].control, 0, -5, _("Turning on CheckPointing") ); - UpdateChkPtInterval(10); - } else { - wControlSetBalloon( pg->paramPtr[inx].control, 0, -5, NULL ); - } - } - } -} static void OptionDlgCancel( - wWin_p win ) + wWin_p win ) { wEnableBalloonHelp( (int)enableBalloonHelp ); wHide( win ); @@ -141,37 +103,37 @@ static char * colorDrawLabels[] = { N_("Object"), N_("Layer"), NULL }; static char * liveMapLabels[] = { N_("Live Map"), NULL }; static char * hideTrainsInTunnelsLabels[] = { N_("Hide Trains On Hidden Track"), NULL }; static char * constrainMainLabels[] = {N_("Constrain Drawing Area to Room boundaries"), NULL}; - -extern long trainPause; - +static char * dontHideLabels[] = {N_("Don't Hide System Cursor when program cursor is active"), NULL}; static paramData_t displayPLs[] = { - { PD_RADIO, &colorTrack, "color-track", PDO_NOPSHUPD|PDO_DRAW, colorTrackLabels, N_("Color Track"), BC_HORZ, (void*)(CHANGE_MAIN) }, - { PD_RADIO, &colorDraw, "color-draw", PDO_NOPSHUPD|PDO_DRAW, colorDrawLabels, N_("Color Draw"), BC_HORZ, (void*)(CHANGE_MAIN) }, - { PD_RADIO, &drawTunnel, "tunnels", PDO_NOPSHUPD|PDO_DRAW, drawTunnelLabels, N_("Draw Tunnel"), BC_HORZ, (void*)(CHANGE_MAIN) }, - { PD_RADIO, &drawEndPtV, "endpt", PDO_NOPSHUPD|PDO_DRAW, drawEndPtLabels3, N_("Draw EndPts"), BC_HORZ, (void*)(CHANGE_MAIN) }, - { PD_RADIO, &drawUnconnectedEndPt, "unconnected-endpt", PDO_NOPSHUPD|PDO_DRAW, drawEndPtUnconnectedSize, N_("Draw Unconnected EndPts"), BC_HORZ, (void*)(CHANGE_MAIN) }, - { PD_RADIO, &tieDrawMode, "tiedraw", PDO_NOPSHUPD|PDO_DRAW, tiedrawLabels, N_("Draw Ties"), BC_HORZ, (void*)(CHANGE_MAIN) }, - { PD_RADIO, ¢erDrawMode, "centerdraw", PDO_NOPSHUPD|PDO_DRAW, drawCenterCircle, N_("Draw Centers"), BC_HORZ, (void*)(CHANGE_MAIN | CHANGE_MAP) }, - { PD_LONG, &twoRailScale, "tworailscale", PDO_NOPSHUPD, &i1_64, N_("Two Rail Scale"), 0, (void*)(CHANGE_MAIN) }, - { PD_LONG, &mapScale, "mapscale", PDO_NOPSHUPD, &i1_256, N_("Map Scale"), 0, (void*)(CHANGE_MAP) }, + { PD_RADIO, &colorTrack, "color-track", PDO_NOPSHUPD|PDO_DRAW, colorTrackLabels, N_("Color Track"), BC_HORZ, I2VP(CHANGE_MAIN) }, + { PD_RADIO, &colorDraw, "color-draw", PDO_NOPSHUPD|PDO_DRAW, colorDrawLabels, N_("Color Draw"), BC_HORZ, I2VP(CHANGE_MAIN) }, + { PD_RADIO, &drawTunnel, "tunnels", PDO_NOPSHUPD|PDO_DRAW, drawTunnelLabels, N_("Draw Tunnel"), BC_HORZ, I2VP(CHANGE_MAIN) }, + { PD_RADIO, &drawEndPtV, "endpt", PDO_NOPSHUPD|PDO_DRAW, drawEndPtLabels3, N_("Draw EndPts"), BC_HORZ, I2VP(CHANGE_MAIN) }, + { PD_RADIO, &drawUnconnectedEndPt, "unconnected-endpt", PDO_NOPSHUPD|PDO_DRAW, drawEndPtUnconnectedSize, N_("Draw Unconnected EndPts"), BC_HORZ, I2VP(CHANGE_MAIN) }, + { PD_RADIO, &tieDrawMode, "tiedraw", PDO_NOPSHUPD|PDO_DRAW, tiedrawLabels, N_("Draw Ties"), BC_HORZ, I2VP(CHANGE_MAIN) }, + { PD_RADIO, ¢erDrawMode, "centerdraw", PDO_NOPSHUPD|PDO_DRAW, drawCenterCircle, N_("Draw Centers"), BC_HORZ, I2VP(CHANGE_MAIN | CHANGE_MAP) }, + { PD_LONG, &twoRailScale, "tworailscale", PDO_NOPSHUPD, &i1_256, N_("Two Rail Scale"), 0, I2VP(CHANGE_MAIN) }, + { PD_FLOAT, &mapD.scale, "mapscale", PDO_NOPSHUPD, &r1_1000, N_("Map Scale"), 0, I2VP(CHANGE_MAP) }, + { PD_TOGGLE, &dontHideCursor, "donthidecursor", PDO_NOPSHUPD, dontHideLabels, "", BC_HORZ }, { PD_TOGGLE, &constrainMain, "constrainmain", PDO_NOPSHUPD, constrainMainLabels, "", BC_HORZ }, { PD_TOGGLE, &liveMap, "livemap", PDO_NOPSHUPD, liveMapLabels, "", BC_HORZ }, { PD_TOGGLE, &autoPan, "autoPan", PDO_NOPSHUPD, autoPanLabels, "", BC_HORZ }, - { PD_TOGGLE, &labelEnable, "labelenable", PDO_NOPSHUPD, labelEnableLabels, N_("Label Enable"), 0, (void*)(CHANGE_MAIN) }, - { PD_LONG, &labelScale, "labelscale", PDO_NOPSHUPD, &i0_64, N_("Label Scale"), 0, (void*)(CHANGE_MAIN) }, - { PD_LONG, &descriptionFontSize, "description-fontsize", PDO_NOPSHUPD, &i1_1000, N_("Label Font Size"), 0, (void*)(CHANGE_MAIN) }, - { PD_TOGGLE, &hotBarLabels, "hotbarlabels", PDO_NOPSHUPD, hotBarLabelsLabels, N_("Hot Bar Labels"), BC_HORZ, (void*)(CHANGE_TOOLBAR) }, - { PD_TOGGLE, &layoutLabels, "layoutlabels", PDO_NOPSHUPD, listLabelsLabels, N_("Layout Labels"), BC_HORZ, (void*)(CHANGE_MAIN) }, - { PD_TOGGLE, &listLabels, "listlabels", PDO_NOPSHUPD, listLabelsLabels, N_("List Labels"), BC_HORZ, (void*)(CHANGE_PARAMS) }, -/* ATTENTION: update the define below if you add entries above */ -#define I_HOTBARLABELS (18) - { PD_DROPLIST, &carHotbarModeInx, "carhotbarlabels", PDO_NOPSHUPD|PDO_DLGUNDERCMDBUTT|PDO_LISTINDEX, (void*)250, N_("Car Labels"), 0, (void*)CHANGE_SCALE }, - { PD_LONG, &trainPause, "trainpause", PDO_NOPSHUPD, &i10_1000 , N_("Train Update Delay"), 0, 0 }, +#define labelSelect (13) + { PD_TOGGLE, &labelEnable, "labelenable", PDO_NOPSHUPD, labelEnableLabels, N_("Label Enable"), 0, I2VP(CHANGE_MAIN) }, + { PD_LONG, &labelScale, "labelscale", PDO_NOPSHUPD, &i0_256, N_("Label Scale"), 0, I2VP(CHANGE_MAIN) }, + { PD_LONG, &descriptionFontSize, "description-fontsize", PDO_NOPSHUPD, &i1_1000, N_("Label Font Size"), 0, I2VP(CHANGE_MAIN) }, + { PD_TOGGLE, &hotBarLabels, "hotbarlabels", PDO_NOPSHUPD, hotBarLabelsLabels, N_("Hot Bar Labels"), BC_HORZ, I2VP(CHANGE_TOOLBAR) }, + { PD_TOGGLE, &layoutLabels, "layoutlabels", PDO_NOPSHUPD, listLabelsLabels, N_("Layout Labels"), BC_HORZ, I2VP(CHANGE_MAIN) }, + { PD_TOGGLE, &listLabels, "listlabels", PDO_NOPSHUPD, listLabelsLabels, N_("List Labels"), BC_HORZ, I2VP(CHANGE_PARAMS) }, + /* ATTENTION: update the define below if you add entries above */ +#define I_HOTBARLABELS (19) + { PD_DROPLIST, &carHotbarModeInx, "carhotbarlabels", PDO_NOPSHUPD|PDO_DLGUNDERCMDBUTT|PDO_LISTINDEX, I2VP(250), N_("Car Labels"), 0, I2VP(CHANGE_SCALE) }, + { PD_LONG, &trainPause, "trainpause", PDO_NOPSHUPD, &i10_1000, N_("Train Update Delay"), 0, 0 }, { PD_TOGGLE, &hideTrainsInTunnels, "hideTrainsInTunnels", PDO_NOPSHUPD, hideTrainsInTunnelsLabels, "", BC_HORZ } - }; -static paramGroup_t displayPG = { "display", PGO_RECORD|PGO_PREFMISC, displayPLs, sizeof displayPLs/sizeof displayPLs[0] }; +}; +static paramGroup_t displayPG = { "display", PGO_RECORD|PGO_PREFMISC, displayPLs, COUNT( displayPLs ) }; static void DisplayOk( void * junk ) @@ -183,27 +145,75 @@ static void DisplayOk( void * junk ) } -#ifdef LATER -static void DisplayChange( long changes ) +static void OptionDlgUpdate( + paramGroup_p pg, + int inx, + void * valueP ) { - if (changes & (CHANGE_SCALE|CHANGE_UNITS)) - if (displayW != NULL && wWinIsVisible(displayW) ) - ParamLoadControls( &displayPG ); -} -#endif + if ( inx < 0 ) { return; } + if ( pg->paramPtr[inx].valueP == &enableBalloonHelp ) { + wEnableBalloonHelp((wBool_t)*(long*)valueP); + } else { + if (pg->paramPtr[inx].valueP == &labelEnable) { + long new_labels = wRadioGetValue( (wChoice_p)pg->paramPtr[inx].control ); + labelEnable = new_labels; + ParamLoadControl(&displayPG,labelSelect); + } + if (pg->paramPtr[inx].valueP == &units) { + UpdatePrefD(); + } + if (pg->paramPtr[inx].valueP == &distanceFormatInx) { + UpdateMeasureFmt(); + } + if (pg->paramPtr[inx].valueP == &showFlexTrack) { + DoChangeNotification(CHANGE_PARAMS|CHANGE_TOOLBAR); + } + if (pg->paramPtr[inx].valueP == &checkPtInterval) { + checkPtInterval = *(long *)valueP; + if (checkPtInterval == 0 ) { + wWinPix_t h = wControlGetHeight(pg->paramPtr[inx].control); + wControlSetBalloon( pg->paramPtr[inx].control, 0, h*3/4, + _("Turning off AutoSave") ); + UpdateAutoSaveInterval(0); + } else { + wControlSetBalloon( pg->paramPtr[inx].control, 0, 0, NULL ); + } + } + if (pg->paramPtr[inx].valueP == &autosaveChkPoints) { + autosaveChkPoints = *(long *)valueP; + if (checkPtInterval == 0 && autosaveChkPoints>0 ) { + wWinPix_t h = wControlGetHeight(pg->paramPtr[inx].control); + wControlSetBalloon( pg->paramPtr[inx].control, 0, -h*3/4, + _("Turning on CheckPointing") ); + UpdateChkPtInterval(10); + } else { + wControlSetBalloon( pg->paramPtr[inx].control, 0, 0, NULL ); + } + + } + } +} static void DoDisplay( void * junk ) { if (displayW == NULL) { - displayW = ParamCreateDialog( &displayPG, MakeWindowTitle(_("Display Options")), _("Ok"), DisplayOk, OptionDlgCancel, TRUE, NULL, 0, OptionDlgUpdate ); - wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, _("Proto"), NULL, (void*)0x0002 ); - wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, _("Proto/Manuf"), NULL, (void*)0x0012 ); - wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, _("Proto/Manuf/Part Number"), NULL, (void*)0x0312 ); - wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, _("Proto/Manuf/Partno/Item"), NULL, (void*)0x4312 ); - wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, _("Manuf/Proto"), NULL, (void*)0x0021 ); - wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, _("Manuf/Proto/Part Number"), NULL, (void*)0x0321 ); - wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, _("Manuf/Proto/Partno/Item"), NULL, (void*)0x4321 ); + displayW = ParamCreateDialog( &displayPG, MakeWindowTitle(_("Display Options")), + _("Ok"), DisplayOk, OptionDlgCancel, TRUE, NULL, 0, OptionDlgUpdate ); + wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, _("Proto"), NULL, + I2VP(0x0002) ); + wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, _("Proto/Manuf"), + NULL, I2VP(0x0012) ); + wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, + _("Proto/Manuf/Part Number"), NULL, I2VP(0x0312) ); + wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, + _("Proto/Manuf/Partno/Item"), NULL, I2VP(0x4312) ); + wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, _("Manuf/Proto"), + NULL, I2VP(0x0021) ); + wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, + _("Manuf/Proto/Part Number"), NULL, I2VP(0x0321) ); + wListAddValue( (wList_p)displayPLs[I_HOTBARLABELS].control, + _("Manuf/Proto/Partno/Item"), NULL, I2VP(0x4321) ); } ParamLoadControls( &displayPG ); @@ -241,7 +251,7 @@ static char * hideSelectionWindowLabels[] = { N_("Hide"), NULL }; #endif static char * rightClickLabels[] = {N_("Normal: Command List, Shift: Command Options"), N_("Normal: Command Options, Shift: Command List"), NULL }; -EXPORT paramData_t cmdoptPLs[] = { +static paramData_t cmdoptPLs[] = { { PD_RADIO, &preSelect, "preselect", PDO_NOPSHUPD, preSelectLabels, N_("Default Command"), BC_HORZ }, #ifdef HIDESELECTIONWINDOW { PD_TOGGLE, &hideSelectionWindow, PDO_NOPSHUPD, hideSelectionWindowLabels, N_("Hide Selection Window"), BC_HORZ }, @@ -249,8 +259,8 @@ EXPORT paramData_t cmdoptPLs[] = { { PD_RADIO, &rightClickMode, "rightclickmode", PDO_NOPSHUPD, rightClickLabels, N_("Right Click"), 0 }, { PD_RADIO, &selectMode, "selectmode", PDO_NOPSHUPD, selectLabels, N_("Select Mode"), 0}, { PD_TOGGLE, &selectZero, "selectzero", PDO_NOPSHUPD, selectZeroLabels, "", 0 } - }; -static paramGroup_t cmdoptPG = { "cmdopt", PGO_RECORD|PGO_PREFMISC, cmdoptPLs, sizeof cmdoptPLs/sizeof cmdoptPLs[0] }; +}; +static paramGroup_t cmdoptPG = { "cmdopt", PGO_RECORD|PGO_PREFMISC, cmdoptPLs, COUNT( cmdoptPLs ) }; static void CmdoptOk( void * junk ) { @@ -264,15 +274,17 @@ static void CmdoptOk( void * junk ) static void CmdoptChange( long changes ) { if (changes & CHANGE_CMDOPT) - if (cmdoptW != NULL && wWinIsVisible(cmdoptW) ) + if (cmdoptW != NULL && wWinIsVisible(cmdoptW) ) { ParamLoadControls( &cmdoptPG ); + } } static void DoCmdopt( void * junk ) { if (cmdoptW == NULL) { - cmdoptW = ParamCreateDialog( &cmdoptPG, MakeWindowTitle(_("Command Options")), _("Ok"), CmdoptOk, OptionDlgCancel, TRUE, NULL, 0, OptionDlgUpdate ); + cmdoptW = ParamCreateDialog( &cmdoptPG, MakeWindowTitle(_("Command Options")), + _("Ok"), CmdoptOk, OptionDlgCancel, TRUE, NULL, 0, OptionDlgUpdate ); } ParamLoadControls( &cmdoptPG ); wShow( cmdoptW ); @@ -295,6 +307,7 @@ EXPORT addButtonCallBack_t CmdoptInit( void ) static wWin_p prefW; static long displayUnits; +static char * iconSizeLabels[] = { N_("16 px"), N_("24 px"), N_("32 px"), NULL }; static char * unitsLabels[] = { N_("English"), N_("Metric"), NULL }; static char * angleSystemLabels[] = { N_("Polar"), N_("Cartesian"), NULL }; static char * enableBalloonHelpLabels[] = { N_("Balloon Help"), NULL }; @@ -302,10 +315,12 @@ static char * enableFlexTrackLabels[] = { N_("Show FlexTrack in HotBar"), NULL } static char * startOptions[] = { N_("Load Last Layout"), N_("Start New Layout"), NULL }; static paramData_t prefPLs[] = { + { PD_RADIO, &iconSize, "iconsize", PDO_NOPSHUPD, iconSizeLabels, N_("Icon Size"), BC_HORZ, I2VP(CHANGE_ICONSIZE) }, { PD_RADIO, &angleSystem, "anglesystem", PDO_NOPSHUPD, angleSystemLabels, N_("Angles"), BC_HORZ }, - { PD_RADIO, &units, "units", PDO_NOPSHUPD|PDO_NOUPDACT, unitsLabels, N_("Units"), BC_HORZ, (void*)(CHANGE_MAIN|CHANGE_UNITS) }, -#define I_DSTFMT (2) - { PD_DROPLIST, &distanceFormatInx, "dstfmt", PDO_DIM|PDO_NOPSHUPD|PDO_LISTINDEX, (void*)150, N_("Length Format"), 0, (void*)(CHANGE_MAIN|CHANGE_UNITS) }, +#define I_UNITS (2) + { PD_RADIO, &units, "units", PDO_NOPSHUPD|PDO_NOUPDACT, unitsLabels, N_("Units"), BC_HORZ, I2VP(CHANGE_MAIN|CHANGE_UNITS) }, +#define I_DSTFMT (3) + { PD_DROPLIST, &distanceFormatInx, "dstfmt", PDO_DIM|PDO_NOPSHUPD|PDO_LISTINDEX, I2VP(150), N_("Length Format"), 0, I2VP(CHANGE_MAIN|CHANGE_UNITS) }, { PD_FLOAT, &minLength, "minlength", PDO_DIM|PDO_SMALLDIM|PDO_NOPSHUPD, &r0o1_1, N_("Min Track Length") }, { PD_FLOAT, &connectDistance, "connectdistance", PDO_DIM|PDO_SMALLDIM|PDO_NOPSHUPD, &r0o1_1, N_("Connection Distance"), }, { PD_FLOAT, &connectAngle, "connectangle", PDO_NOPSHUPD, &r1_10, N_("Connection Angle") }, @@ -316,59 +331,61 @@ static paramData_t prefPLs[] = { { PD_LONG, &dragPixels, "dragpixels", PDO_NOPSHUPD|PDO_DRAW, &i1_1000, N_("Drag Distance") }, { PD_LONG, &dragTimeout, "dragtimeout", PDO_NOPSHUPD|PDO_DRAW, &i1_1000, N_("Drag Timeout") }, { PD_LONG, &minGridSpacing, "mingridspacing", PDO_NOPSHUPD|PDO_DRAW, &i1_100, N_("Min Grid Spacing"), 0, 0 }, -#define I_CHKPT (13) +#define I_CHKPT (14) { PD_LONG, &checkPtInterval, "checkpoint", PDO_NOPSHUPD|PDO_FILE, &i0_10000, N_("Check Point Frequency") }, -#define I_AUTOSAVE (14) +#define I_AUTOSAVE (15) { PD_LONG, &autosaveChkPoints, "autosave", PDO_NOPSHUPD|PDO_FILE, &i0_99, N_("Autosave Checkpoint Frequency") }, { PD_RADIO, &onStartup, "onstartup", PDO_NOPSHUPD, startOptions, N_("On Program Startup"), 0, NULL } - }; -static paramGroup_t prefPG = { "pref", PGO_RECORD|PGO_PREFMISC, prefPLs, sizeof prefPLs/sizeof prefPLs[0] }; +}; +static paramGroup_t prefPG = { "pref", PGO_RECORD|PGO_PREFMISC, prefPLs, COUNT( prefPLs ) }; typedef struct { - char * name; - long fmt; - } dstFmts_t; + char * name; + long fmt; +} dstFmts_t; static dstFmts_t englishDstFmts[] = { - { N_("999.999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|3 }, - { N_("999.999999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|6 }, - { N_("999.99999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|5 }, - { N_("999.9999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|4 }, - { N_("999.999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|3 }, - { N_("999.99"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|2 }, - { N_("999.9"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|1 }, - { N_("999 7/8"), DISTFMT_FMT_NONE|DISTFMT_FRACT_FRC|3 }, - { N_("999 63/64"), DISTFMT_FMT_NONE|DISTFMT_FRACT_FRC|6 }, - { N_("999' 11.999\""), DISTFMT_FMT_SHRT|DISTFMT_FRACT_NUM|3 }, - { N_("999' 11.99\""), DISTFMT_FMT_SHRT|DISTFMT_FRACT_NUM|2 }, - { N_("999' 11.9\""), DISTFMT_FMT_SHRT|DISTFMT_FRACT_NUM|1 }, - { N_("999' 11 7/8\""), DISTFMT_FMT_SHRT|DISTFMT_FRACT_FRC|3 }, - { N_("999' 11 63/64\""), DISTFMT_FMT_SHRT|DISTFMT_FRACT_FRC|6 }, - { N_("999ft 11.999in"), DISTFMT_FMT_LONG|DISTFMT_FRACT_NUM|3 }, - { N_("999ft 11.99in"), DISTFMT_FMT_LONG|DISTFMT_FRACT_NUM|2 }, - { N_("999ft 11.9in"), DISTFMT_FMT_LONG|DISTFMT_FRACT_NUM|1 }, - { N_("999ft 11 7/8in"), DISTFMT_FMT_LONG|DISTFMT_FRACT_FRC|3 }, - { N_("999ft 11 63/64in"), DISTFMT_FMT_LONG|DISTFMT_FRACT_FRC|6 }, - { NULL, 0 } }; + { N_("999.999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|3 }, + { N_("999.999999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|6 }, + { N_("999.99999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|5 }, + { N_("999.9999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|4 }, + { N_("999.999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|3 }, + { N_("999.99"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|2 }, + { N_("999.9"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|1 }, + { N_("999 7/8"), DISTFMT_FMT_NONE|DISTFMT_FRACT_FRC|3 }, + { N_("999 63/64"), DISTFMT_FMT_NONE|DISTFMT_FRACT_FRC|6 }, + { N_("999' 11.999\""), DISTFMT_FMT_SHRT|DISTFMT_FRACT_NUM|3 }, + { N_("999' 11.99\""), DISTFMT_FMT_SHRT|DISTFMT_FRACT_NUM|2 }, + { N_("999' 11.9\""), DISTFMT_FMT_SHRT|DISTFMT_FRACT_NUM|1 }, + { N_("999' 11 7/8\""), DISTFMT_FMT_SHRT|DISTFMT_FRACT_FRC|3 }, + { N_("999' 11 63/64\""), DISTFMT_FMT_SHRT|DISTFMT_FRACT_FRC|6 }, + { N_("999ft 11.999in"), DISTFMT_FMT_LONG|DISTFMT_FRACT_NUM|3 }, + { N_("999ft 11.99in"), DISTFMT_FMT_LONG|DISTFMT_FRACT_NUM|2 }, + { N_("999ft 11.9in"), DISTFMT_FMT_LONG|DISTFMT_FRACT_NUM|1 }, + { N_("999ft 11 7/8in"), DISTFMT_FMT_LONG|DISTFMT_FRACT_FRC|3 }, + { N_("999ft 11 63/64in"), DISTFMT_FMT_LONG|DISTFMT_FRACT_FRC|6 }, + { NULL, 0 } +}; static dstFmts_t metricDstFmts[] = { - { N_("999.999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|3 }, - { N_("999.99"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|2 }, - { N_("999.9"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|1 }, - { N_("999.999mm"), DISTFMT_FMT_MM|DISTFMT_FRACT_NUM|3 }, - { N_("999.99mm"), DISTFMT_FMT_MM|DISTFMT_FRACT_NUM|2 }, - { N_("999.9mm"), DISTFMT_FMT_MM|DISTFMT_FRACT_NUM|1 }, - { N_("999.999cm"), DISTFMT_FMT_CM|DISTFMT_FRACT_NUM|3 }, - { N_("999.99cm"), DISTFMT_FMT_CM|DISTFMT_FRACT_NUM|2 }, - { N_("999.9cm"), DISTFMT_FMT_CM|DISTFMT_FRACT_NUM|1 }, - { N_("999.999m"), DISTFMT_FMT_M|DISTFMT_FRACT_NUM|3 }, - { N_("999.99m"), DISTFMT_FMT_M|DISTFMT_FRACT_NUM|2 }, - { N_("999.9m"), DISTFMT_FMT_M|DISTFMT_FRACT_NUM|1 }, - { NULL, 0 }, - { NULL, 0 }, - { NULL, 0 }, - { NULL, 0 }, - { NULL, 0 }, - { NULL, 0 } }; + { N_("999.999"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|3 }, + { N_("999.99"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|2 }, + { N_("999.9"), DISTFMT_FMT_NONE|DISTFMT_FRACT_NUM|1 }, + { N_("999.999mm"), DISTFMT_FMT_MM|DISTFMT_FRACT_NUM|3 }, + { N_("999.99mm"), DISTFMT_FMT_MM|DISTFMT_FRACT_NUM|2 }, + { N_("999.9mm"), DISTFMT_FMT_MM|DISTFMT_FRACT_NUM|1 }, + { N_("999.999cm"), DISTFMT_FMT_CM|DISTFMT_FRACT_NUM|3 }, + { N_("999.99cm"), DISTFMT_FMT_CM|DISTFMT_FRACT_NUM|2 }, + { N_("999.9cm"), DISTFMT_FMT_CM|DISTFMT_FRACT_NUM|1 }, + { N_("999.999m"), DISTFMT_FMT_M|DISTFMT_FRACT_NUM|3 }, + { N_("999.99m"), DISTFMT_FMT_M|DISTFMT_FRACT_NUM|2 }, + { N_("999.9m"), DISTFMT_FMT_M|DISTFMT_FRACT_NUM|1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 } +}; static dstFmts_t *dstFmts[] = { englishDstFmts, metricDstFmts }; void UpdateAutoSaveInterval(long value) @@ -387,19 +404,21 @@ void UpdateChkPtInterval(long value) /** * Load the selection list for number formats with the appropriate list of variants. - */ - + */ + static void LoadDstFmtList( void ) { int inx; wListClear( (wList_p)prefPLs[I_DSTFMT].control ); - for ( inx=0; dstFmts[units][inx].name; inx++ ) - wListAddValue( (wList_p)prefPLs[I_DSTFMT].control, _(dstFmts[units][inx].name), NULL, (void*)dstFmts[units][inx].fmt ); + for ( inx=0; dstFmts[units][inx].name; inx++ ) { + wListAddValue( (wList_p)prefPLs[I_DSTFMT].control, _(dstFmts[units][inx].name), + NULL, I2VP(dstFmts[units][inx].fmt) ); + } } /** -* Handle changing of measurement system. The list of number formats is loaded -* and the first entry is selected as default value. +* Handle changing of measurement system. The list of number formats is loaded +* and the first entry is selected as default value. */ static void UpdatePrefD( void ) @@ -407,16 +426,18 @@ static void UpdatePrefD( void ) long newUnits, oldUnits; int inx; - if ( prefW==NULL || (!wWinIsVisible(prefW)) || prefPLs[1].control==NULL ) + if ( prefW==NULL || (!wWinIsVisible(prefW)) + || prefPLs[I_UNITS].control==NULL ) { return; - newUnits = wRadioGetValue( (wChoice_p)prefPLs[1].control ); + } + newUnits = wRadioGetValue( (wChoice_p)prefPLs[I_UNITS].control ); if (newUnits != displayUnits) { oldUnits = units; units = newUnits; LoadDstFmtList(); distanceFormatInx = 0; - for (inx = 0; inx < sizeof prefPLs / sizeof prefPLs[0]; inx++) { + for (inx = 0; inx < COUNT( prefPLs ); inx++) { if ((prefPLs[inx].option&PDO_DIM)) { ParamLoadControl(&prefPG, inx); } @@ -434,12 +455,12 @@ static void UpdatePrefD( void ) static void UpdateMeasureFmt() { - int inx; + int inx; distanceFormatInx = wListGetIndex((wList_p)prefPLs[I_DSTFMT].control); - units = wRadioGetValue((wChoice_p)prefPLs[1].control); + units = wRadioGetValue((wChoice_p)prefPLs[I_UNITS].control); - for (inx = 0; inx < sizeof prefPLs / sizeof prefPLs[0]; inx++) { + for (inx = 0; inx < COUNT( prefPLs ); inx++) { if ((prefPLs[inx].option&PDO_DIM)) { ParamLoadControl(&prefPG, inx); } @@ -479,6 +500,9 @@ static void PrefOk( void * junk ) NoticeMessage2( 0, MSG_CONN_PARAMS_TOO_BIG, _("Ok"), NULL ) ; } + if(changes & CHANGE_ICONSIZE) { + NoticeMessage( MSG_ICON_SIZE_RESTART, _("Ok"), NULL ) ; + } wHide( prefW ); DoChangeNotification(changes); @@ -489,7 +513,8 @@ static void PrefOk( void * junk ) static void DoPref( void * junk ) { if (prefW == NULL) { - prefW = ParamCreateDialog( &prefPG, MakeWindowTitle(_("Preferences")), _("Ok"), PrefOk, wHide, TRUE, NULL, 0, OptionDlgUpdate ); + prefW = ParamCreateDialog( &prefPG, MakeWindowTitle(_("Preferences")), _("Ok"), + PrefOk, wHide, TRUE, NULL, 0, OptionDlgUpdate ); LoadDstFmtList(); } ParamLoadControls( &prefPG ); @@ -501,21 +526,25 @@ static void DoPref( void * junk ) EXPORT addButtonCallBack_t PrefInit( void ) { ParamRegister( &prefPG ); - if (connectAngle < 1.0) + if (connectAngle < 1.0) { connectAngle = 1.0; - if (connectDistance < 0.1) + } + if (connectDistance < 0.1) { connectDistance = 0.1; - if (minLength < 0.1) + } + if (minLength < 0.1) { minLength = 0.1; + } return &DoPref; } EXPORT long GetDistanceFormat( void ) { - while ( dstFmts[units][distanceFormatInx].name == NULL ) + while ( dstFmts[units][distanceFormatInx].name == NULL ) { distanceFormatInx--; - return dstFmts[units][distanceFormatInx].fmt; + } + return dstFmts[units][distanceFormatInx].fmt; } /***************************************************************************** @@ -527,17 +556,20 @@ EXPORT long GetDistanceFormat( void ) static wWin_p colorW; static paramData_t colorPLs[] = { - { PD_COLORLIST, &snapGridColor, "snapgrid", PDO_NOPSHUPD, NULL, N_("Snap Grid"), 0, (void*)(CHANGE_GRID) }, - { PD_COLORLIST, &markerColor, "marker", PDO_NOPSHUPD, NULL, N_("Marker"), 0, (void*)(CHANGE_GRID) }, - { PD_COLORLIST, &borderColor, "border", PDO_NOPSHUPD, NULL, N_("Border"), 0, (void*)(CHANGE_MAIN) }, + { PD_COLORLIST, &snapGridColor, "snapgrid", PDO_NOPSHUPD, NULL, N_("Snap Grid"), 0, I2VP(CHANGE_GRID) }, + { PD_COLORLIST, &markerColor, "marker", PDO_NOPSHUPD, NULL, N_("Marker"), 0, I2VP(CHANGE_GRID) }, + { PD_COLORLIST, &borderColor, "border", PDO_NOPSHUPD, NULL, N_("Border"), 0, I2VP(CHANGE_MAIN) }, { PD_COLORLIST, &crossMajorColor, "crossmajor", PDO_NOPSHUPD, NULL, N_("Primary Axis"), 0, 0 }, { PD_COLORLIST, &crossMinorColor, "crossminor", PDO_NOPSHUPD, NULL, N_("Secondary Axis"), 0, 0 }, - { PD_COLORLIST, &normalColor, "normal", PDO_NOPSHUPD, NULL, N_("Normal Track"), 0, (void*)(CHANGE_MAIN|CHANGE_PARAMS) }, - { PD_COLORLIST, &selectedColor, "selected", PDO_NOPSHUPD, NULL, N_("Selected Track"), 0, (void*)(CHANGE_MAIN) }, - { PD_COLORLIST, &profilePathColor, "profile", PDO_NOPSHUPD, NULL, N_("Profile Path"), 0, (void*)(CHANGE_MAIN) }, - { PD_COLORLIST, &exceptionColor, "exception", PDO_NOPSHUPD, NULL, N_("Exception Track"), 0, (void*)(CHANGE_MAIN) }, - { PD_COLORLIST, &tieColor, "tie", PDO_NOPSHUPD, NULL, N_("Track Ties"), 0, (void*)(CHANGE_MAIN) } }; -static paramGroup_t colorPG = { "rgbcolor", PGO_RECORD|PGO_PREFGROUP, colorPLs, sizeof colorPLs/sizeof colorPLs[0] }; + { PD_COLORLIST, &normalColor, "normal", PDO_NOPSHUPD, NULL, N_("Normal Track"), 0, I2VP(CHANGE_MAIN|CHANGE_PARAMS) }, + { PD_COLORLIST, &selectedColor, "selected", PDO_NOPSHUPD, NULL, N_("Selected Track"), 0, I2VP(CHANGE_MAIN) }, + { PD_COLORLIST, &profilePathColor, "profile", PDO_NOPSHUPD, NULL, N_("Profile Path"), 0, I2VP(CHANGE_MAIN) }, + { PD_COLORLIST, &exceptionColor, "exception", PDO_NOPSHUPD, NULL, N_("Exception Track"), 0, I2VP(CHANGE_MAIN) }, + { PD_COLORLIST, &tieColor, "tie", PDO_NOPSHUPD, NULL, N_("Track Ties"), 0, I2VP(CHANGE_MAIN) }, + { PD_COLORLIST, &bridgeColor, "bridge", PDO_NOPSHUPD, NULL, N_("Bridge Base"), 0, I2VP(CHANGE_MAIN) }, + { PD_COLORLIST, &roadbedColor, "roadbed", PDO_NOPSHUPD, NULL, N_("Track Roadbed"), 0, I2VP(CHANGE_MAIN) } +}; +static paramGroup_t colorPG = { "rgbcolor", PGO_RECORD|PGO_PREFGROUP, colorPLs, COUNT( colorPLs ) }; @@ -546,16 +578,19 @@ static void ColorOk( void * junk ) long changes; changes = GetChanges( &colorPG ); wHide( colorW ); - if ( (changes&CHANGE_GRID) && GridIsVisible() ) + if ( (changes&CHANGE_GRID) && GridIsVisible() ) { changes |= CHANGE_MAIN; + } DoChangeNotification( changes ); } static void DoColor( void * junk ) { - if (colorW == NULL) - colorW = ParamCreateDialog( &colorPG, MakeWindowTitle(_("Color")), _("Ok"), ColorOk, wHide, TRUE, NULL, 0, NULL ); + if (colorW == NULL) { + colorW = ParamCreateDialog( &colorPG, MakeWindowTitle(_("Color")), _("Ok"), + ColorOk, wHide, TRUE, NULL, 0, NULL ); + } ParamLoadControls( &colorPG ); wShow( colorW ); } |