static void draw_box(gint irt, gint jcl, gint irb, gint jcr,
                     gint num_lines, gint line_color, gint box_color,
                     const gchar *title, gint title_color,
                     const gchar *subtitle, gint subtitle_color,
                     gint isave_pix);
static void draw_shadow(GtkWidget *widget, gint row1, gint col1,
                        gint row2, gint col2, gint isave_pix);
static void draw_updn_arrows(gint irow, gint jcol, gint arrow_color);
static void write_line(gint row, gint col, const gchar *line_out,
                       gint lo_color, gint isave_pix);
static void write_markup_line(gint row, gint col, const gchar *line_out,
                              gint lo_color, gint isave_pix);
static void draw_rectangle(GdkRectangle *ur_ptr, gint ur_color,
                           gint isave_pix);
static guint boxed_message(const gchar *bmsg, guint bmsg_time,
                           gint box_color);
static gint bm_key_handler(GtkWidget *widget, GdkEventKey *event,
                           BMVars *bmd);
static gint bm_cursor(gpointer data);
static gint boxed_unmessage(gpointer data);
static void rw_error_box(GtkWidget *widget, const gchar *emsg);
static gint rweb_delay(gpointer widget);
static void fatal_error_box(GtkWidget *widget, const gchar *emsg);
static gint feb_delay(gpointer widget);
static void menu_bar(GtkWidget *widget);
static void date_and_time_bar(gpointer widget);
static void cyan_bar_titles(GtkWidget *widget);
static void black_bar(GtkWidget *widget, gint row1, gint col1,
                      gint row2, gint col2);
static void color_bar(GtkWidget *widget, gint row1, gint col1,
                      gint row2, gint col2, gint bar_color);
static void output_box(gint idraw);
static gint ob_key_handler(GtkWidget *widget, GdkEventKey *event,
                           gpointer da);
static gint backup_to_media(gint item);
static gint check_mtab_file(const gchar *mp, gchar *mpd);
static void update_box(gint idraw);
static gint ub_key_handler(GtkWidget *widget, GdkEventKey *event,
                           gpointer data);
static void update_call_library_file(void);
static gint update_radio_file(void);
static void goto_box(gint idraw);
static gint gb_key_handler(GtkWidget *widget, GdkEventKey *event,
                           gpointer data);
static gint gb_cursor(gpointer data);
static gint enter_zone_box(void);
static gint ezb_key_handler(GtkWidget *widget, GdkEventKey *event,
                            gpointer data);
static gint ezb_cursor(gpointer data);
struct output_box_vars
{
  gint item;
  gint number_of_items;
  guint key_handler_id;
};
typedef struct output_box_vars OBVars;
struct goto_box_vars
{
  gint item;
  gint number_of_items;
  gint row1;
  gint cursor_col;
  gint col1[4];
  gint field_length[4];
  gchar field_line[14];
  guint key_handler_id;
  gint done;
};
typedef struct goto_box_vars GBVars;
