|
|
1.1 ! root 1: /* include file for lqh.c */ ! 2: ! 3: #define INCL_BASE /* include all of the OS/2 base */ ! 4: ! 5: #include <os2.h> /* OS/2 includes */ ! 6: #include "lqhdll.h" /* definitions for qhdll.dll */ ! 7: ! 8: #define atNORMAL 0x07 /* normal attribute */ ! 9: #define atHILITE 0x70 /* highlighted attribute */ ! 10: #define atITALIC 0x02 /* italics attribute */ ! 11: #define atBOLD 0x0F /* bold attribute */ ! 12: #define atWARNING 0x47 /* error box attribute */ ! 13: #define atMENU 0x30 /* menu bar */ ! 14: #define atLEAD 0x3f /* leading letter of menu */ ! 15: #define atBOX 0x03 /* box color */ ! 16: #define atSEARCHBOX 0x17 /* search box color */ ! 17: ! 18: #define MAXPRELOAD 150 /* maximum number of preloaded topics */ ! 19: #define MAXLIST 20 /* maximum number of list categories */ ! 20: #define MAXPASTE 5 /* maximum number of paste sections */ ! 21: #define MAXREF 10 /* maximum number of references */ ! 22: #define MAXNAMESIZE 25 /* maximum function name size */ ! 23: #define MAXCATNAME 20 /* maximum category name size */ ! 24: ! 25: #define BOXLEFT 0 /* left column of box border */ ! 26: #define BOXRIGHT 79 /* right column of box border */ ! 27: #define BOXTOP 1 /* top column of box border */ ! 28: ! 29: #define THIN 1 /* box line type */ ! 30: #define THICK 2 /* box line type */ ! 31: ! 32: typedef ULONG NC; /* context number for Help engine functins */ ! 33: ! 34: typedef struct _SELTABLE { /* table of current selectors */ ! 35: NC ncContext; /* context number */ ! 36: SEL sel; /* selector */ ! 37: USHORT usTopLine; /* top line of display */ ! 38: USHORT usHighLight; /* highlighted line */ ! 39: } SELTABLE; ! 40: ! 41: typedef struct _STRTABLE { /* table of char-attribute strings */ ! 42: PCH addr; /* address of the string */ ! 43: USHORT cb; /* length of the string */ ! 44: } STRTABLE; ! 45: ! 46: typedef struct _MENUTABLE { ! 47: BYTE scancode; /* scan code */ ! 48: BYTE pos; /* position */ ! 49: } MENUTABLE; ! 50: ! 51: typedef struct _LIST { /* category structure */ ! 52: NPSZ name[MAXCATNAME]; ! 53: } LIST; ! 54: ! 55: typedef struct _TOPICHDR { ! 56: BYTE appChar; /* app-specific character */ ! 57: BYTE lineChar; /* what line to remove */ ! 58: BYTE ftype; /* source file type */ ! 59: USHORT lnCur; /* line number last accessed */ ! 60: USHORT lnOff; /* offset into topic for that line */ ! 61: } TOPICHDR; ! 62: ! 63: extern VIOCURSORINFO viociCursor; /* cursor data */ ! 64: extern KBDKEYINFO kbdciKeyInfo; /* structure for key data */ ! 65: extern QHBOX qhbBox; /* contains box dimensions */ ! 66: ! 67: extern CHAR chMenu[]; ! 68: extern CHAR achBlank[2]; ! 69: extern MENUTABLE menuCatTable[]; ! 70: ! 71: extern CHAR chReference[]; /* used to store reference strings */ ! 72: extern NPSZ npszRefTable[]; /* table of reference functions */ ! 73: extern STRTABLE strTable[]; /* maintains address of each line */ ! 74: extern USHORT usRefCount; /* number of reference functions */ ! 75: extern LIST lstList[]; /* list category names */ ! 76: extern USHORT usListPos; /* position in tables */ ! 77: ! 78: extern USHORT hmou; /* handle to the mouse */ ! 79: extern MOUEVENTINFO mouevEvent; /* mouse event packet structure */ ! 80: extern NOPTRRECT mourtRect; ! 81: extern BOOL fMouButton; /* TRUE if button clicked */ ! 82: extern USHORT MouReadType; /* don't wait for mouse event */ ! 83: ! 84: extern BYTE bNormalAtt; ! 85: extern BYTE bHiAtt; ! 86: extern BYTE bBoldAtt; ! 87: extern BYTE bItalicAtt; ! 88: extern BYTE bMenuAtt; ! 89: extern BYTE bHiMenuAtt; ! 90: extern BYTE bLead; ! 91: extern BYTE bHiLead; ! 92: ! 93: extern SEL selBoxSave; /* selector to memory for screen save */ ! 94: SEL selStringTable; /* selector for char-attribute strings */ ! 95: ! 96: extern USHORT usBottomLine; /* current bottom line number */ ! 97: extern USHORT usInterior; /* maximum number of displayed lines */ ! 98: extern USHORT usTotalLines; /* total number of line */ ! 99: extern USHORT usStructLine; /* starting line of structure section */ ! 100: ! 101: extern BOOL fListDisplay; /* TRUE if function list is displayed */ ! 102: extern BOOL fBack; /* True if HelpNcBack() was called */ ! 103: extern USHORT usSaveMenuPos; /* current Category menu position */ ! 104: ! 105: extern SELTABLE selTable[]; /* table of preloaded topics */ ! 106: extern USHORT usCurrent; /* current index in selTable */ ! 107: ! 108: extern ULONG FAR hsemNewRef; /* RAM semaphore used by PreLoad() */ ! 109: extern TID tidPreLoad; /* identifier for PreLoad thread */ ! 110: extern BYTE bThreadStack[]; /* stack for PreLoad thread */ ! 111: ! 112: extern CHAR chMenuTable[]; /* table of menu keys */ ! 113: extern SHORT sMenuTablePos; ! 114: extern SHORT sDirection; /* used by menus */ ! 115: ! 116: extern NC ncHelp; /* handle to help data file */ ! 117: extern BYTE bAttr[]; ! 118: extern CHAR chHelpName[]; /* path and name for qh.hlp */ ! 119: extern CHAR chPasteName[]; /* path and name for paste.qh */ ! 120: extern USHORT usOpenType; /* truncate/append */ ! 121: extern VIOMODEINFO vmiMode; /* video mode */ ! 122: ! 123: VOID cdecl main(); /* qhmain */ ! 124: BOOL ReadScreen(BOOL); /* qhmain */ ! 125: VOID Display(); /* qhmain */ ! 126: VOID FAR Abort(); /* qhmain */ ! 127: VOID ScrollUp(); /* qhmain */ ! 128: VOID ScrollDown(); /* qhmain */ ! 129: VOID MouseRelease(); /* qhmain */ ! 130: BOOL isalpha(CHAR); /* qhmain */ ! 131: VOID Reference(); /* qhmenu */ ! 132: VOID Options(); /* qhmenu */ ! 133: VOID Search(); /* qhmenu */ ! 134: VOID Input(); /* qhmenu */ ! 135: VOID ListMenu(); /* qhmenu */ ! 136: VOID AddBar(USHORT, USHORT); /* qhmenu */ ! 137: VOID DeleteBar(USHORT, USHORT); /* qhmenu */ ! 138: BOOL MenuLoop(QHBOX *, USHORT *, BOOL, USHORT); /* qhmenu */ ! 139: BOOL HelpSearch(NPSZ, BOOL, NC); /* qhhelp */ ! 140: VOID FAR PreLoadThread(); /* qhhelp */ ! 141: BOOL Init(); /* qhinit */ ! 142: ! 143: /* Help engine prototypes */ ! 144: ! 145: VOID FAR PASCAL HelpClose(NC); ! 146: NC FAR PASCAL HelpOpen(PCH); ! 147: NC FAR PASCAL HelpNc(PCH, NC); ! 148: USHORT FAR PASCAL HelpNcCb(NC); ! 149: USHORT FAR PASCAL HelpLook(NC, PCH); ! 150: BYTE FAR PASCAL HelpSetChar(NC, BYTE); ! 151: BOOL FAR PASCAL HelpDecomp(PBYTE, PBYTE, NC); ! 152: NC FAR PASCAL HelpNcNext(NC); ! 153: NC FAR PASCAL HelpNcBack(); ! 154: VOID FAR PASCAL HelpNcRecord(NC); ! 155: SHORT FAR PASCAL HelpGetCells(USHORT, INT, PCHAR, PCHAR, PBYTE); ! 156: SHORT FAR PASCAL HelpGetLine(USHORT, USHORT, PBYTE, PBYTE);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.