/*****************************************************************************
*           Change Log
*  Date     | Change
*-----------+-----------------------------------------------------------------
*  8-Feb-86 | [1.355] Created change log
*  8-Feb-86 | [1.355] added border, on, off colors
* 29-Jul-86 | [1.385] 'push' now points to void not int procedure
*****************************************************************************/
#include "boolean.h"

typedef struct
   {
    coord X;
    coord Y;
    char * legend;
    boolean active;
    void (*push) (void);
    attrib border;		/* border color */
    attrib on;			/* on-color */
    attrib off;			/* off-color */
   } button;
/* Data for all buttons */

#define button_width 7
#define button_height 3

extern void set_reset_button(void);
extern void clear_off(void);
extern boolean running(void);

extern void draw_button(button * B);
extern boolean in_button(coord X, coord Y, button * B);
extern void i_show(void);
extern void a_show(void);
extern void b_show(void);
extern void stop_execute(void);
extern void draw_a_button(void);
extern void draw_b_button(void);
extern void draw_i_button(void);
extern void draw_off_button(void);
extern void draw_load_button(void);
extern void draw_start_button(void);
extern void draw_stop_button(void);
extern void draw_reset_button(void);
extern void check_buttons(coord X,coord Y);
extern void start_execute(void);
extern void check_reset_button(coord X,coord Y);
extern void check_run_buttons(coord X,coord Y);
extern void check_off_button(coord X,coord Y);
