M2DVorschau.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #pragma once
  2. #include "Zeichnung.h"
  3. namespace Framework
  4. {
  5. class Model2D; //! Model2D.h
  6. class Model2DData; //! Model2D.h
  7. class Rahmen; //! Rahmen.h
  8. class AlphaFeld; //! AlphaFeld.h
  9. struct MausEreignis; //! MausEreignis.h
  10. //! Eine Zeichnung des 2D GUI Frameworkd, die ein 2D Modell anzeigt
  11. class M2DVorschau : public ZeichnungHintergrund
  12. {
  13. public:
  14. class Style : public ZeichnungHintergrund::Style
  15. {
  16. public:
  17. const static __int64 UsrScale = 0x001000; //! Wenn dieser Style gesetzt ist, kann der Benutzer das Model Skallieren, indem er scrollt
  18. const static __int64 UsrMove = 0x002000; //! Wenn dieser Style gesetzt ist, kann der Benutzer das Model per Drag and Drop verschieben
  19. const static __int64 UsrRot = 0x004000; //! Wenn dieser Style gesetzt idt, kann der Benutzer das Model mit der rechten Maustaste drehen
  20. };
  21. private:
  22. Model2D *mdl;
  23. Rahmen *ram;
  24. AlphaFeld *af;
  25. int bgF;
  26. int mx;
  27. int my;
  28. //! Verarbeitet Maus Nachrichten
  29. //! \param me Das Ereignis, was durch die Mauseingabe ausgelößt wurde
  30. DLLEXPORT void doMausEreignis( MausEreignis &me, bool userRet ) override;
  31. public:
  32. //! Konstruktor
  33. DLLEXPORT M2DVorschau();
  34. //! Destruktor
  35. DLLEXPORT virtual ~M2DVorschau();
  36. //! Setzt einen Zeiger auf das Model, das angezeigt werden soll
  37. //! \param mdl Das Model
  38. DLLEXPORT void setModel2DZ( Model2D *mdl );
  39. //! Setzt die Daten des Models, das angezeigt werden soll
  40. //! \param mdl Die Daten
  41. DLLEXPORT void setModel2D( Model2DData *mdl );
  42. //! Aktualisiert das Objekt. Wird vom Framework aufgerufen
  43. //! \param tickVal Die Zeit in sekunden, die seit dem lezten Aufruf dieser Funktion vergangen ist
  44. //! \return 1, wenn sich etwas verändert hat und das Bild neu gezeichnet werden muss. 0 sonst
  45. DLLEXPORT bool tick( double tv ) override;
  46. //! Zeichnet das Objekt nach zRObj, falls es sichtbar ist
  47. //! \param zRObj Das Bild, in welches gezeichnet werden soll
  48. DLLEXPORT void render( Bild &rb ) override;
  49. //! Gibt das angezeigte Model ohne erhöhten Reference Counter zurück
  50. DLLEXPORT Model2D *zModel() const;
  51. //! Gibt das angezeigte Model zurück
  52. DLLEXPORT Model2D *getModel() const;
  53. //! Erzeugt eine Komplette Kopie der Zeichnung, die ohne auswirkungen auf die Originale verändert werden kann
  54. DLLEXPORT Zeichnung *dublizieren() const override;
  55. };
  56. }