12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #ifndef ToolTip_H
- #define ToolTip_H
- #include "Array.h"
- #include "Zeichnung.h"
- #include <functional>
- 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
- 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;
- };
- }
- #endif
|