/*
 *  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.h       Defines for the HELP and ABOUT requesters
 */


/*
 *  Gadget IDs and array positions
 */

#define HLP_DONE    0
#define HLP_HELP    1
#define HLP_PARENT  2
#define HLP_TOPICS  3
#define HLP_MORE    4
#define HLP_LIST    5
#define HLP_NAME    6
#define HLP_SLIDE   7
#define HLP_UARROW  8
#define HLP_DARROW  9
#define HLP_TITLE   10
#define HLP_IMGADG  11

#define HLP_TEXT    12

/*
 *  Array positions
 */

#define HLPB_PANEL  0
#define HLPB_FRAME  2
#define HLPB_LIST   4
#define HLPB_NAME   6
#define HLPB_SLIDE  8
#define HLPB_BUTTON 10

#define HLPI_NAME   0
#define HLPI_TITLE  1
#define HLPI_SLIDE  2
#define HLPI_BLANK  3
#define HLPI_SELECT 4
#define HLPI_BACK   5

#define HLPI_UARROW 3
#define HLPI_DARROW 4

#define HLPT_DONE   0
#define HLPT_HELP   1
#define HLPT_PARENT 2
#define HLPT_TOPICS 3
#define HLPT_MORE   4
#define HLPT_TITLE  5
#define HLPT_LIST0  6
#define HLPT_LIST11 17

/*
 *  Sizes and screen positions
 */

#define HLP_PANELW  237
#define HLP_PANELH  170

#define HLP_FRAMEX  3
#define HLP_FRAMEY  11
#define HLP_FRAMEW  (HLP_PANELW-6)
#define HLP_FRAMEH  (HLP_PANELH-14)

#define HLP_TITLEX  1
#define HLP_TITLEY  1
#define HLP_TITLEW  (HLP_PANELW-2)
#define HLP_TITLEH  LNAMEH

#define HLP_LISTX   (HLP_FRAMEX+3)
#define HLP_LISTY   (HLP_FRAMEY+3)
#define HLP_LISTW   (HLP_NAMEW-SLIDEWH)
#define HLP_LISTH   (12*LNAMEH+2)

#define HLP_NAMEX   HLP_LISTX
#define HLP_NAMEY   (HLP_LISTY+HLP_LISTH+2)
#define HLP_NAMEW   (HLP_FRAMEW-6)
#define HLP_NAMEH   TEXTH

#define HLP_UARROWX (HLP_LISTX+HLP_LISTW)
#define HLP_UARROWY HLP_LISTY
#define HLP_DARROWX HLP_UARROWX
#define HLP_DARROWY (HLP_SLIDEY+HLP_SLIDEH)

#define HLP_SLIDEX  HLP_UARROWX
#define HLP_SLIDEY  (HLP_UARROWY+SLIDEWH)
#define HLP_SLIDEW  SLIDEWH
#define HLP_SLIDEH  (HLP_LISTH-2*SLIDEWH)

#define HLP_BUTTONX HLP_NAMEX
#define HLP_BUTTONY (HLP_NAMEY+HLP_NAMEH+2)
#define HLP_BUTTONW 45
#define HLP_BUTTONH TEXTH

#define TOPICPEN    BACKGROUND

extern struct ExtRequest HLPRequest;        /* the Help Requester */
extern struct ListInfo HlpListInfo;         /* the Help List Gadget info */
extern struct HelpItem DefaultHelp;         /* main (static) default help */
extern struct HelpItem *DefaultHelpTopic;   /* default help (from file) */


/*
 *  About Box Defines:
 */

#define ABT_OK      0
#define ABT_DAVE    1

#define ABTB_PANEL  0
#define ABTB_FRAME  2
#define ABTB_BUTTON 4

#define ABTT_TITLE  0
#define ABTT_COPYRT 1
#define ABTT_NAME   2
#define ABTT_ADDR   3
#define ABTT_CITY   4
#define ABTT_FREE   5
#define ABTT_OK     6

#define ABT_PANELW  191
#define ABT_PANELH  81

#define ABT_FRAMEX  3
#define ABT_FRAMEY  11
#define ABT_FRAMEW  (ABT_PANELW-6)
#define ABT_FRAMEH  (ABT_PANELH-14)

#define ABT_BUTTONX (ABT_PANELW-ABT_BUTTONW-6)
#define ABT_BUTTONY (ABT_PANELH-ABT_BUTTONH-6)
#define ABT_BUTTONW 25
#define ABT_BUTTONH (TEXTH+2)

#define ABT_TITLEY  2
#define ABT_TITLEX  9

#define ABT_DAVEX   (ABT_FRAMEX+4)
#define ABT_DAVEY   (ABT_FRAMEY+4)
#define ABT_DAVEW   45
#define ABT_DAVEH   47

#define ABT_TEXTX   (ABT_DAVEX+ABT_DAVEW+6)
#define ABT_TEXTY   (ABT_DAVEY+5)
#define ABT_TEXTH   LNAMEH

#define ABT_FREEX   (ABT_DAVEX+3)
#define ABT_FREEY   (ABT_PANELH-TEXTH-3)

#define ATEXT(n,s,x,y,c)    {c,FOREGROUND,JAM2, x,y, NULL, s, &ABTText[n+1]}
#define ALAST(n,s,x,y,c)    {c,FOREGROUND,JAM2, x,y, NULL, s, NULL}
#define ALINE(n,s)\
   {TEXTPEN,FOREGROUND,JAM2, ABT_TEXTX,ABT_TEXTY+(n-ABTT_COPYRT)*ABT_TEXTH,\
    NULL, s, &ABTText[n+1]}

#define TITLEPEN    HIGHLIGHT
#define FREEPEN     BACKGROUND

extern struct ExtRequest ABTRequest;
