Forms/header/clock: implement slot into OnBeforeRePaint

This commit is contained in:
2017-02-02 11:00:47 +01:00
parent be8588a4a5
commit 1c217b404f
5 changed files with 17 additions and 12 deletions

View File

@@ -344,6 +344,9 @@ void CComponentsForm::paintForm(bool do_save_bg)
void CComponentsForm::paint(bool do_save_bg) void CComponentsForm::paint(bool do_save_bg)
{ {
if(is_painted)
OnBeforeRePaint();
OnBeforePaint();
paintForm(do_save_bg); paintForm(do_save_bg);
} }

View File

@@ -68,7 +68,9 @@ class CComponentsForm : public CComponentsItem
///force repaint of all possible text items ///force repaint of all possible text items
void forceItemsPaint(bool force); void forceItemsPaint(bool force);
///slot for background paint event, reserved for forceItemsPaint() ///slot for background paint event, reserved for forceItemsPaint()
sigc::slot0<void> sl_repaint; sigc::slot0<void> sl_items_repaint;
///slot for repaint event, reserved for actions before repaint if paint() already was done.
sigc::slot0<void> sl_form_repaint;
public: public:
CComponentsForm( const int x_pos = 0, const int y_pos = 0, const int w = 800, const int h = 600, CComponentsForm( const int x_pos = 0, const int y_pos = 0, const int w = 800, const int h = 600,

View File

@@ -101,7 +101,7 @@ CComponentsFrmClock::CComponentsFrmClock( const int& x_pos,
cl_sl_show = sigc::mem_fun0(*this, &CComponentsFrmClock::ShowTime); cl_sl_show = sigc::mem_fun0(*this, &CComponentsFrmClock::ShowTime);
//init slot to ensure paint segments after painted background //init slot to ensure paint segments after painted background
sl_repaint = sigc::bind<0>(sigc::mem_fun1(*this, &CComponentsFrmClock::forceItemsPaint), true); sl_items_repaint = sigc::bind(sigc::mem_fun(*this, &CComponentsFrmClock::forceItemsPaint), true);
//run clock already if required //run clock already if required
if (activ) if (activ)
@@ -304,7 +304,7 @@ void CComponentsFrmClock::initCCLockItems()
if(!OnAfterPaintBg.empty()) if(!OnAfterPaintBg.empty())
OnAfterPaintBg.clear(); OnAfterPaintBg.clear();
//init slot to handle repaint of segments if background was repainted //init slot to handle repaint of segments if background was repainted
OnAfterPaintBg.connect(sl_repaint); OnAfterPaintBg.connect(sl_items_repaint);
} }

View File

@@ -115,7 +115,7 @@ void CComponentsExtTextForm::initVarExtTextForm(const int& x_pos, const int& y_p
ccx_label_align = ccx_text_align = CTextBox::NO_AUTO_LINEBREAK; ccx_label_align = ccx_text_align = CTextBox::NO_AUTO_LINEBREAK;
//init slot to ensure paint text items after painted background //init slot to ensure paint text items after painted background
sl_repaint = sigc::bind<0>(sigc::mem_fun1(*this, &CComponentsExtTextForm::forceItemsPaint), true); sl_items_repaint = sigc::bind(sigc::mem_fun(*this, &CComponentsExtTextForm::forceItemsPaint), true);
initParent(parent); initParent(parent);
@@ -226,7 +226,7 @@ void CComponentsExtTextForm::initCCTextItems()
if(!OnAfterPaintBg.empty()) if(!OnAfterPaintBg.empty())
OnAfterPaintBg.clear(); OnAfterPaintBg.clear();
//init slot to handle repaint of text if background was repainted //init slot to handle repaint of text if background was repainted
OnAfterPaintBg.connect(sl_repaint); OnAfterPaintBg.connect(sl_items_repaint);
} }
void CComponentsExtTextForm::setLabelWidthPercent(const uint8_t& percent_val) void CComponentsExtTextForm::setLabelWidthPercent(const uint8_t& percent_val)

View File

@@ -136,8 +136,13 @@ void CComponentsHeader::initVarHeader( const int& x_pos, const int& y_pos, const
cch_cl_sec_format = cch_cl_format; cch_cl_sec_format = cch_cl_format;
cch_cl_enable_run = false; cch_cl_enable_run = false;
//init slot to ensure paint segments after painted background //init slot to ensure paint items after painted background
sl_repaint = sigc::bind<0>(sigc::mem_fun1(*this, &CComponentsHeader::forceItemsPaint), true); sl_items_repaint = sigc::bind(sigc::mem_fun(*this, &CComponentsHeader::forceItemsPaint), true);
OnAfterPaintBg.connect(sl_items_repaint);
//init slot before re paint of header, paint() is already done
sl_form_repaint = sigc::bind(sigc::mem_fun(*this, &CComponentsHeader::kill), col_body, -1, CC_FBDATA_TYPES, false);
OnBeforeRePaint.connect(sl_form_repaint);
addContextButton(buttons); addContextButton(buttons);
initCCItems(); initCCItems();
@@ -523,11 +528,6 @@ void CComponentsHeader::initCaption()
*/ */
//height = max(height, cch_text_obj->getHeight()); //height = max(height, cch_text_obj->getHeight());
} }
if(!OnAfterPaintBg.empty())
OnAfterPaintBg.clear();
//init slot to handle repaint of text if background was repainted
OnAfterPaintBg.connect(sl_repaint);
} }
void CComponentsHeader::initCCItems() void CComponentsHeader::initCCItems()