home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Education
/
collectionofeducationcarat1997.iso
/
SCIENCE
/
EPHEM421.ZIP
/
SCREEN.H
< prev
next >
Wrap
Text File
|
1990-09-13
|
5KB
|
217 lines
/* screen layout details
*
* it looks better if the fields are drawn in some nice order so it you
* rearrange the fields, check the menu printing functions.
*/
/* size of screen */
#define NR 24
#define NC 80
#define ASPECT (4./3.) /* screen width to height dimensions ratio */
#define GAP 6 /* gap between field name and value */
#define COL1 1
#define COL2 27
#define COL3 44
#define COL4 61 /* calendar */
#define R_PROMPT 1 /* prompt row */
#define C_PROMPT COL1
#define R_NEWCIR 2
#define C_NEWCIR ((NC-17)/2) /* 17 is length of the message */
#define R_TOP 3 /* first row of top menu items */
#define R_TZN (R_TOP+0)
#define C_TZN COL1
#define R_LT R_TZN
#define C_LT (C_TZN+GAP-2)
#define R_LD R_TZN
#define C_LD (C_TZN+13)
#define R_UT (R_TOP+1)
#define C_UT COL1
#define C_UTV (C_UT+GAP-2)
#define R_UD R_UT
#define C_UD (C_UT+13)
#define R_JD (R_TOP+2)
#define C_JD COL1
#define C_JDV (C_JD+GAP+3)
#define R_LST (R_TOP)
#define C_LST COL2
#define C_LSTV (C_LST+GAP)
#define R_LAT (R_TOP+0)
#define C_LAT COL3
#define C_LATV (C_LAT+4)
#define R_DAWN (R_TOP+2)
#define C_DAWN COL2
#define C_DAWNV (C_DAWN+GAP+3)
#define R_STPSZ (R_TOP+7)
#define C_STPSZ COL2
#define C_STPSZV (C_STPSZ+GAP-1)
#define R_HEIGHT (R_TOP+2)
#define C_HEIGHT COL3
#define C_HEIGHTV (C_HEIGHT+GAP)
#define R_PRES (R_TOP+4)
#define C_PRES COL3
#define C_PRESV (C_PRES+GAP)
#define R_WATCH (R_TOP+3)
#define C_WATCH COL1
#define R_LISTING (R_TOP+4)
#define C_LISTING COL1
#define C_LISTINGV (C_LISTING+20)
#define R_SRCH (R_TOP+5)
#define C_SRCH COL1
#define C_SRCHV (C_SRCH+16)
#define R_PLOT (R_TOP+6)
#define C_PLOT COL1
#define C_PLOTV (C_PLOT+20)
#define R_ALTM (R_TOP+7)
#define C_ALTM COL1
#define C_ALTMV (C_ALTM+10)
#define R_TZONE (R_TOP+5)
#define C_TZONE COL3
#define C_TZONEV (C_TZONE+GAP-1)
#define R_LONG (R_TOP+1)
#define C_LONG COL3
#define C_LONGV (C_LONG+4)
#define R_DUSK (R_TOP+3)
#define C_DUSK COL2
#define C_DUSKV (C_DUSK+GAP+3)
#define R_NSTEP (R_TOP+6)
#define C_NSTEP COL2
#define C_NSTEPV (C_NSTEP+GAP)
#define R_TEMP (R_TOP+3)
#define C_TEMP COL3
#define C_TEMPV (C_TEMP+GAP)
#define R_EPOCH (R_TOP+6)
#define C_EPOCH COL3
#define C_EPOCHV (C_EPOCH+GAP)
#define R_PAUSE (R_TOP+7)
#define C_PAUSE COL3
#define C_PAUSEV (C_PAUSE+GAP)
#define R_MNUDEP (R_TOP+6)
#define C_MNUDEP COL3
#define C_MNUDEPV (C_EPOCH+GAP)
#define R_LON (R_TOP+4)
#define C_LON COL2
#define C_LONV (C_LON+GAP+3)
#define R_CAL R_TOP
#define C_CAL COL4
/* planet rows, for all menus */
#define R_PLANTAB (R_TOP+9)
#define R_SUN (R_PLANTAB+1)
#define R_MOON (R_PLANTAB+2)
#define R_MERCURY (R_PLANTAB+3)
#define R_VENUS (R_PLANTAB+4)
#define R_MARS (R_PLANTAB+5)
#define R_JUPITER (R_PLANTAB+6)
#define R_SATURN (R_PLANTAB+7)
#define R_URANUS (R_PLANTAB+8)
#define R_NEPTUNE (R_PLANTAB+9)
#define R_PLUTO (R_PLANTAB+10)
#define R_OBJX (R_PLANTAB+11)
#define R_OBJY (R_PLANTAB+12)
/* menu 1 info table */
#define C_OBJ 1
#define C_RA 4
#define C_DEC 12
#define C_AZ 19
#define C_ALT 26
#define C_HLONG 33
#define C_HLAT 40
#define C_EDIST 47
#define C_SDIST 54
#define C_ELONG 61
#define C_SIZE 68
#define C_MAG 73
#define C_PHASE 78
/* menu 2 screen items */
#define C_RISETM 7
#define C_RISEAZ 18
#define C_TRANSTM 29
#define C_TRANSALT 40
#define C_SETTM 51
#define C_SETAZ 62
#define C_TUP 73
/* menu 3 items */
#define C_SUN 4
#define C_MOON 10
#define C_MERCURY 17
#define C_VENUS 23
#define C_MARS 30
#define C_JUPITER 36
#define C_SATURN 43
#define C_URANUS 49
#define C_NEPTUNE 56
#define C_PLUTO 62
#define C_OBJX 69
#define C_OBJY 75
#define PW (NC-C_PROMPT+1) /* total prompt line width */
/* macros to pack a row/col and menu selection flags all into an int.
* (use this rather than a structure because we can compare them so easily.
* could use bit fields and a union, but then can't init them or use switch.)
* bit field defs: [15..14]=menu [13..12]=flags [11..7]=row [6..0]=column.
* see sel_fld.c.
* F_MNUX also used in main to manage which bottom menu is up.
*/
#define F_CHG (1<<12) /* field may be picked for changing */
#define F_PLT (1<<13) /* field may be picked for plotting or listng */
#define F_MMNU (0<<14) /* field is on main menu */
#define F_MNU1 (1<<14) /* field is on menu 1 */
#define F_MNU2 (2<<14) /* field is on menu 2 */
#define F_MNU3 (3<<14) /* field is on menu 3 */
#define rcfpack(r,c,f) ((f) | ((r) << 7) | (c))
#define unpackr(p) (((p) >> 7) & 0x1f)
#define unpackc(p) ((p) & 0x7f)
#define unpackrc(p) ((p) & 0xfff)
#define tstpackf(p,f) (((p) & ((f)&0x3000)) && \
(((p)&0xc000) == ((f)&0xc000) || ((p)&0xc000) == 0))
/* additions to the planet defines from astro.h.
* must not conflict, and must fit in range 0..15.
*/
#define SUN (PLUTO+1)
#define MOON (PLUTO+2)
#define OBJX (PLUTO+3) /* the user-defined object */
#define OBJY (PLUTO+4) /* the user-defined object */
#define NOBJ (OBJY+1) /* total number of objects */
#define cntrl(x) ((x) & 037)
#define QUIT cntrl('d') /* char to exit program */
#define HELP '?' /* char to give help message */
#define REDRAW cntrl('l') /* char to redraw (like vi) */
#define VERSION cntrl('v') /* char to display version number */
#define END 'q' /* char to quit current mode */