123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #pragma once
- #include <Bild.h>
- #include <TastaturEreignis.h>
- #include "../../Netzwerk/EditorKlient.h"
- using namespace Framework;
- class MapObjekt
- {
- class Style
- {
- public:
- const static int Verschiebbar = 0x01;
- const static int Sichtbar = 0x02;
- const static int Selected = 0x04;
- };
- protected:
- int style;
- EditorKlient *klient;
- Punkt pos;
- Punkt size;
- int ref;
- // Wird aufgerufen, wenn das Objekt durch den Nutzer verschoben wird
- virtual void onMoved() = 0;
- // Wird aufgerufen, wenn der Nutzer das Optionsfenster des Objekts aufrufen will
- virtual void onOpenOptionWindow() = 0;
- public:
- // Konstruktor
- // klient: Der Klient zum Editor Server
- MapObjekt( EditorKlient *klient );
- // Destructor
- ~MapObjekt();
- // Verarbeitet ein Maus Ereignis
- // me: Das Maus Ereignis
- virtual void doMausEreignis( MausEreignis me );
- // Verarbeitet ein Tastatur Ereignis
- // te: Das Tastaturereignis
- virtual void doTastaturEreignis( TastaturEreignis te );
- // Verarbeitet die vergangene Zeit
- // tv: Die vergangene Zeit in Sekunden seit dem letzten Aufruf der Funktion
- // return: 1, falls das objekt neu gezeichnet werden muss. 0 sonnst
- virtual bool tick( double tv );
- // Zeichnet das Objekt nach zRObj
- // zRObj: Das Bild in das gezeichnet werden soll
- virtual void render( Bild *zRObj );
- // Erhöht den reference Counter um 1
- // return this
- virtual MapObjekt *getThis();
- // Verringert den reference Counter um 1 und löscht das Objekt wenn er bei 0 ankommt
- // return 0
- virtual MapObjekt *release();
- };
- class MapObjektBitmap : public MapObjekt
- {
- protected:
- Bild *bmp;
- public:
- // Konstruktor
- // klient: Der Klient zum Editor Server
- MapObjektBitmap( EditorKlient *klient );
- // Destructor
- ~MapObjektBitmap();
- // Zeichnet das Objekt nach zRObj
- // zRObj: Das Bild in das gezeichnet werden soll
- void render( Bild *zRObj ) override;
- // Erhöht den reference Counter um 1
- // return this
- MapObjekt *getThis() override;
- // Verringert den reference Counter um 1 und löscht das Objekt wenn er bei 0 ankommt
- // return 0
- MapObjekt *release() override;
- };
- class MapObjekt2D : public MapObjekt
- {
- protected:
- Model2D *m2;
- public:
- // Konstruktor
- // klient: Der Klient zum Editor Server
- MapObjekt2D( EditorKlient *klient );
- // Destructor
- ~MapObjekt2D();
- // Zeichnet das Objekt nach zRObj
- // zRObj: Das Bild in das gezeichnet werden soll
- void render( Bild *zRObj ) override;
- // Erhöht den reference Counter um 1
- // return this
- MapObjekt *getThis() override;
- // Verringert den reference Counter um 1 und löscht das Objekt wenn er bei 0 ankommt
- // return 0
- MapObjekt *release() override;
- };
|