123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #ifndef NachrichtenListe_H
- #define NachrichtenListe_H
- #include <Klient.h>
- #include <Array.h>
- #include <Fenster.h>
- #include <Knopf.h>
- #include <GSLSoundV.h>
- #include <functional>
- #include <Fortschritt.h>
- #include "../Update/Update.h"
- #include "..\..\Aktionen\AktionsThread.h"
- using namespace Framework;
- using namespace Network;
- class NLNachricht
- {
- protected:
- TextFeld *titel;
- Knopf *close;
- LRahmen *rahmen;
- int höhe;
- int maxHöhe;
- bool ausgewählt;
- int animation;
- double tickVal;
- bool rend;
- int ref;
- NLNachricht( Schrift *zSchrift, Text *titel );
- virtual ~NLNachricht();
- public:
- virtual void entfernen();
- void setAusgewählt( bool ausgewählt );
- virtual void doMausEreignis( MausEreignis &me );
- virtual bool tick( double tickVal );
- virtual void render( int y, Bild &zRObj );
- // contant
- bool istAusgewählt() const;
- int getHeight() const;
- Text *zTitel() const;
- // Reference Counting
- NLNachricht *getThis();
- NLNachricht *release();
- };
- class SpielUpdateNachricht : public NLNachricht
- {
- private:
- TextFeld *text;
- Knopf *herunterladen;
- Knopf *abbrechen;
- std::function<void()> posAk;
- std::function<void()> negAk;
- FBalken *fortschritt;
- Update *update;
- public:
- SpielUpdateNachricht( Schrift *zSchrift, Text *titel, Text *nachricht, int dgID, std::function<void()> posAk = []() {}, std::function<void()> negAk = []() {} );
- ~SpielUpdateNachricht();
- // nicht constant
- void entfernen() override;
- void doMausEreignis( MausEreignis &me ) override;
- bool tick( double tickVal ) override;
- void render( int y, Bild &zRObj ) override;
- };
- class Nachricht : public NLNachricht
- {
- private:
- TextFeld *text;
- Knopf *positiv;
- Knopf *negativ;
- std::function<void()> posAk;
- std::function<void()> negAk;
- public:
- // Konstruktor
- Nachricht( Schrift *zSchrift, Text *titel, Text *nachricht, Text *positiv, Text *negativ, std::function<void()> posAk = []() {}, std::function<void()> negAk = []() {} );
- // Destruktor
- ~Nachricht();
- // nicht constant
- void entfernen() override;
- void doMausEreignis( MausEreignis &me ) override;
- bool tick( double tickVal ) override;
- void render( int y, Bild &zRObj ) override;
- };
- class NachrichtenListeObj : public Zeichnung
- {
- private:
- RCArray< NLNachricht > *members;
- VScrollBar *vsb;
- Schrift *schrift;
- Punkt bildschirmGröße;
- int anzahl;
- int ref;
- public:
- // Konstruktor
- NachrichtenListeObj( Schrift *zSchrift );
- // Destruktor
- ~NachrichtenListeObj();
- // nicht constant
- void addNachricht( NLNachricht *nachricht );
- void removeNachricht( NLNachricht *zNachricht );
- void removeAll();
- bool tick( double tickVal ) override;
- void doMausEreignis( MausEreignis &me ) override;
- void render( Bild &zRObj ) override;
- // contant
- // Reference Counting
- NachrichtenListeObj *getThis();
- NachrichtenListeObj *release();
- };
- class NachrichtenListe
- {
- private:
- Schrift *schrift;
- Fenster *fenster;
- Knopf *minMax;
- NachrichtenListeObj *nachrichtenListe;
- Punkt bildschirmGröße;
- TextFeld *überschrift;
- Bild *minimierenBild;
- Bild *maximierenBild;
- GSL::GSLSoundV *msgSound;
- GSL::GSLSoundV *errSound;
- double tickVal;
- int animation;
- bool rend;
- int ref;
- public:
- // Konstruktor
- NachrichtenListe( Schrift *zSchrift, Fenster *zNachLoginFenster );
- // Destruktor
- ~NachrichtenListe();
- // nicht constant
- void addNachricht( Text *titel, Text *nachricht, Text *positiv = 0, Text *negativ = 0, std::function<void()> posAk = []() {}, std::function<void()> negAk = []() {} );
- void addNachricht( NLNachricht *nachricht );
- void removeNachricht( NLNachricht *zNachricht );
- void removeAll();
- bool druckMinMax( MausEreignis &me );
- bool tick( double tickVal );
- // contant
- Schrift *zSchrift() const;
- // Reference Counting
- NachrichtenListe *getThis();
- NachrichtenListe *release();
- };
- // Nachrichten
- bool NachrichtenListeMinMaxME( void *p, void *obj, MausEreignis me );
- #endif
|