#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 ); 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 ); 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 ); 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 ); fenster->addMember( weiter ); zVorLoginFenster->addMember( fenster ); ref = 1; } // Destruktor NameVergessen::~NameVergessen() { if( nameVergessen ) nameVergessen = nameVergessen->release(); if( fenster ) fenster = fenster->release(); if( passwort ) passwort = passwort->release(); if( geheimnis ) geheimnis = geheimnis->release(); if( weiter ) weiter = weiter->release(); if( nachricht ) nachricht = nachricht->release(); } // Privat void NameVergessen::zeigeNachricht( const char *txt ) { Punkt bildschirmmitte = Bildschirmmitte(); passwort->löscheStyle( TextFeld::Style::Sichtbar ); geheimnis->löscheStyle( TextFeld::Style::Sichtbar ); fenster->setGröße( 250, 150 ); fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 ); weiter->setPosition( 139, 100 ); weiter->setText( "Ok" ); nachricht->setText( txt ); if( nachricht->zText()->getLänge() > 30 ) { int pos = -1; bool set = 0; int lastp = 0; for( int i = 20; i < nachricht->zText()->getLänge(); ) { char *tmp = &nachricht->zText()->getText()[ i ]; while( *tmp != ' ' && i < nachricht->zText()->getLänge() ) { tmp++; i++; if( i - 30 >= lastp ) { if( set ) { lastp = pos; set = 0; nachricht->zText()->getText()[ pos ] = '\n'; } else lastp += 5; } } if( i < nachricht->zText()->getLänge() ) { pos = i; set = 1; tmp++; i++; } } } nachricht->addStyle( TextFeld::Style::Sichtbar ); } // Knopfdruck void NameVergessen::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt { fenster->löscheStyle( Fenster::Style::Sichtbar ); registerKlient->trenne(); nameVergessen->setLinienRahmenBreite( 2 ); nameVergessen->setAlphaFeldFarbe( 0x5500FF00 ); nameVergessen->setAlphaFeldStärke( -5 ); } bool NameVergessen::nameVergessenME( void *obj, MausEreignis me ) // MausEreignis im Knopf nameVergessen { if( me.id == ME_RLinks ) { vorLogin->setNameVergessen(); nameVergessen->setLinienRahmenBreite( 3 ); nameVergessen->setAlphaFeldFarbe( 0xFF000000 ); nameVergessen->setAlphaFeldStärke( 20 ); Punkt bildschirmmitte = Bildschirmmitte(); fenster->setGröße( 255, 140 ); fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 ); fenster->addStyle( Fenster::Style::Sichtbar ); nachricht->löscheStyle( 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( passwort->zText()->getLänge(), 0 ); } 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->löscheStyle( TextFeld::Style::Fokus ); geheimnis->addStyle( TextFeld::Style::Fokus ); geheimnis->setAuswahl( geheimnis->zText()->getLänge(), 0 ); } if( passwort->zText()->getLänge() >= 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->löscheStyle( TextFeld::Style::Fokus ); MausEreignis me; me.id = ME_RLinks; weiterME( 0, me ); } if( passwort->zText()->getLänge() >= 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( )->getLänge( ) == 0 ) zeigeNachricht( "Bitte gebe dein Accountpasswort ein." ); if( geheimnis->zText( )->getLänge( ) == 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->setGröße( 255, 140 ); fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 70 ); fenster->addStyle( Fenster::Style::Sichtbar ); nachricht->löscheStyle( 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( passwort->zText( )->getLänge( ), 0 ); } } return 1; } void NameVergessen::setResult( bool ret ) // Setzt den Returnwert { if( ret ) zeigeNachricht( "Dir wurde eine E-Mail mit deinem Accountnamen geschickt." ); else if( registerKlient->getLetzterFehler() ) zeigeNachricht( registerKlient->getLetzterFehler() ); 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 ); }