home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
500-599
/
ff502.lzh
/
CELLS
/
CELLSSource.lzh
/
cReqLS.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-04-20
|
7KB
|
211 lines
/*
* CELLS An Implementation of the WireWorld cellular automata
* as described in Scientific American, Jan 1990.
*
* Copyright 1990 by Davide P. Cervone.
* You may use this code, provided this copyright notice is kept intact.
* See the CELLS.HELP file for complete information on distribution conditions.
*/
/*
* File: cReqLS.c Data structures for the File Requester.
*/
#include "Cells.h"
#include "cRequest.h"
#include "cReqLS.h"
#include "cBoxes.h"
#define DATAIMAGE(data,w,h) {0,0, w,h,2, &data[0], 3,0, NULL}
extern USHORT DLeftArrowData[];
extern USHORT CheckData[];
static short PanelBox[] = FBOX(LS_PANELW,LS_PANELH);
static short Frame1Box[] = FBOX(LS_FRAME1W,LS_FRAME1H);
static short Frame2Box[] = FBOX(LS_FRAME2W,LS_FRAME2H);
static short NameBox[] = FBOX(LS_NAMEW,LS_NAMEH);
static short NListBox[] = FBOX(LS_NLISTW,LS_NLISTH);
static short SlideBox[] = VBOX(LS_SLIDEW,LS_SLIDEH);
static short CheckBox[] = FBOX(LS_CHECKW+2,LS_CHECKH+2);
static short MessageBox[] = FBOX(LS_MESSAGEW,LS_MESSAGEH);
static short DirBox[] = HBOX(LS_DIRW,LS_DIRH);
static short ButtonBox[] = FBOX(LS_BUTTONW,LS_BUTTONH);
static struct Border LSBorder[] =
{
#define NEXTBORDER(n) &LSBorder[n+2]
#define BORDERNAME LSBorder
OUTBRDR(LSB_PANEL, 0,0, PanelBox),
INBRDR (LSB_FRAME1, LS_FRAME1X,LS_FRAME1Y, Frame1Box),
INBRDR (LSB_FRAME2, LS_FRAME2X,LS_FRAME2Y, Frame2Box),
INBRDR (LSB_NAME, LS_NAMEX,LS_NAMEY, NameBox),
OUTBRDR(LSB_SLIDE, LS_SLIDEX,LS_SLIDEY, SlideBox),
OUTBRDR(LSB_CHECK, LS_CHECKX-1,LS_CHECKY-1, CheckBox),
INBRDR (LSB_MESSAGE, LS_MESSAGEX,LS_MESSAGEY, MessageBox),
#undef NEXTBORDER
#define NEXTBORDER(n) NULL
OUTBRDR(LSB_DIR, LS_DIRX,LS_DIRY, DirBox),
INBRDR (LSB_NLIST, LS_NLISTX,LS_NLISTY, NListBox),
OUTBRDR(LSB_BUTTON, 0,0, ButtonBox),
};
static struct Image LSImage[] =
{
IMAGE(-1,-1,LS_NAMEW-2,LS_NAMEH-2,BACKGROUND),
IMAGE(0,0,0,0, FOREGROUND),
IMAGE(LS_SLIDEX+1,LS_SLIDEY+1,LS_SLIDEW-2,LS_SLIDEH-2,BACKGROUND),
IMAGE(1,1,LS_NLISTW-2,LS_NLISTH-2,BACKGROUND),
IMAGE(1,1,LS_NLISTW-2,LNAMEH,TEXTSELECT),
DATAIMAGE(DLeftArrowData,TEXTH,TEXTH),
DATAIMAGE(CheckData,LS_CHECKW,LS_CHECKH),
IMAGE(0,0,LS_CHECKW,LS_CHECKH,FOREGROUND),
IMAGE(1,1,LS_MESSAGEW-2,LS_MESSAGEH-2,FOREGROUND),
IMAGE(1,1,LS_DIRW-2,LS_DIRH-2,FOREGROUND),
};
char LSDirName[MAXFNAME];
struct IntuiText LSText[] =
{
ITEXT(NULL, 15,4),
ITEXT("Drive", 12,4),
ITEXT("Info", 15,4),
ITEXT("Delete", 9,4),
ITEXT("MakeDir", 7,4),
ITEXT("Cancel", 9,4),
ITEXT(&LSDirName[0], 0,2),
ITEXT(NULL, LS_CHECKW+5,0),
ITEXT(NULL, 0,2),
CTEXT(NULL, 3,1,BACKGROUND),
CTEXT(NULL, 3,1,BACKGROUND),
ITEXT(" ", 3,2), /* NList */
ITEXT(" ", 3,2),
ITEXT(" ", 3,2),
ITEXT(" ", 3,2),
ITEXT(" ", 3,2),
ITEXT(" ", 3,2),
ITEXT(" ", 3,2),
ITEXT(" ", 3,2),
};
char LSNameBuf[MAXFNAME];
extern char UndoBuffer[];
static struct StringInfo LSNameInfo =
{&LSNameBuf[0], &UndoBuffer[0], 0,MAXFNAME, 0, 0,0,0, 0,0, NULL, 0, NULL};
struct PropInfo LSSlider =
{AUTOKNOB|FREEVERT|PROPBORDERLESS,0,0,0xFFFF,0xFFFF, 0,0,0,0,0,0};
#define BUTTON(n)\
{\
&LSGadget[n+1], LS_BUTTONX,LS_BUTTONY+LS_BUTSEP*n,\
LS_BUTTONW,LS_BUTTONH, GADGHCOMP, RELVERIFY, BOOLGADGET| REQGADGET,\
(APTR)&LSBorder[LSB_BUTTON],NULL, &LSText[n], 0, NULL, n, NULL\
}
#define NLIST(n)\
{\
&LSGadget[n+1], LS_NLISTX,LS_NLISTY, LS_NLISTW,LS_NLISTH,\
GADGHNONE|GADGIMAGE|GADGDISABLED, GADGIMMEDIATE,\
BOOLGADGET|REQGADGET, (APTR)&LSImage[LSI_BLANK],NULL, NULL,\
0, NULL, n, (APTR)&LSListInfo\
}
#define NAME(n)\
{\
&LSGadget[n+1], LS_NAMEX+2,LS_NAMEY+2,LS_NAMEW-4,LS_NAMEH-4,\
GADGHCOMP|GADGIMAGE, GADGIMMEDIATE|RELVERIFY, STRGADGET|REQGADGET,\
(APTR)&LSImage[LSI_NAME], NULL, NULL, 0, (APTR)&LSNameInfo, n,\
(APTR)&LSListInfo\
}
#define ARROW(n,x,y,im)\
{\
&LSGadget[n+1], x,y,SLIDEWH,SLIDEWH, GADGHCOMP|GADGIMAGE|GADGDISABLED,\
GADGIMMEDIATE|RELVERIFY, BOOLGADGET|REQGADGET, (APTR)&cImage[im],\
NULL, NULL, NULL,NULL, n, (APTR)&LSListInfo\
}
#define DIR(n)\
{\
&LSGadget[n+1], LS_DIRX,LS_DIRY, LS_DIRW,LS_DIRH, GADGHCOMP|GADGIMAGE,\
RELVERIFY, BOOLGADGET|REQGADGET, (APTR)&LSImage[LSI_DIR],NULL,\
&LSText[LST_DIR], 0, NULL, n, (APTR)&LSListInfo\
}
#define DARROW(n)\
{\
&LSGadget[n+1], LS_DLARROWX,LS_DLARROWY,TEXTH,TEXTH, GADGHCOMP|GADGIMAGE,\
GADGIMMEDIATE|RELVERIFY,BOOLGADGET|REQGADGET, (APTR)&LSImage[LSI_DLARROW],\
NULL, NULL, NULL,NULL, n, (APTR)&LSListInfo\
}
#define CHECK(n)\
{\
&LSGadget[n+1], LS_CHECKX,LS_CHECKY, LS_CHECKW+LS_CTEXTW,LS_CHECKH,\
GADGHIMAGE|GADGIMAGE, TOGGLESELECT|GADGIMMEDIATE, BOOLGADGET|REQGADGET,\
(APTR)&LSImage[LSI_NOCHECK], (APTR)&LSImage[LSI_CHECK],\
&LSText[LST_CHECK], NULL,NULL, n, NULL\
}
#define SLIDER(n)\
{\
&LSGadget[n+1], LS_SLIDEX+2,LS_SLIDEY+2,LS_SLIDEW-4,LS_SLIDEH-4,\
GADGHCOMP|GADGIMAGE|GADGDISABLED, GADGIMMEDIATE|RELVERIFY,\
PROPGADGET|REQGADGET, (APTR)&LSImage[LSI_SLIDE], NULL, NULL, NULL,\
(APTR)&LSSlider, n, (APTR)&LSListInfo\
}
#define MESSAGE(n)\
{\
&LSGadget[n+1], LS_MESSAGEX,LS_MESSAGEY, LS_MESSAGEW,LS_MESSAGEH,\
GADGHNONE|GADGIMAGE, GADGIMMEDIATE, BOOLGADGET|REQGADGET,\
(APTR)&LSImage[LSI_MESSAGE], NULL, NULL, NULL,NULL, n,\
(APTR)&LSText[LST_MESS1]\
}
#define ENDLIST\
{&LSGadget[LS_IMGADG], 0,0,0,0, GADGHNONE, 0, BOOLGADGET|REQGADGET,\
(APTR)&LSBorder[LSB_NLIST],NULL, NULL, NULL,NULL, LS_BRDRGADG,NULL},\
{NULL, 0,0,0,0, GADGHNONE|GADGIMAGE, 0, BOOLGADGET|REQGADGET,\
(APTR)&LSImage[LSI_SBACK],NULL, NULL, NULL,NULL, LS_IMGADG,NULL}
static struct Gadget LSGadget[] =
{
BUTTON(LS_LOAD),
BUTTON(LS_DRIVE),
BUTTON(LS_INFO),
BUTTON(LS_DELETE),
BUTTON(LS_MAKEDIR),
BUTTON(LS_CANCEL),
NAME (LS_NAME),
NLIST (LS_NLIST),
SLIDER(LS_SLIDE),
ARROW (LS_UARROW,LS_UARROWX,LS_UARROWY,LSI_UARROW),
ARROW (LS_DARROW,LS_DARROWX,LS_DARROWY,LSI_DARROW),
DIR (LS_DIR),
DARROW(LS_DLARROW),
CHECK (LS_CHECK),
MESSAGE(LS_MESSAGE),
ENDLIST
};
struct ExtRequest LSRequest =
{
{NULL, 0,0, LS_PANELW,LS_PANELH, 0,0, &LSGadget[0], &LSBorder[LSB_PANEL],
&LSText[LST_TITLE], 0, FOREGROUND, NULL, NULL, NULL},
NULL,NULL,NULL, &LSGadget[LS_NAME],
};
struct ListInfo LSListInfo =
{
&LSRequest, &LSGadget[LS_NLIST], &LSGadget[LS_NAME], &LSGadget[LS_SLIDE],
NULL, NULL, NULL, &LSText[LST_NLIST0], &LSImage[LSI_BLANK],
8,20, 0,0, LI_NOSELECT, 0, 0
};