summaryrefslogtreecommitdiff
path: root/app/bin/param.h
diff options
context:
space:
mode:
Diffstat (limited to 'app/bin/param.h')
-rw-r--r--app/bin/param.h293
1 files changed, 166 insertions, 127 deletions
diff --git a/app/bin/param.h b/app/bin/param.h
index 414dae3..004dcb5 100644
--- a/app/bin/param.h
+++ b/app/bin/param.h
@@ -17,134 +17,151 @@
*
* 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
*/
#ifndef PARAM_H
#define PARAM_H
#include "common.h"
-#include "wlib.h"
-#include "draw.h"
+#include "draw.h" //- playbackAction
typedef struct turnoutInfo_t * turnoutInfo_p;
+extern wWinPix_t DlgSepTop;
+extern wWinPix_t DlgSepBottom;
+extern wWinPix_t DlgSepLeft;
+extern wWinPix_t DlgSepRight;
+
typedef enum {
- PD_LONG,
- PD_FLOAT,
- PD_RADIO,
- PD_TOGGLE,
- PD_STRING,
- PD_LIST,
- PD_DROPLIST,
- PD_COMBOLIST,
- PD_BUTTON,
- PD_COLORLIST,
- PD_MESSAGE, /* static text */
- PD_DRAW,
- PD_TEXT,
- PD_MENU,
- PD_MENUITEM,
- PD_BITMAP
- } parameterType;
-
-#define PDO_DIM (1L<<0)
-#define PDO_ANGLE (1L<<1)
-#define PDO_NORECORD (1L<<2)
-#define PDO_NOPSHACT (1L<<3)
-#define PDO_NOPSHUPD (1L<<4)
-#define PDO_NOPREF (1L<<5)
-#define PDO_NOUPDACT (1L<<6)
-#define PDO_MISC (1L<<7)
-#define PDO_DRAW (1L<<8)
-#define PDO_FILE (1L<<9)
-#define PDO_ENTER (1L<<10)
-
-#define PDO_STRINGLIMITLENGTH (1L<<11) /**< context has maximum length for string */
-#define PDO_SMALLDIM (1L<<12)
-
-#define PDO_DLGSTARTBTNS (1L<<13)
-#define PDO_DLGWIDE (1L<<14)
-#define PDO_DLGNARROW (1L<<15)
-#define PDO_DLGBOXEND (1L<<16) /**< draw recessed frame around the controls */
-#define PDO_DLGRESETMARGIN (1L<<17) /**< position control on the left ?*/
-#define PDO_DLGIGNORELABELWIDTH (1L<<18)
-
-#define PDO_DLGHORZ (1L<<20) /**< arrange on same line as previous element */
-#define PDO_DLGNEWCOLUMN (1L<<21)
-#define PDO_DLGNOLABELALIGN (1L<<22)
-#define PDO_LISTINDEX (1L<<23)
-#define PDO_DLGSETY (1L<<24)
-#define PDO_DLGIGNOREX (1L<<25)
-#define PDO_DLGUNDERCMDBUTT (1L<<26)
-#define PDO_DLGCMDBUTTON (1L<<27) /**< arrange button on the right with the default buttons */
-#define PDO_DLGIGNORE (1L<<28)
-
-#define PDO_DLGRESIZEW (1L<<29)
-#define PDO_DLGRESIZEH (1L<<30)
+ PD_LONG,
+ PD_FLOAT,
+ PD_RADIO,
+ PD_TOGGLE,
+ PD_STRING,
+ PD_LIST,
+ PD_DROPLIST,
+ PD_COMBOLIST,
+ PD_BUTTON,
+ PD_COLORLIST,
+ PD_MESSAGE, /* static text */
+ PD_DRAW,
+ PD_TEXT,
+ PD_MENU,
+ PD_MENUITEM,
+ PD_BITMAP
+} parameterType;
+
+// PD_FLOAT modifiers
+#define PDO_DIM (1L<<0)
+#define PDO_ANGLE (1L<<1)
+#define PDO_SMALLDIM (1L<<2)
+// PD_STRING modifiers
+#define PDO_NOTBLANK (1L<<3)
+
+#define PDO_NORECORD (1L<<6)
+#define PDO_NOPSHACT (1L<<7)
+#define PDO_NOPSHUPD (1L<<8)
+#define PDO_NOUPDACT (1L<<9)
+#define PDO_NOACT (PDO_NOPSHACT|PDO_NOUPDACT)
+#define PDO_NOUPD (PDO_NORSTUPD|PDO_NOPSHUPD)
+
+// Override paramGroup pref group
+#define PDO_NOPREF (1L<<10)
+#define PDO_MISC (1L<<11)
+#define PDO_DRAW (1L<<12)
+#define PDO_FILE (1L<<13)
+//#define PDO_ENTER (1L<<14)
+#define PDO_ENTER 0
+
+//#define PDO_STRINGLIMITLENGTH (1L<<11) /**< context has maximum length for string */
+#define PDO_STRINGLIMITLENGTH 0 /**< context has maximum length for string */
+
+// Ignore param
+#define PDO_DLGIGNORE (1L<<15)
+
+// Layout options
+#define PDO_DLGSTARTBTNS (1L<<16)
+#define PDO_DLGWIDE (1L<<17)
+#define PDO_DLGNARROW (1L<<18)
+#define PDO_DLGBOXEND (1L<<19) /**< draw recessed frame around the controls */
+#define PDO_DLGRESETMARGIN (1L<<20) /**< position control on the left ?*/
+#define PDO_DLGIGNORELABELWIDTH (1L<<21)
+#define PDO_DLGHORZ (1L<<22) /**< arrange on same line as previous element */
+#define PDO_DLGNEWCOLUMN (1L<<23)
+#define PDO_DLGNOLABELALIGN (1L<<24)
+#define PDO_LISTINDEX (1L<<25)
+#define PDO_DLGSETY (1L<<26)
+#define PDO_DLGIGNOREX (1L<<27)
+#define PDO_DLGUNDERCMDBUTT (1L<<28)
+#define PDO_DLGCMDBUTTON (1L<<29) /**< arrange button on the right with the default buttons */
+#define PDO_DLGRESIZEW (1L<<30)
+#define PDO_DLGRESIZEH (1L<<31)
#define PDO_DLGRESIZE (PDO_DLGRESIZEW|PDO_DLGRESIZEH)
-#define PDO_NOACT (PDO_NOPSHACT|PDO_NOUPDACT)
-#define PDO_NOUPD (PDO_NORSTUPD|PDO_NOPSHUPD|PDO_NOUPDUPD)
+
+
typedef struct paramGroup_t *paramGroup_p;
#define PDO_NORANGECHECK_LOW (1<<0)
#define PDO_NORANGECHECK_HIGH (1<<1)
typedef struct {
- long low;
- long high;
- wPos_t width;
- int rangechecks;
- } paramIntegerRange_t;
+ long low;
+ long high;
+ wWinPix_t width;
+ int rangechecks;
+} paramIntegerRange_t;
typedef struct {
- FLOAT_T low;
- FLOAT_T high;
- wPos_t width;
- int rangechecks;
- } paramFloatRange_t;
+ FLOAT_T low;
+ FLOAT_T high;
+ wWinPix_t width;
+ int rangechecks;
+} paramFloatRange_t;
typedef struct {
- wPos_t width;
- wPos_t height;
- wDrawRedrawCallBack_p redraw;
- playbackProc action;
- drawCmd_p d;
- } paramDrawData_t;
+ wWinPix_t width;
+ wWinPix_t height;
+ wDrawRedrawCallBack_p redraw;
+ playbackProc action;
+ drawCmd_p d;
+} paramDrawData_t;
typedef struct {
- wIndex_t number;
- wPos_t width;
- int colCnt;
- wPos_t * colWidths;
- const char * * colTitles;
- wPos_t height;
- } paramListData_t;
+ wIndex_t number;
+ wWinPix_t width;
+ int colCnt;
+ wWinPix_t * colWidths;
+ const char * * colTitles;
+ wWinPix_t height;
+} paramListData_t;
typedef struct {
- wPos_t width;
- wPos_t height;
- } paramTextData_t;
+ wWinPix_t width;
+ wWinPix_t height;
+} paramTextData_t;
typedef union {
- long l;
- FLOAT_T f;
- char * s;
- turnoutInfo_p p;
- wDrawColor dc;
- } paramOldData_t;
+ long l;
+ FLOAT_T f;
+ char * s;
+ turnoutInfo_p p;
+ wDrawColor dc;
+} paramOldData_t;
typedef struct {
- parameterType type;
- void * valueP;
- char * nameStr;
- long option;
- void * winData;
- char * winLabel;
- long winOption;
- void * context;
- unsigned int max_string;
- wControl_p control;
- paramGroup_p group;
- paramOldData_t oldD, demoD;
- wBool_t enter_pressed;
- } paramData_t, *paramData_p;
+ parameterType type;
+ void * valueP;
+ const char * nameStr;
+ long option;
+ const void * winData;
+ const char * winLabel;
+ long winOption;
+ void * context;
+ unsigned int max_string;
+ wControl_p control;
+ paramGroup_p group;
+ paramOldData_t oldD, demoD;
+ wBool_t enter_pressed;
+ wBool_t bInvalid;
+ wBool_t bShown;
+} paramData_t, *paramData_p;
typedef void (*paramGroupProc_t) ( long, long );
@@ -160,36 +177,56 @@ typedef void (*paramGroupProc_t) ( long, long );
#define PGO_PREFDRAWGROUP (1<<9)
#define PGO_PREFMISC (1<<10)
-typedef void (*paramLayoutProc)( paramData_t *, int, wPos_t, wPos_t *, wPos_t * );
+typedef void (*paramLayoutProc)( paramData_t *, int, wWinPix_t, wWinPix_t *,
+ wWinPix_t * );
typedef void (*paramActionOkProc)( void * );
typedef void (*paramActionCancelProc)( wWin_p );
typedef void (*paramChangeProc)( paramGroup_p, int, void * );
typedef struct paramGroup_t {
- char * nameStr;
- long options;
- paramData_p paramPtr;
- int paramCnt;
- paramActionOkProc okProc;
- paramActionCancelProc cancelProc;
- paramLayoutProc layoutProc;
- long winOption;
- paramChangeProc changeProc;
- long action;
- paramGroupProc_t proc;
- wWin_p win;
- wButton_p okB;
- wButton_p cancelB;
- wButton_p helpB;
- wPos_t origW;
- wPos_t origH;
- wBox_p * boxs;
- } paramGroup_t;
+ char * nameStr;
+ long options;
+ paramData_p paramPtr;
+ int paramCnt;
+ paramActionOkProc okProc;
+ paramActionCancelProc cancelProc;
+ paramLayoutProc layoutProc;
+ long winOption;
+ paramChangeProc changeProc;
+ long action;
+ paramGroupProc_t proc;
+ wWin_p win;
+ wButton_p okB;
+ wButton_p cancelB;
+ wButton_p helpB;
+ wWinPix_t origW;
+ wWinPix_t origH;
+ wBox_p * boxs;
+} paramGroup_t;
wIndex_t ColorTabLookup( wDrawColor );
extern char * PREFSECT;
// extern char decodeErrorStr[STR_SHORT_SIZE];
+
+
+#define ANGLE_POLAR (0)
+#define ANGLE_CART (1)
+extern long angleSystem;
+#define PutAngle(X) ((angleSystem==ANGLE_POLAR)?(X):NormalizeAngle(90.0-(X)))
+
+#define DISTFMT_DECS 0x00FF
+#define DISTFMT_FMT 0x0300
+#define DISTFMT_FMT_NONE 0x0000
+#define DISTFMT_FMT_SHRT 0x0100
+#define DISTFMT_FMT_LONG 0x0200
+#define DISTFMT_FMT_MM 0x0100
+#define DISTFMT_FMT_CM 0x0200
+#define DISTFMT_FMT_M 0x0300
+#define DISTFMT_FRACT 0x0400
+#define DISTFMT_FRACT_NUM 0x0000
+#define DISTFMT_FRACT_FRC 0x0400
+
FLOAT_T DecodeFloat( wString_p, BOOL_T * );
FLOAT_T DecodeDistance( wString_p, BOOL_T * );
char * FormatLong( long );
@@ -213,8 +250,8 @@ void ParamRestoreAll( void );
void ParamSaveAll( void );
void ParamMenuPush( void * );
-int paramHiliteFast;
void ParamHilite( wWin_p, wControl_p, BOOL_T );
+wBool_t ParamCheckInputs( paramGroup_p pg, wControl_p b );
void ParamInit( void );
@@ -232,12 +269,14 @@ long GetChanges(paramGroup_p pg);
if ( HS ) GetBalloonHelpStr(HS);
#define PD_F_ALT_CANCELLABEL (1L<<30) /**<use Close or Cancel for the discard button */
-wWin_p ParamCreateDialog( paramGroup_p, char *, char *, paramActionOkProc, paramActionCancelProc, BOOL_T, paramLayoutProc, long, paramChangeProc );
+wWin_p ParamCreateDialog( paramGroup_p, char *, char *, paramActionOkProc,
+ paramActionCancelProc, BOOL_T, paramLayoutProc, long, paramChangeProc );
void ParamCreateControls( paramGroup_p, paramChangeProc );
void ParamLayoutDialog( paramGroup_p );
void ParamDialogOkActive( paramGroup_p, int );
-#define ParamControlShow( PG, INX, SHOW ) \
- wControlShow( ((PG)->paramPtr)[INX].control, SHOW )
+void ParamResetInvalid( wWin_p win );
+
+void ParamControlShow( paramGroup_t *, wIndex_t, wBool_t );
#endif