THis month's QR is unusual. It contains no functions. Instead, I have listed 
each of the STRUCTS detailed in the article. Explanations are in the text, 
however. I have also listed any 'enumerated types' and bitflags like ob_state.

GEM OBJECT

{
        WORD  ob_next;
        WORD  ob_head;
        WORD  ob_tail;
        UWORD ob_type;
        UWORD ob_flags;
        UWORD ob_state;
        VOID  *ob_spec;
        WORD  ob_x;
        WORD  ob_y;
        WORD  ob_width;
        WORD  ob_height;
} OBJECT;



TEDINFO STRUCTURE

{
        char *te_ptext;         
        char *te_ptmplt;        
        char *te_pvalid;        
        WORD te_font;           
        WORD te_fontid;         
        WORD te_just;           
        WORD te_color;          
        WORD te_fontsize;       
        WORD te_thickness;      
        WORD te_txtlen;         
        WORD te_tmplen;         
}TEDINFO;



IMAGE BITBLK

{
        WORD *bi_pdata;
        WORD bi_wb;     
        WORD bi_hl;     
        WORD bi_x;      
        WORD bi_y;      
        WORD bi_color;  
}BITBLK;



MONOCHROME ICON ICONBLK

{
        WORD *ib_pmask; 
        WORD *ib_pdata; 
        char *ptext;    
        WORD ib_char;
        WORD ib_xchar;
        WORD ib_ychar;
        WORD ib_xicon;
        WORD ib_yicon;
        WORD ib_wicon;
        WORD ib_hicon;
        WORD ib_xtext;
        WORD ib_ytext;
        WORD ib_wtext;
        WORD ib_htext;
}ICONBLK;



COLOUR ICON STRUCTURES

{
        ICONBLK monblk;
        CICON  *mainlist;
}CICON_BLK;

typedef struct cicon_data
{
        WORD numplanes;
        WORD *col_data;
        WORD *col_mask;
        WORD *sel_data;
        WORD *sel_mask;
        struct cicon_data *next;                                
}CICON;


PROGDEF STRUCTURES

{
        WORD (*ab_code) (PARMBLOCK *);
        LONG ab_parm;
}APPBLK:

{
        OBJECT *tree;
        WORD pb_obj;
        WORD pb_prevstate;
        WORD pb_currstate;
        WORD pb_x;
        WORD pb_y;
        WORD pb_w;
        WORD pb_h;
        WORD pb_xc;
        WORD pb_yc;
        WORD pb_wc;
        WORD pb_hc;
        LONG pb_parm;
}


OB_TYPE VALUES

20      G_BOX
21      G_TEXT
22      G_BOXTEXT
23      G_IMAGE
24      G_PROGDEF
25      G_IBOX
26      G_BUTTON
27      G_BOXCHAR
28      G_STRING
29      G_FTEXT
30      G_FBOXTEXT
31      G_ICON
32      G_TITLE
33      G_CICON


OB_FLAG bits

0       SELECTABLE
1       DEFAULT
2       EXIT
3       EDITABLE
4       RBUTTON
5       LASTOB
6       TOUCHEXIT
7       HIDETREE
8       INDIRECT
9       FL3DIND
10      FL3DACT
11      SUBMENU


OB_STATE bits

0       SELECTED
1       CROSSED
2       CHECKED
3       DISABLED
4       OUTLINED                        
5       SHADOWED

