#include "..\..\Global\Variablen.h" #include "Name.h" #include "..\..\Global\Initialisierung.h" #include #include #include // Inhalt der NameVergessen Klasse aus Name.h // Konstruktor NameVergessen::NameVergessen(Fenster* zVorLoginFenster) : ReferenceCounter() { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; nameVergessen = initKnopf(10, 290, 130, 30, Knopf::Style::Sichtbar, "Name vergessen"); nameVergessen->setMausEreignisParameter(this); nameVergessen->setMausEreignis(nameVergessenNameVergessenME); initToolTip(nameVergessen, "Accoutnt Name per E-MAil senden."); zVorLoginFenster->addMember(dynamic_cast(nameVergessen->getThis())); fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 70, 250, 140, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Name vergessen"); passwort = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Passwort"); passwort->setTastaturEreignisParameter(this); passwort->setTastaturEreignis(nameVergessenPasswortTE); initToolTip(passwort, "Accoutnt Passwort."); fenster->addMember(dynamic_cast(passwort->getThis())); geheimnis = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Geheimis"); geheimnis->setTastaturEreignisParameter(this); geheimnis->setTastaturEreignis(nameVergessenGeheimnisTE); initToolTip(geheimnis, "Account Geheimnis."); fenster->addMember(dynamic_cast(geheimnis->getThis())); weiter = initKnopf(74, 80, 100, 20, Knopf::Style::Sichtbar, "weiter"); weiter->setMausEreignisParameter(this); weiter->setMausEreignis(nameVergessenWeiterME); nachricht = initTextFeld(0, 5, 255, 150, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, ""); fenster->addMember(dynamic_cast(nachricht->getThis())); fenster->addMember(dynamic_cast(weiter->getThis())); zVorLoginFenster->addMember(dynamic_cast(fenster->getThis())); } // Destruktor NameVergessen::~NameVergessen() { if (nameVergessen) nameVergessen = (Knopf*)nameVergessen->release(); if (fenster) fenster = (Fenster*)fenster->release(); if (passwort) passwort = (TextFeld*)passwort->release(); if (geheimnis) geheimnis = (TextFeld*)geheimnis->release(); if (weiter) weiter = (Knopf*)weiter->release(); if (nachricht) nachricht = (TextFeld*)nachricht->release(); } // Privat void NameVergessen::zeigeNachricht(const char* txt) { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; 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"); nachricht->setText(txt); 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); } // Knopfdruck void NameVergessen::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt { fenster->removeStyle(Fenster::Style::Sichtbar); nameVergessen->setRahmenBreite(2); nameVergessen->setAlphaFeldFarbe(0x5500FF00); nameVergessen->setAlphaFeldStrength(-5); } bool NameVergessen::nameVergessenME(void* obj, MausEreignis me) // MausEreignis im Knopf nameVergessen { if (me.id == ME_RLinks) { vorLogin->setNameVergessen(); nameVergessen->setRahmenBreite(3); nameVergessen->setAlphaFeldFarbe(0xFF000000); nameVergessen->setAlphaFeldStrength(20); Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; fenster->setSize(255, 140); fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 70); fenster->addStyle(Fenster::Style::Sichtbar); nachricht->removeStyle(TextFeld::Style::Sichtbar); weiter->setText("weiter"); weiter->setPosition(75, 80); passwort->addStyle(TextFeld::Style::Sichtbar); geheimnis->addStyle(TextFeld::Style::Sichtbar); passwort->addStyle(TextFeld::Style::Fokus); passwort->setAuswahl(0, passwort->zText()->getLength()); } return 1; } bool NameVergessen::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 NameVergessen::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) { passwort->removeStyle(TextFeld::Style::Fokus); MausEreignis me; me.id = ME_RLinks; weiterME(0, me); } if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste)) return 0; return 1; } bool NameVergessen::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter { if (me.id == ME_RLinks) { if (weiter->zText()->istGleich("weiter")) { if (passwort->zText()->getLength() == 0) zeigeNachricht("Bitte gebe dein Accountpasswort ein."); if (geheimnis->zText()->getLength() == 0) zeigeNachricht("Bitte gebe dein Accountgeheimnis ein."); if (weiter->zText()->istGleich("Ok")) return 1; new AktionsThread(12, passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0, 0); } else { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; fenster->setSize(255, 140); fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 70); fenster->addStyle(Fenster::Style::Sichtbar); nachricht->removeStyle(TextFeld::Style::Sichtbar); weiter->setText("weiter"); weiter->setPosition(75, 80); passwort->addStyle(TextFeld::Style::Sichtbar); geheimnis->addStyle(TextFeld::Style::Sichtbar); passwort->addStyle(TextFeld::Style::Fokus); passwort->setAuswahl(0, passwort->zText()->getLength()); } } return 1; } void NameVergessen::setResult(bool ret) // Setzt den Returnwert { if (ret) zeigeNachricht("Dir wurde eine E-Mail mit deinem Accountnamen geschickt."); else if (lastError.getLength()) zeigeNachricht(lastError); else zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten."); } // messages bool nameVergessenNameVergessenME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((NameVergessen*)p)->nameVergessenME(obj, me); } bool nameVergessenPasswortTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((NameVergessen*)p)->passwortTE(obj, te); } bool nameVergessenGeheimnisTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((NameVergessen*)p)->geheimnisTE(obj, te); } bool nameVergessenWeiterME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((NameVergessen*)p)->weiterME(obj, me); }