123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #ifndef ToolTip_H
- #define ToolTip_H
- #include <functional>
- #include "Array.h"
- #include "Zeichnung.h"
- namespace Framework
- {
- class Schrift; //! Schrift.h
- class Bild; //! Bild.h
- class AlphaFeld; //! AlphaFeld.h
- class Text; //! Text.h
- class Rahmen; //! Rahmen.h
- struct MausEreignis; //! MausEreignis.h
- class Bildschirm; //! Bildschirm.h
- #ifdef WIN32
- # pragma vtordisp(push, 2)
- #endif
- class ToolTip : public ZeichnungHintergrund
- {
- private:
- RCArray<Zeichnung>* members;
- Punkt size;
- double animationSpeed;
- double warten;
- double wartenCount;
- double tval;
- bool mausIn;
- unsigned char alpha;
- bool sichtbar;
- bool zeichnen;
- bool mausIn2;
- Bildschirm* bildschirm;
- std::function<void(ToolTip*)> onShow;
- std::function<void(ToolTip*)> onHide;
- //! 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 ToolTip(Bildschirm* zSceen);
- //! Destruktor
- DLLEXPORT ~ToolTip();
- //! Fügt eine Zeichnung zum Tooltip hinzu
- //! \param m die neue Zeichnung
- DLLEXPORT void addMember(Zeichnung* m);
- //! Entfernt eine Zeichnung vom Tooltip
- //! \param m die Zeichnung
- DLLEXPORT void removeMember(Zeichnung* zM);
- //! Entfernt eine Zeichnung vom Tooltip
- //! \param i der Index der Zeichnung
- DLLEXPORT void removeMember(int i);
- //! setzt eine Funktion, die aufgerufen wird, sobald der Tooltip
- //! angezeigt wird \param onShow Die Funktion
- DLLEXPORT void setShowEvent(std::function<void(ToolTip*)> onShow);
- //! setzt eine Funktion, die aufgerufen wird, sobald der Tooltip nicht
- //! mehr angezeigt wird \param onShow Die Funktion
- DLLEXPORT void setHideEvent(std::function<void(ToolTip*)> onHide);
- //! Setzt die anzahl an Seunden, de gewartet wird bis der Tipp erscheint
- //! \param warten Die Anzahl an Sekunden
- DLLEXPORT void setWarten(double warten);
- //! Legt fest, wie schnell der Tipp erscheint
- //! \param speed Anzahl der Pixel, die pro Sekunde eingeblendet werden.
- //! (Standart: 250)
- DLLEXPORT void setAnimationSpeed(double speed);
- //! Legt Fest, ob die Maus in dem Zeichnung ist, zu dem der Tip gehört
- //! \param mausIn 1, wenn die Maus in dem Zeichnung ist. 0 sonst
- DLLEXPORT void setMausIn(bool mausIn);
- //! Setzt den Counter zurück, der zählt, wann der Tipp eingeblendet
- //! wird.
- DLLEXPORT void wartenReset();
- //! Legt fest, das das Zeichnung, zu dem der Tip gehört gezeichnet
- //! wurde, so dass der Tip auch gezeichnet werden könnte
- DLLEXPORT void setZeichnen();
- //! Aktualisiert den Tip. 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 tickVal) override;
- //! Zeichnet den Tip nach zRObj, falls er sichtbar ist und das
- //! zugehörige Zeichnung ebenfalls gezeichnet wurde \param zRObj Das
- //! Bild, in welches gezeichnet werden soll
- DLLEXPORT void render(Bild& zRObj) override;
- //! Gibt einen Zeiger auf den Bildschirm ohne erhöhten Reference Counter
- //! zurück, so dem der Tooltip gehört.
- DLLEXPORT Bildschirm* zBildschirm() const;
- //! Gibt ein bestimmten member zurück (ohne erhöhten Reference Counter)
- //! \param i der Index des Members
- DLLEXPORT Zeichnung* zMember(int i) const;
- //! Gibt ein bestimmten member zurück
- //! \param i der Index des Members
- DLLEXPORT Zeichnung* getMember(int i) const;
- //! Gibt die Anzahl an Zeichnungen zurück, die zum Tooltip gehören
- DLLEXPORT int getMemberAnzahl() const;
- //! Erzeugt eine komplette kopie eines tooltips
- DLLEXPORT Zeichnung* dublizieren() const override;
- };
- #ifdef WIN32
- # pragma vtordisp(pop)
- #endif
- } // namespace Framework
- #endif
|