home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (c) 1988 Bellcore
- * All Rights Reserved
- * Permission is granted to copy or use this program, EXCEPT that it
- * may not be sold for profit, the copyright notice must be reproduced
- * on copies, and credit should be given to Bellcore where it is due.
- * BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
- */
- /* $Header: window.h,v 4.2 88/08/12 07:41:26 sau Exp $
- $Source: /tmp/mgrsrc/lib/RCS/window.h,v $
- */
- static char h_window_[] = "$Source: /tmp/mgrsrc/lib/RCS/window.h,v $$Revision: 4.2 $";
-
- /* defines for terminal emulator */
-
- /* text flags - for commands with text string arguments */
-
- #define T_INVALID 0 /* invalid command */
- #define T_FONT 1 /* down load a new font */
- #define T_MENU 2 /* down load a menu */
- #define T_EVENT 3 /* down load an event string */
- #define T_YANK 4 /* fill the yank bufffer */
- #define T_BITMAP 5 /* down load a bit map */
- #define T_COMMAND 6 /* start a new window & command in it */
- #define T_GIMME 7 /* send me stuff */
- #define T_SMAP 8 /* save a bitmap on a file */
- #define T_GMAP 9 /* read a bitmap from a file */
- #define T_SEND 10 /* send a message to another application */
- #define T_GRUNCH 11 /* fast-draw, short vector mode */
- #define T_STRING 12 /* write a text sting into an offscreen bitmap */
-
- /* option codes for GETMODE / SETMODE */
-
- #define M_STANDOUT 0 /* window is in standout mode */
- #define M_WOB 1 /* window is white on black */
- #define M_AUTOEXPOSE 2 /* expose window upon shell output */
- #define M_BACKGROUND 3 /* permit obscured window to update */
- #define M_NOINPUT 4 /* don't accept keyboard input */
- #define M_NOWRAP 5 /* don't auto wrap */
- #define M_OVERSTRIKE 6 /* overstrike mode */
- #define M_ABS 7 /* use absolute coordinates */
- #define M_ACTIVATE 8 /* activate / hide window; not a mode */
- #define M_STACK 12 /* permit event stacking */
- #define M_DUPKEY 13 /* set keyboard escape key */
- #define M_NOBUCKEY 14 /* prevent mgr processing buckey keys,
- pass them through to the application */
-
- /* cut/paste options */
-
- #define M_SNARFLINES 9 /* only snarf entire lines */
- #define M_SNARFTABS 10 /* change spaces to tabs in snarf */
- #define M_SNARFHARD 11 /* snarf even if errors */
-
- /* option codes for GETINFO */
-
- #define G_MOUSE 0 /* mouse coordinates */
- #define G_TERMCAP 1 /* send back termcap entry */
- #define G_WINSIZE 2 /* cols, lines */
- #define G_FONT 3 /* font wide, high, # */
- #define G_COORDS 4 /* window coords */
- #define G_STATUS 5 /* window status */
- #define G_ALL 6 /* complete window status */
- #define G_SYSTEM 7 /* system status */
- #define G_ALLFONT 8 /* font information */
- #define G_TEXT 9 /* text region size */
- #define G_ALLMINE 10 /* window status for client windows */
- #define G_CURSOR 11 /* character/ graphics cursor position */
- #define G_MOUSE2 12 /* cooked mouse coordinates */
- #define G_NOTIFY 13 /* gimme info re notify windows */
- #define G_ID 14 /* my client window number */
- #define G_FLAGS 15 /* current window flags */
- #define G_MAX 15 /* maximum GETINFO value */
-
- /* option codes for stacking window environment */
-
- #define P_MENU 0x001 /* push menus */
- #define P_EVENT 0x002 /* push events */
- #define P_FONT 0x004 /* push current font */
- #define P_CURSOR 0x008 /* push current cursor position */
- #define P_BITMAP 0x010 /* push saved bitmaps */
- #define P_POSITION 0x020 /* push window location */
- #define P_WINDOW 0x040 /* push window contents */
- #define P_FLAGS 0x080 /* push window flags */
- #define P_MOUSE 0x100 /* push mouse position */
- #define P_TEXT 0x200 /* push text region */
-
-
- #define P_ALL 0x3ff /* push everything */
- #define P_MAX 0x400 /* end of codes marker */
- #define P_DEFAULT (P_MENU | P_EVENT | P_FONT | P_FLAGS | P_TEXT)
- #define P_CLEAR 0x400 /* clear new environment */
-
- /* menu_flags */
-
- #define MF_SNIP 8 /* don't send action for parent of s/o menu */
- #define MF_PAGE 4 /* auto-page for menus */
- #define MF_AUTO 2 /* auto-right exit for menus */
- #define MF_CLEAR 1 /* clear menu flags */
-
- /* Escape codes */
-
- #define ESC '\033' /* escape character */
-
- #define E_MINUS '-' /* set the munus flag */
- #define E_SEP1 ',' /* primary field seperator */
- #define E_SEP2 ';' /* secondary field seperator */
- #define E_MOUSE '?' /* testing -- move the mouse */
- #define E_ADDLINE 'a' /* add a new line */
- #define E_ADDCHAR 'A' /* add a character */
- #define E_BITBLT 'b' /* do a bit blit */
- #define E_BITCRT 'B' /* create a bit blit */
- #define E_CLEAREOL 'c' /* clear */
- #define E_CLEAREOS 'C' /* clear */
- #define E_DELETELINE 'd' /* delete a line */
- #define E_BITLOAD 'D' /* download a bitmap */
- #define E_EVENT 'e' /* download events */
- #define E_DELETECHAR 'E' /* delete a char */
- #define E_DOWN 'f' /* down 1 line */
- #define E_FONT 'F' /* pick a new font */
- #define E_GO 'g' /* Go; move graphics pointer */
- #define E_MOVE 'G' /* move to x,y pixels */
- #define E_SETCURSOR 'h' /* select cursor style */
- #define E_BLEEP 'H' /* blink a section of the screen */
- #define E_GETINFO 'I' /* get info from mgr */
- #define E_STANDOUT 'i' /* start standout mode */
- #define E_FCOLOR 'j' /* set forground color */
- #define E_BCOLOR 'J' /* set background color */
- #define E_LINE 'l' /* Plot a line */
- #define E_LINK 'L' /* menu links */
- #define E_MENU 'm' /* download menus */
- #define E_CUP 'M' /* move to col, row (zero origin) */
- #define E_STANDEND 'n' /* end standout mode */
- #define E_CIRCLE 'o' /* Plot a circle or an ellipse or an arc */
- #define E_PUSH 'P' /* push window environment */
- #define E_POP 'p' /* pop window environment */
- #define E_RUBBER 'R' /* rubber band a line/rect (obsolete) */
- #define E_RIGHT 'r' /* right 1 column */
- #define E_CLEARMODE 's' /* clear window mode */
- #define E_SETMODE 'S' /* set a window mode */
- #define E_TEXTREGION 't' /* set the text region */
- #define E_UPLINE 'u' /* up 1 line */
- #ifdef atarist
- #define E_UP E_UPLINE /* Some programs expect E_UP still?? */
- #endif
- #define E_BITGET 'U' /* upload a bitmap */
- #define E_SHAPE 'W' /* reshape window, make it active */
- #define E_SIZE 'w' /* reshape window: cols,rows */
- #define E_GIMME 'x' /* send me data */
- #define E_PUTSNARF 'y' /* put the snarf buffer */
- #define E_SNARF 'Y' /* snarf text into the snarf buffer */
- #define E_VI 'V' /* set vi mode */
- #define E_NOVI 'v' /* turn off vi mode */
- #define E_HALFWIN 'z' /* make a 1/2 window */
- #define E_MAKEWIN 'Z' /* make/goto a new window */
- #define E_NULL '$' /* do nothing, force exit */
- #define E_SMAP '>' /* save a bitmap */
- #define E_GMAP '<' /* get a bitmap */
- #define E_SEND '|' /* send a message to another application */
- #define E_CURSOR '%' /* set mouse cursor */
- #define E_GRUNCH ':' /* graphics crunch mode (experimental) */
- #define E_STRING '.' /* write characters in offscreen bitmap */
- #ifdef XMENU
- #define E_XMENU 'X' /* extended menu operations */
- #endif
-
-
- /* misc */
-
- #define C_NOCHAR '?' /* for character not in font */
- #define C_EXPOSED 'e' /* window is not obscured */
- #define C_ACTIVE 'a' /* window has input focus */
- #define C_NOTACTIVE 'n' /* window is obscured */
- #define C_OBSCURED 'o' /* window is obscured */
- #define C_NAME "px|mgr|mgr teminal emulator"
-
- #define C_NULL '\000' /* null */
- #define C_BS '\b' /* back space */
- #define C_FF '\f' /* form feed */
- #define C_BELL '\007' /* bell */
- #define C_TAB '\t' /* tab */
- #define C_RETURN '\r' /* return */
- #define C_NL '\n' /* line feed */
-
- /* cursor styles */
- #define CS_BLOCK 0 /* standard block cursor */
- #define CS_LEFT 1 /* left vertical bar */
- #define CS_RIGHT 2 /* right vertical bar */
- #define CS_BOX 3 /* outline */
- #define CS_UNDER 4 /* underline */
- #define CS_INVIS 9 /* invisible */
-
- /* some raster op functions (for bit_copy) */
-
- #ifndef BIT_NOT
- #define BIT_NOT(x) (~(x)) /* from bitmap.h */
- #endif
- #define B_SRC (0xc)
- #define B_DST (0xa)
- #define B_OR (B_SRC|B_DST)
- #define B_COPY (B_SRC)
- #define B_COPYINVERTED ((BIT_NOT(B_SRC))&0xf)
- #define B_XOR (B_SRC^B_DST)
- #define B_AND (B_SRC&B_DST)
-
- /* raster op functions (for bit_write and bit_line) */
-
- #define B_SET (0xf)
- #define B_CLEAR (0x0)
- #define B_INVERT ((BIT_NOT(B_DST))&0xf)
-
- /* where to find icon directory */
-
- #ifndef ICONDIR
- # define ICONDIR "/usr/mgr/icon" /* readable by all icons */
- #endif
-
- /* other macros */
-
- #define Scalex(x) \
- (W(flags)&W_ABSCOORDS ? (x) : (x) * (int)BIT_WIDE(W(window))/GMAX)
- #define Scaley(y) \
- (W(flags)&W_ABSCOORDS ? (y) : (y) * (int)BIT_HIGH(W(window))/GMAX)
- #define Scalexy(y) \
- (W(flags)&W_ABSCOORDS ? (y) : \
- (y) * (int)(BIT_HIGH(W(window))+BIT_WIDE(W(window)))/(2*GMAX))
-
- #define FSIZE(c) ((int) (W(font)->head.c))
- #define WIDE BIT_WIDE(window)
- #define HIGH BIT_HIGH(window)
- #define T_WIDE BIT_WIDE(text)
- #define T_HIGH BIT_HIGH(text)
-