mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-28 16:01:20 +02:00
- infoviewer: add color-to-color gradient feature; THX to TangoCash ...
... for basic inspiration and dbt for some optimizations
This commit is contained in:
@@ -1432,6 +1432,8 @@ miscsettings.infobar_disp_4 Logo+Kanalname/Kanalnummer
|
||||
miscsettings.infobar_disp_5 Logo/Signalbalken
|
||||
miscsettings.infobar_disp_6 Logo+Kanalnummer/Signalbalken
|
||||
miscsettings.infobar_disp_log Logo
|
||||
miscsettings.infobar_gradient_bottom Farbverlauf unten
|
||||
miscsettings.infobar_gradient_top Farbverlauf oben
|
||||
miscsettings.infobar_logo_hdd_dir Logo-Verz.
|
||||
miscsettings.infobar_sat_display Kabel-/Satellitenanbieter
|
||||
miscsettings.infobar_show Info bei EPG Änderungen
|
||||
|
@@ -1432,6 +1432,8 @@ miscsettings.infobar_disp_4 Logo+channel name/number
|
||||
miscsettings.infobar_disp_5 Logo+signal
|
||||
miscsettings.infobar_disp_6 Logo+channel number+signal
|
||||
miscsettings.infobar_disp_log Logo
|
||||
miscsettings.infobar_gradient_bottom Gradient bottom
|
||||
miscsettings.infobar_gradient_top Gradient top
|
||||
miscsettings.infobar_logo_hdd_dir Logo dir
|
||||
miscsettings.infobar_sat_display Satellite display on infobar
|
||||
miscsettings.infobar_show show Info on EPG change
|
||||
|
@@ -246,9 +246,24 @@ void CInfoViewer::changePB()
|
||||
|
||||
void CInfoViewer::initClock()
|
||||
{
|
||||
|
||||
static int gradient_top = g_settings.theme.infobar_gradient_top;
|
||||
|
||||
if (gradient_top != g_settings.theme.infobar_gradient_top && clock != NULL) {
|
||||
gradient_top = g_settings.theme.infobar_gradient_top;
|
||||
clock->clearSavedScreen();
|
||||
delete clock;
|
||||
clock = NULL;
|
||||
}
|
||||
|
||||
if (clock == NULL){
|
||||
clock = new CComponentsFrmClock();
|
||||
clock->doPaintBg(true);
|
||||
clock->setClockBlink("%H.%M");
|
||||
clock->setClockIntervall(1);
|
||||
clock->doPaintBg(!gradient_top);
|
||||
clock->enableTboxSaveScreen(gradient_top);
|
||||
if (time_width)
|
||||
clock->setWidth(time_width);
|
||||
}
|
||||
|
||||
clock->setColorBody(COL_INFOBAR_PLUS_0);
|
||||
@@ -385,10 +400,12 @@ void CInfoViewer::paintBackground(int col_NumBox)
|
||||
BoxEndX - c_shadow_width, BoxEndInfoY + SHADOW_OFFSET,
|
||||
COL_INFOBAR_SHADOW_PLUS_0, c_rad_large, CORNER_BOTTOM_LEFT);
|
||||
|
||||
// background for channel name, epg data
|
||||
frameBuffer->paintBox(ChanInfoX, ChanNameY, BoxEndX, BoxEndY,
|
||||
COL_INFOBAR_PLUS_0, c_rad_large,
|
||||
CORNER_TOP_RIGHT | (showButtonBar ? 0 : CORNER_BOTTOM));
|
||||
// background for channel name/logo and clock
|
||||
paintHead();
|
||||
|
||||
// background for epg data
|
||||
frameBuffer->paintBox(ChanInfoX, ChanNameY + time_height, BoxEndX, BoxEndY,
|
||||
COL_INFOBAR_PLUS_0, c_rad_large, (showButtonBar ? CORNER_NONE : CORNER_BOTTOM));
|
||||
|
||||
// number box
|
||||
frameBuffer->paintBoxRel(BoxStartX + SHADOW_OFFSET, BoxStartY + SHADOW_OFFSET,
|
||||
@@ -399,6 +416,19 @@ void CInfoViewer::paintBackground(int col_NumBox)
|
||||
col_NumBox, c_rad_mid);
|
||||
}
|
||||
|
||||
void CInfoViewer::paintHead()
|
||||
{
|
||||
CComponentsShapeSquare header(ChanInfoX, ChanNameY, BoxEndX-ChanInfoX, time_height);
|
||||
|
||||
header.setColorBody(g_settings.theme.infobar_gradient_top ? COL_MENUHEAD_PLUS_0 : COL_INFOBAR_PLUS_0);
|
||||
header.enableColBodyGradient(g_settings.theme.infobar_gradient_top);
|
||||
header.set2ndColor(COL_INFOBAR_PLUS_0);
|
||||
header.setCorner(RADIUS_LARGE, CORNER_TOP_RIGHT);
|
||||
clock->setColorBody(header.getColorBody());
|
||||
|
||||
header.paint(CC_SAVE_SCREEN_NO);
|
||||
}
|
||||
|
||||
void CInfoViewer::show_current_next(bool new_chan, int epgpos)
|
||||
{
|
||||
CEitManager::getInstance()->getCurrentNextServiceKey(channel_id, info_CurrentNext);
|
||||
@@ -481,7 +511,6 @@ void CInfoViewer::showMovieTitle(const int playState, const t_channel_id &Channe
|
||||
last_curr_id = last_next_id = 0;
|
||||
showButtonBar = true;
|
||||
|
||||
|
||||
fileplay = true;
|
||||
reset_allScala();
|
||||
if (!gotTime)
|
||||
|
@@ -62,8 +62,6 @@ class CInfoViewer
|
||||
int InfoHeightY;
|
||||
bool fileplay;
|
||||
|
||||
int BoxStartX;
|
||||
int BoxStartY;
|
||||
int ButtonWidth;
|
||||
|
||||
// dimensions of radiotext window
|
||||
@@ -108,6 +106,7 @@ class CInfoViewer
|
||||
uint32_t lcdUpdateTimer;
|
||||
|
||||
void paintBackground(int col_Numbox);
|
||||
void paintHead();
|
||||
void show_Data( bool calledFromEvent = false );
|
||||
void display_Info(const char *current, const char *next, bool UTF8 = true,
|
||||
bool starttimes = true, const int pb_pos = -1,
|
||||
@@ -145,6 +144,8 @@ class CInfoViewer
|
||||
char aspectRatio;
|
||||
uint32_t sec_timer_id;
|
||||
|
||||
int BoxStartX;
|
||||
int BoxStartY;
|
||||
int BoxEndX;
|
||||
int BoxEndY;
|
||||
int ChanInfoX;
|
||||
|
@@ -88,8 +88,6 @@ CInfoViewerBB::CInfoViewerBB()
|
||||
bbIconInfo[0].h = 0;
|
||||
BBarY = 0;
|
||||
BBarFontY = 0;
|
||||
hddscale = NULL;
|
||||
sysscale = NULL;
|
||||
|
||||
Init();
|
||||
}
|
||||
@@ -374,8 +372,8 @@ void CInfoViewerBB::showBBButtons(const int modus)
|
||||
}
|
||||
|
||||
if (paint) {
|
||||
paintFoot(minX - g_InfoViewer->ChanInfoX);
|
||||
int last_x = minX;
|
||||
frameBuffer->paintBoxRel(g_InfoViewer->ChanInfoX, BBarY, minX - g_InfoViewer->ChanInfoX, InfoHeightY_Info, COL_INFOBAR_BUTTONS_BACKGROUND, RADIUS_LARGE, CORNER_BOTTOM); //round
|
||||
for (i = BUTTON_MAX; i > 0;) {
|
||||
--i;
|
||||
if ((bbButtonInfo[i].x <= g_InfoViewer->ChanInfoX) || (bbButtonInfo[i].x >= g_InfoViewer->BoxEndX) || (!bbButtonInfo[i].paint))
|
||||
@@ -415,7 +413,7 @@ void CInfoViewerBB::showBBIcons(const int modus, const std::string & icon)
|
||||
return;
|
||||
if ((modus >= CInfoViewerBB::ICON_SUBT) && (modus < CInfoViewerBB::ICON_MAX) && (bbIconInfo[modus].x != -1) && (is_visible)) {
|
||||
frameBuffer->paintIcon(icon, bbIconInfo[modus].x, BBarY,
|
||||
InfoHeightY_Info, 1, true, true, COL_INFOBAR_BUTTONS_BACKGROUND);
|
||||
InfoHeightY_Info, 1, true, !g_settings.theme.infobar_gradient_bottom, COL_INFOBAR_BUTTONS_BACKGROUND);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -432,7 +430,7 @@ void CInfoViewerBB::paintshowButtonBar()
|
||||
if (g_settings.casystem_display < 2)
|
||||
paintCA_bar(0,0);
|
||||
|
||||
frameBuffer->paintBoxRel(g_InfoViewer->ChanInfoX, BBarY, g_InfoViewer->BoxEndX - g_InfoViewer->ChanInfoX, InfoHeightY_Info, COL_INFOBAR_BUTTONS_BACKGROUND, RADIUS_LARGE, CORNER_BOTTOM); //round
|
||||
paintFoot();
|
||||
|
||||
g_InfoViewer->showSNR();
|
||||
|
||||
@@ -453,6 +451,21 @@ void CInfoViewerBB::paintshowButtonBar()
|
||||
showSysfsHdd();
|
||||
}
|
||||
|
||||
void CInfoViewerBB::paintFoot(int w)
|
||||
{
|
||||
int width = (w == 0) ? g_InfoViewer->BoxEndX - g_InfoViewer->ChanInfoX : w;
|
||||
|
||||
CComponentsShapeSquare foot(g_InfoViewer->ChanInfoX, BBarY, width, InfoHeightY_Info);
|
||||
|
||||
foot.setColorBody(COL_INFOBAR_BUTTONS_BACKGROUND);
|
||||
foot.enableColBodyGradient(g_settings.theme.infobar_gradient_bottom);
|
||||
foot.setColBodyGradient(CColorGradient::gradientDark2Light, CFrameBuffer::gradientVertical);
|
||||
foot.setCorner(RADIUS_LARGE, CORNER_BOTTOM);
|
||||
foot.set2ndColor(COL_INFOBAR_PLUS_0);
|
||||
|
||||
foot.paint(CC_SAVE_SCREEN_NO);
|
||||
}
|
||||
|
||||
void CInfoViewerBB::showIcon_SubT()
|
||||
{
|
||||
if (!is_visible)
|
||||
|
@@ -109,6 +109,7 @@ class CInfoViewerBB
|
||||
|
||||
CProgressBar *hddscale, *sysscale;
|
||||
|
||||
void paintFoot(int w = 0);
|
||||
void showBBIcons(const int modus, const std::string & icon);
|
||||
void getBBIconInfo(void);
|
||||
bool checkBBIcon(const char * const icon, int *w, int *h);
|
||||
|
@@ -723,6 +723,7 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors)
|
||||
oj->setHint("", LOCALE_MENU_HINT_COLOR_GRADIENT);
|
||||
menu_colors->addItem(oj);
|
||||
|
||||
// infoviewer color
|
||||
CColorChooser* chInfobarcolor = new CColorChooser(LOCALE_COLORMENU_BACKGROUND, &t.infobar_red,
|
||||
&t.infobar_green, &t.infobar_blue, &t.infobar_alpha, colorSetupNotifier);
|
||||
CColorChooser* chInfobarTextcolor = new CColorChooser(LOCALE_COLORMENU_TEXTCOLOR, &t.infobar_Text_red,
|
||||
@@ -737,6 +738,17 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors)
|
||||
mf->setHint("", LOCALE_MENU_HINT_INFOBAR_TEXTCOLOR);
|
||||
menu_colors->addItem(mf);
|
||||
|
||||
// infoviewer gradient top
|
||||
oj = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_GRADIENT_TOP, &t.infobar_gradient_top, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true);
|
||||
oj->setHint("", LOCALE_MENU_HINT_COLOR_GRADIENT);
|
||||
menu_colors->addItem(oj);
|
||||
|
||||
// infoviewer gradient bottom
|
||||
oj = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_GRADIENT_BOTTOM, &t.infobar_gradient_bottom, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true);
|
||||
oj->setHint("", LOCALE_MENU_HINT_COLOR_GRADIENT);
|
||||
menu_colors->addItem(oj);
|
||||
|
||||
// colored events
|
||||
CColorChooser* chColored_Events = new CColorChooser(LOCALE_COLORMENU_TEXTCOLOR, &t.colored_events_red,
|
||||
&t.colored_events_green, &t.colored_events_blue, NULL, colorSetupNotifier);
|
||||
|
||||
|
@@ -275,6 +275,8 @@ void CThemes::setTheme(CConfigFile &configfile)
|
||||
configfile.setInt32( "infobar_red", t.infobar_red );
|
||||
configfile.setInt32( "infobar_green", t.infobar_green );
|
||||
configfile.setInt32( "infobar_blue", t.infobar_blue );
|
||||
configfile.setInt32( "infobar_gradient_top", t.infobar_gradient_top );
|
||||
configfile.setInt32( "infobar_gradient_bottom", t.infobar_gradient_bottom );
|
||||
configfile.setInt32( "infobar_Text_alpha", t.infobar_Text_alpha );
|
||||
configfile.setInt32( "infobar_Text_red", t.infobar_Text_red );
|
||||
configfile.setInt32( "infobar_Text_green", t.infobar_Text_green );
|
||||
@@ -330,6 +332,8 @@ void CThemes::getTheme(CConfigFile &configfile)
|
||||
t.infobar_red = configfile.getInt32( "infobar_red", 0x00 );
|
||||
t.infobar_green = configfile.getInt32( "infobar_green", 0x0e );
|
||||
t.infobar_blue = configfile.getInt32( "infobar_blue", 0x23 );
|
||||
t.infobar_gradient_top = configfile.getInt32( "infobar_gradient_top", 0 );
|
||||
t.infobar_gradient_bottom = configfile.getInt32( "infobar_gradient_bottom", 0 );
|
||||
t.infobar_Text_alpha = configfile.getInt32( "infobar_Text_alpha", 0x00 );
|
||||
t.infobar_Text_red = configfile.getInt32( "infobar_Text_red", 0x64 );
|
||||
t.infobar_Text_green = configfile.getInt32( "infobar_Text_green", 0x64 );
|
||||
|
@@ -1459,6 +1459,8 @@ typedef enum
|
||||
LOCALE_MISCSETTINGS_INFOBAR_DISP_5,
|
||||
LOCALE_MISCSETTINGS_INFOBAR_DISP_6,
|
||||
LOCALE_MISCSETTINGS_INFOBAR_DISP_LOG,
|
||||
LOCALE_MISCSETTINGS_INFOBAR_GRADIENT_BOTTOM,
|
||||
LOCALE_MISCSETTINGS_INFOBAR_GRADIENT_TOP,
|
||||
LOCALE_MISCSETTINGS_INFOBAR_LOGO_HDD_DIR,
|
||||
LOCALE_MISCSETTINGS_INFOBAR_SAT_DISPLAY,
|
||||
LOCALE_MISCSETTINGS_INFOBAR_SHOW,
|
||||
|
@@ -1459,6 +1459,8 @@ const char * locale_real_names[] =
|
||||
"miscsettings.infobar_disp_5",
|
||||
"miscsettings.infobar_disp_6",
|
||||
"miscsettings.infobar_disp_log",
|
||||
"miscsettings.infobar_gradient_bottom",
|
||||
"miscsettings.infobar_gradient_top",
|
||||
"miscsettings.infobar_logo_hdd_dir",
|
||||
"miscsettings.infobar_sat_display",
|
||||
"miscsettings.infobar_show",
|
||||
|
@@ -104,6 +104,9 @@ struct SNeutrinoTheme
|
||||
unsigned char infobar_Text_green;
|
||||
unsigned char infobar_Text_blue;
|
||||
|
||||
int infobar_gradient_top;
|
||||
int infobar_gradient_bottom;
|
||||
|
||||
unsigned char colored_events_alpha;
|
||||
unsigned char colored_events_red;
|
||||
unsigned char colored_events_green;
|
||||
@@ -370,6 +373,8 @@ struct SNeutrinoSettings
|
||||
int colored_events_channellist;
|
||||
int colored_events_infobar;
|
||||
int contrast_fonts;
|
||||
int infobar_gradient_top;
|
||||
int infobar_gradient_bottom;
|
||||
|
||||
//network
|
||||
#define NETWORK_NFS_NR_OF_ENTRIES 8
|
||||
|
Reference in New Issue
Block a user