Merge branch 'master' into pu/mp

This commit is contained in:
Jacek Jendrzej
2017-05-02 22:35:18 +02:00
6 changed files with 21 additions and 9 deletions

View File

@@ -284,6 +284,8 @@ class CCDraw : public COSDFader, public CComponentsSignals
virtual void enableSaveBg(bool save_bg = true); virtual void enableSaveBg(bool save_bg = true);
///disable background buffering, does the same like enableSaveBg(false), NOTE: cleans existant pixbuffer content! ///disable background buffering, does the same like enableSaveBg(false), NOTE: cleans existant pixbuffer content!
virtual void disableSaveBg(){enableSaveBg(false);} virtual void disableSaveBg(){enableSaveBg(false);}
///returns background buffering mode. Mode is assigned with paint() or enableSaveBg()/disableSaveBg())
bool SaveBg(){return cc_save_bg;}
///allow/disalows paint of item and its contents, but initialize of other properties are not touched ///allow/disalows paint of item and its contents, but initialize of other properties are not touched
///this can be understood as a counterpart to isPainted(), but before paint and value of is_painted is modified temporarily till next paint of item //TODO: is this sufficiently? ///this can be understood as a counterpart to isPainted(), but before paint and value of is_painted is modified temporarily till next paint of item //TODO: is this sufficiently?

View File

@@ -185,12 +185,11 @@ void CComponentsForm::clear()
return; return;
for(size_t i=0; i<v_cc_items.size(); i++) { for(size_t i=0; i<v_cc_items.size(); i++) {
if (v_cc_items[i]){ CComponentsItem *item = v_cc_items[i];
if (item){
dprintf(DEBUG_DEBUG, "[CComponentsForm] %s... delete form cc-item %d of %d (type=%d)\n", __func__, (int)i+1, (int)v_cc_items.size(), v_cc_items[i]->getItemType()); dprintf(DEBUG_DEBUG, "[CComponentsForm] %s... delete form cc-item %d of %d (type=%d)\taddress = %p\n", __func__, (int)i+1, (int)v_cc_items.size(), item->getItemType(), item);
delete item;
delete v_cc_items[i]; item = NULL;
v_cc_items[i] = NULL;
} }
} }
v_cc_items.clear(); v_cc_items.clear();
@@ -518,7 +517,7 @@ void CComponentsForm::paintCCItems()
//finally paint current item, but only required contents of page //finally paint current item, but only required contents of page
if (cc_item->getPageNumber() == cur_page) if (cc_item->getPageNumber() == cur_page)
cc_item->paint(CC_SAVE_SCREEN_NO); cc_item->paint(cc_item->SaveBg());
//restore defined old visibility mode of item after paint //restore defined old visibility mode of item after paint
cc_item->allowPaint(item_visible); cc_item->allowPaint(item_visible);

View File

@@ -144,6 +144,8 @@ 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;
cch_text_max_w = width;
addContextButton(buttons); addContextButton(buttons);
initCCItems(); initCCItems();
initParent(parent); initParent(parent);
@@ -562,6 +564,7 @@ void CComponentsHeader::initCaption()
cch_cl_obj->allowPaint(cch_cl_enable); cch_cl_obj->allowPaint(cch_cl_enable);
} }
cc_text_w = min(cc_text_w,cch_text_max_w);
//create cch_text_obj and add to collection //create cch_text_obj and add to collection
if (cch_text_obj == NULL){ if (cch_text_obj == NULL){

View File

@@ -106,6 +106,8 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen
int cch_icon_w; int cch_icon_w;
///property: internal width for clock object ///property: internal width for clock object
int cch_clock_w; int cch_clock_w;
///property: internal max width for text object
int cch_text_max_w;
///property: internal x-position for caption object ///property: internal x-position for caption object
int cch_text_x; int cch_text_x;
///property: internal offset of context button icons within context button object ///property: internal offset of context button icons within context button object
@@ -191,6 +193,8 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen
virtual Font* getCaptionFont(){return cch_font;} virtual Font* getCaptionFont(){return cch_font;}
///set text color for caption ///set text color for caption
virtual void setCaptionColor(fb_pixel_t text_color){cch_col_text = text_color;} virtual void setCaptionColor(fb_pixel_t text_color){cch_col_text = text_color;}
///set max width for caption
virtual void setCaptionMaxWidth(int max_width){cch_text_max_w = max_width;}
enum enum
{ {

View File

@@ -208,7 +208,8 @@ class CComponentsPictureScalable : public CComponentsPicture
fb_pixel_t color_background = 0, fb_pixel_t color_background = 0,
fb_pixel_t color_shadow = COL_SHADOW_PLUS_0, fb_pixel_t color_shadow = COL_SHADOW_PLUS_0,
int transparent = CFrameBuffer::TM_NONE) int transparent = CFrameBuffer::TM_NONE)
: CComponentsPicture(x_pos, y_pos, 0, 0, image_name, parent, shadow_mode, color_frame, color_background, color_shadow, transparent){}; : CComponentsPicture(x_pos, y_pos, 0, 0, image_name, parent, shadow_mode, color_frame, color_background, color_shadow, transparent)
{cc_item_type = CC_ITEMTYPE_PICTURE_SCALABLE;};
}; };
class CComponentsChannelLogo : public CComponentsPicture class CComponentsChannelLogo : public CComponentsPicture
@@ -292,7 +293,8 @@ class CComponentsChannelLogoScalable : public CComponentsChannelLogo
fb_pixel_t color_background = 0, fb_pixel_t color_background = 0,
fb_pixel_t color_shadow = COL_SHADOW_PLUS_0, fb_pixel_t color_shadow = COL_SHADOW_PLUS_0,
int transparent = CFrameBuffer::TM_BLACK) int transparent = CFrameBuffer::TM_BLACK)
: CComponentsChannelLogo(x_pos, y_pos, 0, 0, channelName, channelId, parent, shadow_mode, color_frame, color_background, color_shadow, transparent){}; : CComponentsChannelLogo(x_pos, y_pos, 0, 0, channelName, channelId, parent, shadow_mode, color_frame, color_background, color_shadow, transparent)
{cc_item_type = CC_ITEMTYPE_CHANNEL_LOGO_SCALABLE;};
}; };
#endif #endif

View File

@@ -41,7 +41,9 @@ typedef enum
CC_ITEMTYPE_GENERIC, CC_ITEMTYPE_GENERIC,
CC_ITEMTYPE_ITEM, CC_ITEMTYPE_ITEM,
CC_ITEMTYPE_PICTURE, CC_ITEMTYPE_PICTURE,
CC_ITEMTYPE_PICTURE_SCALABLE,
CC_ITEMTYPE_CHANNEL_LOGO, CC_ITEMTYPE_CHANNEL_LOGO,
CC_ITEMTYPE_CHANNEL_LOGO_SCALABLE,
CC_ITEMTYPE_TEXT, CC_ITEMTYPE_TEXT,
CC_ITEMTYPE_TEXT_INFOBOX, CC_ITEMTYPE_TEXT_INFOBOX,
CC_ITEMTYPE_SHAPE_SQUARE, CC_ITEMTYPE_SHAPE_SQUARE,