Annotation of researchv9/jtools/src/cip/cip.h, revision 1.1

1.1     ! root        1: /*
        !             2:        %Z%  %M%  version %I% %Q%of %H% %T%
        !             3:        Last Delta:  %G% %U% to %P%
        !             4: */
        !             5: #include <stdio.h>
        !             6: #include <jerq.h>
        !             7: #define abs(A)  ((A)<0 ? -(A) : (A))
        !             8: #define isletter(C) ((C>='a' && (C)<='z') || (C>='A' && (C)<='Z'))
        !             9: #define isdigit(C) (C>='0' && (C)<='9')
        !            10: #define MOUSE_XY (sub(mouse.xy, Pt(1,1)))
        !            11: 
        !            12: #define        BORDER  4
        !            13: #define BrushSize 60                   /* Height of brush frame */
        !            14: #define ButSize 60                     /* Height of button frame */
        !            15: #define LW 2                           /* line width for frame boxes */
        !            16: #define MW 5                           /* Margin width between frames*/
        !            17: #define Xmin BORDER                    /* left edge of frame */
        !            18: #define Xmax (Drect.corner.x - BORDER) /* right edge of frame */
        !            19: #define XPicSize (Drect.corner.x - 2 * (LW + BORDER))  /* Width of Pic frame */
        !            20: #define Ymin BORDER                    /* top of frame */
        !            21: #define Ymax (Drect.corner.y - BORDER) /* bottom of frame */
        !            22: #define YBR (Ymin+LW+MW+BrushSize+LW)  /* bottom of brush frame */
        !            23: #define YPIC (YBR+MW)                  /* top of drawing frame */
        !            24: #define Ybut (Ymax - ButSize - 2 * LW) /* Top of button frame */
        !            25: #define YBOT (Ybut - MW)               /* bottom of drawing frame */
        !            26: #define YPicSize (YBOT - YPIC)         /* Height of Pic frame */
        !            27: #define YCEN ((YBR+Ymin)>>1)           /* center line of brush area */
        !            28: #define Xbut (((Xmax-Xmin)<<1)/3)
        !            29: #define XeditD ((Xmax-Xmin)/2)
        !            30: #define Xtext (Xmin+LW)
        !            31: #define Ytext (Ybut+ButSize/6)
        !            32: #define butHt min(((ButSize-(LW<<2))/3), ((Xmax-Xbut-(3*LW))/18))
        !            33: 
        !            34: #define TNULL (struct thing *)0
        !            35: 
        !            36: #define CIRCLE 0
        !            37: #define BOX 1
        !            38: #define ELLIPSE 2
        !            39: #define LINE 3
        !            40: #define ARC 4
        !            41: #define SPLINE 5
        !            42: #define TEXT 6
        !            43: #define MACRO 7
        !            44: #define REVLINE 8      /* Special case for spline editing only! */
        !            45: #define NUMBR 7
        !            46: #define DXBR ((Xmax-Xmin)/NUMBR)
        !            47: 
        !            48: #define MAXTEXT 100
        !            49: #define MAXNAMESIZE 64
        !            50: 
        !            51: #define PIC NUMBR
        !            52: #define ED  PIC+1
        !            53: #define BRUSH PIC+1
        !            54: #define GROWCIRCLE BRUSH+1
        !            55: #define MOVE BRUSH+2
        !            56: #define GROWEWID BRUSH+3
        !            57: #define GROWEHT BRUSH+4
        !            58: 
        !            59: #define RADdefault ((Xmax-Xmin)/24)
        !            60: #define WIDdefault ((Xmax-Xmin)/8)
        !            61: #define HTdefault ((Xmax-Xmin)/12)
        !            62: #define nearlyStraight 5
        !            63: #define nearEDGE 5
        !            64: #define nearPT 8
        !            65: 
        !            66: #define SOLID 0
        !            67: #define DASHED 1
        !            68: #define DOTTED 2
        !            69: #define startARROW 1
        !            70: #define endARROW 2
        !            71: #define doubleARROW 3
        !            72: 
        !            73: #define ROMAN 1
        !            74: #define ITALIC 2
        !            75: #define BOLD 3
        !            76: #define DEFONT 4
        !            77: #define CENTER 0
        !            78: #define LEFTJUST 1
        !            79: #define RIGHTJUST 2
        !            80: #define POINTSIZE 10
        !            81: 
        !            82: #define GRIDon 1
        !            83: #define GRIDoff 0
        !            84: 
        !            85: #define WHITEfield 1
        !            86: #define BLACKfield 0
        !            87: 
        !            88: #define INITbuttons 0
        !            89: #define DRAWbuttons 1
        !            90: #define EDITbuttons 2
        !            91: #define SPLINEbuttons 3
        !            92: #define BLANKbuttons 4
        !            93: #define MACRObuttons 5
        !            94: #define COPYbuttons 6
        !            95: #define MOVEbuttons 7
        !            96: #define QUITbuttons 8
        !            97: #define READbuttons 9
        !            98: #define numButtonStates 10
        !            99: 
        !           100: #define fontBlk struct FONTBlk
        !           101: struct FONTBlk {
        !           102:        short ps, num, useCount;
        !           103:        Font *f;
        !           104:        fontBlk *next, *last;
        !           105: };
        !           106: 
        !           107: typedef struct {
        !           108:        Point start, end;
        !           109: } pointPair;
        !           110: 
        !           111: typedef struct {
        !           112:        short ht, wid;
        !           113: } intPair;
        !           114: 
        !           115: typedef struct {
        !           116:        short used, size;
        !           117:        Point *plist
        !           118: } pointStream;
        !           119: 
        !           120: typedef struct {
        !           121:        short just;
        !           122:        char *s;
        !           123:        fontBlk *f;
        !           124: } textString;
        !           125: 
        !           126: struct macro {
        !           127:        char *name;
        !           128:        short outName;
        !           129:        short useCount;
        !           130:        Rectangle bb;
        !           131:        struct thing *parts;
        !           132:        struct macro *next;
        !           133:        struct macro *xReflectionOf, *yReflectionOf;
        !           134: };
        !           135: 
        !           136: struct thing {
        !           137:        short type;
        !           138:        Point origin;   
        !           139:        Rectangle bb;
        !           140:        union {
        !           141:                short brush;
        !           142:                short radius;
        !           143:                Point corner;
        !           144:                Point end;
        !           145:                pointPair arc;
        !           146:                intPair ellipse;
        !           147:                textString text;
        !           148:                pointStream spline;
        !           149:                struct macro *list;
        !           150:        } otherValues;
        !           151:        short arrow, boorder;
        !           152:        struct thing *next, *last;
        !           153: };
        !           154: 
        !           155: extern fontBlk *fonts;
        !           156: 
        !           157: extern Rectangle *Select();
        !           158: extern Rectangle moveBox();
        !           159: extern Rectangle macroBB();
        !           160: extern Rectangle canon();
        !           161: 
        !           162: extern struct macro *recordMacro();
        !           163: 
        !           164: extern struct thing *newCircle();
        !           165: extern struct thing *newBox();
        !           166: extern struct thing *newEllipse();
        !           167: extern struct thing *newLine();
        !           168: extern struct thing *newArc();
        !           169: extern struct thing *newText();
        !           170: extern struct thing *newSpline();
        !           171: extern struct thing *newMacro();
        !           172: extern struct thing *selectThing();
        !           173: extern struct thing *copyThing();
        !           174: extern struct thing *deleteThing();
        !           175: extern struct thing *deleteAllThings();
        !           176: extern struct thing *insert();
        !           177: extern struct thing *remove();
        !           178: extern struct thing *doMouseButtons();
        !           179: extern struct thing *place();
        !           180: extern struct thing *displayCommandMenu();
        !           181: extern struct thing *displayThingMenu();
        !           182: extern struct thing *doGet();
        !           183: extern struct thing *doClear();
        !           184: extern struct thing *defineMacro();
        !           185: extern struct thing *makeRelative();
        !           186: extern struct thing *reflect();
        !           187: 
        !           188: extern Point track();
        !           189: extern Point track2();
        !           190: extern Point computeArcOrigin();
        !           191: extern Point near();
        !           192: extern Point jchar();
        !           193: extern Point PtCurrent;
        !           194: 
        !           195: extern char *getString();
        !           196: extern char *getSpace();
        !           197: 
        !           198: extern FILE *popen();
        !           199: 
        !           200: extern fontBlk *findFont();
        !           201: 
        !           202: extern xtipple ();
        !           203: 
        !           204: extern Cursor carrot, crossHairs, prompt, hourglass,
        !           205:                pointsize, candle, rusure;
        !           206: extern Texture         grid, plain, rvplain;

unix.superglobalmegacorp.com

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