#include "..\..\Global\Variablen.h" #include "Name.h" #include "..\..\Global\Initialisierung.h" #include #include // Inhalt der NameVergessen Klasse aus Name.h // Konstruktor NameVergessen::NameVergessen( Schrift *zSchrift, Fenster *zVorLoginFenster ) { Punkt bildschirmmitte = Bildschirmmitte(); nameVergessen = initKnopf( 10, 290, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Name vergessen" ); nameVergessen->setMausEreignisParameter( this ); nameVergessen->setMausEreignis( nameVergessenNameVergessenME ); initToolTip( nameVergessen, "Accoutnt Name per E-MAil senden.", zSchrift->getThis(), hauptScreen ); zVorLoginFenster->addMember( nameVergessen->getThis() ); fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 70, 250, 140, zSchrift, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Name vergessen" ); passwort = initTextFeld( 20, 20, 208, 20, zSchrift, TextFeld::Style::TextFeld, "Passwort" ); passwort->setTastaturEreignisParameter( this ); passwort->setTastaturEreignis( nameVergessenPasswortTE ); initToolTip( passwort, "Accoutnt Passwort.", zSchrift->getThis(), hauptScreen ); fenster->addMember( passwort->getThis() ); geheimnis = initTextFeld( 20, 50, 208, 20, zSchrift, TextFeld::Style::TextFeld, "Geheimis" ); geheimnis->setTastaturEreignisParameter( this ); geheimnis->setTastaturEreignis( nameVergessenGeheimnisTE ); initToolTip( geheimnis, "Account Geheimnis.", zSchrift->getThis(), hauptScreen ); fenster->addMember( geheimnis->getThis() ); weiter = initKnopf( 74, 80, 100, 20, zSchrift, Knopf::Style::Sichtbar, "weiter" ); weiter->setMausEreignisParameter( this ); weiter->setMausEreignis( nameVergessenWeiterME ); nachricht = initTextFeld( 0, 5, 255, 150, zSchrift, TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig, "" ); fenster->addMember( nachricht->getThis() ); fenster->addMember( weiter->getThis() ); zVorLoginFenster->addMember( fenster->getThis() ); ref = 1; } // 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 = Bildschirmmitte(); 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 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 = Bildschirmmitte(); 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 = Bildschirmmitte(); 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." ); } // Reference Counting NameVergessen * NameVergessen::getThis() { ref++; return this; } NameVergessen *NameVergessen::release() { ref--; if( !ref ) delete this; return 0; } // 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 ); }