#include "..\..\Global\Variablen.h" #include "Geheimnis.h" #include "..\..\Global\Initialisierung.h" #include #include #include // Inhalt der GeheimnisÄndern Klasse aus Geheimnis.h // Konstruktor GeheimnisÄndern::GeheimnisÄndern(Fenster* zVorLoginFenster) : ReferenceCounter() { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; geheimnisÄndern = initKnopf(10, 250, 130, 30, Knopf::Style::Sichtbar, "Geheimnis ändern"); geheimnisÄndern->setMausEreignisParameter(this); geheimnisÄndern->setMausEreignis(geheimnisÄndernGeheimnisÄndernME); initToolTip(geheimnisÄndern, "Account Geheimnis ändern."); zVorLoginFenster->addMember(dynamic_cast(geheimnisÄndern->getThis())); fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 100, 250, 200, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Geheimnis ändern"); name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name"); name->setTastaturEreignisParameter(this); name->setTastaturEreignis(geheimnisÄ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(geheimnisÄ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(geheimnisÄndernGeheimnisTE); initToolTip(geheimnis, "Account Geheimni."); fenster->addMember(dynamic_cast(geheimnis->getThis())); nGeheimnis = initTextFeld(20, 110, 208, 20, TextFeld::Style::TextFeld, "neues Geheimnis"); nGeheimnis->setTastaturEreignisParameter(this); nGeheimnis->setTastaturEreignis(geheimnisÄndernNGeheimnisTE); initToolTip(nGeheimnis, "Neues Account Geheimnis."); fenster->addMember(dynamic_cast(nGeheimnis->getThis())); weiter = initKnopf(74, 140, 100, 20, Knopf::Style::Sichtbar, "weiter"); weiter->setMausEreignisParameter(this); weiter->setMausEreignis(geheimnisÄ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 GeheimnisÄndern::~GeheimnisÄndern() { if (geheimnisÄndern) geheimnisÄndern = (Knopf*)geheimnisÄ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 (nGeheimnis) nGeheimnis = (TextFeld*)nGeheimnis->release(); if (weiter) weiter = (Knopf*)weiter->release(); if (nachricht) nachricht = (TextFeld*)nachricht->release(); } // Privat void GeheimnisÄ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); nGeheimnis->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 GeheimnisÄndern::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt { fenster->removeStyle(Fenster::Style::Sichtbar); geheimnisÄndern->setRahmenBreite(2); geheimnisÄndern->setAlphaFeldFarbe(0x5500FF00); geheimnisÄndern->setAlphaFeldStrength(-5); } bool GeheimnisÄndern::geheimnisÄndernME(void* obj, MausEreignis me) // MausEreignis im Knopf geheimnisÄndern { if (me.id == ME_RLinks) { vorLogin->setGeheimnisÄndern(); geheimnisÄndern->setRahmenBreite(3); geheimnisÄndern->setAlphaFeldFarbe(0xFF000000); geheimnisÄ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); nGeheimnis->addStyle(TextFeld::Style::Sichtbar); name->addStyle(TextFeld::Style::Fokus); name->setAuswahl(0, name->zText()->getLength()); } return 1; } bool GeheimnisÄ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 GeheimnisÄ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 GeheimnisÄ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); nGeheimnis->addStyle(TextFeld::Style::Fokus); nGeheimnis->setAuswahl(0, nGeheimnis->zText()->getLength()); } if (geheimnis->zText()->getLength() >= 50 && istSchreibbar(te.taste)) return 0; return 1; } bool GeheimnisÄndern::nGeheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld nGeheimnis { if (te.id == TE_Press && te.taste == T_Enter) return 0; if (te.id == TE_Release && te.taste == T_Enter) { nGeheimnis->removeStyle(TextFeld::Style::Fokus); MausEreignis me; me.id = ME_RLinks; weiterME(0, me); } if (nGeheimnis->zText()->getLength() >= 25 && istSchreibbar(te.taste)) return 0; return 1; } bool GeheimnisÄ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 (nGeheimnis->zText()->getLength() == 0) zeigeNachricht("Bitte gebe ein neues Accountgeheimnis ein."); if (weiter->zText()->istGleich("Ok")) return 1; new AktionsThread(10, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), nGeheimnis->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); nGeheimnis->addStyle(TextFeld::Style::Sichtbar); name->addStyle(TextFeld::Style::Fokus); name->setAuswahl(0, name->zText()->getLength()); } } return 1; } void GeheimnisÄndern::setResult(bool ret) // Setzt den Returnwert { if (ret) zeigeNachricht("Geheimnis erfolgreich geändert."); else if (lastError.getLength()) zeigeNachricht(lastError); else zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten."); } // Inhalt der GeheimnisVergessen Klasse aus Geheimnis.h // Konstruktor GeheimnisVergessen::GeheimnisVergessen(Fenster* zVorLoginFenster) : ReferenceCounter() { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; geheimnisVergessen = initKnopf(10, 370, 130, 30, Knopf::Style::Sichtbar, "Geheimnis vergessen"); geheimnisVergessen->setMausEreignisParameter(this); geheimnisVergessen->setMausEreignis(geheimnisVergessenGeheimnisVergessenME); initToolTip(geheimnisVergessen, "Account Geheimnis per E-Mail senden."); zVorLoginFenster->addMember(dynamic_cast(geheimnisVergessen->getThis())); fenster = initFenster(bildschirmmitte.x - 125, bildschirmmitte.y - 70, 250, 140, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Geheimnis vergessen"); name = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Name"); name->setTastaturEreignisParameter(this); name->setTastaturEreignis(geheimnisVergessenNameTE); 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(geheimnisVergessenPasswortTE); initToolTip(passwort, "Account Passwort."); fenster->addMember(dynamic_cast(passwort->getThis())); weiter = initKnopf(74, 80, 100, 20, Knopf::Style::Sichtbar, "weiter"); weiter->setMausEreignisParameter(this); weiter->setMausEreignis(geheimnisVergessenWeiterME); 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 GeheimnisVergessen::~GeheimnisVergessen() { if (geheimnisVergessen) geheimnisVergessen = (Knopf*)geheimnisVergessen->release(); if (fenster) fenster = (Fenster*)fenster->release(); if (name) name = (TextFeld*)name->release(); if (passwort) passwort = (TextFeld*)passwort->release(); if (weiter) weiter = (Knopf*)weiter->release(); if (nachricht) nachricht = (TextFeld*)nachricht->release(); } // Privat void GeheimnisVergessen::zeigeNachricht(const char* txt) { Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2; name->removeStyle(TextFeld::Style::Sichtbar); passwort->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 GeheimnisVergessen::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt { fenster->removeStyle(Fenster::Style::Sichtbar); geheimnisVergessen->setRahmenBreite(2); geheimnisVergessen->setAlphaFeldFarbe(0x5500FF00); geheimnisVergessen->setAlphaFeldStrength(-5); } bool GeheimnisVergessen::geheimnisVergessenME(void* obj, MausEreignis me) // MausEreignis im Knopf geheimnisVergessen { if (me.id == ME_RLinks) { vorLogin->setGeheilnisVergessen(); geheimnisVergessen->setRahmenBreite(3); geheimnisVergessen->setAlphaFeldFarbe(0xFF000000); geheimnisVergessen->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); name->addStyle(TextFeld::Style::Sichtbar); passwort->addStyle(TextFeld::Style::Sichtbar); name->addStyle(TextFeld::Style::Fokus); name->setAuswahl(0, name->zText()->getLength()); } return 1; } bool GeheimnisVergessen::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 GeheimnisVergessen::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) { 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 GeheimnisVergessen::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 (weiter->zText()->istGleich("Ok")) return 1; new AktionsThread(11, name->zText()->getText(), passwort->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); name->addStyle(TextFeld::Style::Sichtbar); passwort->addStyle(TextFeld::Style::Sichtbar); name->addStyle(TextFeld::Style::Fokus); name->setAuswahl(0, name->zText()->getLength()); } } return 1; } void GeheimnisVergessen::setResult(bool ret) // Setzt den Returnwert { if (ret) zeigeNachricht("Dir wurde eine E-Mail mit deinem Accountgeheimnis gesendet."); else if (lastError.getLength()) zeigeNachricht(lastError); else zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten."); } // messages bool geheimnisÄndernGeheimnisÄndernME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((GeheimnisÄndern*)p)->geheimnisÄndernME(obj, me); } bool geheimnisÄndernNameTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((GeheimnisÄndern*)p)->nameTE(obj, te); } bool geheimnisÄndernPasswortTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((GeheimnisÄndern*)p)->passwortTE(obj, te); } bool geheimnisÄndernGeheimnisTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((GeheimnisÄndern*)p)->geheimnisTE(obj, te); } bool geheimnisÄndernNGeheimnisTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((GeheimnisÄndern*)p)->nGeheimnisTE(obj, te); } bool geheimnisÄndernWeiterME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((GeheimnisÄndern*)p)->weiterME(obj, me); } bool geheimnisVergessenGeheimnisVergessenME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((GeheimnisVergessen*)p)->geheimnisVergessenME(obj, me); } bool geheimnisVergessenNameTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((GeheimnisVergessen*)p)->nameTE(obj, te); } bool geheimnisVergessenPasswortTE(void* p, void* obj, TastaturEreignis te) { if (!p) return 0; return ((GeheimnisVergessen*)p)->passwortTE(obj, te); } bool geheimnisVergessenWeiterME(void* p, void* obj, MausEreignis me) { if (!p) return 0; return ((GeheimnisVergessen*)p)->weiterME(obj, me); }