home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / zfrms110.zip / ZFORMS.H < prev    next >
C/C++ Source or Header  |  1993-09-06  |  21KB  |  584 lines

  1. /*************************** Z-Forms Header File *************************/
  2. /*************************************************************************/
  3.  
  4. /*************************************************************************/
  5. /* Predefined macros to define ZForms macros.  These determine compiler  */
  6. /* build options.  __Z_SECVID__ indicates secondary video (VioWrtCellStr)*/
  7. /* rather than VioGetBuf/VioShowBuf.  __Z_INIT_EXT__ indicates that the  */
  8. /* compiler supports unsized array definitions, with the size specified  */
  9. /* in the declaration.  MSC6 does, most don't.                           */
  10. #define __Z_INIT_EXT__
  11.  
  12. #if defined __IBMC__ && defined __32BIT__
  13.    #define __Z_SECVID__
  14.    #ifdef __Z_INIT_EXT__
  15.       #undef __Z_INIT_EXT__
  16.    #endif
  17. #endif
  18.  
  19. #ifdef __EMX__
  20.    #define __Z_SECVID__
  21.    #ifdef __Z_INIT_EXT__
  22.       #undef __Z_INIT_EXT__
  23.    #endif
  24. #endif
  25.  
  26. #ifdef __GNUC__
  27.    #define NULL ((void *)0)
  28.    #define __Z_SECVID__
  29.    #ifdef __Z_INIT_EXT__
  30.       #undef __Z_INIT_EXT__
  31.    #endif
  32. #endif
  33.  
  34. #if defined __BORLANDC__
  35.    #ifdef __OS2__ 
  36.       #define __Z_SECVID__
  37.    #endif
  38.    #ifdef __Z_INIT_EXT__
  39.       #undef __Z_INIT_EXT__
  40.    #endif
  41. #endif
  42.  
  43. /*************************************************************************/
  44. /* True and False                                                        */
  45. #ifndef TRUE
  46.    #define TRUE 1
  47.    #define FALSE 0
  48. #endif
  49.  
  50. /* object types supported */
  51. #define Z_WINDOW     0
  52. #define Z_MENU       1
  53. #define Z_PROMPT     2
  54. #define Z_PICKLIST   3
  55. #define Z_DIALOG     4
  56. #define Z_UNKNOWN   -1
  57.  
  58. /* screen height and width */
  59. extern int Z_ScreenHeight;
  60. extern int Z_ScreenWidth;
  61.  
  62. /************************* Popup Window Structures ***********************/
  63. /* Each Popup Window has a defining structure.  The structure determines */
  64. /* the characteristics of the window (size, color, etc).                 */
  65. /*************************************************************************/
  66.  
  67. /* Virtual Screen Pointer - points to a virtual screen buffer */
  68. typedef int * VSP;
  69.  
  70. /* Popup window structure */
  71. struct WIN_S {
  72.      int fShown;
  73.      int Height;
  74.      int Width;
  75.      struct WIN_S * Prev;
  76.      struct WIN_S * Next;
  77.      int XOrg;
  78.      int YOrg;
  79.      int DefaultChar;
  80.      int BorderStyle;
  81.      int BorderColor;
  82.      int BorderBack;
  83.      int DropShadow;
  84.      int DropAttr;
  85.      char *Title;
  86.      char *SubTitle;
  87.      VSP pVS;
  88.      };
  89. typedef struct WIN_S WINDOW;
  90.  
  91. /* Window Border Styles */
  92. #define BS_NOBORDER     0x0
  93. #define BS_DOUBLELINE   0x1
  94. #define BS_SINGLELINE   0x2
  95.  
  96. /* Drop Shadow Styles */
  97. #define DS_NONE         0x0
  98. #define DS_LOWERRIGHT   0x1
  99. #define DS_LOWERLEFT    0x2
  100. #define DS_UPPERLEFT    0x3
  101. #define DS_UPPERRIGHT   0x4
  102.  
  103. /* Window Color Definitions */
  104. #define BLACK           0
  105. #define BLUE            1
  106. #define GREEN           2
  107. #define CYAN            3
  108. #define RED             4
  109. #define MAGENTA         5
  110. #define BROWN           6
  111. #define WHITE           7
  112. #define DARKGRAY        8
  113. #define DARKGREY        8
  114. #define LT_BLUE         9
  115. #define LT_GREEN        10
  116. #define LT_CYAN         11
  117. #define LT_RED          12
  118. #define LT_MAGENTA      13
  119. #define YELLOW          14
  120. #define BRIGHTWHITE     15
  121. #define BLINKING        8
  122.  
  123. /* Predefined alert sequences */
  124. #define ALERT_THREEBEEP 0
  125. #define ALERT_TWOTONES  1
  126. #define ALERT_PING      2
  127. #define ALERT_WARNING   3
  128.  
  129. /************************ Menu Structure ****************************/
  130. /* Each menu is made up of a structure which defines the menu text, */
  131. /* size, position, function to execute, etc.                        */
  132. /********************************************************************/
  133.  
  134. /* Menu Item Structure */
  135. typedef struct {
  136.      char * Text;            /* Menu item text */
  137.      int  Flags;             /* Menu handling flags */
  138.      int  HotKey;            /* key-stroke(s) to get selected */
  139.      int  OffsetHiLite;      /* Able to Hilite Individual Letter */
  140.      int  XOrg;              /* X position relative to the window */
  141.      int  YOrg;              /* Y position relative to the window */
  142.      void * ActionPtr;       /* Pointer to a function or another menu */
  143.      char * Hint;            /* Hint text */
  144.      } MENU_ITEM;
  145.  
  146. /* Menu Item Flags */
  147. #define MIF_USEHINT     0x1
  148. #define MIF_NOHINT      0x0
  149. #define MIF_CALLMENU    0x2
  150. #define MIF_CALLDIALOG  0x4
  151. #define MIF_CALLFUNC    0x8
  152. #define MIF_CALLEXIT    0x10
  153. #define MIF_CALLNOTHING 0x0
  154. #define MIF_RIGHTJUST   0x20
  155. #define MIF_LEFTJUST    0x0
  156. #define MIF_SUBMENU     0x40
  157. #define MIF_NOSUBMENU   0x0
  158.  
  159. /* Menu structure */
  160. typedef struct {
  161.      int OrgX;               /* Menu X origin (upper left corner) */
  162.      int OrgY;               /* Menu Y origin (upper left corner) */
  163.      int Height;             /* Window Height */
  164.      int Width;              /* Window width */
  165.      int TextWidth;          /* menu text width if vertical */
  166.      int Flags;              /* Menu flags */
  167.      int TextColor;          /* color of text */
  168.      int BackColor;          /* color of background */
  169.      int HotColor;           /* Hot key color */
  170.      int HotBack;            /* Hot key background color */
  171.      int HiTextColor;        /* color of hilighted text */
  172.      int HiBackColor;        /* color of background text */
  173.      int HintTextColor;      /* color of hint text */
  174.      int HintBackColor;      /* color of hint background */
  175.      int HintOrgX;           /* X position of the hint */
  176.      int HintOrgY;           /* Y position of the hint */
  177.      int HintWidth;          /* Width of hint text */
  178.      int BorderStyle;        /* border styles */
  179.      int BorderColor;        /* Border Color */
  180.      int BorderBack;         /* Border Background Color */
  181.      int DropShadow;         /* whether to use a drop shadow / */
  182.      int DropAttr;           /* drop shadow attribute */
  183.      char *Title;            /* Menu window border title */
  184. #ifdef __Z_INIT_EXT__
  185.      MENU_ITEM Item[];       /* Array of MENU_ITEM structures */
  186. #else
  187.      MENU_ITEM *Item;        /* Array of MENU_ITEM structures */
  188. #endif     
  189.      } MENU;
  190.  
  191. /* Flags for Menus */
  192. #define MMF_USECLOCK        0x1
  193. #define MMF_NOCLOCK         0x0
  194. #define MMF_VERTMENU        0x2
  195. #define MMF_HORIZMENU       0x0
  196. #define MMF_SUBMENU         0x4
  197. #define MMF_NOTSUBMENU      0x0
  198. #define MMF_USEHINT         0x8
  199. #define MMF_NOHINT          0x0
  200.  
  201. /********************* Dialog Box Structures ***********************/
  202. /* Dialog Boxes are made up of a Dialog Box structure and a set of */
  203. /* Control Structures.                                             */
  204. /*******************************************************************/
  205.  
  206. /* Control Structure */
  207. typedef struct {
  208.      char * Text;            /* Text for Button */
  209.      int Style;              /* Control Style */
  210.      int Flags;              /* Control flags */
  211.      int HotKey;             /* key to activate control, if any */
  212.      int OffsetHiLite;       /* Index into text for highlighted character */
  213.      int XOrg;               /* X Origin for the control */
  214.      int YOrg;               /* Y Origin for the control */
  215.      int Height;             /* Control height */
  216.      int Width;              /* Control width */
  217.      int TextColor;          /* color of text */
  218.      int TextBack;           /* color of background */
  219.      int HiTextColor;        /* color of hilighted text */
  220.      int HiBackColor;        /* color of hilighted background */
  221.      void * ActionPtr;       /* pointer to function to execute */
  222.      char * Hint;            /* Text for Hint */
  223.      int (*Validate)(void *); /* Validation function */
  224.      } DLG_CONTROL;
  225.  
  226. /* Control Style Flags */
  227. #define CSF_BUTTON          0x0
  228. #define CSF_VERTSCROLL      0x1
  229. #define CSF_HORZSCROLL      0x2
  230. #define CSF_TEXT            0x4
  231. #define CSF_DATAENTRY       0x8
  232. #define CSF_CHECKBOX        0x10
  233. #define CSF_ONEOFBUTTON     0x20
  234. #define CSF_PICKLIST        0x40
  235.  
  236. /* Control Flags */
  237. #define CSS_NOACTIVATE      0x0
  238. #define CSS_ACTIVATE        0x1
  239. #define CSS_CALLFUNC        0x2
  240. #define CSS_CALLDIALOG      0x4
  241. #define CSS_CALLMENU        0x8
  242. #define CSS_EXIT            0x10
  243. #define CSS_CALLNOTHING     0x0
  244.  
  245. /* Dialog Box Structure */
  246. typedef struct {
  247.      int XOrg;               /* X Origin for dialog box */
  248.      int YOrg;               /* Y Origin for dialog box */
  249.      int Height;             /* Height for window */
  250.      int Width;              /* Width of window */
  251.      int Flags;              /* Dialog box flags */
  252.      int DefaultChar;        /* Default character and attribute for window */
  253.      int HintTextColor;      /* Color for hint text, if any */
  254.      int HintBackColor;      /* Background color for the hint, if any */
  255.      int HintOrgX;           /* Hint window X origin */
  256.      int HintOrgY;           /* Hint window Y origin */
  257.      int HintWidth;          /* Width of hint window */
  258.      int BorderStyle;        /* Border style for window */
  259.      int BorderColor;        /* Border foreground color */
  260.      int BorderBack;         /* Border background color */
  261.      int DropShadow;         /* whether to drop shadow or not */
  262.      int DropAttr;           /* drop shadow attribute */
  263.      char *Title;            /* Pointer to Title Text */
  264.      void (*Entry)(void);    /* function to execute upon entry */
  265. #ifdef __Z_INIT_EXT__
  266.      DLG_CONTROL Control[];  /* Control array */
  267. #else     
  268.      DLG_CONTROL *Control;   /* Control array */
  269. #endif     
  270.      } DIALOG;
  271.  
  272. /* Dialog Box Flags */
  273. #define DBF_USEHINT         0x1
  274. #define DBF_NOHINT          0x0
  275.  
  276. /************************ Keyboard definitions ******************/
  277. /* This section defines all keys and keyboard functions *********/
  278. /****************************************************************/
  279.  
  280. /* Readmap to keyboard combinations */
  281. #define k_special           0xf00
  282. #define k_F1                0xf3b
  283. #define k_F2                0xf3c
  284. #define k_F3                0xf3d
  285. #define k_F4                0xf3e
  286. #define k_F5                0xf3f
  287. #define k_F6                0xf40
  288. #define k_F7                0xf41
  289. #define k_F8                0xf42
  290. #define k_F9                0xf43
  291. #define k_F10               0xf44
  292. #define k_F11               0xf85
  293. #define k_F12               0xf86
  294. #define k_Shift_F1          0xf54
  295. #define k_Shift_F2          0xf55
  296. #define k_Shift_F3          0xf56
  297. #define k_Shift_F4          0xf57
  298. #define k_Shift_F5          0xf58
  299. #define k_Shift_F6          0xf59
  300. #define k_Shift_F7          0xf5a
  301. #define k_Shift_F8          0xf5b
  302. #define k_Shift_F9          0xf5c
  303. #define k_Shift_F10         0xf5d
  304. #define k_Shift_F11         0xf87
  305. #define k_Shift_F12         0xf88
  306. #define k_Alt_F1            0xf68
  307. #define k_Alt_F2            0xf69
  308. #define k_Alt_F3            0xf6a
  309. #define k_Alt_F4            0xf6b
  310. #define k_Alt_F5            0xf6c
  311. #define k_Alt_F6            0xf6d
  312. #define k_Alt_F7            0xf6e
  313. #define k_Alt_F8            0xf6f
  314. #define k_Alt_F9            0xf70
  315. #define k_Alt_F10           0xf71
  316. #define k_Alt_F11           0xf8b
  317. #define k_Alt_F12           0xf8c
  318. #define k_Ctrl_F1           0xf5e
  319. #define k_Ctrl_F2           0xf5f
  320. #define k_Ctrl_F3           0xf60
  321. #define k_Ctrl_F4           0xf61
  322. #define k_Ctrl_F5           0xf62
  323. #define k_Ctrl_F6           0xf63
  324. #define k_Ctrl_F7           0xf64
  325. #define k_Ctrl_F8           0xf65
  326. #define k_Ctrl_F9           0xf66
  327. #define k_Ctrl_F10          0xf67
  328. #define k_Ctrl_F11          0xf89
  329. #define k_Ctrl_F12          0xf8a
  330. #define k_UpArr             0xf48
  331. #define k_DnArr             0xf50
  332. #define k_RtArr             0xf4d
  333. #define k_LtArr             0xf4b
  334. #define k_PgUp              0xf49
  335. #define k_PgDn              0xf51
  336. #define k_Home              0xf47
  337. #define k_End               0xf4f
  338. #define k_Ins               0xf52
  339. #define k_Del               0xf53
  340. #define k_Shift_UpArr       0xf48
  341. #define k_Shift_DnArr       0xf50
  342. #define k_Shift_RtArr       0xf4d
  343. #define k_Shift_LtArr       0xf4b
  344. #define k_Shift_PgUp        0xf49
  345. #define k_Shift_PgDn        0xf51
  346. #define k_Shift_Home        0xf47
  347. #define k_Shift_End         0xf4f
  348. #define k_Shift_Ins         0xf52
  349. #define k_Shift_Del         0xf53
  350. #define k_Alt_UpArr         0xf98
  351. #define k_Alt_DnArr         0xfa0
  352. #define k_Alt_RtArr         0xf9d
  353. #define k_Alt_LtArr         0xf9b
  354. #define k_Alt_PgUp          0xf99
  355. #define k_Alt_PgDn          0xfa1
  356. #define k_Alt_Home          0xf00
  357. #define k_Alt_End           0xf9f
  358. #define k_Alt_Ins           0xfa2
  359. #define k_Alt_Del           0xfa3
  360. #define k_Ctrl_UpArr        0xf8D
  361. #define k_Ctrl_DnArr        0xf91
  362. #define k_Ctrl_RtArr        0xf74
  363. #define k_Ctrl_LtArr        0xf73
  364. #define k_Ctrl_PgUp         0xf84
  365. #define k_Ctrl_PgDn         0xf76
  366. #define k_Ctrl_Home         0xf77
  367. #define k_Ctrl_End          0xf75
  368. #define k_Ctrl_Ins          0xf92
  369. #define k_Ctrl_Del          0xf93
  370. #define k_Ctrl_Tab          0xf94
  371. #define k_Esc               0x1b
  372. #define k_Enter             0x0d
  373. #define k_Backspace         0x08
  374. #define k_Tab               0x09
  375. #define k_Shift_Tab         0xf0f
  376. #define k_Ctrl_A            0x01
  377. #define k_Ctrl_B            0x02
  378. #define k_Ctrl_C            0x03
  379. #define k_Ctrl_D            0x04
  380. #define k_Ctrl_E            0x05
  381. #define k_Ctrl_F            0x06
  382. #define k_Ctrl_G            0x07
  383. #define k_Ctrl_H            0x08
  384. #define k_Ctrl_I            0x09
  385. #define k_Ctrl_J            0x0A
  386. #define k_Ctrl_K            0x0B
  387. #define k_Ctrl_L            0x0C
  388. #define k_Ctrl_M            0x0D
  389. #define k_Ctrl_N            0x0E
  390. #define k_Ctrl_O            0x0F
  391. #define k_Ctrl_P            0x10
  392. #define k_Ctrl_Q            0x11
  393. #define k_Ctrl_R            0x12
  394. #define k_Ctrl_S            0x13
  395. #define k_Ctrl_T            0x14
  396. #define k_Ctrl_U            0x15
  397. #define k_Ctrl_V            0x16
  398. #define k_Ctrl_W            0x17
  399. #define k_Ctrl_X            0x18
  400. #define k_Ctrl_Y            0x19
  401. #define k_Ctrl_Z            0x1A
  402. #define k_Alt_A             0xf1e
  403. #define k_Alt_B             0xf30
  404. #define k_Alt_C             0xf2e
  405. #define k_Alt_D             0xf20
  406. #define k_Alt_E             0xf12
  407. #define k_Alt_F             0xf21
  408. #define k_Alt_G             0xf22
  409. #define k_Alt_H             0xf23
  410. #define k_Alt_I             0xf17
  411. #define k_Alt_J             0xf24
  412. #define k_Alt_K             0xf25
  413. #define k_Alt_L             0xf26
  414. #define k_Alt_M             0xf32
  415. #define k_Alt_N             0xf31
  416. #define k_Alt_O             0xf18
  417. #define k_Alt_P             0xf19
  418. #define k_Alt_Q             0xf10
  419. #define k_Alt_R             0xf13
  420. #define k_Alt_S             0xf1f
  421. #define k_Alt_T             0xf14
  422. #define k_Alt_U             0xf16
  423. #define k_Alt_V             0xf2f
  424. #define k_Alt_W             0xf11
  425. #define k_Alt_X             0xf2d
  426. #define k_Alt_Y             0xf15
  427. #define k_Alt_Z             0xf2c
  428. #define k_Alt_1             0xf78
  429. #define k_Alt_2             0xf79
  430. #define k_Alt_3             0xf7a
  431. #define k_Alt_4             0xf7b
  432. #define k_Alt_5             0xf7c
  433. #define k_Alt_6             0xf7d
  434. #define k_Alt_7             0xf7e
  435. #define k_Alt_8             0xf7f
  436. #define k_Alt_9             0xf80
  437. #define k_Alt_0             0xf81
  438. #define k_NoKey             -1
  439.  
  440. /* Prompt Structure */
  441. typedef struct {
  442.      char * Response;
  443.      char * Prompt;
  444.      char * Mask;
  445.      int Length;
  446.      int XPos;
  447.      int YPos;
  448.      int PromptColor;
  449.      int PromptBack;
  450.      int ResponseColor;
  451.      int ResponseBack;
  452.      int HiColor;
  453.      int HiBack;
  454.      int (*Verify)(char *);
  455.      char *Hint;
  456.      } PROMPT;
  457.  
  458. /************************ PickList ******************************/
  459. /* This section defines the picklist pre-defined window type ****/
  460. /****************************************************************/
  461.  
  462. /* Picklist items */
  463. struct PL_ITEM {
  464.     char *ItemText;
  465.     struct PL_ITEM *Prev;
  466.     struct PL_ITEM *Next;
  467.     };
  468. typedef struct PL_ITEM PICKLIST_ITEM;
  469.  
  470. /* PickList structure */
  471. typedef struct {
  472.      int OrgX;               /* Picklist X origin (upper left corner) */
  473.      int OrgY;               /* Picklist Y origin (upper left corner) */
  474.      int Height;             /* Window Height */
  475.      int Width;              /* Window width */
  476.      int TextWidth;          /* picklist text width */
  477.      int Flags;              /* Picklist flags */
  478.      int TextColor;          /* color of text */
  479.      int BackColor;          /* color of background */
  480.      int HiTextColor;        /* color of hilighted text */
  481.      int HiBackColor;        /* color of background text */
  482.      int BorderStyle;        /* border styles */
  483.      int BorderColor;        /* Border Color */
  484.      int BorderBack;         /* Border Background Color */    
  485.      int DefaultChar;        /* default character for window */
  486.      int DropShadow;         /* whether to drop shadow the picklist */
  487.      int DropAttr;           /* the atttribute to use */
  488.      char *Title;            /* Picklist window border title */
  489.      WINDOW *pWin;           /* pointer to the window to use */
  490.      PICKLIST_ITEM *Item;    /* Head of PICKLIST_ITEM structures list */
  491.      PICKLIST_ITEM *LastItem;/* Tail of PICKLIST_ITEM structures list */
  492.     } PICKLIST;    
  493.  
  494. /* Picklist Flags */
  495. #define PLF_NOSCROLL        0x0
  496. #define PLF_VERTSCROLL      0x1
  497. #define PLF_HORZSCROLL      0x2
  498.  
  499. /************************ Functions *****************************/
  500. /* This section defines externally known functions **************/
  501. /****************************************************************/
  502. #ifdef __cplusplus__
  503. extern "C" {
  504. #endif
  505. /* Popup Window Functions */
  506. int Z_IsCharOnTop(WINDOW *, int, int, int);
  507. void Z_ShowWindow(WINDOW *);
  508. void Z_HideWindow(WINDOW *);
  509. void Z_UnDefineWindow(WINDOW *);
  510. WINDOW * Z_DefineWindow(WINDOW *);
  511. void Z_UpdatePhysicalScreen(WINDOW *, int, int, int, int);
  512. void Z_TextOut(WINDOW *, char *, int, int, int, int);
  513. void Z_TextOver(WINDOW *, char *, int, int);
  514. void Z_CharOut(WINDOW *, char, int, int, int, int);
  515. void Z_CharOver(WINDOW *, char, int, int);
  516. void Z_CharOutAtCursor(WINDOW *, char, int, int);
  517. void Z_CharOutTTY(WINDOW *, char, int, int);
  518. void Z_CharOverAtCursor(WINDOW *, char);
  519. void Z_CharOverTTY(WINDOW *, char);
  520. WINDOW * Z_CreateWindow(WINDOW *, int, int, int, int, int, int, int, int, int, int, char *, char *);
  521. void Z_BorderWindow(WINDOW *);
  522. void Z_ClearScreen(char, char);
  523. void Z_SetCursor(WINDOW *, int, int);
  524. void Z_GetCursor(WINDOW *, int *, int *);
  525. void Z_MoveCursorCol(WINDOW *, int);
  526. WINDOW * Z_OpenWindow(WINDOW *);
  527. void Z_CloseWindow(WINDOW *);
  528. void Z_ScrollUp(WINDOW *, int);
  529. void Z_ScrollDown(WINDOW *, int);
  530. void Z_GetVideoMode(void);
  531. void Z_SetVideoMode(int, int);
  532. void Z_TitleWindow(WINDOW *);
  533. void Z_BorderWindow(WINDOW *);
  534. void Z_PopWindow(WINDOW *);
  535. void Z_PushWindow(WINDOW *);
  536. int Z_GetCharOnTop(WINDOW *, int, int);
  537. void Z_ClearWindow(WINDOW *);
  538. void Z_Beep(int, int);
  539. void Z_Alert(int);
  540.  
  541. /* Menu Functions */
  542. void Z_DisplayMenuSelection(MENU *, WINDOW *, int, int);
  543. int Z_CountMenuItems(MENU *);
  544. WINDOW * Z_InitMenu(MENU *, WINDOW *, int *);
  545. WINDOW * Z_InitHint(MENU *, WINDOW *);
  546. int Z_HandleMenu(MENU *);
  547.  
  548. /* Dialog Box Functions */
  549. int Z_HandleDialog(DIALOG *);
  550. int Z_InformUser(char *, char *, char *, char *);
  551. int Z_CountDialogItems(DIALOG *);
  552. int Z_NextActiveControl(DIALOG *, int, int);
  553. int Z_PrevActiveControl(DIALOG *, int, int);
  554.  
  555. /* Keyboard functions */
  556. int Z_GetKey(void);
  557. void Z_Delay(int);
  558. void Z_InsertKey(int);
  559. void Z_InsertKeyString(char *);
  560. int Z_HandleInputs(WINDOW *, WINDOW *, PROMPT *, int *);
  561. int Z_SetBackgroundProcess(void (*pFunc)(void), int Milli);
  562.  
  563. /* PickList functions */
  564. void Z_PurgePickList(PICKLIST *);
  565. void Z_DestroyPickList(PICKLIST *);
  566. int Z_AddPickListItem(PICKLIST *, char *);
  567. int Z_RemovePickListItem(PICKLIST *, char *);
  568. PICKLIST_ITEM * Z_HandlePickList(PICKLIST *);
  569. void Z_OpenPickList(PICKLIST *);
  570. void Z_ClosePickList(PICKLIST *);
  571. int Z_ShowPickList(PICKLIST *, int, PICKLIST_ITEM *, PICKLIST_ITEM **);
  572. int Z_RemovePickListEntry(PICKLIST *, PICKLIST_ITEM *);
  573.  
  574. /* Mouse Functions */
  575. void Z_InitMouse(void);
  576. void Z_CloseMouse(void);
  577. void Z_RegisterWithMouse(void *Object, int ObjectType);
  578. void Z_HideMouse(void);
  579. void Z_ShowMouse(void);
  580.  
  581. #ifdef __cplusplus__
  582. }
  583. #endif
  584.