diff options
Diffstat (limited to 'coreengine/view.c')
-rw-r--r-- | coreengine/view.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/coreengine/view.c b/coreengine/view.c index ae7cee5..f9db80d 100644 --- a/coreengine/view.c +++ b/coreengine/view.c @@ -141,6 +141,12 @@ bool cView::ValidViewElement(const char *viewElement) { bool cView::ValidViewList(const char *viewList) { if (!strcmp(viewList, "menuitems")) return true; + else if (!strcmp(viewList, "channellist")) + return true; + else if (!strcmp(viewList, "grouplist")) + return true; + else if (!strcmp(viewList, "groupchannellist")) + return true; return false; } @@ -162,6 +168,8 @@ void cView::PreCache(void) { continue; viewElements[i]->SetContainer(contX, contY, attribs->Width(), attribs->Height()); viewElements[i]->Cache(); + if (const char *clearOnDisplay = viewElements[i]->ClearOnDisplay()) + SetClearOnDisplay(i, clearOnDisplay); } if (viewElementsHorizontal) { for (int i=0; i < numViewElements; i++) { @@ -209,6 +217,13 @@ void cView::Clear(int ve, bool forceClearBackground) { viewElements[ve]->Clear(forceClearBackground); } +void cView::SetDirty(int ve) { + if (!viewElements[ve]) + return; + viewElements[ve]->SetDirty(); + viewElements[ve]->SetRestartAnimation(); +} + void cView::Render(int ve, bool force) { if (!viewElements[ve]) return; @@ -216,6 +231,18 @@ void cView::Render(int ve, bool force) { viewElements[ve]->Render(); } +void cView::Hide(int ve) { + if (!viewElements[ve]) + return; + viewElements[ve]->Hide(); +} + +void cView::Show(int ve) { + if (!viewElements[ve]) + return; + viewElements[ve]->Show(); +} + void cView::Close(void) { delete fader; fader = NULL; @@ -435,3 +462,20 @@ void cView::DoScaleTv(const cRect *frame) { } } } + +void cView::SetClearOnDisplay(int ve, const char *clearOnDisplay) { + if (!strcmp(clearOnDisplay, "all")) { + viewElements[ve]->SetClearAll(); + return; + } + vector<int> clearVEs; + for (map<string,int>::iterator it = viewElementNames.begin(); it != viewElementNames.end(); it++) { + string name = it->first; + int id = it->second; + if (strstr(clearOnDisplay, name.c_str())) { + clearVEs.push_back(id); + } + } + viewElements[ve]->SetClearOnDisplay(clearVEs); +} + |