CCDraw: add signals into paintFbItems()

This commit is contained in:
2015-12-27 13:40:33 +01:00
parent 4875f81491
commit 6952d85ae9
3 changed files with 13 additions and 3 deletions

View File

@@ -26,7 +26,6 @@
#define __CC_BASE__
#include "cc_types.h"
#include "cc_signals.h"
#include "cc_draw.h"
/// Basic component class.
@@ -34,7 +33,7 @@
Basic attributes and member functions for component sub classes
*/
class CComponents : public CComponentsSignals, public CCDraw
class CComponents : public CCDraw
{
protected:

View File

@@ -465,6 +465,9 @@ void CCDraw::enablePaintCache(bool enable)
//paint framebuffer layers
void CCDraw::paintFbItems(bool do_save_bg)
{
//pick up signal if filled
OnBeforePaintLayers();
//first modify background handling
enableSaveBg(do_save_bg);
@@ -609,6 +612,8 @@ void CCDraw::paintFbItems(bool do_save_bg)
}
}
}
//pick up signal if filled
OnAfterPaintLayers();
}

View File

@@ -26,6 +26,7 @@
#define __CC_DRAW__
#include "cc_types.h"
#include "cc_signals.h"
#include <driver/colorgradient.h>
#include <driver/fade.h>
#include <gui/color.h>
@@ -35,7 +36,7 @@
Basic paint attributes and member functions for component classes
*/
class CCDraw : public COSDFader
class CCDraw : public COSDFader, public CComponentsSignals
{
protected:
///pixel buffer handling, returns pixel buffer depends of given parameters
@@ -294,6 +295,11 @@ class CCDraw : public COSDFader
///paint item, same like paint(CC_SAVE_SCREEN_NO) but without any argument
virtual void paint0(){paint(CC_SAVE_SCREEN_NO);}
///signal on before paint fb layers, called inside paintFbItems()
sigc::signal<void> OnBeforePaintLayers;
///signal on after paint fb layers, called inside paintFbItems()
sigc::signal<void> OnAfterPaintLayers;
/*!
Removes current item from screen and
restore last displayed background before item was painted and