home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / INCLUDE / FNDECL.H < prev    next >
C/C++ Source or Header  |  1990-12-07  |  6KB  |  190 lines

  1. /*
  2.     fndecl.h       10/15/86
  3.  
  4.     % public header for field functions
  5.  
  6.     This file contains field function struct definitions
  7.     and various misc. routines.
  8.  
  9.     C-scape 3.2
  10.     Copyright (c) 1986-1989, by Oakland Group, Inc.
  11.     ALL RIGHTS RESERVED.
  12.  
  13.     Revision History:
  14.     -----------------
  15.      9/01/87 jmd     added NO_PROTO option
  16.      6/01/88 jmd     removed anachronisms
  17.      7/27/88 jmd     removed string tools
  18.      8/22/88 jmd     added field_funcs_struct, special funcs
  19.      9/16/88 jmd     added _arg
  20.      9/17/88 jmd    added global error msg strings for easy changing
  21.      9/17/88 jmd    added std_ funcs
  22.     10/06/88 jmd    added snum_fenter
  23.     11/28/88 jmd    split into two files
  24.     12/16/88 jmd    added valid_Float
  25.     12/20/88 jmd    added click_funcs
  26.  
  27.      4/06/89 jmd    Fixed std_fexit prototype
  28.      4/23/89 jdc    added pulldown_funcs
  29.      6/01/89 gam    added ocountry stuff
  30.      6/25/89 jmd    added OEXTERNs
  31.      7/15/89 ted    Converted '_func' prototypes from typedef to macro.
  32.      8/03/89 jmd    added nowrite_funcs
  33.      8/07/89 jmd    added time and date _funcs, std_NumValid
  34.      2/14/90 mla    added radio funcs
  35.      3/19/90 jmd    made valid_Format a boolean
  36.      3/28/90 jmd    ansi-fied
  37.      4/12/90 pmcm     added valid_Range
  38.      4/12/90 jmd     added aux_Top, removed old error message strings
  39.      5/08/90 jmd    added underscores to func macros for vms compiler
  40.      5/11/90 jmd    removed reference to null_funcs
  41.      5/17/90 jmd    moved idle_Clock prototype to kbidle.h
  42.      8/27/90 jmd    removed errmsg global variable
  43.      9/21/90 pmcm    changed extern to OEXTERN for fnmark_color
  44.     12/07/90 jmd    changed names of variables to _min and _max
  45. */
  46.  
  47. /*** macros and #defines ***/
  48.  
  49. struct select_struct {
  50.     int        number;
  51.     char     **list;
  52. };
  53.  
  54. #include "fncntry.h"
  55.  
  56. #define select_build(select, choice_list)  \
  57.     struct select_struct select = {\
  58.             0,\
  59.             choice_list\
  60.     }
  61.  
  62. #define    select_number(select)      ((select).number)
  63. #define select_choice(select)   ((select).list[(select).number])
  64.  
  65. /*** filter func used by str funcs ***/
  66. #define sfilter_func(fname)     boolean fname(int _flag)
  67. typedef sfilter_func ((*sfilter_fptr));
  68.  
  69. /* ticker funcs stuff (obsolete) */
  70.  
  71. #define    tick_GetLen(t)                ( *((int *) t))
  72. #define    tick_SetLen(t, len)            ( *((int *) t) = len)
  73. #define    tick_GetOffset(t)             ( *((int *) (t+sizeof(int))) )
  74. #define    tick_SetOffset(t, off)         ( *((int *) (t+sizeof(int))) = off)
  75. #define tick_GetString(t)            (t + (2 * sizeof(int)))
  76.  
  77. /*** Color of marked field ***/
  78. OEXTERN byte       fnmark_color;        /* used by mark_funcs (fnmark.c ) */
  79.  
  80. /*** Functions ***/
  81.  
  82. /*** auxiliary functions ***/
  83.  
  84. /* AUXTOP.C */
  85. extern aux_func (aux_Top);
  86.  
  87. /*** special functions ***/
  88.  
  89. /* SPCABORT.C */
  90. extern spc_func (spc_Abort);
  91.  
  92. /* SPCEMBED.C */
  93. extern spc_func (spc_Embed);
  94.  
  95. /* SPCEMBTD.C */
  96. extern spc_func (spc_EmbedTed);
  97.  
  98. /*** std funcs ***/
  99.  
  100. /* FNSTD.C */
  101. extern void     std_fenter(sed_type sed);
  102. extern boolean  std_fexit(sed_type sed);
  103. extern void     std_format(sed_type sed);
  104. extern void     stdNoCur_fenter(sed_type sed);
  105. extern void     stdBigCur_fenter(sed_type sed);
  106. extern void     std_senter(sed_type sed, int fieldno);
  107.  
  108. /* FNSTDVAL.C */
  109. extern boolean  std_NumValid(sed_type sed, double val);
  110.  
  111. /*** StrCommon funcs ***/
  112.  
  113. /* FNSTRCOM.C */
  114. extern void     StrCommon_fkey(sed_type sed, sfilter_fptr filter);
  115.  
  116. /*** Validation routines ***/
  117.  
  118. #define    VALID_SLEN    80        /* max length of validation string component */
  119.  
  120. /* FNVALFMT.C */
  121. extern boolean  valid_Format(sed_type sed, int fieldno, char *fmt);
  122.  
  123. /* FNVALNUM.C */
  124. extern boolean  valid_Double(double num, char *vstr);
  125.  
  126. /* FNVALSTR.C */
  127. extern boolean  valid_String(char *string, char *vstr);
  128.  
  129. #define valid_Int(val, vstr)        valid_Double((double) (val), vstr)
  130. #define valid_Long(val, vstr)        valid_Double((double) (val), vstr)
  131. #define valid_Float(val, vstr)        valid_Double((double) (val), vstr)
  132.  
  133. /* FNVALRNG.C */
  134. extern boolean valid_Range(sed_type sed, long _min, long _max);
  135.  
  136. /*** movement funcs ***/
  137.  
  138. /* FNIFLD.C */
  139. extern boolean  inter_field(sed_type sed, int scancode);
  140.  
  141. /* FNIFLDG.C */
  142. extern boolean  inter_field_grid(sed_type sed, int scancode);
  143.  
  144. /* FNIPAGE.C */
  145. extern boolean  inter_page(sed_type sed, int scancode);
  146.  
  147. /* FNSPEC.C */
  148. extern boolean  special_key(sed_type sed, int scancode);
  149.  
  150. /*** field functions ***/
  151.  
  152. OEXTERN field_funcs_struct alpha_funcs;
  153. OEXTERN field_funcs_struct bob_funcs;
  154. OEXTERN field_funcs_struct char_funcs;
  155. OEXTERN field_funcs_struct check_funcs;
  156. OEXTERN field_funcs_struct click_funcs;
  157. OEXTERN field_funcs_struct clong_funcs;
  158. OEXTERN field_funcs_struct cmoney_funcs;
  159. OEXTERN field_funcs_struct date_funcs;
  160. OEXTERN field_funcs_struct digit_funcs;
  161. OEXTERN field_funcs_struct double_funcs;
  162. OEXTERN field_funcs_struct gmenu_funcs;
  163. OEXTERN field_funcs_struct hex_funcs;
  164. OEXTERN field_funcs_struct int_funcs;
  165. OEXTERN field_funcs_struct list_funcs;
  166. OEXTERN field_funcs_struct long_funcs;
  167. OEXTERN field_funcs_struct mark_funcs;
  168. OEXTERN field_funcs_struct menu_funcs;
  169. OEXTERN field_funcs_struct money_funcs;
  170. OEXTERN field_funcs_struct msys_funcs;
  171. OEXTERN field_funcs_struct nowrite_funcs;
  172. OEXTERN field_funcs_struct pint_funcs;
  173. OEXTERN field_funcs_struct plong_funcs;
  174. OEXTERN field_funcs_struct radio_funcs;
  175. OEXTERN field_funcs_struct range_funcs;
  176. OEXTERN field_funcs_struct sdouble_funcs;
  177. OEXTERN field_funcs_struct secure_funcs;
  178. OEXTERN field_funcs_struct select_funcs;
  179. OEXTERN field_funcs_struct sfloat_funcs;
  180. OEXTERN field_funcs_struct sint_funcs;
  181. OEXTERN field_funcs_struct slong_funcs;
  182. OEXTERN field_funcs_struct string_funcs;
  183. OEXTERN field_funcs_struct ticker_funcs;
  184. OEXTERN field_funcs_struct time_funcs;
  185. OEXTERN field_funcs_struct toggle_funcs;
  186. OEXTERN field_funcs_struct togint_funcs;
  187. OEXTERN field_funcs_struct xstring_funcs;
  188. OEXTERN field_funcs_struct yesno_funcs;
  189.  
  190.