// -*- c++ -*-

#ifndef _XVSCREEN_H
#define _XVSCREEN_H

#include "X11Screen.h"

#include <xview/xview.h>
#include <xview/panel.h>
#include <xview/font.h>

class XvWindow;

class XvScreen : public X11Screen
{
public:
  XvScreen(int argc, char **argv);
  void StartUp();
  void MainLoop();

  virtual MapDisplay *CreateMapDisplay();
  virtual MapDisplay *CreateMapDisplay(class World *W, class Player *p);
  virtual CityDisplay *CreateCityDisplay(class City *city,class Player *owner);
  virtual TextDisplay *CreateTextDisplay(int x, int y);

  void StartTimer(int which, unsigned long milli, HandlerFunc func, void *client_data);
  void StopTimer(int which);
  void AddReadNotify(int fd, readNotifyFunc func, int info = 0, int q = 1);

  void CreateChoiceFrame(char *mesg, List<charp> choices, ChoiceHandlerFunc f,
			 void *client_data);
  void DispMessageBox(char *mesg, MessageHandlerFunc f, void *data);

  static Frame DefaultFrame;
};

#endif // _XVSCREEN_H
