|
@@ -22,7 +22,9 @@ ToolTip::ToolTip( Bildschirm *zScreen )
|
|
|
alpha( 0 ),
|
|
|
sichtbar( 0 ),
|
|
|
zeichnen( 0 ),
|
|
|
- bildschirm( zScreen )
|
|
|
+ bildschirm( zScreen ),
|
|
|
+ onShow( 0 ),
|
|
|
+ onHide( 0 )
|
|
|
{
|
|
|
members = new RCArray< Zeichnung >();
|
|
|
bildschirm->addToolTip( (ToolTip*)this->getThis() );
|
|
@@ -41,6 +43,20 @@ void ToolTip::addMember( Zeichnung *m )
|
|
|
members->add( m );
|
|
|
}
|
|
|
|
|
|
+// setzt eine Funktion, die aufgerufen wird, sobald der Tooltip angezeigt wird
|
|
|
+// onShow: Die Funktion
|
|
|
+void ToolTip::setShowEvent( std::function< void( ToolTip * ) > onShow )
|
|
|
+{
|
|
|
+ this->onShow = onShow;
|
|
|
+}
|
|
|
+
|
|
|
+// setzt eine Funktion, die aufgerufen wird, sobald der Tooltip nicht mehr angezeigt wird
|
|
|
+// onShow: Die Funktion
|
|
|
+void ToolTip::setHideEvent( std::function< void( ToolTip * ) > onHide )
|
|
|
+{
|
|
|
+ this->onHide = onHide;
|
|
|
+}
|
|
|
+
|
|
|
void ToolTip::setWarten( double warten )
|
|
|
{
|
|
|
this->warten = warten;
|
|
@@ -57,7 +73,11 @@ void ToolTip::setMausIn( bool mausIn )
|
|
|
rend = 1;
|
|
|
this->mausIn = mausIn;
|
|
|
if( !mausIn && !mausIn2 )
|
|
|
+ {
|
|
|
+ if( sichtbar && onHide )
|
|
|
+ onHide( this );
|
|
|
sichtbar = 0;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void ToolTip::wartenReset()
|
|
@@ -101,6 +121,8 @@ bool ToolTip::tick( double tickVal )
|
|
|
wartenCount += tickVal;
|
|
|
if( wartenCount >= warten )
|
|
|
{
|
|
|
+ if( onShow )
|
|
|
+ onShow( this );
|
|
|
sichtbar = 1;
|
|
|
wartenCount = 0;
|
|
|
alpha = 0xFF;
|
|
@@ -136,7 +158,11 @@ void ToolTip::doMausEreignis( MausEreignis &me )
|
|
|
pos.x = me.mx, pos.y = me.my + 15;
|
|
|
mausIn2 = me.mx >= pos.x && me.my >= pos.y && me.mx <= pos.x + getBreite() && me.my <= pos.y + getHeight();
|
|
|
if( !mausIn && !mausIn2 )
|
|
|
+ {
|
|
|
+ if( onHide && sichtbar )
|
|
|
+ onHide( this );
|
|
|
sichtbar = 0;
|
|
|
+ }
|
|
|
me.mx -= pos.x;
|
|
|
me.my -= pos.y;
|
|
|
for( auto z = members->getIterator(); z; z++ )
|