123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523 |
- #include "Registrierung.h"
- #include <InitDatei.h>
- #include <Punkt.h>
- #include <Text.h>
- #include <Zeit.h>
- #include "..\..\Global\Initialisierung.h"
- #include "..\..\Global\Variablen.h"
- // Inhalt der Registrierung Klasse aus Registrierung.h
- // Konstruktor
- Registrierung::Registrierung(Fenster* zVorLoginFenster)
- : ReferenceCounter()
- {
- Punkt bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
- registrierung
- = initKnopf(10, 90, 130, 30, Knopf::Style::Sichtbar, "Registrieren");
- registrierung->setMausEreignisParameter(this);
- registrierung->setMausEreignis(registrierungRegistrierungME);
- initToolTip(registrierung, "Account erstellen.");
- zVorLoginFenster->addMember(
- dynamic_cast<Zeichnung*>(registrierung->getThis()));
- fenster = initFenster(bildschirmGröße.x / 2 - 175,
- bildschirmGröße.y / 2 - 131,
- 350,
- 262,
- Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel
- | Fenster::Style::TitelBuffered,
- "Account erstellen");
- name = initTextFeld(
- 74, 20, 200, 20, TextFeld::Style::TextFeld, "Account Name");
- name->setTastaturEreignisParameter(this);
- name->setTastaturEreignis(registrierungNameTE);
- initToolTip(name, "Account Name.");
- fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
- passwort = initTextFeld(
- 74, 50, 200, 20, TextFeld::Style::TextFeld, "Account Passwort");
- passwort->setTastaturEreignisParameter(this);
- passwort->setTastaturEreignis(registrierungPasswortTE);
- initToolTip(passwort, "Account Passwort.");
- fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
- passwort2 = initTextFeld(
- 74, 80, 200, 20, TextFeld::Style::TextFeld, "Passwort wiederholen");
- passwort2->setTastaturEreignisParameter(this);
- passwort2->setTastaturEreignis(registrierungPasswort2TE);
- initToolTip(passwort2, "Account Passwort wiederhohlen.");
- fenster->addMember(dynamic_cast<Zeichnung*>(passwort2->getThis()));
- geheimnis = initTextFeld(
- 10, 110, 328, 20, TextFeld::Style::TextFeld, "Account Geheimnis");
- geheimnis->setTastaturEreignisParameter(this);
- geheimnis->setTastaturEreignis(registrierungGeheimnisTE);
- initToolTip(geheimnis,
- "Gib etwas ein, was nur du jederzeit weißt.\n(zweites "
- "sicherheitspasswort Passwort)");
- fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
- eMail = initTextFeld(
- 74, 140, 200, 20, TextFeld::Style::TextFeld, "E-Mail Addresse");
- eMail->setTastaturEreignisParameter(this);
- eMail->setTastaturEreignis(registrierungEMailTE);
- initToolTip(eMail, "E-Mail Addresse.");
- fenster->addMember(dynamic_cast<Zeichnung*>(eMail->getThis()));
- geburtsdatum
- = initTextFeld(40, 170, 85, 20, TextFeld::Style::Text, "Geburtsdatum:");
- fenster->addMember(dynamic_cast<Zeichnung*>(geburtsdatum->getThis()));
- text = initTextFeld(0,
- 5,
- 250,
- 150,
- TextFeld::Style::Mehrzeilig | TextFeld::Style::HCenter,
- "");
- fenster->addMember(dynamic_cast<Zeichnung*>(text->getThis()));
- gbdTag = initAuswahlBox(130,
- 167,
- 50,
- 20,
- AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt
- | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer
- | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight
- | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund,
- {});
- gbdTag->addEintrag("Tag");
- for (int i = 0; i < 31; i++)
- {
- Text* txt = new Text("");
- txt->append(i + 1);
- gbdTag->addEintrag(txt);
- }
- gbdMonat = initAuswahlBox(185,
- 167,
- 65,
- 20,
- AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt
- | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer
- | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight
- | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund,
- {});
- gbdMonat->addEintrag("Monat");
- for (int i = 0; i < 12; i++)
- {
- Text* txt = new Text("");
- txt->append(i + 1);
- gbdMonat->addEintrag(txt);
- }
- gbdJahr = initAuswahlBox(255,
- 176,
- 55,
- 20,
- AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt
- | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer
- | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight
- | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund,
- {});
- gbdJahr->addEintrag("Jahr");
- for (int i = 2013; i > 1913; i--)
- {
- Text* txt = new Text("");
- txt->append(i + 1);
- gbdJahr->addEintrag(txt);
- }
- weiter = initKnopf(124, 200, 100, 20, Knopf::Style::Sichtbar, "Weiter");
- weiter->setMausEreignisParameter(this);
- weiter->setMausEreignis(registrierungWeiterME);
- fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
- zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
- fenster->addMember(dynamic_cast<Zeichnung*>(gbdTag->getThis()));
- fenster->addMember(dynamic_cast<Zeichnung*>(gbdMonat->getThis()));
- fenster->addMember(dynamic_cast<Zeichnung*>(gbdJahr->getThis()));
- }
- // Destruktor
- Registrierung::~Registrierung()
- {
- if (fenster) fenster = (Fenster*)fenster->release();
- if (name) name = (TextFeld*)name->release();
- if (passwort) passwort = (TextFeld*)passwort->release();
- if (passwort2) passwort2 = (TextFeld*)passwort2->release();
- if (geheimnis) geheimnis = (TextFeld*)geheimnis->release();
- if (eMail) eMail = (TextFeld*)eMail->release();
- if (geburtsdatum) geburtsdatum = (TextFeld*)geburtsdatum->release();
- if (gbdTag) gbdTag = (AuswahlBox*)gbdTag->release();
- if (gbdMonat) gbdMonat = (AuswahlBox*)gbdMonat->release();
- if (gbdJahr) gbdJahr = (AuswahlBox*)gbdJahr->release();
- if (weiter) weiter = (Knopf*)weiter->release();
- if (text) text = (TextFeld*)text->release();
- if (registrierung) registrierung = (Knopf*)registrierung->release();
- }
- // Privat
- void Registrierung::zeigeNachricht(const char* txt)
- {
- Punkt bildschirmmitte
- = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
- name->removeStyle(TextFeld::Style::Sichtbar);
- passwort->removeStyle(TextFeld::Style::Sichtbar);
- passwort2->removeStyle(TextFeld::Style::Sichtbar);
- geheimnis->removeStyle(TextFeld::Style::Sichtbar);
- eMail->removeStyle(TextFeld::Style::Sichtbar);
- geburtsdatum->removeStyle(TextFeld::Style::Sichtbar);
- gbdTag->removeStyle(TextFeld::Style::Sichtbar);
- gbdMonat->removeStyle(TextFeld::Style::Sichtbar);
- gbdJahr->removeStyle(TextFeld::Style::Sichtbar);
- fenster->setSize(250, 150);
- fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
- weiter->setPosition(139, 100);
- weiter->setText("Ok");
- text->setText(txt);
- if (text->zText()->getLength() > 30)
- {
- int pos = -1;
- bool set = 0;
- int lastp = 0;
- for (int i = 20; i < text->zText()->getLength();)
- {
- const char* tmp = &text->zText()->getText()[i];
- while (*tmp != ' ' && i < text->zText()->getLength())
- {
- tmp++;
- i++;
- if (i - 30 >= lastp)
- {
- if (set)
- {
- lastp = pos;
- set = 0;
- ((char*)text->zText()->getText())[pos] = '\n';
- }
- else
- lastp += 5;
- }
- }
- if (i < text->zText()->getLength())
- {
- pos = i;
- set = 1;
- tmp++;
- i++;
- }
- }
- }
- text->addStyle(TextFeld::Style::Sichtbar);
- }
- // Knopfdruck
- void Registrierung::druckFremdKnopf() // Ein anderer Knopfwurde gedrückt
- {
- fenster->removeStyle(Fenster::Style::Sichtbar);
- registrierung->setRahmenBreite(2);
- registrierung->setAlphaFeldFarbe(0x5500FF00);
- registrierung->setAlphaFeldStrength(-5);
- }
- bool Registrierung::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 Registrierung::passwortTE(
- void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
- {
- if (te.id == TE_Press && te.virtualKey == T_Enter) return 0;
- if (te.id == TE_Press) passwort->setSchowChar('*');
- if (te.id == TE_Release
- && (te.virtualKey == T_Enter || te.virtualKey == T_Tab))
- {
- passwort->removeStyle(TextFeld::Style::Fokus);
- passwort2->addStyle(TextFeld::Style::Fokus);
- passwort2->setAuswahl(0, passwort2->zText()->getLength());
- }
- if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste[0]))
- return 0;
- return 1;
- }
- bool Registrierung::passwort2TE(
- void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort2
- {
- if (te.id == TE_Press && te.virtualKey == T_Enter) return 0;
- if (te.id == TE_Press) passwort2->setSchowChar('*');
- if (te.id == TE_Release
- && (te.virtualKey == T_Enter || te.virtualKey == T_Tab))
- {
- passwort2->removeStyle(TextFeld::Style::Fokus);
- geheimnis->addStyle(TextFeld::Style::Fokus);
- geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
- }
- if (passwort2->zText()->getLength() >= 25 && istSchreibbar(te.taste[0]))
- return 0;
- return 1;
- }
- bool Registrierung::geheimnisTE(
- void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
- {
- if (te.id == TE_Press && te.virtualKey == T_Enter) return 0;
- if (te.id == TE_Release
- && (te.virtualKey == T_Enter || te.virtualKey == T_Tab))
- {
- geheimnis->removeStyle(TextFeld::Style::Fokus);
- eMail->addStyle(TextFeld::Style::Fokus);
- eMail->setAuswahl(0, eMail->zText()->getLength());
- }
- int selCount = 0;
- for (int i = 0; i < geheimnis->zText()->getLength(); i++)
- selCount += (int)geheimnis->isCharSelected(i);
- if (geheimnis->zText()->getLength() - selCount >= 50
- && istSchreibbar(te.taste[0]))
- return 0;
- return 1;
- }
- bool Registrierung::eMailTE(
- void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld eMail
- {
- if (te.id == TE_Press && te.virtualKey == T_Enter) return 0;
- if (te.id == TE_Release
- && (te.virtualKey == T_Enter || te.virtualKey == T_Tab))
- {
- eMail->removeStyle(TextFeld::Style::Fokus);
- gbdTag->addStyle(AuswahlBox::Style::Fokus);
- }
- if (eMail->zText()->getLength() >= 50 && istSchreibbar(te.taste[0]))
- return 0;
- return 1;
- }
- bool Registrierung::weiterME(
- void* obj, MausEreignis me) // MausEreignis im Knopf weiter
- {
- if (me.id == ME_RLinks)
- {
- Punkt bildchirmGröße
- = uiFactory.initParam.bildschirm->getBackBufferSize();
- if (fenster->zTitel()->istGleich("Erfolg"))
- {
- text->removeStyle(TextFeld::Style::Sichtbar);
- weiter->setPosition(124, 200);
- weiter->setText("Weiter");
- fenster->setSize(350, 262);
- fenster->setPosition(
- bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131);
- fenster->setTitel("Account erstellen");
- name->addStyle(TextFeld::Style::Sichtbar);
- passwort->addStyle(TextFeld::Style::Sichtbar);
- passwort2->addStyle(TextFeld::Style::Sichtbar);
- geheimnis->addStyle(TextFeld::Style::Sichtbar);
- eMail->addStyle(TextFeld::Style::Sichtbar);
- geburtsdatum->addStyle(TextFeld::Style::Sichtbar);
- gbdTag->addStyle(TextFeld::Style::Sichtbar);
- gbdMonat->addStyle(TextFeld::Style::Sichtbar);
- gbdJahr->addStyle(TextFeld::Style::Sichtbar);
- name->addStyle(TextFeld::Style::Fokus);
- name->setAuswahl(0, name->zText()->getLength());
- }
- else
- {
- if (weiter->zText()->istGleich("Ok"))
- {
- text->removeStyle(TextFeld::Style::Sichtbar);
- weiter->setPosition(124, 200);
- weiter->setText("Weiter");
- fenster->setSize(350, 262);
- fenster->setPosition(
- bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131);
- name->addStyle(TextFeld::Style::Sichtbar);
- passwort->addStyle(TextFeld::Style::Sichtbar);
- passwort2->addStyle(TextFeld::Style::Sichtbar);
- geheimnis->addStyle(TextFeld::Style::Sichtbar);
- eMail->addStyle(TextFeld::Style::Sichtbar);
- geburtsdatum->addStyle(TextFeld::Style::Sichtbar);
- gbdTag->addStyle(TextFeld::Style::Sichtbar);
- gbdMonat->addStyle(TextFeld::Style::Sichtbar);
- gbdJahr->addStyle(TextFeld::Style::Sichtbar);
- name->addStyle(TextFeld::Style::Fokus);
- name->setAuswahl(0, name->zText()->getLength());
- }
- else if (passwort2->zText()->istGleich(
- passwort->zText()->getText()))
- {
- if (name->zText()->getLength() == 0
- || passwort->zText()->getLength() == 0
- || geheimnis->zText()->getLength() == 0
- || eMail->zText()->getLength() == 0)
- {
- if (name->zText()->getLength() == 0)
- zeigeNachricht("Bitte gebe einen Accountnamen ein.");
- else if (passwort->zText()->getLength() == 0)
- zeigeNachricht("Bitte gebe ein Accountpasswort ein.");
- else if (geheimnis->zText()->getLength() == 0)
- zeigeNachricht(
- "Bitte gebe ein Accountgeheimnis ein. Dieß wird "
- "benötig, wenn du deinen Accountnamen oder dein "
- "Accountpasswort vergisst.");
- else if (eMail->zText()->getLength() == 0)
- zeigeNachricht(
- "Bitte gebe deine E-Mail Addresse ein. Diese "
- "benötigen wir, um dir den Bestätigungscode für "
- "deinen Account zu senden.");
- return 1;
- }
- Datum* gebDat = new Datum();
- gebDat->setDatum(1, 1, 1);
- bool ok = 1;
- do
- {
- if (!gbdTag->getAuswahl() || !gbdMonat->getAuswahl()
- || !gbdJahr->getAuswahl())
- {
- ok = 0;
- break;
- }
- int jahr
- = TextZuInt(gbdJahr->zEintrag(gbdJahr->getAuswahl())
- ->zText()
- ->getText(),
- 10);
- gebDat->setJahr(jahr);
- gebDat->setMonat(gbdMonat->getAuswahl());
- gebDat->setTag(gbdTag->getAuswahl());
- if (jahr != gebDat->getJahr()
- || gbdMonat->getAuswahl() != gebDat->getMonat()
- || gbdTag->getAuswahl() != gebDat->getTag())
- {
- ok = 0;
- break;
- }
- } while (0);
- if (ok)
- new AktionsThread(15,
- name->zText()->getText(),
- passwort->zText()->getText(),
- geheimnis->zText()->getText(),
- eMail->zText()->getText(),
- gebDat->getThis());
- else
- zeigeNachricht("Bitte gebe ein gültiges Geburtsdatum an.");
- gebDat = (Datum*)gebDat->release();
- }
- else
- zeigeNachricht("Das wiederhohlte Passwort stimmt nicht mit dem "
- "Passwort überein.");
- }
- }
- return 1;
- }
- bool Registrierung::registrierungME(
- void* obj, MausEreignis me) // MausEreignis im Knopf registrierung
- {
- if (me.id == ME_RLinks)
- {
- vorLogin->setRegistrierung();
- fenster->addStyle(Fenster::Style::Sichtbar);
- registrierung->setRahmenBreite(3);
- registrierung->setAlphaFeldFarbe(0xFF000000);
- registrierung->setAlphaFeldStrength(20);
- Punkt bildchirmGröße
- = uiFactory.initParam.bildschirm->getBackBufferSize();
- text->removeStyle(TextFeld::Style::Sichtbar);
- weiter->setPosition(124, 200);
- weiter->setText("Weiter");
- fenster->setSize(350, 262);
- fenster->setPosition(
- bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131);
- fenster->setTitel("Account erstellen");
- name->addStyle(TextFeld::Style::Sichtbar);
- passwort->addStyle(TextFeld::Style::Sichtbar);
- passwort2->addStyle(TextFeld::Style::Sichtbar);
- geheimnis->addStyle(TextFeld::Style::Sichtbar);
- eMail->addStyle(TextFeld::Style::Sichtbar);
- geburtsdatum->addStyle(TextFeld::Style::Sichtbar);
- gbdTag->addStyle(TextFeld::Style::Sichtbar);
- gbdMonat->addStyle(TextFeld::Style::Sichtbar);
- gbdJahr->addStyle(TextFeld::Style::Sichtbar);
- name->addStyle(TextFeld::Style::Fokus);
- name->setAuswahl(0, name->zText()->getLength());
- }
- return 1;
- }
- void Registrierung::setWeiterReturn(bool ret) // setzt den Weiter Returnwert
- {
- Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
- if (ret)
- {
- name->removeStyle(TextFeld::Style::Sichtbar);
- passwort->removeStyle(TextFeld::Style::Sichtbar);
- passwort2->removeStyle(TextFeld::Style::Sichtbar);
- geheimnis->removeStyle(TextFeld::Style::Sichtbar);
- eMail->removeStyle(TextFeld::Style::Sichtbar);
- geburtsdatum->removeStyle(TextFeld::Style::Sichtbar);
- gbdTag->removeStyle(TextFeld::Style::Sichtbar);
- gbdMonat->removeStyle(TextFeld::Style::Sichtbar);
- gbdJahr->removeStyle(TextFeld::Style::Sichtbar);
- fenster->setSize(250, 200);
- fenster->setPosition(
- bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100);
- fenster->setTitel("Erfolg");
- weiter->setPosition(20, 145);
- weiter->setText("Ok");
- text->setText(
- "Dir wurde eine E-Mail mit einem\naktivierungslink "
- "zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst.");
- text->addStyle(TextFeld::Style::Sichtbar);
- }
- else if (lastError.getLength())
- zeigeNachricht(lastError);
- }
- // Ereignisse
- bool registrierungNameTE(void* p, void* obj, TastaturEreignis te)
- {
- if (!p) return 0;
- return ((Registrierung*)p)->nameTE(obj, te);
- }
- bool registrierungPasswortTE(void* p, void* obj, TastaturEreignis te)
- {
- if (!p) return 0;
- return ((Registrierung*)p)->passwortTE(obj, te);
- }
- bool registrierungPasswort2TE(void* p, void* obj, TastaturEreignis te)
- {
- if (!p) return 0;
- return ((Registrierung*)p)->passwort2TE(obj, te);
- }
- bool registrierungGeheimnisTE(void* p, void* obj, TastaturEreignis te)
- {
- if (!p) return 0;
- return ((Registrierung*)p)->geheimnisTE(obj, te);
- }
- bool registrierungEMailTE(void* p, void* obj, TastaturEreignis te)
- {
- if (!p) return 0;
- return ((Registrierung*)p)->eMailTE(obj, te);
- }
- bool registrierungWeiterME(void* p, void* obj, MausEreignis me)
- {
- if (!p) return 0;
- return ((Registrierung*)p)->weiterME(obj, me);
- }
- bool registrierungRegistrierungME(void* p, void* obj, MausEreignis me)
- {
- if (!p) return 0;
- return ((Registrierung*)p)->registrierungME(obj, me);
- }
|