diff --git a/src/gui/components/cc_draw.cpp b/src/gui/components/cc_draw.cpp index a5c455bb8..54acff507 100644 --- a/src/gui/components/cc_draw.cpp +++ b/src/gui/components/cc_draw.cpp @@ -738,18 +738,21 @@ void CCDraw::paintTrigger() hide(); } +bool CCDraw::paintBlink(CComponentsTimer* Timer) +{ + if (Timer){ + Timer->OnTimer.connect(cc_draw_trigger_slot); + return Timer->isRun(); + } + return false; +} + bool CCDraw::paintBlink(const int& interval, bool is_nano) { - if (cc_draw_timer == NULL){ + if (cc_draw_timer == NULL) cc_draw_timer = new CComponentsTimer(interval, is_nano); - if (cc_draw_timer->OnTimer.empty()){ - cc_draw_timer->OnTimer.connect(cc_draw_trigger_slot); - } - } - if (cc_draw_timer) - return cc_draw_timer->isRun(); - return false; + return paintBlink(cc_draw_timer); } bool CCDraw::cancelBlink(bool keep_on_screen) diff --git a/src/gui/components/cc_draw.h b/src/gui/components/cc_draw.h index 463dc62e1..dd99986fa 100644 --- a/src/gui/components/cc_draw.h +++ b/src/gui/components/cc_draw.h @@ -312,6 +312,17 @@ class CCDraw : public COSDFader, public CComponentsSignals ///paint item, same like paint(CC_SAVE_SCREEN_YES) but without any argument virtual void paint1(){paint(CC_SAVE_SCREEN_YES);} + /**paint item with blink effect + * This should work with all cc item types. + * + * @return bool returns true if effect is successful started + * + * @param[in] CComponentsTimer* pointer to timer object, Note: This object must be created and distroy outside + * of this methode. + * @see overloaded version of paintBlink() + */ + virtual bool paintBlink(CComponentsTimer* Timer); + /**paint item with blink effect * This should work with all cc item types. *