mirror of
https://projects.vdr-developer.org/git/vdr-plugin-tvguide.git
synced 2023-10-05 15:01:48 +02:00
Pimped timeline
This commit is contained in:
parent
8578af3668
commit
a17b78838e
1
HISTORY
1
HISTORY
@ -59,3 +59,4 @@ VDR Plugin 'tvguide' Revision History
|
|||||||
- color buttons displayed as configured in VDR
|
- color buttons displayed as configured in VDR
|
||||||
- Added Setup Option to define if tvguide closes after channel switching
|
- Added Setup Option to define if tvguide closes after channel switching
|
||||||
- Added remotetimers support (thanks @Saman for providing a patch)
|
- Added remotetimers support (thanks @Saman for providing a patch)
|
||||||
|
- Pimped timeline
|
||||||
|
@ -542,7 +542,7 @@ std::string cRecManager::BuildEPGSearchString(cString searchString, cRecMenu *me
|
|||||||
54 - compare date when testing for a repeat? (0=no, 1=same day, 2=same week, 3=same month) */
|
54 - compare date when testing for a repeat? (0=no, 1=same day, 2=same week, 3=same month) */
|
||||||
searchTimerString << "0::::0:::0::0:::::::::0";
|
searchTimerString << "0::::0:::0::0:::::::::0";
|
||||||
|
|
||||||
esyslog("tvguide: epgsearch String: %s", searchTimerString.str().c_str());
|
//esyslog("tvguide: epgsearch String: %s", searchTimerString.str().c_str());
|
||||||
|
|
||||||
return searchTimerString.str();
|
return searchTimerString.str();
|
||||||
}
|
}
|
||||||
|
53
timeline.c
53
timeline.c
@ -7,7 +7,7 @@ cTimeLine::cTimeLine(cMyTime *myTime) {
|
|||||||
tvguideConfig.statusHeaderHeight,
|
tvguideConfig.statusHeaderHeight,
|
||||||
tvguideConfig.timeLineWidth,
|
tvguideConfig.timeLineWidth,
|
||||||
tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight)));
|
tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight)));
|
||||||
timeline = osdManager.requestPixmap(1, cRect(0,
|
timeline = osdManager.requestPixmap(2, cRect(0,
|
||||||
tvguideConfig.statusHeaderHeight + tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight,
|
tvguideConfig.statusHeaderHeight + tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight,
|
||||||
tvguideConfig.timeLineWidth,
|
tvguideConfig.timeLineWidth,
|
||||||
tvguideConfig.osdHeight - tvguideConfig.statusHeaderHeight - tvguideConfig.channelHeaderHeight - tvguideConfig.channelGroupsHeight - tvguideConfig.footerHeight)
|
tvguideConfig.osdHeight - tvguideConfig.statusHeaderHeight - tvguideConfig.channelHeaderHeight - tvguideConfig.channelGroupsHeight - tvguideConfig.footerHeight)
|
||||||
@ -15,12 +15,16 @@ cTimeLine::cTimeLine(cMyTime *myTime) {
|
|||||||
0,
|
0,
|
||||||
tvguideConfig.timeLineWidth,
|
tvguideConfig.timeLineWidth,
|
||||||
1440*tvguideConfig.minutePixel));
|
1440*tvguideConfig.minutePixel));
|
||||||
|
timelineBack = osdManager.requestPixmap(1, cRect(0,
|
||||||
|
tvguideConfig.statusHeaderHeight + tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight,
|
||||||
|
tvguideConfig.timeLineWidth,
|
||||||
|
tvguideConfig.osdHeight - tvguideConfig.statusHeaderHeight - tvguideConfig.channelHeaderHeight - tvguideConfig.channelGroupsHeight - tvguideConfig.footerHeight));
|
||||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
dateViewer = new cStyledPixmap(osdManager.requestPixmap(1, cRect(0,
|
dateViewer = new cStyledPixmap(osdManager.requestPixmap(1, cRect(0,
|
||||||
tvguideConfig.statusHeaderHeight,
|
tvguideConfig.statusHeaderHeight,
|
||||||
tvguideConfig.channelHeaderWidth + tvguideConfig.channelGroupsWidth,
|
tvguideConfig.channelHeaderWidth + tvguideConfig.channelGroupsWidth,
|
||||||
tvguideConfig.timeLineHeight)));
|
tvguideConfig.timeLineHeight-2)));
|
||||||
timeline = osdManager.requestPixmap(1, cRect(tvguideConfig.channelHeaderWidth + tvguideConfig.channelGroupsWidth,
|
timeline = osdManager.requestPixmap(2, cRect(tvguideConfig.channelHeaderWidth + tvguideConfig.channelGroupsWidth,
|
||||||
tvguideConfig.statusHeaderHeight,
|
tvguideConfig.statusHeaderHeight,
|
||||||
tvguideConfig.osdWidth - tvguideConfig.channelHeaderWidth - tvguideConfig.channelGroupsWidth,
|
tvguideConfig.osdWidth - tvguideConfig.channelHeaderWidth - tvguideConfig.channelGroupsWidth,
|
||||||
tvguideConfig.timeLineHeight)
|
tvguideConfig.timeLineHeight)
|
||||||
@ -28,6 +32,10 @@ cTimeLine::cTimeLine(cMyTime *myTime) {
|
|||||||
0,
|
0,
|
||||||
1440*tvguideConfig.minutePixel,
|
1440*tvguideConfig.minutePixel,
|
||||||
tvguideConfig.timeLineWidth));
|
tvguideConfig.timeLineWidth));
|
||||||
|
timelineBack = osdManager.requestPixmap(1, cRect(tvguideConfig.channelHeaderWidth + tvguideConfig.channelGroupsWidth,
|
||||||
|
tvguideConfig.statusHeaderHeight,
|
||||||
|
tvguideConfig.osdWidth - tvguideConfig.channelHeaderWidth - tvguideConfig.channelGroupsWidth,
|
||||||
|
tvguideConfig.timeLineHeight));
|
||||||
}
|
}
|
||||||
clock = new cStyledPixmap(osdManager.requestPixmap(1, cRect(0,
|
clock = new cStyledPixmap(osdManager.requestPixmap(1, cRect(0,
|
||||||
tvguideConfig.osdHeight- tvguideConfig.footerHeight,
|
tvguideConfig.osdHeight- tvguideConfig.footerHeight,
|
||||||
@ -38,6 +46,7 @@ cTimeLine::cTimeLine(cMyTime *myTime) {
|
|||||||
cTimeLine::~cTimeLine(void) {
|
cTimeLine::~cTimeLine(void) {
|
||||||
delete dateViewer;
|
delete dateViewer;
|
||||||
osdManager.releasePixmap(timeline);
|
osdManager.releasePixmap(timeline);
|
||||||
|
osdManager.releasePixmap(timelineBack);
|
||||||
if (clock)
|
if (clock)
|
||||||
delete clock;
|
delete clock;
|
||||||
}
|
}
|
||||||
@ -65,6 +74,7 @@ void cTimeLine::drawDateViewer() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void cTimeLine::drawTimeline() {
|
void cTimeLine::drawTimeline() {
|
||||||
|
timelineBack->Fill(clrBlack);
|
||||||
timeline->SetTile(true);
|
timeline->SetTile(true);
|
||||||
timeline->Fill(theme.Color(clrBackground));
|
timeline->Fill(theme.Color(clrBackground));
|
||||||
tColor colorFont, colorBackground;
|
tColor colorFont, colorBackground;
|
||||||
@ -117,12 +127,14 @@ void cTimeLine::drawTimeline() {
|
|||||||
if (tvguideConfig.displayMode == eVertical) {
|
if (tvguideConfig.displayMode == eVertical) {
|
||||||
posY = i*tvguideConfig.minutePixel*30;
|
posY = i*tvguideConfig.minutePixel*30;
|
||||||
timeline->DrawImage(cPoint(2, posY), *img);
|
timeline->DrawImage(cPoint(2, posY), *img);
|
||||||
|
decorateTile(0, posY, imgWidth+2, imgHeight);
|
||||||
textWidth = tvguideConfig.FontTimeLineTime->Width(timetext);
|
textWidth = tvguideConfig.FontTimeLineTime->Width(timetext);
|
||||||
timeline->DrawText(cPoint((tvguideConfig.timeLineWidth-textWidth)/2, posY + 5), timetext, colorFont, colorBackground, tvguideConfig.FontTimeLineTime);
|
timeline->DrawText(cPoint((tvguideConfig.timeLineWidth-textWidth)/2, posY + 5), timetext, colorFont, colorBackground, tvguideConfig.FontTimeLineTime);
|
||||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
posX = i*tvguideConfig.minutePixel*30;
|
posX = i*tvguideConfig.minutePixel*30;
|
||||||
timeline->DrawImage(cPoint(posX, 2), *img);
|
timeline->DrawImage(cPoint(posX, 2), *img);
|
||||||
timeline->DrawText(cPoint(posX + 2, (dateViewer->Height() - tvguideConfig.FontTimeLineTimeHorizontal->Height())/2), timetext, colorFont, colorBackground, tvguideConfig.FontTimeLineTimeHorizontal);
|
decorateTile(posX, 0, imgWidth, imgHeight+2);
|
||||||
|
timeline->DrawText(cPoint(posX + 15, (dateViewer->Height() - tvguideConfig.FontTimeLineTimeHorizontal->Height())/2), timetext, colorFont, colorBackground, tvguideConfig.FontTimeLineTimeHorizontal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setTimeline();
|
setTimeline();
|
||||||
@ -130,6 +142,39 @@ void cTimeLine::drawTimeline() {
|
|||||||
delete img2;
|
delete img2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cTimeLine::decorateTile(int posX, int posY, int tileWidth, int tileHeight) {
|
||||||
|
timeline->DrawRectangle(cRect(posX,posY,tileWidth,2), theme.Color(clrBackground)); //top
|
||||||
|
timeline->DrawRectangle(cRect(posX,posY,2,tileHeight), theme.Color(clrBackground)); //left
|
||||||
|
timeline->DrawRectangle(cRect(posX,posY + tileHeight-2,tileWidth,2), theme.Color(clrBackground)); //bottom
|
||||||
|
timeline->DrawRectangle(cRect(posX + tileWidth-2,posY,2,tileHeight), theme.Color(clrBackground)); //right
|
||||||
|
|
||||||
|
timeline->DrawRectangle(cRect(2+posX,posY+2,tileWidth-4,1), theme.Color(clrBorder)); //top
|
||||||
|
timeline->DrawRectangle(cRect(2+posX,posY+2,1,tileHeight-4), theme.Color(clrBorder)); //left
|
||||||
|
timeline->DrawRectangle(cRect(2+posX,posY+tileHeight-3,tileWidth-4,1), theme.Color(clrBorder)); //bottom
|
||||||
|
timeline->DrawRectangle(cRect(posX+tileWidth-3,posY+2,1,tileHeight-4), theme.Color(clrBorder)); //right
|
||||||
|
|
||||||
|
if (tvguideConfig.roundedCorners) {
|
||||||
|
int borderRadius = 12;
|
||||||
|
drawRoundedCorners(posX, posY, tileWidth, tileHeight, borderRadius);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void cTimeLine::drawRoundedCorners(int posX, int posY, int width, int height, int radius) {
|
||||||
|
timeline->DrawEllipse(cRect(posX+2,posY+2,radius,radius), theme.Color(clrBorder), -2);
|
||||||
|
timeline->DrawEllipse(cRect(posX+1,posY+1,radius,radius), theme.Color(clrBackground), -2);
|
||||||
|
|
||||||
|
timeline->DrawEllipse(cRect(posX+width-radius - 2,posY+2,radius,radius), theme.Color(clrBorder), -1);
|
||||||
|
timeline->DrawEllipse(cRect(posX+width-radius - 1,posY+1,radius,radius), theme.Color(clrBackground), -1);
|
||||||
|
|
||||||
|
if( height > 2*radius) {
|
||||||
|
timeline->DrawEllipse(cRect(posX+2,posY+height-radius - 2,radius,radius), theme.Color(clrBorder), -3);
|
||||||
|
timeline->DrawEllipse(cRect(posX+1,posY+height-radius - 1,radius,radius), theme.Color(clrBackground), -3);
|
||||||
|
|
||||||
|
timeline->DrawEllipse(cRect(posX+width-radius - 2,posY+height-radius - 2,radius,radius), theme.Color(clrBorder), -4);
|
||||||
|
timeline->DrawEllipse(cRect(posX+width-radius - 1,posY+height-radius - 1,radius,radius), theme.Color(clrBackground), -4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
cImage *cTimeLine::createBackgroundImage(int width, int height, tColor clrBgr, tColor clrBlend) {
|
cImage *cTimeLine::createBackgroundImage(int width, int height, tColor clrBgr, tColor clrBlend) {
|
||||||
cImage *image = NULL;
|
cImage *image = NULL;
|
||||||
if (tvguideConfig.useBlending == 1) {
|
if (tvguideConfig.useBlending == 1) {
|
||||||
|
@ -8,8 +8,11 @@ private:
|
|||||||
cMyTime *myTime;
|
cMyTime *myTime;
|
||||||
cStyledPixmap *dateViewer;
|
cStyledPixmap *dateViewer;
|
||||||
cPixmap *timeline;
|
cPixmap *timeline;
|
||||||
|
cPixmap *timelineBack;
|
||||||
cStyledPixmap *clock;
|
cStyledPixmap *clock;
|
||||||
cImage *createBackgroundImage(int width, int height, tColor clrBgr, tColor clrBlend);
|
cImage *createBackgroundImage(int width, int height, tColor clrBgr, tColor clrBlend);
|
||||||
|
void decorateTile(int posX, int posY, int tileWidth, int tileHeight);
|
||||||
|
void drawRoundedCorners(int posX, int posY, int width, int height, int radius);
|
||||||
public:
|
public:
|
||||||
cTimeLine(cMyTime *myTime);
|
cTimeLine(cMyTime *myTime);
|
||||||
virtual ~cTimeLine(void);
|
virtual ~cTimeLine(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user