Fixed a name clash between skincurses.c and the new cOsd position functions

This commit is contained in:
Klaus Schmidinger 2007-06-23 09:08:21 +02:00
parent 549a26af27
commit 9ebd38230c
4 changed files with 67 additions and 59 deletions

View File

@ -5260,3 +5260,7 @@ Video Disk Recorder Revision History
Plugins that implement skins should no longer use Setup.OSDWidth etc. directly, Plugins that implement skins should no longer use Setup.OSDWidth etc. directly,
but should rather use cOsd::OsdWidth() etc. instead. but should rather use cOsd::OsdWidth() etc. instead.
Currently a change to the OSD position will only apply to newly opened OSDs. Currently a change to the OSD position will only apply to newly opened OSDs.
2007-06-23: Version 1.5.5
- Fixed a name clash between skincurses.c and the new cOsd position functions.

View File

@ -43,3 +43,7 @@ VDR Plugin 'skincurses' Revision History
2007-06-15: Version 0.1.0 2007-06-15: Version 0.1.0
- Implemented UTF-8 handling. - Implemented UTF-8 handling.
2007-06-23: Version 0.1.1
- Fixed a name clash with the new cOsd position functions.

View File

@ -3,7 +3,7 @@
* *
* See the README file for copyright information and how to reach the author. * See the README file for copyright information and how to reach the author.
* *
* $Id: skincurses.c 1.13 2007/06/16 09:05:04 kls Exp $ * $Id: skincurses.c 1.14 2007/06/23 09:08:01 kls Exp $
*/ */
#include <ncurses.h> #include <ncurses.h>
@ -11,7 +11,7 @@
#include <vdr/plugin.h> #include <vdr/plugin.h>
#include <vdr/skins.h> #include <vdr/skins.h>
static const char *VERSION = "0.1.0"; static const char *VERSION = "0.1.1";
static const char *DESCRIPTION = "A text only skin"; static const char *DESCRIPTION = "A text only skin";
static const char *MAINMENUENTRY = NULL; static const char *MAINMENUENTRY = NULL;
@ -51,8 +51,8 @@ static int clrMessage[] = {
clrRed clrRed
}; };
static int OsdWidth = 50; static int ScOsdWidth = 50;
static int OsdHeight = 20; static int ScOsdHeight = 20;
class cCursesOsd : public cOsd { class cCursesOsd : public cOsd {
private: private:
@ -80,7 +80,7 @@ cCursesOsd::cCursesOsd(int Left, int Top)
start_color(); start_color();
leaveok(stdscr, true); leaveok(stdscr, true);
window = subwin(stdscr, OsdHeight, OsdWidth, 0, 0); window = subwin(stdscr, ScOsdHeight, ScOsdWidth, 0, 0);
syncok(window, true); syncok(window, true);
} }
@ -168,7 +168,7 @@ void cCursesOsd::DrawText(int x, int y, const char *s, tColor ColorFg, tColor Co
} }
SetColor(ColorFg, ColorBg); SetColor(ColorFg, ColorBg);
wmove(window, y, x); // ncurses wants 'y' before 'x'! wmove(window, y, x); // ncurses wants 'y' before 'x'!
waddnstr(window, s, OsdWidth - x); waddnstr(window, s, ScOsdWidth - x);
} }
void cCursesOsd::DrawRectangle(int x1, int y1, int x2, int y2, tColor Color) void cCursesOsd::DrawRectangle(int x1, int y1, int x2, int y2, tColor Color)
@ -206,9 +206,9 @@ cSkinCursesDisplayChannel::cSkinCursesDisplayChannel(bool WithInfo)
{ {
int Lines = WithInfo ? 5 : 1; int Lines = WithInfo ? 5 : 1;
message = false; message = false;
osd = new cCursesOsd(0, Setup.ChannelInfoPos ? 0 : OsdHeight - Lines); osd = new cCursesOsd(0, Setup.ChannelInfoPos ? 0 : ScOsdHeight - Lines);
timeWidth = strlen("00:00"); timeWidth = strlen("00:00");
osd->DrawRectangle(0, 0, OsdWidth - 1, Lines - 1, clrBackground); osd->DrawRectangle(0, 0, ScOsdWidth - 1, Lines - 1, clrBackground);
} }
cSkinCursesDisplayChannel::~cSkinCursesDisplayChannel() cSkinCursesDisplayChannel::~cSkinCursesDisplayChannel()
@ -218,14 +218,14 @@ cSkinCursesDisplayChannel::~cSkinCursesDisplayChannel()
void cSkinCursesDisplayChannel::SetChannel(const cChannel *Channel, int Number) void cSkinCursesDisplayChannel::SetChannel(const cChannel *Channel, int Number)
{ {
osd->DrawRectangle(0, 0, OsdWidth - 1, 0, clrBackground); osd->DrawRectangle(0, 0, ScOsdWidth - 1, 0, clrBackground);
osd->DrawText(0, 0, ChannelString(Channel, Number), clrWhite, clrBackground, &Font); osd->DrawText(0, 0, ChannelString(Channel, Number), clrWhite, clrBackground, &Font);
} }
void cSkinCursesDisplayChannel::SetEvents(const cEvent *Present, const cEvent *Following) void cSkinCursesDisplayChannel::SetEvents(const cEvent *Present, const cEvent *Following)
{ {
osd->DrawRectangle(0, 1, timeWidth - 1, 4, clrRed); osd->DrawRectangle(0, 1, timeWidth - 1, 4, clrRed);
osd->DrawRectangle(timeWidth, 1, OsdWidth - 1, 4, clrBackground); osd->DrawRectangle(timeWidth, 1, ScOsdWidth - 1, 4, clrBackground);
for (int i = 0; i < 2; i++) { for (int i = 0; i < 2; i++) {
const cEvent *e = !i ? Present : Following; const cEvent *e = !i ? Present : Following;
if (e) { if (e) {
@ -239,8 +239,8 @@ void cSkinCursesDisplayChannel::SetEvents(const cEvent *Present, const cEvent *F
void cSkinCursesDisplayChannel::SetMessage(eMessageType Type, const char *Text) void cSkinCursesDisplayChannel::SetMessage(eMessageType Type, const char *Text)
{ {
if (Text) { if (Text) {
osd->SaveRegion(0, 0, OsdWidth - 1, 0); osd->SaveRegion(0, 0, ScOsdWidth - 1, 0);
osd->DrawText(0, 0, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, OsdWidth, 0, taCenter); osd->DrawText(0, 0, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, ScOsdWidth, 0, taCenter);
message = true; message = true;
} }
else { else {
@ -253,7 +253,7 @@ void cSkinCursesDisplayChannel::Flush(void)
{ {
if (!message) { if (!message) {
cString date = DayDateTime(); cString date = DayDateTime();
osd->DrawText(OsdWidth - Utf8StrLen(date), 0, date, clrWhite, clrBackground, &Font); osd->DrawText(ScOsdWidth - Utf8StrLen(date), 0, date, clrWhite, clrBackground, &Font);
} }
osd->Flush(); osd->Flush();
} }
@ -284,7 +284,7 @@ public:
cSkinCursesDisplayMenu::cSkinCursesDisplayMenu(void) cSkinCursesDisplayMenu::cSkinCursesDisplayMenu(void)
{ {
osd = new cCursesOsd(0, 0); osd = new cCursesOsd(0, 0);
osd->DrawRectangle(0, 0, OsdWidth - 1, OsdHeight - 1, clrBackground); osd->DrawRectangle(0, 0, ScOsdWidth - 1, ScOsdHeight - 1, clrBackground);
} }
cSkinCursesDisplayMenu::~cSkinCursesDisplayMenu() cSkinCursesDisplayMenu::~cSkinCursesDisplayMenu()
@ -301,7 +301,7 @@ void cSkinCursesDisplayMenu::SetScrollbar(void)
int sb = yb; int sb = yb;
int tt = st + (sb - st) * textScroller.Offset() / textScroller.Total(); int tt = st + (sb - st) * textScroller.Offset() / textScroller.Total();
int tb = tt + (sb - st) * textScroller.Shown() / textScroller.Total(); int tb = tt + (sb - st) * textScroller.Shown() / textScroller.Total();
int xl = OsdWidth - 1; int xl = ScOsdWidth - 1;
osd->DrawRectangle(xl, st, xl, sb, clrCyan); osd->DrawRectangle(xl, st, xl, sb, clrCyan);
osd->DrawRectangle(xl, tt, xl, tb, clrWhite); osd->DrawRectangle(xl, tt, xl, tb, clrWhite);
} }
@ -315,29 +315,29 @@ void cSkinCursesDisplayMenu::Scroll(bool Up, bool Page)
int cSkinCursesDisplayMenu::MaxItems(void) int cSkinCursesDisplayMenu::MaxItems(void)
{ {
return OsdHeight - 4; return ScOsdHeight - 4;
} }
void cSkinCursesDisplayMenu::Clear(void) void cSkinCursesDisplayMenu::Clear(void)
{ {
osd->DrawRectangle(0, 1, OsdWidth - 1, OsdHeight - 2, clrBackground); osd->DrawRectangle(0, 1, ScOsdWidth - 1, ScOsdHeight - 2, clrBackground);
textScroller.Reset(); textScroller.Reset();
} }
void cSkinCursesDisplayMenu::SetTitle(const char *Title) void cSkinCursesDisplayMenu::SetTitle(const char *Title)
{ {
osd->DrawText(0, 0, Title, clrBlack, clrCyan, &Font, OsdWidth); osd->DrawText(0, 0, Title, clrBlack, clrCyan, &Font, ScOsdWidth);
} }
void cSkinCursesDisplayMenu::SetButtons(const char *Red, const char *Green, const char *Yellow, const char *Blue) void cSkinCursesDisplayMenu::SetButtons(const char *Red, const char *Green, const char *Yellow, const char *Blue)
{ {
int w = OsdWidth; int w = ScOsdWidth;
int t0 = 0; int t0 = 0;
int t1 = 0 + w / 4; int t1 = 0 + w / 4;
int t2 = 0 + w / 2; int t2 = 0 + w / 2;
int t3 = w - w / 4; int t3 = w - w / 4;
int t4 = w; int t4 = w;
int y = OsdHeight - 1; int y = ScOsdHeight - 1;
osd->DrawText(t0, y, Red, clrWhite, Red ? clrRed : clrBackground, &Font, t1 - t0, 0, taCenter); osd->DrawText(t0, y, Red, clrWhite, Red ? clrRed : clrBackground, &Font, t1 - t0, 0, taCenter);
osd->DrawText(t1, y, Green, clrBlack, Green ? clrGreen : clrBackground, &Font, t2 - t1, 0, taCenter); osd->DrawText(t1, y, Green, clrBlack, Green ? clrGreen : clrBackground, &Font, t2 - t1, 0, taCenter);
osd->DrawText(t2, y, Yellow, clrBlack, Yellow ? clrYellow : clrBackground, &Font, t3 - t2, 0, taCenter); osd->DrawText(t2, y, Yellow, clrBlack, Yellow ? clrYellow : clrBackground, &Font, t3 - t2, 0, taCenter);
@ -347,9 +347,9 @@ void cSkinCursesDisplayMenu::SetButtons(const char *Red, const char *Green, cons
void cSkinCursesDisplayMenu::SetMessage(eMessageType Type, const char *Text) void cSkinCursesDisplayMenu::SetMessage(eMessageType Type, const char *Text)
{ {
if (Text) if (Text)
osd->DrawText(0, OsdHeight - 2, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, OsdWidth, 0, taCenter); osd->DrawText(0, ScOsdHeight - 2, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, ScOsdWidth, 0, taCenter);
else else
osd->DrawRectangle(0, OsdHeight - 2, OsdWidth - 1, OsdHeight - 2, clrBackground); osd->DrawRectangle(0, ScOsdHeight - 2, ScOsdWidth - 1, ScOsdHeight - 2, clrBackground);
} }
void cSkinCursesDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Selectable) void cSkinCursesDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Selectable)
@ -368,12 +368,12 @@ void cSkinCursesDisplayMenu::SetItem(const char *Text, int Index, bool Current,
const char *s = GetTabbedText(Text, i); const char *s = GetTabbedText(Text, i);
if (s) { if (s) {
int xt = Tab(i) / 12;// Tab() is in "pixel" - see also skins.c!!! int xt = Tab(i) / 12;// Tab() is in "pixel" - see also skins.c!!!
osd->DrawText(xt, y, s, ColorFg, ColorBg, &Font, OsdWidth - xt); osd->DrawText(xt, y, s, ColorFg, ColorBg, &Font, ScOsdWidth - xt);
} }
if (!Tab(i + 1)) if (!Tab(i + 1))
break; break;
} }
SetEditableWidth(OsdWidth - Tab(1) / 12); // Tab() is in "pixel" - see also skins.c!!! SetEditableWidth(ScOsdWidth - Tab(1) / 12); // Tab() is in "pixel" - see also skins.c!!!
} }
void cSkinCursesDisplayMenu::SetEvent(const cEvent *Event) void cSkinCursesDisplayMenu::SetEvent(const cEvent *Event)
@ -384,24 +384,24 @@ void cSkinCursesDisplayMenu::SetEvent(const cEvent *Event)
cTextScroller ts; cTextScroller ts;
char t[32]; char t[32];
snprintf(t, sizeof(t), "%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString()); snprintf(t, sizeof(t), "%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString());
ts.Set(osd, 0, y, OsdWidth, OsdHeight - y - 2, t, &Font, clrYellow, clrBackground); ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, t, &Font, clrYellow, clrBackground);
if (Event->Vps() && Event->Vps() != Event->StartTime()) { if (Event->Vps() && Event->Vps() != Event->StartTime()) {
char *buffer; char *buffer;
asprintf(&buffer, " VPS: %s", *Event->GetVpsString()); asprintf(&buffer, " VPS: %s", *Event->GetVpsString());
osd->DrawText(OsdWidth - Utf8StrLen(buffer), y, buffer, clrBlack, clrYellow, &Font); osd->DrawText(ScOsdWidth - Utf8StrLen(buffer), y, buffer, clrBlack, clrYellow, &Font);
free(buffer); free(buffer);
} }
y += ts.Height(); y += ts.Height();
y += 1; y += 1;
ts.Set(osd, 0, y, OsdWidth, OsdHeight - y - 2, Event->Title(), &Font, clrCyan, clrBackground); ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, Event->Title(), &Font, clrCyan, clrBackground);
y += ts.Height(); y += ts.Height();
if (!isempty(Event->ShortText())) { if (!isempty(Event->ShortText())) {
ts.Set(osd, 0, y, OsdWidth, OsdHeight - y - 2, Event->ShortText(), &Font, clrYellow, clrBackground); ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, Event->ShortText(), &Font, clrYellow, clrBackground);
y += ts.Height(); y += ts.Height();
} }
y += 1; y += 1;
if (!isempty(Event->Description())) { if (!isempty(Event->Description())) {
textScroller.Set(osd, 0, y, OsdWidth - 2, OsdHeight - y - 2, Event->Description(), &Font, clrCyan, clrBackground); textScroller.Set(osd, 0, y, ScOsdWidth - 2, ScOsdHeight - y - 2, Event->Description(), &Font, clrCyan, clrBackground);
SetScrollbar(); SetScrollbar();
} }
} }
@ -415,35 +415,35 @@ void cSkinCursesDisplayMenu::SetRecording(const cRecording *Recording)
cTextScroller ts; cTextScroller ts;
char t[32]; char t[32];
snprintf(t, sizeof(t), "%s %s", *DateString(Recording->start), *TimeString(Recording->start)); snprintf(t, sizeof(t), "%s %s", *DateString(Recording->start), *TimeString(Recording->start));
ts.Set(osd, 0, y, OsdWidth, OsdHeight - y - 2, t, &Font, clrYellow, clrBackground); ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, t, &Font, clrYellow, clrBackground);
y += ts.Height(); y += ts.Height();
y += 1; y += 1;
const char *Title = Info->Title(); const char *Title = Info->Title();
if (isempty(Title)) if (isempty(Title))
Title = Recording->Name(); Title = Recording->Name();
ts.Set(osd, 0, y, OsdWidth, OsdHeight - y - 2, Title, &Font, clrCyan, clrBackground); ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, Title, &Font, clrCyan, clrBackground);
y += ts.Height(); y += ts.Height();
if (!isempty(Info->ShortText())) { if (!isempty(Info->ShortText())) {
ts.Set(osd, 0, y, OsdWidth, OsdHeight - y - 2, Info->ShortText(), &Font, clrYellow, clrBackground); ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, Info->ShortText(), &Font, clrYellow, clrBackground);
y += ts.Height(); y += ts.Height();
} }
y += 1; y += 1;
if (!isempty(Info->Description())) { if (!isempty(Info->Description())) {
textScroller.Set(osd, 0, y, OsdWidth - 2, OsdHeight - y - 2, Info->Description(), &Font, clrCyan, clrBackground); textScroller.Set(osd, 0, y, ScOsdWidth - 2, ScOsdHeight - y - 2, Info->Description(), &Font, clrCyan, clrBackground);
SetScrollbar(); SetScrollbar();
} }
} }
void cSkinCursesDisplayMenu::SetText(const char *Text, bool FixedFont) void cSkinCursesDisplayMenu::SetText(const char *Text, bool FixedFont)
{ {
textScroller.Set(osd, 0, 2, OsdWidth - 2, OsdHeight - 4, Text, &Font, clrWhite, clrBackground); textScroller.Set(osd, 0, 2, ScOsdWidth - 2, ScOsdHeight - 4, Text, &Font, clrWhite, clrBackground);
SetScrollbar(); SetScrollbar();
} }
void cSkinCursesDisplayMenu::Flush(void) void cSkinCursesDisplayMenu::Flush(void)
{ {
cString date = DayDateTime(); cString date = DayDateTime();
osd->DrawText(OsdWidth - Utf8StrLen(date) - 2, 0, date, clrBlack, clrCyan, &Font); osd->DrawText(ScOsdWidth - Utf8StrLen(date) - 2, 0, date, clrBlack, clrCyan, &Font);
osd->Flush(); osd->Flush();
} }
@ -469,8 +469,8 @@ public:
cSkinCursesDisplayReplay::cSkinCursesDisplayReplay(bool ModeOnly) cSkinCursesDisplayReplay::cSkinCursesDisplayReplay(bool ModeOnly)
{ {
message = false; message = false;
osd = new cCursesOsd(0, OsdHeight - 3); osd = new cCursesOsd(0, ScOsdHeight - 3);
osd->DrawRectangle(0, 0, OsdWidth - 1, 2, ModeOnly ? clrTransparent : clrBackground); osd->DrawRectangle(0, 0, ScOsdWidth - 1, 2, ModeOnly ? clrTransparent : clrBackground);
} }
cSkinCursesDisplayReplay::~cSkinCursesDisplayReplay() cSkinCursesDisplayReplay::~cSkinCursesDisplayReplay()
@ -480,7 +480,7 @@ cSkinCursesDisplayReplay::~cSkinCursesDisplayReplay()
void cSkinCursesDisplayReplay::SetTitle(const char *Title) void cSkinCursesDisplayReplay::SetTitle(const char *Title)
{ {
osd->DrawText(0, 0, Title, clrWhite, clrBackground, &Font, OsdWidth); osd->DrawText(0, 0, Title, clrWhite, clrBackground, &Font, ScOsdWidth);
} }
void cSkinCursesDisplayReplay::SetMode(bool Play, bool Forward, int Speed) void cSkinCursesDisplayReplay::SetMode(bool Play, bool Forward, int Speed)
@ -501,9 +501,9 @@ void cSkinCursesDisplayReplay::SetMode(bool Play, bool Forward, int Speed)
void cSkinCursesDisplayReplay::SetProgress(int Current, int Total) void cSkinCursesDisplayReplay::SetProgress(int Current, int Total)
{ {
int p = Total > 0 ? OsdWidth * Current / Total : 0; int p = Total > 0 ? ScOsdWidth * Current / Total : 0;
osd->DrawRectangle(0, 1, p, 1, clrGreen); osd->DrawRectangle(0, 1, p, 1, clrGreen);
osd->DrawRectangle(p, 1, OsdWidth, 1, clrWhite); osd->DrawRectangle(p, 1, ScOsdWidth, 1, clrWhite);
} }
void cSkinCursesDisplayReplay::SetCurrent(const char *Current) void cSkinCursesDisplayReplay::SetCurrent(const char *Current)
@ -513,19 +513,19 @@ void cSkinCursesDisplayReplay::SetCurrent(const char *Current)
void cSkinCursesDisplayReplay::SetTotal(const char *Total) void cSkinCursesDisplayReplay::SetTotal(const char *Total)
{ {
osd->DrawText(OsdWidth - Utf8StrLen(Total), 2, Total, clrWhite, clrBackground, &Font); osd->DrawText(ScOsdWidth - Utf8StrLen(Total), 2, Total, clrWhite, clrBackground, &Font);
} }
void cSkinCursesDisplayReplay::SetJump(const char *Jump) void cSkinCursesDisplayReplay::SetJump(const char *Jump)
{ {
osd->DrawText(OsdWidth / 4, 2, Jump, clrWhite, clrBackground, &Font, OsdWidth / 2, 0, taCenter); osd->DrawText(ScOsdWidth / 4, 2, Jump, clrWhite, clrBackground, &Font, ScOsdWidth / 2, 0, taCenter);
} }
void cSkinCursesDisplayReplay::SetMessage(eMessageType Type, const char *Text) void cSkinCursesDisplayReplay::SetMessage(eMessageType Type, const char *Text)
{ {
if (Text) { if (Text) {
osd->SaveRegion(0, 2, OsdWidth - 1, 2); osd->SaveRegion(0, 2, ScOsdWidth - 1, 2);
osd->DrawText(0, 2, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, OsdWidth, 0, taCenter); osd->DrawText(0, 2, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, ScOsdWidth, 0, taCenter);
message = true; message = true;
} }
else { else {
@ -553,7 +553,7 @@ public:
cSkinCursesDisplayVolume::cSkinCursesDisplayVolume(void) cSkinCursesDisplayVolume::cSkinCursesDisplayVolume(void)
{ {
osd = new cCursesOsd(0, OsdHeight - 1); osd = new cCursesOsd(0, ScOsdHeight - 1);
} }
cSkinCursesDisplayVolume::~cSkinCursesDisplayVolume() cSkinCursesDisplayVolume::~cSkinCursesDisplayVolume()
@ -564,16 +564,16 @@ cSkinCursesDisplayVolume::~cSkinCursesDisplayVolume()
void cSkinCursesDisplayVolume::SetVolume(int Current, int Total, bool Mute) void cSkinCursesDisplayVolume::SetVolume(int Current, int Total, bool Mute)
{ {
if (Mute) { if (Mute) {
osd->DrawRectangle(0, 0, OsdWidth - 1, 0, clrTransparent); osd->DrawRectangle(0, 0, ScOsdWidth - 1, 0, clrTransparent);
osd->DrawText(0, 0, tr("Key$Mute"), clrGreen, clrBackground, &Font); osd->DrawText(0, 0, tr("Key$Mute"), clrGreen, clrBackground, &Font);
} }
else { else {
const char *Prompt = tr("Volume "); const char *Prompt = tr("Volume ");
int l = Utf8StrLen(Prompt); int l = Utf8StrLen(Prompt);
int p = (OsdWidth - l) * Current / Total; int p = (ScOsdWidth - l) * Current / Total;
osd->DrawText(0, 0, Prompt, clrGreen, clrBackground, &Font); osd->DrawText(0, 0, Prompt, clrGreen, clrBackground, &Font);
osd->DrawRectangle(l, 0, l + p - 1, 0, clrGreen); osd->DrawRectangle(l, 0, l + p - 1, 0, clrGreen);
osd->DrawRectangle(l + p, 0, OsdWidth - 1, 0, clrWhite); osd->DrawRectangle(l + p, 0, ScOsdWidth - 1, 0, clrWhite);
} }
} }
@ -604,9 +604,9 @@ cSkinCursesDisplayTracks::cSkinCursesDisplayTracks(const char *Title, int NumTra
itemsWidth = Font.Width(Title); itemsWidth = Font.Width(Title);
for (int i = 0; i < NumTracks; i++) for (int i = 0; i < NumTracks; i++)
itemsWidth = max(itemsWidth, Font.Width(Tracks[i])); itemsWidth = max(itemsWidth, Font.Width(Tracks[i]));
itemsWidth = min(itemsWidth, OsdWidth); itemsWidth = min(itemsWidth, ScOsdWidth);
osd = new cCursesOsd(0, 0); osd = new cCursesOsd(0, 0);
osd->DrawRectangle(0, 0, OsdWidth - 1, OsdHeight - 1, clrBackground); osd->DrawRectangle(0, 0, ScOsdWidth - 1, ScOsdHeight - 1, clrBackground);
osd->DrawText(0, 0, Title, clrBlack, clrCyan, &Font, itemsWidth); osd->DrawText(0, 0, Title, clrBlack, clrCyan, &Font, itemsWidth);
for (int i = 0; i < NumTracks; i++) for (int i = 0; i < NumTracks; i++)
SetItem(Tracks[i], i, false); SetItem(Tracks[i], i, false);
@ -659,7 +659,7 @@ public:
cSkinCursesDisplayMessage::cSkinCursesDisplayMessage(void) cSkinCursesDisplayMessage::cSkinCursesDisplayMessage(void)
{ {
osd = new cCursesOsd(0, OsdHeight - 1); osd = new cCursesOsd(0, ScOsdHeight - 1);
} }
cSkinCursesDisplayMessage::~cSkinCursesDisplayMessage() cSkinCursesDisplayMessage::~cSkinCursesDisplayMessage()
@ -669,7 +669,7 @@ cSkinCursesDisplayMessage::~cSkinCursesDisplayMessage()
void cSkinCursesDisplayMessage::SetMessage(eMessageType Type, const char *Text) void cSkinCursesDisplayMessage::SetMessage(eMessageType Type, const char *Text)
{ {
osd->DrawText(0, 0, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, OsdWidth, 0, taCenter); osd->DrawText(0, 0, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, ScOsdWidth, 0, taCenter);
} }
void cSkinCursesDisplayMessage::Flush(void) void cSkinCursesDisplayMessage::Flush(void)
@ -782,8 +782,8 @@ bool cPluginSkinCurses::Initialize(void)
// Initialize any background activities the plugin shall perform. // Initialize any background activities the plugin shall perform.
WINDOW *w = initscr(); WINDOW *w = initscr();
if (w) { if (w) {
OsdWidth = w->_maxx - w->_begx + 1; ScOsdWidth = w->_maxx - w->_begx + 1;
OsdHeight = w->_maxy - w->_begy + 1; ScOsdHeight = w->_maxy - w->_begy + 1;
return true; return true;
} }
return false; return false;

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: config.h 1.291 2007/06/13 06:38:33 kls Exp $ * $Id: config.h 1.292 2007/06/23 09:06:24 kls Exp $
*/ */
#ifndef __CONFIG_H #ifndef __CONFIG_H
@ -22,13 +22,13 @@
// VDR's own version number: // VDR's own version number:
#define VDRVERSION "1.5.4" #define VDRVERSION "1.5.5"
#define VDRVERSNUM 10504 // Version * 10000 + Major * 100 + Minor #define VDRVERSNUM 10505 // Version * 10000 + Major * 100 + Minor
// The plugin API's version number: // The plugin API's version number:
#define APIVERSION "1.5.4" #define APIVERSION "1.5.5"
#define APIVERSNUM 10504 // Version * 10000 + Major * 100 + Minor #define APIVERSNUM 10505 // Version * 10000 + Major * 100 + Minor
// When loading plugins, VDR searches them by their APIVERSION, which // When loading plugins, VDR searches them by their APIVERSION, which
// may be smaller than VDRVERSION in case there have been no changes to // may be smaller than VDRVERSION in case there have been no changes to