#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
 );

  int allow_another_instance();
  int deny_another_instance();

  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_event(WINDOW win, const EVENT& e, bool post);
  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 begin_wait();
  void end_wait();

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

  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
