#ifndef UIBASECLASS_H
#define UIBASECLASS_H

#include "Ltypes.h"

/* User interface base class
 * -------------------------
 * A class in the user interface must be derived from this
 * and be passed to the Lsystem class on initiation */
enum ERRORS {  LINE_EMPTY_AND_IGNORED=0,
	       REC_LINE_BAD,
	       ANG_LINE_BAD,
	       THICK_LINE_BAD,
	       OUT_OF_RULE_CHARS,
	       USER_RULE_DUPLICATION,
	       OUT_OF_MEMORY,
};

class UIClass
{
public:
  //obtaining data
  virtual unsigned int get_MaxStringSize()=0;
  virtual unsigned int get_MaxLineLength()=0;
  virtual r32 get_min_thick()=0;
  virtual bool is_rand_set()=0;
  virtual bool is_trope_set()=0;
  virtual r32 get_trope_amount()=0;
  virtual r32 get_tr()=0;
  virtual r32 get_dis()=0;
  virtual r32 rand_amount()=0;
  //error messages
  virtual void Error(ERRORS err)=0;
  virtual void ProgrammingError(char *method, char *text)=0;
};

#endif
