home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d5xx / d502 / cells.lha / CELLS / CELLSSource.lzh / cReqLS.c < prev    next >
C/C++ Source or Header  |  1991-04-20  |  7KB  |  211 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:  cReqLS.c             Data structures for the File Requester.
  12.  */
  13.  
  14.  
  15. #include "Cells.h"
  16. #include "cRequest.h"
  17. #include "cReqLS.h"
  18. #include "cBoxes.h"
  19.  
  20. #define DATAIMAGE(data,w,h)   {0,0, w,h,2, &data[0], 3,0, NULL}
  21.  
  22. extern USHORT DLeftArrowData[];
  23. extern USHORT CheckData[];
  24.  
  25.  
  26. static short PanelBox[]   = FBOX(LS_PANELW,LS_PANELH);
  27. static short Frame1Box[]  = FBOX(LS_FRAME1W,LS_FRAME1H);
  28. static short Frame2Box[]  = FBOX(LS_FRAME2W,LS_FRAME2H);
  29. static short NameBox[]    = FBOX(LS_NAMEW,LS_NAMEH);
  30. static short NListBox[]   = FBOX(LS_NLISTW,LS_NLISTH);
  31. static short SlideBox[]   = VBOX(LS_SLIDEW,LS_SLIDEH);
  32. static short CheckBox[]   = FBOX(LS_CHECKW+2,LS_CHECKH+2);
  33. static short MessageBox[] = FBOX(LS_MESSAGEW,LS_MESSAGEH);
  34. static short DirBox[]     = HBOX(LS_DIRW,LS_DIRH);
  35. static short ButtonBox[]  = FBOX(LS_BUTTONW,LS_BUTTONH);
  36.  
  37. static struct Border LSBorder[] =
  38. {
  39.       #define NEXTBORDER(n)     &LSBorder[n+2]
  40.       #define BORDERNAME        LSBorder
  41.    OUTBRDR(LSB_PANEL,  0,0, PanelBox),
  42.    INBRDR (LSB_FRAME1, LS_FRAME1X,LS_FRAME1Y, Frame1Box),
  43.    INBRDR (LSB_FRAME2, LS_FRAME2X,LS_FRAME2Y, Frame2Box),
  44.    INBRDR (LSB_NAME,   LS_NAMEX,LS_NAMEY, NameBox),
  45.    OUTBRDR(LSB_SLIDE,  LS_SLIDEX,LS_SLIDEY, SlideBox),
  46.    OUTBRDR(LSB_CHECK,  LS_CHECKX-1,LS_CHECKY-1, CheckBox),
  47.    INBRDR (LSB_MESSAGE, LS_MESSAGEX,LS_MESSAGEY, MessageBox),
  48.       #undef  NEXTBORDER
  49.       #define NEXTBORDER(n)     NULL
  50.    OUTBRDR(LSB_DIR,     LS_DIRX,LS_DIRY, DirBox),
  51.    INBRDR (LSB_NLIST,   LS_NLISTX,LS_NLISTY, NListBox),
  52.    OUTBRDR(LSB_BUTTON,  0,0, ButtonBox),
  53. };
  54.  
  55. static struct Image LSImage[] =
  56. {
  57.    IMAGE(-1,-1,LS_NAMEW-2,LS_NAMEH-2,BACKGROUND),
  58.    IMAGE(0,0,0,0, FOREGROUND),
  59.    IMAGE(LS_SLIDEX+1,LS_SLIDEY+1,LS_SLIDEW-2,LS_SLIDEH-2,BACKGROUND),
  60.    IMAGE(1,1,LS_NLISTW-2,LS_NLISTH-2,BACKGROUND),
  61.    IMAGE(1,1,LS_NLISTW-2,LNAMEH,TEXTSELECT),
  62.    DATAIMAGE(DLeftArrowData,TEXTH,TEXTH),
  63.    DATAIMAGE(CheckData,LS_CHECKW,LS_CHECKH),
  64.    IMAGE(0,0,LS_CHECKW,LS_CHECKH,FOREGROUND),
  65.    IMAGE(1,1,LS_MESSAGEW-2,LS_MESSAGEH-2,FOREGROUND),
  66.    IMAGE(1,1,LS_DIRW-2,LS_DIRH-2,FOREGROUND),
  67. };
  68.  
  69. char LSDirName[MAXFNAME];
  70.  
  71. struct IntuiText LSText[] =
  72. {
  73.    ITEXT(NULL,     15,4),
  74.    ITEXT("Drive",  12,4),
  75.    ITEXT("Info",   15,4),
  76.    ITEXT("Delete",  9,4),
  77.    ITEXT("MakeDir", 7,4),
  78.    ITEXT("Cancel",  9,4),
  79.    ITEXT(&LSDirName[0], 0,2),
  80.    ITEXT(NULL, LS_CHECKW+5,0),
  81.    ITEXT(NULL, 0,2),
  82.    CTEXT(NULL, 3,1,BACKGROUND),
  83.    CTEXT(NULL, 3,1,BACKGROUND),
  84.    ITEXT("                    ", 3,2),      /* NList */
  85.    ITEXT("                    ", 3,2),
  86.    ITEXT("                    ", 3,2),
  87.    ITEXT("                    ", 3,2),
  88.    ITEXT("                    ", 3,2),
  89.    ITEXT("                    ", 3,2),
  90.    ITEXT("                    ", 3,2),
  91.    ITEXT("                    ", 3,2),
  92. };
  93.  
  94. char LSNameBuf[MAXFNAME];
  95. extern char UndoBuffer[];
  96.  
  97. static struct StringInfo LSNameInfo =
  98.    {&LSNameBuf[0], &UndoBuffer[0], 0,MAXFNAME, 0, 0,0,0, 0,0, NULL, 0, NULL};
  99.  
  100. struct PropInfo LSSlider =
  101.    {AUTOKNOB|FREEVERT|PROPBORDERLESS,0,0,0xFFFF,0xFFFF, 0,0,0,0,0,0};
  102.  
  103.  
  104. #define BUTTON(n)\
  105. {\
  106.    &LSGadget[n+1], LS_BUTTONX,LS_BUTTONY+LS_BUTSEP*n,\
  107.    LS_BUTTONW,LS_BUTTONH, GADGHCOMP, RELVERIFY, BOOLGADGET| REQGADGET,\
  108.    (APTR)&LSBorder[LSB_BUTTON],NULL, &LSText[n], 0, NULL, n, NULL\
  109. }
  110.  
  111. #define NLIST(n)\
  112. {\
  113.    &LSGadget[n+1], LS_NLISTX,LS_NLISTY, LS_NLISTW,LS_NLISTH,\
  114.    GADGHNONE|GADGIMAGE|GADGDISABLED, GADGIMMEDIATE,\
  115.    BOOLGADGET|REQGADGET, (APTR)&LSImage[LSI_BLANK],NULL, NULL,\
  116.    0, NULL, n, (APTR)&LSListInfo\
  117. }
  118.  
  119. #define NAME(n)\
  120. {\
  121.    &LSGadget[n+1], LS_NAMEX+2,LS_NAMEY+2,LS_NAMEW-4,LS_NAMEH-4,\
  122.    GADGHCOMP|GADGIMAGE, GADGIMMEDIATE|RELVERIFY, STRGADGET|REQGADGET,\
  123.    (APTR)&LSImage[LSI_NAME], NULL, NULL, 0, (APTR)&LSNameInfo, n,\
  124.    (APTR)&LSListInfo\
  125. }
  126.  
  127. #define ARROW(n,x,y,im)\
  128. {\
  129.    &LSGadget[n+1], x,y,SLIDEWH,SLIDEWH, GADGHCOMP|GADGIMAGE|GADGDISABLED,\
  130.    GADGIMMEDIATE|RELVERIFY, BOOLGADGET|REQGADGET, (APTR)&cImage[im],\
  131.    NULL, NULL, NULL,NULL, n, (APTR)&LSListInfo\
  132. }
  133.  
  134. #define DIR(n)\
  135. {\
  136.    &LSGadget[n+1], LS_DIRX,LS_DIRY, LS_DIRW,LS_DIRH, GADGHCOMP|GADGIMAGE,\
  137.    RELVERIFY, BOOLGADGET|REQGADGET, (APTR)&LSImage[LSI_DIR],NULL,\
  138.    &LSText[LST_DIR], 0, NULL, n, (APTR)&LSListInfo\
  139. }
  140.  
  141. #define DARROW(n)\
  142. {\
  143.    &LSGadget[n+1], LS_DLARROWX,LS_DLARROWY,TEXTH,TEXTH, GADGHCOMP|GADGIMAGE,\
  144.    GADGIMMEDIATE|RELVERIFY,BOOLGADGET|REQGADGET, (APTR)&LSImage[LSI_DLARROW],\
  145.    NULL, NULL, NULL,NULL, n, (APTR)&LSListInfo\
  146. }
  147.  
  148. #define CHECK(n)\
  149. {\
  150.    &LSGadget[n+1], LS_CHECKX,LS_CHECKY, LS_CHECKW+LS_CTEXTW,LS_CHECKH,\
  151.    GADGHIMAGE|GADGIMAGE, TOGGLESELECT|GADGIMMEDIATE, BOOLGADGET|REQGADGET,\
  152.    (APTR)&LSImage[LSI_NOCHECK], (APTR)&LSImage[LSI_CHECK],\
  153.    &LSText[LST_CHECK], NULL,NULL, n, NULL\
  154. }
  155.  
  156. #define SLIDER(n)\
  157. {\
  158.    &LSGadget[n+1], LS_SLIDEX+2,LS_SLIDEY+2,LS_SLIDEW-4,LS_SLIDEH-4,\
  159.    GADGHCOMP|GADGIMAGE|GADGDISABLED, GADGIMMEDIATE|RELVERIFY,\
  160.    PROPGADGET|REQGADGET, (APTR)&LSImage[LSI_SLIDE], NULL, NULL, NULL,\
  161.    (APTR)&LSSlider, n, (APTR)&LSListInfo\
  162. }
  163.  
  164. #define MESSAGE(n)\
  165. {\
  166.    &LSGadget[n+1], LS_MESSAGEX,LS_MESSAGEY, LS_MESSAGEW,LS_MESSAGEH,\
  167.    GADGHNONE|GADGIMAGE, GADGIMMEDIATE, BOOLGADGET|REQGADGET,\
  168.    (APTR)&LSImage[LSI_MESSAGE], NULL, NULL, NULL,NULL, n,\
  169.    (APTR)&LSText[LST_MESS1]\
  170. }
  171.  
  172. #define ENDLIST\
  173.    {&LSGadget[LS_IMGADG], 0,0,0,0, GADGHNONE, 0, BOOLGADGET|REQGADGET,\
  174.    (APTR)&LSBorder[LSB_NLIST],NULL, NULL, NULL,NULL, LS_BRDRGADG,NULL},\
  175.    {NULL, 0,0,0,0, GADGHNONE|GADGIMAGE, 0, BOOLGADGET|REQGADGET,\
  176.    (APTR)&LSImage[LSI_SBACK],NULL, NULL, NULL,NULL, LS_IMGADG,NULL}
  177.  
  178. static struct Gadget LSGadget[] =
  179. {
  180.    BUTTON(LS_LOAD),
  181.    BUTTON(LS_DRIVE),
  182.    BUTTON(LS_INFO),
  183.    BUTTON(LS_DELETE),
  184.    BUTTON(LS_MAKEDIR),
  185.    BUTTON(LS_CANCEL),
  186.    NAME  (LS_NAME),
  187.    NLIST (LS_NLIST),
  188.    SLIDER(LS_SLIDE),
  189.    ARROW (LS_UARROW,LS_UARROWX,LS_UARROWY,LSI_UARROW),
  190.    ARROW (LS_DARROW,LS_DARROWX,LS_DARROWY,LSI_DARROW),
  191.    DIR   (LS_DIR),
  192.    DARROW(LS_DLARROW),
  193.    CHECK (LS_CHECK),
  194.    MESSAGE(LS_MESSAGE),
  195.    ENDLIST
  196. };
  197.  
  198. struct ExtRequest LSRequest =
  199. {
  200.    {NULL, 0,0, LS_PANELW,LS_PANELH, 0,0, &LSGadget[0], &LSBorder[LSB_PANEL],
  201.     &LSText[LST_TITLE], 0, FOREGROUND, NULL, NULL, NULL},
  202.    NULL,NULL,NULL, &LSGadget[LS_NAME],
  203. };
  204.  
  205. struct ListInfo LSListInfo =
  206. {
  207.    &LSRequest, &LSGadget[LS_NLIST], &LSGadget[LS_NAME], &LSGadget[LS_SLIDE],
  208.    NULL, NULL, NULL, &LSText[LST_NLIST0], &LSImage[LSI_BLANK],
  209.    8,20, 0,0, LI_NOSELECT, 0, 0
  210. };
  211.