ToolTip.h 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #ifndef ToolTip_H
  2. #define ToolTip_H
  3. #include "Array.h"
  4. #include "Zeichnung.h"
  5. #include <functional>
  6. namespace Framework
  7. {
  8. class Schrift; // Schrift.h
  9. class Bild; // Bild.h
  10. class AlphaFeld; // AlphaFeld.h
  11. class Text; // Text.h
  12. class Rahmen; // Rahmen.h
  13. struct MausEreignis; // MausEreignis.h
  14. class Bildschirm; // Bildschirm.h
  15. class ToolTip : public ZeichnungHintergrund
  16. {
  17. private:
  18. RCArray< Zeichnung > *members;
  19. Punkt size;
  20. double animationSpeed;
  21. double warten;
  22. double wartenCount;
  23. double tval;
  24. bool mausIn;
  25. unsigned char alpha;
  26. bool sichtbar;
  27. bool zeichnen;
  28. bool mausIn2;
  29. Bildschirm *bildschirm;
  30. std::function< void( ToolTip * ) > onShow;
  31. std::function< void( ToolTip * ) > onHide;
  32. // Verarbeitet Maus Nachrichten
  33. // me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
  34. __declspec( dllexport ) void doMausEreignis( MausEreignis &me, bool userRet ) override;
  35. public:
  36. // Konstruktor
  37. __declspec( dllexport ) ToolTip( Bildschirm *zSceen );
  38. // Destruktor
  39. __declspec( dllexport ) ~ToolTip();
  40. // Fügt eine Zeichnung zum Tooltip hinzu
  41. // m: die neue Zeichnung
  42. __declspec( dllexport ) void addMember( Zeichnung *m );
  43. // Entfernt eine Zeichnung vom Tooltip
  44. // m: die Zeichnung
  45. __declspec( dllexport ) void removeMember( Zeichnung *zM );
  46. // Entfernt eine Zeichnung vom Tooltip
  47. // i: der Index der Zeichnung
  48. __declspec( dllexport ) void removeMember( int i );
  49. // setzt eine Funktion, die aufgerufen wird, sobald der Tooltip angezeigt wird
  50. // onShow: Die Funktion
  51. __declspec( dllexport ) void setShowEvent( std::function< void( ToolTip * ) > onShow );
  52. // setzt eine Funktion, die aufgerufen wird, sobald der Tooltip nicht mehr angezeigt wird
  53. // onShow: Die Funktion
  54. __declspec( dllexport ) void setHideEvent( std::function< void( ToolTip * ) > onHide );
  55. // Setzt die anzahl an Seunden, de gewartet wird bis der Tipp erscheint
  56. // warten: Die Anzahl an Sekunden
  57. __declspec( dllexport ) void setWarten( double warten );
  58. // Legt fest, wie schnell der Tipp erscheint
  59. // speed: Anzahl der Pixel, die pro Sekunde eingeblendet werden. (Standart: 250)
  60. __declspec( dllexport ) void setAnimationSpeed( double speed );
  61. // Legt Fest, ob die Maus in dem Zeichnung ist, zu dem der Tip gehört
  62. // mausIn: 1, wenn die Maus in dem Zeichnung ist. 0 sonst
  63. __declspec( dllexport ) void setMausIn( bool mausIn );
  64. // Setzt den Counter zurück, der zählt, wann der Tipp eingeblendet wird.
  65. __declspec( dllexport ) void wartenReset();
  66. // Legt fest, das das Zeichnung, zu dem der Tip gehört gezeichnet wurde, so dass der Tip auch gezeichnet werden könnte
  67. __declspec( dllexport ) void setZeichnen();
  68. // Aktualisiert den Tip. Wird vom Framework aufgerufen
  69. // tickVal: Die Zeit in sekunden, die seit dem lezten Aufruf dieser Funktion vergangen ist
  70. // return: 1, wenn sich etwas verändert hat und das Bild neu gezeichnet werden muss. 0 sonst
  71. __declspec( dllexport ) bool tick( double tickVal ) override;
  72. // Zeichnet den Tip nach zRObj, falls er sichtbar ist und das zugehörige Zeichnung ebenfalls gezeichnet wurde
  73. // zRObj: Das Bild, in welches gezeichnet werden soll
  74. __declspec( dllexport ) void render( Bild &zRObj ) override;
  75. // Gibt einen Zeiger auf den Bildschirm ohne erhöhten Reference Counter zurück, so dem der Tooltip gehört.
  76. __declspec( dllexport ) Bildschirm *zBildschirm() const;
  77. // Gibt ein bestimmten member zurück (ohne erhöhten Reference Counter)
  78. // i: der Index des Members
  79. __declspec( dllexport ) Zeichnung *zMember( int i ) const;
  80. // Gibt ein bestimmten member zurück
  81. // i: der Index des Members
  82. __declspec( dllexport ) Zeichnung *getMember( int i ) const;
  83. // Gibt die Anzahl an Zeichnungen zurück, die zum Tooltip gehören
  84. __declspec( dllexport ) int getMemberAnzahl() const;
  85. // Erzeugt eine komplette kopie eines tooltips
  86. __declspec( dllexport ) Zeichnung *dublizieren() const override;
  87. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  88. // return: 0.
  89. __declspec( dllexport ) Zeichnung *release() override;
  90. };
  91. }
  92. #endif