#ifndef Registrierung_H
#define Registrierung_H

#include <Fenster.h>
#include <TextFeld.h>
#include <Knopf.h>
#include <TastaturEreignis.h>
#include <MausEreignis.h>
#include <Schrift.h>
#include <Bildschirm.h>
#include <AuswahlBox.h>
#include "..\..\Aktionen\AktionsThread.h"

using namespace Framework;

class Registrierung
{
private:
	Fenster *fenster;
	TextFeld *text;
	TextFeld *name;
	TextFeld *passwort;
	TextFeld *passwort2;
	TextFeld *geheimnis;
	TextFeld *eMail;
	TextFeld *geburtsdatum;
	AuswahlBox *gbdJahr;
	AuswahlBox *gbdMonat;
	AuswahlBox *gbdTag;
	Knopf *weiter;
	TextFeld *schlüssel;
	Knopf *fertig;
	Knopf *später;
	Knopf *neuSenden;
	Knopf *registrierung;
	int ref;
	void zeigeNachricht( const char *txt );

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

bool registrierungNameTE( void *p, void *obj, TastaturEreignis te );
bool registrierungPasswortTE( void *p, void *obj, TastaturEreignis te );
bool registrierungPasswort2TE( void *p, void *obj, TastaturEreignis te );
bool registrierungGeheimnisTE( void *p, void *obj, TastaturEreignis te );
bool registrierungEMailTE( void *p, void *obj, TastaturEreignis te );
bool registrierungWeiterME( void *p, void *obj, MausEreignis me );
bool registrierungSchlüsselTE( void *p, void *obj, TastaturEreignis te );
bool registrierungFertigME( void *p, void *obj, MausEreignis me );
bool registrierungSpäterME( void *p, void *obj, MausEreignis me );
bool registrierungNeuSendenME( void *p, void *obj, MausEreignis me );
bool registrierungRegistrierungME( void *p, void *obj, MausEreignis me );

#endif