#ifndef EMail_H
#define EMail_H

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

using namespace Framework;

class EMailÄndern
{
private:
	Knopf *eMailÄndern;
	Fenster *fenster;
	TextFeld *name;
	TextFeld *passwort;
	TextFeld *geheimnis;
	TextFeld *nEMail;
	Knopf *weiter;
	TextFeld *nachricht;
	int ref;
	void zeigeNachricht( const char *txt );

public:
	// Konstruktor
	EMailÄndern( Schrift *zSchrift, Fenster *zVorLoginFenster );
	// Destruktor
	~EMailÄndern();
	// Knopfdruck
	void druckFremdKnopf(); // Ein anderer Knopf wurde gedrückt
	bool eMailÄndernME( void *obj, MausEreignis me ); // MausEreignis im Knopf eMailÄndern
	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 nEMailTE( void *obj, TastaturEreignis te ); // Tastaturereignis im Textfeld nEMail
	bool weiterME( void *obj, MausEreignis me ); // MausEreignis im Knopf weiter
	void setReturn( bool ret ); // Setzt den Returnwert
	// Reference Counting
	EMailÄndern *getThis();
	EMailÄndern *release();
};

class EMailVergessen
{
private:
	Knopf *eMailVergessen;
	Fenster *fenster;
	TextFeld *name;
	TextFeld *passwort;
	TextFeld *geheimnis;
	Knopf *weiter;
	TextFeld *nachricht;
	int ref;
	void zeigeNachricht( const char *txt );

public:
	// Konstruktor
	EMailVergessen( Schrift *zSchrift, Fenster *zVorLoginFenster );
	// Destruktor
	~EMailVergessen();
	// Knopfdruck
	void druckFremdKnopf(); // Ein anderer Knopf wurde gedrückt
	bool eMailVergessenME( void *obj, MausEreignis me ); // MausEreignis im Knopf eMailVergessen
	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
	void setReturn( bool ret, char *eMail ); // Setzt den Returnwert
	// Reference Counting
	EMailVergessen *getThis();
	EMailVergessen *release();
};

// messages
bool eMailÄndernEMailÄndernME( void *p, void *obj, MausEreignis me );
bool eMailÄndernNameTE( void *p, void *obj, TastaturEreignis te );
bool eMailÄndernPasswortTE( void *p, void *obj, TastaturEreignis te );
bool eMailÄndernGeheimnisTE( void *p, void *obj, TastaturEreignis te );
bool eMailÄndernNEMailTE( void *p, void *obj, TastaturEreignis te );
bool eMailÄndernWeiterME( void *p, void *obj, MausEreignis me );

bool eMailVergessenEMailVergessenME( void *p, void *obj, MausEreignis me );
bool eMailVergessenNameTE( void *p, void *obj, TastaturEreignis te );
bool eMailVergessenPasswortTE( void *p, void *obj, TastaturEreignis te );
bool eMailVergessenGeheimnisTE( void *p, void *obj, TastaturEreignis te );
bool eMailVergessenWeiterME( void *p, void *obj, MausEreignis me );

#endif