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
/
cReqHelp.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-04-20
|
9KB
|
265 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: cReqHelp.c Data structures for the Help and About requesters.
*/
#include "Cells.h"
#include "cRequest.h"
#include "cHelp.h"
#include "cReqHelp.h"
#include "cBoxes.h"
extern USHORT DaveData[];
static short HLPPanelBox[] = FBOX(HLP_PANELW,HLP_PANELH);
static short HLPFrameBox[] = FBOX(HLP_FRAMEW,HLP_FRAMEH);
static short HLPListBox[] = FBOX(HLP_LISTW,HLP_LISTH);
static short HLPNameBox[] = FBOX(HLP_NAMEW,HLP_NAMEH);
static short HLPSlideBox[] = VBOX(HLP_SLIDEW,HLP_SLIDEH);
static short HLPButtonBox[] = HBOX(HLP_BUTTONW,HLP_BUTTONH);
static struct Border HLPBorder[] =
{
#define NEXTBORDER(n) &HLPBorder[n+2]
#define BORDERNAME HLPBorder
OUTBRDR(HLPB_PANEL, 0,0, HLPPanelBox),
INBRDR (HLPB_FRAME, HLP_FRAMEX,HLP_FRAMEY, HLPFrameBox),
INBRDR (HLPB_LIST, HLP_LISTX,HLP_LISTY, HLPListBox),
INBRDR (HLPB_NAME, HLP_NAMEX,HLP_NAMEY, HLPNameBox),
#undef NEXTBORDER
#define NEXTBORDER(n) NULL
OUTBRDR(HLPB_SLIDE, HLP_SLIDEX,HLP_SLIDEY, HLPSlideBox),
OUTBRDR(HLPB_BUTTON, 0,0, HLPButtonBox)
#undef NEXTBORDER
#undef BORDERNAME
};
static struct Image HLPImage[] =
{
IMAGE(-1,-1,HLP_NAMEW-2,HLP_NAMEH-2,BACKGROUND),
IMAGE(0,0,HLP_TITLEW,HLP_TITLEH,FOREGROUND),
IMAGE(0,0,0,0, FOREGROUND),
IMAGE(1,1,HLP_LISTW-2,LNAMEH,FOREGROUND),
IMAGE(1,1,HLP_LISTW-2,LNAMEH,TEXTSELECT),
IMAGE(HLP_SLIDEX+1,HLP_SLIDEY+1,HLP_SLIDEW-2,HLP_SLIDEH-2,BACKGROUND)
};
static char Topics[7] = "Topics";
static struct IntuiText HLPText[] =
{
ITEXT("Done", 11,2),
ITEXT("Help", 11,2),
ITEXT("Parent", 5,2),
ITEXT(&Topics[0], 5,2),
ITEXT("More", 11,2),
CTEXT(NULL, 30,1, TITLEPEN),
ITEXT(" ", 3,1),
ITEXT(" ", 3,11),
ITEXT(" ", 3,21),
ITEXT(" ", 3,31),
ITEXT(" ", 3,41),
ITEXT(" ", 3,51),
ITEXT(" ", 3,61),
ITEXT(" ", 3,71),
ITEXT(" ", 3,81),
ITEXT(" ", 3,91),
ITEXT(" ", 3,101),
ITEXT(" ", 3,111),
};
char HlpNameBuf[MAXBUFFER];
extern char UndoBuffer[];
static struct StringInfo HlpNameInfo =
{&HlpNameBuf[0], &UndoBuffer[0], 0,MAXBUFFER, 0, 0,0,0, 0,0, NULL, 0, NULL};
struct PropInfo HlpSlider =
{AUTOKNOB|FREEVERT|PROPBORDERLESS,0,0,0xFFFF,0xFFFF, 0,0,0,0,0,0};
extern struct ListInfo HlpListInfo;
#define BUTTON(n,f)\
{\
&HLPGadget[n+1], HLP_BUTTONX+HLP_BUTTONW*(n-HLP_DONE),HLP_BUTTONY,\
HLP_BUTTONW,HLP_BUTTONH, GADGHCOMP, (f)+RELVERIFY, BOOLGADGET| REQGADGET,\
(APTR)&HLPBorder[HLPB_BUTTON],NULL, &HLPText[n-HLP_DONE+HLPT_DONE], 0,\
NULL, n, NULL\
}
#define LIST(n,x,y)\
{\
&HLPGadget[n+1], x,y, HLP_LISTW,HLP_LISTH, GADGHNONE|GADGIMAGE,\
GADGIMMEDIATE, BOOLGADGET| REQGADGET, (APTR)&HLPImage[HLPI_BLANK],\
NULL, &HLPText[HLPT_LIST0], 0, NULL, n, (APTR)&HlpListInfo\
}
#define NAME(n)\
{\
&HLPGadget[n+1], HLP_NAMEX+2,HLP_NAMEY+2,HLP_NAMEW-4,HLP_NAMEH-4,\
GADGHCOMP|GADGIMAGE, GADGIMMEDIATE|RELVERIFY, STRGADGET|REQGADGET,\
(APTR)&HLPImage[HLPI_NAME], NULL, NULL, 0, (APTR)&HlpNameInfo, n,\
(APTR)&HlpListInfo\
}
#define TITLE(n)\
{\
&HLPGadget[n+1], HLP_TITLEX,HLP_TITLEY,0,0, GADGHNONE|GADGIMAGE, 0,\
BOOLGADGET|REQGADGET, (APTR)&HLPImage[HLPI_TITLE],\
NULL, &HLPText[HLPT_TITLE], 0, NULL, n, NULL\
}
#define ARROW(n,x,y,im)\
{\
&HLPGadget[n+1], x,y,SLIDEWH,SLIDEWH, GADGHCOMP|GADGIMAGE,\
GADGIMMEDIATE|RELVERIFY, BOOLGADGET|REQGADGET, (APTR)&cImage[im],\
NULL, NULL, NULL,NULL, n, (APTR)&HlpListInfo\
}
#define SLIDER(n,x,y,w,h)\
{\
&HLPGadget[n+1], x+2,y+2,w-4,h-4, GADGHCOMP|GADGIMAGE,\
GADGIMMEDIATE|RELVERIFY, PROPGADGET|REQGADGET, (APTR)&HLPImage[HLPI_SLIDE],\
NULL, NULL, NULL, (APTR)&HlpSlider, n, (APTR)&HlpListInfo\
}
#define ENDLIST\
{NULL, 0,0,0,0, GADGHNONE|GADGIMAGE, 0, BOOLGADGET|REQGADGET,\
(APTR)&HLPImage[HLPI_BACK],NULL, NULL, NULL,NULL, HLP_IMGADG, NULL}
static struct Gadget HLPGadget[] =
{
BUTTON(HLP_DONE,0),
BUTTON(HLP_HELP,(TOGGLESELECT|GADGIMMEDIATE)-RELVERIFY),
BUTTON(HLP_PARENT,0),
BUTTON(HLP_TOPICS,0),
BUTTON(HLP_MORE,0),
LIST (HLP_LIST,HLP_LISTX,HLP_LISTY),
NAME (HLP_NAME),
SLIDER(HLP_SLIDE,HLP_SLIDEX,HLP_SLIDEY,HLP_SLIDEW,HLP_SLIDEH),
ARROW (HLP_UARROW,HLP_UARROWX,HLP_UARROWY,HLPI_UARROW),
ARROW (HLP_DARROW,HLP_DARROWX,HLP_DARROWY,HLPI_DARROW),
TITLE (HLP_TITLE),
ENDLIST
};
struct ExtRequest HLPRequest =
{
{NULL, 0,0, HLP_PANELW,HLP_PANELH, 0,0, &HLPGadget[0],
&HLPBorder[HLPB_PANEL], NULL, 0, FOREGROUND, NULL, NULL, NULL},
NULL,NULL,NULL, &HLPGadget[HLP_NAME],
};
struct ListInfo HlpListInfo =
{
&HLPRequest, &HLPGadget[HLP_LIST], &HLPGadget[HLP_NAME],
&HLPGadget[HLP_SLIDE], NULL, NULL, NULL, &HLPText[HLPT_LIST0],
&HLPImage[HLPI_BLANK], 12,35, 0,0, 0, 0, 0
};
static short ABTPanelBox[] = FBOX(ABT_PANELW,ABT_PANELH);
static short ABTFrameBox[] = FBOX(ABT_FRAMEW,ABT_FRAMEH);
static short ABTButtonBox[] = FBOX(ABT_BUTTONW,ABT_BUTTONH);
static struct Border ABTBorder[] =
{
#define NEXTBORDER(n) &ABTBorder[n+2]
#define BORDERNAME ABTBorder
OUTBRDR(ABTB_PANEL, 0,0, ABTPanelBox),
#undef NEXTBORDER
#define NEXTBORDER(n) NULL
INBRDR (ABTB_FRAME, ABT_FRAMEX,ABT_FRAMEY, ABTFrameBox),
OUTBRDR(ABTB_BUTTON, 0,0, ABTButtonBox)
};
static struct Image DaveImage =
{0,0, ABT_DAVEW,ABT_DAVEH,2, &DaveData[0], 3,0, NULL};
static char AbtTitle[32];
static char Free[25];
static struct IntuiText ABTText[] =
{
ATEXT(ABTT_TITLE, &AbtTitle[0], ABT_TITLEX,ABT_TITLEY, TITLEPEN),
ALINE(ABTT_COPYRT, "Copyright (c) 1990"),
ALINE(ABTT_NAME, "Davide P. Cervone"),
ALINE(ABTT_ADDR, "50 Armstrong Avenue"),
ALINE(ABTT_CITY, "Providence, RI 02903"),
ALAST(ABTT_FREE, &Free[0], ABT_FREEX,ABT_FREEY, FREEPEN),
ALAST(ABTT_OK, "OK", 7,3, TEXTPEN),
};
static struct Gadget ABTGadget[] =
{
{&ABTGadget[1], ABT_BUTTONX,ABT_BUTTONY, ABT_BUTTONW,ABT_BUTTONH,
GADGHCOMP, RELVERIFY, BOOLGADGET|REQGADGET, (APTR)&ABTBorder[ABTB_BUTTON],
NULL, &ABTText[ABTT_OK], 0, NULL, ABT_OK, NULL},
{NULL, ABT_DAVEX, ABT_DAVEY, 0,0, GADGHNONE|GADGIMAGE, 0,
BOOLGADGET|REQGADGET, (APTR)&DaveImage, NULL,NULL, NULL,NULL,
ABT_DAVE, NULL}
};
struct ExtRequest ABTRequest =
{
{NULL, 0,0, ABT_PANELW,ABT_PANELH, 0,0, &ABTGadget[0],
&ABTBorder[ABTB_PANEL], &ABTText[ABTT_TITLE], 0, FOREGROUND,
NULL,NULL,NULL}, NULL,NULL,NULL, NULL,
};
/*
* The main default HELP topic
*/
#define HFIRST(i,s) {NULL,&HelpLine[i+1],s,0,HLP_STATIC}
#define HLINE(i,s) {&HelpLine[i-1],&HelpLine[i+1],s,0,HLP_STATIC}
#define HLAST(i,s) {&HelpLine[i-1],NULL,s,0,HLP_STATIC}
static HELPLINE HelpLine[] =
{
HFIRST(0,"Control Help with the buttons:"),
HLINE(1,""),
HLINE(2,"MORE for the next page of text"),
HLINE(3,"TOPICS for a list of sub-topics"),
HLINE(4,"PARENT to go to the previous"),
HLINE(5," help topic level"),
HLINE(6,"HELP to get this message"),
HLINE(7,"DONE when you are all finished"),
HLINE(8,""),
HLINE(9,"The slider scrolls the text."),
HLINE(10,""),
HLINE(11," [Press MORE]"),
HLINE(12,"Double-Click on a topic to select"),
HLINE(13,"it, or type one in at the bottom"),
HLINE(14,"(prefix matching is performed)."),
HLINE(15,""),
HLINE(16,"Topics are in a hierarchy with"),
HLINE(17,"sub-topics nested to any depth."),
HLINE(18,""),
HLINE(19,"Use PARENT to go up a level, and"),
HLINE(20,"TOPICS to go down a level. SHIFT"),
HLINE(21,"PARENT takes you to the top level."),
HLINE(22,""),
HLAST(23," [Press HELP when ready to go on]"),
};
HELPITEM DefaultHelp =
{
NULL,NULL, NULL,0, HLP_STATIC|HLP_LOADED, NULL, 0, NULL, &HelpLine[23],
"How to use HELP:", 0
};