Objekt.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #ifndef Objekt_H
  2. #define Objekt_H
  3. #define WIN32_LEAN_AND_MEAN
  4. #include <Windows.h>
  5. namespace Framework
  6. {
  7. struct VScrollData; // Scroll.h
  8. struct HScrollData; // Scroll.h
  9. class Punkt; // Punkt.h
  10. struct MausEreignis; // MausEreignis.h
  11. struct TastaturEreignis; // TastaturEreignis.h
  12. class Bild; // Bild.h
  13. class Objekt; // Aus dieser Datei
  14. class ObjektArray; // Aus dieser Datei
  15. class Objekt
  16. {
  17. protected:
  18. Punkt *pos;
  19. Punkt *gr;
  20. bool (*Mak)( void *, MausEreignis );
  21. bool (*Tak)( void *, TastaturEreignis );
  22. CRITICAL_SECTION Thread_Save;
  23. bool mausIn;
  24. public:
  25. // Konstruktor
  26. Objekt();
  27. // Destruktor
  28. ~Objekt();
  29. // nicht constant
  30. void lockObjekt();
  31. void unlockObjekt();
  32. void setMausEreignis( bool (*ak)( void *, MausEreignis ) ); // setzt das Maus Ereignis
  33. void setTastaturEreignis( bool (*ak)( void *, TastaturEreignis ) ); // setzt das TastaturEreignis
  34. virtual void doMausEreignis( MausEreignis *me ); // ruft Mak auf
  35. virtual void doTastaturEreignis( TastaturEreignis *te ); // ruft Tak auf
  36. virtual void tick( double tickval ); // tick
  37. void setPosition( Punkt *pos ); // setzt die position
  38. void setPositionZ( Punkt *pos ); // setzt einen Zeiger auf die Position
  39. void setGröße( Punkt *gr ); // setzt die Größe
  40. void setGrößeZ( Punkt *gr ); // setzt einen zeiger zur größe
  41. void setPosition( int x, int y ); // setzt die position
  42. void setGröße( int x, int y ); // setzt die Größe
  43. virtual void render( Bild *zrObj ); // zeichnet nach zrObj
  44. virtual void render( int xOff, int yOff, int bOff, int hOff, Bild *zrObj );
  45. // constant
  46. bool hatMausEreignis() const; // prüft, ob Mak gesetzt ist
  47. bool hatTastaturEreignis() const; // prüft, ob Tak gesetzt ist
  48. Punkt *getPosition() const; // gibt die Position zurück
  49. Punkt *getGröße() const; // gibt die Größe zurück
  50. int getBreite() const; // gibt die Breite zurück
  51. int getHöhe() const; // gibt die Höhe zurück
  52. int getX() const; // gibt X zurück
  53. int getY() const; // gibt Y zurück
  54. // reference Counting
  55. };
  56. class ObjektArray// Array von Objekten
  57. {
  58. private:
  59. Objekt *This;
  60. ObjektArray *next;
  61. int index;
  62. public:
  63. // Konstruktor
  64. ObjektArray();
  65. // Destruktor
  66. ~ObjektArray();
  67. // nicht const
  68. bool addObjekt( Objekt *obj ); // Fügt ein Objekt hinzu
  69. bool removeObjekt( Objekt *obj ); // Entfernt ein Objekt
  70. bool removeObjekt( int i ); // Entfernt das i-te Objekt
  71. void setNext0(); // Setzt das nächste Objekt zu 0
  72. void updateIndex( int i ); // aktualisiert die Index variable
  73. // constant
  74. ObjektArray *getNext() const; // gibt das nächste Objekt zurück
  75. Objekt *getObjekt( int i ) const; // gibt das i-te Objekt zurück
  76. Objekt *getObjekt() const; // gibt das Objekt zurück
  77. int getIndex() const; // Gibt den Index zurück
  78. void sendMausAll( MausEreignis *me ) const; // sendet me an alle volgenden Objekte
  79. void sendTastaturAll( TastaturEreignis *te ) const; // sendet te an alle volgenden Objekte
  80. void sendMaus( MausEreignis *me ) const; // sendet me an dieses Objekt
  81. void sendTastatur( TastaturEreignis *te ) const; // sendet te an dieses Objekt
  82. void sendMaus( int i, MausEreignis *me ) const; // sendet me an das i-te Objekt
  83. void sendTastatur( int i, TastaturEreignis *te ) const; // sendet te an das i-te Objekt
  84. void render( Bild *rObj ); // Zeichnet alle nach rObj
  85. void render( int xOff, int yOff, int bOff, int hOff, Bild *rObj ); // Zeichnet alle nach rObj
  86. void tick( double tickval ); // tick
  87. };
  88. }
  89. #endif