Registrierung.cpp 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637
  1. #include "..\..\Global\Variablen.h"
  2. #include "..\..\Global\Initialisierung.h"
  3. #include "Registrierung.h"
  4. #include <Punkt.h>
  5. #include <Text.h>
  6. #include <Zeit.h>
  7. // Inhalt der Registrierung Klasse aus Registrierung.h
  8. // Konstruktor
  9. Registrierung::Registrierung( Schrift *zSchrift, Fenster *zVorLoginFenster )
  10. {
  11. Punkt bildschirmGröße = BildschirmGröße();
  12. registrierung = initKnopf( 10, 90, 130, 30, zSchrift, Knopf::Style::Sichtbar, "Registrieren" );
  13. registrierung->setMausEreignisParameter( this );
  14. registrierung->setMausEreignis( registrierungRegistrierungME );
  15. initToolTip( registrierung, "Account erstellen.", zSchrift->getThis(), hauptScreen );
  16. zVorLoginFenster->addMember( registrierung );
  17. fenster = initFenster( bildschirmGröße.x / 2 - 175, bildschirmGröße.y / 2 - 131, 350, 262, zSchrift, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Account erstellen" );
  18. name = initTextFeld( 74, 20, 200, 20, zSchrift, TextFeld::Style::TextFeld, "Account Name" );
  19. name->setTastaturEreignisParameter( this );
  20. name->setTastaturEreignis( registrierungNameTE );
  21. initToolTip( name, "Account Name.", zSchrift->getThis(), hauptScreen );
  22. fenster->addMember( name );
  23. passwort = initTextFeld( 74, 50, 200, 20, zSchrift, TextFeld::Style::TextFeld, "Account Passwort" );
  24. passwort->setTastaturEreignisParameter( this );
  25. passwort->setTastaturEreignis( registrierungPasswortTE );
  26. initToolTip( passwort, "Account Passwort.", zSchrift->getThis(), hauptScreen );
  27. fenster->addMember( passwort );
  28. passwort2 = initTextFeld( 74, 80, 200, 20, zSchrift, TextFeld::Style::TextFeld, "Passwort wiederholen" );
  29. passwort2->setTastaturEreignisParameter( this );
  30. passwort2->setTastaturEreignis( registrierungPasswort2TE );
  31. initToolTip( passwort2, "Account Passwort wiederhohlen.", zSchrift->getThis(), hauptScreen );
  32. fenster->addMember( passwort2 );
  33. geheimnis = initTextFeld( 10, 110, 328, 20, zSchrift, TextFeld::Style::TextFeld, "Account Geheimnis" );
  34. geheimnis->setTastaturEreignisParameter( this );
  35. geheimnis->setTastaturEreignis( registrierungGeheimnisTE );
  36. initToolTip( geheimnis, "Gib etwas ein, was nur du jederzeit weißt.\n(zweites sicherheitspasswort Passwort)", zSchrift->getThis(), hauptScreen );
  37. fenster->addMember( geheimnis );
  38. eMail = initTextFeld( 74, 140, 200, 20, zSchrift, TextFeld::Style::TextFeld, "E-Mail Addresse" );
  39. eMail->setTastaturEreignisParameter( this );
  40. eMail->setTastaturEreignis( registrierungEMailTE );
  41. initToolTip( eMail, "E-Mail Addresse.", zSchrift->getThis(), hauptScreen );
  42. fenster->addMember( eMail );
  43. geburtsdatum = initTextFeld( 40, 170, 85, 20, zSchrift, TextFeld::Style::Text, "Geburtsdatum:" );
  44. fenster->addMember( geburtsdatum );
  45. gbdTag = new AuswahlBox();
  46. gbdTag->setStyle( AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund );
  47. gbdTag->setPosition( 130, 167 );
  48. gbdTag->setSize( 50, 20 );
  49. gbdTag->setMaxAuskappHeight( 100 );
  50. gbdTag->setSchriftZ( zSchrift->getThis() );
  51. gbdTag->setLinienRahmenFarbe( 0xFFFFFFFF );
  52. gbdTag->setHintergrundFarbe( 0xFF000000 );
  53. gbdTag->setMausEreignis( _ret1ME );
  54. gbdTag->addEintrag( "Tag" );
  55. for( int i = 0; i < 31; i++ )
  56. {
  57. Text *txt = new Text( "" );
  58. txt->append( i + 1 );
  59. gbdTag->addEintrag( txt );
  60. }
  61. gbdMonat = new AuswahlBox();
  62. gbdMonat->setStyle( AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund );
  63. gbdMonat->setPosition( 185, 167 );
  64. gbdMonat->setSize( 65, 20 );
  65. gbdMonat->setMaxAuskappHeight( 100 );
  66. gbdMonat->setSchriftZ( zSchrift->getThis() );
  67. gbdMonat->setLinienRahmenFarbe( 0xFFFFFFFF );
  68. gbdMonat->setHintergrundFarbe( 0xFF000000 );
  69. gbdMonat->setMausEreignis( _ret1ME );
  70. gbdMonat->addEintrag( "Monat" );
  71. for( int i = 0; i < 12; i++ )
  72. {
  73. Text *txt = new Text( "" );
  74. txt->append( i + 1 );
  75. gbdMonat->addEintrag( txt );
  76. }
  77. gbdJahr = new AuswahlBox();
  78. gbdJahr->setStyle( AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::VScroll | AuswahlBox::Style::Hintergrund );
  79. gbdJahr->setPosition( 255, 167 );
  80. gbdJahr->setSize( 55, 20 );
  81. gbdJahr->setMaxAuskappHeight( 100 );
  82. gbdJahr->setSchriftZ( zSchrift->getThis() );
  83. gbdJahr->setLinienRahmenFarbe( 0xFFFFFFFF );
  84. gbdJahr->setHintergrundFarbe( 0xFF000000 );
  85. gbdJahr->setMausEreignis( _ret1ME );
  86. gbdJahr->addEintrag( "Jahr" );
  87. for( int i = 2013; i > 1913; i-- )
  88. {
  89. Text *txt = new Text( "" );
  90. txt->append( i + 1 );
  91. gbdJahr->addEintrag( txt );
  92. }
  93. weiter = initKnopf( 124, 200, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Weiter" );
  94. weiter->setMausEreignisParameter( this );
  95. weiter->setMausEreignis( registrierungWeiterME );
  96. fenster->addMember( weiter );
  97. später = initKnopf( 20, 115, 100, 20, zSchrift, 0, "Später" );
  98. später->setMausEreignisParameter( this );
  99. später->setMausEreignis( registrierungSpäterME );
  100. initToolTip( später, "Vorgang später unter 'Bestätigung' abclose.", zSchrift->getThis(), hauptScreen );
  101. fenster->addMember( später );
  102. neuSenden = initKnopf( 129, 145, 100, 20, zSchrift, 0, "neu senden" );
  103. neuSenden->setMausEreignisParameter( this );
  104. neuSenden->setMausEreignis( registrierungNeuSendenME );
  105. initToolTip( neuSenden, "E-Mail erneut senden.", zSchrift->getThis(), hauptScreen );
  106. fenster->addMember( neuSenden );
  107. text = initTextFeld( 0, 5, 250, 150, zSchrift, TextFeld::Style::Mehrzeilig | TextFeld::Style::HCenter, "" );
  108. fenster->addMember( text );
  109. schlüssel = initTextFeld( 25, 85, 200, 20, zSchrift, TextFeld::Style::TextFeld & ~TextFeld::Style::Sichtbar, "Schlüssel" );
  110. schlüssel->setTastaturEreignisParameter( this );
  111. schlüssel->setTastaturEreignis( registrierungSchlüsselTE );
  112. initToolTip( schlüssel, "Zugeschickter Account Aktivierungsschlüssel.", zSchrift->getThis(), hauptScreen );
  113. fenster->addMember( schlüssel );
  114. fertig = initKnopf( 129, 115, 100, 20, zSchrift, 0, "Fertig" );
  115. fertig->setMausEreignisParameter( this );
  116. fertig->setMausEreignis( registrierungFertigME );
  117. fenster->addMember( fertig );
  118. zVorLoginFenster->addMember( fenster );
  119. fenster->addMember( gbdTag );
  120. fenster->addMember( gbdMonat );
  121. fenster->addMember( gbdJahr );
  122. ref = 1;
  123. }
  124. // Destruktor
  125. Registrierung::~Registrierung()
  126. {
  127. if( fenster )
  128. fenster = fenster->release();
  129. if( name )
  130. name = name->release();
  131. if( passwort )
  132. passwort = passwort->release();
  133. if( passwort2 )
  134. passwort2 = passwort2->release();
  135. if( geheimnis )
  136. geheimnis = geheimnis->release();
  137. if( eMail )
  138. eMail = eMail->release();
  139. if( geburtsdatum )
  140. geburtsdatum = geburtsdatum->release();
  141. if( gbdTag )
  142. gbdTag = gbdTag->release();
  143. if( gbdMonat )
  144. gbdMonat = gbdMonat->release();
  145. if( gbdJahr )
  146. gbdJahr = gbdJahr->release();
  147. if( weiter )
  148. weiter = weiter->release();
  149. if( text )
  150. text = text->release();
  151. if( schlüssel )
  152. schlüssel = schlüssel->release();
  153. if( später )
  154. später = später->release();
  155. if( neuSenden )
  156. neuSenden = neuSenden->release();
  157. if( fertig )
  158. fertig = fertig->release();
  159. if( registrierung )
  160. registrierung = registrierung->release();
  161. }
  162. // Privat
  163. void Registrierung::zeigeNachricht( const char *txt )
  164. {
  165. Punkt bildschirmmitte = Bildschirmmitte();
  166. name->removeStyle( TextFeld::Style::Sichtbar );
  167. passwort->removeStyle( TextFeld::Style::Sichtbar );
  168. passwort2->removeStyle( TextFeld::Style::Sichtbar );
  169. geheimnis->removeStyle( TextFeld::Style::Sichtbar );
  170. eMail->removeStyle( TextFeld::Style::Sichtbar );
  171. geburtsdatum->removeStyle( TextFeld::Style::Sichtbar );
  172. gbdTag->removeStyle( TextFeld::Style::Sichtbar );
  173. gbdMonat->removeStyle( TextFeld::Style::Sichtbar );
  174. gbdJahr->removeStyle( TextFeld::Style::Sichtbar );
  175. schlüssel->removeStyle( TextFeld::Style::Sichtbar );
  176. später->removeStyle( Knopf::Style::Sichtbar );
  177. fertig->removeStyle( Knopf::Style::Sichtbar );
  178. neuSenden->removeStyle( Knopf::Style::Sichtbar );
  179. fenster->setSize( 250, 150 );
  180. fenster->setPosition( bildschirmmitte.x - 125, bildschirmmitte.y - 75 );
  181. weiter->setPosition( 139, 100 );
  182. weiter->setText( "Ok" );
  183. text->setText( txt );
  184. if( text->zText()->getLength() > 30 )
  185. {
  186. int pos = -1;
  187. bool set = 0;
  188. int lastp = 0;
  189. for( int i = 20; i < text->zText()->getLength(); )
  190. {
  191. char *tmp = &text->zText()->getText()[ i ];
  192. while( *tmp != ' ' && i < text->zText()->getLength() )
  193. {
  194. tmp++;
  195. i++;
  196. if( i - 30 >= lastp )
  197. {
  198. if( set )
  199. {
  200. lastp = pos;
  201. set = 0;
  202. text->zText()->getText()[ pos ] = '\n';
  203. }
  204. else
  205. lastp += 5;
  206. }
  207. }
  208. if( i < text->zText()->getLength() )
  209. {
  210. pos = i;
  211. set = 1;
  212. tmp++;
  213. i++;
  214. }
  215. }
  216. }
  217. text->addStyle( TextFeld::Style::Sichtbar );
  218. }
  219. // Knopfdruck
  220. void Registrierung::druckFremdKnopf() // Ein anderer Knopfwurde gedrückt
  221. {
  222. fenster->removeStyle( Fenster::Style::Sichtbar );
  223. registerKlient->trenne();
  224. registrierung->setLinienRahmenBreite( 2 );
  225. registrierung->setAlphaFeldFarbe( 0x5500FF00 );
  226. registrierung->setAlphaFeldStrength( -5 );
  227. }
  228. bool Registrierung::nameTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld name
  229. {
  230. if( te.id == TE_Press && te.taste == T_Enter )
  231. return 0;
  232. if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
  233. {
  234. name->removeStyle( TextFeld::Style::Fokus );
  235. passwort->addStyle( TextFeld::Style::Fokus );
  236. passwort->setAuswahl( passwort->zText()->getLength(), 0 );
  237. }
  238. if( name->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
  239. return 0;
  240. return 1;
  241. }
  242. bool Registrierung::passwortTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort
  243. {
  244. if( te.id == TE_Press && te.taste == T_Enter )
  245. return 0;
  246. if( te.id == TE_Press )
  247. passwort->setSchowChar( '*' );
  248. if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
  249. {
  250. passwort->removeStyle( TextFeld::Style::Fokus );
  251. passwort2->addStyle( TextFeld::Style::Fokus );
  252. passwort2->setAuswahl( passwort2->zText()->getLength(), 0 );
  253. }
  254. if( passwort->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
  255. return 0;
  256. return 1;
  257. }
  258. bool Registrierung::passwort2TE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld passwort2
  259. {
  260. if( te.id == TE_Press && te.taste == T_Enter )
  261. return 0;
  262. if( te.id == TE_Press )
  263. passwort2->setSchowChar( '*' );
  264. if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
  265. {
  266. passwort2->removeStyle( TextFeld::Style::Fokus );
  267. geheimnis->addStyle( TextFeld::Style::Fokus );
  268. geheimnis->setAuswahl( geheimnis->zText()->getLength(), 0 );
  269. }
  270. if( passwort2->zText()->getLength() >= 25 && istSchreibbar( te.taste ) )
  271. return 0;
  272. return 1;
  273. }
  274. bool Registrierung::geheimnisTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld geheimnis
  275. {
  276. if( te.id == TE_Press && te.taste == T_Enter )
  277. return 0;
  278. if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
  279. {
  280. geheimnis->removeStyle( TextFeld::Style::Fokus );
  281. eMail->addStyle( TextFeld::Style::Fokus );
  282. eMail->setAuswahl( eMail->zText()->getLength(), 0 );
  283. }
  284. if( geheimnis->zText()->getLength() - abs( geheimnis->getCursorPos() - geheimnis->getSelectionPos() ) >= 50 && istSchreibbar( te.taste ) )
  285. return 0;
  286. return 1;
  287. }
  288. bool Registrierung::eMailTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld eMail
  289. {
  290. if( te.id == TE_Press && te.taste == T_Enter )
  291. return 0;
  292. if( te.id == TE_Release && ( te.taste == T_Enter || te.taste == T_Tab ) )
  293. {
  294. eMail->removeStyle( TextFeld::Style::Fokus );
  295. gbdTag->addStyle( AuswahlBox::Style::Fokus );
  296. }
  297. if( eMail->zText()->getLength() >= 50 && istSchreibbar( te.taste ) )
  298. return 0;
  299. return 1;
  300. }
  301. bool Registrierung::weiterME( void *obj, MausEreignis me ) // MausEreignis im Knopf weiter
  302. {
  303. if( me.id == ME_RLinks )
  304. {
  305. Punkt bildchirmGröße = BildschirmGröße();
  306. if( schlüssel->hatStyle( TextFeld::Style::Sichtbar ) )
  307. {
  308. text->removeStyle( TextFeld::Style::Sichtbar );
  309. schlüssel->removeStyle( TextFeld::Style::Sichtbar );
  310. fertig->removeStyle( Knopf::Style::Sichtbar );
  311. später->removeStyle( Knopf::Style::Sichtbar );
  312. neuSenden->removeStyle( Knopf::Style::Sichtbar );
  313. weiter->setPosition( 124, 200 );
  314. weiter->setText( "Weiter" );
  315. fenster->setSize( 350, 262 );
  316. fenster->setPosition( bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131 );
  317. fenster->setTitel( "Account erstellen" );
  318. name->addStyle( TextFeld::Style::Sichtbar );
  319. passwort->addStyle( TextFeld::Style::Sichtbar );
  320. passwort2->addStyle( TextFeld::Style::Sichtbar );
  321. geheimnis->addStyle( TextFeld::Style::Sichtbar );
  322. eMail->addStyle( TextFeld::Style::Sichtbar );
  323. geburtsdatum->addStyle( TextFeld::Style::Sichtbar );
  324. gbdTag->addStyle( TextFeld::Style::Sichtbar );
  325. gbdMonat->addStyle( TextFeld::Style::Sichtbar );
  326. gbdJahr->addStyle( TextFeld::Style::Sichtbar );
  327. registerKlient->abbrechen();
  328. name->addStyle( TextFeld::Style::Fokus );
  329. name->setAuswahl( name->zText()->getLength(), 0 );
  330. }
  331. else
  332. {
  333. if( weiter->zText()->istGleich( "Ok" ) )
  334. {
  335. if( fenster->zTitel()->istGleich( "Account erstellen" ) )
  336. {
  337. text->removeStyle( TextFeld::Style::Sichtbar );
  338. weiter->setPosition( 124, 200 );
  339. weiter->setText( "Weiter" );
  340. fenster->setSize( 350, 262 );
  341. fenster->setPosition( bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131 );
  342. name->addStyle( TextFeld::Style::Sichtbar );
  343. passwort->addStyle( TextFeld::Style::Sichtbar );
  344. passwort2->addStyle( TextFeld::Style::Sichtbar );
  345. geheimnis->addStyle( TextFeld::Style::Sichtbar );
  346. eMail->addStyle( TextFeld::Style::Sichtbar );
  347. geburtsdatum->addStyle( TextFeld::Style::Sichtbar );
  348. gbdTag->addStyle( TextFeld::Style::Sichtbar );
  349. gbdMonat->addStyle( TextFeld::Style::Sichtbar );
  350. gbdJahr->addStyle( TextFeld::Style::Sichtbar );
  351. name->addStyle( TextFeld::Style::Fokus );
  352. name->setAuswahl( name->zText()->getLength(), 0 );
  353. }
  354. else
  355. {
  356. weiter->setPosition( 20, 145 );
  357. weiter->setText( "Abbrechen" );
  358. text->setText( "Dir wurde eine E-Mail mit einem\naktivierungsode zugeschickt,\nden du in den nächsten 12 Stunden\nhier eingeben musst." );
  359. fenster->setSize( 250, 200 );
  360. fenster->setPosition( bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100 );
  361. schlüssel->addStyle( TextFeld::Style::Sichtbar );
  362. fertig->addStyle( Knopf::Style::Sichtbar );
  363. später->addStyle( Knopf::Style::Sichtbar );
  364. neuSenden->addStyle( Knopf::Style::Sichtbar );
  365. schlüssel->addStyle( TextFeld::Style::Fokus );
  366. schlüssel->setAuswahl( schlüssel->zText()->getLength(), 0 );
  367. }
  368. }
  369. else if( passwort2->zText()->istGleich( passwort->zText()->getText() ) )
  370. {
  371. if( name->zText()->getLength() == 0 ||
  372. passwort->zText()->getLength() == 0 ||
  373. geheimnis->zText()->getLength() == 0 ||
  374. eMail->zText()->getLength() == 0 )
  375. {
  376. if( name->zText()->getLength() == 0 )
  377. zeigeNachricht( "Bitte gebe einen Accountnamen ein." );
  378. else if( passwort->zText()->getLength() == 0 )
  379. zeigeNachricht( "Bitte gebe ein Accountpasswort ein." );
  380. else if( geheimnis->zText()->getLength() == 0 )
  381. zeigeNachricht( "Bitte gebe ein Accountgeheimnis ein. Dieß wird benötig, wenn du deinen Accountnamen oder dein Accountpasswort vergisst." );
  382. else if( eMail->zText()->getLength() == 0 )
  383. zeigeNachricht( "Bitte gebe deine E-Mail Addresse ein. Diese benötigen wir, um dir den Bestätigungscode für deinen Account zu senden." );
  384. return 1;
  385. }
  386. Datum *gebDat = new Datum();
  387. gebDat->setDatum( 1, 1, 1 );
  388. bool ok = 1;
  389. do
  390. {
  391. if( !gbdTag->getAuswahl() || !gbdMonat->getAuswahl() || !gbdJahr->getAuswahl() )
  392. {
  393. ok = 0;
  394. break;
  395. }
  396. int jahr = TextZuInt( gbdJahr->zEintrag( gbdJahr->getAuswahl() )->zText()->getText(), 10 );
  397. gebDat->setJahr( jahr );
  398. gebDat->setMonat( gbdMonat->getAuswahl() );
  399. gebDat->setTag( gbdTag->getAuswahl() );
  400. if( jahr != gebDat->getJahr() || gbdMonat->getAuswahl() != gebDat->getMonat() || gbdTag->getAuswahl() != gebDat->getTag() )
  401. {
  402. ok = 0;
  403. break;
  404. }
  405. }
  406. while( 0 );
  407. if( ok )
  408. new AktionsThread( 15, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), eMail->zText()->getText(), gebDat->getThis() );
  409. else
  410. zeigeNachricht( "Bitte gebe ein gültiges Geburtsdatum an." );
  411. gebDat = gebDat->release();
  412. }
  413. else
  414. zeigeNachricht( "Das wiederhohlte Passwort stimmt nicht mit dem Passwort überein." );
  415. }
  416. }
  417. return 1;
  418. }
  419. bool Registrierung::schlüsselTE( void *obj, TastaturEreignis te ) // Tastaturereignis im Textfeld schlüssel
  420. {
  421. if( te.id == TE_Press && te.taste == T_Enter )
  422. return 0;
  423. if( te.id == TE_Release && te.taste == T_Enter )
  424. {
  425. schlüssel->removeStyle( TextFeld::Style::Fokus );
  426. MausEreignis me;
  427. me.id = ME_RLinks;
  428. fertigME( 0, me );
  429. }
  430. if( schlüssel->zText()->getLength() >= 20 && istSchreibbar( te.taste ) )
  431. return 0;
  432. return 1;
  433. }
  434. bool Registrierung::fertigME( void *obj, MausEreignis me ) // MausEreignis im Knopf fertig
  435. {
  436. if( me.id == ME_RLinks )
  437. new AktionsThread( 16, schlüssel->zText()->getText(), 0, 0, 0, 0 );
  438. return 1;
  439. }
  440. bool Registrierung::späterME( void *obj, MausEreignis me ) // MausEreignis im Knopf später
  441. {
  442. if( me.id == ME_RLinks )
  443. {
  444. fenster->setTitel( "Account erstellen" );
  445. zeigeNachricht( "Du kannst den Vorgang nun später unter 'Bestätigung' vollenden." );
  446. }
  447. return 1;
  448. }
  449. bool Registrierung::neuSendenME( void *obj, MausEreignis me ) // MausEreignis im Knopf neuSenden
  450. {
  451. if( me.id == ME_RLinks )
  452. registerKlient->eMailErneutSenden();
  453. return 1;
  454. }
  455. bool Registrierung::registrierungME( void *obj, MausEreignis me ) // MausEreignis im Knopf registrierung
  456. {
  457. if( me.id == ME_RLinks )
  458. {
  459. vorLogin->setRegistrierung();
  460. fenster->addStyle( Fenster::Style::Sichtbar );
  461. registrierung->setLinienRahmenBreite( 3 );
  462. registrierung->setAlphaFeldFarbe( 0xFF000000 );
  463. registrierung->setAlphaFeldStrength( 20 );
  464. if( schlüssel->hatStyle( TextFeld::Style::Sichtbar ) )
  465. registerKlient->abbrechen();
  466. Punkt bildchirmGröße = BildschirmGröße();
  467. text->removeStyle( TextFeld::Style::Sichtbar );
  468. schlüssel->removeStyle( TextFeld::Style::Sichtbar );
  469. fertig->removeStyle( Knopf::Style::Sichtbar );
  470. später->removeStyle( Knopf::Style::Sichtbar );
  471. neuSenden->removeStyle( Knopf::Style::Sichtbar );
  472. weiter->setPosition( 124, 200 );
  473. weiter->setText( "Weiter" );
  474. fenster->setSize( 350, 262 );
  475. fenster->setPosition( bildchirmGröße.x / 2 - 175, bildchirmGröße.y / 2 - 131 );
  476. fenster->setTitel( "Account erstellen" );
  477. name->addStyle( TextFeld::Style::Sichtbar );
  478. passwort->addStyle( TextFeld::Style::Sichtbar );
  479. passwort2->addStyle( TextFeld::Style::Sichtbar );
  480. geheimnis->addStyle( TextFeld::Style::Sichtbar );
  481. eMail->addStyle( TextFeld::Style::Sichtbar );
  482. geburtsdatum->addStyle( TextFeld::Style::Sichtbar );
  483. gbdTag->addStyle( TextFeld::Style::Sichtbar );
  484. gbdMonat->addStyle( TextFeld::Style::Sichtbar );
  485. gbdJahr->addStyle( TextFeld::Style::Sichtbar );
  486. name->addStyle( TextFeld::Style::Fokus );
  487. name->setAuswahl( name->zText()->getLength(), 0 );
  488. }
  489. return 1;
  490. }
  491. void Registrierung::setWeiterReturn( bool ret ) // setzt den Weiter Returnwert
  492. {
  493. Punkt bildchirmGröße = BildschirmGröße();
  494. if( ret )
  495. {
  496. name->removeStyle( TextFeld::Style::Sichtbar );
  497. passwort->removeStyle( TextFeld::Style::Sichtbar );
  498. passwort2->removeStyle( TextFeld::Style::Sichtbar );
  499. geheimnis->removeStyle( TextFeld::Style::Sichtbar );
  500. eMail->removeStyle( TextFeld::Style::Sichtbar );
  501. geburtsdatum->removeStyle( TextFeld::Style::Sichtbar );
  502. gbdTag->removeStyle( TextFeld::Style::Sichtbar );
  503. gbdMonat->removeStyle( TextFeld::Style::Sichtbar );
  504. gbdJahr->removeStyle( TextFeld::Style::Sichtbar );
  505. fenster->setSize( 250, 200 );
  506. fenster->setPosition( bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100 );
  507. fenster->setTitel( "Account aktivieren" );
  508. weiter->setPosition( 20, 145 );
  509. weiter->setText( "Abbrechen" );
  510. text->setText( "Dir wurde eine E-Mail mit einem\naktivierungsode zugeschickt,\nden du in den nächsten 12 Stunden\nhier eingeben musst." );
  511. text->addStyle( TextFeld::Style::Sichtbar );
  512. schlüssel->addStyle( TextFeld::Style::Sichtbar );
  513. später->addStyle( Knopf::Style::Sichtbar );
  514. neuSenden->addStyle( Knopf::Style::Sichtbar );
  515. fertig->addStyle( Knopf::Style::Sichtbar );
  516. }
  517. else if( registerKlient->getLetzterFehler() )
  518. zeigeNachricht( registerKlient->getLetzterFehler() );
  519. }
  520. void Registrierung::setFertigReturn( bool ret ) // setzt den Fertig Returnwert
  521. {
  522. if( ret )
  523. vorLogin->setLogin( 0 );
  524. else
  525. zeigeNachricht( "Falscher Schlüssel." );
  526. }
  527. // Reference Counting
  528. Registrierung *Registrierung::getThis()
  529. {
  530. ref++;
  531. return this;
  532. }
  533. Registrierung *Registrierung::release()
  534. {
  535. ref--;
  536. if( !ref )
  537. delete this;
  538. return 0;
  539. }
  540. // Ereignisse
  541. bool registrierungNameTE( void *p, void *obj, TastaturEreignis te )
  542. {
  543. if( !p )
  544. return 0;
  545. return ( (Registrierung*)p )->nameTE( obj, te );
  546. }
  547. bool registrierungPasswortTE( void *p, void *obj, TastaturEreignis te )
  548. {
  549. if( !p )
  550. return 0;
  551. return ( (Registrierung*)p )->passwortTE( obj, te );
  552. }
  553. bool registrierungPasswort2TE( void *p, void *obj, TastaturEreignis te )
  554. {
  555. if( !p )
  556. return 0;
  557. return ( (Registrierung*)p )->passwort2TE( obj, te );
  558. }
  559. bool registrierungGeheimnisTE( void *p, void *obj, TastaturEreignis te )
  560. {
  561. if( !p )
  562. return 0;
  563. return ( (Registrierung*)p )->geheimnisTE( obj, te );
  564. }
  565. bool registrierungEMailTE( void *p, void *obj, TastaturEreignis te )
  566. {
  567. if( !p )
  568. return 0;
  569. return ( (Registrierung*)p )->eMailTE( obj, te );
  570. }
  571. bool registrierungWeiterME( void *p, void *obj, MausEreignis me )
  572. {
  573. if( !p )
  574. return 0;
  575. return ( (Registrierung*)p )->weiterME( obj, me );
  576. }
  577. bool registrierungSchlüsselTE( void *p, void *obj, TastaturEreignis te )
  578. {
  579. if( !p )
  580. return 0;
  581. return ( (Registrierung*)p )->schlüsselTE( obj, te );
  582. }
  583. bool registrierungFertigME( void *p, void *obj, MausEreignis me )
  584. {
  585. if( !p )
  586. return 0;
  587. return ( (Registrierung*)p )->fertigME( obj, me );
  588. }
  589. bool registrierungSpäterME( void *p, void *obj, MausEreignis me )
  590. {
  591. if( !p )
  592. return 0;
  593. return ( (Registrierung*)p )->späterME( obj, me );
  594. }
  595. bool registrierungNeuSendenME( void *p, void *obj, MausEreignis me )
  596. {
  597. if( !p )
  598. return 0;
  599. return ( (Registrierung*)p )->neuSendenME( obj, me );
  600. }
  601. bool registrierungRegistrierungME( void *p, void *obj, MausEreignis me )
  602. {
  603. if( !p )
  604. return 0;
  605. return ( (Registrierung*)p )->registrierungME( obj, me );
  606. }