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
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;
displayStatusHeader = 1;
displayChannelGroups = 1;
statusHeaderPercent = 20;
headerHeightPercent = 20;
channelGroupsPercent = 5;
epgViewHeaderPercent = 25;
epgViewBorder = 50;
scaleVideo = 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, "displayStatusHeader") == 0) displayStatusHeader = 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, "epgViewHeaderPercent") == 0) epgViewHeaderPercent = atoi(Value);
else if (strcmp(Name, "epgViewBorder") == 0) epgViewBorder = atoi(Value);
else if (strcmp(Name, "scaleVideo") == 0) scaleVideo = atoi(Value);
else if (strcmp(Name, "decorateVideo") == 0) decorateVideo = atoi(Value);

View File

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

View File

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

View File

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

View File

@ -54,15 +54,31 @@ void cFooter::drawBlueButton() {
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);
if (group != currentGroup) {
if ((group != currentGroup) || force) {
currentGroup = group;
drawGreenButton(channelGroups->GetPrev(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) {
for (int i=0; i < 4; i++) {
positionButtons[i] = -1;
@ -126,3 +142,8 @@ void cFooter::DrawButton(const char *text, tColor color, tColor borderColor, eOs
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);
}
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;
void SetButtonPositions(void);
void DrawButton(const char *text, tColor color, tColor borderColor, eOsdElementType buttonType, int num);
void ClearButton(int num);
public:
cFooter(cChannelGroups *channelGroups);
virtual ~cFooter(void);
void drawRedButton();
void drawGreenButton();
void drawYellowButton();
void drawGreenButton(const char *text);
void drawYellowButton();
void drawYellowButton(const char *text);
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

View File

@ -20,9 +20,9 @@ bool cGeometryManager::SetGeometry(int osdWidth, int osdHeight, bool force) {
this->osdHeight = 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;
statusHeaderContentWidth = (tvguideConfig.scaleVideo)?(osdWidth - tvFrameWidth):osdWidth;
headerContentWidth = (tvguideConfig.scaleVideo)?(osdWidth - tvFrameWidth):osdWidth;
channelGroupsWidth = (tvguideConfig.displayChannelGroups)?(tvguideConfig.channelGroupsPercent * osdWidth / 100):0;
channelGroupsHeight = (tvguideConfig.displayChannelGroups)?(tvguideConfig.channelGroupsPercent * osdHeight / 100):0;
channelHeaderWidth = tvguideConfig.channelHeaderWidthPercent * osdWidth / 100;
@ -63,7 +63,7 @@ bool cGeometryManager::SetGeometry(int osdWidth, int osdHeight, bool force) {
buttonWidth = osdWidth / 4 - 2 * buttonBorder;
buttonHeight = footerHeight - 3 * buttonBorder;
epgViewHeaderHeight = tvguideConfig.epgViewHeaderPercent * osdHeight / 100;
epgViewHeaderHeight = tvguideConfig.headerHeightPercent * osdHeight / 100;
borderRecMenus = 10;

View File

@ -12,7 +12,7 @@ public:
int osdHeight;
int statusHeaderHeight;
int tvFrameWidth;
int statusHeaderContentWidth;
int headerContentWidth;
//ChannelGroups
int channelGroupsWidth;
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";
success = LoadIcon(imgStatusHeaderContentFull);
if (success)
InsertIntoOsdElementCache(oeStatusHeaderContentFull, geoManager.statusHeaderContentWidth, geoManager.statusHeaderHeight);
InsertIntoOsdElementCache(oeStatusHeaderContentFull, geoManager.headerContentWidth, geoManager.statusHeaderHeight);
success = LoadIcon(imgStatusHeaderContentWindowed);
if (success)
InsertIntoOsdElementCache(oeStatusHeaderContentWindowed, geoManager.statusHeaderContentWidth, geoManager.statusHeaderHeight);
InsertIntoOsdElementCache(oeStatusHeaderContentWindowed, geoManager.headerContentWidth, geoManager.statusHeaderHeight);
success = LoadIcon(imgStatusHeaderTVFrame);
if (success)
InsertIntoOsdElementCache(oeStatusHeaderTVFrame, geoManager.tvFrameWidth, geoManager.statusHeaderHeight);
@ -118,11 +118,6 @@ void cImageCache::CreateOsdIconCache(void) {
if (success)
InsertIntoOsdElementCache(oeClock, geoManager.clockWidth, geoManager.clockHeight);
//Detailed EPG View
success = LoadIcon("osdElements/epgview_header");
if (success)
InsertIntoOsdElementCache(oeEpgHeader, geoManager.osdWidth, geoManager.epgViewHeaderHeight);
//Channel Jump
success = LoadIcon("osdElements/channel_jump");
if (success)

View File

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

View File

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\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"
"Last-Translator: My friend <Sampep> Thanks David <Gabychan> <gbonich@gmail.com>\n"
"Language-Team: \n"
@ -603,15 +603,15 @@ msgstr "Alçada cronologia (% alçada OSD)"
msgid "Display time in EPG Grids"
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)"
msgstr ""
msgid "Display status header"
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"
msgstr "Escala de vídeo a cantonada superior dreta"
@ -645,9 +645,6 @@ msgstr "Proporció amplada logotip"
msgid "Logo height ratio"
msgstr "Proporció alçada logotip"
msgid "Height of Header in Detailed View (Perc. of osd height)"
msgstr ""
msgid "Text Border in Detailed View (pixel)"
msgstr ""
@ -756,5 +753,8 @@ msgstr ""
msgid "Recording Menus Icon Cache"
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"
#~ msgstr "Configura opcions de cerca de temporitzadors amb text"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\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"
"Last-Translator: Horst\n"
"Language-Team: \n"
@ -28,7 +28,7 @@ msgid "No EPG Information available"
msgstr "Keine EPG Daten verfügbar"
msgid "Search & Rec"
msgstr "Search & Rec"
msgstr "Suchen & Aufn."
msgid "Channels back"
msgstr "Kanäle zurück"
@ -600,15 +600,15 @@ msgstr "Höhe der Zeitleiste (% der OSD Höhe)"
msgid "Display time in EPG Grids"
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)"
msgstr "Höhe des Footers (% der OSD Höhe)"
msgid "Display status header"
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"
msgstr "Video in obere rechte Ecke skalieren"
@ -642,9 +642,6 @@ msgstr "Logo Breitenverhältnis"
msgid "Logo height ratio"
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)"
msgstr "Rand im detailierten EPG View"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-tvguide 1.0.0\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"
"Last-Translator: AmiD, ilya\n"
"Language-Team: Russia-Cherepovets(wm.amid@gmail.com)\n"
@ -600,15 +600,15 @@ msgstr "Высота таймлинии (% от высоты OSD)"
msgid "Display time in EPG Grids"
msgstr "Показывать время в сетке EPG"
msgid "Height of Headers (Status Header and EPG View, Perc. of osd height)"
msgstr ""
msgid "Height of Footer (Perc. of osd height)"
msgstr ""
msgid "Display status header"
msgstr "Показывать верхнюю панель"
msgid "Height of status header (Perc. of osd height)"
msgstr "Высота верхней панели (% от высоты OSD)"
msgid "Scale video to upper right corner"
msgstr "Показывать видео в правом верхнем углу"
@ -642,9 +642,6 @@ msgstr "Ширина логотипов"
msgid "Logo height ratio"
msgstr "Высота логотипов"
msgid "Height of Header in Detailed View (Perc. of osd height)"
msgstr ""
msgid "Text Border in Detailed View (pixel)"
msgstr ""
@ -753,5 +750,8 @@ msgstr ""
msgid "Recording Menus Icon Cache"
msgstr ""
#~ msgid "Height of status header (Perc. of osd height)"
#~ msgstr "Высота верхней панели (% от высоты OSD)"
#~ msgid "Configure Search Timer Options for Search String"
#~ msgstr "Настроить параметры таймера"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-tvguide 1.1.0\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"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: \n"
@ -600,15 +600,15 @@ msgstr "V
msgid "Display time in EPG Grids"
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)"
msgstr ""
msgid "Display status header"
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"
msgstr "©kálovatelné video v pravom hornom rohu"
@ -642,9 +642,6 @@ msgstr "
msgid "Logo height ratio"
msgstr "Vý¹ka loga"
msgid "Height of Header in Detailed View (Perc. of osd height)"
msgstr ""
msgid "Text Border in Detailed View (pixel)"
msgstr ""
@ -753,5 +750,8 @@ msgstr ""
msgid "Recording Menus Icon Cache"
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"
#~ msgstr "Konfigurova» mo¾nosti plánov pre vyhµadávanie kµúèových slov"

View File

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

View File

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

View File

@ -785,7 +785,7 @@ void cRecMenuSearchTimerEdit::InitMenuItems(void) {
if (advancedOptions) {
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 Subtitle"), compareSubtitle, false, false, &compareSubtitle, 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("displayStatusHeader", tvguideConfig.displayStatusHeader);
SetupStore("displayChannelGroups", tvguideConfig.displayChannelGroups);
SetupStore("statusHeaderPercent", tvguideConfig.statusHeaderPercent);
SetupStore("headerHeightPercent", tvguideConfig.headerHeightPercent);
SetupStore("channelGroupsPercent", tvguideConfig.channelGroupsPercent);
SetupStore("epgViewHeaderPercent", tvguideConfig.epgViewHeaderPercent);
SetupStore("epgViewBorder", tvguideConfig.epgViewBorder);
SetupStore("scaleVideo", tvguideConfig.scaleVideo);
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 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 cMenuEditBoolItem(tr("Display status header"), &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("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(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 cMenuEditStraItem(tr("Show EPG Images"), &tmpTvguideConfig->hideEpgImages, 2, hideChannelLogosItems));

View File

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

View File

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

View File

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

View File

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