home *** CD-ROM | disk | FTP | other *** search
- /************************* Popup Window Structures ***********************/
- /* Each Popup Window has a defining structure. The structure determines */
- /* the characteristics of the window (size, color, etc). */
- /*************************************************************************/
-
- /*************************************************************************/
- /* predefined macros to define ZForms macros. These determine compiler */
- /* build options. __Z_SECVID__ indiactes secondary video (VioWrtCellStr)*/
- /* rather than VioGetBuf/VioShowBuf. __Z_INIT_EXT__ indicates that the */
- /* compiler supports unsized array definitions, with the size specified */
- /* in the declaration. Most don't. */
- #define __Z_INIT_EXT__
-
- #if defined __IBMC__ && defined __32BIT__
- #define __Z_SECVID__
- #undef __Z_INIT_EXT__
- #endif
-
- #if defined __BORLANDC__
- #ifdef __OS2__
- #define __Z_SECVID__
- #endif
- #undef __Z_INIT_EXT__
- #endif
-
- /*************************************************************************/
- /* True and False */
- #ifndef TRUE
- #define TRUE 1
- #define FALSE 0
- #endif
-
- /* Virtual Screen Pointer - points to a virtual screen buffer */
- typedef int * VSP;
-
- /* Popup window structure */
- struct WIN_S {
- int fShown;
- int Height;
- int Width;
- struct WIN_S * Prev;
- struct WIN_S * Next;
- int XOrg;
- int YOrg;
- int DefaultChar;
- int BorderStyle;
- int BorderColor;
- int BorderBack;
- int DropShadow;
- int DropAttr;
- char *Title;
- char *SubTitle;
- VSP pVS;
- };
- typedef struct WIN_S WINDOW;
-
- /* Window Border Styles */
- #define BS_NOBORDER 0x0
- #define BS_DOUBLELINE 0x1
- #define BS_SINGLELINE 0x2
-
- /* Drop Shadow Styles */
- #define DS_NONE 0x0
- #define DS_LOWERRIGHT 0x1
- #define DS_LOWERLEFT 0x2
- #define DS_UPPERLEFT 0x3
- #define DS_UPPERRIGHT 0x4
-
- /* Window Color Definitions */
- #define BLACK 0
- #define BLUE 1
- #define GREEN 2
- #define CYAN 3
- #define RED 4
- #define MAGENTA 5
- #define BROWN 6
- #define WHITE 7
- #define DARKGRAY 8
- #define DARKGREY 8
- #define LT_BLUE 9
- #define LT_GREEN 10
- #define LT_CYAN 11
- #define LT_RED 12
- #define LT_MAGENTA 13
- #define YELLOW 14
- #define BRIGHTWHITE 15
- #define BLINKING 16
-
- /************************ Menu Structure ****************************/
- /* Each menu is made up of a structure which defines the menu text, */
- /* size, position, function to execute, etc. */
- /********************************************************************/
-
- /* Menu Item Structure */
- typedef struct {
- char * Text; /* Menu item text */
- int Flags; /* Menu handling flags */
- int HotKey; /* key-stroke(s) to get selected */
- int OffsetHiLite; /* Able to Hilite Individual Letter */
- int XOrg; /* X position relative to the window */
- int YOrg; /* Y position relative to the window */
- void * ActionPtr; /* Pointer to a function or another menu */
- char * Hint; /* Hint text */
- } MENU_ITEM;
-
- /* Menu Item Flags */
- #define MIF_USEHINT 0x1
- #define MIF_NOHINT 0x0
- #define MIF_CALLMENU 0x2
- #define MIF_CALLDIALOG 0x4
- #define MIF_CALLFUNC 0x8
- #define MIF_CALLEXIT 0x10
- #define MIF_CALLNOTHING 0x0
- #define MIF_RIGHTJUST 0x20
- #define MIF_LEFTJUST 0x0
- #define MIF_SUBMENU 0x40
- #define MIF_NOSUBMENU 0x0
-
- /* Menu structure */
- typedef struct {
- int OrgX; /* Menu X origin (upper left corner) */
- int OrgY; /* Menu Y origin (upper left corner) */
- int Height; /* Window Height */
- int Width; /* Window width */
- int TextWidth; /* menu text width if vertical */
- int Flags; /* Menu flags */
- int TextColor; /* color of text */
- int BackColor; /* color of background */
- int HotColor; /* Hot key color */
- int HotBack; /* Hot key background color */
- int HiTextColor; /* color of hilighted text */
- int HiBackColor; /* color of background text */
- int HintTextColor; /* color of hint text */
- int HintBackColor; /* color of hint background */
- int HintOrgX; /* X position of the hint */
- int HintOrgY; /* Y position of the hint */
- int HintWidth; /* Width of hint text */
- int BorderStyle; /* border styles */
- int BorderColor; /* Border Color */
- int BorderBack; /* Border Background Color */
- int DropShadow; /* whether to use a drop shadow / */
- int DropAttr; /* drop shadow attribute */
- char *Title; /* Menu window border title */
- #ifdef __Z_INIT_EXT__
- MENU_ITEM Item[]; /* Array of MENU_ITEM structures */
- #else
- MENU_ITEM *Item; /* Array of MENU_ITEM structures */
- #endif
- } MENU;
-
- /* Flags for Menus */
- #define MMF_USECLOCK 0x1
- #define MMF_NOCLOCK 0x0
- #define MMF_VERTMENU 0x2
- #define MMF_HORIZMENU 0x0
- #define MMF_SUBMENU 0x4
- #define MMF_NOTSUBMENU 0x0
- #define MMF_USEHINT 0x8
- #define MMF_NOHINT 0x0
-
- /********************* Dialog Box Structures ***********************/
- /* Dialog Boxes are made up of a Dialog Box structure and a set of */
- /* Control Structures. */
- /*******************************************************************/
-
- /* Control Structure */
- typedef struct {
- char * Text; /* Text for Button */
- int Style; /* Control Style */
- int Flags; /* Control flags */
- int HotKey; /* key to activate control, if any */
- int OffsetHiLite; /* Index into text for highlighted character */
- int XOrg; /* X Origin for the control */
- int YOrg; /* Y Origin for the control */
- int Height; /* Control height */
- int Width; /* Control width */
- int TextColor; /* color of text */
- int TextBack; /* color of background */
- int HiTextColor; /* color of hilighted text */
- int HiBackColor; /* color of hilighted background */
- void * ActionPtr; /* pointer to function to execute */
- char * Hint; /* Text for Hint */
- int (*Validate)(void *); /* Validation function */
- } DLG_CONTROL;
-
- /* Control Style Flags */
- #define CSF_BUTTON 0x0
- #define CSF_VERTSCROLL 0x1
- #define CSF_HORZSCROLL 0x2
- #define CSF_TEXT 0x4
- #define CSF_DATAENTRY 0x8
- #define CSF_CHECKBOX 0x10
- #define CSF_ONEOFBUTTON 0x20
- #define CSF_PICKLIST 0x40
-
- /* Control Flags */
- #define CSS_NOACTIVATE 0x0
- #define CSS_ACTIVATE 0x1
- #define CSS_CALLFUNC 0x2
- #define CSS_CALLDIALOG 0x4
- #define CSS_CALLMENU 0x8
- #define CSS_EXIT 0x10
- #define CSS_CALLNOTHING 0x0
-
- /* Dialog Box Structure */
- typedef struct {
- int XOrg; /* X Origin for dialog box */
- int YOrg; /* Y Origin for dialog box */
- int Height; /* Height for window */
- int Width; /* Width of window */
- int Flags; /* Dialog box flags */
- int DefaultChar; /* Default character and attribute for window */
- int HintTextColor; /* Color for hint text, if any */
- int HintBackColor; /* Background color for the hint, if any */
- int HintOrgX; /* Hint window X origin */
- int HintOrgY; /* Hint window Y origin */
- int HintWidth; /* Width of hint window */
- int BorderStyle; /* Border style for window */
- int BorderColor; /* Border foreground color */
- int BorderBack; /* Border background color */
- int DropShadow; /* whether to drop shadow or not */
- int DropAttr; /* drop shadow attribute */
- char *Title; /* Pointer to Title Text */
- void (*Entry)(void); /* function to execute upon entry */
- #ifdef __Z_INIT_EXT__
- DLG_CONTROL Control[]; /* Control array */
- #else
- DLG_CONTROL *Control; /* Control array */
- #endif
- } DIALOG;
-
- /* Dialog Box Flags */
- #define DBF_USEHINT 0x1
- #define DBF_NOHINT 0x0
-
- /************************ Keyboard definitions ******************/
- /* This section defines all keys and keyboard functions *********/
- /****************************************************************/
-
- /* Readmap to keyboard combinations */
- #define k_special 0xf00
- #define k_F1 0xf3b
- #define k_F2 0xf3c
- #define k_F3 0xf3d
- #define k_F4 0xf3e
- #define k_F5 0xf3f
- #define k_F6 0xf40
- #define k_F7 0xf41
- #define k_F8 0xf42
- #define k_F9 0xf43
- #define k_F10 0xf44
- #define k_F11 0xf85
- #define k_F12 0xf86
- #define k_Shift_F1 0xf54
- #define k_Shift_F2 0xf55
- #define k_Shift_F3 0xf56
- #define k_Shift_F4 0xf57
- #define k_Shift_F5 0xf58
- #define k_Shift_F6 0xf59
- #define k_Shift_F7 0xf5a
- #define k_Shift_F8 0xf5b
- #define k_Shift_F9 0xf5c
- #define k_Shift_F10 0xf5d
- #define k_Shift_F11 0xf87
- #define k_Shift_F12 0xf88
- #define k_Alt_F1 0xf68
- #define k_Alt_F2 0xf69
- #define k_Alt_F3 0xf6a
- #define k_Alt_F4 0xf6b
- #define k_Alt_F5 0xf6c
- #define k_Alt_F6 0xf6d
- #define k_Alt_F7 0xf6e
- #define k_Alt_F8 0xf6f
- #define k_Alt_F9 0xf70
- #define k_Alt_F10 0xf71
- #define k_Alt_F11 0xf8b
- #define k_Alt_F12 0xf8c
- #define k_Ctrl_F1 0xf5e
- #define k_Ctrl_F2 0xf5f
- #define k_Ctrl_F3 0xf60
- #define k_Ctrl_F4 0xf61
- #define k_Ctrl_F5 0xf62
- #define k_Ctrl_F6 0xf63
- #define k_Ctrl_F7 0xf64
- #define k_Ctrl_F8 0xf65
- #define k_Ctrl_F9 0xf66
- #define k_Ctrl_F10 0xf67
- #define k_Ctrl_F11 0xf89
- #define k_Ctrl_F12 0xf8a
- #define k_UpArr 0xf48
- #define k_DnArr 0xf50
- #define k_RtArr 0xf4d
- #define k_LtArr 0xf4b
- #define k_PgUp 0xf49
- #define k_PgDn 0xf51
- #define k_Home 0xf47
- #define k_End 0xf4f
- #define k_Ins 0xf52
- #define k_Del 0xf53
- #define k_Shift_UpArr 0xf48
- #define k_Shift_DnArr 0xf50
- #define k_Shift_RtArr 0xf4d
- #define k_Shift_LtArr 0xf4b
- #define k_Shift_PgUp 0xf49
- #define k_Shift_PgDn 0xf51
- #define k_Shift_Home 0xf47
- #define k_Shift_End 0xf4f
- #define k_Shift_Ins 0xf52
- #define k_Shift_Del 0xf53
- #define k_Alt_UpArr 0xf98
- #define k_Alt_DnArr 0xfa0
- #define k_Alt_RtArr 0xf9d
- #define k_Alt_LtArr 0xf9b
- #define k_Alt_PgUp 0xf99
- #define k_Alt_PgDn 0xfa1
- #define k_Alt_Home 0xf00
- #define k_Alt_End 0xf9f
- #define k_Alt_Ins 0xfa2
- #define k_Alt_Del 0xfa3
- #define k_Ctrl_UpArr 0xf8D
- #define k_Ctrl_DnArr 0xf91
- #define k_Ctrl_RtArr 0xf74
- #define k_Ctrl_LtArr 0xf73
- #define k_Ctrl_PgUp 0xf84
- #define k_Ctrl_PgDn 0xf76
- #define k_Ctrl_Home 0xf77
- #define k_Ctrl_End 0xf75
- #define k_Ctrl_Ins 0xf92
- #define k_Ctrl_Del 0xf93
- #define k_Esc 0x1b
- #define k_Enter 0x0d
- #define k_Backspace 0x08
- #define k_Tab 0x09
- #define k_Shift_Tab 0xf0f
- #define k_Ctrl_A 0x01
- #define k_Ctrl_B 0x02
- #define k_Ctrl_C 0x03
- #define k_Ctrl_D 0x04
- #define k_Ctrl_E 0x05
- #define k_Ctrl_F 0x06
- #define k_Ctrl_G 0x07
- #define k_Ctrl_H 0x08
- #define k_Ctrl_I 0x09
- #define k_Ctrl_J 0x0A
- #define k_Ctrl_K 0x0B
- #define k_Ctrl_L 0x0C
- #define k_Ctrl_M 0x0D
- #define k_Ctrl_N 0x0E
- #define k_Ctrl_O 0x0F
- #define k_Ctrl_P 0x10
- #define k_Ctrl_Q 0x11
- #define k_Ctrl_R 0x12
- #define k_Ctrl_S 0x13
- #define k_Ctrl_T 0x14
- #define k_Ctrl_U 0x15
- #define k_Ctrl_V 0x16
- #define k_Ctrl_W 0x17
- #define k_Ctrl_X 0x18
- #define k_Ctrl_Y 0x19
- #define k_Ctrl_Z 0x1A
- #define k_Alt_A 0xf1e
- #define k_Alt_B 0xf30
- #define k_Alt_C 0xf2e
- #define k_Alt_D 0xf20
- #define k_Alt_E 0xf12
- #define k_Alt_F 0xf21
- #define k_Alt_G 0xf22
- #define k_Alt_H 0xf23
- #define k_Alt_I 0xf17
- #define k_Alt_J 0xf24
- #define k_Alt_K 0xf25
- #define k_Alt_L 0xf26
- #define k_Alt_M 0xf32
- #define k_Alt_N 0xf31
- #define k_Alt_O 0xf18
- #define k_Alt_P 0xf19
- #define k_Alt_Q 0xf10
- #define k_Alt_R 0xf13
- #define k_Alt_S 0xf1f
- #define k_Alt_T 0xf14
- #define k_Alt_U 0xf16
- #define k_Alt_V 0xf2f
- #define k_Alt_W 0xf11
- #define k_Alt_X 0xf2d
- #define k_Alt_Y 0xf15
- #define k_Alt_Z 0xf2c
- #define k_Alt_1 0xf78
- #define k_Alt_2 0xf79
- #define k_Alt_3 0xf7a
- #define k_Alt_4 0xf7b
- #define k_Alt_5 0xf7c
- #define k_Alt_6 0xf7d
- #define k_Alt_7 0xf7e
- #define k_Alt_8 0xf7f
- #define k_Alt_9 0xf80
- #define k_Alt_0 0xf81
- #define k_NoKey -1
-
- /* Prompt Structure */
- typedef struct {
- char * Response;
- char * Prompt;
- char * Mask;
- int Length;
- int XPos;
- int YPos;
- int PromptColor;
- int PromptBack;
- int ResponseColor;
- int ResponseBack;
- int HiColor;
- int HiBack;
- int (*Verify)(char *);
- char *Hint;
- } PROMPT;
-
- /************************ PickList ******************************/
- /* This section defines the picklist pre-defined window type ****/
- /****************************************************************/
-
- /* Picklist items */
- struct PL_ITEM {
- char *ItemText;
- struct PL_ITEM *Prev;
- struct PL_ITEM *Next;
- };
- typedef struct PL_ITEM PICKLIST_ITEM;
-
- /* PickList structure */
- typedef struct {
- int OrgX; /* Picklist X origin (upper left corner) */
- int OrgY; /* Picklist Y origin (upper left corner) */
- int Height; /* Window Height */
- int Width; /* Window width */
- int TextWidth; /* picklist text width */
- int Flags; /* Picklist flags */
- int TextColor; /* color of text */
- int BackColor; /* color of background */
- int HiTextColor; /* color of hilighted text */
- int HiBackColor; /* color of background text */
- int BorderStyle; /* border styles */
- int BorderColor; /* Border Color */
- int BorderBack; /* Border Background Color */
- int DefaultChar; /* default character for window */
- int DropShadow; /* whether to drop shadow the picklist */
- int DropAttr; /* the atttribute to use */
- char *Title; /* Picklist window border title */
- WINDOW *pWin; /* pointer to the window to use */
- PICKLIST_ITEM *Item; /* Head of PICKLIST_ITEM structures list */
- PICKLIST_ITEM *LastItem;/* Tail of PICKLIST_ITEM structures list */
- } PICKLIST;
-
- /************************ Functions *****************************/
- /* This section defines externally known functions **************/
- /****************************************************************/
- /* Popup Window Functions */
- int Z_IsCharOnTop(WINDOW *, int, int, int);
- void Z_ShowWindow(WINDOW *);
- void Z_HideWindow(WINDOW *);
- void Z_UnDefineWindow(WINDOW *);
- WINDOW * Z_DefineWindow(WINDOW *);
- void Z_UpdatePhysicalScreen(WINDOW *, int, int, int, int);
- void Z_TextOut(WINDOW *, char *, int, int, int, int);
- void Z_TextOver(WINDOW *, char *, int, int);
- WINDOW * Z_CreateWindow(WINDOW *, int, int, int, int, int, int, int, int, int, int, char *, char *);
- void Z_BorderWindow(WINDOW *);
- void Z_ClearScreen(char, char);
- void Z_SetCursor(WINDOW *, int, int);
- WINDOW * Z_OpenWindow(WINDOW *);
- void Z_CloseWindow(WINDOW *);
- void Z_ScrollUp(WINDOW *, int);
- void Z_ScrollDown(WINDOW *, int);
- void Z_GetVideoMode(void);
- void Z_SetVideoMode(int, int);
- void Z_TitleWindow(WINDOW *);
- void Z_BorderWindow(WINDOW *);
- void Z_PopWindow(WINDOW *);
- void Z_PushWindow(WINDOW *);
- int Z_GetCharOnTop(WINDOW *, int, int);
-
- /* Menu Functions */
- void Z_DisplayMenuSelection(MENU *, WINDOW *, int, int);
- int Z_CountMenuItems(MENU *);
- WINDOW * Z_InitMenu(MENU *, WINDOW *, int *);
- WINDOW * Z_InitHint(MENU *, WINDOW *);
- int Z_HandleMenu(MENU *);
-
- /* Dialog Box Functions */
- int Z_HandleDialog(DIALOG *);
- int Z_InformUser(char *, char *, char *, char *);
- int Z_CountDialogItems(DIALOG *);
- int Z_NextActiveControl(DIALOG *, int, int);
- int Z_PrevActiveControl(DIALOG *, int, int);
-
- /* Keyboard functions */
- int Z_GetKey(void);
- void Z_Delay(int);
- int Z_HandleInputs(WINDOW *, WINDOW *, PROMPT *, int *);
- int Z_SetBackgroundProcess(void (*pFunc)(void), int Milli);
-
- /* PickList functions */
- void Z_PurgePickList(PICKLIST *);
- void Z_DestroyPickList(PICKLIST *);
- int Z_AddPickListItem(PICKLIST *, char *);
- int Z_RemovePickListItem(PICKLIST *, char *);
- PICKLIST_ITEM * Z_HandlePickList(PICKLIST *);
- void Z_OpenPickList(PICKLIST *);
- void Z_ClosePickList(PICKLIST *);
- int Z_ShowPickList(PICKLIST *, int, PICKLIST_ITEM *, PICKLIST_ITEM **);
- int Z_RemovePickListEntry(PICKLIST *, PICKLIST_ITEM *);
-