#include "..\..\Global\Variablen.h" #include "..\..\Global\Initialisierung.h" #include "Unregistrierung.h" #include #include #include // Inhalt der Unregistrierung Klasse aus Unregistrierung.h // Konstruktor Unregistrierung::Unregistrierung(Fenster* zVorLoginFenster) : ReferenceCounter() { Punkt bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize(); unregistrierung = initKnopf(10, 130, 130, 30, Knopf::Style::Sichtbar, "Account remove"); unregistrierung->setMausEreignisParameter(this); unregistrierung->setMausEreignis(unregistrierungUnregistrierungME); initToolTip(unregistrierung, "Account für alle Zeiten entfernen."); zVorLoginFenster->addMember(dynamic_cast(unregistrierung->getThis())); fenster = initFenster(bildschirmGröße.x / 2 - 125, bildschirmGröße.y / 2 - 85, 250, 170, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Account remove"); name = initTextFeld(24, 20, 200, 20, TextFeld::Style::TextFeld, "Account Name"); name->setTastaturEreignisParameter(this); name->setTastaturEreignis(unregistrierungNameTE); initToolTip(name, "Account Name eingeben."); fenster->addMember(dynamic_cast(name->getThis())); passwort = initTextFeld(24, 50, 200, 20, TextFeld::Style::TextFeld, "Account Passwort"); passwort->setTastaturEreignisParameter(this); passwort->setTastaturEreignis(unregistrierungPasswortTE); initToolTip(passwort, "Account Passwort eingeben."); fenster->addMember(dynamic_cast(passwort->getThis())); geheimnis = initTextFeld(24, 80, 200, 20, TextFeld::Style::TextFeld, "Account Geheimnis"); geheimnis->setTastaturEreignisParameter(this); geheimnis->setTastaturEreignis(unregistrierungGeheimnisTE); initToolTip(geheimnis, "Account Geheimnis eingeben."); fenster->addMember(dynamic_cast(geheimnis->getThis())); weiter = initKnopf(74, 110, 100, 20, Knopf::Style::Sichtbar, "Weiter"); weiter->setMausEreignisParameter(this); weiter->setMausEreignis(unregistrierungWeiterME); fenster->addMember(dynamic_cast(weiter->getThis())); text = initTextFeld(0, 5, 250, 170, TextFeld::Style::Mehrzeilig | TextFeld::Style::HCenter, ""); fenster->addMember(dynamic_cast(text->getThis())); zVorLoginFenster->addMember(dynamic_cast(fenster->getThis())); } // Destruktor Unregistrierung::~Unregistrierung() { if (fenster) fenster = (Fenster*)fenster->release(); if (name) name = (TextFeld*)name->release(); if (passwort) passwort = (TextFeld*)passwort->release(); if (geheimnis) geheimnis = (TextFeld*)geheimnis->release(); if (weiter) weiter = (Knopf*)weiter->release(); if (text) text = (TextFeld*)text->release(); if (unregistrierung) unregistrierung = (Knopf*)unregistrierung->release(); } // Privat void Unregistrierung::zeigeNachricht(const char* txt) { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; name->removeStyle(TextFeld::Style::Sichtbar); passwort->removeStyle(TextFeld::Style::Sichtbar); geheimnis->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 Unregistrierung::druckFremdKnopf() // Ein anderer Knopfwurde gedrückt { fenster->removeStyle(Fenster::Style::Sichtbar); unregistrierung->setRahmenBreite(2); unregistrierung->setAlphaFeldFarbe(0x5500FF00); unregistrierung->setAlphaFeldStrength(-5); } bool Unregistrierung::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name { if (te.id == TE_Press && te.taste == T_Enter) return 0; if (te.id == TE_Release && (te.taste == T_Enter || te.taste == 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)) return 0; return 1; } bool Unregistrierung::passwortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort { if (te.id == TE_Press && te.taste == T_Enter) return 0; if (te.id == TE_Press) passwort->setSchowChar('*'); if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab)) { passwort->removeStyle(TextFeld::Style::Fokus); geheimnis->addStyle(TextFeld::Style::Fokus); geheimnis->setAuswahl(0, geheimnis->zText()->getLength()); } if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste)) return 0; return 1; } bool Unregistrierung::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis { if (te.id == TE_Press && te.taste == T_Enter) return 0; if (te.id == TE_Release && te.taste == T_Enter) { geheimnis->removeStyle(TextFeld::Style::Fokus); MausEreignis me; me.id = ME_RLinks; weiterME(0, me); } 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)) return 0; return 1; } bool Unregistrierung::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter { if (me.id == ME_RLinks) { Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize(); if (weiter->zText()->istGleich("Ok")) { text->removeStyle(TextFeld::Style::Sichtbar); weiter->setPosition(74, 110); weiter->setText("Weiter"); fenster->setSize(250, 170); fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85); fenster->setTitel("Account remove"); name->addStyle(TextFeld::Style::Sichtbar); passwort->addStyle(TextFeld::Style::Sichtbar); geheimnis->addStyle(TextFeld::Style::Sichtbar); name->addStyle(TextFeld::Style::Fokus); name->setAuswahl(0, name->zText()->getLength()); } else { if (weiter->zText()->istGleich("Ok")) { if (fenster->zTitel()->istGleich("Account remove")) { text->removeStyle(TextFeld::Style::Sichtbar); fenster->setSize(250, 170); fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85); weiter->setPosition(74, 110); weiter->setText("Weiter"); name->addStyle(TextFeld::Style::Sichtbar); passwort->addStyle(TextFeld::Style::Sichtbar); geheimnis->addStyle(TextFeld::Style::Sichtbar); name->addStyle(TextFeld::Style::Fokus); name->setAuswahl(0, name->zText()->getLength()); } else { fenster->setSize(250, 200); fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100); weiter->setPosition(20, 115); weiter->setText("Ok"); text->setText("Dir wurde eine E-Mail mit einem\nLink zur Bestätigung zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst."); } } else { if (name->zText()->getLength() == 0 || passwort->zText()->getLength() == 0 || geheimnis->zText()->getLength() == 0) { if (name->zText()->getLength() == 0) zeigeNachricht("Bitte gebe deinen Accountnamen\nein."); else if (passwort->zText()->getLength() == 0) zeigeNachricht("Bitte gebe dein Accountpasswort\nein."); else if (geheimnis->zText()->getLength() == 0) zeigeNachricht("Bitte gebe dein Accountgeheimnis\nein."); return 1; } new AktionsThread(17, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0); } } } return 1; } bool Unregistrierung::unregistrierungME(void* obj, MausEreignis me) // MausEreignis im Knopf unregistrierung { if (me.id == ME_RLinks) { vorLogin->setUnregistrierung(); fenster->addStyle(Fenster::Style::Sichtbar); unregistrierung->setRahmenBreite(3); unregistrierung->setAlphaFeldFarbe(0xFF000000); unregistrierung->setAlphaFeldStrength(20); text->removeStyle(TextFeld::Style::Sichtbar); weiter->setPosition(74, 110); weiter->setText("Weiter"); fenster->setTitel("Account remove"); fenster->setSize(250, 170); Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize(); fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85); name->addStyle(TextFeld::Style::Sichtbar); passwort->addStyle(TextFeld::Style::Sichtbar); geheimnis->addStyle(TextFeld::Style::Sichtbar); name->addStyle(TextFeld::Style::Fokus); name->setAuswahl(0, name->zText()->getLength()); } return 1; } void Unregistrierung::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); geheimnis->removeStyle(TextFeld::Style::Sichtbar); fenster->setTitel("Account deaktiveren"); fenster->setSize(250, 200); fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100); weiter->setPosition(20, 115); weiter->setText("Ok"); text->setText("Dir wurde eine E-Mail mit einem\nLink zur Bestätigung zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst."); text->addStyle(TextFeld::Style::Sichtbar); } else if (lastError.getLength()) zeigeNachricht(lastError); } void Unregistrierung::setFertigReturn(bool ret) // setzt den Fertig Returnwert { if (ret) vorLogin->setLogin(0); else zeigeNachricht(lastError); } // Ereignisse bool unregistrierungNameTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((Unregistrierung*)p)->nameTE(obj, te); } bool unregistrierungPasswortTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((Unregistrierung*)p)->passwortTE(obj, te); } bool unregistrierungGeheimnisTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((Unregistrierung*)p)->geheimnisTE(obj, te); } bool unregistrierungWeiterME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((Unregistrierung*)p)->weiterME(obj, me); } bool unregistrierungUnregistrierungME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((Unregistrierung*)p)->unregistrierungME(obj, me); }