123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- #ifndef ChatLeiste_H
- #define ChatLeiste_H
- #include <Klient.h>
- #include <Zeichnung.h>
- #include <TextFeld.h>
- #include <Fenster.h>
- #include <Knopf.h>
- #include <Scroll.h>
- #include <Tabelle.h>
- #include <GSLSoundV.h>
- using namespace Framework;
- using namespace Network;
- class Chat
- {
- protected:
- LRahmen *rahmen;
- TextFeld *verlauf;
- TextFeld *nachricht;
- TextFeld *name;
- Knopf *minimieren;
- Knopf *close;
- Punkt bildschirmGröße;
- GSL::GSLSoundV *msgSound;
- bool admin;
- double tickVal;
- bool sichtbar;
- int animation;
- int breite;
- int höhe;
- bool rend;
- int ref;
- public:
- // Konstruktor
- Chat( Schrift *zSchrift );
- // Destruktor
- ~Chat();
- // nicht constant
- void setSichtbar( bool sichtbar );
- void entfernen();
- void addNachricht( char *txt );
- void setAdmin();
- virtual void addSpieler( int accountId );
- virtual void removeSpieler( int accountId );
- virtual bool tick( double tickVal );
- virtual void doMausEreignis( MausEreignis &me );
- virtual void doTastaturEreignis( TastaturEreignis &te );
- virtual void render( int x, Bild &zRObj );
- // constant
- TextFeld *getName() const;
- TextFeld *zName() const;
- virtual int getAccountId() const;
- virtual int getChatroomId() const;
- int getBreite() const;
- bool istSichtbar() const;
- // Reference Counting
- virtual void *getThis();
- virtual void *release();
- };
- class ChatFenster : public Chat
- {
- private:
- int accountId;
- public:
- // Konstruktor
- ChatFenster( Schrift *zSchrift, int accountId );
- // Destruktor
- ~ChatFenster();
- // nicht constant
- bool tick( double tickVal ) override;
- void doMausEreignis( MausEreignis &me ) override;
- void doTastaturEreignis( TastaturEreignis &te ) override;
- void render( int x, Bild &zRObj ) override;
- // constant
- int getAccountId() const override;
- // Reference Counting
- void *getThis() override;
- void *release() override;
- };
- class ChatroomFenster : public Chat
- {
- private:
- int chatroomId;
- ObjTabelle *spieler;
- Schrift *schrift;
- Array< int > *neueSpieler;
- int neueSpielerAnzahl;
- Array< int > *alteSpieler;
- int alteSpielerAnzahl;
- TextFeld *spielerName;
- Knopf *einladen;
- public:
- // Konstruktor
- ChatroomFenster( Schrift *zSchrift, int chatroomId );
- // Destruktor
- ~ChatroomFenster();
- // nicht constant
- void addSpieler( int accountId ) override;
- void removeSpieler( int accountId ) override;
- bool tick( double tickVal ) override;
- void doMausEreignis( MausEreignis &me ) override;
- void doTastaturEreignis( TastaturEreignis &te ) override;
- void render( int x, Bild &zRObj ) override;
- bool druckFreund( void *obj, MausEreignis &me );
- bool druckEntfernen( void *obj, MausEreignis &me );
- // constant
- virtual int getChatroomId() const;
- // Reference Counting
- virtual void *getThis();
- virtual void *release();
- };
- class ChatLeisteObj : public Zeichnung
- {
- private:
- RCArray< Chat > *chats;
- HScrollBar *hsb;
- Schrift *schrift;
- Punkt bildschirmGröße;
- int anzahl;
- int ref;
- int nowME;
- public:
- // Konstruktor
- ChatLeisteObj( Schrift *zSchrift );
- // Destruktor
- ~ChatLeisteObj();
- // nicht constant
- void chatNachricht( int vonAccount, char *txt );
- void chatroomNachricht( int chatroomId, char *txt );
- void addChat( int accountId, int chatroomId );
- void removeChat( int accountId, int chatroomId );
- void removeChat( Chat *zChat );
- void removeAll();
- void addSpieler( int chatroomId, int accountId );
- void removeSpieler( int chatroomId, int accountId );
- void setChatroomAdmin( int chatroomId );
- bool tick( double tickVal ) override;
- void doTastaturEreignis( TastaturEreignis &te ) override;
- void doMausEreignis( MausEreignis &me ) override;
- void render( Bild &zRObj ) override;
- // constant
- // Reference Counting
- ChatLeisteObj *getThis();
- ChatLeisteObj *release();
- };
- class ChatLeiste
- {
- private:
- Fenster *fenster;
- Knopf *minMax;
- ChatLeisteObj *chatLeiste;
- Punkt bildschirmGröße;
- Bild *minimierenBild;
- Bild *maximierenBild;
- double tickVal;
- int animation;
- bool rend;
- int ref;
- public:
- // Konstruktor
- ChatLeiste( Schrift *zSchrift, Fenster *zNachLoginFenster );
- // Destruktor
- ~ChatLeiste();
- // nicht constant
- void chatNachricht( int vonAccount, char *txt );
- void chatroomNachricht( int chatroomId, int vonAccount, char *txt );
- void addChat( int accountId, int chatroomId );
- void removeChat( int accountId, int chatroomId );
- void removeChat( Chat *zChat );
- void removeAll();
- void addSpieler( int chatroomId, int accountId );
- void removeSpieler( int chatroomId, int accountId );
- void setChatroomAdmin( int chatroomId );
- bool tick( double tickVal );
- bool druckMinMax( MausEreignis &me );
- // constant
- // Reference Counting
- ChatLeiste *getThis();
- ChatLeiste *release();
- };
- // Nachrichten
- bool chatLeisteMinMaxME( void *p, void *obj, MausEreignis me );
- bool chatroomFensterFreundME( void *p, void *obj, MausEreignis me );
- bool chatroomFensterEntfernenME( void *p, void *obj, MausEreignis me );
- #endif
|