/******************************************************************************
 *
 * jabaiface.h
 *
 * (c) Leonid (Lodrion) Taycher 2000
 *
 ******************************************************************************/
 
#ifndef __JABAIFACE_H__
#define __JABAIFACE_H__

#include <list>
#include <stdio.h>

#include <qt/qapplication.h>
#include <qt/qwidget.h>
#include <qt/qpainter.h>
#include <qt/qwmatrix.h>

#include <ptrhandle.h>

#include <jaba.h>

class JabaIFace : public QWidget
{
	Q_OBJECT

typedef lcJabaNode* Node;
public:
	JabaIFace();
	~JabaIFace();
	
	// Maze accessors
	void maze(const lcLabyrinth& mz);
	const lcLabyrinth& maze() const { return _maze; };
	
	const list<Node>& jabas() const { return _jabas; };
	
protected:
	virtual void paintEvent(QPaintEvent *);
	virtual void timerEvent(QTimerEvent *);
	virtual void mouseReleaseEvent(QMouseEvent *);
private:
		
	void messageCollect(vector<lcJabaEtherMessage>& messages);

	lcLabyrinth _maze;
	lcDiscoveredLabyrinth _dmaze;
	list<Node> _jabas;
};

#endif
