#include "..\..\Global\Variablen.h" #include "..\..\Global\Initialisierung.h" #include "EMail.h" #include #include // Inhalt der EMailÄndern Klasse aus EMail.h // Konstruktor EMailÄndern::EMailÄndern( Schrift *zSchrift, Fenster *zVorLoginFenster ) { Punkt bildschirmmitte = Bildschirmmitte(); eMailÄndern = initKnopf( 10, 210, 130, 30, zSchrift, Knopf::Style::Sichtbar, "E-Mail ändern" ); eMailÄndern->setMausEreignisParameter( this ); eMailÄndern->setMausEreignis( eMailÄndernEMailÄndernME ); initToolTip( eMailÄndern, "Account E-Mail Adresse ändern.", zSchrift->getThis(), hauptScreen ); zVorLoginFenster->addMember( eMailÄndern ); fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 100, 250, 200, zSchrift, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "E-Mail ändern" ); name = initTextFeld( 20, 20, 208, 20, zSchrift, TextFeld::Style::TextFeld, "Name" ); name->setTastaturEreignisParameter( this ); name->setTastaturEreignis( eMailÄndernNameTE ); initToolTip( name, "Account Name.", zSchrift->getThis(), hauptScreen ); fenster->addMember( name ); passwort = initTextFeld( 20, 50, 208, 20, zSchrift, TextFeld::Style::TextFeld, "Passwort" ); passwort->setTastaturEreignisParameter( this ); passwort->setTastaturEreignis( eMailÄndernPasswortTE ); initToolTip( passwort, "Account Passwort.", zSchrift->getThis(), hauptScreen ); fenster->addMember( passwort ); geheimnis = initTextFeld( 20, 80, 208, 20, zSchrift, TextFeld::Style::TextFeld, "Geheimis" ); geheimnis->setTastaturEreignisParameter( this ); geheimnis->setTastaturEreignis( eMailÄndernGeheimnisTE ); initToolTip( geheimnis, "Account Geheimnis.", zSchrift->getThis(), hauptScreen ); fenster->addMember( geheimnis ); nEMail = initTextFeld( 20, 110, 208, 20, zSchrift, TextFeld::Style::TextFeld, "neue E-Mail Adresse" ); nEMail->setTastaturEreignisParameter( this ); nEMail->setTastaturEreignis( eMailÄndernNEMailTE ); initToolTip( nEMail, "Neue E-Mail Adresse.", zSchrift->getThis(), hauptScreen ); fenster->addMember( nEMail ); weiter = initKnopf( 74, 140, 100, 20, zSchrift, Knopf::Style::Sichtbar, "weiter" ); weiter->setMausEreignisParameter( this ); weiter->setMausEreignis( eMailÄndernWeiterME ); nachricht = initTextFeld( 0, 5, 255, 150, zSchrift, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" ); fenster->addMember( nachricht ); fenster->addMember( weiter ); zVorLoginFenster->addMember( fenster ); ref = 1; } // Destruktor EMailÄndern::~EMailÄndern() { if( eMailÄndern ) eMailÄndern = eMailÄndern->release(); if( fenster ) fenster = fenster->release(); if( name ) name = name->release(); if( passwort ) passwort = passwort->release(); if( geheimnis ) geheimnis = geheimnis->release(); if( nEMail ) nEMail = nEMail->release(); if( weiter ) weiter = weiter->release(); if( nachricht ) nachricht = nachricht->release(); } // Privat void EMailÄndern::zeigeNachricht( const char *txt ) { Punkt bildschirmmitte = Bildschirmmitte(); 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(); ) { char *tmp = &nachricht->zText()->getText()[ i ]; while( *tmp != ' ' && i < nachricht->zText()->getLength() ) { tmp++; i++; if( i - 30 >= lastp ) { if( set ) { lastp = pos; set = 0; 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 ); registerKlient->trenne(); eMailÄndern->setLinienRahmenBreite( 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->setLinienRahmenBreite( 3 ); eMailÄndern->setAlphaFeldFarbe( 0xFF000000 ); eMailÄndern->setAlphaFeldStrength( 20 ); Punkt bildschirmmitte = Bildschirmmitte(); 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( name->zText()->getLength(), 0 ); } 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( passwort->zText()->getLength(), 0 ); } 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( geheimnis->zText()->getLength(), 0 ); } 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( nEMail->zText()->getLength(), 0 ); } 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 = Bildschirmmitte(); 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( name->zText()->getLength(), 0 ); } } return 1; } void EMailÄndern::setReturn( bool ret ) // Setzt den Returnwert { if( ret ) zeigeNachricht( "E-Mail erfolgreich geändert." ); else if( registerKlient->getLetzterFehler() ) zeigeNachricht( registerKlient->getLetzterFehler() ); else zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." ); } // Reference Counting EMailÄndern *EMailÄndern::getThis() { ref++; return this; } EMailÄndern *EMailÄndern::release() { ref--; if( !ref ) delete this; return 0; } // Inhalt der EMailVergessen Klasse aus EMail.h // Konstruktor EMailVergessen::EMailVergessen( Schrift *zSchrift, Fenster *zVorLoginFenster ) { Punkt bildschirmmitte = Bildschirmmitte(); eMailVergessen = initKnopf( 10, 410, 130, 30, zSchrift, Knopf::Style::Sichtbar, "E-Mail vergessen" ); eMailVergessen->setMausEreignisParameter( this ); eMailVergessen->setMausEreignis( eMailVergessenEMailVergessenME ); initToolTip( eMailVergessen, "Account E-Mail Adresse anzeigen.", zSchrift->getThis(), hauptScreen ); zVorLoginFenster->addMember( eMailVergessen ); fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 85, 250, 170, zSchrift, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "E-Mail vergessen" ); name = initTextFeld( 20, 20, 208, 20, zSchrift, TextFeld::Style::TextFeld, "Name" ); name->setTastaturEreignisParameter( this ); name->setTastaturEreignis( eMailVergessenNameTE ); initToolTip( name, "Account Name.", zSchrift->getThis(), hauptScreen ); fenster->addMember( name ); passwort = initTextFeld( 20, 50, 208, 20, zSchrift, TextFeld::Style::TextFeld, "Passwort" ); passwort->setTastaturEreignisParameter( this ); passwort->setTastaturEreignis( eMailVergessenPasswortTE ); initToolTip( passwort, "Account Passwort.", zSchrift->getThis(), hauptScreen ); fenster->addMember( passwort ); geheimnis = initTextFeld( 20, 80, 208, 20, zSchrift, TextFeld::Style::TextFeld, "Geheimis" ); geheimnis->setTastaturEreignisParameter( this ); geheimnis->setTastaturEreignis( eMailVergessenGeheimnisTE ); initToolTip( geheimnis, "Account Geheimnis.", zSchrift->getThis(), hauptScreen ); fenster->addMember( geheimnis ); weiter = initKnopf( 74, 110, 100, 20, zSchrift, Knopf::Style::Sichtbar, "weiter" ); weiter->setMausEreignisParameter( this ); weiter->setMausEreignis( eMailVergessenWeiterME ); nachricht = initTextFeld( 0, 5, 255, 150, zSchrift, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" ); fenster->addMember( nachricht ); fenster->addMember( weiter ); zVorLoginFenster->addMember( fenster ); ref = 1; } // Destruktor EMailVergessen::~EMailVergessen() { if( eMailVergessen ) eMailVergessen = eMailVergessen->release(); if( fenster ) fenster = fenster->release(); if( name ) name = name->release(); if( passwort ) passwort = passwort->release(); if( geheimnis ) geheimnis = geheimnis->release(); if( weiter ) weiter = weiter->release(); if( nachricht ) nachricht = nachricht->release(); } // Privat void EMailVergessen::zeigeNachricht( const char *txt ) { Punkt bildschirmmitte = Bildschirmmitte(); 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(); ) { char *tmp = &nachricht->zText()->getText()[ i ]; while( *tmp != ' ' && i < nachricht->zText()->getLength() ) { tmp++; i++; if( i - 30 >= lastp ) { if( set ) { lastp = pos; set = 0; 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 ); registerKlient->trenne(); eMailVergessen->setLinienRahmenBreite( 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->setLinienRahmenBreite( 3 ); eMailVergessen->setAlphaFeldFarbe( 0xFF000000 ); eMailVergessen->setAlphaFeldStrength( 20 ); Punkt bildschirmmitte = Bildschirmmitte(); 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( name->zText()->getLength(), 0 ); } 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( passwort->zText()->getLength(), 0 ); } 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( geheimnis->zText()->getLength(), 0 ); } 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 = Bildschirmmitte(); 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( name->zText()->getLength(), 0 ); } } 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 = nachricht->release(); } else if( registerKlient->getLetzterFehler() ) zeigeNachricht( registerKlient->getLetzterFehler() ); else zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." ); delete eMail; } // Reference Counting EMailVergessen *EMailVergessen::getThis() { ref++; return this; } EMailVergessen *EMailVergessen::release() { ref--; if( !ref ) delete this; return 0; } // 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 ); }