home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
zip
/
mint
/
atarimgr.lzh
/
LIB
/
WINDOW.H
< prev
Wrap
C/C++ Source or Header
|
1990-10-20
|
9KB
|
231 lines
/* 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)