diff options
Diffstat (limited to 'app/bin/param.h')
-rw-r--r-- | app/bin/param.h | 293 |
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 |