restructured detailöed EPG View that tv frame and status buttons are displayed

This commit is contained in:
louis 2014-01-11 16:53:23 +01:00
parent 9b45a5d093
commit 3121910dc1
25 changed files with 118 additions and 103 deletions

View File

@ -103,3 +103,5 @@ Version 1.1.0
- Added possibility to manage EPG Search Timers in red button recording - Added possibility to manage EPG Search Timers in red button recording
menu menu
- completely refactored recording menu - completely refactored recording menu
- restructured detailöed EPG View that tv frame and status buttons
are displayed

View File

@ -12,9 +12,8 @@ cTvguideConfig::cTvguideConfig() {
displayTime = 160; displayTime = 160;
displayStatusHeader = 1; displayStatusHeader = 1;
displayChannelGroups = 1; displayChannelGroups = 1;
statusHeaderPercent = 20; headerHeightPercent = 20;
channelGroupsPercent = 5; channelGroupsPercent = 5;
epgViewHeaderPercent = 25;
epgViewBorder = 50; epgViewBorder = 50;
scaleVideo = 1; scaleVideo = 1;
decorateVideo = 1; decorateVideo = 1;
@ -217,9 +216,8 @@ bool cTvguideConfig::SetupParse(const char *Name, const char *Value) {
else if (strcmp(Name, "showTimeInGrid") == 0) showTimeInGrid = atoi(Value); else if (strcmp(Name, "showTimeInGrid") == 0) showTimeInGrid = atoi(Value);
else if (strcmp(Name, "displayStatusHeader") == 0) displayStatusHeader = atoi(Value); else if (strcmp(Name, "displayStatusHeader") == 0) displayStatusHeader = atoi(Value);
else if (strcmp(Name, "displayChannelGroups") == 0) displayChannelGroups = atoi(Value); else if (strcmp(Name, "displayChannelGroups") == 0) displayChannelGroups = atoi(Value);
else if (strcmp(Name, "statusHeaderPercent") == 0) statusHeaderPercent = atoi(Value); else if (strcmp(Name, "headerHeightPercent") == 0) headerHeightPercent = atoi(Value);
else if (strcmp(Name, "channelGroupsPercent") == 0) channelGroupsPercent = atoi(Value); else if (strcmp(Name, "channelGroupsPercent") == 0) channelGroupsPercent = atoi(Value);
else if (strcmp(Name, "epgViewHeaderPercent") == 0) epgViewHeaderPercent = atoi(Value);
else if (strcmp(Name, "epgViewBorder") == 0) epgViewBorder = atoi(Value); else if (strcmp(Name, "epgViewBorder") == 0) epgViewBorder = atoi(Value);
else if (strcmp(Name, "scaleVideo") == 0) scaleVideo = atoi(Value); else if (strcmp(Name, "scaleVideo") == 0) scaleVideo = atoi(Value);
else if (strcmp(Name, "decorateVideo") == 0) decorateVideo = atoi(Value); else if (strcmp(Name, "decorateVideo") == 0) decorateVideo = atoi(Value);

View File

@ -46,9 +46,8 @@ class cTvguideConfig {
int displayTime; int displayTime;
int displayStatusHeader; int displayStatusHeader;
int displayChannelGroups; int displayChannelGroups;
int statusHeaderPercent; int headerHeightPercent;
int channelGroupsPercent; int channelGroupsPercent;
int epgViewHeaderPercent;
int epgViewBorder; int epgViewBorder;
int scaleVideo; int scaleVideo;
int decorateVideo; int decorateVideo;

View File

@ -8,17 +8,19 @@
#include "tools.h" #include "tools.h"
#include "detailview.h" #include "detailview.h"
cDetailView::cDetailView(const cEvent *event) { cDetailView::cDetailView(const cEvent *event, cFooter *footer) {
this->event = event; this->event = event;
this->footer = footer;
imgScrollBar = NULL; imgScrollBar = NULL;
border = tvguideConfig.epgViewBorder; //px, border in view window border = tvguideConfig.epgViewBorder; //px, border in view window
scrollBarWidth = 40; scrollBarWidth = 40;
headerWidth = geoManager.headerContentWidth;
headerHeight = geoManager.epgViewHeaderHeight; headerHeight = geoManager.epgViewHeaderHeight;
pixmapPoster = NULL; pixmapPoster = NULL;
width = geoManager.osdWidth; width = geoManager.osdWidth;
contentWidth = width - scrollBarWidth; contentWidth = width - scrollBarWidth;
contentX = 0; contentX = 0;
contentHeight = geoManager.osdHeight - headerHeight; contentHeight = geoManager.osdHeight - headerHeight - geoManager.footerHeight;
widthPoster = 30 * contentWidth / 100; widthPoster = 30 * contentWidth / 100;
} }
@ -31,8 +33,6 @@ cDetailView::~cDetailView(void){
header = NULL; header = NULL;
osdManager.releasePixmap(headerLogo); osdManager.releasePixmap(headerLogo);
headerLogo = NULL; headerLogo = NULL;
osdManager.releasePixmap(headerBack);
headerBack = NULL;
osdManager.releasePixmap(content); osdManager.releasePixmap(content);
content = NULL; content = NULL;
if (pixmapPoster) if (pixmapPoster)
@ -40,9 +40,8 @@ cDetailView::~cDetailView(void){
pixmapPoster = NULL; pixmapPoster = NULL;
osdManager.releasePixmap(scrollBar); osdManager.releasePixmap(scrollBar);
scrollBar = NULL; scrollBar = NULL;
osdManager.releasePixmap(footer);
footer = NULL;
delete imgScrollBar; delete imgScrollBar;
footer->LeaveDetailedViewMode(Channels.GetByChannelID(event->ChannelID()));
} }
void cDetailView::setContent() { void cDetailView::setContent() {
@ -120,13 +119,11 @@ bool cDetailView::setContentDrawportHeight() {
} }
void cDetailView::createPixmaps() { void cDetailView::createPixmaps() {
back = osdManager.requestPixmap(3, cRect(0, 0, geoManager.osdWidth, geoManager.osdHeight), cRect::Null); back = osdManager.requestPixmap(3, cRect(0, 0, width, headerHeight + contentHeight), cRect::Null);
back->Fill(clrBlack); back->Fill(clrBlack);
header = new cStyledPixmap(osdManager.requestPixmap(5, cRect(0, 0, width, headerHeight), cRect::Null)); header = new cStyledPixmap(osdManager.requestPixmap(5, cRect(0, 0, headerWidth, headerHeight), cRect::Null));
headerLogo = osdManager.requestPixmap(6, cRect(0, 0, width, headerHeight), cRect::Null); headerLogo = osdManager.requestPixmap(6, cRect(0, 0, width, headerHeight), cRect::Null);
headerLogo->Fill(clrTransparent); headerLogo->Fill(clrTransparent);
headerBack = osdManager.requestPixmap(4, cRect(0, 0, width, headerHeight), cRect::Null);
headerBack->Fill(clrBlack);
header->setColor(theme.Color(clrHeader), theme.Color(clrHeaderBlending)); header->setColor(theme.Color(clrHeader), theme.Color(clrHeaderBlending));
content = osdManager.requestPixmap(5, cRect(contentX, headerHeight, contentWidth, contentHeight), content = osdManager.requestPixmap(5, cRect(contentX, headerHeight, contentWidth, contentHeight),
cRect(0,0, contentWidth, max(heightContent, contentHeight))); cRect(0,0, contentWidth, max(heightContent, contentHeight)));
@ -136,18 +133,23 @@ void cDetailView::createPixmaps() {
pixmapPoster->DrawRectangle(cRect(2, 0, widthPoster - 2, content->DrawPort().Height()), theme.Color(clrBackground)); pixmapPoster->DrawRectangle(cRect(2, 0, widthPoster - 2, content->DrawPort().Height()), theme.Color(clrBackground));
} }
scrollBar = osdManager.requestPixmap(5, cRect(geoManager.osdWidth - scrollBarWidth, headerHeight, scrollBarWidth, contentHeight)); scrollBar = osdManager.requestPixmap(5, cRect(geoManager.osdWidth - scrollBarWidth, headerHeight, scrollBarWidth, contentHeight));
footer = osdManager.requestPixmap(5, cRect(0, headerHeight + content->ViewPort().Height(), width, 3));
footer->Fill(theme.Color(clrBorder));
} }
void cDetailView::drawHeader() { void cDetailView::drawHeader() {
header->Fill(clrTransparent);
if (tvguideConfig.style == eStyleGraphical) { if (tvguideConfig.style == eStyleGraphical) {
header->drawBackgroundGraphical(bgEpgHeader); if (tvguideConfig.scaleVideo) {
header->drawBackgroundGraphical(bgStatusHeaderWindowed);
} else {
header->drawBackgroundGraphical(bgStatusHeaderFull);
}
} else { } else {
header->drawBackground(); header->drawBackground();
header->drawBoldBorder(); header->drawBoldBorder();
} }
if (tvguideConfig.scaleVideo) {
back->DrawRectangle(cRect(headerWidth, 0, geoManager.tvFrameWidth, headerHeight), clrTransparent);
}
tColor colorTextBack = (tvguideConfig.style == eStyleFlat)?theme.Color(clrHeader):clrTransparent; tColor colorTextBack = (tvguideConfig.style == eStyleFlat)?theme.Color(clrHeader):clrTransparent;
int logoHeight = 2 * header->Height() / 3; int logoHeight = 2 * header->Height() / 3;
int logoWidth = logoHeight * tvguideConfig.logoWidthRatio / tvguideConfig.logoHeightRatio; int logoWidth = logoHeight * tvguideConfig.logoWidthRatio / tvguideConfig.logoHeightRatio;
@ -171,16 +173,16 @@ void cDetailView::drawHeader() {
epgImageWidth = epgImageHeight * tvguideConfig.epgImageWidth / tvguideConfig.epgImageHeight; epgImageWidth = epgImageHeight * tvguideConfig.epgImageWidth / tvguideConfig.epgImageHeight;
if (imgLoader.LoadEPGImage(event->EventID(), epgImageWidth, epgImageHeight)) { if (imgLoader.LoadEPGImage(event->EventID(), epgImageWidth, epgImageHeight)) {
cImage epgImage = imgLoader.GetImage(); cImage epgImage = imgLoader.GetImage();
int epgImageX = header->Width() - border - epgImageWidth; int epgImageX = headerWidth - border - epgImageWidth;
int epgImageY = (header->Height() - epgImageHeight) / 2; int epgImageY = (headerHeight - epgImageHeight) / 2;
header->DrawRectangle(cRect(epgImageX-2, epgImageY-2, epgImageWidth + 4, epgImageHeight + 4), theme.Color(clrBorder)); header->DrawRectangle(cRect(epgImageX-2, epgImageY-2, epgImageWidth + 4, epgImageHeight + 4), theme.Color(clrBorder));
header->DrawImage(cPoint(epgImageX, epgImageY), epgImage); header->DrawImage(cPoint(epgImageX, epgImageY), epgImage);
epgImageDrawn = true; epgImageDrawn = true;
} }
} }
int textX = logoDrawn?(border + logoWidth + 5):border; int textX = logoDrawn?(border + logoWidth + 5):border;
int textY = (header->Height() - 7*lineHeight/2)/2; int textY = (headerHeight - 7*lineHeight/2)/2;
int maxTextWidth = header->Width() - 2 * border; int maxTextWidth = headerWidth - 2 * border;
if (logoDrawn) if (logoDrawn)
maxTextWidth -= logoWidth; maxTextWidth -= logoWidth;
if (epgImageDrawn) if (epgImageDrawn)
@ -211,9 +213,8 @@ void cDetailView::drawHeader() {
} }
} }
void cDetailView::drawRecIcon() { void cDetailView::drawRecIcon(void) {
cString recIconText(" REC "); cString recIconText(" REC ");
int headerWidth = width;
int widthIcon = fontManager.FontDetailHeader->Width(*recIconText); int widthIcon = fontManager.FontDetailHeader->Width(*recIconText);
int height = fontManager.FontDetailHeader->Height()+10; int height = fontManager.FontDetailHeader->Height()+10;
int posX = headerWidth - widthIcon - 20; int posX = headerWidth - widthIcon - 20;

View File

@ -6,6 +6,7 @@
#include <vdr/epg.h> #include <vdr/epg.h>
#include "services/tvscraper.h" #include "services/tvscraper.h"
#include "styledpixmap.h" #include "styledpixmap.h"
#include "footer.h"
// --- cDetailView ------------------------------------------------------------- // --- cDetailView -------------------------------------------------------------
@ -16,11 +17,10 @@ private:
cPixmap *back; cPixmap *back;
cStyledPixmap *header; cStyledPixmap *header;
cPixmap *headerLogo; cPixmap *headerLogo;
cPixmap *headerBack;
cPixmap *content; cPixmap *content;
cPixmap *pixmapPoster; cPixmap *pixmapPoster;
cPixmap *scrollBar; cPixmap *scrollBar;
cPixmap *footer; cFooter *footer;
const cEvent *event; const cEvent *event;
cImage *imgScrollBar; cImage *imgScrollBar;
cTextWrapper description; cTextWrapper description;
@ -28,6 +28,7 @@ private:
TVScraperGetFullInformation mediaInfo; TVScraperGetFullInformation mediaInfo;
bool hasAdditionalMedia; bool hasAdditionalMedia;
int border; int border;
int headerWidth;
int headerHeight; int headerHeight;
int width; int width;
int contentWidth; int contentWidth;
@ -65,7 +66,7 @@ private:
void pageDown(); void pageDown();
void Action(void); void Action(void);
public: public:
cDetailView(const cEvent *event); cDetailView(const cEvent *event, cFooter *footer);
virtual ~cDetailView(void); virtual ~cDetailView(void);
void setContent(); void setContent();
void createPixmaps(); void createPixmaps();

View File

@ -54,15 +54,31 @@ void cFooter::drawBlueButton() {
DrawButton(*text, theme.Color(clrButtonBlue), theme.Color(clrButtonBlueBorder), oeButtonBlue, positionButtons[3]); DrawButton(*text, theme.Color(clrButtonBlue), theme.Color(clrButtonBlueBorder), oeButtonBlue, positionButtons[3]);
} }
void cFooter::UpdateGroupButtons(const cChannel *channel) { void cFooter::UpdateGroupButtons(const cChannel *channel, bool force) {
if (!channel)
return;
int group = channelGroups->GetGroup(channel); int group = channelGroups->GetGroup(channel);
if (group != currentGroup) { if ((group != currentGroup) || force) {
currentGroup = group; currentGroup = group;
drawGreenButton(channelGroups->GetPrev(group)); drawGreenButton(channelGroups->GetPrev(group));
drawYellowButton(channelGroups->GetNext(group)); drawYellowButton(channelGroups->GetNext(group));
} }
} }
void cFooter::SetDetailedViewMode(void) {
ClearButton(positionButtons[1]);
ClearButton(positionButtons[2]);
}
void cFooter::LeaveDetailedViewMode(const cChannel *channel) {
if (tvguideConfig.channelJumpMode == eNumJump) {
drawGreenButton();
drawYellowButton();
} else {
UpdateGroupButtons(channel, true);
}
}
void cFooter::SetButtonPositions(void) { void cFooter::SetButtonPositions(void) {
for (int i=0; i < 4; i++) { for (int i=0; i < 4; i++) {
positionButtons[i] = -1; positionButtons[i] = -1;
@ -125,4 +141,9 @@ void cFooter::DrawButton(const char *text, tColor color, tColor borderColor, eOs
int textWidth = fontManager.FontButton->Width(text); int textWidth = fontManager.FontButton->Width(text);
int textHeight = fontManager.FontButton->Height(); int textHeight = fontManager.FontButton->Height();
footer->DrawText(cPoint(left + (geoManager.buttonWidth-textWidth)/2, buttonY + (geoManager.buttonHeight-textHeight)/2), text, theme.Color(clrFontButtons), colorTextBack, fontManager.FontButton); footer->DrawText(cPoint(left + (geoManager.buttonWidth-textWidth)/2, buttonY + (geoManager.buttonHeight-textHeight)/2), text, theme.Color(clrFontButtons), colorTextBack, fontManager.FontButton);
}
void cFooter::ClearButton(int num) {
int left = num * geoManager.buttonWidth + (2 * num + 1) * geoManager.buttonBorder;
footer->DrawRectangle(cRect(left, buttonY, geoManager.buttonWidth, geoManager.buttonHeight), clrTransparent);
} }

View File

@ -15,16 +15,19 @@ private:
int currentGroup; int currentGroup;
void SetButtonPositions(void); void SetButtonPositions(void);
void DrawButton(const char *text, tColor color, tColor borderColor, eOsdElementType buttonType, int num); void DrawButton(const char *text, tColor color, tColor borderColor, eOsdElementType buttonType, int num);
void ClearButton(int num);
public: public:
cFooter(cChannelGroups *channelGroups); cFooter(cChannelGroups *channelGroups);
virtual ~cFooter(void); virtual ~cFooter(void);
void drawRedButton(); void drawRedButton();
void drawGreenButton(); void drawGreenButton();
void drawYellowButton();
void drawGreenButton(const char *text); void drawGreenButton(const char *text);
void drawYellowButton();
void drawYellowButton(const char *text); void drawYellowButton(const char *text);
void drawBlueButton(); void drawBlueButton();
void UpdateGroupButtons(const cChannel *channel); void UpdateGroupButtons(const cChannel *channel, bool force = false);
void SetDetailedViewMode(void);
void LeaveDetailedViewMode(const cChannel *channel);
}; };
#endif //__TVGUIDE_FOOTER_H #endif //__TVGUIDE_FOOTER_H

View File

@ -20,9 +20,9 @@ bool cGeometryManager::SetGeometry(int osdWidth, int osdHeight, bool force) {
this->osdHeight = osdHeight; this->osdHeight = osdHeight;
esyslog("tvguide: Set OSD to %d x %d px", osdWidth, osdHeight); esyslog("tvguide: Set OSD to %d x %d px", osdWidth, osdHeight);
statusHeaderHeight = (tvguideConfig.displayStatusHeader)?(tvguideConfig.statusHeaderPercent * osdHeight / 100):0; statusHeaderHeight = (tvguideConfig.displayStatusHeader)?(tvguideConfig.headerHeightPercent * osdHeight / 100):0;
tvFrameWidth = statusHeaderHeight * 16 / 9; tvFrameWidth = statusHeaderHeight * 16 / 9;
statusHeaderContentWidth = (tvguideConfig.scaleVideo)?(osdWidth - tvFrameWidth):osdWidth; headerContentWidth = (tvguideConfig.scaleVideo)?(osdWidth - tvFrameWidth):osdWidth;
channelGroupsWidth = (tvguideConfig.displayChannelGroups)?(tvguideConfig.channelGroupsPercent * osdWidth / 100):0; channelGroupsWidth = (tvguideConfig.displayChannelGroups)?(tvguideConfig.channelGroupsPercent * osdWidth / 100):0;
channelGroupsHeight = (tvguideConfig.displayChannelGroups)?(tvguideConfig.channelGroupsPercent * osdHeight / 100):0; channelGroupsHeight = (tvguideConfig.displayChannelGroups)?(tvguideConfig.channelGroupsPercent * osdHeight / 100):0;
channelHeaderWidth = tvguideConfig.channelHeaderWidthPercent * osdWidth / 100; channelHeaderWidth = tvguideConfig.channelHeaderWidthPercent * osdWidth / 100;
@ -63,7 +63,7 @@ bool cGeometryManager::SetGeometry(int osdWidth, int osdHeight, bool force) {
buttonWidth = osdWidth / 4 - 2 * buttonBorder; buttonWidth = osdWidth / 4 - 2 * buttonBorder;
buttonHeight = footerHeight - 3 * buttonBorder; buttonHeight = footerHeight - 3 * buttonBorder;
epgViewHeaderHeight = tvguideConfig.epgViewHeaderPercent * osdHeight / 100; epgViewHeaderHeight = tvguideConfig.headerHeightPercent * osdHeight / 100;
borderRecMenus = 10; borderRecMenus = 10;

View File

@ -12,7 +12,7 @@ public:
int osdHeight; int osdHeight;
int statusHeaderHeight; int statusHeaderHeight;
int tvFrameWidth; int tvFrameWidth;
int statusHeaderContentWidth; int headerContentWidth;
//ChannelGroups //ChannelGroups
int channelGroupsWidth; int channelGroupsWidth;
int channelGroupsHeight; int channelGroupsHeight;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 KiB

View File

@ -57,10 +57,10 @@ void cImageCache::CreateOsdIconCache(void) {
std::string imgStatusHeaderTVFrame = "osdElements/statusheader_tvframe"; std::string imgStatusHeaderTVFrame = "osdElements/statusheader_tvframe";
success = LoadIcon(imgStatusHeaderContentFull); success = LoadIcon(imgStatusHeaderContentFull);
if (success) if (success)
InsertIntoOsdElementCache(oeStatusHeaderContentFull, geoManager.statusHeaderContentWidth, geoManager.statusHeaderHeight); InsertIntoOsdElementCache(oeStatusHeaderContentFull, geoManager.headerContentWidth, geoManager.statusHeaderHeight);
success = LoadIcon(imgStatusHeaderContentWindowed); success = LoadIcon(imgStatusHeaderContentWindowed);
if (success) if (success)
InsertIntoOsdElementCache(oeStatusHeaderContentWindowed, geoManager.statusHeaderContentWidth, geoManager.statusHeaderHeight); InsertIntoOsdElementCache(oeStatusHeaderContentWindowed, geoManager.headerContentWidth, geoManager.statusHeaderHeight);
success = LoadIcon(imgStatusHeaderTVFrame); success = LoadIcon(imgStatusHeaderTVFrame);
if (success) if (success)
InsertIntoOsdElementCache(oeStatusHeaderTVFrame, geoManager.tvFrameWidth, geoManager.statusHeaderHeight); InsertIntoOsdElementCache(oeStatusHeaderTVFrame, geoManager.tvFrameWidth, geoManager.statusHeaderHeight);
@ -118,11 +118,6 @@ void cImageCache::CreateOsdIconCache(void) {
if (success) if (success)
InsertIntoOsdElementCache(oeClock, geoManager.clockWidth, geoManager.clockHeight); InsertIntoOsdElementCache(oeClock, geoManager.clockWidth, geoManager.clockHeight);
//Detailed EPG View
success = LoadIcon("osdElements/epgview_header");
if (success)
InsertIntoOsdElementCache(oeEpgHeader, geoManager.osdWidth, geoManager.epgViewHeaderHeight);
//Channel Jump //Channel Jump
success = LoadIcon("osdElements/channel_jump"); success = LoadIcon("osdElements/channel_jump");
if (success) if (success)

View File

@ -29,7 +29,6 @@ enum eOsdElementType {
oeTimeline2, oeTimeline2,
oeDateViewer, oeDateViewer,
oeClock, oeClock,
oeEpgHeader,
oeChannelJump, oeChannelJump,
}; };

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\n" "Project-Id-Version: vdr-tvguide 0.0.1\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-01-10 11:54+0100\n" "POT-Creation-Date: 2014-01-11 16:02+0100\n"
"PO-Revision-Date: 2013-09-21 17:49+0200\n" "PO-Revision-Date: 2013-09-21 17:49+0200\n"
"Last-Translator: My friend <Sampep> Thanks David <Gabychan> <gbonich@gmail.com>\n" "Last-Translator: My friend <Sampep> Thanks David <Gabychan> <gbonich@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -603,15 +603,15 @@ msgstr "Alçada cronologia (% alçada OSD)"
msgid "Display time in EPG Grids" msgid "Display time in EPG Grids"
msgstr "Mostra el temps a l'EPG" msgstr "Mostra el temps a l'EPG"
msgid "Height of Headers (Status Header and EPG View, Perc. of osd height)"
msgstr ""
msgid "Height of Footer (Perc. of osd height)" msgid "Height of Footer (Perc. of osd height)"
msgstr "" msgstr ""
msgid "Display status header" msgid "Display status header"
msgstr "Mostra capçalera d'estat" msgstr "Mostra capçalera d'estat"
msgid "Height of status header (Perc. of osd height)"
msgstr "Alçada capçalera d'estat (% alçada OSD)"
msgid "Scale video to upper right corner" msgid "Scale video to upper right corner"
msgstr "Escala de vídeo a cantonada superior dreta" msgstr "Escala de vídeo a cantonada superior dreta"
@ -645,9 +645,6 @@ msgstr "Proporció amplada logotip"
msgid "Logo height ratio" msgid "Logo height ratio"
msgstr "Proporció alçada logotip" msgstr "Proporció alçada logotip"
msgid "Height of Header in Detailed View (Perc. of osd height)"
msgstr ""
msgid "Text Border in Detailed View (pixel)" msgid "Text Border in Detailed View (pixel)"
msgstr "" msgstr ""
@ -756,5 +753,8 @@ msgstr ""
msgid "Recording Menus Icon Cache" msgid "Recording Menus Icon Cache"
msgstr "" msgstr ""
#~ msgid "Height of status header (Perc. of osd height)"
#~ msgstr "Alçada capçalera d'estat (% alçada OSD)"
#~ msgid "Configure Search Timer Options for Search String" #~ msgid "Configure Search Timer Options for Search String"
#~ msgstr "Configura opcions de cerca de temporitzadors amb text" #~ msgstr "Configura opcions de cerca de temporitzadors amb text"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\n" "Project-Id-Version: vdr-tvguide 0.0.1\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-01-10 11:54+0100\n" "POT-Creation-Date: 2014-01-11 16:02+0100\n"
"PO-Revision-Date: 2012-08-25 17:49+0200\n" "PO-Revision-Date: 2012-08-25 17:49+0200\n"
"Last-Translator: Horst\n" "Last-Translator: Horst\n"
"Language-Team: \n" "Language-Team: \n"
@ -28,7 +28,7 @@ msgid "No EPG Information available"
msgstr "Keine EPG Daten verfügbar" msgstr "Keine EPG Daten verfügbar"
msgid "Search & Rec" msgid "Search & Rec"
msgstr "Search & Rec" msgstr "Suchen & Aufn."
msgid "Channels back" msgid "Channels back"
msgstr "Kanäle zurück" msgstr "Kanäle zurück"
@ -600,15 +600,15 @@ msgstr "Höhe der Zeitleiste (% der OSD Höhe)"
msgid "Display time in EPG Grids" msgid "Display time in EPG Grids"
msgstr "Zeit in EPG Grids anzeigen" msgstr "Zeit in EPG Grids anzeigen"
msgid "Height of Headers (Status Header and EPG View, Perc. of osd height)"
msgstr "Höhe der Header (Status Header und EPG View, % der OSD Höhe)"
msgid "Height of Footer (Perc. of osd height)" msgid "Height of Footer (Perc. of osd height)"
msgstr "Höhe des Footers (% der OSD Höhe)" msgstr "Höhe des Footers (% der OSD Höhe)"
msgid "Display status header" msgid "Display status header"
msgstr "Status Header anzeigen" msgstr "Status Header anzeigen"
msgid "Height of status header (Perc. of osd height)"
msgstr "Höhe des Status Headers (% der OSD Höhe)"
msgid "Scale video to upper right corner" msgid "Scale video to upper right corner"
msgstr "Video in obere rechte Ecke skalieren" msgstr "Video in obere rechte Ecke skalieren"
@ -642,9 +642,6 @@ msgstr "Logo Breitenverhältnis"
msgid "Logo height ratio" msgid "Logo height ratio"
msgstr "Logo Höhenverhältnis" msgstr "Logo Höhenverhältnis"
msgid "Height of Header in Detailed View (Perc. of osd height)"
msgstr "Höhe des Headers im detailierten EPG View (% der OSD Höhe)"
msgid "Text Border in Detailed View (pixel)" msgid "Text Border in Detailed View (pixel)"
msgstr "Rand im detailierten EPG View" msgstr "Rand im detailierten EPG View"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 1.0.0\n" "Project-Id-Version: vdr-tvguide 1.0.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-01-10 11:54+0100\n" "POT-Creation-Date: 2014-01-11 16:02+0100\n"
"PO-Revision-Date: 2013-09-25 17:49+0400\n" "PO-Revision-Date: 2013-09-25 17:49+0400\n"
"Last-Translator: AmiD, ilya\n" "Last-Translator: AmiD, ilya\n"
"Language-Team: Russia-Cherepovets(wm.amid@gmail.com)\n" "Language-Team: Russia-Cherepovets(wm.amid@gmail.com)\n"
@ -600,15 +600,15 @@ msgstr "Высота таймлинии (% от высоты OSD)"
msgid "Display time in EPG Grids" msgid "Display time in EPG Grids"
msgstr "Показывать время в сетке EPG" msgstr "Показывать время в сетке EPG"
msgid "Height of Headers (Status Header and EPG View, Perc. of osd height)"
msgstr ""
msgid "Height of Footer (Perc. of osd height)" msgid "Height of Footer (Perc. of osd height)"
msgstr "" msgstr ""
msgid "Display status header" msgid "Display status header"
msgstr "Показывать верхнюю панель" msgstr "Показывать верхнюю панель"
msgid "Height of status header (Perc. of osd height)"
msgstr "Высота верхней панели (% от высоты OSD)"
msgid "Scale video to upper right corner" msgid "Scale video to upper right corner"
msgstr "Показывать видео в правом верхнем углу" msgstr "Показывать видео в правом верхнем углу"
@ -642,9 +642,6 @@ msgstr "Ширина логотипов"
msgid "Logo height ratio" msgid "Logo height ratio"
msgstr "Высота логотипов" msgstr "Высота логотипов"
msgid "Height of Header in Detailed View (Perc. of osd height)"
msgstr ""
msgid "Text Border in Detailed View (pixel)" msgid "Text Border in Detailed View (pixel)"
msgstr "" msgstr ""
@ -753,5 +750,8 @@ msgstr ""
msgid "Recording Menus Icon Cache" msgid "Recording Menus Icon Cache"
msgstr "" msgstr ""
#~ msgid "Height of status header (Perc. of osd height)"
#~ msgstr "Высота верхней панели (% от высоты OSD)"
#~ msgid "Configure Search Timer Options for Search String" #~ msgid "Configure Search Timer Options for Search String"
#~ msgstr "Настроить параметры таймера" #~ msgstr "Настроить параметры таймера"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 1.1.0\n" "Project-Id-Version: vdr-tvguide 1.1.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-01-10 11:54+0100\n" "POT-Creation-Date: 2014-01-11 16:02+0100\n"
"PO-Revision-Date: 2013-09-15 00:12+0100\n" "PO-Revision-Date: 2013-09-15 00:12+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -600,15 +600,15 @@ msgstr "V
msgid "Display time in EPG Grids" msgid "Display time in EPG Grids"
msgstr "Zobrazi» èas v EPG mrie¾ke" msgstr "Zobrazi» èas v EPG mrie¾ke"
msgid "Height of Headers (Status Header and EPG View, Perc. of osd height)"
msgstr ""
msgid "Height of Footer (Perc. of osd height)" msgid "Height of Footer (Perc. of osd height)"
msgstr "" msgstr ""
msgid "Display status header" msgid "Display status header"
msgstr "Zobrazi» stavovú hlavièku" msgstr "Zobrazi» stavovú hlavièku"
msgid "Height of status header (Perc. of osd height)"
msgstr "Vý¹ka stavovej hlavièky (% z OSD vý¹ky)"
msgid "Scale video to upper right corner" msgid "Scale video to upper right corner"
msgstr "©kálovatelné video v pravom hornom rohu" msgstr "©kálovatelné video v pravom hornom rohu"
@ -642,9 +642,6 @@ msgstr "
msgid "Logo height ratio" msgid "Logo height ratio"
msgstr "Vý¹ka loga" msgstr "Vý¹ka loga"
msgid "Height of Header in Detailed View (Perc. of osd height)"
msgstr ""
msgid "Text Border in Detailed View (pixel)" msgid "Text Border in Detailed View (pixel)"
msgstr "" msgstr ""
@ -753,5 +750,8 @@ msgstr ""
msgid "Recording Menus Icon Cache" msgid "Recording Menus Icon Cache"
msgstr "" msgstr ""
#~ msgid "Height of status header (Perc. of osd height)"
#~ msgstr "Vý¹ka stavovej hlavièky (% z OSD vý¹ky)"
#~ msgid "Configure Search Timer Options for Search String" #~ msgid "Configure Search Timer Options for Search String"
#~ msgstr "Konfigurova» mo¾nosti plánov pre vyhµadávanie kµúèových slov" #~ msgstr "Konfigurova» mo¾nosti plánov pre vyhµadávanie kµúèových slov"

View File

@ -5,6 +5,7 @@
#include "recmenumanager.h" #include "recmenumanager.h"
cRecMenuManager::cRecMenuManager(void) { cRecMenuManager::cRecMenuManager(void) {
footer = NULL;
active = false; active = false;
activeMenu = NULL; activeMenu = NULL;
activeMenuBuffer = NULL; activeMenuBuffer = NULL;
@ -114,17 +115,10 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
if (t) { if (t) {
const cEvent *ev = t->Event(); const cEvent *ev = t->Event();
if (ev) { if (ev) {
activeMenu->Hide(); DisplayDetailedView(ev);
detailView = new cDetailView(ev);
detailView->setContent();
detailView->drawHeader();
detailView->drawContent();
detailView->drawScrollbar();
detailView->Start();
detailViewActive = true;
} }
} }
break;} break; }
case rmsDeleteTimerConflictMenu: { case rmsDeleteTimerConflictMenu: {
//caller: cRecMenuTimerConflict //caller: cRecMenuTimerConflict
//delete timer out of current timer conflict //delete timer out of current timer conflict
@ -506,14 +500,7 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
ev = menu->GetEvent(); ev = menu->GetEvent();
} else break; } else break;
if (ev) { if (ev) {
activeMenu->Hide(); DisplayDetailedView(ev);
detailView = new cDetailView(ev);
detailView->setContent();
detailView->drawHeader();
detailView->drawContent();
detailView->drawScrollbar();
detailView->Start();
detailViewActive = true;
} }
break;} break;}
case rmsSearchRecord: { case rmsSearchRecord: {
@ -745,6 +732,18 @@ bool cRecMenuManager::DisplayTimerConflict(int timerID) {
return false; return false;
} }
void cRecMenuManager::DisplayDetailedView(const cEvent *ev) {
activeMenu->Hide();
detailView = new cDetailView(ev, footer);
footer->SetDetailedViewMode();
detailView->setContent();
detailView->drawHeader();
detailView->drawContent();
detailView->drawScrollbar();
detailView->Start();
detailViewActive = true;
}
eOSState cRecMenuManager::ProcessKey(eKeys Key) { eOSState cRecMenuManager::ProcessKey(eKeys Key) {
eOSState state = osContinue; eOSState state = osContinue;
eRecMenuState nextState = rmsContinue; eRecMenuState nextState = rmsContinue;

View File

@ -4,10 +4,12 @@
#include "recmenu.h" #include "recmenu.h"
#include "recmanager.h" #include "recmanager.h"
#include "services/epgsearch.h" #include "services/epgsearch.h"
#include "footer.h"
// --- cRecMenuManager ------------------------------------------------------------- // --- cRecMenuManager -------------------------------------------------------------
class cRecMenuManager { class cRecMenuManager {
private: private:
cFooter *footer;
bool active; bool active;
cRecMenu *activeMenu; cRecMenu *activeMenu;
cRecMenu *activeMenuBuffer; cRecMenu *activeMenuBuffer;
@ -22,9 +24,11 @@ private:
void DisplaySearchTimerList(void); void DisplaySearchTimerList(void);
bool DisplayTimerConflict(cTimer *timer); bool DisplayTimerConflict(cTimer *timer);
bool DisplayTimerConflict(int timerID); bool DisplayTimerConflict(int timerID);
void DisplayDetailedView(const cEvent *ev);
public: public:
cRecMenuManager(void); cRecMenuManager(void);
virtual ~cRecMenuManager(void); virtual ~cRecMenuManager(void);
void SetFooter(cFooter *footer) { this->footer = footer; };
bool isActive(void) { return active; }; bool isActive(void) { return active; };
void Start(const cEvent *event); void Start(const cEvent *event);
void Close(void); void Close(void);

View File

@ -785,7 +785,7 @@ void cRecMenuSearchTimerEdit::InitMenuItems(void) {
if (advancedOptions) { if (advancedOptions) {
useDayOfWeekSubMenu.push_back(new cRecMenuItemDayChooser(tr("Select Days"), dayOfWeek, false, &dayOfWeek)); useDayOfWeekSubMenu.push_back(new cRecMenuItemDayChooser(tr("Select Days"), dayOfWeek, false, &dayOfWeek));
avoidRepeatSubMenu.push_back(new cRecMenuItemInt(tr("Number of allowed repeats"), allowedRepeats, 1, 30, false, &allowedRepeats, rmsSearchTimerSave)); avoidRepeatSubMenu.push_back(new cRecMenuItemInt(tr("Number of allowed repeats"), allowedRepeats, 0, 30, false, &allowedRepeats, rmsSearchTimerSave));
avoidRepeatSubMenu.push_back(new cRecMenuItemBool(tr("Compare Title"), compareTitle, false, false, &compareTitle, rmsSearchTimerSave)); avoidRepeatSubMenu.push_back(new cRecMenuItemBool(tr("Compare Title"), compareTitle, false, false, &compareTitle, rmsSearchTimerSave));
avoidRepeatSubMenu.push_back(new cRecMenuItemBool(tr("Compare Subtitle"), compareSubtitle, false, false, &compareSubtitle, rmsSearchTimerSave)); avoidRepeatSubMenu.push_back(new cRecMenuItemBool(tr("Compare Subtitle"), compareSubtitle, false, false, &compareSubtitle, rmsSearchTimerSave));
avoidRepeatSubMenu.push_back(new cRecMenuItemBool(tr("Compare Description"), compareSummary, false, false, &compareSummary, rmsSearchTimerSave)); avoidRepeatSubMenu.push_back(new cRecMenuItemBool(tr("Compare Description"), compareSummary, false, false, &compareSummary, rmsSearchTimerSave));

View File

@ -63,9 +63,8 @@ void cTvguideSetup::Store(void) {
SetupStore("showTimeInGrid", tvguideConfig.showTimeInGrid); SetupStore("showTimeInGrid", tvguideConfig.showTimeInGrid);
SetupStore("displayStatusHeader", tvguideConfig.displayStatusHeader); SetupStore("displayStatusHeader", tvguideConfig.displayStatusHeader);
SetupStore("displayChannelGroups", tvguideConfig.displayChannelGroups); SetupStore("displayChannelGroups", tvguideConfig.displayChannelGroups);
SetupStore("statusHeaderPercent", tvguideConfig.statusHeaderPercent); SetupStore("headerHeightPercent", tvguideConfig.headerHeightPercent);
SetupStore("channelGroupsPercent", tvguideConfig.channelGroupsPercent); SetupStore("channelGroupsPercent", tvguideConfig.channelGroupsPercent);
SetupStore("epgViewHeaderPercent", tvguideConfig.epgViewHeaderPercent);
SetupStore("epgViewBorder", tvguideConfig.epgViewBorder); SetupStore("epgViewBorder", tvguideConfig.epgViewBorder);
SetupStore("scaleVideo", tvguideConfig.scaleVideo); SetupStore("scaleVideo", tvguideConfig.scaleVideo);
SetupStore("decorateVideo", tvguideConfig.decorateVideo); SetupStore("decorateVideo", tvguideConfig.decorateVideo);
@ -244,11 +243,11 @@ void cMenuSetupScreenLayout::Set(void) {
Add(new cMenuEditIntItem(*cString::sprintf("%s%s", *indent, tr("Number of Channels to display")), &tmpTvguideConfig->channelRows, 3, 12)); Add(new cMenuEditIntItem(*cString::sprintf("%s%s", *indent, tr("Number of Channels to display")), &tmpTvguideConfig->channelRows, 3, 12));
Add(new cMenuEditBoolItem(*cString::sprintf("%s%s", *indent, tr("Display time in EPG Grids")), &tmpTvguideConfig->showTimeInGrid)); Add(new cMenuEditBoolItem(*cString::sprintf("%s%s", *indent, tr("Display time in EPG Grids")), &tmpTvguideConfig->showTimeInGrid));
} }
Add(new cMenuEditIntItem(tr("Height of Headers (Status Header and EPG View, Perc. of osd height)"), &tmpTvguideConfig->headerHeightPercent, 10, 50));
Add(new cMenuEditIntItem(tr("Height of Footer (Perc. of osd height)"), &tmpTvguideConfig->footerHeightPercent, 3, 20)); Add(new cMenuEditIntItem(tr("Height of Footer (Perc. of osd height)"), &tmpTvguideConfig->footerHeightPercent, 3, 20));
Add(new cMenuEditBoolItem(tr("Display status header"), &tmpTvguideConfig->displayStatusHeader)); Add(new cMenuEditBoolItem(tr("Display status header"), &tmpTvguideConfig->displayStatusHeader));
if (tmpTvguideConfig->displayStatusHeader) { if (tmpTvguideConfig->displayStatusHeader) {
Add(new cMenuEditIntItem(*cString::sprintf("%s%s", *indent, tr("Height of status header (Perc. of osd height)")), &tmpTvguideConfig->statusHeaderPercent, 5, 50));
Add(new cMenuEditBoolItem(*cString::sprintf("%s%s", *indent, tr("Scale video to upper right corner")), &tmpTvguideConfig->scaleVideo)); Add(new cMenuEditBoolItem(*cString::sprintf("%s%s", *indent, tr("Scale video to upper right corner")), &tmpTvguideConfig->scaleVideo));
Add(new cMenuEditBoolItem(*cString::sprintf("%s%s", *indent, tr("Rounded corners around video frame")), &tmpTvguideConfig->decorateVideo)); Add(new cMenuEditBoolItem(*cString::sprintf("%s%s", *indent, tr("Rounded corners around video frame")), &tmpTvguideConfig->decorateVideo));
} }
@ -271,7 +270,6 @@ void cMenuSetupScreenLayout::Set(void) {
Add(new cMenuEditIntItem(*cString::sprintf("%s%s", *indent, tr("Logo height ratio")), &tmpTvguideConfig->logoHeightRatio, 1, 1000)); Add(new cMenuEditIntItem(*cString::sprintf("%s%s", *indent, tr("Logo height ratio")), &tmpTvguideConfig->logoHeightRatio, 1, 1000));
} }
Add(new cMenuEditIntItem(tr("Height of Header in Detailed View (Perc. of osd height)"), &tmpTvguideConfig->epgViewHeaderPercent, 10, 50));
Add(new cMenuEditIntItem(tr("Text Border in Detailed View (pixel)"), &tmpTvguideConfig->epgViewBorder, 0, 300)); Add(new cMenuEditIntItem(tr("Text Border in Detailed View (pixel)"), &tmpTvguideConfig->epgViewBorder, 0, 300));
Add(new cMenuEditStraItem(tr("Show EPG Images"), &tmpTvguideConfig->hideEpgImages, 2, hideChannelLogosItems)); Add(new cMenuEditStraItem(tr("Show EPG Images"), &tmpTvguideConfig->hideEpgImages, 2, hideChannelLogosItems));

View File

@ -7,7 +7,7 @@ cStatusHeader::cStatusHeader(void) {
color = theme.Color(clrStatusHeader); color = theme.Color(clrStatusHeader);
colorBlending = theme.Color(clrStatusHeaderBlending); colorBlending = theme.Color(clrStatusHeaderBlending);
height = geoManager.statusHeaderHeight; height = geoManager.statusHeaderHeight;
width = geoManager.statusHeaderContentWidth; width = geoManager.headerContentWidth;
tvFrameWidth = geoManager.tvFrameWidth; tvFrameWidth = geoManager.tvFrameWidth;
pixmap = osdManager.requestPixmap(1, cRect(0, 0, width, height)); pixmap = osdManager.requestPixmap(1, cRect(0, 0, width, height));
pixmapText = osdManager.requestPixmap(2, cRect(0, 0, width, height)); pixmapText = osdManager.requestPixmap(2, cRect(0, 0, width, height));
@ -35,7 +35,6 @@ void cStatusHeader::Draw(void) {
} else { } else {
drawBackgroundGraphical(bgStatusHeaderFull); drawBackgroundGraphical(bgStatusHeaderFull);
} }
} else { } else {
if (tvguideConfig.decorateVideo) { if (tvguideConfig.decorateVideo) {
DecorateVideoFrame(); DecorateVideoFrame();

View File

@ -45,8 +45,6 @@ void cStyledPixmap::drawBackgroundGraphical(eBackgroundType type, bool active) {
back = imgCache.GetOsdElement(oeStatusHeaderContentFull); back = imgCache.GetOsdElement(oeStatusHeaderContentFull);
} else if (type == bgClock) { } else if (type == bgClock) {
back = imgCache.GetOsdElement(oeClock); back = imgCache.GetOsdElement(oeClock);
} else if (type == bgEpgHeader) {
back = imgCache.GetOsdElement(oeEpgHeader);
} else if (type == bgButton) { } else if (type == bgButton) {
drawBackgroundButton(active); drawBackgroundButton(active);
return; return;

View File

@ -13,7 +13,6 @@ enum eBackgroundType {
bgChannelHeader, bgChannelHeader,
bgChannelGroup, bgChannelGroup,
bgClock, bgClock,
bgEpgHeader,
bgButton, bgButton,
bgRecMenuBack, bgRecMenuBack,
bgChannelJump, bgChannelJump,

View File

@ -101,8 +101,8 @@ void cTvGuideOsd::drawOsd() {
timeLine->drawClock(); timeLine->drawClock();
channelGroups = new cChannelGroups(); channelGroups = new cChannelGroups();
channelGroups->ReadChannelGroups(); channelGroups->ReadChannelGroups();
//channelGroups->DumpGroups();
footer = new cFooter(channelGroups); footer = new cFooter(channelGroups);
recMenuManager->SetFooter(footer);
footer->drawRedButton(); footer->drawRedButton();
if (tvguideConfig.channelJumpMode == eNumJump) { if (tvguideConfig.channelJumpMode == eNumJump) {
footer->drawGreenButton(); footer->drawGreenButton();
@ -538,7 +538,9 @@ eOSState cTvGuideOsd::ChannelSwitch() {
void cTvGuideOsd::DetailedEPG() { void cTvGuideOsd::DetailedEPG() {
if (!activeGrid->isDummy()) { if (!activeGrid->isDummy()) {
detailViewActive = true; detailViewActive = true;
detailView = new cDetailView(activeGrid->GetEvent()); detailView = new cDetailView(activeGrid->GetEvent(), footer);
footer->SetDetailedViewMode();
osdManager.flush();
detailView->setContent(); detailView->setContent();
detailView->drawHeader(); detailView->drawHeader();
detailView->drawContent(); detailView->drawContent();