home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d5xx / d502 / cells.lha / CELLS / CELLSSource.lzh / cReqLP.c < prev    next >
C/C++ Source or Header  |  1991-04-20  |  6KB  |  186 lines

  1. /*
  2.  *  CELLS       An Implementation of the WireWorld cellular automata
  3.  *              as described in Scientific American, Jan 1990.
  4.  *
  5.  *              Copyright 1990 by Davide P. Cervone.
  6.  *  You may use this code, provided this copyright notice is kept intact.
  7.  *  See the CELLS.HELP file for complete information on distribution conditions.
  8.  */
  9.  
  10. /*
  11.  *  File:  cLPReq.c         Data structures for the Load Part Requester.
  12.  */
  13.  
  14.  
  15. #include "Cells.h"
  16. #include "cRequest.h"
  17. #include "cReqLP.h"
  18. #include "cBoxes.h"
  19.  
  20. static short PanelBox[]   = FBOX(LP_PANELW,LP_PANELH);
  21. static short Frame1Box[]  = FBOX(LP_FRAME1W,LP_FRAME1H);
  22. static short Frame2Box[]  = FBOX(LP_FRAME2W,LP_FRAME2H);
  23. static short Frame3Box[]  = FBOX(LP_FRAME3W,LP_FRAME3H);
  24. static short NameBox[]    = FBOX(LP_NAMEW,LP_NAMEH);
  25. static short PNameBox[]   = FBOX(LP_PNAMEW,LP_PNAMEH);
  26. static short PSlideBox[]  = VBOX(LP_PSLIDEW,LP_PSLIDEH);
  27. static short LNameBox[]   = FBOX(LP_LNAMEW,LP_LNAMEH);
  28. static short LSlideBox[]  = VBOX(LP_LSLIDEW,LP_LSLIDEH);
  29. static short ButtonVBox[] = VBOX(LP_BUTTONW,LP_BUTTONH);
  30. static short ButtonFBox[] = FBOX(LP_BUTTONW,LP_BUTTONH);
  31. static short ButtonBBox[] = BBOX(LP_BUTTONW,LP_BUTTONH);
  32.  
  33. static struct Border LPBorder[] =
  34. {
  35.       #define NEXTBORDER(n)     &LPBorder[n+2]
  36.       #define BORDERNAME        LPBorder
  37.    OUTBRDR(LPB_PANEL,  0,0, PanelBox),
  38.    INBRDR (LPB_FRAME1, LP_FRAME1X,LP_FRAME1Y, Frame1Box),
  39.    INBRDR (LPB_FRAME2, LP_FRAME2X,LP_FRAME2Y, Frame2Box),
  40.    INBRDR (LPB_FRAME3, LP_FRAME3X,LP_FRAME3Y, Frame3Box),
  41.    OUTBRDR(LPB_PSLIDE, LP_PSLIDEX,LP_PSLIDEY, PSlideBox),
  42.    OUTBRDR(LPB_LSLIDE, LP_LSLIDEX,LP_LSLIDEY, LSlideBox),
  43.    INBRDR (LPB_PNAMES, LP_PNAMEX,LP_PNAMEY, PNameBox),
  44.    INBRDR (LPB_LNAMES, LP_LNAMEX,LP_LNAMEY, LNameBox),
  45.       #undef  NEXTBORDER
  46.       #define NEXTBORDER(n)     NULL
  47.    INBRDR (LPB_NAME,   LP_NAMEX,LP_NAMEY, NameBox),
  48.    OUTBRDR(LPB_BUTTONV, 0,0, ButtonVBox),
  49.    OUTBRDR(LPB_BUTTONF, 0,0, ButtonFBox),
  50.    OUTBRDR(LPB_BUTTONB, 0,0, ButtonBBox),
  51. };
  52.  
  53. static struct Image LPImage[] =
  54. {
  55.    IMAGE(-1,-1,LP_NAMEW-2,LP_NAMEH-2,BACKGROUND),
  56.    IMAGE(0,0,0,0, FOREGROUND),
  57.    IMAGE(0,0,0,0, FOREGROUND),
  58.    IMAGE(1,1,LP_PNAMEW-2,CHAR_HEIGHT+2,FOREGROUND),
  59.    IMAGE(1,1,LP_PNAMEW-2,CHAR_HEIGHT+2,TEXTSELECT),
  60.    IMAGE(1,1,LP_LNAMEW-2,CHAR_HEIGHT+2,FOREGROUND),
  61.    IMAGE(1,1,LP_LNAMEW-2,CHAR_HEIGHT+2,TEXTSELECT),
  62.    {LP_PSLIDEX+1,LP_PSLIDEY+1,LP_PSLIDEW-2,LP_PSLIDEH-2,0,
  63.       NULL,0,BACKGROUND, &LPImage[LPI_LBACK]},
  64.    {LP_LSLIDEX+1,LP_LSLIDEY+1,LP_LSLIDEW-2,LP_LSLIDEH-2,0,
  65.       NULL,0,BACKGROUND, NULL},
  66. };
  67.  
  68. struct IntuiText LPText[] =
  69. {
  70.    ITEXT("Remove", 5,3),
  71.    ITEXT("View",  11,3),
  72.    ITEXT("Cancel", 5,3),
  73.    ITEXT("Use",   14,3),
  74.    ITEXT("Use Part:     From Library:", 24,2),
  75.    ITEXT("            ",3,2),      /* PNames */
  76.    ITEXT("            ",3,2),
  77.    ITEXT("            ",3,2),
  78.    ITEXT("            ",3,2),
  79.    ITEXT("            ",3,2),
  80.    ITEXT("            ",3,2),
  81.    ITEXT("            ",3,2),
  82.    ITEXT("            ",3,2),
  83.    ITEXT("            ",3,2),      /* LNames */
  84.    ITEXT("            ",3,2),
  85.    ITEXT("            ",3,2),
  86.    ITEXT("            ",3,2),
  87.    ITEXT("            ",3,2),
  88.    ITEXT("            ",3,2),
  89. };
  90.  
  91. char LPNameBuf[MAXPNAME+1];
  92. extern char UndoBuffer[];
  93.  
  94. static struct StringInfo LPNameInfo =
  95.    {&LPNameBuf[0], &UndoBuffer[0], 0,MAXPNAME+1, 0, 0,0,0, 0,0, NULL, 0, NULL};
  96.  
  97. struct PropInfo LPSlider[] =
  98. {
  99.    {AUTOKNOB|FREEVERT|PROPBORDERLESS,0,0,0x3FFF,0x3FFF, 0,0,0,0,0,0},
  100.    {AUTOKNOB|FREEVERT|PROPBORDERLESS,0,0,0xFFFF,0xFFFF, 0,0,0,0,0,0},
  101. };
  102.  
  103. extern struct ListInfo PListInfo;
  104. extern struct ListInfo LListInfo;
  105.  
  106.  
  107. #define BUTTON(n,t,x,y,b,f)\
  108. {\
  109.    &LPGadget[n+1], LP_BUTTONX+LP_BUTTONW*x,LP_BUTTONY+LP_BUTTONH*y,\
  110.    LP_BUTTONW,LP_BUTTONH, GADGHCOMP, f, BOOLGADGET| REQGADGET,\
  111.    (APTR)&LPBorder[b],NULL, &LPText[t], 0, NULL, n, NULL\
  112. }
  113.  
  114. #define NAMES(n,x,y,t,im,li)\
  115. {\
  116.    &LPGadget[n+1], x,y, LP_PNAMEW,LP_PNAMEH, GADGHNONE|GADGIMAGE,\
  117.    GADGIMMEDIATE, BOOLGADGET| REQGADGET,\
  118.    (APTR)&LPImage[im],NULL, &LPText[t], 0, NULL, n, (APTR)&li\
  119. }
  120.  
  121. #define NAME(n)\
  122. {\
  123.    &LPGadget[n+1], LP_NAMEX+2,LP_NAMEY+2,LP_NAMEW-4,LP_NAMEH-4,\
  124.    GADGHCOMP| GADGIMAGE, GADGIMMEDIATE|RELVERIFY, STRGADGET|REQGADGET,\
  125.    (APTR)&LPImage[LPI_NAME], NULL, NULL, 0, (APTR)&LPNameInfo, n,\
  126.    (APTR)&PListInfo\
  127. }
  128.  
  129. #define ARROW(n,x,y,im,li)\
  130. {\
  131.    &LPGadget[n+1], x,y,SLIDEWH,SLIDEWH, GADGHCOMP|GADGIMAGE,\
  132.    GADGIMMEDIATE|RELVERIFY,BOOLGADGET|REQGADGET, (APTR)&cImage[im],\
  133.    NULL, NULL, NULL,NULL, n, (APTR)&li\
  134. }
  135.  
  136. #define SLIDER(n,x,y,w,h,li)\
  137. {\
  138.    &LPGadget[n+1], x+2,y+2,w-4,h-4, GADGHCOMP|GADGIMAGE,\
  139.    GADGIMMEDIATE|RELVERIFY, PROPGADGET|REQGADGET,\
  140.    (APTR)&LPImage[n-LP_PSLIDE+LPI_PSLIDE], NULL, NULL, NULL,\
  141.    (APTR)&LPSlider[n-LP_PSLIDE], n, (APTR)&li\
  142. }
  143.  
  144. #define ENDLIST\
  145.    {NULL, 0,0,0,0, GADGHNONE|GADGIMAGE, 0, BOOLGADGET|REQGADGET,\
  146.    (APTR)&LPImage[LPI_PBACK],NULL, NULL, NULL,NULL, LP_IMGADG,NULL}
  147.  
  148. static struct Gadget LPGadget[] =
  149. {
  150.    BUTTON(LP_REMOVE, LPT_REMOVE, 0,0, LPB_BUTTONB, RELVERIFY),
  151.    BUTTON(LP_VIEW,   LPT_VIEW,   1,0, LPB_BUTTONV, GADGIMMEDIATE|TOGGLESELECT),
  152.    BUTTON(LP_CANCEL, LPT_CANCEL, 0,1, LPB_BUTTONB, RELVERIFY),
  153.    BUTTON(LP_USE,    LPT_USE,    1,1, LPB_BUTTONF, RELVERIFY),
  154.    NAMES (LP_PNAMES,LP_PNAMEX,LP_PNAMEY,LPT_PNAME0,LPI_PBLANK,PListInfo),
  155.    NAMES (LP_LNAMES,LP_LNAMEX,LP_LNAMEY,LPT_LNAME0,LPI_LBLANK,LListInfo),
  156.    SLIDER(LP_PSLIDE,LP_PSLIDEX,LP_PSLIDEY,LP_PSLIDEW,LP_PSLIDEH,PListInfo),
  157.    SLIDER(LP_LSLIDE,LP_LSLIDEX,LP_LSLIDEY,LP_LSLIDEW,LP_LSLIDEH,LListInfo),
  158.    ARROW (LP_PUARROW,LP_PUARROWX,LP_PUARROWY,LPI_UARROW,PListInfo),
  159.    ARROW (LP_PDARROW,LP_PDARROWX,LP_PDARROWY,LPI_DARROW,PListInfo),
  160.    ARROW (LP_LUARROW,LP_LUARROWX,LP_LUARROWY,LPI_UARROW,LListInfo),
  161.    ARROW (LP_LDARROW,LP_LDARROWX,LP_LDARROWY,LPI_DARROW,LListInfo),
  162.    NAME(LP_NAME),
  163.    ENDLIST
  164. };
  165.  
  166. struct ExtRequest LPRequest =
  167. {
  168.    {NULL, 0,0, LP_PANELW,LP_PANELH, 0,0, &LPGadget[0], &LPBorder[LPB_PANEL],
  169.     &LPText[LPT_TITLE], 0, FOREGROUND, NULL, NULL, NULL},
  170.    NULL,NULL,NULL, &LPGadget[LP_NAME],
  171. };
  172.  
  173. static struct ListInfo PListInfo =
  174. {
  175.    &LPRequest, &LPGadget[LP_PNAMES], &LPGadget[LP_NAME], &LPGadget[LP_PSLIDE],
  176.    NULL, NULL, NULL, &LPText[LPT_PNAME0], &LPImage[LPI_PBLANK],
  177.    8,12, 0,0, LI_NOSELECT, 0, 0
  178. };
  179.  
  180. static struct ListInfo LListInfo =
  181. {
  182.    &LPRequest, &LPGadget[LP_LNAMES], NULL, &LPGadget[LP_LSLIDE],
  183.    NULL, NULL, NULL, &LPText[LPT_LNAME0], &LPImage[LPI_LBLANK],
  184.    6,12, 0,0, LI_NOSELECT, 0, 0
  185. };
  186.