home *** CD-ROM | disk | FTP | other *** search
- /*=================================================*/
- /* TVSTREAM.H */
- /* prototypes and definitions for streams */
- /* */
- /* (c) Copyright 1988 Ralf Brown */
- /*=================================================*/
-
- /*==========================================*/
- /* stream headers, place at beginning of a */
- /* stream */
- /*==========================================*/
-
- #define S_WINDOW(size) 0x1B, 0x00, size&0xFF, size>>8
- #define S_QUERY(size) 0x1B, 0x01, size&0xFF, size>>8
- #define S_MANAGER(size) 0x1B, 0x10, size&0xFF, size>>8
-
- /*==========================================*/
-
- #define WS_BLANKS(num) 0x00|(num & 0x1F)
- #define WS_CHAR(num,ch) 0x20|(num & 0x1F),ch
- #define WS_ATTR(num,attr) 0x40|(num & 0x1F),attr
- #define WS_CHARS(num) 0x60|(num & 0x1F) /* followed by appr # chars */
- #define WS_MANYBLANKS(num) 0x80|((num >> 8) & 7),(num & 0xFF)
- #define WS_MANYCHAR(num,ch) 0x88|((num >> 8) & 7),(num & 0xFF),ch
- #define WS_MANYATTR(num,attr) 0x90|((num >> 8) & 7),(num & 0xFF),attr
- #define WS_MANYCHARS(num) 0x98|((num >> 8) & 7),(num & 0xFF) /* + chars */
- #define WS_SETCURSROW(row) 0xA0,row
- #define WS_SETCURSCOL(col) 0xA1,col
- #define WS_SCRLROW(row) 0xA2,row
- #define WS_SCRLCOL(col) 0xA3,col
- #define WS_WINROW(row) 0xA4,row
- #define WS_WINCOL(col) 0xA5,col
- #define WS_WINROWS(rows) 0xA6,rows
- #define WS_WINCOLS(cols) 0xA7,cols
- #define WS_VIEWPORTROW(row) 0xA8,row
- #define WS_VIEWPORTCOL(col) 0xA9,col
- #define WS_LSIZEROWS(rows) 0xAA,rows
- #define WS_LSIZECOLS(cols) 0xAB,cols
- #define WS_CURSDOWN(rows) 0xB0,rows
- #define WS_CURSRIGHT(cols) 0xB1,cols
- #define WS_SCRLORIGDOWN(rows) 0xB2,rows
- #define WS_SCRLORIGRIGHT(rows) 0xB3,cols
- #define WS_SHFTWINROW(rows) 0xB4,rows
- #define WS_SHFTWINCOL(cols) 0xB5,cols
- #define WS_EXPWINROWS(rows) 0xB6,rows
- #define WS_EXPWINCOLS(cols) 0xB7,cols
- #define WS_SHFTVIEWROW(rows) 0xB8,rows
- #define WS_SHFTVIEWCOL(cols) 0xB9,cols
- #define WS_RELSIZEROWS(rows) 0xBA,rows
- #define WS_RELSIZECOLS(cols) 0xBB,cols
- #define WS_CURSPOS(row,col) 0xC0,row,col
- #define WS_SCRLORIG(row,col) 0xC1,row,col
- #define WS_WINPOS(row,col) 0xC2,row,col
- #define WS_WINSIZE(rows,cols) 0xC3,rows,cols
- #define WS_VIEWPORT(row,col) 0xC4,row,col
- #define WS_LSIZE(rows,cols) 0xC5,rows,cols
- #define WS_RELCURS(rows,cols) 0xC8,rows,cols
- #define WS_RELSCRL(rows,cols) 0xC9,rows,cols
- #define WS_RELWINPOS(rows,cols) 0xCA,rows,cols
- #define WS_RELWINSIZ(rows,cols) 0xCB,rows,cols
- #define WS_RELVIEWP(rows,cols) 0xCC,rows,cols
- #define WS_RELLSIZE(rows,cols) 0xCD,rows,cols
- #define WS_UPDATE 0xD4,0xE4
- #define WS_UNHIDDEN 0xD4
- #define WS_HIDDEN 0xD5
- #define WS_FRAME 0xD6
- #define WS_NOFRAME 0xD7
- #define WS_READCHAR 0xD8
- #define WS_READATTR 0xD9
- #define WS_LOGATTR 0xDA
- #define WS_PHYSATTR 0xDB
- #define WS_CTRLCHAR 0xDC
- #define WS_NOCTRLCHAR 0xDD
- #define WS_WRITEATTR 0xDE
- #define WS_LEAVEATTR 0xDF
- #define WS_REPEAT(count) 0xE0,count
- #define WS_DOREPEAT 0xE1
- #define WS_SETCOLOR(color) 0xE2,color
- #define WS_CLEAR 0xE3
- #define WS_REDRAW 0xE4
- #define WS_TWOKEY_MENU 0xE5,0x18
- #define WS_NEWWIN(rows,cols) 0xE6,rows,cols
- #define WS_SCRL_UP(h,w) 0xE8,h,w
- #define WS_SCRL_DOWN(h,w) 0xE9,h,w
- #define WS_SCRL_LEFT(h,w) 0xEA,h,w
- #define WS_SCRL_RIGHT(h,w) 0xEB,h,w
- /* each of the next three opcodes must be followed by the proper number of */
- /* data bytes */
- #define WS_ATTRIB(flags,f,start,num) 0xEC,flags,(f<<7)|((start&7)<<4)|(num&15)
- #define WS_FRATTR(flags,f,start,num) 0xED,flags,(f<<7)|((start&7)<<4)|(num&15)
- #define WS_FRCHAR(flags,f,start,num) 0xEE,flags,(f<<7)|((start&7)<<4)|)num&15)
- #define WS_TITLE(len) 0xEF,len /* followed by "len" chars for title */
- #define WS_FLDCLEAR(fld) 0xF0,fld
- #define WS_FLDCHAR(fld,char) 0xF1,fld,char
- #define WS_FLDATTR(fld,color) 0xF2,fld,color
- #define WS_FLDCURS(fld) 0xF4,fld
- #define WS_FLDTYPE(fld,type) 0xF6,fld,type
- #define WS_FLDSCRLUP(fld) 0xF8,fld
- #define WS_FLDSCRLDOWN(fld) 0xF9,fld
- #define WS_FLDSCRLLEFT(fld) 0xFA,fld
- #define WS_FLDSCRLRIGHT(fld) 0xFB,fld
- #define WS_FLDUNMODIFY 0xFD
- #define WS_FLDRESET 0xFE
-
- /*==========================================*/
-
- #define QS_CURSROW 0xA0,0
- #define QS_CURSCOL 0xA1,0
- #define QS_SCRLROW 0xA2,0
- #define QS_SCRLCOL 0xA3,0
- #define QS_WINROW 0xA4,0
- #define QS_WINCOL 0xA5,0
- #define QS_WINROWS 0xA6,0
- #define QS_WINCOLS 0xA7,0
- #define QS_VIEWROW 0xA8,0
- #define QS_VIEWCOL 0xA9,0
- #define QS_LSIZEROWS 0xAA,0
- #define QS_LSIZECOLS 0xAB,0
- #define QS_CURSPOS 0xC0,0,0
- #define QS_SCRLORIG 0xC1,0,0
- #define QS_WINPOS 0xC2,0,0
- #define QS_WINSIZE 0xC3,0,0
- #define QS_VIEWPORT 0xC4,0,0
- #define QS_LOGSIZE 0xC5,0,0
- #define QS_HIDDEN 0xD5
- #define QS_FRAME 0xD6
- #define QS_READATTR 0xD9
- #define QS_LOGATTR 0xDA
- #define QS_CTRLCHAR 0xDC
- #define QS_LEAVEATTR 0xDF
- #define QS_COLOR 0xE2,0
- #define QS_FLDTYPE 0xF6,0
-
- /*==========================================*/
- /* OR in these when building manager stream */
- /* which uses the immediately following */
- /* manifest constants */
- /* *don't* OR in when calling TVwin_allow, */
- /* TVwin_disallow, TVwin_notify, or */
- /* TVwin_cancel */
- /*==========================================*/
-
- #define MS_ALLOW 0x00
- #define MS_DISALLOW 0x20
- #define MS_NOTIFY 0x40
- #define MS_NONOTIFY 0x60
-
- #define TV_HMOVE 0x00 /* origin of window moves l/r */
- #define TV_VMOVE 0x01 /* origin of window moves u/d */
- #define TV_HSIZE 0x02 /* window width changes */
- #define TV_VSIZE 0x03 /* window height changes */
- #define TV_HSCROLL 0x04 /* window scrolled l/r */
- #define TV_VSCROLL 0x05 /* window scrolled u/d */
- #define TV_CLOSE 0x06 /* "Close" menu option */
- #define TV_HIDE 0x07 /* window hidden */
- #define TV_MARK 0x08 /* "Mark" menu, allow/disallow only */
- #define TV_HELP 0x08 /* "?" main menu selection, notify/cancel only */
- #define TV_COLORS 0x09 /* "Rearrange" "Colors"??? notify/cancel only */
- #define TV_SWITCHEDTO 0x0A /* switched from another window to this one, notify/cancel only */
- #define TV_RAISE TV_SWITCHEDTO
- #define TV_SWITCHEDAWAY 0x0B /* switched to another window, notify/cancel only */
- #define TV_LOWER TV_SWITCHEDAWAY
- #define TV_VIDEOMODE 0x0C /* changing video mode, notify/cancel only */
- #define TV_SCISSORS_CUT 0x0D /* selected "Scissors" "Cut", notify/cancel only */
- #define TV_SCISSORS_COPY 0x0E /* selected "Scissors" "Copy" */
- #define TV_SCISSORS 0x0E /* allow/disallow "Scissors" menu */
- #define TV_SCISSORS_PASTE 0x0F /* "Scissors" "Paste" selected, notify/cancel only */
- #define TV_MAINMENU 0x10 /* DV menu popped up */
- #define TV_SWITCH 0x11 /* "Switch" menu, allow/disallow only */
- #define TV_MENU_END 0x11 /* DV menu popped down, notify/cancel only */
- #define TV_OPENMENU 0x12 /* "Open" menu, allow/disallow only */
- #define TV_QUIT 0x13 /* "Quit" selection, allow/disallow only */
-
- /*==========================================*/
-
- #define MS_ATTACH 0x84
- #define MS_DETACH 0x85
- #define MS_FOREONLY 0x86
- #define MS_NOFOREONLY 0x87
- #define MS_MINSIZE(rows,cols) 0x88,rows,cols
- #define MS_MAXSIZE(rows,cols) 0x89,rows,cols
- #define MS_PRIM_ASYNC 0x8A /* plus DWORD pointer */
- #define MS_SEC_ASYNC 0x8B /* plus DWORD pointer */
-
- #define MS_FLDMARKER(ch) 0xAF,ch
-
- #define MS_WINTOPSYS 0xC0
- #define MS_GOFORE 0xC1
- #define MS_WINTOP 0xC2
- #define MS_CURRFLDPOS 0xC3
- #define MS_FLDPOS 0xC4
- #define MS_HIDECURR 0xC5
- #define MS_WINSHOW 0xC6
- #define MS_HIDE 0xC7
- #define MS_SUSPEND 0xC8
- #define MS_GOBACK 0xC9
- #define MS_WINBOTTOM 0xCA
- /* #define MS_??? 0xCB */
- #define MS_FREETASK 0xCC
- #define MS_REORDER 0xCE
-