#include "..\..\Global\Variablen.h" #include "Geheimnis.h" #include "..\..\Global\Initialisierung.h" #include #include // Inhalt der GeheimnisÄndern Klasse aus Geheimnis.h // Konstruktor GeheimnisÄndern::GeheimnisÄndern( Schrift *zSchrift, Fenster *zVorLoginFenster ) { Punkt bildschirmmitte = Bildschirmmitte(); geheimnisÄndern = initKnopf( 10, 250, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Geheimnis ändern" ); geheimnisÄndern->setMausEreignisParameter( this ); geheimnisÄndern->setMausEreignis( geheimnisÄndernGeheimnisÄndernME ); initToolTip( geheimnisÄndern, "Account Geheimnis ändern.", zSchrift->getThis(), hauptScreen ); zVorLoginFenster->addMember( geheimnisÄndern ); fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 100, 250, 200, zSchrift, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Geheimnis ändern" ); name = initTextFeld( 20, 20, 208, 20, zSchrift, TextFeld::Style::TextFeld, "Name" ); name->setTastaturEreignisParameter( this ); name->setTastaturEreignis( geheimnisÄ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( geheimnisÄ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( geheimnisÄndernGeheimnisTE ); initToolTip( geheimnis, "Account Geheimni.", zSchrift->getThis(), hauptScreen ); fenster->addMember( geheimnis ); nGeheimnis = initTextFeld( 20, 110, 208, 20, zSchrift, TextFeld::Style::TextFeld, "neues Geheimnis" ); nGeheimnis->setTastaturEreignisParameter( this ); nGeheimnis->setTastaturEreignis( geheimnisÄndernNGeheimnisTE ); initToolTip( nGeheimnis, "Neues Account Geheimnis.", zSchrift->getThis(), hauptScreen ); fenster->addMember( nGeheimnis ); weiter = initKnopf( 74, 140, 100, 20, zSchrift, Knopf::Style::Sichtbar, "weiter" ); weiter->setMausEreignisParameter( this ); weiter->setMausEreignis( geheimnisÄ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 GeheimnisÄndern::~GeheimnisÄndern() { if( geheimnisÄndern ) geheimnisÄndern = geheimnisÄndern->release(); if( fenster ) fenster = fenster->release(); if( name ) name = name->release(); if( passwort ) passwort = passwort->release(); if( geheimnis ) geheimnis = geheimnis->release(); if( nGeheimnis ) nGeheimnis = nGeheimnis->release(); if( weiter ) weiter = weiter->release(); if( nachricht ) nachricht = nachricht->release(); } // Privat void GeheimnisÄndern::zeigeNachricht( const char *txt ) { Punkt bildschirmmitte = Bildschirmmitte(); 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(); ) { 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 GeheimnisÄndern::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt { fenster->removeStyle( Fenster::Style::Sichtbar ); registerKlient->trenne(); geheimnisÄndern->setLinienRahmenBreite( 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->setLinienRahmenBreite( 3 ); geheimnisÄndern->setAlphaFeldFarbe( 0xFF000000 ); geheimnisÄ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 ); nGeheimnis->addStyle( TextFeld::Style::Sichtbar ); name->addStyle( TextFeld::Style::Fokus ); name->setAuswahl( name->zText()->getLength(), 0 ); } 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( passwort->zText()->getLength(), 0 ); } 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( geheimnis->zText()->getLength(), 0 ); } 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( nGeheimnis->zText()->getLength(), 0 ); } 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 = 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 ); nGeheimnis->addStyle( TextFeld::Style::Sichtbar ); name->addStyle( TextFeld::Style::Fokus ); name->setAuswahl( name->zText()->getLength(), 0 ); } } return 1; } void GeheimnisÄndern::setResult( bool ret ) // Setzt den Returnwert { if( ret ) zeigeNachricht( "Geheimnis erfolgreich geändert." ); else if( registerKlient->getLetzterFehler() ) zeigeNachricht( registerKlient->getLetzterFehler() ); else zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." ); } // Reference Counting GeheimnisÄndern *GeheimnisÄndern::getThis() { ref++; return 0; } GeheimnisÄndern *GeheimnisÄndern::release() { ref--; if( !ref ) delete this; return 0; } // Inhalt der GeheimnisVergessen Klasse aus Geheimnis.h // Konstruktor GeheimnisVergessen::GeheimnisVergessen( Schrift *zSchrift, Fenster *zVorLoginFenster ) { Punkt bildschirmmitte = Bildschirmmitte(); geheimnisVergessen = initKnopf( 10, 370, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Geheimnis vergessen" ); geheimnisVergessen->setMausEreignisParameter( this ); geheimnisVergessen->setMausEreignis( geheimnisVergessenGeheimnisVergessenME ); initToolTip( geheimnisVergessen, "Account Geheimnis per E-Mail senden.", zSchrift->getThis(), hauptScreen ); zVorLoginFenster->addMember( geheimnisVergessen ); fenster = initFenster( bildschirmmitte.x - 125, bildschirmmitte.y - 70, 250, 140, zSchrift, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Geheimnis vergessen" ); name = initTextFeld( 20, 20, 208, 20, zSchrift, TextFeld::Style::TextFeld, "Name" ); name->setTastaturEreignisParameter( this ); name->setTastaturEreignis( geheimnisVergessenNameTE ); 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( geheimnisVergessenPasswortTE ); initToolTip( passwort, "Account Passwort.", zSchrift->getThis(), hauptScreen ); fenster->addMember( passwort ); weiter = initKnopf( 74, 80, 100, 20, zSchrift, Knopf::Style::Sichtbar, "weiter" ); weiter->setMausEreignisParameter( this ); weiter->setMausEreignis( geheimnisVergessenWeiterME ); 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 GeheimnisVergessen::~GeheimnisVergessen() { if( geheimnisVergessen ) geheimnisVergessen = geheimnisVergessen->release(); if( fenster ) fenster = fenster->release(); if( name ) name = name->release(); if( passwort ) passwort = passwort->release(); if( weiter ) weiter = weiter->release(); if( nachricht ) nachricht = nachricht->release(); } // Privat void GeheimnisVergessen::zeigeNachricht( const char *txt ) { Punkt bildschirmmitte = Bildschirmmitte(); 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(); ) { 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 GeheimnisVergessen::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt { fenster->removeStyle( Fenster::Style::Sichtbar ); registerKlient->trenne(); geheimnisVergessen->setLinienRahmenBreite( 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->setLinienRahmenBreite( 3 ); geheimnisVergessen->setAlphaFeldFarbe( 0xFF000000 ); geheimnisVergessen->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 ); name->addStyle( TextFeld::Style::Sichtbar ); passwort->addStyle( TextFeld::Style::Sichtbar ); name->addStyle( TextFeld::Style::Fokus ); name->setAuswahl( name->zText()->getLength(), 0 ); } 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( passwort->zText( )->getLength( ), 0 ); } 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 = 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 ); name->addStyle( TextFeld::Style::Sichtbar ); passwort->addStyle( TextFeld::Style::Sichtbar ); name->addStyle( TextFeld::Style::Fokus ); name->setAuswahl( name->zText()->getLength(), 0 ); } } return 1; } void GeheimnisVergessen::setResult( bool ret ) // Setzt den Returnwert { if( ret ) zeigeNachricht( "Dir wurde eine E-Mail mit deinem Accountgeheimnis gesendet." ); else if( registerKlient->getLetzterFehler() ) zeigeNachricht( registerKlient->getLetzterFehler() ); else zeigeNachricht( "Es ist ein Unbekannter Fehler aufgetreten." ); } // Reference Counting GeheimnisVergessen *GeheimnisVergessen::getThis() { ref++; return this; } GeheimnisVergessen *GeheimnisVergessen::release() { ref--; if( !ref ) delete this; return 0; } // 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 ); }