mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-29 16:31:11 +02:00
CComponents: add option paint_bg and apply in CComponentsHeader
This commit is contained in:
@@ -118,7 +118,7 @@ class CComponents
|
|||||||
CFrameBuffer * frameBuffer;
|
CFrameBuffer * frameBuffer;
|
||||||
std::vector<comp_fbdata_t> v_fbdata;
|
std::vector<comp_fbdata_t> v_fbdata;
|
||||||
fb_pixel_t col_body, col_shadow, col_frame;
|
fb_pixel_t col_body, col_shadow, col_frame;
|
||||||
bool firstPaint, shadow, is_painted;
|
bool firstPaint, shadow, is_painted, paint_bg;
|
||||||
|
|
||||||
void initVarBasic();
|
void initVarBasic();
|
||||||
void paintFbItems(bool do_save_bg = true);
|
void paintFbItems(bool do_save_bg = true);
|
||||||
@@ -164,7 +164,8 @@ class CComponents
|
|||||||
inline virtual void setShadowOnOff(bool has_shadow){shadow = has_shadow;};
|
inline virtual void setShadowOnOff(bool has_shadow){shadow = has_shadow;};
|
||||||
|
|
||||||
virtual void hide();
|
virtual void hide();
|
||||||
virtual bool isPainted(){return is_painted;};
|
virtual bool isPainted(){return is_painted;}
|
||||||
|
virtual void doPaintBg(bool do_paint){paint_bg = do_paint;};
|
||||||
};
|
};
|
||||||
|
|
||||||
class CComponentsItem : public CComponents
|
class CComponentsItem : public CComponents
|
||||||
|
@@ -80,6 +80,7 @@ void CComponents::initVarBasic()
|
|||||||
|
|
||||||
firstPaint = true;
|
firstPaint = true;
|
||||||
is_painted = false;
|
is_painted = false;
|
||||||
|
paint_bg = true;
|
||||||
frameBuffer = CFrameBuffer::getInstance();
|
frameBuffer = CFrameBuffer::getInstance();
|
||||||
v_fbdata.clear();
|
v_fbdata.clear();
|
||||||
saved_screen.pixbuf = NULL;
|
saved_screen.pixbuf = NULL;
|
||||||
@@ -185,10 +186,16 @@ void CComponentsItem::initVarItem()
|
|||||||
initVarBasic();
|
initVarBasic();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Paint container background in cc-items with shadow, background and frame.
|
||||||
|
// This member must be called first in all paint() members before paint other items into the container.
|
||||||
|
// If backround is not required, it's possible to override this with variable paint_bg=false, use doPaintBg(true/false) to set this!
|
||||||
void CComponentsItem::paintInit(bool do_save_bg)
|
void CComponentsItem::paintInit(bool do_save_bg)
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
|
|
||||||
|
if(!paint_bg)
|
||||||
|
return;
|
||||||
|
|
||||||
int sw = shadow ? shadow_w : 0;
|
int sw = shadow ? shadow_w : 0;
|
||||||
int th = fr_thickness;
|
int th = fr_thickness;
|
||||||
|
|
||||||
@@ -391,6 +398,7 @@ void CComponentsText::paintText(bool do_save_bg)
|
|||||||
|
|
||||||
void CComponentsText::paint(bool do_save_bg)
|
void CComponentsText::paint(bool do_save_bg)
|
||||||
{
|
{
|
||||||
|
|
||||||
paintText(do_save_bg);
|
paintText(do_save_bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1730,7 +1738,7 @@ void CComponentsHeader::paint(bool do_save_bg)
|
|||||||
cch_icon_obj->setWidth(48);
|
cch_icon_obj->setWidth(48);
|
||||||
cch_icon_obj->setHeight(height);
|
cch_icon_obj->setHeight(height);
|
||||||
cch_icon_obj->setPictureAlign(CC_ALIGN_HOR_CENTER | CC_ALIGN_VER_CENTER);
|
cch_icon_obj->setPictureAlign(CC_ALIGN_HOR_CENTER | CC_ALIGN_VER_CENTER);
|
||||||
cch_icon_obj->setColorBody(col_body);
|
cch_icon_obj->doPaintBg(false);
|
||||||
|
|
||||||
//corner of icon item
|
//corner of icon item
|
||||||
cch_icon_obj->setCornerRadius(corner_rad-fr_thickness);
|
cch_icon_obj->setCornerRadius(corner_rad-fr_thickness);
|
||||||
@@ -1747,7 +1755,7 @@ void CComponentsHeader::paint(bool do_save_bg)
|
|||||||
cch_text_obj = new CComponentsText(cch_text_x, cch_items_y, width-cch_icon_obj->getWidth()-fr_thickness, height-2*fr_thickness, cch_text.c_str());
|
cch_text_obj = new CComponentsText(cch_text_x, cch_items_y, width-cch_icon_obj->getWidth()-fr_thickness, height-2*fr_thickness, cch_text.c_str());
|
||||||
cch_text_obj->setTextFont(cch_font);
|
cch_text_obj->setTextFont(cch_font);
|
||||||
cch_text_obj->setTextColor(cch_col_text);
|
cch_text_obj->setTextColor(cch_col_text);
|
||||||
cch_text_obj->setColorBody(col_body);
|
cch_text_obj->doPaintBg(false);
|
||||||
|
|
||||||
//corner of text item
|
//corner of text item
|
||||||
cch_text_obj->setCornerRadius(corner_rad-fr_thickness);
|
cch_text_obj->setCornerRadius(corner_rad-fr_thickness);
|
||||||
|
Reference in New Issue
Block a user