diff options
author | lordjaxom <lordjaxom> | 2004-05-31 19:56:56 +0000 |
---|---|---|
committer | lordjaxom <lordjaxom> | 2004-05-31 19:56:56 +0000 |
commit | b968a310699595ff139278440ae278aebf112c1f (patch) | |
tree | 1944e18832ee3f7420634db6a607aec6c35b76e8 /display.c | |
parent | 377ef2b18a6499a1ef0e540a74c4e54317efee85 (diff) | |
download | vdr-plugin-text2skin-b968a310699595ff139278440ae278aebf112c1f.tar.gz vdr-plugin-text2skin-b968a310699595ff139278440ae278aebf112c1f.tar.bz2 |
- "Background" may be initialized with a color nowv0.0.1-rc1
- fixed channel name/number display
- added parameter type (to store logo's filetype)
- "Timebar", "Progressbar" and "Volumebar": Background is only drawn if bg is
specified
- fixed timebar (was running backwards)
- renamed "Progressbar" to "Replaybar" for more consistency
- renamed "Logo" to "ChannelLogo"
- introduced items "Language" (for audio language texts or symbols) and "Image"
(foreground images)
- adopted SKINS document (SKINS.de is not up-to-date yet)
- introduced item "MenuTitle"
- introduced items "MenuRed", "MenuGreen", "MenuYellow" and "MenuBlue"
- activated message items for display in menu
- introcuded parameter "arc" and item "Slope"
- fixed possible segfault in Item=Message
- implemented items "SymbolReplaying" and "SymbolRadio"
- added "text" parameter for all text like Items (explanation follows)
- added "SymbolPlay", "SymbolPause", "SymbolFastFwd", "SymbolFastRew",
"SymbolSlowFwd", "SymbolSlowRew" items.
Diffstat (limited to 'display.c')
-rw-r--r-- | display.c | 88 |
1 files changed, 67 insertions, 21 deletions
@@ -1,10 +1,10 @@ /* - * $Id: display.c,v 1.2 2004/05/23 19:20:26 lordjaxom Exp $ + * $Id: display.c,v 1.6 2004/05/31 19:54:12 lordjaxom Exp $ */ -#include "display.h" -#include "data.h" #include "render.h" +#include "data.h" +#include "display.h" // --- cText2SkinDisplayChannel ----------------------------------------------- @@ -22,17 +22,26 @@ cText2SkinDisplayChannel::~cText2SkinDisplayChannel() { void cText2SkinDisplayChannel::SetChannel(const cChannel *Channel, int Number) { printf("SetChannel\n"); - if (mRender->mChannel != Channel || mRender->mNumber != Number) { + if (mRender->mChannel != Channel || mRender->mChannelNumber != Number) { mRender->mChannel = Channel; - mRender->mNumber = Number; + mRender->mChannelNumber = Number; mDirty = true; } } void cText2SkinDisplayChannel::SetEvents(const cEvent *Present, const cEvent *Following) { - if (mRender->mPresent != Present || mRender->mFollowing != Following) { - mRender->mPresent = Present; - mRender->mFollowing = Following; + if (mRender->mChannelPresent != Present || mRender->mChannelFollowing != Following) { + mRender->mChannelPresent = Present; + mRender->mChannelFollowing = Following; + mDirty = true; + } +} + +void cText2SkinDisplayChannel::SetMessage(eMessageType Type, const char *Text) { + if (Text == NULL) Text = ""; + if (mRender->mMessageType != Type || mRender->mMessageText != Text) { + mRender->mMessageType = Type; + mRender->mMessageText = Text; mDirty = true; } } @@ -78,7 +87,7 @@ void cText2SkinDisplayVolume::Flush(void) { // --- cText2SkinDisplayReplay ------------------------------------------------ cText2SkinDisplayReplay::cText2SkinDisplayReplay(cText2SkinData *Data, bool ModeOnly) { - printf("cText2SkinDisplayVolume\n"); + printf("cText2SkinDisplayReplay\n"); mData = Data; mRender = new cText2SkinRender(mData, ModeOnly ? sectionReplayMode : sectionReplay); mDirty = false; @@ -112,6 +121,14 @@ void cText2SkinDisplayReplay::SetProgress(int Current, int Total) { } } +void cText2SkinDisplayReplay::SetMarks(const cMarks *Marks) { + printf("SetMarks: %p\n", Marks); + if (mRender->mReplayMarks != Marks) { + mRender->mReplayMarks = Marks; + mDirty = true; + } +} + void cText2SkinDisplayReplay::SetCurrent(const char *Current) { if (mRender->mReplayCurrentText != Current) { mRender->mReplayCurrentText = Current; @@ -127,8 +144,18 @@ void cText2SkinDisplayReplay::SetTotal(const char *Total) { } void cText2SkinDisplayReplay::SetJump(const char *Jump) { + if (Jump == NULL) Jump = ""; if (mRender->mReplayJump != Jump) { - mRender->mReplayJump = NULL; + mRender->mReplayJump = Jump; + mDirty = true; + } +} + +void cText2SkinDisplayReplay::SetMessage(eMessageType Type, const char *Text) { + if (Text == NULL) Text = ""; + if (mRender->mMessageType != Type || mRender->mMessageText != Text) { + mRender->mMessageType = Type; + mRender->mMessageText = Text; mDirty = true; } } @@ -155,6 +182,7 @@ cText2SkinDisplayMessage::~cText2SkinDisplayMessage() { } void cText2SkinDisplayMessage::SetMessage(eMessageType Type, const char *Text) { + if (Text == NULL) Text = ""; if (mRender->mMessageType != Type || mRender->mMessageText != Text) { mRender->mMessageType = Type; mRender->mMessageText = Text; @@ -182,7 +210,7 @@ cText2SkinDisplayMenu::cText2SkinDisplayMenu(cText2SkinData *Data) { cText2SkinItem *area = mData->Get(itemMenuArea); cText2SkinItem *item = mData->Get(itemMenuItem); if (area && item) - mMaxItems = area->Height() / item->Height(); + mMaxItems = area->Size().h / item->Size().h; else esyslog("ERROR: text2skin: Skin is missing the items MenuArea and/or MenuItem"); } @@ -192,35 +220,53 @@ cText2SkinDisplayMenu::~cText2SkinDisplayMenu() { } void cText2SkinDisplayMenu::Clear(void) { - mRender->mItems.clear(); - mRender->mCurrent = -1; + mRender->mMenuItems.clear(); + mRender->mMenuCurrent = -1; mDirty = true; } void cText2SkinDisplayMenu::SetTitle(const char *Title) { - if (mRender->mTitle != Title) { - mRender->mTitle = Title; + if (mRender->mMenuTitle != Title) { + mRender->mMenuTitle = Title; mDirty = true; } } void cText2SkinDisplayMenu::SetButtons(const char *Red, const char *Green, const char *Yellow, const char *Blue) { + if (Red == NULL) Red = ""; + if (Green == NULL) Green = ""; + if (Yellow == NULL) Yellow = ""; + if (Blue == NULL) Blue = ""; + if (mRender->mMenuRed != Red || mRender->mMenuGreen != Green || mRender->mMenuYellow != Yellow || mRender->mMenuBlue != Blue) { + mRender->mMenuRed = Red; + mRender->mMenuGreen = Green; + mRender->mMenuYellow = Yellow; + mRender->mMenuBlue = Blue; + mDirty = true; + } } void cText2SkinDisplayMenu::SetMessage(eMessageType Type, const char *Text) { + printf("SetMessage: %d, %s\n", Type, Text); + if (Text == NULL) Text = ""; + if (mRender->mMessageType != Type || mRender->mMessageText != Text) { + mRender->mMessageType = Type; + mRender->mMessageText = Text; + mDirty = true; + } } void cText2SkinDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Selectable) { cText2SkinRender::MenuItem item = { Text, Selectable }; - if ((int)mRender->mItems.size() <= Index) { - mRender->mItems.push_back(item); + if ((int)mRender->mMenuItems.size() <= Index) { + mRender->mMenuItems.push_back(item); mDirty = true; - } else if (mRender->mItems[Index] != item) { - mRender->mItems[Index] = item; + } else if (mRender->mMenuItems[Index] != item) { + mRender->mMenuItems[Index] = item; mDirty = true; } - if (Current && mRender->mCurrent != Index) { - mRender->mCurrent = Index; + if (Current && mRender->mMenuCurrent != Index) { + mRender->mMenuCurrent = Index; mDirty = true; } } |