#ifndef Auswahl_H
#define Auswahl_H

#include <Knopf.h>
#include <Animation.h>
#include <AuswahlBox.h>
#include <Tabelle.h>
#include <Thread.h>
#include "../Karte/KartenEditor.h"

using namespace Framework;

class Auswahl : private Thread
{
private:
	KartenEditor *kEditor;
	Animation2D *laden;
	TextFeld *suchFilterT;
	TextFeld *suchFilter;
	Knopf *suchen;
	AuswahlBox *sortSpalte;
	AuswahlBox *sortRichtung;
	ObjTabelle *karten;
	TextFeld *neuKarteName;
	AuswahlBox *neuKarteSpielArt;
	Knopf *neuKarte;
	Schrift *schrift;
	int aktion;
	unsigned char alpha;
	bool sichtbar;
	double tickVal;
	bool rend;
	int ref;

public:
	// Konstruktor
	Auswahl( Schrift *zSchrift, KartenEditor *kEditor );
	// Destruktor
	~Auswahl();
	// nicht constant
	void setSichtbar( bool sicht );
	virtual void thread();
	bool weiterME( Zeichnung *obj, MausEreignis &me );
	void doMausEreignis( MausEreignis &me );
	void doTastaturEreignis( TastaturEreignis &te );
	bool tick( double zeit );
	void render( Bild &zRObj );
	// constant
	bool istSichtbar() const;
	// Reference Counting
	Auswahl *getThis();
	Auswahl *release();
};

// Ereignisse
bool auswahlWeiterME( void *p, void *obj, MausEreignis me );

#endif;