ChatLeiste.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. #ifndef ChatLeiste_H
  2. #define ChatLeiste_H
  3. #include <Klient.h>
  4. #include <Zeichnung.h>
  5. #include <TextFeld.h>
  6. #include <Fenster.h>
  7. #include <Knopf.h>
  8. #include <Scroll.h>
  9. #include <Tabelle.h>
  10. #include <GSLSoundV.h>
  11. using namespace Framework;
  12. using namespace Network;
  13. class Chat
  14. {
  15. protected:
  16. LRahmen *rahmen;
  17. TextFeld *verlauf;
  18. TextFeld *nachricht;
  19. TextFeld *name;
  20. Knopf *minimieren;
  21. Knopf *close;
  22. Punkt bildschirmGröße;
  23. GSL::GSLSoundV *msgSound;
  24. bool admin;
  25. double tickVal;
  26. bool sichtbar;
  27. int animation;
  28. int breite;
  29. int höhe;
  30. bool rend;
  31. int ref;
  32. public:
  33. // Konstruktor
  34. Chat( Schrift *zSchrift );
  35. // Destruktor
  36. ~Chat();
  37. // nicht constant
  38. void setSichtbar( bool sichtbar );
  39. void entfernen();
  40. void addNachricht( char *txt );
  41. void setAdmin();
  42. virtual void addSpieler( int accountId );
  43. virtual void removeSpieler( int accountId );
  44. virtual bool tick( double tickVal );
  45. virtual void doMausEreignis( MausEreignis &me );
  46. virtual void doTastaturEreignis( TastaturEreignis &te );
  47. virtual void render( int x, Bild &zRObj );
  48. // constant
  49. TextFeld *getName() const;
  50. TextFeld *zName() const;
  51. virtual int getAccountId() const;
  52. virtual int getChatroomId() const;
  53. int getBreite() const;
  54. bool istSichtbar() const;
  55. // Reference Counting
  56. virtual void *getThis();
  57. virtual void *release();
  58. };
  59. class ChatFenster : public Chat
  60. {
  61. private:
  62. int accountId;
  63. public:
  64. // Konstruktor
  65. ChatFenster( Schrift *zSchrift, int accountId );
  66. // Destruktor
  67. ~ChatFenster();
  68. // nicht constant
  69. bool tick( double tickVal ) override;
  70. void doMausEreignis( MausEreignis &me ) override;
  71. void doTastaturEreignis( TastaturEreignis &te ) override;
  72. void render( int x, Bild &zRObj ) override;
  73. // constant
  74. int getAccountId() const override;
  75. // Reference Counting
  76. void *getThis() override;
  77. void *release() override;
  78. };
  79. class ChatroomFenster : public Chat
  80. {
  81. private:
  82. int chatroomId;
  83. ObjTabelle *spieler;
  84. Schrift *schrift;
  85. Array< int > *neueSpieler;
  86. int neueSpielerAnzahl;
  87. Array< int > *alteSpieler;
  88. int alteSpielerAnzahl;
  89. TextFeld *spielerName;
  90. Knopf *einladen;
  91. public:
  92. // Konstruktor
  93. ChatroomFenster( Schrift *zSchrift, int chatroomId );
  94. // Destruktor
  95. ~ChatroomFenster();
  96. // nicht constant
  97. void addSpieler( int accountId ) override;
  98. void removeSpieler( int accountId ) override;
  99. bool tick( double tickVal ) override;
  100. void doMausEreignis( MausEreignis &me ) override;
  101. void doTastaturEreignis( TastaturEreignis &te ) override;
  102. void render( int x, Bild &zRObj ) override;
  103. bool druckFreund( void *obj, MausEreignis &me );
  104. bool druckEntfernen( void *obj, MausEreignis &me );
  105. // constant
  106. virtual int getChatroomId() const;
  107. // Reference Counting
  108. virtual void *getThis();
  109. virtual void *release();
  110. };
  111. class ChatLeisteObj : public Zeichnung
  112. {
  113. private:
  114. RCArray< Chat > *chats;
  115. HScrollBar *hsb;
  116. Schrift *schrift;
  117. Punkt bildschirmGröße;
  118. int anzahl;
  119. int ref;
  120. int nowME;
  121. public:
  122. // Konstruktor
  123. ChatLeisteObj( Schrift *zSchrift );
  124. // Destruktor
  125. ~ChatLeisteObj();
  126. // nicht constant
  127. void chatNachricht( int vonAccount, char *txt );
  128. void chatroomNachricht( int chatroomId, char *txt );
  129. void addChat( int accountId, int chatroomId );
  130. void removeChat( int accountId, int chatroomId );
  131. void removeChat( Chat *zChat );
  132. void removeAll();
  133. void addSpieler( int chatroomId, int accountId );
  134. void removeSpieler( int chatroomId, int accountId );
  135. void setChatroomAdmin( int chatroomId );
  136. bool tick( double tickVal ) override;
  137. void doTastaturEreignis( TastaturEreignis &te ) override;
  138. void doMausEreignis( MausEreignis &me ) override;
  139. void render( Bild &zRObj ) override;
  140. // constant
  141. // Reference Counting
  142. ChatLeisteObj *getThis();
  143. ChatLeisteObj *release();
  144. };
  145. class ChatLeiste
  146. {
  147. private:
  148. Fenster *fenster;
  149. Knopf *minMax;
  150. ChatLeisteObj *chatLeiste;
  151. Punkt bildschirmGröße;
  152. Bild *minimierenBild;
  153. Bild *maximierenBild;
  154. double tickVal;
  155. int animation;
  156. bool rend;
  157. int ref;
  158. public:
  159. // Konstruktor
  160. ChatLeiste( Schrift *zSchrift, Fenster *zNachLoginFenster );
  161. // Destruktor
  162. ~ChatLeiste();
  163. // nicht constant
  164. void chatNachricht( int vonAccount, char *txt );
  165. void chatroomNachricht( int chatroomId, int vonAccount, char *txt );
  166. void addChat( int accountId, int chatroomId );
  167. void removeChat( int accountId, int chatroomId );
  168. void removeChat( Chat *zChat );
  169. void removeAll();
  170. void addSpieler( int chatroomId, int accountId );
  171. void removeSpieler( int chatroomId, int accountId );
  172. void setChatroomAdmin( int chatroomId );
  173. bool tick( double tickVal );
  174. bool druckMinMax( MausEreignis &me );
  175. // constant
  176. // Reference Counting
  177. ChatLeiste *getThis();
  178. ChatLeiste *release();
  179. };
  180. // Nachrichten
  181. bool chatLeisteMinMaxME( void *p, void *obj, MausEreignis me );
  182. bool chatroomFensterFreundME( void *p, void *obj, MausEreignis me );
  183. bool chatroomFensterEntfernenME( void *p, void *obj, MausEreignis me );
  184. #endif