mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-28 07:51:19 +02:00
cc: rework color handling for select and focus status
This commit is contained in:
@@ -51,7 +51,7 @@ void CComponentsDetailsLine::initVarDline( const int& x_pos, const int& y_pos_to
|
||||
x = x_pos;
|
||||
y = y_pos_top;
|
||||
col_shadow = color_shadow;
|
||||
col_body = color_line;
|
||||
col_body_std = color_line;
|
||||
|
||||
shadow_w = 1;
|
||||
|
||||
@@ -91,6 +91,9 @@ CComponentsDetailsLine::~CComponentsDetailsLine()
|
||||
void CComponentsDetailsLine::paint(const bool &do_save_bg)
|
||||
{
|
||||
hide();
|
||||
|
||||
col_body = col_body_std;
|
||||
|
||||
if (hasChanges())
|
||||
clearFbData();
|
||||
|
||||
@@ -137,6 +140,12 @@ void CComponentsDetailsLine::paint(const bool &do_save_bg)
|
||||
//so you can ensure correct applied system colors in relevant objects with unchanged instances.
|
||||
void CComponentsDetailsLine::syncSysColors()
|
||||
{
|
||||
col_body = COL_FRAME_PLUS_0;
|
||||
col_body_std = COL_FRAME_PLUS_0;
|
||||
col_shadow = COL_SHADOW_PLUS_0;
|
||||
}
|
||||
|
||||
void CComponentsDetailsLine::setColors(const fb_pixel_t &color_line, const fb_pixel_t &color_shadow)
|
||||
{
|
||||
col_body_std = color_line;
|
||||
col_shadow = color_shadow;
|
||||
}
|
||||
|
@@ -61,7 +61,7 @@ class CComponentsDetailsLine : public CComponents
|
||||
virtual~CComponentsDetailsLine();
|
||||
|
||||
///set colors
|
||||
void setColors(fb_pixel_t color_line, fb_pixel_t color_shadow){col_body = color_line; col_shadow = color_shadow;};
|
||||
void setColors(const fb_pixel_t &color_line, const fb_pixel_t &color_shadow);
|
||||
///set colors with system settings
|
||||
void syncSysColors();
|
||||
///set property: lowest y position
|
||||
|
@@ -43,12 +43,14 @@ CCDraw::CCDraw() : COSDFader(g_settings.theme.menu_Content_alpha)
|
||||
height = height_old = CC_HEIGHT_MIN;
|
||||
width = width_old = CC_WIDTH_MIN;
|
||||
|
||||
col_body = col_body_old = COL_MENUCONTENT_PLUS_0;
|
||||
col_body_std = COL_MENUCONTENT_PLUS_0;
|
||||
col_body_sel = COL_MENUCONTENTSELECTED_PLUS_0;
|
||||
col_body_sec = COL_MENUCONTENTINACTIVE_PLUS_0;
|
||||
col_shadow = col_shadow_old = COL_SHADOW_PLUS_0;
|
||||
col_frame = col_frame_old = COL_FRAME_PLUS_0;
|
||||
col_shadow_clean = 0;
|
||||
|
||||
cc_body_image = cc_body_image_old = std::string();
|
||||
cc_bg_image = cc_bg_image_old = cc_bg_sel_image = cc_bg_sec_image = "";
|
||||
|
||||
fr_thickness = fr_thickness_old = 0;
|
||||
|
||||
@@ -184,9 +186,9 @@ bool CCDraw::applyColChanges()
|
||||
cc_body_gradient_direction_old = cc_body_gradient_direction;
|
||||
ret = true;
|
||||
}
|
||||
if (cc_body_image != cc_body_image_old){
|
||||
dprintf(DEBUG_INFO, "\033[33m[CCDraw]\t[%s - %d], col changes cc_body_image %s != cc_body_image_old %s...\033[0m\n", __func__, __LINE__, cc_body_image.c_str(), cc_body_image_old.c_str());
|
||||
cc_body_image_old = cc_body_image;
|
||||
if (cc_bg_image != cc_bg_image_old){
|
||||
dprintf(DEBUG_INFO, "\033[33m[CCDraw]\t[%s - %d], col changes cc_bg_image %s != cc_bg_image_old %s...\033[0m\n", __func__, __LINE__, cc_bg_image.c_str(), cc_bg_image_old.c_str());
|
||||
cc_bg_image_old = cc_bg_image;
|
||||
ret = true;
|
||||
}
|
||||
|
||||
@@ -550,7 +552,7 @@ void CCDraw::paintFbItems(const bool &do_save_bg)
|
||||
/* Paint all fb relevant basic parts (shadow, frame and body)
|
||||
* with all specified properties, paint_bg must be enabled.
|
||||
*/
|
||||
if (cc_enable_frame && cc_body_image.empty()){
|
||||
if (cc_enable_frame && cc_bg_image.empty()){
|
||||
if (fbtype == CC_FBDATA_TYPE_FRAME) {
|
||||
if (v_fbdata.at(i).frame_thickness > 0 && cc_allow_paint){
|
||||
frameBuffer->paintBoxFrame(v_fbdata.at(i).x, v_fbdata.at(i).y, v_fbdata.at(i).dx, v_fbdata.at(i).dy, v_fbdata.at(i).frame_thickness, v_fbdata.at(i).color, v_fbdata.at(i).r, v_fbdata.at(i).rtype);
|
||||
@@ -616,8 +618,8 @@ void CCDraw::paintFbItems(const bool &do_save_bg)
|
||||
* we try to render an image instead to render default box.
|
||||
* Paint of background image is prefered, next steps will be ignored!
|
||||
*/
|
||||
if (!cc_body_image.empty()){
|
||||
if (g_PicViewer->DisplayImage(cc_body_image, v_fbdata.at(i).x, v_fbdata.at(i).y, v_fbdata.at(i).dx, v_fbdata.at(i).dy, CFrameBuffer::TM_NONE)){
|
||||
if (!cc_bg_image.empty()){
|
||||
if (g_PicViewer->DisplayImage(cc_bg_image, v_fbdata.at(i).x, v_fbdata.at(i).y, v_fbdata.at(i).dx, v_fbdata.at(i).dy, CFrameBuffer::TM_NONE)){
|
||||
// catch screen and store into paint cache
|
||||
v_fbdata.at(i).pixbuf = getScreen(v_fbdata.at(i).x, v_fbdata.at(i).y, v_fbdata.at(i).dx, v_fbdata.at(i).dy);
|
||||
v_fbdata.at(i).is_painted = true;
|
||||
@@ -631,15 +633,15 @@ void CCDraw::paintFbItems(const bool &do_save_bg)
|
||||
|
||||
// On failed image paint, write this into log and reset image name.
|
||||
if (!v_fbdata.at(i).is_painted){
|
||||
dprintf(DEBUG_NORMAL, "\033[33m\[CCDraw]\t[%s - %d], WARNING: bg image %s defined, but paint failed,\nfallback to default rendering...\033[0m\n", __func__, __LINE__, cc_body_image.c_str());
|
||||
cc_body_image = "";
|
||||
dprintf(DEBUG_NORMAL, "\033[33m\[CCDraw]\t[%s - %d], WARNING: bg image %s defined, but paint failed,\nfallback to default rendering...\033[0m\n", __func__, __LINE__, cc_bg_image.c_str());
|
||||
cc_bg_image = "";
|
||||
}
|
||||
}
|
||||
|
||||
/* If no background image is defined, we paint default box or box with gradient
|
||||
* This is also possible if any background image is defined but image paint ist failed
|
||||
*/
|
||||
if (cc_body_image.empty()){
|
||||
if (cc_bg_image.empty()){
|
||||
if (cc_body_gradient_enable != CC_COLGRAD_OFF ){
|
||||
|
||||
/* If color gradient enabled we create a gradient_data
|
||||
@@ -683,7 +685,7 @@ void CCDraw::paintFbItems(const bool &do_save_bg)
|
||||
}
|
||||
}
|
||||
}else{
|
||||
/* If is nothihng cached or no background image was defined or image paint was failed,
|
||||
/* If is nothing cached or no background image was defined or image paint was failed,
|
||||
* render a default box.
|
||||
*/
|
||||
dprintf(DEBUG_INFO, "\033[33m[CCDraw]\t[%s - %d], paint default box)...\033[0m\n", __func__, __LINE__);
|
||||
@@ -871,22 +873,24 @@ bool CCDraw::cancelBlink(bool keep_on_screen)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CCDraw::setBodyBGImage(const std::string& image_path)
|
||||
bool CCDraw::setBodyBGImage(const std::string& image_path, const std::string& sel_image_path, const std::string& sec_image_path)
|
||||
{
|
||||
if (cc_body_image == image_path)
|
||||
if (cc_bg_std_image == image_path && cc_bg_image == image_path && cc_bg_sel_image == sel_image_path && cc_bg_sec_image == sec_image_path)
|
||||
return false;
|
||||
|
||||
cc_body_image = image_path;
|
||||
cc_bg_std_image = cc_bg_image = image_path;
|
||||
cc_bg_sel_image = sel_image_path;
|
||||
cc_bg_sec_image = sec_image_path;
|
||||
|
||||
if (clearPaintCache())
|
||||
dprintf(DEBUG_NORMAL, "\033[33m\[CCDraw]\t[%s - %d], new body background image defined: %s , \033[0m\n", __func__, __LINE__, cc_body_image.c_str());
|
||||
dprintf(DEBUG_NORMAL, "\033[33m\[CCDraw]\t[%s - %d], body background image defined standard: [%s] selected: [%s], secondary: [%s]\033[0m\n", __func__, __LINE__, cc_bg_image.c_str(), cc_bg_sel_image.c_str(), cc_bg_sec_image.c_str());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CCDraw::setBodyBGImageName(const std::string& image_name)
|
||||
bool CCDraw::setBodyBGImageName(const std::string& image_name, const std::string& sel_image_name, const std::string& sec_image_name)
|
||||
{
|
||||
return setBodyBGImage(frameBuffer->getIconPath(image_name));
|
||||
return setBodyBGImage(frameBuffer->getIconPath(image_name), frameBuffer->getIconPath(sel_image_name), frameBuffer->getIconPath(sec_image_name));
|
||||
}
|
||||
|
||||
int CCDraw::getXPos() const
|
||||
@@ -931,3 +935,22 @@ bool CCDraw::paintAllowed()
|
||||
{
|
||||
return cc_allow_paint;
|
||||
}
|
||||
|
||||
void CCDraw::setColorBody(const fb_pixel_t &color_std, const fb_pixel_t &color_sel, const fb_pixel_t &color_sec)
|
||||
{
|
||||
if (col_body_std != color_std)
|
||||
col_body_std = color_std;
|
||||
|
||||
if (color_sel != col_body_sel)
|
||||
col_body_sel = color_sel;
|
||||
|
||||
if (color_sec != col_body_sec)
|
||||
col_body_sec = color_sec;
|
||||
}
|
||||
|
||||
void CCDraw::setColorAll(const fb_pixel_t &color_frame, const fb_pixel_t &color_body, const fb_pixel_t &color_shadow, const fb_pixel_t &color_body_sel, const fb_pixel_t &color_body_sec)
|
||||
{
|
||||
setColorBody(color_body, color_body_sel, color_body_sec);
|
||||
setColorFrame(color_frame);
|
||||
setColorShadow(color_shadow);
|
||||
}
|
||||
|
@@ -71,7 +71,7 @@ class CCDraw : public COSDFader, public CComponentsSignals, public CCTypes
|
||||
int width, width_old;
|
||||
|
||||
///property: color of body
|
||||
fb_pixel_t col_body, col_body_old;
|
||||
fb_pixel_t col_body, col_body_old, col_body_std, col_body_sel, col_body_sec;
|
||||
///property: color of shadow
|
||||
fb_pixel_t col_shadow, col_shadow_old;
|
||||
///property: color of frame
|
||||
@@ -79,7 +79,7 @@ class CCDraw : public COSDFader, public CComponentsSignals, public CCTypes
|
||||
///internal property: color for shadow clean up
|
||||
fb_pixel_t col_shadow_clean;
|
||||
///property: background image, see also setBodyBGImage()
|
||||
std::string cc_body_image, cc_body_image_old;
|
||||
std::string cc_bg_image, cc_bg_image_old, cc_bg_std_image, cc_bg_sel_image, cc_bg_sec_image;
|
||||
|
||||
///property: frame thickness, see also setFrameThickness()
|
||||
int fr_thickness, fr_thickness_old;
|
||||
@@ -213,25 +213,29 @@ class CCDraw : public COSDFader, public CComponentsSignals, public CCTypes
|
||||
void setFrameThickness(const int& thickness);
|
||||
///return of frame thickness
|
||||
int getFrameThickness() const {return fr_thickness;}
|
||||
///set frame color
|
||||
void setColorFrame(fb_pixel_t color){col_frame = color;}
|
||||
|
||||
void set2ndColor(fb_pixel_t col_2nd){cc_body_gradient_2nd_col = col_2nd;}
|
||||
|
||||
///get frame color
|
||||
fb_pixel_t getColorFrame() const {return col_frame;}
|
||||
///get body color
|
||||
fb_pixel_t getColorBody() const {return col_body;}
|
||||
fb_pixel_t getColorBody() const {return col_body_std;}
|
||||
///get shadow color
|
||||
fb_pixel_t getColorShadow() const {return col_shadow;}
|
||||
|
||||
///set body color
|
||||
void setColorBody(fb_pixel_t color){col_body = color;}
|
||||
void setColorBody(const fb_pixel_t &color_std, const fb_pixel_t &color_sel = COL_MENUCONTENTSELECTED_PLUS_0, const fb_pixel_t &color_sec = COL_MENUCONTENTINACTIVE_PLUS_0);
|
||||
///set shadow color
|
||||
void setColorShadow(fb_pixel_t color){col_shadow = color;}
|
||||
void setColorShadow(const fb_pixel_t &color){col_shadow = color;}
|
||||
///set frame color
|
||||
void setColorFrame(const fb_pixel_t &color){col_frame = color;}
|
||||
///set all basic framebuffer element colors at once
|
||||
///Note: Possible color values are defined in "gui/color.h" and "gui/color_custom.h"
|
||||
void setColorAll(fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow){col_frame = color_frame; col_body = color_body; col_shadow = color_shadow;};
|
||||
void setColorAll( const fb_pixel_t &color_frame,
|
||||
const fb_pixel_t &color_body,
|
||||
const fb_pixel_t &color_shadow,
|
||||
const fb_pixel_t &color_body_sel = COL_MENUCONTENTSELECTED_PLUS_0,
|
||||
const fb_pixel_t &color_body_sec = COL_MENUCONTENTINACTIVE_PLUS_0);
|
||||
|
||||
///set corner types
|
||||
///Possible corner types are defined in CFrameBuffer (see: driver/framebuffer.h)
|
||||
@@ -411,24 +415,44 @@ class CCDraw : public COSDFader, public CComponentsSignals, public CCTypes
|
||||
* @return bool
|
||||
*
|
||||
* @param[in] image_path Path to image.
|
||||
* @param[in] sel_image_path Path to select image.
|
||||
*
|
||||
* @see
|
||||
* cc_body_image
|
||||
* setBodyBGImageName()
|
||||
*/
|
||||
bool setBodyBGImage(const std::string& image_path);
|
||||
bool setBodyBGImage(const std::string& image_path, const std::string& sel_image_path = "", const std::string& sec_image_path = "");
|
||||
|
||||
/**Sets an image name for body background, returns true if new image was applied.
|
||||
*
|
||||
* @return bool
|
||||
*
|
||||
* @param[in] image_name Basename of image.
|
||||
* @param[in] sel_image_name Path to select image.
|
||||
*
|
||||
* @see
|
||||
* cc_body_image
|
||||
* setBodyBGImage()
|
||||
*/
|
||||
bool setBodyBGImageName(const std::string& image_name);
|
||||
bool setBodyBGImageName(const std::string& image_name, const std::string& sel_image_name = "", const std::string& sec_image_name = "");
|
||||
|
||||
/**Gets current Path of select background image
|
||||
*
|
||||
* @return std::string
|
||||
*/
|
||||
std::string getBodyBGImage() {return cc_bg_std_image;}
|
||||
|
||||
/**Gets current Path of default background image
|
||||
*
|
||||
* @return std::string
|
||||
*/
|
||||
std::string getBodyBGSelectedImage() {return cc_bg_sel_image;}
|
||||
|
||||
/**Gets current Path of secondary background image
|
||||
*
|
||||
* @return std::string
|
||||
*/
|
||||
std::string getBodyBGSecondaryImage() {return cc_bg_sec_image;}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -107,7 +107,7 @@ void CComponentsButton::initVarButton( const int& x_pos, const int& y_pos, const
|
||||
cc_body_gradient_enable = CC_COLGRAD_OFF/*g_settings.gradiant*/; //TODO: gradient is prepared for use but disabled at the moment till some other parts of gui parts are provide gradient
|
||||
setColBodyGradient(cc_body_gradient_enable/*CColorGradient::gradientLight2Dark*/, CFrameBuffer::gradientVertical, CColorGradient::light);
|
||||
col_frame = color_frame;
|
||||
col_body = col_body_old = cc_body_gradient_enable? COL_DARK_GRAY : color_body;
|
||||
col_body_std = cc_body_gradient_enable? COL_DARK_GRAY : color_body;
|
||||
col_shadow = color_shadow;
|
||||
|
||||
cc_item_enabled = enabled;
|
||||
|
@@ -84,7 +84,7 @@ void CComponentsFrmChain::initVarChain( const int& x_pos, const int& y_pos, cons
|
||||
|
||||
shadow = shadow_mode;
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
|
||||
chn_direction = direction;
|
||||
|
@@ -66,7 +66,7 @@ CComponentsFrmClock::CComponentsFrmClock( const int& x_pos,
|
||||
shadow = shadow_mode;
|
||||
shadow_w = OFFSET_SHADOW;
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
|
||||
corner_rad = RADIUS_SMALL;
|
||||
@@ -262,7 +262,7 @@ void CComponentsFrmClock::initCCLockItems()
|
||||
//set size, text, color of current item
|
||||
lbl->setDimensionsAll(x_tmp, y_tmp, w_tmp, h_tmp);
|
||||
lbl->setFrameThickness(0);
|
||||
lbl->setColorAll(col_frame, col_body, col_shadow);
|
||||
lbl->setColorAll(col_frame, col_body_std, col_shadow);
|
||||
lbl->forceTextPaint(force_repaint);
|
||||
lbl->setText(stmp, CTextBox::CENTER, cl_font, cl_col_text, cl_font_style);
|
||||
|
||||
|
@@ -101,7 +101,7 @@ void CComponentsExtTextForm::initVarExtTextForm(const int& x_pos, const int& y_p
|
||||
ccx_label_color = label_color;
|
||||
ccx_text_color = text_color;
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
ccx_label_obj = NULL;
|
||||
ccx_text_obj = NULL;
|
||||
@@ -125,7 +125,7 @@ void CComponentsExtTextForm::initLabel()
|
||||
if (ccx_label_obj){
|
||||
//assign general properties
|
||||
ccx_label_obj->setDimensionsAll(0, y_text, ccx_label_width-2*fr_thickness, height-2*fr_thickness);
|
||||
ccx_label_obj->setColorBody(col_body);
|
||||
ccx_label_obj->setColorBody(col_body_std);
|
||||
if (cc_body_gradient_enable != cc_body_gradient_enable_old)
|
||||
ccx_label_obj->getCTextBoxObject()->clearScreenBuffer();
|
||||
ccx_label_obj->setTextColor(ccx_label_color);
|
||||
@@ -149,7 +149,7 @@ void CComponentsExtTextForm::initText()
|
||||
if (ccx_text_obj){
|
||||
//assign general properties
|
||||
ccx_text_obj->setDimensionsAll(ccx_label_obj->getWidth(), y_text, ccx_text_width-2*fr_thickness, height-2*fr_thickness);
|
||||
ccx_text_obj->setColorBody(col_body);
|
||||
ccx_text_obj->setColorBody(col_body_std);
|
||||
if (cc_body_gradient_enable != cc_body_gradient_enable_old)
|
||||
ccx_text_obj->getCTextBoxObject()->clearScreenBuffer();
|
||||
ccx_text_obj->setTextColor(ccx_text_color);
|
||||
|
@@ -88,9 +88,9 @@ void CComponentsFooter::initVarFooter( const int& x_pos, const int& y_pos, const
|
||||
ccf_button_shadow_width = shadow ? OFFSET_SHADOW/2 : 0;
|
||||
ccf_button_shadow_force_paint = false;
|
||||
ccf_button_container_y = -1; //centered as default
|
||||
col_frame = col_frame_old = color_frame;
|
||||
col_body = col_body_old = color_body;
|
||||
col_shadow = col_shadow_old = color_shadow;
|
||||
col_frame = color_frame;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
cc_body_gradient_enable = cc_body_gradient_enable_old = CC_COLGRAD_OFF/*g_settings.theme.menu_ButtonBar_gradient*/; //TODO: not complete implemented at the moment
|
||||
cc_body_gradient_direction = CFrameBuffer::gradientVertical;
|
||||
cc_body_gradient_mode = CColorGradient::gradientDark2Light;
|
||||
@@ -182,7 +182,7 @@ void CComponentsFooter::setButtonLabels(const struct button_label_cc * const con
|
||||
if (cch_icon_obj)
|
||||
x_container = cch_offset+cch_icon_obj->getWidth()+cch_offset;
|
||||
if (btn_container == NULL){
|
||||
btn_container = new CComponentsFrmChain(x_container, y_container, w_container, h_container, 0, CC_DIR_X, this, CC_SHADOW_OFF, COL_MENUCONTENT_PLUS_6, col_body);
|
||||
btn_container = new CComponentsFrmChain(x_container, y_container, w_container, h_container, 0, CC_DIR_X, this, CC_SHADOW_OFF, COL_MENUCONTENT_PLUS_6, col_body_std);
|
||||
btn_container->setItemName(cc_parent ? cc_parent->getItemName() + ":" + getItemName() + ":btn_container" : "");
|
||||
btn_container->setAppendOffset(0, 0);
|
||||
//btn_container->setCorner(this->corner_rad, this->corner_type);
|
||||
|
@@ -133,8 +133,8 @@ void CComponentsHeader::initVarHeader( const int& x_pos, const int& y_pos, const
|
||||
CNeutrinoApp::getInstance()->OnAfterSetupFonts.connect(sigc::mem_fun(this, &CComponentsHeader::resetFont));
|
||||
|
||||
shadow = shadow_mode;
|
||||
col_frame = col_frame_old = color_frame;
|
||||
col_body = col_body_old = color_body;
|
||||
col_frame = color_frame;
|
||||
col_body_std = color_body;
|
||||
col_shadow = col_shadow_old = color_shadow;
|
||||
|
||||
cc_body_gradient_enable = cc_body_gradient_enable_old = (cch_size_mode == CC_HEADER_SIZE_SMALL ? g_settings.theme.menu_SubHead_gradient : g_settings.theme.menu_Head_gradient);
|
||||
@@ -180,7 +180,7 @@ void CComponentsHeader::initVarHeader( const int& x_pos, const int& y_pos, const
|
||||
}
|
||||
|
||||
void CComponentsHeader::initRepaintSlot(){
|
||||
sl_form_repaint = sigc::bind(sigc::mem_fun(*this, &CComponentsHeader::kill), cc_parent ? col_body : 0, -1, CC_FBDATA_TYPES, false);
|
||||
sl_form_repaint = sigc::bind(sigc::mem_fun(*this, &CComponentsHeader::kill), cc_parent ? col_body_std : 0, -1, CC_FBDATA_TYPES, false);
|
||||
OnBeforeRePaint.connect(sl_form_repaint);
|
||||
}
|
||||
|
||||
@@ -667,7 +667,7 @@ void CComponentsHeader::initCaption()
|
||||
|
||||
//assign general properties
|
||||
cch_text_obj->setDimensionsAll(cch_text_x, cch_items_y, cc_text_w, height);
|
||||
cch_text_obj->setColorBody(col_body);
|
||||
cch_text_obj->setColorBody(col_body_std);
|
||||
if (cc_body_gradient_enable != cc_body_gradient_enable_old)
|
||||
cch_text_obj->getCTextBoxObject()->clearScreenBuffer();
|
||||
cch_text_obj->setText(cch_text, cch_caption_align, cch_font, cch_col_text);
|
||||
@@ -694,7 +694,7 @@ void CComponentsHeader::initCCItems()
|
||||
initCaptionFont();
|
||||
|
||||
//set basic properties
|
||||
Init(x, y, width, height, col_frame, col_body, col_shadow);
|
||||
Init(x, y, width, height, col_frame, col_body_std, col_shadow);
|
||||
|
||||
//init icon
|
||||
initIcon();
|
||||
|
@@ -64,7 +64,7 @@ void CComponentsIconForm::initVarIconForm( const int &x_pos, const int &y_pos, c
|
||||
v_icons = v_icon_names;
|
||||
shadow = shadow_mode;
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
|
||||
chn_direction = CC_DIR_X;
|
||||
|
@@ -40,7 +40,7 @@ using namespace std;
|
||||
| | sb_up_obj (icon)| |/color_frame
|
||||
| | /\ | |
|
||||
| +-----------------+ | |/color_shadow
|
||||
| col_body | |
|
||||
| col_body_std | |
|
||||
| |
|
||||
| +-sb_segments_obj+ |
|
||||
| | | |
|
||||
@@ -162,7 +162,7 @@ void CComponentsScrollBar::initSegments()
|
||||
sb_segments_obj->setDimensionsAll(CC_CENTERED, CC_APPEND, w_seg, h_seg_obj);
|
||||
|
||||
//set current color for segment container
|
||||
sb_segments_obj->setColorBody(col_body);
|
||||
sb_segments_obj->setColorBody(col_body_std);
|
||||
|
||||
//clean up segment container before add new segments
|
||||
sb_segments_obj->clear();
|
||||
@@ -182,7 +182,7 @@ void CComponentsScrollBar::initSegments()
|
||||
tmp_quot = uint32_t((float)sb_segments_count/(float)tmp_segments + 0.5);
|
||||
}
|
||||
|
||||
fb_pixel_t passive_col = sb_visual_enable ? sb_segment_col : col_body;
|
||||
fb_pixel_t passive_col = sb_visual_enable ? sb_segment_col : col_body_std;
|
||||
|
||||
//create and add segments to segment container
|
||||
for(uint32_t i=0; i<tmp_segments; i++){
|
||||
@@ -209,7 +209,7 @@ void CComponentsScrollBar::initSegments()
|
||||
}
|
||||
|
||||
//set different corner types for segments with possible conditions
|
||||
if (passive_col == col_body){
|
||||
if (passive_col == col_body_std){
|
||||
item->setCorner(RADIUS_MIN, CORNER_ALL);
|
||||
continue;
|
||||
}else if (tmp_segments == 1){
|
||||
|
@@ -109,7 +109,7 @@ void CSignalBar::initSBItems()
|
||||
{
|
||||
if (cc_parent){
|
||||
//use backround color of parent form if signalbar is embedded
|
||||
col_body = cc_parent->getColorBody();
|
||||
col_body_std = cc_parent->getColorBody();
|
||||
|
||||
//and set required color for text to name label
|
||||
CSignalBox *sbx = static_cast<CSignalBox*>(cc_parent);
|
||||
@@ -133,7 +133,7 @@ void CSignalBar::initSBarScale()
|
||||
//move and set dimensions
|
||||
int scale_y = (sb_item_height/2 - sb_scale_height/2);
|
||||
sb_scale->setDimensionsAll(fr_thickness, scale_y, sb_scale_width, sb_scale_height);
|
||||
sb_scale->setColorBody(col_body);
|
||||
sb_scale->setColorBody(col_body_std);
|
||||
sb_scale->setActiveColor(sb_active_color);
|
||||
sb_scale->setPassiveColor(sb_passive_color);
|
||||
//add scale object to container
|
||||
@@ -160,7 +160,7 @@ void CSignalBar::initSBarValue()
|
||||
|
||||
//set current text and body color color
|
||||
sb_vlbl->setTextColor(sb_caption_color);
|
||||
sb_vlbl->setColorBody(col_body);
|
||||
sb_vlbl->setColorBody(col_body_std);
|
||||
|
||||
//add value label object to container
|
||||
if (!sb_vlbl->isAdded())
|
||||
@@ -187,7 +187,7 @@ void CSignalBar::initSBarName()
|
||||
|
||||
//set current text and body color
|
||||
sb_lbl->setTextColor(sb_caption_color);
|
||||
sb_lbl->setColorBody(col_body);
|
||||
sb_lbl->setColorBody(col_body_std);
|
||||
|
||||
//add name label object to container
|
||||
if (!sb_lbl->isAdded())
|
||||
|
@@ -152,7 +152,7 @@ void CComponentsWindow::init( const int& x_pos, const int& y_pos, const int& w,
|
||||
paint_bg = true;
|
||||
shadow = shadow_mode;
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
|
||||
ccw_head = NULL;
|
||||
@@ -317,7 +317,7 @@ void CComponentsWindow::initBody()
|
||||
|
||||
ccw_body->setDimensionsAll(x_body, h_header, w_body, h_body);
|
||||
ccw_body->doPaintBg(paint_bg);
|
||||
ccw_body->setColorBody(col_body);
|
||||
ccw_body->setColorBody(col_body_std);
|
||||
|
||||
//handle corner behavior
|
||||
if (!ccw_show_header)
|
||||
|
@@ -67,6 +67,21 @@ void CComponentsItem::initParent(CComponentsForm* parent)
|
||||
// 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(const bool &do_save_bg)
|
||||
{
|
||||
if (cc_parent)
|
||||
{ //use defined background color and background images in dependency of focus mode
|
||||
if (cc_parent->hasFocus()){
|
||||
col_body = cc_item_selected ? col_body_sel : col_body_std;
|
||||
cc_bg_image = cc_item_selected ? cc_bg_sel_image : cc_bg_std_image;
|
||||
}
|
||||
else{
|
||||
col_body = cc_item_selected ? col_body_sec : col_body_std;
|
||||
cc_bg_image = cc_item_selected ? cc_bg_sec_image : cc_bg_std_image;
|
||||
}
|
||||
}
|
||||
else
|
||||
col_body = cc_item_selected ? col_body_sel : col_body_std;
|
||||
|
||||
// check possible changed properties and force reinit if required
|
||||
if (hasChanges()){
|
||||
clearFbData();
|
||||
is_painted = false; //force repaint if required
|
||||
@@ -292,12 +307,18 @@ void CComponentsItem::setFocus(bool focus)
|
||||
cc_has_focus = focus;
|
||||
}
|
||||
|
||||
void CComponentsItem::setSelected(bool selected, const fb_pixel_t& sel_frame_col, const fb_pixel_t& frame_col, const fb_pixel_t& sel_body_col, const fb_pixel_t& body_col, const int& frame_w, const int& sel_frame_w)
|
||||
void CComponentsItem::setSelected( bool selected,
|
||||
const fb_pixel_t& sel_frame_col,
|
||||
const fb_pixel_t& frame_col,
|
||||
const fb_pixel_t& sel_body_col,
|
||||
const fb_pixel_t& body_col,
|
||||
const int& frame_w,
|
||||
const int& sel_frame_w)
|
||||
{
|
||||
cc_item_selected = selected;
|
||||
fr_thickness = cc_item_selected ? sel_frame_w : frame_w;
|
||||
col_body = cc_item_selected ? sel_body_col : body_col;
|
||||
col_frame = cc_item_selected ? sel_frame_col : frame_col;
|
||||
setColorAll(col_frame, body_col, col_shadow, sel_body_col, COL_MENUCONTENT_PLUS_1);
|
||||
}
|
||||
|
||||
uint8_t CComponentsItem::getPageNumber() const
|
||||
|
@@ -59,7 +59,7 @@ CComponentsInfoBox::CComponentsInfoBox( const int& x_pos,
|
||||
shadow = shadow_mode;
|
||||
col_frame = color_frame;
|
||||
cc_enable_frame = true;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
|
||||
ct_text = info_text;
|
||||
@@ -124,7 +124,7 @@ void CComponentsInfoBox::paintPicture()
|
||||
string image = frameBuffer->getIconPath(pic_name);
|
||||
pic = new CComponentsPicture(x_pic+x_offset, y_pic, pic_width, min(pic_height, height-2*fr_thickness), image); //NOTE: icons do not scale!
|
||||
|
||||
pic->setColorBody(col_body);
|
||||
pic->setColorBody(col_body_std);
|
||||
|
||||
//set gradient behavior of pic object
|
||||
if (cc_body_gradient_enable)
|
||||
|
@@ -82,9 +82,9 @@ void CComponentsPicture::init( const int &x_pos, const int &y_pos, const int &w,
|
||||
shadow = shadow_mode;
|
||||
shadow_w = OFFSET_SHADOW;
|
||||
col_frame = color_frame;
|
||||
col_body = color_background;
|
||||
col_body_std = color_background;
|
||||
col_shadow = color_shadow;
|
||||
col_shadow_clean= col_body;
|
||||
col_shadow_clean= col_body_std;
|
||||
do_scale = allow_scale;
|
||||
image_cache = NULL; //image
|
||||
enable_cache = false;
|
||||
@@ -323,7 +323,7 @@ void CComponentsPicture::paintPicture()
|
||||
if (do_scale)
|
||||
is_image_painted = g_PicViewer->DisplayImage(pic_name, x_pic, y_pic, width-2*fr_thickness, height-2*fr_thickness);
|
||||
else
|
||||
is_image_painted = frameBuffer->paintIcon(pic_name, x_pic, y_pic, height, 1, do_paint, paint_bg, col_body);
|
||||
is_image_painted = frameBuffer->paintIcon(pic_name, x_pic, y_pic, height, 1, do_paint, paint_bg, col_body_std);
|
||||
|
||||
if (is_image_painted){
|
||||
frameBuffer->SetTransparentDefault();
|
||||
|
@@ -64,7 +64,7 @@ CProgressBar::CProgressBar( const int x_pos,
|
||||
height = height_old = h;
|
||||
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
|
||||
pb_red = R;
|
||||
@@ -396,7 +396,7 @@ void CProgressBar::paintProgress(const bool &do_save_bg)
|
||||
initDimensions();
|
||||
|
||||
//body
|
||||
if (pb_last_width == -1 && col_body != 0) /* first paint */
|
||||
if (pb_last_width == -1 && col_body_std != 0) /* first paint */
|
||||
paintInit(do_save_bg);
|
||||
|
||||
//progress
|
||||
|
@@ -51,7 +51,7 @@ CComponentsShapeSquare::CComponentsShapeSquare( const int x_pos, const int y_pos
|
||||
shadow = shadow_mode;
|
||||
shadow_w = OFFSET_SHADOW;
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
initParent(parent);
|
||||
}
|
||||
@@ -83,7 +83,7 @@ CComponentsShapeCircle::CComponentsShapeCircle( int x_pos, int y_pos, int diam,
|
||||
shadow = shadow_mode;
|
||||
shadow_w = OFFSET_SHADOW;
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
|
||||
//CComponentsShapeCircle
|
||||
|
@@ -103,7 +103,7 @@ void CComponentsText::initVarText( const int x_pos, const int y_pos, const int w
|
||||
ct_col_text = color_text;
|
||||
ct_old_col_text = ct_col_text;
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
|
||||
ct_text_sent = false;
|
||||
@@ -170,7 +170,7 @@ void CComponentsText::initCCText()
|
||||
ct_textbox->setWindowMinDimensions(ct_box.iWidth, ct_box.iHeight);
|
||||
ct_textbox->setTextBorderWidth(ct_text_Hborder, ct_text_Vborder);
|
||||
ct_textbox->enableBackgroundPaint(enable_bg_paint);
|
||||
ct_textbox->setBackGroundColor(col_body);
|
||||
ct_textbox->setBackGroundColor(col_body_std);
|
||||
ct_textbox->setBackGroundRadius(0/*(corner_type ? corner_rad-fr_thickness : 0), corner_type*/);
|
||||
ct_textbox->enableSaveScreen(enable_save_screen);
|
||||
|
||||
|
@@ -147,9 +147,14 @@ class CComponentsText : public CCTextScreen, public CComponentsItem
|
||||
void setTextColor(const fb_pixel_t& color_text);
|
||||
///set all basic framebuffer element colors at once
|
||||
///Note: Possible color values are defined in "gui/color.h" and "gui/color_custom.h"
|
||||
void setColorAll(fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow = COL_SHADOW_PLUS_0, fb_pixel_t color_text = COL_MENUCONTENT_TEXT)
|
||||
void setColorAll( const fb_pixel_t& color_frame,
|
||||
const fb_pixel_t& color_body,
|
||||
const fb_pixel_t& color_shadow = COL_SHADOW_PLUS_0,
|
||||
const fb_pixel_t& color_text = COL_MENUCONTENT_TEXT,
|
||||
const fb_pixel_t& color_body_sel = COL_MENUCONTENTSELECTED_PLUS_0,
|
||||
const fb_pixel_t& color_body_sec = COL_MENUCONTENTINACTIVE_PLUS_0)
|
||||
{
|
||||
CCDraw::setColorAll(color_frame, color_body, color_shadow);
|
||||
CCDraw::setColorAll(color_frame, color_body, color_shadow, color_body_sel, color_body_sec);
|
||||
setTextColor(color_text);
|
||||
};
|
||||
///get text color
|
||||
|
@@ -62,7 +62,7 @@ CComponentsPIP::CComponentsPIP( const int x_pos, const int y_pos, const int perc
|
||||
shadow = shadow_mode;
|
||||
shadow_w = OFFSET_SHADOW;
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
fr_thickness = 2;
|
||||
corner_rad = RADIUS_SMALL;
|
||||
|
@@ -50,7 +50,7 @@ CVolumeBar::CVolumeBar()
|
||||
|
||||
void CVolumeBar::initVarVolumeBar()
|
||||
{
|
||||
col_body = COL_MENUCONTENT_PLUS_0;
|
||||
col_body_std = COL_MENUCONTENT_PLUS_0;
|
||||
corner_rad = CORNER_RADIUS_MID;
|
||||
vb_item_offset = OFFSET_INNER_SMALL;
|
||||
height = CFrameBuffer::getInstance()->scale2Res(g_settings.volume_size);
|
||||
@@ -183,7 +183,7 @@ void CVolumeBar::initVolumeBarIcon()
|
||||
}
|
||||
|
||||
vb_icon->setDimensionsAll(vb_icon_x, CC_CENTERED, vb_icon_w, height);
|
||||
vb_icon->setColorBody(col_body);
|
||||
vb_icon->setColorBody(col_body_std);
|
||||
vb_icon->setCorner(corner_rad, CORNER_LEFT);
|
||||
}
|
||||
|
||||
@@ -205,7 +205,7 @@ void CVolumeBar::initVolumeBarScale()
|
||||
//set digit text with current volume value
|
||||
void CVolumeBar::initVolumeBarDigitValue()
|
||||
{
|
||||
vb_digit->kill(col_body);
|
||||
vb_digit->kill(col_body_std);
|
||||
vb_digit->setText(*vb_vol ,vb_digit_mode, *(CVolumeHelper::getInstance()->vb_font));
|
||||
}
|
||||
|
||||
|
@@ -163,7 +163,7 @@ void CHintBox::init( const std::string& Text,
|
||||
w_indentation = indent;
|
||||
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
fr_thickness = g_settings.theme.message_frame_enable ? frame_width : 0;
|
||||
|
||||
|
@@ -103,7 +103,7 @@ void CMsgBox::init( const int& Height,
|
||||
initTimeOut();
|
||||
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_body_std = color_body;
|
||||
col_shadow = color_shadow;
|
||||
fr_thickness = g_settings.theme.message_frame_enable || col_frame != HINTBOX_DEFAULT_FRAME_COLOR ? frame_width : 0;
|
||||
|
||||
|
@@ -93,7 +93,7 @@ void CProgressWindow::Init( signal<void, size_t, size_t, string> *statusSignal,
|
||||
//create status text object
|
||||
status_txt = new CComponentsLabel();
|
||||
status_txt->setDimensionsAll(OFFSET_INNER_MID, OFFSET_INNER_MID, width-2*OFFSET_INNER_MID, g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight());
|
||||
status_txt->setColorBody(col_body);
|
||||
status_txt->setColorBody(col_body_std);
|
||||
status_txt->doPaintTextBoxBg(true);
|
||||
status_txt->doPaintBg(false);
|
||||
addWindowItem(status_txt);
|
||||
@@ -125,7 +125,7 @@ CProgressBar* CProgressWindow::getProgressItem()
|
||||
y_tmp += OFFSET_INNER_MID;
|
||||
}
|
||||
pBar->setDimensionsAll(OFFSET_INNER_MID, y_tmp, width-2*OFFSET_INNER_MID, g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight());
|
||||
pBar->setColorBody(col_body);
|
||||
pBar->setColorBody(col_body_std);
|
||||
pBar->setActiveColor(COL_PROGRESSBAR_ACTIVE_PLUS_0);
|
||||
pBar->setFrameThickness(FRAME_WIDTH_MIN);
|
||||
pBar->setColorFrame(COL_PROGRESSBAR_ACTIVE_PLUS_0);
|
||||
|
Reference in New Issue
Block a user