Annotation of 43BSD/contrib/X/xgedit/gedit.h, revision 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.