#ifndef __XVTILITY_H
#define __XVTILITY_H

#ifndef XVT_INCL
#include <xvt.h>
#endif

#ifndef __STDTYPES_H
#include <stdtypes.h>
#endif

#ifndef __KEYS_H
#include <keys.h>
#endif


RCT& resize_rect(short x, short y, short dx, short dy, WIN_TYPE wt, WINDOW parent);

void xvt_draw_rect(WINDOW w, const RCT& r, COLOR c1, COLOR c2, short depth = 1);

WINDOW xvt_create_window
(
 WIN_TYPE wt,
 short x, short y, short dx, short dy,
 const char* caption, 
 int menu, WINDOW parent,
 long flags,
 EVENT_HANDLER eh,
 long app_data
 );

 WINDOW xvt_create_control
 (
  WIN_TYPE wt,
  short x, short y, short dx, short dy,
  const char* caption,
  WINDOW parent,
  long flags,
  long app_data,
  int id
  );

  WINDOW xvt_create_statbar();
  void xvt_statbar_set(const char* text, bool def = FALSE);
  void xvt_statbar_refresh();

  void beep();
  void do_events();
  void customize_colors();
  void customize_controls(bool on);
  KEY  e_char_to_key(const EVENT* ep);
  void dispatch_e_menu(WINDOW win, MENU_TAG item);
  void dispatch_e_char(WINDOW win, KEY key);
  void dispatch_e_scroll(WINDOW win, KEY key);

  void xvt_set_font(WINDOW win, const char* family, int style, int dim = 0);
  XVT_FNTID xvt_default_font();

  void xvt_set_front_control(WINDOW win);
  const char* xvt_get_title(WINDOW win);
  void xvt_set_title(WINDOW win, const char* title);
  void xvt_enable_control(WINDOW win, bool on);
  void xvt_check_box(WINDOW win, bool on);
  bool xvt_get_checked_state(WINDOW win);
  void xvt_check_radio_button(WINDOW win, const WINDOW* ctls, int count);
  int  xvt_get_checked_radio(const WINDOW* ctls, int count);
  void xvt_set_ctrl_back_color(WINDOW win, COLOR col);
  void xvt_change_page_tags(WINDOW pag, bool on, WINDOW tag, byte p);

  bool xvt_test_menu_tag(MENU_TAG tag);  

  COLOR trans_color(char c);
  PAT_STYLE trans_brush(char p);
  PEN_STYLE trans_pen  (char p);

  extern short CHARX, CHARY, BASEY, ROWY;

#endif