diff options
-rw-r--r-- | HISTORY | 5 | ||||
-rw-r--r-- | baserender.c | 34 | ||||
-rw-r--r-- | baserender.h | 2 | ||||
-rw-r--r-- | complexcontent.c | 20 | ||||
-rw-r--r-- | complexcontent.h | 1 | ||||
-rw-r--r-- | displaychannel.c | 12 | ||||
-rw-r--r-- | displaymenu.c | 2 | ||||
-rw-r--r-- | displayreplay.c | 10 | ||||
-rw-r--r-- | displaytracks.c | 4 | ||||
-rw-r--r-- | displayvolume.c | 14 | ||||
-rw-r--r-- | textscroller.c | 18 | ||||
-rw-r--r-- | textscroller.h | 3 |
12 files changed, 92 insertions, 33 deletions
@@ -5,6 +5,11 @@ VDR Plugin 'skinflatplus' Revision History - [fix] '%' sign not shown in menu weather widget at certian font - [update] use std::min & std::max - [update] support for vdr 2.3.8 (thanks to nanohcv) +- [update] support for vdr 2.4.0 - MaxPixmapSize + Cut Pixmaps to MaxPixmapSize (default in vdr core 2048x2048) + Maybe textscrolling does not work with cut off pixmaps. + Output device has to implement MaxPixmapSize to overwrite vdr core default value. +- [update] weather widget update_weather.php php7 support (reported by Delekhan) - [add] support for change color key mapping - [add] displaychannel show event start time on the left before event title diff --git a/baserender.c b/baserender.c index 1e8dc316..987cb96b 100644 --- a/baserender.c +++ b/baserender.c @@ -117,6 +117,22 @@ void cFlatBaseRender::CreateOsd(int left, int top, int width, int height) { return; } +cPixmap *cFlatBaseRender::CreatePixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort) { + cSize maxPixmapSize = osd->MaxPixmapSize(); + cRect SafeDrawPort( DrawPort.X(), DrawPort.Y(), DrawPort.Width(), DrawPort.Height()); + + if( DrawPort.Width() > maxPixmapSize.Width() ) { + dsyslog("Try to create Pixmap (%d x %d) > MaxPixmapSize (%d x %d)-> cut Pixmap to MaxPixmapSize", DrawPort.Width(), DrawPort.Height(), maxPixmapSize.Width(), maxPixmapSize.Height() ); + SafeDrawPort.SetWidth(maxPixmapSize.Width()); + } + if( DrawPort.Height() > maxPixmapSize.Height() ) { + dsyslog("Try to create Pixmap (%d x %d) > MaxPixmapSize (%d x %d)-> cut Pixmap to MaxPixmapSize", DrawPort.Width(), DrawPort.Height(), maxPixmapSize.Width(), maxPixmapSize.Height() ); + SafeDrawPort.SetHeight(maxPixmapSize.Height()); + } + + return osd->CreatePixmap(Layer, ViewPort, SafeDrawPort); +} + void cFlatBaseRender::TopBarCreate(void) { int fs = int(round(cOsd::OsdHeight() * Config.TopBarFontSize)); topBarFont = cFont::CreateFont(Setup.FontOsd, fs); @@ -131,11 +147,11 @@ void cFlatBaseRender::TopBarCreate(void) { else topBarHeight = topBarFontSmlHeight * 2; - topBarPixmap = osd->CreatePixmap(1, cRect(Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight)); + topBarPixmap = CreatePixmap(1, cRect(Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight)); //dsyslog("skinflatplus: topBarPixmap left: %d top: %d width: %d height: %d", Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight); - topBarIconBGPixmap = osd->CreatePixmap(2, cRect(Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight)); + topBarIconBGPixmap = CreatePixmap(2, cRect(Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight)); //dsyslog("skinflatplus: topBarIconBGPixmap left: %d top: %d width: %d height: %d", Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight); - topBarIconPixmap = osd->CreatePixmap(3, cRect(Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight)); + topBarIconPixmap = CreatePixmap(3, cRect(Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight)); //dsyslog("skinflatplus: topBarIconPixmap left: %d top: %d width: %d height: %d", Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight); topBarPixmap->Fill(clrTransparent); topBarIconBGPixmap->Fill(clrTransparent); @@ -542,7 +558,7 @@ void cFlatBaseRender::ButtonsCreate(void) { buttonsWidth = osdWidth; buttonsTop = osdHeight - buttonsHeight - Config.decorBorderButtonSize; - buttonsPixmap = osd->CreatePixmap(1, cRect(Config.decorBorderButtonSize, + buttonsPixmap = CreatePixmap(1, cRect(Config.decorBorderButtonSize, buttonsTop, buttonsWidth - Config.decorBorderButtonSize*2, buttonsHeight)); buttonsPixmap->Fill(clrTransparent); //dsyslog("skinflatplus: buttonsPixmap left: %d top: %d width: %d height: %d", Config.decorBorderButtonSize, buttonsTop, buttonsWidth - Config.decorBorderButtonSize*2, buttonsHeight); @@ -672,9 +688,9 @@ void cFlatBaseRender::MessageCreate(void) { if( Config.MessageColorPosition == 1 ) messageHeight += 8; int top = osdHeight - Config.MessageOffset - messageHeight - Config.decorBorderMessageSize; - messagePixmap = osd->CreatePixmap(5, cRect(Config.decorBorderMessageSize, top, osdWidth - Config.decorBorderMessageSize*2, messageHeight)); + messagePixmap = CreatePixmap(5, cRect(Config.decorBorderMessageSize, top, osdWidth - Config.decorBorderMessageSize*2, messageHeight)); messagePixmap->Fill(clrTransparent); - messageIconPixmap = osd->CreatePixmap(5, cRect(Config.decorBorderMessageSize, top, osdWidth - Config.decorBorderMessageSize*2, messageHeight)); + messageIconPixmap = CreatePixmap(5, cRect(Config.decorBorderMessageSize, top, osdWidth - Config.decorBorderMessageSize*2, messageHeight)); messageIconPixmap->Fill(clrTransparent); //dsyslog("skinflatplus: messagePixmap left: %d top: %d width: %d height: %d", Config.decorBorderMessageSize, top, osdWidth - Config.decorBorderMessageSize*2, messageHeight); @@ -789,8 +805,8 @@ void cFlatBaseRender::ProgressBarCreate(int Left, int Top, int Width, int Height progressBarColorBarCurFg = Theme.Color(clrReplayProgressBarCurFg); - progressBarPixmap = osd->CreatePixmap(3, cRect(Left, Top, Width, progressBarHeight)); - progressBarPixmapBg = osd->CreatePixmap(2, cRect(Left - progressBarMarginVer, Top - progressBarMarginHor, Width + progressBarMarginVer*2, progressBarHeight + progressBarMarginHor*2)); + progressBarPixmap = CreatePixmap(3, cRect(Left, Top, Width, progressBarHeight)); + progressBarPixmapBg = CreatePixmap(2, cRect(Left - progressBarMarginVer, Top - progressBarMarginHor, Width + progressBarMarginVer*2, progressBarHeight + progressBarMarginHor*2)); progressBarPixmap->Fill(clrTransparent); progressBarPixmapBg->Fill(clrTransparent); } @@ -1322,7 +1338,7 @@ void cFlatBaseRender::DecorBorderDraw(int Left, int Top, int Width, int Height, int BottomDecor = Height + Size; if( !decorPixmap ) { - decorPixmap = osd->CreatePixmap(4, cRect(0, 0, cOsd::OsdWidth(), cOsd::OsdHeight())); + decorPixmap = CreatePixmap(4, cRect(0, 0, cOsd::OsdWidth(), cOsd::OsdHeight())); decorPixmap->Fill(clrTransparent); } diff --git a/baserender.h b/baserender.h index aef2b2f8..9d8f405b 100644 --- a/baserender.h +++ b/baserender.h @@ -181,4 +181,6 @@ class cFlatBaseRender int GetFontAscender(const char *Name, int CharHeight, int CharWidth = 0); void DrawWidgetWeather(void); + + virtual cPixmap *CreatePixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort = cRect::Null); }; diff --git a/complexcontent.c b/complexcontent.c index 7c265414..c66d6989 100644 --- a/complexcontent.c +++ b/complexcontent.c @@ -36,6 +36,22 @@ void cComplexContent::Clear(void) { } } +cPixmap *cComplexContent::CreatePixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort) { + cSize maxPixmapSize = Osd->MaxPixmapSize(); + cRect SafeDrawPort( DrawPort.X(), DrawPort.Y(), DrawPort.Width(), DrawPort.Height()); + + if( DrawPort.Width() > maxPixmapSize.Width() ) { + dsyslog("Try to create Pixmap (%d x %d) > MaxPixmapSize (%d x %d)-> cut Pixmap to MaxPixmapSize", DrawPort.Width(), DrawPort.Height(), maxPixmapSize.Width(), maxPixmapSize.Height() ); + SafeDrawPort.SetWidth(maxPixmapSize.Width()); + } + if( DrawPort.Height() > maxPixmapSize.Height() ) { + dsyslog("Try to create Pixmap (%d x %d) > MaxPixmapSize (%d x %d)-> cut Pixmap to MaxPixmapSize", DrawPort.Width(), DrawPort.Height(), maxPixmapSize.Width(), maxPixmapSize.Height() ); + SafeDrawPort.SetHeight(maxPixmapSize.Height()); + } + + return Osd->CreatePixmap(Layer, ViewPort, SafeDrawPort); +} + void cComplexContent::CreatePixmaps(bool fullFillBackground) { CalculateDrawPortHeight(); FullFillBackground = fullFillBackground; @@ -60,8 +76,8 @@ void cComplexContent::CreatePixmaps(bool fullFillBackground) { else PositionDraw.SetHeight(DrawPortHeight); - Pixmap = Osd->CreatePixmap(1, Position, PositionDraw); - PixmapImage = Osd->CreatePixmap(2, Position, PositionDraw); + Pixmap = CreatePixmap(1, Position, PositionDraw); + PixmapImage = CreatePixmap(2, Position, PositionDraw); //dsyslog("skinflatplus: ComplexContentPixmap left: %d top: %d width: %d height: %d", Position.Left(), Position.Top(), Position.Width(), Position.Height() ); //dsyslog("skinflatplus: ComplexContentPixmap drawport left: %d top: %d width: %d height: %d", PositionDraw.Left(), PositionDraw.Top(), PositionDraw.Width(), PositionDraw.Height() ); diff --git a/complexcontent.h b/complexcontent.h index c84704f4..f7f7c5ee 100644 --- a/complexcontent.h +++ b/complexcontent.h @@ -134,6 +134,7 @@ private: cOsd *Osd; void CalculateDrawPortHeight(void); + virtual cPixmap *CreatePixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort = cRect::Null); public: cComplexContent(void); diff --git a/displaychannel.c b/displaychannel.c index d6fd6945..b3dab395 100644 --- a/displaychannel.c +++ b/displaychannel.c @@ -48,11 +48,11 @@ cFlatDisplayChannel::cFlatDisplayChannel(bool WithInfo) { int heightTop = fontHeight; int height = heightBottom; - chanInfoBottomPixmap = osd->CreatePixmap(1, cRect(Config.decorBorderChannelSize, + chanInfoBottomPixmap = CreatePixmap(1, cRect(Config.decorBorderChannelSize, Config.decorBorderChannelSize+channelHeight - height, channelWidth, heightBottom)); chanInfoBottomPixmap->Fill( Theme.Color(clrChannelBg) ); - chanIconsPixmap = osd->CreatePixmap(2, cRect(Config.decorBorderChannelSize, + chanIconsPixmap = CreatePixmap(2, cRect(Config.decorBorderChannelSize, Config.decorBorderChannelSize+channelHeight - height, channelWidth, heightBottom)); chanIconsPixmap->Fill( clrTransparent ); @@ -61,14 +61,14 @@ cFlatDisplayChannel::cFlatDisplayChannel(bool WithInfo) { TVSWidth = osdWidth - 40 - Config.decorBorderChannelEPGSize*2; TVSHeight = osdHeight - topBarHeight - heightBottom - 40 - Config.decorBorderChannelEPGSize*2; - chanEpgImagesPixmap = osd->CreatePixmap(2, cRect(TVSLeft, TVSTop, TVSWidth, TVSHeight)); + chanEpgImagesPixmap = CreatePixmap(2, cRect(TVSLeft, TVSTop, TVSWidth, TVSHeight)); chanEpgImagesPixmap->Fill( clrTransparent ); - chanLogoBGPixmap = osd->CreatePixmap(2, cRect(Config.decorBorderChannelSize, + chanLogoBGPixmap = CreatePixmap(2, cRect(Config.decorBorderChannelSize, Config.decorBorderChannelSize+channelHeight - height, heightBottom*2, heightBottom*2)); chanLogoBGPixmap->Fill( clrTransparent ); - chanLogoPixmap = osd->CreatePixmap(3, cRect(Config.decorBorderChannelSize, + chanLogoPixmap = CreatePixmap(3, cRect(Config.decorBorderChannelSize, Config.decorBorderChannelSize+channelHeight - height, heightBottom*2, heightBottom*2)); chanLogoPixmap->Fill( clrTransparent ); @@ -80,7 +80,7 @@ cFlatDisplayChannel::cFlatDisplayChannel(bool WithInfo) { ProgressBarDrawBgColor(); height += heightTop; - chanInfoTopPixmap = osd->CreatePixmap(1, cRect(Config.decorBorderChannelSize, + chanInfoTopPixmap = CreatePixmap(1, cRect(Config.decorBorderChannelSize, Config.decorBorderChannelSize+channelHeight - height, channelWidth, heightTop)); chanInfoTopPixmap->Fill( clrTransparent ); diff --git a/displaymenu.c b/displaymenu.c index af90ddeb..09c4ecd8 100644 --- a/displaymenu.c +++ b/displaymenu.c @@ -3192,7 +3192,7 @@ void cFlatDisplayMenu::SetRecording(const cRecording *Recording) { chTop = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuContentHeadSize; chWidth = menuWidth - Config.decorBorderMenuContentHeadSize*2; chHeight = fontHeight + fontSmlHeight*2 + marginItem*2; - contentHeadPixmap = osd->CreatePixmap(1, cRect(chLeft, chTop, chWidth, chHeight)); + contentHeadPixmap = CreatePixmap(1, cRect(chLeft, chTop, chWidth, chHeight)); //dsyslog("skinflatplus: contentHeadPixmap left: %d top: %d width: %d height: %d", chLeft, chTop, chWidth, chHeight ); contentHeadIconsPixmap->Fill(clrTransparent); diff --git a/displayreplay.c b/displayreplay.c index 42c88f8d..a9e67269 100644 --- a/displayreplay.c +++ b/displayreplay.c @@ -22,23 +22,23 @@ cFlatDisplayReplay::cFlatDisplayReplay(bool ModeOnly) { int TVSWidth = osdWidth - 40 - Config.decorBorderChannelEPGSize*2; int TVSHeight = osdHeight - topBarHeight - labelHeight - 40 - Config.decorBorderChannelEPGSize*2; - chanEpgImagesPixmap = osd->CreatePixmap(2, cRect(TVSLeft, TVSTop, TVSWidth, TVSHeight)); + chanEpgImagesPixmap = CreatePixmap(2, cRect(TVSLeft, TVSTop, TVSWidth, TVSHeight)); chanEpgImagesPixmap->Fill( clrTransparent ); - labelPixmap = osd->CreatePixmap(1, cRect(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorBorderReplaySize, + labelPixmap = CreatePixmap(1, cRect(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorBorderReplaySize, osdWidth - Config.decorBorderReplaySize*2, labelHeight)); - iconsPixmap = osd->CreatePixmap(2, cRect(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorBorderReplaySize, + iconsPixmap = CreatePixmap(2, cRect(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorBorderReplaySize, osdWidth - Config.decorBorderReplaySize*2, labelHeight)); ProgressBarCreate(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorProgressReplaySize - Config.decorBorderReplaySize - marginItem, osdWidth - Config.decorBorderReplaySize*2, Config.decorProgressReplaySize, marginItem, 0, Config.decorProgressReplayFg, Config.decorProgressReplayBarFg, Config.decorProgressReplayBg, Config.decorProgressReplayType); - labelJump = osd->CreatePixmap(1, cRect(Config.decorBorderReplaySize, + labelJump = CreatePixmap(1, cRect(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorProgressReplaySize*2 - marginItem*3 - fontHeight - Config.decorBorderReplaySize*2, osdWidth - Config.decorBorderReplaySize*2, fontHeight)); - dimmPixmap = osd->CreatePixmap(MAXPIXMAPLAYERS-1, cRect(0, 0, osdWidth, osdHeight)); + dimmPixmap = CreatePixmap(MAXPIXMAPLAYERS-1, cRect(0, 0, osdWidth, osdHeight)); labelPixmap->Fill(Theme.Color(clrReplayBg)); labelJump->Fill(clrTransparent); diff --git a/displaytracks.c b/displaytracks.c index 7e9527e1..445196fd 100644 --- a/displaytracks.c +++ b/displaytracks.c @@ -30,10 +30,10 @@ cFlatDisplayTracks::cFlatDisplayTracks(const char *Title, int NumTracks, const c left /= 2; TopBarSetTitle(Title); - tracksPixmap = osd->CreatePixmap(1, cRect(left, osdHeight - itemsHeight - marginItem, maxItemWidth, itemsHeight)); + tracksPixmap = CreatePixmap(1, cRect(left, osdHeight - itemsHeight - marginItem, maxItemWidth, itemsHeight)); tracksPixmap->Fill(clrTransparent); - tracksLogoPixmap = osd->CreatePixmap(1, cRect(left, osdHeight - itemsHeight - marginItem, maxItemWidth, itemsHeight)); + tracksLogoPixmap = CreatePixmap(1, cRect(left, osdHeight - itemsHeight - marginItem, maxItemWidth, itemsHeight)); tracksLogoPixmap->Fill(clrTransparent); SetItem(Title, -1, false); diff --git a/displayvolume.c b/displayvolume.c index 1db43294..e1aff072 100644 --- a/displayvolume.c +++ b/displayvolume.c @@ -9,13 +9,13 @@ cFlatDisplayVolume::cFlatDisplayVolume(void) { CreateFullOsd(); TopBarCreate(); int width = osdWidth / 4 * 3; - + int top = osdHeight - 50 - Config.decorProgressVolumeSize - labelHeight - marginItem - Config.decorBorderVolumeSize*2; int left = osdWidth - width - Config.decorBorderVolumeSize; left /= 2; - - labelPixmap = osd->CreatePixmap(1, cRect(0, top, osdWidth, labelHeight)); - muteLogoPixmap = osd->CreatePixmap(2, cRect(0, top, osdWidth, labelHeight)); + + labelPixmap = CreatePixmap(1, cRect(0, top, osdWidth, labelHeight)); + muteLogoPixmap = CreatePixmap(2, cRect(0, top, osdWidth, labelHeight)); ProgressBarCreate(left, osdHeight - 50 - Config.decorProgressVolumeSize, width, Config.decorProgressVolumeSize, marginItem, marginItem, Config.decorProgressVolumeFg, Config.decorProgressVolumeBarFg, Config.decorProgressVolumeBg, Config.decorProgressVolumeType, true); @@ -29,7 +29,7 @@ cFlatDisplayVolume::~cFlatDisplayVolume() { void cFlatDisplayVolume::SetVolume(int Current, int Total, bool Mute) { labelPixmap->Fill(clrTransparent); muteLogoPixmap->Fill(clrTransparent); - + cString label = cString::sprintf("%s: %d", tr("Volume"), Current); cString maxLabel = cString::sprintf("%s: %d", tr("Volume"), 555); int maxlabelWidth = font->Width(maxLabel) + marginItem; @@ -38,7 +38,7 @@ void cFlatDisplayVolume::SetVolume(int Current, int Total, bool Mute) { int DecorTop = osdHeight - 50 - Config.decorProgressVolumeSize - labelHeight - Config.decorBorderVolumeSize*2; labelPixmap->DrawRectangle(cRect(left - marginItem, marginItem, marginItem, fontHeight), Theme.Color(clrVolumeBg)); - + DecorBorderClear(left - marginItem, DecorTop, maxlabelWidth + marginItem*4 + fontHeight, fontHeight, Config.decorBorderVolumeSize); DecorBorderClear(left - marginItem, DecorTop, maxlabelWidth + marginItem, fontHeight, Config.decorBorderVolumeSize); @@ -59,7 +59,7 @@ void cFlatDisplayVolume::SetVolume(int Current, int Total, bool Mute) { } ProgressBarDraw(Current, Total); - + int width = (osdWidth / 4 * 3); left = osdWidth - width - Config.decorBorderVolumeSize; left /= 2; diff --git a/textscroller.c b/textscroller.c index 37cf31f0..2ee8bfdc 100644 --- a/textscroller.c +++ b/textscroller.c @@ -15,13 +15,29 @@ void cTextScroll::SetText(const char *text, cRect position, tColor colorFg, tCol if( Osd && Pixmap ) Osd->DestroyPixmap(Pixmap); - Pixmap = Osd->CreatePixmap(Layer, Position, drawPort); + Pixmap = CreatePixmap(Layer, Position, drawPort); dsyslog("skinflatplus: TextScrollerPixmap left: %d top: %d width: %d height: %d", Position.Left(), Position.Top(), Position.Width(), Position.Height()); dsyslog("skinflatplus: TextScrollerPixmap drawPort left: %d top: %d width: %d height: %d", drawPort.Left(), drawPort.Top(), drawPort.Width(), drawPort.Height()); Pixmap->Fill( colorBg ); Draw(); } +cPixmap *cTextScroll::CreatePixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort) { + cSize maxPixmapSize = Osd->MaxPixmapSize(); + cRect SafeDrawPort( DrawPort.X(), DrawPort.Y(), DrawPort.Width(), DrawPort.Height()); + + if( DrawPort.Width() > maxPixmapSize.Width() ) { + dsyslog("Try to create Pixmap (%d x %d) > MaxPixmapSize (%d x %d)-> cut Pixmap to MaxPixmapSize", DrawPort.Width(), DrawPort.Height(), maxPixmapSize.Width(), maxPixmapSize.Height() ); + SafeDrawPort.SetWidth(maxPixmapSize.Width()); + } + if( DrawPort.Height() > maxPixmapSize.Height() ) { + dsyslog("Try to create Pixmap (%d x %d) > MaxPixmapSize (%d x %d)-> cut Pixmap to MaxPixmapSize", DrawPort.Width(), DrawPort.Height(), maxPixmapSize.Width(), maxPixmapSize.Height() ); + SafeDrawPort.SetHeight(maxPixmapSize.Height()); + } + + return Osd->CreatePixmap(Layer, ViewPort, SafeDrawPort); +} + void cTextScroll::UpdateViewPortWidth(int w) { cRect viewPort = Pixmap->ViewPort(); viewPort.SetWidth(viewPort.Width() - w); diff --git a/textscroller.h b/textscroller.h index f3cab674..ac839a94 100644 --- a/textscroller.h +++ b/textscroller.h @@ -23,6 +23,9 @@ private: bool isReserveStep; bool ResetX; int ScrollType; + + virtual cPixmap *CreatePixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort = cRect::Null); + public: cTextScroll(cOsd *osd, int type, int pixels, int waitsteps, int layer) { Font = NULL; |