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 >
Wrap
C/C++ Source or Header
|
1991-04-20
|
6KB
|
186 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: cLPReq.c Data structures for the Load Part Requester.
*/
#include "Cells.h"
#include "cRequest.h"
#include "cReqLP.h"
#include "cBoxes.h"
static short PanelBox[] = FBOX(LP_PANELW,LP_PANELH);
static short Frame1Box[] = FBOX(LP_FRAME1W,LP_FRAME1H);
static short Frame2Box[] = FBOX(LP_FRAME2W,LP_FRAME2H);
static short Frame3Box[] = FBOX(LP_FRAME3W,LP_FRAME3H);
static short NameBox[] = FBOX(LP_NAMEW,LP_NAMEH);
static short PNameBox[] = FBOX(LP_PNAMEW,LP_PNAMEH);
static short PSlideBox[] = VBOX(LP_PSLIDEW,LP_PSLIDEH);
static short LNameBox[] = FBOX(LP_LNAMEW,LP_LNAMEH);
static short LSlideBox[] = VBOX(LP_LSLIDEW,LP_LSLIDEH);
static short ButtonVBox[] = VBOX(LP_BUTTONW,LP_BUTTONH);
static short ButtonFBox[] = FBOX(LP_BUTTONW,LP_BUTTONH);
static short ButtonBBox[] = BBOX(LP_BUTTONW,LP_BUTTONH);
static struct Border LPBorder[] =
{
#define NEXTBORDER(n) &LPBorder[n+2]
#define BORDERNAME LPBorder
OUTBRDR(LPB_PANEL, 0,0, PanelBox),
INBRDR (LPB_FRAME1, LP_FRAME1X,LP_FRAME1Y, Frame1Box),
INBRDR (LPB_FRAME2, LP_FRAME2X,LP_FRAME2Y, Frame2Box),
INBRDR (LPB_FRAME3, LP_FRAME3X,LP_FRAME3Y, Frame3Box),
OUTBRDR(LPB_PSLIDE, LP_PSLIDEX,LP_PSLIDEY, PSlideBox),
OUTBRDR(LPB_LSLIDE, LP_LSLIDEX,LP_LSLIDEY, LSlideBox),
INBRDR (LPB_PNAMES, LP_PNAMEX,LP_PNAMEY, PNameBox),
INBRDR (LPB_LNAMES, LP_LNAMEX,LP_LNAMEY, LNameBox),
#undef NEXTBORDER
#define NEXTBORDER(n) NULL
INBRDR (LPB_NAME, LP_NAMEX,LP_NAMEY, NameBox),
OUTBRDR(LPB_BUTTONV, 0,0, ButtonVBox),
OUTBRDR(LPB_BUTTONF, 0,0, ButtonFBox),
OUTBRDR(LPB_BUTTONB, 0,0, ButtonBBox),
};
static struct Image LPImage[] =
{
IMAGE(-1,-1,LP_NAMEW-2,LP_NAMEH-2,BACKGROUND),
IMAGE(0,0,0,0, FOREGROUND),
IMAGE(0,0,0,0, FOREGROUND),
IMAGE(1,1,LP_PNAMEW-2,CHAR_HEIGHT+2,FOREGROUND),
IMAGE(1,1,LP_PNAMEW-2,CHAR_HEIGHT+2,TEXTSELECT),
IMAGE(1,1,LP_LNAMEW-2,CHAR_HEIGHT+2,FOREGROUND),
IMAGE(1,1,LP_LNAMEW-2,CHAR_HEIGHT+2,TEXTSELECT),
{LP_PSLIDEX+1,LP_PSLIDEY+1,LP_PSLIDEW-2,LP_PSLIDEH-2,0,
NULL,0,BACKGROUND, &LPImage[LPI_LBACK]},
{LP_LSLIDEX+1,LP_LSLIDEY+1,LP_LSLIDEW-2,LP_LSLIDEH-2,0,
NULL,0,BACKGROUND, NULL},
};
struct IntuiText LPText[] =
{
ITEXT("Remove", 5,3),
ITEXT("View", 11,3),
ITEXT("Cancel", 5,3),
ITEXT("Use", 14,3),
ITEXT("Use Part: From Library:", 24,2),
ITEXT(" ",3,2), /* PNames */
ITEXT(" ",3,2),
ITEXT(" ",3,2),
ITEXT(" ",3,2),
ITEXT(" ",3,2),
ITEXT(" ",3,2),
ITEXT(" ",3,2),
ITEXT(" ",3,2),
ITEXT(" ",3,2), /* LNames */
ITEXT(" ",3,2),
ITEXT(" ",3,2),
ITEXT(" ",3,2),
ITEXT(" ",3,2),
ITEXT(" ",3,2),
};
char LPNameBuf[MAXPNAME+1];
extern char UndoBuffer[];
static struct StringInfo LPNameInfo =
{&LPNameBuf[0], &UndoBuffer[0], 0,MAXPNAME+1, 0, 0,0,0, 0,0, NULL, 0, NULL};
struct PropInfo LPSlider[] =
{
{AUTOKNOB|FREEVERT|PROPBORDERLESS,0,0,0x3FFF,0x3FFF, 0,0,0,0,0,0},
{AUTOKNOB|FREEVERT|PROPBORDERLESS,0,0,0xFFFF,0xFFFF, 0,0,0,0,0,0},
};
extern struct ListInfo PListInfo;
extern struct ListInfo LListInfo;
#define BUTTON(n,t,x,y,b,f)\
{\
&LPGadget[n+1], LP_BUTTONX+LP_BUTTONW*x,LP_BUTTONY+LP_BUTTONH*y,\
LP_BUTTONW,LP_BUTTONH, GADGHCOMP, f, BOOLGADGET| REQGADGET,\
(APTR)&LPBorder[b],NULL, &LPText[t], 0, NULL, n, NULL\
}
#define NAMES(n,x,y,t,im,li)\
{\
&LPGadget[n+1], x,y, LP_PNAMEW,LP_PNAMEH, GADGHNONE|GADGIMAGE,\
GADGIMMEDIATE, BOOLGADGET| REQGADGET,\
(APTR)&LPImage[im],NULL, &LPText[t], 0, NULL, n, (APTR)&li\
}
#define NAME(n)\
{\
&LPGadget[n+1], LP_NAMEX+2,LP_NAMEY+2,LP_NAMEW-4,LP_NAMEH-4,\
GADGHCOMP| GADGIMAGE, GADGIMMEDIATE|RELVERIFY, STRGADGET|REQGADGET,\
(APTR)&LPImage[LPI_NAME], NULL, NULL, 0, (APTR)&LPNameInfo, n,\
(APTR)&PListInfo\
}
#define ARROW(n,x,y,im,li)\
{\
&LPGadget[n+1], x,y,SLIDEWH,SLIDEWH, GADGHCOMP|GADGIMAGE,\
GADGIMMEDIATE|RELVERIFY,BOOLGADGET|REQGADGET, (APTR)&cImage[im],\
NULL, NULL, NULL,NULL, n, (APTR)&li\
}
#define SLIDER(n,x,y,w,h,li)\
{\
&LPGadget[n+1], x+2,y+2,w-4,h-4, GADGHCOMP|GADGIMAGE,\
GADGIMMEDIATE|RELVERIFY, PROPGADGET|REQGADGET,\
(APTR)&LPImage[n-LP_PSLIDE+LPI_PSLIDE], NULL, NULL, NULL,\
(APTR)&LPSlider[n-LP_PSLIDE], n, (APTR)&li\
}
#define ENDLIST\
{NULL, 0,0,0,0, GADGHNONE|GADGIMAGE, 0, BOOLGADGET|REQGADGET,\
(APTR)&LPImage[LPI_PBACK],NULL, NULL, NULL,NULL, LP_IMGADG,NULL}
static struct Gadget LPGadget[] =
{
BUTTON(LP_REMOVE, LPT_REMOVE, 0,0, LPB_BUTTONB, RELVERIFY),
BUTTON(LP_VIEW, LPT_VIEW, 1,0, LPB_BUTTONV, GADGIMMEDIATE|TOGGLESELECT),
BUTTON(LP_CANCEL, LPT_CANCEL, 0,1, LPB_BUTTONB, RELVERIFY),
BUTTON(LP_USE, LPT_USE, 1,1, LPB_BUTTONF, RELVERIFY),
NAMES (LP_PNAMES,LP_PNAMEX,LP_PNAMEY,LPT_PNAME0,LPI_PBLANK,PListInfo),
NAMES (LP_LNAMES,LP_LNAMEX,LP_LNAMEY,LPT_LNAME0,LPI_LBLANK,LListInfo),
SLIDER(LP_PSLIDE,LP_PSLIDEX,LP_PSLIDEY,LP_PSLIDEW,LP_PSLIDEH,PListInfo),
SLIDER(LP_LSLIDE,LP_LSLIDEX,LP_LSLIDEY,LP_LSLIDEW,LP_LSLIDEH,LListInfo),
ARROW (LP_PUARROW,LP_PUARROWX,LP_PUARROWY,LPI_UARROW,PListInfo),
ARROW (LP_PDARROW,LP_PDARROWX,LP_PDARROWY,LPI_DARROW,PListInfo),
ARROW (LP_LUARROW,LP_LUARROWX,LP_LUARROWY,LPI_UARROW,LListInfo),
ARROW (LP_LDARROW,LP_LDARROWX,LP_LDARROWY,LPI_DARROW,LListInfo),
NAME(LP_NAME),
ENDLIST
};
struct ExtRequest LPRequest =
{
{NULL, 0,0, LP_PANELW,LP_PANELH, 0,0, &LPGadget[0], &LPBorder[LPB_PANEL],
&LPText[LPT_TITLE], 0, FOREGROUND, NULL, NULL, NULL},
NULL,NULL,NULL, &LPGadget[LP_NAME],
};
static struct ListInfo PListInfo =
{
&LPRequest, &LPGadget[LP_PNAMES], &LPGadget[LP_NAME], &LPGadget[LP_PSLIDE],
NULL, NULL, NULL, &LPText[LPT_PNAME0], &LPImage[LPI_PBLANK],
8,12, 0,0, LI_NOSELECT, 0, 0
};
static struct ListInfo LListInfo =
{
&LPRequest, &LPGadget[LP_LNAMES], NULL, &LPGadget[LP_LSLIDE],
NULL, NULL, NULL, &LPText[LPT_LNAME0], &LPImage[LPI_LBLANK],
6,12, 0,0, LI_NOSELECT, 0, 0
};