summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2013-07-19 15:42:16 +0200
committerlouis <louis.braun@gmx.de>2013-07-19 15:42:16 +0200
commit98a301eff519a3fcf8f77055ebaa2c1dce9bb30f (patch)
treed80b12cba1bb207f0baccbc68ea29aecdc367b71
parentbd9e0c62f3c6055a5aecb5bdb77f418f580ddbf9 (diff)
downloadvdr-plugin-tvguide-98a301eff519a3fcf8f77055ebaa2c1dce9bb30f.tar.gz
vdr-plugin-tvguide-98a301eff519a3fcf8f77055ebaa2c1dce9bb30f.tar.bz2
color buttons displayed as configured in VDR
-rw-r--r--HISTORY1
-rw-r--r--footer.c43
-rw-r--r--footer.h2
3 files changed, 40 insertions, 6 deletions
diff --git a/HISTORY b/HISTORY
index deb9d8b..688779e 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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
diff --git a/footer.c b/footer.c
index 7a19053..1f273f9 100644
--- a/footer.c
+++ b/footer.c
@@ -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) {
diff --git a/footer.h b/footer.h
index 1c75a14..b6b7cc6 100644
--- a/footer.h
+++ b/footer.h
@@ -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);