#include "..\..\Global\Variablen.h" #include "..\..\Global\Initialisierung.h" #include "EMail.h" #include #include #include // Inhalt der EMailÄndern Klasse aus EMail.h // Konstruktor EMailÄndern::EMailÄndern(Fenster* zVorLoginFenster) : ReferenceCounter() { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; eMailÄndern = initKnopf(10, 210, 130, 30, Knopf::Style::Sichtbar, "E-Mail ändern"); eMailÄndern->setMausEreignisParameter(this); eMailÄndern->setMausEreignis(eMailÄndernEMailÄndernME); initToolTip(eMailÄndern, "Account E-Mail Adresse ändern."); zVorLoginFenster->addMember(dynamic_cast(eMailÄndern->getThis())); fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 100, 250, 200, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "E-Mail ändern"); name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name"); name->setTastaturEreignisParameter(this); name->setTastaturEreignis(eMailÄndernNameTE); initToolTip(name, "Account Name."); fenster->addMember(dynamic_cast(name->getThis())); passwort = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort"); passwort->setTastaturEreignisParameter(this); passwort->setTastaturEreignis(eMailÄndernPasswortTE); initToolTip(passwort, "Account Passwort."); fenster->addMember(dynamic_cast(passwort->getThis())); geheimnis = initTextFeld(20, 80, 208, 20, TextFeld::Style::TextFeld, "Geheimis"); geheimnis->setTastaturEreignisParameter(this); geheimnis->setTastaturEreignis(eMailÄndernGeheimnisTE); initToolTip(geheimnis, "Account Geheimnis."); fenster->addMember(dynamic_cast(geheimnis->getThis())); nEMail = initTextFeld(20, 110, 208, 20, TextFeld::Style::TextFeld, "neue E-Mail Adresse"); nEMail->setTastaturEreignisParameter(this); nEMail->setTastaturEreignis(eMailÄndernNEMailTE); initToolTip(nEMail, "Neue E-Mail Adresse."); fenster->addMember(dynamic_cast(nEMail->getThis())); weiter = initKnopf(74, 140, 100, 20, Knopf::Style::Sichtbar, "weiter"); weiter->setMausEreignisParameter(this); weiter->setMausEreignis(eMailÄndernWeiterME); 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 EMailÄndern::~EMailÄndern() { if (eMailÄndern) eMailÄndern = (Knopf*)eMailÄndern->release(); 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 (nEMail) nEMail = (TextFeld*)nEMail->release(); if (weiter) weiter = (Knopf*)weiter->release(); if (nachricht) nachricht = (TextFeld*)nachricht->release(); } // Privat void EMailÄndern::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); nEMail->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 EMailÄndern::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt { fenster->removeStyle(Fenster::Style::Sichtbar); eMailÄndern->setRahmenBreite(2); eMailÄndern->setAlphaFeldFarbe(0x5500FF00); eMailÄndern->setAlphaFeldStrength(-5); } bool EMailÄndern::eMailÄndernME(void* obj, MausEreignis me) // MausEreignis im Knopf eMailÄndern { if (me.id == ME_RLinks) { vorLogin->setEMailÄndern(); eMailÄndern->setRahmenBreite(3); eMailÄndern->setAlphaFeldFarbe(0xFF000000); eMailÄndern->setAlphaFeldStrength(20); Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; fenster->setSize(255, 200); fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 100); fenster->addStyle(Fenster::Style::Sichtbar); nachricht->removeStyle(TextFeld::Style::Sichtbar); weiter->setText("weiter"); weiter->setPosition(75, 140); name->addStyle(TextFeld::Style::Sichtbar); passwort->addStyle(TextFeld::Style::Sichtbar); geheimnis->addStyle(TextFeld::Style::Sichtbar); nEMail->addStyle(TextFeld::Style::Sichtbar); name->addStyle(TextFeld::Style::Fokus); name->setAuswahl(0, name->zText()->getLength()); } return 1; } bool EMailÄndern::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 EMailÄndern::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 EMailÄndern::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis { if (te.id == TE_Press && te.taste == T_Enter) return 0; if (te.id == TE_Press) geheimnis->setSchowChar('*'); if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab)) { geheimnis->removeStyle(TextFeld::Style::Fokus); nEMail->addStyle(TextFeld::Style::Fokus); nEMail->setAuswahl(0, nEMail->zText()->getLength()); } if (geheimnis->zText()->getLength() >= 50 && istSchreibbar(te.taste)) return 0; return 1; } bool EMailÄndern::nEMailTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld nEMail { if (te.id == TE_Press && te.taste == T_Enter) return 0; if (te.id == TE_Press) nEMail->setSchowChar('*'); if (te.id == TE_Release && te.taste == T_Enter) { nEMail->removeStyle(TextFeld::Style::Fokus); MausEreignis me; me.id = ME_RLinks; weiterME(0, me); } if (nEMail->zText()->getLength() >= 50 && istSchreibbar(te.taste)) return 0; return 1; } bool EMailÄndern::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter { if (me.id == ME_RLinks) { if (weiter->zText()->istGleich("weiter")) { if (name->zText()->getLength() == 0) zeigeNachricht("Bitte gebe deinen Accountnamen ein."); if (passwort->zText()->getLength() == 0) zeigeNachricht("Bitte gebe dein Accountpasswort ein."); if (geheimnis->zText()->getLength() == 0) zeigeNachricht("Bitte gebe dein Accountgeheimnis ein."); if (nEMail->zText()->getLength() == 0) zeigeNachricht("Bitte gebe eine neue E-Mail Addresse ein."); if (weiter->zText()->istGleich("Ok")) return 1; new AktionsThread(8, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), nEMail->zText()->getText(), 0); } else { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; fenster->setSize(255, 200); fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 100); fenster->addStyle(Fenster::Style::Sichtbar); nachricht->removeStyle(TextFeld::Style::Sichtbar); weiter->setText("weiter"); weiter->setPosition(75, 140); name->addStyle(TextFeld::Style::Sichtbar); passwort->addStyle(TextFeld::Style::Sichtbar); geheimnis->addStyle(TextFeld::Style::Sichtbar); nEMail->addStyle(TextFeld::Style::Sichtbar); name->addStyle(TextFeld::Style::Fokus); name->setAuswahl(0, name->zText()->getLength()); } } return 1; } void EMailÄndern::setReturn(bool ret) // Setzt den Returnwert { if (ret) zeigeNachricht("E-Mail erfolgreich geändert."); else if (lastError.getLength()) zeigeNachricht(lastError); else zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten."); } // Inhalt der EMailVergessen Klasse aus EMail.h // Konstruktor EMailVergessen::EMailVergessen(Fenster* zVorLoginFenster) : ReferenceCounter() { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; eMailVergessen = initKnopf(10, 410, 130, 30, Knopf::Style::Sichtbar, "E-Mail vergessen"); eMailVergessen->setMausEreignisParameter(this); eMailVergessen->setMausEreignis(eMailVergessenEMailVergessenME); initToolTip(eMailVergessen, "Account E-Mail Adresse anzeigen."); zVorLoginFenster->addMember(dynamic_cast(eMailVergessen->getThis())); fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 85, 250, 170, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "E-Mail vergessen"); name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name"); name->setTastaturEreignisParameter(this); name->setTastaturEreignis(eMailVergessenNameTE); initToolTip(name, "Account Name."); fenster->addMember(dynamic_cast(name->getThis())); passwort = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Passwort"); passwort->setTastaturEreignisParameter(this); passwort->setTastaturEreignis(eMailVergessenPasswortTE); initToolTip(passwort, "Account Passwort."); fenster->addMember(dynamic_cast(passwort->getThis())); geheimnis = initTextFeld(20, 80, 208, 20, TextFeld::Style::TextFeld, "Geheimis"); geheimnis->setTastaturEreignisParameter(this); geheimnis->setTastaturEreignis(eMailVergessenGeheimnisTE); initToolTip(geheimnis, "Account Geheimnis."); fenster->addMember(dynamic_cast(geheimnis->getThis())); weiter = initKnopf(74, 110, 100, 20, Knopf::Style::Sichtbar, "weiter"); weiter->setMausEreignisParameter(this); weiter->setMausEreignis(eMailVergessenWeiterME); 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 EMailVergessen::~EMailVergessen() { if (eMailVergessen) eMailVergessen = (Knopf*)eMailVergessen->release(); 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 (nachricht) nachricht = (TextFeld*)nachricht->release(); } // Privat void EMailVergessen::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"); 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 EMailVergessen::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt { fenster->removeStyle(Fenster::Style::Sichtbar); eMailVergessen->setRahmenBreite(2); eMailVergessen->setAlphaFeldFarbe(0x5500FF00); eMailVergessen->setAlphaFeldStrength(-5); } bool EMailVergessen::eMailVergessenME(void* obj, MausEreignis me) // MausEreignis im Knopf eMailVergessen { if (me.id == ME_RLinks) { vorLogin->setEMailVergessen(); eMailVergessen->setRahmenBreite(3); eMailVergessen->setAlphaFeldFarbe(0xFF000000); eMailVergessen->setAlphaFeldStrength(20); Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; fenster->setSize(255, 170); fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 85); fenster->addStyle(Fenster::Style::Sichtbar); nachricht->removeStyle(TextFeld::Style::Sichtbar); weiter->setText("weiter"); weiter->setPosition(75, 110); 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; } bool EMailVergessen::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 EMailVergessen::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 EMailVergessen::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis { if (te.id == TE_Press && te.taste == T_Enter) return 0; if (te.id == TE_Press) geheimnis->setSchowChar('*'); if (te.id == TE_Release && te.taste == T_Enter) { geheimnis->removeStyle(TextFeld::Style::Fokus); MausEreignis me; me.id = ME_RLinks; weiterME(0, me); } if (geheimnis->zText()->getLength() >= 50 && istSchreibbar(te.taste)) return 0; return 1; } bool EMailVergessen::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter { if (me.id == ME_RLinks) { if (weiter->zText()->istGleich("weiter")) { if (name->zText()->getLength() == 0) zeigeNachricht("Bitte gebe deinen Accountnamen ein."); 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(9, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0); } else { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; fenster->setSize(255, 170); fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 85); fenster->addStyle(Fenster::Style::Sichtbar); nachricht->removeStyle(TextFeld::Style::Sichtbar); weiter->setText("weiter"); weiter->setPosition(75, 110); 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 EMailVergessen::setReturn(bool ret, char* eMail) // Setzt den Returnwert { if (ret) { Text* nachricht = new Text("Deine E-Mail Addresse lautet:'"); nachricht->append(eMail); nachricht->append("'."); zeigeNachricht(nachricht->getText()); nachricht = (Text*)nachricht->release(); } else if (lastError.getLength()) zeigeNachricht(lastError); else zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten."); delete eMail; } // messages bool eMailÄndernEMailÄndernME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((EMailÄndern*)p)->eMailÄndernME(obj, me); } bool eMailÄndernNameTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((EMailÄndern*)p)->nameTE(obj, te); } bool eMailÄndernPasswortTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((EMailÄndern*)p)->passwortTE(obj, te); } bool eMailÄndernGeheimnisTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((EMailÄndern*)p)->geheimnisTE(obj, te); } bool eMailÄndernNEMailTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((EMailÄndern*)p)->nEMailTE(obj, te); } bool eMailÄndernWeiterME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((EMailÄndern*)p)->weiterME(obj, me); } bool eMailVergessenEMailVergessenME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((EMailVergessen*)p)->eMailVergessenME(obj, me); } bool eMailVergessenNameTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((EMailVergessen*)p)->nameTE(obj, te); } bool eMailVergessenPasswortTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((EMailVergessen*)p)->passwortTE(obj, te); } bool eMailVergessenGeheimnisTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((EMailVergessen*)p)->geheimnisTE(obj, te); } bool eMailVergessenWeiterME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((EMailVergessen*)p)->weiterME(obj, me); }