
/*
**  This file forms part of the GOBLIN C++ Class Library.
**
**  Written by Christian Fremuth-Paeger, May 2001.
**  
**  Copying, compiling, distribution and modification
**  of this source code is permitted only in accordance
**  with the GOBLIN general licence information.
*/             


#if !defined(_EXP2TK_H_)

#define _EXP2TK_H_

#include <display.h>


class exp2tk : public goblinDisplay
{                                        
private:

    ofstream		expFile;
    
    char*           canvasName;
    char*           smallFont;
    char*           largeFont;

public:

	exp2tk(abstractMixedGraph &GG,char* expFileName) throw(ERFile);
	~exp2tk() throw();

    unsigned long   Size() throw();
    unsigned long   Allocated() throw();
    
	void			DisplayLegenda(long int xm,long int ym,long int radius) throw();
	void			WriteNodeLegenda(long int x,long int y,char* index) throw();
    
	void			DisplayArc(TArc a) throw();
	void			WriteArc(TArc a,TNode u,TNode v,int lineStyle,
                            int width,char* colour) throw();
	void			DisplayArrow(TArc a,TNode u,TNode v) throw();
    void			WriteArrow(long int xtop,long int ytop,double dx,double dy) throw();
	void			DisplayArcLabel(TArc a,TNode u,TNode v) throw();

	void			DisplayNode(TNode v) throw();
	void			WriteNode0(long int x,long int y) throw();
	void			WriteNode1(long int x,long int y,char* fillColour) throw();
	void			WriteNode2(long int x,long int y,char* fillColour) throw();
	void			WriteNodeLabel(TNode v,long int x,long int y) throw();
	
};                             


#endif
