Unregistrierung.cpp 13 KB

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