Annotation of 43BSD/contrib/X/xgedit/gedit.h, revision 1.1.1.1

1.1       root        1: #include <X/mit-copyright.h>
                      2: 
                      3: /* Copyright    Massachusetts Institute of Technology    1984, 1985    */
                      4: 
                      5: /* $Header: gedit.h,v 10.4 86/02/01 16:19:03 tony Rel $ */
                      6: 
                      7: #include <stdio.h>
                      8: 
                      9: #define        HELPFILE        "GEDIT"         /* Name of .DEF file for help   */
                     10: 
                     11: /* types of things we can edit */
                     12: #define SEGMENT        1       /* straight or curved line segments */
                     13: #define LABEL  2       /* text */
                     14: #define OBJECT 3       /* other files included in this one */
                     15: 
                     16: typedef union widget *gptr;    /* pointer to graphics object */
                     17: 
                     18: struct segment {
                     19:   short type;          /* type of this widget == SEGMENT */
                     20:   gptr selink;         /* select link */
                     21:   gptr next;           /* next widget */
                     22:   struct prototype *parent;  /* our ancestor */
                     23:   short x1,y1;         /* starting coord */
                     24:   short x2,y2;         /* ending coord */
                     25:   short angle;         /* angle subtended by chord, 0 => straight line */
                     26:   gptr cache;          /* list of line segments for displaying arc */
                     27: };
                     28: 
                     29: struct label {
                     30:   short type;          /* type of this widget == LABEL */
                     31:   gptr selink;         /* select link */
                     32:   gptr next;           /* next widget */
                     33:   struct prototype *parent;  /* our ancestor */
                     34:   short x,y;           /* label point */
                     35:   short orient;                /* position wrt to point */
                     36:   char *string;                /* the label itself */
                     37: };
                     38: 
                     39: struct object {
                     40:   short type;          /* type of this widget == OBJECT */
                     41:   gptr selink;         /* select link */
                     42:   gptr next;           /* next widget */
                     43:   struct prototype *parent;  /* our ancestor */
                     44:   short x,y;           /* coords of origin */
                     45:   short orient;                /* one of eight orientations */
                     46:   struct prototype *proto;  /* info about the object itself */
                     47:   short mscale,dscale; /* local scaling parameters */
                     48: };
                     49: 
                     50: union widget {         /* used for pointing at things */
                     51:   struct segment s;
                     52:   struct label l;
                     53:   struct object o;
                     54: };
                     55: 
                     56: #define NORTH  0       /* normal orientations */
                     57: #define EAST   1
                     58: #define        SOUTH   2
                     59: #define        WEST    3
                     60: #define        RNORTH  4       /* reflected orientations */
                     61: #define        REAST   5
                     62: #define        RSOUTH  6
                     63: #define        RWEST   7
                     64: 
                     65: /* label orientations */
                     66: #define CC     0
                     67: #define TC     1
                     68: #define BC     2
                     69: #define CL     3
                     70: #define TL     4
                     71: #define BL     5
                     72: #define CR     6
                     73: #define TR     7
                     74: #define BR     8
                     75: 
                     76: /* line types */
                     77: #define NORMAL 0
                     78: #define HIGHLIGHT 1
                     79: 
                     80: extern char ocomp[8][8];       /* orientation composition matrix */
                     81: extern char lcomp[8][9];
                     82: 
                     83: struct state {
                     84:   struct prototype *curobj;  /* current prototype, if any */
                     85:   short mscale,dscale; /* display scale */
                     86:   short worgx,worgy;   /* coords of lower left corner of window */
                     87:   short wmaxx,wmaxy;   /* coords of upper right corner of window */
                     88:   short curx,cury;     /* coords of cursor center */
                     89:   short oldx,oldy;     /* coords of cursor last time displayed */
                     90:   short csize;         /* size of cursor */
                     91:   short grid;          /* <>0 if we should display grid points */
                     92:   gptr editee;         /* currently selected object(s) */
                     93:   short xoff,yoff;     /* offset from cursor to selected object */
                     94:   short lxoff,lyoff;   /* offsets from last select/deselect operation */
                     95:   short whichend;      /* indicates which end of a selected line */  
                     96: };
                     97: 
                     98: struct prototype {
                     99:   struct prototype *next;      /* linked list of prototypes */
                    100:   char *name;                  /* name */
                    101:   gptr body;                   /* what's inside the object */
                    102:   struct state recent;         /* copy of most recent edit state, if any */
                    103:   char modified;               /* <>0 => modified defn not yet saved */
                    104: };
                    105: 
                    106: extern struct state cur_state;
                    107: 
                    108: extern struct prototype *directory,*read_def();
                    109: 
                    110: extern short grid;             /* <>0 display grid points */
                    111: extern short incol;            /* current text prompt column */
                    112: extern char *prompt;           /* what the current user prompt is */
                    113: extern char typein[100];       /* user input buffer */
                    114: 
                    115: typedef int (*fptr)();
                    116: extern fptr dispatch[];
                    117: 
                    118: /* various display parameters */
                    119: extern short wminx,wminy,wmaxx,wmaxy;
                    120: extern short chrhgt,chrwid;
                    121: 
                    122: /* command routine return codes */
                    123: #define MULTIPLIER     0x01    /* don't reset multipler to 1 */
                    124: #define RECENTER       0x02    /* recenter picture about cursor */
                    125: #define REDISPLAY      0x04    /* redraw the picture */
                    126: #define DONE           0x08    /* all done with current picture */
                    127: #define UPDATE         0x10    /* flags for deselect operation */
                    128: #define USEOFFSET      0x20
                    129: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.