123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402 |
- #include "Login.h"
- #include <InitDatei.h>
- #include <Punkt.h>
- #include <Text.h>
- #include "..\..\Global\Initialisierung.h"
- #include "..\..\Global\Variablen.h"
- // Inhalt der Login Klasse aus Login.h
- // Konstruktor
- Login::Login(Fenster* vorLoginFenster)
- : ReferenceCounter()
- {
- Punkt bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
- login = initKnopf(10, 50, 130, 30, Knopf::Style::Sichtbar, "Login");
- login->setMausEreignisParameter(this);
- login->setMausEreignis(loginLoginME);
- initToolTip(login, "Einloggen.");
- vorLoginFenster->addMember(dynamic_cast<Zeichnung*>(login->getThis()));
- fenster = initFenster(bildschirmGröße.x / 2 - 125,
- bildschirmGröße.y / 2 - 75,
- 250,
- 150,
- Fenster::Style::Sichtbar | Fenster::Style::Erlaubt
- | Fenster::Style::Rahmen | Fenster::Style::Titel
- | Fenster::Style::TitelBuffered,
- "Login");
- name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name");
- name->setTastaturEreignisParameter(this);
- name->setTastaturEreignis(loginNameTE);
- initToolTip(name, "Account Name.");
- fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
- passwort
- = initTextFeld(20, 55, 208, 20, TextFeld::Style::TextFeld, "Passwort");
- passwort->setTastaturEreignisParameter(this);
- passwort->setTastaturEreignis(loginPasswortTE);
- initToolTip(passwort, "Account Passwort.");
- fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
- weiter = initKnopf(75, 90, 100, 20, Knopf::Style::Sichtbar, "Login");
- weiter->setMausEreignisParameter(this);
- weiter->setMausEreignis(loginWeiterME);
- fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
- nachricht = initTextFeld(5,
- 5,
- 238,
- 90,
- TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig,
- "");
- fenster->addMember(dynamic_cast<Zeichnung*>(nachricht->getThis()));
- geheimnis
- = initTextFeld(20, 55, 208, 20, TextFeld::Style::TextFeld, "Geheimnis");
- geheimnis->removeStyle(TextFeld::Style::Sichtbar);
- geheimnis->setTastaturEreignisParameter(this);
- geheimnis->setTastaturEreignis(loginGeheimnisTE);
- initToolTip(geheimnis, "Account Geheimnis.");
- fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
- abbrechen = initKnopf(10, 98, 100, 20, 0, "Abbrechen");
- abbrechen->setMausEreignisParameter(this);
- abbrechen->setMausEreignis(loginAbbrechenME);
- fenster->addMember(dynamic_cast<Zeichnung*>(abbrechen->getThis()));
- ok = initKnopf(138, 98, 100, 20, 0, "Ok");
- ok->setMausEreignisParameter(this);
- ok->setMausEreignis(loginOkME);
- fenster->addMember(dynamic_cast<Zeichnung*>(ok->getThis()));
- vorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
- MausEreignis me;
- me.id = ME_RLinks;
- loginME(0, me);
- }
- // Destruktor
- Login::~Login()
- {
- if (fenster) fenster = (Fenster*)fenster->release();
- if (name) name = (TextFeld*)name->release();
- if (passwort) passwort = (TextFeld*)passwort->release();
- if (nachricht) nachricht = (TextFeld*)nachricht->release();
- if (geheimnis) geheimnis = (TextFeld*)geheimnis->release();
- if (weiter) weiter = (Knopf*)weiter->release();
- if (abbrechen) abbrechen = (Knopf*)abbrechen->release();
- if (ok) ok = (Knopf*)ok->release();
- if (login) login = (Knopf*)login->release();
- }
- // Knopfdruck
- void Login::druckFremdKnopf() // Ein anderer Bereich des Programms wurde
- // ausgewählt
- {
- fenster->removeStyle(Fenster::Style::Sichtbar);
- login->setRahmenBreite(2);
- login->setAlphaFeldFarbe(0x5500FF00);
- login->setAlphaFeldStrength(-5);
- }
- bool Login::nameTE(
- void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
- {
- if (te.id == TE_Press && te.virtualKey == T_Enter) return 0;
- if (te.id == TE_Release
- && (te.virtualKey == T_Enter || te.virtualKey == T_Tab))
- {
- name->removeStyle(TextFeld::Style::Fokus);
- passwort->addStyle(TextFeld::Style::Fokus);
- passwort->setAuswahl(0, passwort->zText()->getLength());
- }
- if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste[0]))
- return 0;
- return 1;
- }
- bool Login::passwortTE(
- void* obj, TastaturEreignis te) // TastaturEreignis im Textfeld passwort
- {
- if (te.id == TE_Press) passwort->setSchowChar('*');
- if (te.id == TE_Press && te.virtualKey == T_Enter) return 0;
- if (te.id == TE_Release && te.virtualKey == T_Enter)
- {
- passwort->removeStyle(TextFeld::Style::Fokus);
- MausEreignis me;
- me.id = ME_RLinks;
- weiterME(0, me);
- }
- if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste[0]))
- return 0;
- return 1;
- }
- bool Login::geheimnisTE(
- void* obj, TastaturEreignis te) // TastaturEreignis im Textfeld geheimnis
- {
- if (te.id == TE_Press && te.virtualKey == T_Enter) return 0;
- if (te.id == TE_Press) geheimnis->setSchowChar('*');
- if (te.id == TE_Release && te.virtualKey == T_Enter)
- {
- geheimnis->removeStyle(TextFeld::Style::Fokus);
- MausEreignis me;
- me.id = ME_RLinks;
- okME(0, me);
- }
- if (geheimnis->zText()->getLength() >= 50 && istSchreibbar(te.taste[0]))
- return 0;
- return 1;
- }
- bool Login::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
- {
- if (me.id == ME_RLinks)
- {
- if (name->zText()->getLength() == 0)
- {
- name->removeStyle(TextFeld::Style::Sichtbar);
- passwort->removeStyle(TextFeld::Style::Sichtbar);
- weiter->removeStyle(Knopf::Style::Sichtbar);
- nachricht->setText("Bitte trage deinen Accountnamen\nein.");
- nachricht->addStyle(TextFeld::Style::Sichtbar);
- ok->addStyle(Knopf::Style::Sichtbar);
- return 1;
- }
- if (passwort->zText()->getLength() == 0)
- {
- name->removeStyle(TextFeld::Style::Sichtbar);
- passwort->removeStyle(TextFeld::Style::Sichtbar);
- weiter->removeStyle(Knopf::Style::Sichtbar);
- nachricht->setText("Bitte trage dein Passwort ein.");
- nachricht->addStyle(TextFeld::Style::Sichtbar);
- ok->addStyle(Knopf::Style::Sichtbar);
- return 1;
- }
- new AktionsThread(
- 1, name->zText()->getText(), passwort->zText()->getText(), 0, 0, 0);
- }
- return 1;
- }
- bool Login::okME(void* obj, MausEreignis me) // MausEreignis im Knopf ok
- {
- if (me.id == ME_RLinks)
- {
- if (geheimnis->hatStyle(TextFeld::Style::Sichtbar))
- new AktionsThread(3,
- name->zText()->getText(),
- passwort->zText()->getText(),
- geheimnis->zText()->getText(),
- 0,
- 0);
- else
- {
- nachricht->removeStyle(TextFeld::Style::Sichtbar);
- geheimnis->removeStyle(TextFeld::Style::Sichtbar);
- ok->removeStyle(Knopf::Style::Sichtbar);
- abbrechen->removeStyle(Knopf::Style::Sichtbar);
- name->addStyle(TextFeld::Style::Sichtbar);
- passwort->addStyle(TextFeld::Style::Sichtbar);
- weiter->addStyle(TextFeld::Style::Sichtbar);
- name->addStyle(TextFeld::Style::Fokus);
- name->setAuswahl(0, name->zText()->getLength());
- }
- }
- return 1;
- }
- bool Login::abbrechenME(
- void* obj, MausEreignis me) // MausEreignis im Knopf abbrechen
- {
- if (me.id == ME_RLinks)
- {
- nachricht->removeStyle(TextFeld::Style::Sichtbar);
- geheimnis->removeStyle(TextFeld::Style::Sichtbar);
- ok->removeStyle(Knopf::Style::Sichtbar);
- abbrechen->removeStyle(Knopf::Style::Sichtbar);
- name->addStyle(TextFeld::Style::Sichtbar);
- passwort->addStyle(TextFeld::Style::Sichtbar);
- weiter->addStyle(TextFeld::Style::Sichtbar);
- name->addStyle(TextFeld::Style::Fokus);
- name->setAuswahl(0, name->zText()->getLength());
- }
- return 1;
- }
- bool Login::loginME(void* obj, MausEreignis me) // MausEreignis im Knopf login
- {
- if (me.id == ME_RLinks)
- {
- vorLogin->setLogin(1);
- nachricht->removeStyle(TextFeld::Style::Sichtbar);
- geheimnis->removeStyle(TextFeld::Style::Sichtbar);
- ok->removeStyle(Knopf::Style::Sichtbar);
- abbrechen->removeStyle(Knopf::Style::Sichtbar);
- fenster->addStyle(Fenster::Style::Sichtbar);
- name->addStyle(TextFeld::Style::Sichtbar);
- passwort->addStyle(TextFeld::Style::Sichtbar);
- weiter->addStyle(TextFeld::Style::Sichtbar);
- login->setRahmenBreite(3);
- login->setAlphaFeldFarbe(0xFF000000);
- login->setAlphaFeldStrength(20);
- name->addStyle(TextFeld::Style::Fokus);
- name->setAuswahl(0, name->zText()->getLength());
- }
- return 1;
- }
- void Login::setLoginReturn(int ret) // setzt den Returnwert vom login
- {
- if (ret == 1)
- new AktionsThread(2, 0, 0, 0, 0, 0);
- else if (ret == 2)
- {
- name->removeStyle(TextFeld::Style::Sichtbar);
- passwort->removeStyle(TextFeld::Style::Sichtbar);
- weiter->removeStyle(Knopf::Style::Sichtbar);
- nachricht->setText(
- "Der Account ist bereits online.\nGebe dein Account Geheimnis "
- "ein,\num den anderen Benutzer zu kicken.");
- nachricht->addStyle(TextFeld::Style::Sichtbar);
- geheimnis->addStyle(TextFeld::Style::Sichtbar);
- ok->addStyle(Knopf::Style::Sichtbar);
- abbrechen->addStyle(Knopf::Style::Sichtbar);
- geheimnis->addStyle(TextFeld::Style::Fokus);
- geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
- }
- else if (!ret && lastError.getLength())
- {
- name->removeStyle(TextFeld::Style::Sichtbar);
- passwort->removeStyle(TextFeld::Style::Sichtbar);
- weiter->removeStyle(Knopf::Style::Sichtbar);
- nachricht->setText(lastError);
- if (nachricht->zText()->getLength() > 30)
- {
- int pos = -1;
- bool set = 0;
- int lastp = 0;
- for (int i = 20; i < nachricht->zText()->getLength();)
- {
- const char* tmp = &nachricht->zText()->getText()[i];
- while (*tmp != ' ' && i < nachricht->zText()->getLength())
- {
- tmp++;
- i++;
- if (i - 30 >= lastp)
- {
- if (set)
- {
- lastp = pos;
- set = 0;
- ((char*)nachricht->zText()->getText())[pos] = '\n';
- }
- else
- lastp += 5;
- }
- }
- if (i < nachricht->zText()->getLength())
- {
- pos = i;
- set = 1;
- tmp++;
- i++;
- }
- }
- }
- nachricht->addStyle(TextFeld::Style::Sichtbar);
- ok->addStyle(Knopf::Style::Sichtbar);
- }
- }
- void Login::setKickReturn(int ret) // setzt den returnwert vom kick
- {
- if (ret == 1)
- new AktionsThread(2, 0, 0, 0, 0, 0);
- else if (ret == 2)
- {
- nachricht->setText(lastError);
- if (nachricht->zText()->getLength() > 30)
- {
- int pos = -1;
- bool set = 0;
- int lastp = 0;
- for (int i = 20; i < nachricht->zText()->getLength();)
- {
- const char* tmp = &nachricht->zText()->getText()[i];
- while (*tmp != ' ' && i < nachricht->zText()->getLength())
- {
- tmp++;
- i++;
- if (i - 30 >= lastp)
- {
- if (set)
- {
- lastp = pos;
- set = 0;
- ((char*)nachricht->zText()->getText())[pos] = '\n';
- }
- else
- lastp += 5;
- }
- }
- if (i < nachricht->zText()->getLength())
- {
- pos = i;
- set = 1;
- tmp++;
- i++;
- }
- }
- }
- geheimnis->removeStyle(TextFeld::Style::Sichtbar);
- abbrechen->removeStyle(Knopf::Style::Sichtbar);
- }
- else if (!ret)
- {
- nachricht->setText(
- "Das Geheimnis stimmt nicht mit dem des Accounts\nüberein. Achte "
- "auf Groß - und Kleinschreibung.");
- geheimnis->removeStyle(TextFeld::Style::Sichtbar);
- abbrechen->removeStyle(Knopf::Style::Sichtbar);
- }
- }
- // Ereignisse
- bool loginNameTE(void* p, void* obj, TastaturEreignis te)
- {
- if (!p) return 0;
- return ((Login*)p)->nameTE(obj, te);
- }
- bool loginPasswortTE(void* p, void* obj, TastaturEreignis te)
- {
- if (!p) return 0;
- return ((Login*)p)->passwortTE(obj, te);
- }
- bool loginGeheimnisTE(void* p, void* obj, TastaturEreignis te)
- {
- if (!p) return 0;
- return ((Login*)p)->geheimnisTE(obj, te);
- }
- bool loginWeiterME(void* p, void* obj, MausEreignis me)
- {
- if (!p) return 0;
- return ((Login*)p)->weiterME(obj, me);
- }
- bool loginAbbrechenME(void* p, void* obj, MausEreignis me)
- {
- if (!p) return 0;
- return ((Login*)p)->abbrechenME(obj, me);
- }
- bool loginOkME(void* p, void* obj, MausEreignis me)
- {
- if (!p) return 0;
- return ((Login*)p)->okME(obj, me);
- }
- bool loginLoginME(void* p, void* obj, MausEreignis me)
- {
- if (!p) return 0;
- return ((Login*)p)->loginME(obj, me);
- }
|