123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #pragma once
- #include "Zeichnung.h"
- namespace Framework
- {
- class Model2D; //! Model2D.h
- class Model2DData; //! Model2D.h
- class Rahmen; //! Rahmen.h
- class AlphaFeld; //! AlphaFeld.h
- struct MausEreignis; //! MausEreignis.h
- //! Eine Zeichnung des 2D GUI Frameworkd, die ein 2D Modell anzeigt
- class M2DVorschau : public ZeichnungHintergrund
- {
- public:
- class Style : public ZeichnungHintergrund::Style
- {
- public:
- //! Wenn dieser Style gesetzt ist, kann der Benutzer
- //! das Model Skallieren, indem er scrollt
- static const __int64 UsrScale = 0x001000;
- //! Wenn dieser Style gesetzt ist, kann der Benutzer
- //! das Model per Drag and Drop verschieben
- static const __int64 UsrMove = 0x002000;
- //! Wenn dieser Style gesetzt idt, kann der Benutzer
- //! das Model mit der rechten Maustaste drehen
- static const __int64 UsrRot = 0x004000;
- };
- private:
- Model2D* mdl;
- Rahmen* ram;
- AlphaFeld* af;
- int bgF;
- int mx;
- int my;
- //! Verarbeitet Maus Nachrichten
- //! \param me Das Ereignis, was durch die Mauseingabe ausgelößt wurde
- DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override;
- public:
- //! Konstruktor
- DLLEXPORT M2DVorschau();
- //! Destruktor
- DLLEXPORT virtual ~M2DVorschau();
- //! Setzt einen Zeiger auf das Model, das angezeigt werden soll
- //! \param mdl Das Model
- DLLEXPORT void setModel2DZ(Model2D* mdl);
- //! Setzt die Daten des Models, das angezeigt werden soll
- //! \param mdl Die Daten
- DLLEXPORT void setModel2D(Model2DData* mdl);
- //! Aktualisiert das Objekt. Wird vom Framework aufgerufen
- //! \param tickVal Die Zeit in sekunden, die seit dem lezten Aufruf
- //! dieser Funktion vergangen ist \return 1, wenn sich etwas verändert
- //! hat und das Bild neu gezeichnet werden muss. 0 sonst
- DLLEXPORT bool tick(double tv) override;
- //! Zeichnet das Objekt nach zRObj, falls es sichtbar ist
- //! \param zRObj Das Bild, in welches gezeichnet werden soll
- DLLEXPORT void render(Bild& rb) override;
- //! Gibt das angezeigte Model ohne erhöhten Reference Counter zurück
- DLLEXPORT Model2D* zModel() const;
- //! Gibt das angezeigte Model zurück
- DLLEXPORT Model2D* getModel() const;
- //! Erzeugt eine Komplette Kopie der Zeichnung, die ohne auswirkungen
- //! auf die Originale verändert werden kann
- DLLEXPORT Zeichnung* dublizieren() const override;
- };
- } // namespace Framework
|