color buttons displayed as configured in VDR

This commit is contained in:
louis 2013-07-19 15:42:16 +02:00
parent bd9e0c62f3
commit 98a301eff5
3 changed files with 40 additions and 6 deletions

View File

@ -56,3 +56,4 @@ VDR Plugin 'tvguide' Revision History
folders are read from VDRs folders list
- recording folder also choosable for series timers
- blue button also available in detail view
- color buttons displayed as configured in VDR

View File

@ -7,6 +7,7 @@ cFooter::cFooter(cChannelGroups *channelGroups) {
buttonWidth = (tvguideConfig.osdWidth - tvguideConfig.timeLineWidth - 5*buttonBorder)/4;
buttonHeight= tvguideConfig.footerHeight - 2*buttonBorder;
buttonY = (tvguideConfig.footerHeight - buttonHeight)/2;
SetButtonPositions();
footer = osdManager.requestPixmap(2, cRect( tvguideConfig.timeLineWidth,
tvguideConfig.osdHeight - tvguideConfig.footerHeight,
@ -20,6 +21,36 @@ cFooter::~cFooter(void) {
osdManager.releasePixmap(footer);
}
void cFooter::SetButtonPositions(void) {
for (int i=0; i < 4; i++) {
positionButtons[i] = -1;
}
/*
red button = 0
green button = 1
yellow button = 2
blue button = 3
*/
for (int button=0; button<4; button++) {
if (Setup.ColorKey0 == button) {
positionButtons[button] = 0;
continue;
}
if (Setup.ColorKey1 == button) {
positionButtons[button] = 1;
continue;
}
if (Setup.ColorKey2 == button) {
positionButtons[button] = 2;
continue;
}
if (Setup.ColorKey3 == button) {
positionButtons[button] = 3;
continue;
}
}
}
void cFooter::DrawButton(const char *text, tColor color, tColor borderColor, int num) {
tColor colorTextBack = (tvguideConfig.useBlending==0)?color:clrTransparent;
int left = num * buttonWidth + (num + 1) * buttonBorder;
@ -39,27 +70,27 @@ void cFooter::DrawButton(const char *text, tColor color, tColor borderColor, int
void cFooter::drawRedButton() {
cString text(tr("Search & Rec"));
DrawButton(*text, theme.Color(clrButtonRed), theme.Color(clrButtonRedBorder), 0);
DrawButton(*text, theme.Color(clrButtonRed), theme.Color(clrButtonRedBorder), positionButtons[0]);
}
void cFooter::drawGreenButton() {
cString text = cString::sprintf("%d %s", tvguideConfig.jumpChannels, tr("Channels back"));
DrawButton(*text, theme.Color(clrButtonGreen), theme.Color(clrButtonGreenBorder), 1);
DrawButton(*text, theme.Color(clrButtonGreen), theme.Color(clrButtonGreenBorder), positionButtons[1]);
}
void cFooter::drawGreenButton(const char *text) {
std::string cuttedText = CutText(text, buttonWidth-6, tvguideConfig.FontButton);
DrawButton(cuttedText.c_str(), theme.Color(clrButtonGreen), theme.Color(clrButtonGreenBorder), 1);
DrawButton(cuttedText.c_str(), theme.Color(clrButtonGreen), theme.Color(clrButtonGreenBorder), positionButtons[1]);
}
void cFooter::drawYellowButton() {
cString text = cString::sprintf("%d %s", tvguideConfig.jumpChannels, tr("Channels forward"));
DrawButton(*text, theme.Color(clrButtonYellow), theme.Color(clrButtonYellowBorder), 2);
DrawButton(*text, theme.Color(clrButtonYellow), theme.Color(clrButtonYellowBorder), positionButtons[2]);
}
void cFooter::drawYellowButton(const char *text) {
std::string cuttedText = CutText(text, buttonWidth-6, tvguideConfig.FontButton);
DrawButton(cuttedText.c_str(), theme.Color(clrButtonYellow), theme.Color(clrButtonYellowBorder), 2);
DrawButton(cuttedText.c_str(), theme.Color(clrButtonYellow), theme.Color(clrButtonYellowBorder), positionButtons[2]);
}
void cFooter::drawBlueButton() {
@ -68,7 +99,7 @@ void cFooter::drawBlueButton() {
text = tr("Switch to Channel");
else if (tvguideConfig.blueKeyMode == 1)
text = tr("Detailed EPG");
DrawButton(*text, theme.Color(clrButtonBlue), theme.Color(clrButtonBlueBorder), 3);
DrawButton(*text, theme.Color(clrButtonBlue), theme.Color(clrButtonBlueBorder), positionButtons[3]);
}
void cFooter::UpdateGroupButtons(const cChannel *channel) {

View File

@ -10,8 +10,10 @@ private:
int buttonHeight;
int buttonY;
int buttonBorder;
int positionButtons[4];
cChannelGroups *channelGroups;
int currentGroup;
void SetButtonPositions(void);
void DrawButton(const char *text, tColor color, tColor borderColor, int num);
public:
cFooter(cChannelGroups *channelGroups);