Unregistrierung.cpp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. #include "..\..\Global\Variablen.h"
  2. #include "..\..\Global\Initialisierung.h"
  3. #include "Unregistrierung.h"
  4. #include <Text.h>
  5. #include <Punkt.h>
  6. #include <InitDatei.h>
  7. // Inhalt der Unregistrierung Klasse aus Unregistrierung.h
  8. // Konstruktor
  9. Unregistrierung::Unregistrierung(Fenster* zVorLoginFenster)
  10. : ReferenceCounter()
  11. {
  12. Punkt bildschirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
  13. unregistrierung = initKnopf(10, 130, 130, 30, Knopf::Style::Sichtbar, "Account remove");
  14. unregistrierung->setMausEreignisParameter(this);
  15. unregistrierung->setMausEreignis(unregistrierungUnregistrierungME);
  16. initToolTip(unregistrierung, "Account für alle Zeiten entfernen.");
  17. zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(unregistrierung->getThis()));
  18. fenster = initFenster(bildschirmGröße.x / 2 - 125, bildschirmGröße.y / 2 - 85, 250, 170, Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered, "Account remove");
  19. name = initTextFeld(24, 20, 200, 20, TextFeld::Style::TextFeld, "Account Name");
  20. name->setTastaturEreignisParameter(this);
  21. name->setTastaturEreignis(unregistrierungNameTE);
  22. initToolTip(name, "Account Name eingeben.");
  23. fenster->addMember(dynamic_cast<Zeichnung*>(name->getThis()));
  24. passwort = initTextFeld(24, 50, 200, 20, TextFeld::Style::TextFeld, "Account Passwort");
  25. passwort->setTastaturEreignisParameter(this);
  26. passwort->setTastaturEreignis(unregistrierungPasswortTE);
  27. initToolTip(passwort, "Account Passwort eingeben.");
  28. fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
  29. geheimnis = initTextFeld(24, 80, 200, 20, TextFeld::Style::TextFeld, "Account Geheimnis");
  30. geheimnis->setTastaturEreignisParameter(this);
  31. geheimnis->setTastaturEreignis(unregistrierungGeheimnisTE);
  32. initToolTip(geheimnis, "Account Geheimnis eingeben.");
  33. fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
  34. weiter = initKnopf(74, 110, 100, 20, Knopf::Style::Sichtbar, "Weiter");
  35. weiter->setMausEreignisParameter(this);
  36. weiter->setMausEreignis(unregistrierungWeiterME);
  37. fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
  38. text = initTextFeld(0, 5, 250, 170, TextFeld::Style::Mehrzeilig | TextFeld::Style::HCenter, "");
  39. fenster->addMember(dynamic_cast<Zeichnung*>(text->getThis()));
  40. zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
  41. }
  42. // Destruktor
  43. Unregistrierung::~Unregistrierung()
  44. {
  45. if (fenster)
  46. fenster = (Fenster*)fenster->release();
  47. if (name)
  48. name = (TextFeld*)name->release();
  49. if (passwort)
  50. passwort = (TextFeld*)passwort->release();
  51. if (geheimnis)
  52. geheimnis = (TextFeld*)geheimnis->release();
  53. if (weiter)
  54. weiter = (Knopf*)weiter->release();
  55. if (text)
  56. text = (TextFeld*)text->release();
  57. if (unregistrierung)
  58. unregistrierung = (Knopf*)unregistrierung->release();
  59. }
  60. // Privat
  61. void Unregistrierung::zeigeNachricht(const char* txt)
  62. {
  63. Punkt bildschirmmitte = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
  64. name->removeStyle(TextFeld::Style::Sichtbar);
  65. passwort->removeStyle(TextFeld::Style::Sichtbar);
  66. geheimnis->removeStyle(TextFeld::Style::Sichtbar);
  67. fenster->setSize(250, 150);
  68. fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
  69. weiter->setPosition(139, 100);
  70. weiter->setText("Ok");
  71. text->setText(txt);
  72. if (text->zText()->getLength() > 30)
  73. {
  74. int pos = -1;
  75. bool set = 0;
  76. int lastp = 0;
  77. for (int i = 20; i < text->zText()->getLength(); )
  78. {
  79. const char* tmp = &text->zText()->getText()[i];
  80. while (*tmp != ' ' && i < text->zText()->getLength())
  81. {
  82. tmp++;
  83. i++;
  84. if (i - 30 >= lastp)
  85. {
  86. if (set)
  87. {
  88. lastp = pos;
  89. set = 0;
  90. ((char*)text->zText()->getText())[pos] = '\n';
  91. }
  92. else
  93. lastp += 5;
  94. }
  95. }
  96. if (i < text->zText()->getLength())
  97. {
  98. pos = i;
  99. set = 1;
  100. tmp++;
  101. i++;
  102. }
  103. }
  104. }
  105. text->addStyle(TextFeld::Style::Sichtbar);
  106. }
  107. // Knopfdruck
  108. void Unregistrierung::druckFremdKnopf() // Ein anderer Knopfwurde gedrückt
  109. {
  110. fenster->removeStyle(Fenster::Style::Sichtbar);
  111. unregistrierung->setRahmenBreite(2);
  112. unregistrierung->setAlphaFeldFarbe(0x5500FF00);
  113. unregistrierung->setAlphaFeldStrength(-5);
  114. }
  115. bool Unregistrierung::nameTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld name
  116. {
  117. if (te.id == TE_Press && te.taste == T_Enter)
  118. return 0;
  119. if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
  120. {
  121. name->removeStyle(TextFeld::Style::Fokus);
  122. passwort->addStyle(TextFeld::Style::Fokus);
  123. passwort->setAuswahl(0, passwort->zText()->getLength());
  124. }
  125. if (name->zText()->getLength() >= 25 && istSchreibbar(te.taste))
  126. return 0;
  127. return 1;
  128. }
  129. bool Unregistrierung::passwortTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
  130. {
  131. if (te.id == TE_Press && te.taste == T_Enter)
  132. return 0;
  133. if (te.id == TE_Press)
  134. passwort->setSchowChar('*');
  135. if (te.id == TE_Release && (te.taste == T_Enter || te.taste == T_Tab))
  136. {
  137. passwort->removeStyle(TextFeld::Style::Fokus);
  138. geheimnis->addStyle(TextFeld::Style::Fokus);
  139. geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
  140. }
  141. if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste))
  142. return 0;
  143. return 1;
  144. }
  145. bool Unregistrierung::geheimnisTE(void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
  146. {
  147. if (te.id == TE_Press && te.taste == T_Enter)
  148. return 0;
  149. if (te.id == TE_Release && te.taste == T_Enter)
  150. {
  151. geheimnis->removeStyle(TextFeld::Style::Fokus);
  152. MausEreignis me;
  153. me.id = ME_RLinks;
  154. weiterME(0, me);
  155. }
  156. int selCount = 0;
  157. for (int i = 0; i < geheimnis->zText()->getLength(); i++)
  158. selCount += (int)geheimnis->isCharSelected(i);
  159. if (geheimnis->zText()->getLength() - selCount >= 50 && istSchreibbar(te.taste))
  160. return 0;
  161. return 1;
  162. }
  163. bool Unregistrierung::weiterME(void* obj, MausEreignis me) // MausEreignis im Knopf weiter
  164. {
  165. if (me.id == ME_RLinks)
  166. {
  167. Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
  168. if (weiter->zText()->istGleich("Ok"))
  169. {
  170. text->removeStyle(TextFeld::Style::Sichtbar);
  171. weiter->setPosition(74, 110);
  172. weiter->setText("Weiter");
  173. fenster->setSize(250, 170);
  174. fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85);
  175. fenster->setTitel("Account remove");
  176. name->addStyle(TextFeld::Style::Sichtbar);
  177. passwort->addStyle(TextFeld::Style::Sichtbar);
  178. geheimnis->addStyle(TextFeld::Style::Sichtbar);
  179. name->addStyle(TextFeld::Style::Fokus);
  180. name->setAuswahl(0, name->zText()->getLength());
  181. }
  182. else
  183. {
  184. if (weiter->zText()->istGleich("Ok"))
  185. {
  186. if (fenster->zTitel()->istGleich("Account remove"))
  187. {
  188. text->removeStyle(TextFeld::Style::Sichtbar);
  189. fenster->setSize(250, 170);
  190. fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85);
  191. weiter->setPosition(74, 110);
  192. weiter->setText("Weiter");
  193. name->addStyle(TextFeld::Style::Sichtbar);
  194. passwort->addStyle(TextFeld::Style::Sichtbar);
  195. geheimnis->addStyle(TextFeld::Style::Sichtbar);
  196. name->addStyle(TextFeld::Style::Fokus);
  197. name->setAuswahl(0, name->zText()->getLength());
  198. }
  199. else
  200. {
  201. fenster->setSize(250, 200);
  202. fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100);
  203. weiter->setPosition(20, 115);
  204. weiter->setText("Ok");
  205. text->setText("Dir wurde eine E-Mail mit einem\nLink zur Bestätigung zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst.");
  206. }
  207. }
  208. else
  209. {
  210. if (name->zText()->getLength() == 0 ||
  211. passwort->zText()->getLength() == 0 ||
  212. geheimnis->zText()->getLength() == 0)
  213. {
  214. if (name->zText()->getLength() == 0)
  215. zeigeNachricht("Bitte gebe deinen Accountnamen\nein.");
  216. else if (passwort->zText()->getLength() == 0)
  217. zeigeNachricht("Bitte gebe dein Accountpasswort\nein.");
  218. else if (geheimnis->zText()->getLength() == 0)
  219. zeigeNachricht("Bitte gebe dein Accountgeheimnis\nein.");
  220. return 1;
  221. }
  222. new AktionsThread(17, name->zText()->getText(), passwort->zText()->getText(), geheimnis->zText()->getText(), 0, 0);
  223. }
  224. }
  225. }
  226. return 1;
  227. }
  228. bool Unregistrierung::unregistrierungME(void* obj, MausEreignis me) // MausEreignis im Knopf unregistrierung
  229. {
  230. if (me.id == ME_RLinks)
  231. {
  232. vorLogin->setUnregistrierung();
  233. fenster->addStyle(Fenster::Style::Sichtbar);
  234. unregistrierung->setRahmenBreite(3);
  235. unregistrierung->setAlphaFeldFarbe(0xFF000000);
  236. unregistrierung->setAlphaFeldStrength(20);
  237. text->removeStyle(TextFeld::Style::Sichtbar);
  238. weiter->setPosition(74, 110);
  239. weiter->setText("Weiter");
  240. fenster->setTitel("Account remove");
  241. fenster->setSize(250, 170);
  242. Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
  243. fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 85);
  244. name->addStyle(TextFeld::Style::Sichtbar);
  245. passwort->addStyle(TextFeld::Style::Sichtbar);
  246. geheimnis->addStyle(TextFeld::Style::Sichtbar);
  247. name->addStyle(TextFeld::Style::Fokus);
  248. name->setAuswahl(0, name->zText()->getLength());
  249. }
  250. return 1;
  251. }
  252. void Unregistrierung::setWeiterReturn(bool ret) // setzt den Weiter Returnwert
  253. {
  254. Punkt bildchirmGröße = uiFactory.initParam.bildschirm->getBackBufferSize();
  255. if (ret)
  256. {
  257. name->removeStyle(TextFeld::Style::Sichtbar);
  258. passwort->removeStyle(TextFeld::Style::Sichtbar);
  259. geheimnis->removeStyle(TextFeld::Style::Sichtbar);
  260. fenster->setTitel("Account deaktiveren");
  261. fenster->setSize(250, 200);
  262. fenster->setPosition(bildchirmGröße.x / 2 - 125, bildchirmGröße.y / 2 - 100);
  263. weiter->setPosition(20, 115);
  264. weiter->setText("Ok");
  265. text->setText("Dir wurde eine E-Mail mit einem\nLink zur Bestätigung zugeschickt,\nden du in den nächsten 12 Stunden\nbenutzen musst.");
  266. text->addStyle(TextFeld::Style::Sichtbar);
  267. }
  268. else if (lastError.getLength())
  269. zeigeNachricht(lastError);
  270. }
  271. void Unregistrierung::setFertigReturn(bool ret) // setzt den Fertig Returnwert
  272. {
  273. if (ret)
  274. vorLogin->setLogin(0);
  275. else
  276. zeigeNachricht(lastError);
  277. }
  278. // Ereignisse
  279. bool unregistrierungNameTE(void* p, void* obj, TastaturEreignis te)
  280. {
  281. if (!p)
  282. return 0;
  283. return ((Unregistrierung*)p)->nameTE(obj, te);
  284. }
  285. bool unregistrierungPasswortTE(void* p, void* obj, TastaturEreignis te)
  286. {
  287. if (!p)
  288. return 0;
  289. return ((Unregistrierung*)p)->passwortTE(obj, te);
  290. }
  291. bool unregistrierungGeheimnisTE(void* p, void* obj, TastaturEreignis te)
  292. {
  293. if (!p)
  294. return 0;
  295. return ((Unregistrierung*)p)->geheimnisTE(obj, te);
  296. }
  297. bool unregistrierungWeiterME(void* p, void* obj, MausEreignis me)
  298. {
  299. if (!p)
  300. return 0;
  301. return ((Unregistrierung*)p)->weiterME(obj, me);
  302. }
  303. bool unregistrierungUnregistrierungME(void* p, void* obj, MausEreignis me)
  304. {
  305. if (!p)
  306. return 0;
  307. return ((Unregistrierung*)p)->unregistrierungME(obj, me);
  308. }