diff --git a/src/gui/components/cc_base.cpp b/src/gui/components/cc_base.cpp index deec9ea97..c5080b8fc 100644 --- a/src/gui/components/cc_base.cpp +++ b/src/gui/components/cc_base.cpp @@ -66,6 +66,8 @@ CComponents::CComponents() : COSDFader(g_settings.theme.menu_Content_alpha) v_fbdata.clear(); saved_screen.pixbuf = NULL; col_body_gradient = false; + cc_body_gradient_c2c = true; + cc_body_gradient_2nd_col= COL_MENUCONTENT_PLUS_0; cc_gradientData.gradientBuf = NULL; cc_gradientData.boxBuf = NULL; } diff --git a/src/gui/components/cc_base.h b/src/gui/components/cc_base.h index 3aa0f740d..f641e44d1 100644 --- a/src/gui/components/cc_base.h +++ b/src/gui/components/cc_base.h @@ -96,6 +96,10 @@ class CComponents : public CComponentsSignals, public COSDFader uint8_t cc_body_gradient_saturation; ///property: background gradient direction int cc_body_gradient_direction; + ///property: background gradient mode + bool cc_body_gradient_c2c; + ///property: background gradient 2nd color + fb_pixel_t cc_body_gradient_2nd_col; ///property: true=component has shadow bool shadow; @@ -210,6 +214,8 @@ class CComponents : public CComponentsSignals, public COSDFader cc_body_gradient_intensity_v_max=v_max; cc_body_gradient_saturation=s; }; + virtual void set2ndColor(fb_pixel_t col_2nd){ cc_body_gradient_c2c = true; cc_body_gradient_2nd_col = col_2nd;}; + ///get frame color inline virtual fb_pixel_t getColorFrame(){return col_frame;}; ///get body color diff --git a/src/gui/components/cc_item.cpp b/src/gui/components/cc_item.cpp index c8e9a516b..28e822602 100644 --- a/src/gui/components/cc_item.cpp +++ b/src/gui/components/cc_item.cpp @@ -268,7 +268,10 @@ void CComponentsItem::initBodyGradient() if (cc_gradientData.gradientBuf == NULL) { CColorGradient ccGradient; int gsize = cc_body_gradient_direction == CFrameBuffer::gradientVertical ? height : width; - cc_gradientData.gradientBuf = ccGradient.gradientOneColor(col_body, NULL, gsize, cc_body_gradient_mode, cc_body_gradient_intensity, cc_body_gradient_intensity_v_min, cc_body_gradient_intensity_v_max, cc_body_gradient_saturation); + if (cc_body_gradient_c2c) + cc_gradientData.gradientBuf = ccGradient.gradientColorToColor(col_body, cc_body_gradient_2nd_col, NULL, gsize, cc_body_gradient_mode, cc_body_gradient_intensity); + else + cc_gradientData.gradientBuf = ccGradient.gradientOneColor(col_body, NULL, gsize, cc_body_gradient_mode, cc_body_gradient_intensity, cc_body_gradient_intensity_v_min, cc_body_gradient_intensity_v_max, cc_body_gradient_saturation); old_gradient_color = col_body; }