Name.cpp 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. #include "Name.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 NameVergessen Klasse aus Name.h
  8. // Konstruktor
  9. NameVergessen::NameVergessen(Fenster* zVorLoginFenster)
  10. : ReferenceCounter()
  11. {
  12. Punkt bildschirmmitte
  13. = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
  14. nameVergessen
  15. = initKnopf(10, 290, 130, 30, Knopf::Style::Sichtbar, "Name vergessen");
  16. nameVergessen->setMausEreignisParameter(this);
  17. nameVergessen->setMausEreignis(nameVergessenNameVergessenME);
  18. initToolTip(nameVergessen, "Accoutnt Name per E-MAil senden.");
  19. zVorLoginFenster->addMember(
  20. dynamic_cast<Zeichnung*>(nameVergessen->getThis()));
  21. fenster = initFenster(bildschirmmitte.x - 125,
  22. bildschirmmitte.y - 70,
  23. 250,
  24. 140,
  25. Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel
  26. | Fenster::Style::TitelBuffered,
  27. "Name vergessen");
  28. passwort
  29. = initTextFeld(20, 20, 208, 20, TextFeld::Style::TextFeld, "Passwort");
  30. passwort->setTastaturEreignisParameter(this);
  31. passwort->setTastaturEreignis(nameVergessenPasswortTE);
  32. initToolTip(passwort, "Accoutnt Passwort.");
  33. fenster->addMember(dynamic_cast<Zeichnung*>(passwort->getThis()));
  34. geheimnis
  35. = initTextFeld(20, 50, 208, 20, TextFeld::Style::TextFeld, "Geheimis");
  36. geheimnis->setTastaturEreignisParameter(this);
  37. geheimnis->setTastaturEreignis(nameVergessenGeheimnisTE);
  38. initToolTip(geheimnis, "Account Geheimnis.");
  39. fenster->addMember(dynamic_cast<Zeichnung*>(geheimnis->getThis()));
  40. weiter = initKnopf(74, 80, 100, 20, Knopf::Style::Sichtbar, "weiter");
  41. weiter->setMausEreignisParameter(this);
  42. weiter->setMausEreignis(nameVergessenWeiterME);
  43. nachricht = initTextFeld(0,
  44. 5,
  45. 255,
  46. 150,
  47. TextFeld::Style::HCenter | TextFeld::Style::Mehrzeilig,
  48. "");
  49. fenster->addMember(dynamic_cast<Zeichnung*>(nachricht->getThis()));
  50. fenster->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
  51. zVorLoginFenster->addMember(dynamic_cast<Zeichnung*>(fenster->getThis()));
  52. }
  53. // Destruktor
  54. NameVergessen::~NameVergessen()
  55. {
  56. if (nameVergessen) nameVergessen = (Knopf*)nameVergessen->release();
  57. if (fenster) fenster = (Fenster*)fenster->release();
  58. if (passwort) passwort = (TextFeld*)passwort->release();
  59. if (geheimnis) geheimnis = (TextFeld*)geheimnis->release();
  60. if (weiter) weiter = (Knopf*)weiter->release();
  61. if (nachricht) nachricht = (TextFeld*)nachricht->release();
  62. }
  63. // Privat
  64. void NameVergessen::zeigeNachricht(const char* txt)
  65. {
  66. Punkt bildschirmmitte
  67. = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
  68. passwort->removeStyle(TextFeld::Style::Sichtbar);
  69. geheimnis->removeStyle(TextFeld::Style::Sichtbar);
  70. fenster->setSize(250, 150);
  71. fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 75);
  72. weiter->setPosition(139, 100);
  73. weiter->setText("Ok");
  74. nachricht->setText(txt);
  75. if (nachricht->zText()->getLength() > 30)
  76. {
  77. int pos = -1;
  78. bool set = 0;
  79. int lastp = 0;
  80. for (int i = 20; i < nachricht->zText()->getLength();)
  81. {
  82. const char* tmp = &nachricht->zText()->getText()[i];
  83. while (*tmp != ' ' && i < nachricht->zText()->getLength())
  84. {
  85. tmp++;
  86. i++;
  87. if (i - 30 >= lastp)
  88. {
  89. if (set)
  90. {
  91. lastp = pos;
  92. set = 0;
  93. ((char*)nachricht->zText()->getText())[pos] = '\n';
  94. }
  95. else
  96. lastp += 5;
  97. }
  98. }
  99. if (i < nachricht->zText()->getLength())
  100. {
  101. pos = i;
  102. set = 1;
  103. tmp++;
  104. i++;
  105. }
  106. }
  107. }
  108. nachricht->addStyle(TextFeld::Style::Sichtbar);
  109. }
  110. // Knopfdruck
  111. void NameVergessen::druckFremdKnopf() // Ein anderer Knopf wurde gedrückt
  112. {
  113. fenster->removeStyle(Fenster::Style::Sichtbar);
  114. nameVergessen->setRahmenBreite(2);
  115. nameVergessen->setAlphaFeldFarbe(0x5500FF00);
  116. nameVergessen->setAlphaFeldStrength(-5);
  117. }
  118. bool NameVergessen::nameVergessenME(
  119. void* obj, MausEreignis me) // MausEreignis im Knopf nameVergessen
  120. {
  121. if (me.id == ME_RLinks)
  122. {
  123. vorLogin->setNameVergessen();
  124. nameVergessen->setRahmenBreite(3);
  125. nameVergessen->setAlphaFeldFarbe(0xFF000000);
  126. nameVergessen->setAlphaFeldStrength(20);
  127. Punkt bildschirmmitte
  128. = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
  129. fenster->setSize(255, 140);
  130. fenster->setPosition(bildschirmmitte.x - 125, bildschirmmitte.y - 70);
  131. fenster->addStyle(Fenster::Style::Sichtbar);
  132. nachricht->removeStyle(TextFeld::Style::Sichtbar);
  133. weiter->setText("weiter");
  134. weiter->setPosition(75, 80);
  135. passwort->addStyle(TextFeld::Style::Sichtbar);
  136. geheimnis->addStyle(TextFeld::Style::Sichtbar);
  137. passwort->addStyle(TextFeld::Style::Fokus);
  138. passwort->setAuswahl(0, passwort->zText()->getLength());
  139. }
  140. return 1;
  141. }
  142. bool NameVergessen::passwortTE(
  143. void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld passwort
  144. {
  145. if (te.id == TE_Press && te.virtualKey == T_Enter) return 0;
  146. if (te.id == TE_Press) passwort->setSchowChar('*');
  147. if (te.id == TE_Release
  148. && (te.virtualKey == T_Enter || te.virtualKey == T_Tab))
  149. {
  150. passwort->removeStyle(TextFeld::Style::Fokus);
  151. geheimnis->addStyle(TextFeld::Style::Fokus);
  152. geheimnis->setAuswahl(0, geheimnis->zText()->getLength());
  153. }
  154. if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste[0]))
  155. return 0;
  156. return 1;
  157. }
  158. bool NameVergessen::geheimnisTE(
  159. void* obj, TastaturEreignis te) // Tastaturereignis im Textfeld geheimnis
  160. {
  161. if (te.id == TE_Press && te.virtualKey == T_Enter) return 0;
  162. if (te.id == TE_Release && te.virtualKey == T_Enter)
  163. {
  164. passwort->removeStyle(TextFeld::Style::Fokus);
  165. MausEreignis me;
  166. me.id = ME_RLinks;
  167. weiterME(0, me);
  168. }
  169. if (passwort->zText()->getLength() >= 25 && istSchreibbar(te.taste[0]))
  170. return 0;
  171. return 1;
  172. }
  173. bool NameVergessen::weiterME(
  174. void* obj, MausEreignis me) // MausEreignis im Knopf weiter
  175. {
  176. if (me.id == ME_RLinks)
  177. {
  178. if (weiter->zText()->istGleich("weiter"))
  179. {
  180. if (passwort->zText()->getLength() == 0)
  181. zeigeNachricht("Bitte gebe dein Accountpasswort ein.");
  182. if (geheimnis->zText()->getLength() == 0)
  183. zeigeNachricht("Bitte gebe dein Accountgeheimnis ein.");
  184. if (weiter->zText()->istGleich("Ok")) return 1;
  185. new AktionsThread(12,
  186. passwort->zText()->getText(),
  187. geheimnis->zText()->getText(),
  188. 0,
  189. 0,
  190. 0);
  191. }
  192. else
  193. {
  194. Punkt bildschirmmitte
  195. = uiFactory.initParam.bildschirm->getBackBufferSize() / 2;
  196. fenster->setSize(255, 140);
  197. fenster->setPosition(
  198. bildschirmmitte.x - 125, bildschirmmitte.y - 70);
  199. fenster->addStyle(Fenster::Style::Sichtbar);
  200. nachricht->removeStyle(TextFeld::Style::Sichtbar);
  201. weiter->setText("weiter");
  202. weiter->setPosition(75, 80);
  203. passwort->addStyle(TextFeld::Style::Sichtbar);
  204. geheimnis->addStyle(TextFeld::Style::Sichtbar);
  205. passwort->addStyle(TextFeld::Style::Fokus);
  206. passwort->setAuswahl(0, passwort->zText()->getLength());
  207. }
  208. }
  209. return 1;
  210. }
  211. void NameVergessen::setResult(bool ret) // Setzt den Returnwert
  212. {
  213. if (ret)
  214. zeigeNachricht(
  215. "Dir wurde eine E-Mail mit deinem Accountnamen geschickt.");
  216. else if (lastError.getLength())
  217. zeigeNachricht(lastError);
  218. else
  219. zeigeNachricht("Es ist ein Unbekannter Fehler aufgetreten.");
  220. }
  221. // messages
  222. bool nameVergessenNameVergessenME(void* p, void* obj, MausEreignis me)
  223. {
  224. if (!p) return 0;
  225. return ((NameVergessen*)p)->nameVergessenME(obj, me);
  226. }
  227. bool nameVergessenPasswortTE(void* p, void* obj, TastaturEreignis te)
  228. {
  229. if (!p) return 0;
  230. return ((NameVergessen*)p)->passwortTE(obj, te);
  231. }
  232. bool nameVergessenGeheimnisTE(void* p, void* obj, TastaturEreignis te)
  233. {
  234. if (!p) return 0;
  235. return ((NameVergessen*)p)->geheimnisTE(obj, te);
  236. }
  237. bool nameVergessenWeiterME(void* p, void* obj, MausEreignis me)
  238. {
  239. if (!p) return 0;
  240. return ((NameVergessen*)p)->weiterME(obj, me);
  241. }