#ifndef Login_H
#define Login_H

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

using namespace Framework;
using namespace Network;

class Login
{
private:
	Fenster *fenster;
	TextFeld *name;
	TextFeld *passwort;
	Knopf *weiter;
	Knopf *login;
	TextFeld *nachricht;
	TextFeld *geheimnis;
	Knopf *ok;
	Knopf *abbrechen;
	int ref;

public:
	// Konstruktor 
	Login( Schrift *zSchrift, Fenster *vorLoginFenster );
	// Destruktor 
	~Login();
	// Knopfdruck
	void Login::druckFremdKnopf(); // Ein anderer Bereich des Programms wurde ausgewählt
	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 okME( void *obj, MausEreignis me ); // MausEreignis im Knopf ok
	bool abbrechenME( void *obj, MausEreignis me ); // MausEreignis im Knopf abbrechen
	bool loginME( void *obj, MausEreignis me ); // MausEreignis im Knopf login
	void setLoginReturn( int ret ); // setzt den Returnwert vom login
	void setKickReturn( int ret ); // setzt den returnwert vom kick
	// Reference Counting
	Login *getThis();
	Login *release();
};

bool loginNameTE( void *p, void *obj, TastaturEreignis te );
bool loginPasswortTE( void *p, void *obj, TastaturEreignis te );
bool loginGeheimnisTE( void *p, void *obj, TastaturEreignis te );
bool loginWeiterME( void *p, void *obj, MausEreignis me );
bool loginOkME( void *p, void *obj, MausEreignis me );
bool loginAbbrechenME( void *p, void *obj, MausEreignis me );
bool loginLoginME( void *p, void *obj, MausEreignis me );

#endif