#ifndef Unregistrierung_H
#define Unregistrierung_H

#include <Klient.h>
#include <Fenster.h>
#include <Knopf.h>
#include <TextFeld.h>
#include <MausEreignis.h>
#include <TastaturEreignis.h>
#include "..\..\Aktionen\AktionsThread.h"

using namespace Framework;
using namespace Network;

class Unregistrierung
{
private:
	Fenster *fenster;
	TextFeld *name;
	TextFeld *passwort;
	TextFeld *geheimnis;
	Knopf *weiter;
	TextFeld *text;
	TextFeld *schlüssel;
	Knopf *fertig;
	Knopf *später;
	Knopf *neuSenden;
	Knopf *unregistrierung;
	int ref;
	void zeigeNachricht( const char *txt );

public:
	// Konstruktor 
	Unregistrierung( Schrift *zSchrift, Fenster *zVorLoginFenster );
	// Destruktor 
	~Unregistrierung();
	// Knopfdruck
	void druckFremdKnopf(); // Ein anderer Knopfwurde gedrückt
	bool nameTE( void *obj, TastaturEreignis te ); // Tastaturereignis im Textfeld name
	bool passwortTE( void *obj, TastaturEreignis te ); // Tastaturereignis im Textfeld passwort
	bool geheimnisTE( void *obj, TastaturEreignis te ); // Tastaturereignis im Textfeld geheimnis
	bool weiterME( void *obj, MausEreignis me ); // MausEreignis im Knopf weiter
	bool schlüsselTE( void *obj, TastaturEreignis te ); // Tastaturereignis im Textfeld schlüssel
	bool späterME( void *obj, MausEreignis me ); // MausEreignis im Knopf später
	bool neuSendenME( void *obj, MausEreignis me ); // MausEreignis im Knopf neuSenden
	bool fertigME( void *obj, MausEreignis me ); // MausEreignis im Knopf fertig
	bool unregistrierungME( void *obj, MausEreignis me ); // MausEreignis im Knopf unregistrierung
	void setWeiterReturn( bool ret ); // setzt den Weiter Returnwert
	void setFertigReturn( bool ret ); // setzt den Fertig Returnwert
	// Reference Counting
	Unregistrierung *getThis();
	Unregistrierung *release();
};

// Ereignisse
bool unregistrierungNameTE( void *p, void *obj, TastaturEreignis te );
bool unregistrierungPasswortTE( void *p, void *obj, TastaturEreignis te );
bool unregistrierungGeheimnisTE( void *p, void *obj, TastaturEreignis te );
bool unregistrierungWeiterME( void *p, void *obj, MausEreignis me );
bool unregistrierungSchlüsselTE( void *p, void *obj, TastaturEreignis te );
bool unregistrierungSpäterME( void *p, void *obj, MausEreignis me );
bool unregistrierungNeuSendenME( void *p, void *obj, MausEreignis me );
bool unregistrierungFertigME( void *p, void *obj, MausEreignis me );
bool unregistrierungUnregistrierungME( void *p, void *obj, MausEreignis me );

#endif