version 0.3.0
5
HISTORY
@ -202,4 +202,9 @@ Version 0.2.2
|
|||||||
- added replay onpause view in blackhole skin
|
- added replay onpause view in blackhole skin
|
||||||
- implemented SetTitle() in displayreplay
|
- implemented SetTitle() in displayreplay
|
||||||
- fixed header icon for plugin menus
|
- fixed header icon for plugin menus
|
||||||
|
- added function "drawtextvertical"
|
||||||
|
- implemented advanced plugin interface
|
||||||
|
- added tvguideng templates for all skins
|
||||||
|
|
||||||
|
Version 0.3.0
|
||||||
|
|
||||||
|
1
Makefile
@ -66,6 +66,7 @@ OBJS = $(PLUGIN).o \
|
|||||||
displaytracks.o \
|
displaytracks.o \
|
||||||
displayvolume.o \
|
displayvolume.o \
|
||||||
displayplugin.o \
|
displayplugin.o \
|
||||||
|
libcore/cairoimage.o \
|
||||||
libcore/pixmapcontainer.o \
|
libcore/pixmapcontainer.o \
|
||||||
libcore/fontmanager.o \
|
libcore/fontmanager.o \
|
||||||
libcore/imagecache.o \
|
libcore/imagecache.o \
|
||||||
|
21
config.c
@ -294,9 +294,11 @@ void cDesignerConfig::AddPluginMenus(string name, map< int, string > menus) {
|
|||||||
|
|
||||||
void cDesignerConfig::AddPluginViews(string name,
|
void cDesignerConfig::AddPluginViews(string name,
|
||||||
map< int, string > views,
|
map< int, string > views,
|
||||||
|
multimap< int, pair <int, string> > subViews,
|
||||||
map< int, map <int, string> > viewElements,
|
map< int, map <int, string> > viewElements,
|
||||||
map< int, map <int, string> > viewGrids) {
|
map< int, map <int, string> > viewGrids) {
|
||||||
pluginViews.insert(pair< string, map < int, string > >(name, views));
|
pluginViews.insert(pair< string, map < int, string > >(name, views));
|
||||||
|
pluginSubViews.insert(pair< string, multimap< int, pair <int, string> > >(name, subViews));
|
||||||
pluginViewElements.insert(pair< string, map< int, map <int, string> > >(name, viewElements));
|
pluginViewElements.insert(pair< string, map< int, map <int, string> > >(name, viewElements));
|
||||||
pluginViewGrids.insert(pair< string, map< int, map <int, string> > >(name, viewGrids));
|
pluginViewGrids.insert(pair< string, map< int, map <int, string> > >(name, viewGrids));
|
||||||
}
|
}
|
||||||
@ -327,6 +329,25 @@ map <int,string> *cDesignerConfig::GetPluginViews(string &name) {
|
|||||||
return views;
|
return views;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
map <int,string> cDesignerConfig::GetPluginSubViews(string name, int viewID) {
|
||||||
|
map <int,string> subViews;
|
||||||
|
|
||||||
|
map < string, multimap< int, pair <int, string> > >::iterator hit = pluginSubViews.find(name);
|
||||||
|
if (hit == pluginSubViews.end())
|
||||||
|
return subViews;
|
||||||
|
|
||||||
|
multimap< int, pair<int, string> > subs = hit->second;
|
||||||
|
|
||||||
|
pair < multimap< int, pair<int, string> >::iterator, multimap< int, pair<int, string> >::iterator> viewSubViews;
|
||||||
|
viewSubViews = subs.equal_range(viewID);
|
||||||
|
|
||||||
|
for (multimap< int, pair<int, string> >::iterator it=viewSubViews.first; it!=viewSubViews.second; ++it) {
|
||||||
|
pair<int, string> subViewFound = it->second;
|
||||||
|
subViews.insert(pair<int,string>(subViewFound.first, subViewFound.second));
|
||||||
|
}
|
||||||
|
return subViews;
|
||||||
|
}
|
||||||
|
|
||||||
int cDesignerConfig::GetPluginViewElementID(string pluginName, string viewElementName, int viewID) {
|
int cDesignerConfig::GetPluginViewElementID(string pluginName, string viewElementName, int viewID) {
|
||||||
map < string, map< int, map <int, string> > >::iterator hit = pluginViewElements.find(pluginName);
|
map < string, map< int, map <int, string> > >::iterator hit = pluginViewElements.find(pluginName);
|
||||||
if (hit == pluginViewElements.end())
|
if (hit == pluginViewElements.end())
|
||||||
|
4
config.h
@ -32,6 +32,7 @@ private:
|
|||||||
map < string, map < int, string > >::iterator plugMenuIt;
|
map < string, map < int, string > >::iterator plugMenuIt;
|
||||||
map < string, map < int, string > > pluginViews;
|
map < string, map < int, string > > pluginViews;
|
||||||
map < string, map < int, string > >::iterator plugViewIt;
|
map < string, map < int, string > >::iterator plugViewIt;
|
||||||
|
map < string, multimap< int, pair <int, string> > > pluginSubViews;
|
||||||
map < string, map< int, map <int, string> > > pluginViewElements;
|
map < string, map< int, map <int, string> > > pluginViewElements;
|
||||||
map < string, map< int, map <int, string> > > pluginViewGrids;
|
map < string, map< int, map <int, string> > > pluginViewGrids;
|
||||||
map < string, cSkinSetup* > skinSetups;
|
map < string, cSkinSetup* > skinSetups;
|
||||||
@ -72,11 +73,12 @@ public:
|
|||||||
bool OsdLanguageChanged(void);
|
bool OsdLanguageChanged(void);
|
||||||
cString GetSkinRessourcePath(void);
|
cString GetSkinRessourcePath(void);
|
||||||
void AddPluginMenus(string name, map< int, string > menus);
|
void AddPluginMenus(string name, map< int, string > menus);
|
||||||
void AddPluginViews(string name, map< int, string > views, map< int, map <int, string> > viewElements, map< int, map <int, string> > viewGrids);
|
void AddPluginViews(string name, map< int, string > views, multimap< int, pair <int, string> > subViews, map< int, map <int, string> > viewElements, map< int, map <int, string> > viewGrids);
|
||||||
void InitPluginMenuIterator(void);
|
void InitPluginMenuIterator(void);
|
||||||
map <int,string> *GetPluginTemplates(string &name);
|
map <int,string> *GetPluginTemplates(string &name);
|
||||||
void InitPluginViewIterator(void);
|
void InitPluginViewIterator(void);
|
||||||
map <int,string> *GetPluginViews(string &name);
|
map <int,string> *GetPluginViews(string &name);
|
||||||
|
map <int,string> GetPluginSubViews(string name, int viewID);
|
||||||
int GetPluginViewElementID(string pluginName, string viewElementName, int viewID);
|
int GetPluginViewElementID(string pluginName, string viewElementName, int viewID);
|
||||||
int GetPluginViewGridID(string pluginName, string viewGridName, int viewID);
|
int GetPluginViewGridID(string pluginName, string viewGridName, int viewID);
|
||||||
cString skinPath;
|
cString skinPath;
|
||||||
|
18
designer.c
@ -107,7 +107,7 @@ cSkinDisplayMessage *cSkinDesigner::DisplayMessage(void) {
|
|||||||
return displayMessage;
|
return displayMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
cSkinDisplayPlugin *cSkinDesigner::DisplayPlugin(string pluginName, int viewID) {
|
cSkinDisplayPlugin *cSkinDesigner::DisplayPlugin(string pluginName, int viewID, int subViewID) {
|
||||||
currentMenu = NULL;
|
currentMenu = NULL;
|
||||||
if (useBackupSkin)
|
if (useBackupSkin)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -119,7 +119,7 @@ cSkinDisplayPlugin *cSkinDesigner::DisplayPlugin(string pluginName, int viewID)
|
|||||||
map <int, cTemplate*>::iterator hit2 = (hit->second).find(viewID);
|
map <int, cTemplate*>::iterator hit2 = (hit->second).find(viewID);
|
||||||
if (hit2 == (hit->second).end())
|
if (hit2 == (hit->second).end())
|
||||||
return NULL;
|
return NULL;
|
||||||
return new cSkinDisplayPlugin(hit2->second);
|
return new cSkinDisplayPlugin(hit2->second, subViewID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -344,15 +344,23 @@ bool cSkinDesigner::LoadTemplates(void) {
|
|||||||
string plugName;
|
string plugName;
|
||||||
while ( plugViews = config.GetPluginViews(plugName) ) {
|
while ( plugViews = config.GetPluginViews(plugName) ) {
|
||||||
for (map <int,string>::iterator v = plugViews->begin(); v != plugViews->end(); v++) {
|
for (map <int,string>::iterator v = plugViews->begin(); v != plugViews->end(); v++) {
|
||||||
|
int viewID = v->first;
|
||||||
stringstream templateName;
|
stringstream templateName;
|
||||||
templateName << "plug-" << plugName << "-" << v->second.c_str();
|
templateName << "plug-" << plugName << "-" << v->second.c_str();
|
||||||
cTemplate *plgTemplate = new cTemplate(vtDisplayPlugin, plugName, v->first);
|
cTemplate *plgTemplate = new cTemplate(vtDisplayPlugin, plugName, viewID);
|
||||||
plgTemplate->SetGlobals(globals);
|
plgTemplate->SetGlobals(globals);
|
||||||
ok = plgTemplate->ReadFromXML(templateName.str());
|
ok = plgTemplate->ReadFromXML(templateName.str());
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
esyslog("skindesigner: error reading plugin %s template", plugName.c_str());
|
esyslog("skindesigner: error reading plugin %s template", plugName.c_str());
|
||||||
DeleteTemplates();
|
delete plgTemplate;
|
||||||
return false;
|
pluginTemplates.erase(plugName);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ok = plgTemplate->SetSubViews(plugName, viewID);
|
||||||
|
if (!ok) {
|
||||||
|
delete plgTemplate;
|
||||||
|
pluginTemplates.erase(plugName);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
plgTemplate->Translate();
|
plgTemplate->Translate();
|
||||||
map< string, map <int, cTemplate*> >::iterator hit = pluginTemplates.find(plugName);
|
map< string, map <int, cTemplate*> >::iterator hit = pluginTemplates.find(plugName);
|
||||||
|
@ -43,7 +43,7 @@ public:
|
|||||||
virtual cSkinDisplayVolume *DisplayVolume(void);
|
virtual cSkinDisplayVolume *DisplayVolume(void);
|
||||||
virtual cSkinDisplayTracks *DisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
|
virtual cSkinDisplayTracks *DisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
|
||||||
virtual cSkinDisplayMessage *DisplayMessage(void);
|
virtual cSkinDisplayMessage *DisplayMessage(void);
|
||||||
virtual cSkinDisplayPlugin *DisplayPlugin(string pluginName, int viewID);
|
virtual cSkinDisplayPlugin *DisplayPlugin(string pluginName, int viewID, int subViewID);
|
||||||
void ActivateBackupSkin(void) { useBackupSkin = true; };
|
void ActivateBackupSkin(void) { useBackupSkin = true; };
|
||||||
void Reload(void);
|
void Reload(void);
|
||||||
void ListAvailableFonts(void);
|
void ListAvailableFonts(void);
|
||||||
|
@ -11,7 +11,7 @@ cSDDisplayMenu::cSDDisplayMenu(cTemplate *menuTemplate) {
|
|||||||
pluginMenuType = mtUnknown;
|
pluginMenuType = mtUnknown;
|
||||||
if (!menuTemplate) {
|
if (!menuTemplate) {
|
||||||
doOutput = false;
|
doOutput = false;
|
||||||
esyslog("skindesigner: displayMenu no valid template - aborting");
|
dsyslog("skindesigner: displayMenu no valid template - aborting");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
rootView = new cDisplayMenuRootView(menuTemplate->GetRootView());
|
rootView = new cDisplayMenuRootView(menuTemplate->GetRootView());
|
||||||
@ -19,7 +19,6 @@ cSDDisplayMenu::cSDDisplayMenu(cTemplate *menuTemplate) {
|
|||||||
doOutput = false;
|
doOutput = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
esyslog("skindesigner: menu opened");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cSDDisplayMenu::~cSDDisplayMenu() {
|
cSDDisplayMenu::~cSDDisplayMenu() {
|
||||||
@ -27,7 +26,6 @@ cSDDisplayMenu::~cSDDisplayMenu() {
|
|||||||
delete rootView;
|
delete rootView;
|
||||||
if (textAreaFont)
|
if (textAreaFont)
|
||||||
delete textAreaFont;
|
delete textAreaFont;
|
||||||
esyslog("skindesigner: menu closed");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void cSDDisplayMenu::Scroll(bool Up, bool Page) {
|
void cSDDisplayMenu::Scroll(bool Up, bool Page) {
|
||||||
@ -186,7 +184,6 @@ bool cSDDisplayMenu::SetItemPlugin(map<string,string> *stringTokens, map<string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void cSDDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Selectable) {
|
void cSDDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Selectable) {
|
||||||
esyslog("skindesigner: Item %s %s", Text, Current ? " -- ACTIVE --" : "");
|
|
||||||
if (!doOutput)
|
if (!doOutput)
|
||||||
return;
|
return;
|
||||||
cDisplayMenuListView *list = rootView->GetListView();
|
cDisplayMenuListView *list = rootView->GetListView();
|
||||||
|
123
displayplugin.c
@ -1,6 +1,7 @@
|
|||||||
|
#include "config.h"
|
||||||
#include "displayplugin.h"
|
#include "displayplugin.h"
|
||||||
|
|
||||||
cSkinDisplayPlugin::cSkinDisplayPlugin(cTemplate *pluginTemplate) {
|
cSkinDisplayPlugin::cSkinDisplayPlugin(cTemplate *pluginTemplate, int subViewID) {
|
||||||
if (!pluginTemplate) {
|
if (!pluginTemplate) {
|
||||||
doOutput = false;
|
doOutput = false;
|
||||||
return;
|
return;
|
||||||
@ -8,8 +9,17 @@ cSkinDisplayPlugin::cSkinDisplayPlugin(cTemplate *pluginTemplate) {
|
|||||||
doOutput = true;
|
doOutput = true;
|
||||||
}
|
}
|
||||||
initial = true;
|
initial = true;
|
||||||
pluginView = new cDisplayPluginView(pluginTemplate->GetRootView());
|
if (subViewID > -1) {
|
||||||
if (!pluginView->createOsd()) {
|
cTemplateView *subView = pluginTemplate->GetRootView()->GetSubView((eSubView)subViewID);
|
||||||
|
if (!subView) {
|
||||||
|
doOutput = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView = new cDisplayPluginView(subView, false);
|
||||||
|
} else {
|
||||||
|
pluginView = new cDisplayPluginView(pluginTemplate->GetRootView(), true);
|
||||||
|
}
|
||||||
|
if (!pluginView->createOsd() && subViewID < 0) {
|
||||||
doOutput = false;
|
doOutput = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -22,6 +32,35 @@ cSkinDisplayPlugin::~cSkinDisplayPlugin(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::Deactivate(bool hide) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->Deactivate(hide);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::Activate(void) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->Activate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::ClearViewElement(int id) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->CleanViewElement(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::DisplayViewElement(int id) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->DisplayViewElement(id);
|
||||||
|
}
|
||||||
|
|
||||||
void cSkinDisplayPlugin::SetViewElementIntTokens(map<string,int> *intTokens) {
|
void cSkinDisplayPlugin::SetViewElementIntTokens(map<string,int> *intTokens) {
|
||||||
if (pluginView)
|
if (pluginView)
|
||||||
pluginView->SetIntTokens(intTokens);
|
pluginView->SetIntTokens(intTokens);
|
||||||
@ -37,13 +76,6 @@ void cSkinDisplayPlugin::SetViewElementLoopTokens(map<string,vector<map<string,s
|
|||||||
pluginView->SetLoopTokens(loopTokens);
|
pluginView->SetLoopTokens(loopTokens);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cSkinDisplayPlugin::DisplayViewElement(int id) {
|
|
||||||
if (!doOutput) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
pluginView->DisplayViewElement(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
void cSkinDisplayPlugin::InitGrids(int viewGridID) {
|
void cSkinDisplayPlugin::InitGrids(int viewGridID) {
|
||||||
if (!doOutput) {
|
if (!doOutput) {
|
||||||
return;
|
return;
|
||||||
@ -88,6 +120,69 @@ void cSkinDisplayPlugin::ClearGrids(int viewGridID) {
|
|||||||
pluginView->ClearGrids(viewGridID);
|
pluginView->ClearGrids(viewGridID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::SetTabIntTokens(map<string,int> *intTokens) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->SetTabIntTokens(intTokens);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::SetTabStringTokens(map<string,string> *stringTokens) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->SetTabStringTokens(stringTokens);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::SetTabLoopTokens(map<string,vector<map<string,string> > > *loopTokens) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->SetTabLoopTokens(loopTokens);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::SetTabs(void) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->SetTabs();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::TabLeft(void) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->TabLeft();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::TabRight(void) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->TabRight();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::TabUp(void) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->TabUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::TabDown(void) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->TabDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cSkinDisplayPlugin::DisplayTabs(void) {
|
||||||
|
if (!doOutput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pluginView->DisplayTab();
|
||||||
|
}
|
||||||
|
|
||||||
void cSkinDisplayPlugin::Flush(void) {
|
void cSkinDisplayPlugin::Flush(void) {
|
||||||
if (initial) {
|
if (initial) {
|
||||||
pluginView->DoStart();
|
pluginView->DoStart();
|
||||||
@ -95,3 +190,11 @@ void cSkinDisplayPlugin::Flush(void) {
|
|||||||
}
|
}
|
||||||
pluginView->Flush();
|
pluginView->Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool cSkinDisplayPlugin::ChannelLogoExists(string channelId) {
|
||||||
|
return imgCache->LogoExists(channelId);
|
||||||
|
}
|
||||||
|
|
||||||
|
string cSkinDisplayPlugin::GetEpgImagePath(void) {
|
||||||
|
return *config.epgImagePath;
|
||||||
|
}
|
@ -11,8 +11,11 @@ private:
|
|||||||
cDisplayPluginView *pluginView;
|
cDisplayPluginView *pluginView;
|
||||||
public:
|
public:
|
||||||
cSkinDisplayPlugin(void) {};
|
cSkinDisplayPlugin(void) {};
|
||||||
cSkinDisplayPlugin(cTemplate *pluginTemplate);
|
cSkinDisplayPlugin(cTemplate *pluginTemplate, int subViewID);
|
||||||
virtual ~cSkinDisplayPlugin(void);
|
virtual ~cSkinDisplayPlugin(void);
|
||||||
|
virtual void Deactivate(bool hide);
|
||||||
|
virtual void Activate(void);
|
||||||
|
virtual void ClearViewElement(int id);
|
||||||
virtual void DisplayViewElement(int id);
|
virtual void DisplayViewElement(int id);
|
||||||
virtual void SetViewElementIntTokens(map<string,int> *intTokens);
|
virtual void SetViewElementIntTokens(map<string,int> *intTokens);
|
||||||
virtual void SetViewElementStringTokens(map<string,string> *stringTokens);
|
virtual void SetViewElementStringTokens(map<string,string> *stringTokens);
|
||||||
@ -23,7 +26,18 @@ public:
|
|||||||
virtual void DeleteGrid(int viewGridID, long gridID);
|
virtual void DeleteGrid(int viewGridID, long gridID);
|
||||||
virtual void DisplayGrids(int viewGridID);
|
virtual void DisplayGrids(int viewGridID);
|
||||||
virtual void ClearGrids(int viewGridID);
|
virtual void ClearGrids(int viewGridID);
|
||||||
|
virtual void SetTabIntTokens(map<string,int> *intTokens);
|
||||||
|
virtual void SetTabStringTokens(map<string,string> *stringTokens);
|
||||||
|
virtual void SetTabLoopTokens(map<string,vector<map<string,string> > > *loopTokens);
|
||||||
|
virtual void SetTabs(void);
|
||||||
|
virtual void TabLeft(void);
|
||||||
|
virtual void TabRight(void);
|
||||||
|
virtual void TabUp(void);
|
||||||
|
virtual void TabDown(void);
|
||||||
|
virtual void DisplayTabs(void);
|
||||||
virtual void Flush(void);
|
virtual void Flush(void);
|
||||||
|
virtual bool ChannelLogoExists(string channelId);
|
||||||
|
virtual string GetEpgImagePath(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //__DISPLAYPLUGIN_H
|
#endif //__DISPLAYPLUGIN_H
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<!ENTITY % functions SYSTEM "functions.dtd">
|
<!ENTITY % functions SYSTEM "functions.dtd">
|
||||||
|
|
||||||
<!ELEMENT displayplugin (viewelement|grid)* >
|
<!ELEMENT displayplugin (viewelement|grid|tab|scrollbar|tablabels)* >
|
||||||
<!ATTLIST displayplugin
|
<!ATTLIST displayplugin
|
||||||
x CDATA #REQUIRED
|
x CDATA #REQUIRED
|
||||||
y CDATA #REQUIRED
|
y CDATA #REQUIRED
|
||||||
@ -21,4 +21,28 @@
|
|||||||
debug CDATA #IMPLIED
|
debug CDATA #IMPLIED
|
||||||
>
|
>
|
||||||
|
|
||||||
|
<!ELEMENT scrollbar (area|areascroll)*>
|
||||||
|
<!ATTLIST scrollbar
|
||||||
|
debug CDATA #IMPLIED
|
||||||
|
>
|
||||||
|
|
||||||
|
<!ELEMENT tablabels (area|areascroll)*>
|
||||||
|
<!ATTLIST tablabels
|
||||||
|
debug CDATA #IMPLIED
|
||||||
|
>
|
||||||
|
|
||||||
|
<!ELEMENT tab (loop|fill|drawtext|drawtextbox|drawimage|drawrectangle|drawellipse)*>
|
||||||
|
<!ATTLIST tab
|
||||||
|
x CDATA #REQUIRED
|
||||||
|
y CDATA #REQUIRED
|
||||||
|
width CDATA #REQUIRED
|
||||||
|
height CDATA #REQUIRED
|
||||||
|
layer CDATA #REQUIRED
|
||||||
|
name CDATA #REQUIRED
|
||||||
|
scrollheight CDATA #REQUIRED
|
||||||
|
transparency CDATA #IMPLIED
|
||||||
|
condition CDATA #IMPLIED
|
||||||
|
debug (true|false) #IMPLIED
|
||||||
|
>
|
||||||
|
|
||||||
%functions;
|
%functions;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!ELEMENT area (loop|fill|drawtext|drawtextbox|drawimage|drawrectangle|drawellipse|drawslope)*>
|
<!ELEMENT area (loop|fill|drawtext|drawtextbox|drawimage|drawtextvertical|drawrectangle|drawellipse|drawslope)*>
|
||||||
<!ATTLIST area
|
<!ATTLIST area
|
||||||
x CDATA #IMPLIED
|
x CDATA #IMPLIED
|
||||||
y CDATA #IMPLIED
|
y CDATA #IMPLIED
|
||||||
@ -10,7 +10,7 @@
|
|||||||
debug (true|false) #IMPLIED
|
debug (true|false) #IMPLIED
|
||||||
>
|
>
|
||||||
|
|
||||||
<!ELEMENT areascroll (loop|fill|drawtext|drawtextbox|drawimage|drawrectangle|drawellipse|drawslope)*>
|
<!ELEMENT areascroll (loop|fill|drawtext|drawtextbox|drawtextvertical|drawimage|drawrectangle|drawellipse|drawslope)*>
|
||||||
<!ATTLIST areascroll
|
<!ATTLIST areascroll
|
||||||
x CDATA #IMPLIED
|
x CDATA #IMPLIED
|
||||||
y CDATA #IMPLIED
|
y CDATA #IMPLIED
|
||||||
@ -37,7 +37,7 @@
|
|||||||
debug (true|false) #IMPLIED
|
debug (true|false) #IMPLIED
|
||||||
>
|
>
|
||||||
|
|
||||||
<!ELEMENT loop (drawtext|drawtextbox|drawimage|drawrectangle|drawellipse|drawslope)+>
|
<!ELEMENT loop (drawtext|drawtextbox|drawtextvertical|drawimage|drawrectangle|drawellipse|drawslope)+>
|
||||||
<!ATTLIST loop
|
<!ATTLIST loop
|
||||||
x CDATA #REQUIRED
|
x CDATA #REQUIRED
|
||||||
y CDATA #REQUIRED
|
y CDATA #REQUIRED
|
||||||
@ -95,6 +95,22 @@
|
|||||||
debug NMTOKEN #IMPLIED
|
debug NMTOKEN #IMPLIED
|
||||||
>
|
>
|
||||||
|
|
||||||
|
<!ELEMENT drawtextvertical EMPTY>
|
||||||
|
<!ATTLIST drawtextvertical
|
||||||
|
x CDATA #IMPLIED
|
||||||
|
y CDATA #IMPLIED
|
||||||
|
width CDATA #IMPLIED
|
||||||
|
align (left|center|right) #IMPLIED
|
||||||
|
valign (top|center|bottom) #IMPLIED
|
||||||
|
color CDATA #REQUIRED
|
||||||
|
font CDATA #REQUIRED
|
||||||
|
fontsize CDATA #REQUIRED
|
||||||
|
name NMTOKEN #IMPLIED
|
||||||
|
text CDATA #REQUIRED
|
||||||
|
condition CDATA #IMPLIED
|
||||||
|
debug (true|false) #IMPLIED
|
||||||
|
>
|
||||||
|
|
||||||
<!ELEMENT drawrectangle EMPTY>
|
<!ELEMENT drawrectangle EMPTY>
|
||||||
<!ATTLIST drawrectangle
|
<!ATTLIST drawrectangle
|
||||||
x CDATA #REQUIRED
|
x CDATA #REQUIRED
|
||||||
|
92
libcore/cairoimage.c
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#include "cairoimage.h"
|
||||||
|
|
||||||
|
cCairoImage::cCairoImage(void) {
|
||||||
|
surface = NULL;
|
||||||
|
cr = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
cCairoImage::~cCairoImage() {
|
||||||
|
if (cr)
|
||||||
|
cairo_destroy (cr);
|
||||||
|
if (surface)
|
||||||
|
cairo_surface_destroy (surface);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cCairoImage::InitCairoImage(int width, int height) {
|
||||||
|
this->width = width;
|
||||||
|
this->height = height;
|
||||||
|
|
||||||
|
surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
|
||||||
|
cr = cairo_create(surface);
|
||||||
|
cairo_set_antialias(cr, CAIRO_ANTIALIAS_BEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cCairoImage::DrawTextVertical(string text, tColor color, string font, int size) {
|
||||||
|
|
||||||
|
int imgHeight = GetTextWidth(text, font, size);
|
||||||
|
InitCairoImage(size * 1.2, imgHeight);
|
||||||
|
|
||||||
|
SetColor(color);
|
||||||
|
cairo_move_to (cr, size, imgHeight);
|
||||||
|
cairo_font_weight_t fontWeight = CAIRO_FONT_WEIGHT_NORMAL;
|
||||||
|
cairo_font_slant_t fontSlant = CAIRO_FONT_SLANT_NORMAL;
|
||||||
|
cairo_select_font_face (cr, font.c_str(), fontSlant, fontWeight);
|
||||||
|
cairo_set_font_size (cr, size);
|
||||||
|
cairo_rotate(cr, 3*M_PI/2);
|
||||||
|
cairo_show_text (cr, text.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
cImage *cCairoImage::GetImage(void) {
|
||||||
|
if (!cr || !surface)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
unsigned char *data = cairo_image_surface_get_data(surface);
|
||||||
|
cImage *image = new cImage(cSize(width, height), (tColor*)data);
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**********************************************************************************
|
||||||
|
* Private Functions
|
||||||
|
**********************************************************************************/
|
||||||
|
|
||||||
|
int cCairoImage::GetTextWidth(string text, string font, int size) {
|
||||||
|
cairo_surface_t *tmpSurface;
|
||||||
|
cairo_t *tmpCr;
|
||||||
|
|
||||||
|
double width = 300;
|
||||||
|
double height = (double)size *1.3;
|
||||||
|
|
||||||
|
cairo_font_weight_t fontWeight = CAIRO_FONT_WEIGHT_NORMAL;
|
||||||
|
cairo_font_slant_t fontSlant = CAIRO_FONT_SLANT_NORMAL;
|
||||||
|
|
||||||
|
tmpSurface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
|
||||||
|
tmpCr = cairo_create (tmpSurface);
|
||||||
|
|
||||||
|
cairo_select_font_face (tmpCr, font.c_str(), fontSlant, fontWeight);
|
||||||
|
cairo_set_font_size (tmpCr, size);
|
||||||
|
|
||||||
|
cairo_text_extents_t te;
|
||||||
|
cairo_text_extents (tmpCr, text.c_str(), &te);
|
||||||
|
int textWidth = te.width;
|
||||||
|
|
||||||
|
cairo_destroy (tmpCr);
|
||||||
|
cairo_surface_destroy (tmpSurface);
|
||||||
|
|
||||||
|
return (double)textWidth * 1.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cCairoImage::SetColor(tColor color) {
|
||||||
|
if (!cr || !surface)
|
||||||
|
return;
|
||||||
|
tIndex tAlpha = (color & 0xFF000000) >> 24;
|
||||||
|
tIndex tRed = (color & 0x00FF0000) >> 16;
|
||||||
|
tIndex tGreen = (color & 0x0000FF00) >> 8;
|
||||||
|
tIndex tBlue = (color & 0x000000FF);
|
||||||
|
|
||||||
|
double a = (int)tAlpha / (double)255;
|
||||||
|
double r = (int)tRed / (double)255;
|
||||||
|
double g = (int)tGreen / (double)255;
|
||||||
|
double b = (int)tBlue / (double)255;
|
||||||
|
|
||||||
|
cairo_set_source_rgba(cr, r, g, b, a);
|
||||||
|
}
|
26
libcore/cairoimage.h
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#ifndef __CAIROIMAGE_H
|
||||||
|
#define __CAIROIMAGE_H
|
||||||
|
|
||||||
|
#include <cairo.h>
|
||||||
|
#include <vdr/osd.h>
|
||||||
|
#include <string>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class cCairoImage {
|
||||||
|
private:
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
|
cairo_surface_t *surface;
|
||||||
|
cairo_t *cr;
|
||||||
|
void SetColor(tColor color);
|
||||||
|
int GetTextWidth(string text, string font, int size);
|
||||||
|
public:
|
||||||
|
cCairoImage(void);
|
||||||
|
virtual ~cCairoImage();
|
||||||
|
void InitCairoImage(int width, int height);
|
||||||
|
void DrawTextVertical(string text, tColor color, string font, int size);
|
||||||
|
cImage *GetImage(void);
|
||||||
|
};
|
||||||
|
#endif //__CAIROIMAGE_H
|
@ -4,6 +4,7 @@
|
|||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include "imagecache.h"
|
#include "imagecache.h"
|
||||||
|
#include "cairoimage.h"
|
||||||
#include "../config.h"
|
#include "../config.h"
|
||||||
#include "helpers.h"
|
#include "helpers.h"
|
||||||
|
|
||||||
@ -331,6 +332,28 @@ cImage *cImageCache::GetSkinpart(string name, int width, int height) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cImage *cImageCache::GetVerticalText(string text, tColor color, string font, int size) {
|
||||||
|
cMutexLock MutexLock(&mutex);
|
||||||
|
stringstream buf;
|
||||||
|
buf << text << "_" << size;
|
||||||
|
string imgName = buf.str();
|
||||||
|
map<string, cImage*>::iterator hit = cairoImageCache.find(imgName);
|
||||||
|
if (hit != cairoImageCache.end()) {
|
||||||
|
return (cImage*)hit->second;
|
||||||
|
} else {
|
||||||
|
cCairoImage c;
|
||||||
|
c.DrawTextVertical(text, color, font, size);
|
||||||
|
cImage *image = c.GetImage();
|
||||||
|
cairoImageCache.insert(pair<string, cImage*>(imgName, image));
|
||||||
|
hit = cairoImageCache.find(imgName);
|
||||||
|
if (hit != cairoImageCache.end()) {
|
||||||
|
return (cImage*)hit->second;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool cImageCache::LoadIcon(eImageType type, string name) {
|
bool cImageCache::LoadIcon(eImageType type, string name) {
|
||||||
cString subdir("");
|
cString subdir("");
|
||||||
if (type == itMenuIcon)
|
if (type == itMenuIcon)
|
||||||
@ -409,11 +432,17 @@ void cImageCache::Clear(void) {
|
|||||||
}
|
}
|
||||||
channelLogoCache.clear();
|
channelLogoCache.clear();
|
||||||
|
|
||||||
for(map<std::string, cImage*>::const_iterator it = skinPartsCache.begin(); it != skinPartsCache.end(); it++) {
|
for(map<string, cImage*>::const_iterator it = skinPartsCache.begin(); it != skinPartsCache.end(); it++) {
|
||||||
cImage *img = (cImage*)it->second;
|
cImage *img = (cImage*)it->second;
|
||||||
delete img;
|
delete img;
|
||||||
}
|
}
|
||||||
skinPartsCache.clear();
|
skinPartsCache.clear();
|
||||||
|
|
||||||
|
for(map<string, cImage*>::const_iterator it = cairoImageCache.begin(); it != cairoImageCache.end(); it++) {
|
||||||
|
cImage *img = (cImage*)it->second;
|
||||||
|
delete img;
|
||||||
|
}
|
||||||
|
cairoImageCache.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void cImageCache::Debug(bool full) {
|
void cImageCache::Debug(bool full) {
|
||||||
|
@ -30,6 +30,8 @@ public:
|
|||||||
//skinparts
|
//skinparts
|
||||||
void CacheSkinpart(string path, int width, int height);
|
void CacheSkinpart(string path, int width, int height);
|
||||||
cImage *GetSkinpart(string name, int width, int height);
|
cImage *GetSkinpart(string name, int width, int height);
|
||||||
|
//cairo special images
|
||||||
|
cImage *GetVerticalText(string text, tColor color, string font, int size);
|
||||||
//helpers
|
//helpers
|
||||||
void Clear(void);
|
void Clear(void);
|
||||||
void Debug(bool full);
|
void Debug(bool full);
|
||||||
@ -48,6 +50,7 @@ private:
|
|||||||
map<string, cImage*> iconCache;
|
map<string, cImage*> iconCache;
|
||||||
map<string, cImage*> channelLogoCache;
|
map<string, cImage*> channelLogoCache;
|
||||||
map<string, cImage*> skinPartsCache;
|
map<string, cImage*> skinPartsCache;
|
||||||
|
map<string, cImage*> cairoImageCache;
|
||||||
bool LoadIcon(eImageType type, string name);
|
bool LoadIcon(eImageType type, string name);
|
||||||
bool LoadLogo(const cChannel *channel);
|
bool LoadLogo(const cChannel *channel);
|
||||||
bool LoadSeparatorLogo(string name);
|
bool LoadSeparatorLogo(string name);
|
||||||
|
@ -16,6 +16,7 @@ cPixmapContainer::cPixmapContainer(int numPixmaps) {
|
|||||||
pixmaps[i] = NULL;
|
pixmaps[i] = NULL;
|
||||||
pixmapsTransparency[i] = 0;
|
pixmapsTransparency[i] = 0;
|
||||||
}
|
}
|
||||||
|
pixmapsLayer = NULL;
|
||||||
mutex.Unlock();
|
mutex.Unlock();
|
||||||
checkRunning = false;
|
checkRunning = false;
|
||||||
fadeTime = 0;
|
fadeTime = 0;
|
||||||
@ -33,6 +34,9 @@ cPixmapContainer::~cPixmapContainer(void) {
|
|||||||
}
|
}
|
||||||
delete[] pixmaps;
|
delete[] pixmaps;
|
||||||
delete[] pixmapsTransparency;
|
delete[] pixmapsTransparency;
|
||||||
|
if (pixmapsLayer)
|
||||||
|
delete[] pixmapsLayer;
|
||||||
|
|
||||||
if (deleteOsdOnExit && osd) {
|
if (deleteOsdOnExit && osd) {
|
||||||
mutex.Lock();
|
mutex.Lock();
|
||||||
delete osd;
|
delete osd;
|
||||||
@ -65,12 +69,6 @@ void cPixmapContainer::OpenFlush(void) {
|
|||||||
flushState = fsOpen;
|
flushState = fsOpen;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cPixmapContainer::PixmapExists(int num) {
|
|
||||||
cMutexLock MutexLock(&mutex);
|
|
||||||
if (pixmaps[num])
|
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void cPixmapContainer::DoFlush(void) {
|
void cPixmapContainer::DoFlush(void) {
|
||||||
cMutexLock MutexLock(&mutex);
|
cMutexLock MutexLock(&mutex);
|
||||||
@ -81,6 +79,41 @@ void cPixmapContainer::DoFlush(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cPixmapContainer::HidePixmaps(void) {
|
||||||
|
cMutexLock MutexLock(&mutex);
|
||||||
|
pixmapsLayer = new int[numPixmaps];
|
||||||
|
for(int i=0; i < numPixmaps; i++) {
|
||||||
|
if (!pixmaps[i]) {
|
||||||
|
pixmapsLayer[i] = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
pixmapsLayer[i] = pixmaps[i]->Layer();
|
||||||
|
pixmaps[i]->SetLayer(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void cPixmapContainer::ShowPixmaps(void) {
|
||||||
|
cMutexLock MutexLock(&mutex);
|
||||||
|
if (!pixmapsLayer)
|
||||||
|
return;
|
||||||
|
for(int i=0; i < numPixmaps; i++) {
|
||||||
|
if (!pixmaps[i])
|
||||||
|
continue;
|
||||||
|
pixmaps[i]->SetLayer(pixmapsLayer[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************************************
|
||||||
|
* Protected Functions
|
||||||
|
******************************************************************************************************/
|
||||||
|
|
||||||
|
bool cPixmapContainer::PixmapExists(int num) {
|
||||||
|
cMutexLock MutexLock(&mutex);
|
||||||
|
if (pixmaps[num])
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void cPixmapContainer::CreatePixmap(int num, int Layer, const cRect &ViewPort, const cRect &DrawPort) {
|
void cPixmapContainer::CreatePixmap(int num, int Layer, const cRect &ViewPort, const cRect &DrawPort) {
|
||||||
cMutexLock MutexLock(&mutex);
|
cMutexLock MutexLock(&mutex);
|
||||||
if (!osd || (checkRunning && !Running()))
|
if (!osd || (checkRunning && !Running()))
|
||||||
|
@ -20,13 +20,14 @@ private:
|
|||||||
int numPixmaps;
|
int numPixmaps;
|
||||||
cPixmap **pixmaps;
|
cPixmap **pixmaps;
|
||||||
int *pixmapsTransparency;
|
int *pixmapsTransparency;
|
||||||
|
int *pixmapsLayer;
|
||||||
bool checkRunning;
|
bool checkRunning;
|
||||||
int fadeTime;
|
int fadeTime;
|
||||||
bool deleteOsdOnExit;
|
bool deleteOsdOnExit;
|
||||||
protected:
|
protected:
|
||||||
void SetInitFinished(void) { pixContainerInit = false; };
|
void SetInitFinished(void) { pixContainerInit = false; };
|
||||||
bool CreateOsd(int Left, int Top, int Width, int Height);
|
bool CreateOsd(int Left, int Top, int Width, int Height);
|
||||||
void DeleteOsdOnExit(void) { deleteOsdOnExit = true; };
|
void DeleteOsdOnExit(bool doDelete = true) { deleteOsdOnExit = doDelete; };
|
||||||
//Wrappers for access to pixmaps
|
//Wrappers for access to pixmaps
|
||||||
bool PixmapExists(int num);
|
bool PixmapExists(int num);
|
||||||
int NumPixmaps(void) { return numPixmaps; };
|
int NumPixmaps(void) { return numPixmaps; };
|
||||||
@ -69,6 +70,8 @@ public:
|
|||||||
void LockFlush(void);
|
void LockFlush(void);
|
||||||
void OpenFlush(void);
|
void OpenFlush(void);
|
||||||
void DoFlush(void);
|
void DoFlush(void);
|
||||||
|
void HidePixmaps(void);
|
||||||
|
void ShowPixmaps(void);
|
||||||
virtual void Action(void) {};
|
virtual void Action(void) {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
203
libskindesigner/osdelements.c
Normal file
@ -0,0 +1,203 @@
|
|||||||
|
#include "osdelements.h"
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cOsdElement
|
||||||
|
**********************************************************************/
|
||||||
|
cOsdElement::cOsdElement(cSkinDisplayPlugin *view) {
|
||||||
|
this->view = view;
|
||||||
|
}
|
||||||
|
|
||||||
|
cOsdElement::~cOsdElement() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void cOsdElement::ClearTokens(void) {
|
||||||
|
stringTokens.clear();
|
||||||
|
intTokens.clear();
|
||||||
|
loopTokens.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cOsdElement::AddStringToken(string key, string value) {
|
||||||
|
stringTokens.insert(pair<string,string>(key, value));
|
||||||
|
}
|
||||||
|
|
||||||
|
void cOsdElement::AddIntToken(string key, int value) {
|
||||||
|
intTokens.insert(pair<string,int>(key, value));
|
||||||
|
}
|
||||||
|
|
||||||
|
void cOsdElement::AddLoopToken(string loopName, map<string, string> &tokens) {
|
||||||
|
map<string, vector<map<string, string> > >::iterator hitLoop = loopTokens.find(loopName);
|
||||||
|
if (hitLoop == loopTokens.end()) {
|
||||||
|
vector<map<string, string> > tokenVector;
|
||||||
|
tokenVector.push_back(tokens);
|
||||||
|
loopTokens.insert(pair<string, vector<map<string, string> > >(loopName, tokenVector));
|
||||||
|
} else {
|
||||||
|
vector<map<string, string> > *tokenVector = &hitLoop->second;
|
||||||
|
tokenVector->push_back(tokens);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool cOsdElement::ChannelLogoExists(string channelId) {
|
||||||
|
return view->ChannelLogoExists(channelId);
|
||||||
|
}
|
||||||
|
|
||||||
|
string cOsdElement::GetEpgImagePath(void) {
|
||||||
|
return view->GetEpgImagePath();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cViewElement
|
||||||
|
**********************************************************************/
|
||||||
|
cViewElement::cViewElement(cSkinDisplayPlugin *view, int viewElementID) : cOsdElement(view) {
|
||||||
|
this->viewElementID = viewElementID;
|
||||||
|
}
|
||||||
|
|
||||||
|
cViewElement::~cViewElement() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewElement::Clear(void) {
|
||||||
|
if (!view)
|
||||||
|
return;
|
||||||
|
view->ClearViewElement(viewElementID);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewElement::Display(void) {
|
||||||
|
if (!view)
|
||||||
|
return;
|
||||||
|
view->SetViewElementIntTokens(&intTokens);
|
||||||
|
view->SetViewElementStringTokens(&stringTokens);
|
||||||
|
view->SetViewElementLoopTokens(&loopTokens);
|
||||||
|
view->DisplayViewElement(viewElementID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cViewGrid
|
||||||
|
**********************************************************************/
|
||||||
|
cViewGrid::cViewGrid(cSkinDisplayPlugin *view, int viewGridID) : cOsdElement(view) {
|
||||||
|
this->viewGridID = viewGridID;
|
||||||
|
}
|
||||||
|
|
||||||
|
cViewGrid::~cViewGrid() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewGrid::SetGrid(long gridID, double x, double y, double width, double height) {
|
||||||
|
if (!view)
|
||||||
|
return;
|
||||||
|
view->SetGrid(viewGridID, gridID, x, y, width, height, &intTokens, &stringTokens);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewGrid::SetCurrent(long gridID, bool current) {
|
||||||
|
if (!view)
|
||||||
|
return;
|
||||||
|
view->SetGridCurrent(viewGridID, gridID, current);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewGrid::MoveGrid(long gridID, double x, double y, double width, double height) {
|
||||||
|
if (!view)
|
||||||
|
return;
|
||||||
|
view->SetGrid(viewGridID, gridID, x, y, width, height, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewGrid::Delete(long gridID) {
|
||||||
|
if (!view)
|
||||||
|
return;
|
||||||
|
view->DeleteGrid(viewGridID, gridID);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewGrid::Clear(void) {
|
||||||
|
if (!view)
|
||||||
|
return;
|
||||||
|
view->ClearGrids(viewGridID);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewGrid::Display(void) {
|
||||||
|
if (!view)
|
||||||
|
return;
|
||||||
|
view->DisplayGrids(viewGridID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cViewTab
|
||||||
|
**********************************************************************/
|
||||||
|
cViewTab::cViewTab(cSkinDisplayPlugin *view) : cOsdElement(view) {
|
||||||
|
}
|
||||||
|
|
||||||
|
cViewTab::~cViewTab() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewTab::Init(void) {
|
||||||
|
view->SetTabIntTokens(&intTokens);
|
||||||
|
view->SetTabStringTokens(&stringTokens);
|
||||||
|
view->SetTabLoopTokens(&loopTokens);
|
||||||
|
view->SetTabs();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewTab::Left(void) {
|
||||||
|
view->TabLeft();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewTab::Right(void) {
|
||||||
|
view->TabRight();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewTab::Up(void) {
|
||||||
|
view->TabUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewTab::Down(void) {
|
||||||
|
view->TabDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cViewTab::Display(void) {
|
||||||
|
if (!view)
|
||||||
|
return;
|
||||||
|
view->DisplayTabs();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cOsdView
|
||||||
|
**********************************************************************/
|
||||||
|
cOsdView::cOsdView(cSkinDisplayPlugin *displayPlugin) {
|
||||||
|
this->displayPlugin = displayPlugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
cOsdView::~cOsdView() {
|
||||||
|
delete displayPlugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cOsdView::Deactivate(bool hide) {
|
||||||
|
if (!displayPlugin)
|
||||||
|
return;
|
||||||
|
displayPlugin->Deactivate(hide);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cOsdView::Activate(void) {
|
||||||
|
if (!displayPlugin)
|
||||||
|
return;
|
||||||
|
displayPlugin->Activate();
|
||||||
|
}
|
||||||
|
|
||||||
|
cViewElement *cOsdView::GetViewElement(int viewElementID) {
|
||||||
|
if (!displayPlugin)
|
||||||
|
return NULL;
|
||||||
|
return new cViewElement(displayPlugin, viewElementID);
|
||||||
|
}
|
||||||
|
|
||||||
|
cViewGrid *cOsdView::GetViewGrid(int viewGridID) {
|
||||||
|
if (!displayPlugin)
|
||||||
|
return NULL;
|
||||||
|
displayPlugin->InitGrids(viewGridID);
|
||||||
|
return new cViewGrid(displayPlugin, viewGridID);
|
||||||
|
}
|
||||||
|
|
||||||
|
cViewTab *cOsdView::GetViewTabs(void) {
|
||||||
|
if (!displayPlugin)
|
||||||
|
return NULL;
|
||||||
|
return new cViewTab(displayPlugin);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cOsdView::Display(void) {
|
||||||
|
if (!displayPlugin)
|
||||||
|
return;
|
||||||
|
displayPlugin->Flush();
|
||||||
|
}
|
91
libskindesigner/osdelements.h
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
#ifndef __OSDELEMENTS_H
|
||||||
|
#define __OSDELEMENTS_H
|
||||||
|
|
||||||
|
#include <vdr/plugin.h>
|
||||||
|
#include "services.h"
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cOsdElement
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
class cOsdElement {
|
||||||
|
protected:
|
||||||
|
cSkinDisplayPlugin *view;
|
||||||
|
map < string, string > stringTokens;
|
||||||
|
map < string, int > intTokens;
|
||||||
|
map < string, vector< map< string, string > > > loopTokens;
|
||||||
|
public:
|
||||||
|
cOsdElement(cSkinDisplayPlugin *view);
|
||||||
|
virtual ~cOsdElement();
|
||||||
|
void AddLoopToken(string loopName, map<string, string> &tokens);
|
||||||
|
void AddStringToken(string key, string value);
|
||||||
|
void AddIntToken(string key, int value);
|
||||||
|
void ClearTokens(void);
|
||||||
|
bool ChannelLogoExists(string channelId);
|
||||||
|
string GetEpgImagePath(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cViewElement
|
||||||
|
**********************************************************************/
|
||||||
|
class cViewElement : public cOsdElement {
|
||||||
|
private:
|
||||||
|
int viewElementID;
|
||||||
|
public:
|
||||||
|
cViewElement(cSkinDisplayPlugin *view, int viewElementID);
|
||||||
|
virtual ~cViewElement();
|
||||||
|
void Clear(void);
|
||||||
|
void Display(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cViewGrid
|
||||||
|
**********************************************************************/
|
||||||
|
class cViewGrid : public cOsdElement {
|
||||||
|
private:
|
||||||
|
int viewGridID;
|
||||||
|
public:
|
||||||
|
cViewGrid(cSkinDisplayPlugin *view, int viewGridID);
|
||||||
|
virtual ~cViewGrid();
|
||||||
|
void SetGrid(long gridID, double x, double y, double width, double height);
|
||||||
|
void SetCurrent(long gridID, bool current);
|
||||||
|
void MoveGrid(long gridID, double x, double y, double width, double height);
|
||||||
|
void Delete(long gridID);
|
||||||
|
void Clear(void);
|
||||||
|
void Display(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cViewTab
|
||||||
|
**********************************************************************/
|
||||||
|
class cViewTab : public cOsdElement {
|
||||||
|
private:
|
||||||
|
public:
|
||||||
|
cViewTab(cSkinDisplayPlugin *view);
|
||||||
|
virtual ~cViewTab();
|
||||||
|
void Init(void);
|
||||||
|
void Left(void);
|
||||||
|
void Right(void);
|
||||||
|
void Up(void);
|
||||||
|
void Down(void);
|
||||||
|
void Display(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cOsdView
|
||||||
|
**********************************************************************/
|
||||||
|
class cOsdView {
|
||||||
|
private:
|
||||||
|
cSkinDisplayPlugin *displayPlugin;
|
||||||
|
public:
|
||||||
|
cOsdView(cSkinDisplayPlugin *displayPlugin);
|
||||||
|
virtual ~cOsdView();
|
||||||
|
void Deactivate(bool hide);
|
||||||
|
void Activate(void);
|
||||||
|
cViewElement *GetViewElement(int viewElementID);
|
||||||
|
cViewGrid *GetViewGrid(int viewGridID);
|
||||||
|
cViewTab *GetViewTabs(void);
|
||||||
|
void Display(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // __OSDELEMENTS_H
|
131
libskindesigner/services.h
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
#ifndef __SKINDESIGNERSERVICES_H
|
||||||
|
#define __SKINDESIGNERSERVICES_H
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
|
enum eMenuType {
|
||||||
|
mtList,
|
||||||
|
mtText
|
||||||
|
};
|
||||||
|
|
||||||
|
class cSDDisplayMenu : public cSkinDisplayMenu {
|
||||||
|
public:
|
||||||
|
virtual void SetTitle(const char *Title);
|
||||||
|
virtual void SetPluginMenu(string name, int menu, int type, bool init);
|
||||||
|
virtual bool SetItemPlugin(map<string,string> *stringTokens, map<string,int> *intTokens, map<string,vector<map<string,string> > > *loopTokens, int Index, bool Current, bool Selectable);
|
||||||
|
virtual bool SetPluginText(map<string,string> *stringTokens, map<string,int> *intTokens, map<string,vector<map<string,string> > > *loopTokens);
|
||||||
|
};
|
||||||
|
|
||||||
|
class cSkinDisplayPlugin {
|
||||||
|
public:
|
||||||
|
cSkinDisplayPlugin(void);
|
||||||
|
virtual ~cSkinDisplayPlugin(void);
|
||||||
|
virtual void Deactivate(bool hide);
|
||||||
|
virtual void Activate(void);
|
||||||
|
virtual void ClearViewElement(int id);
|
||||||
|
virtual void DisplayViewElement(int id);
|
||||||
|
virtual void SetViewElementIntTokens(map<string,int> *intTokens);
|
||||||
|
virtual void SetViewElementStringTokens(map<string,string> *stringTokens);
|
||||||
|
virtual void SetViewElementLoopTokens(map<string,vector<map<string,string> > > *loopTokens);
|
||||||
|
virtual void InitGrids(int viewGridID);
|
||||||
|
virtual void SetGrid(int viewGridID, long gridID, double x, double y, double width, double height, map<string,int> *intTokens, map<string,string> *stringTokens);
|
||||||
|
virtual void SetGridCurrent(int viewGridID, long gridID, bool current);
|
||||||
|
virtual void DeleteGrid(int viewGridID, long gridID);
|
||||||
|
virtual void DisplayGrids(int viewGridID);
|
||||||
|
virtual void ClearGrids(int viewGridID);
|
||||||
|
virtual void SetTabIntTokens(map<string,int> *intTokens);
|
||||||
|
virtual void SetTabStringTokens(map<string,string> *stringTokens);
|
||||||
|
virtual void SetTabLoopTokens(map<string,vector<map<string,string> > > *loopTokens);
|
||||||
|
virtual void SetTabs(void);
|
||||||
|
virtual void TabLeft(void);
|
||||||
|
virtual void TabRight(void);
|
||||||
|
virtual void TabUp(void);
|
||||||
|
virtual void TabDown(void);
|
||||||
|
virtual void DisplayTabs(void);
|
||||||
|
virtual void Flush(void);
|
||||||
|
virtual bool ChannelLogoExists(string channelId);
|
||||||
|
virtual string GetEpgImagePath(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
* Data Structures for Service Calls
|
||||||
|
*********************************************************************/
|
||||||
|
|
||||||
|
// Data structure for service "RegisterPlugin"
|
||||||
|
class RegisterPlugin {
|
||||||
|
public:
|
||||||
|
RegisterPlugin(void) {
|
||||||
|
name = "";
|
||||||
|
};
|
||||||
|
void SetMenu(int key, string templateName) {
|
||||||
|
menus.insert(pair<int, string>(key, templateName));
|
||||||
|
}
|
||||||
|
void SetView(int key, string templateName) {
|
||||||
|
views.insert(pair<int, string>(key, templateName));
|
||||||
|
}
|
||||||
|
void SetSubView(int view, int subView, string templateName) {
|
||||||
|
pair<int, string> sub = make_pair(subView, templateName);
|
||||||
|
subViews.insert(pair<int, pair<int, string> >(view, sub));
|
||||||
|
}
|
||||||
|
void SetViewElement(int view, int viewElement, string name) {
|
||||||
|
map< int, map<int, string> >::iterator hit = viewElements.find(view);
|
||||||
|
if (hit == viewElements.end()) {
|
||||||
|
map<int, string> vE;
|
||||||
|
vE.insert(pair<int, string >(viewElement, name));
|
||||||
|
viewElements.insert(pair<int, map < int, string > >(view, vE));
|
||||||
|
} else {
|
||||||
|
(hit->second).insert(pair<int, string >(viewElement, name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void SetViewGrid(int view, int viewGrid, string name) {
|
||||||
|
map< int, map<int, string> >::iterator hit = viewGrids.find(view);
|
||||||
|
if (hit == viewGrids.end()) {
|
||||||
|
map<int, string> vG;
|
||||||
|
vG.insert(pair<int, string >(viewGrid, name));
|
||||||
|
viewGrids.insert(pair<int, map < int, string > >(view, vG));
|
||||||
|
} else {
|
||||||
|
(hit->second).insert(pair<int, string >(viewGrid, name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// in
|
||||||
|
string name; //name of plugin
|
||||||
|
map< int, string > menus; //menus as key -> templatename hashmap
|
||||||
|
map< int, string> views; //standalone views as key -> templatename hashmap
|
||||||
|
multimap< int, pair <int, string> > subViews; //subviews of standalone views as view -> (subview, templatename) multimap
|
||||||
|
map< int, map <int, string> > viewElements; //viewelements as key -> (viewelement, viewelementname) hashmap
|
||||||
|
map< int, map <int, string> > viewGrids; //viewgrids as key -> (viewgrid, viewgridname) hashmap
|
||||||
|
//out
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structure for service "GetDisplayMenu"
|
||||||
|
class GetDisplayMenu {
|
||||||
|
public:
|
||||||
|
GetDisplayMenu(void) {
|
||||||
|
displayMenu = NULL;
|
||||||
|
};
|
||||||
|
// in
|
||||||
|
//out
|
||||||
|
cSDDisplayMenu *displayMenu;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structure for service "GetDisplayPlugin"
|
||||||
|
class GetDisplayPlugin {
|
||||||
|
public:
|
||||||
|
GetDisplayPlugin(void) {
|
||||||
|
pluginName = "";
|
||||||
|
viewID = -1;
|
||||||
|
subViewID = -1;
|
||||||
|
displayPlugin = NULL;
|
||||||
|
};
|
||||||
|
// in
|
||||||
|
string pluginName;
|
||||||
|
int viewID;
|
||||||
|
int subViewID;
|
||||||
|
//out
|
||||||
|
cSkinDisplayPlugin *displayPlugin;
|
||||||
|
};
|
||||||
|
#endif //__SKINDESIGNERSERVICES_H
|
@ -1,4 +1,41 @@
|
|||||||
#include "skindesignerosdbase.h"
|
#include "skindesignerosdbase.h"
|
||||||
|
#include "osdelements.h"
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cSkindesignerOsdObject
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
cSkindesignerOsdObject::cSkindesignerOsdObject(void) {
|
||||||
|
pSkinDesigner = NULL;
|
||||||
|
pluginName = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
cSkindesignerOsdObject::~cSkindesignerOsdObject() {
|
||||||
|
}
|
||||||
|
|
||||||
|
bool cSkindesignerOsdObject::InitSkindesignerInterface(string pluginName) {
|
||||||
|
this->pluginName = pluginName;
|
||||||
|
pSkinDesigner = cPluginManager::GetPlugin("skindesigner");
|
||||||
|
if (!pSkinDesigner) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
cOsdView *cSkindesignerOsdObject::GetOsdView(int viewID, int subViewID) {
|
||||||
|
cSkinDisplayPlugin *displayPlugin = NULL;
|
||||||
|
cOsdView *view = NULL;
|
||||||
|
GetDisplayPlugin call;
|
||||||
|
call.pluginName = pluginName;
|
||||||
|
call.viewID = viewID;
|
||||||
|
call.subViewID = subViewID;
|
||||||
|
bool ok = pSkinDesigner->Service("GetDisplayPlugin", &call);
|
||||||
|
if (ok) {
|
||||||
|
displayPlugin = call.displayPlugin;
|
||||||
|
view = new cOsdView(displayPlugin);
|
||||||
|
}
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* cSkindesignerOsdItem
|
* cSkindesignerOsdItem
|
@ -10,6 +10,26 @@
|
|||||||
#include <vdr/plugin.h>
|
#include <vdr/plugin.h>
|
||||||
#include "services.h"
|
#include "services.h"
|
||||||
|
|
||||||
|
class cOsdView;
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cSkindesignerOsdObject
|
||||||
|
**********************************************************************/
|
||||||
|
class cSkindesignerOsdObject : public cOsdObject {
|
||||||
|
protected:
|
||||||
|
string pluginName;
|
||||||
|
cPlugin *pSkinDesigner;
|
||||||
|
bool InitSkindesignerInterface(string pluginName);
|
||||||
|
cOsdView *GetOsdView(int viewID, int subViewID = -1);
|
||||||
|
public:
|
||||||
|
cSkindesignerOsdObject(void);
|
||||||
|
virtual ~cSkindesignerOsdObject();
|
||||||
|
virtual void Show(void) {};
|
||||||
|
};
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cSkindesignerOsdItem
|
||||||
|
**********************************************************************/
|
||||||
class cSkindesignerOsdItem : public cOsdItem {
|
class cSkindesignerOsdItem : public cOsdItem {
|
||||||
private:
|
private:
|
||||||
cSDDisplayMenu *sdDisplayMenu;
|
cSDDisplayMenu *sdDisplayMenu;
|
||||||
@ -28,7 +48,9 @@ public:
|
|||||||
void AddLoopToken(string loopName, map<string, string> &tokens);
|
void AddLoopToken(string loopName, map<string, string> &tokens);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* cSkindesignerOsdMenu
|
||||||
|
**********************************************************************/
|
||||||
class cSkindesignerOsdMenu : public cOsdMenu {
|
class cSkindesignerOsdMenu : public cOsdMenu {
|
||||||
private:
|
private:
|
||||||
bool init;
|
bool init;
|
@ -56,7 +56,8 @@ bool cTemplate::ReadFromXML(string xmlfile) {
|
|||||||
if (!parser.ParseView()) {
|
if (!parser.ParseView()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//read additional plugin templates
|
|
||||||
|
//read additional plugin menu templates
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
if (viewType == vtDisplayMenu) {
|
if (viewType == vtDisplayMenu) {
|
||||||
config.InitPluginMenuIterator();
|
config.InitPluginMenuIterator();
|
||||||
@ -114,6 +115,39 @@ void cTemplate::CacheImages(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool cTemplate::SetSubViews(string plugName, int viewID) {
|
||||||
|
map <int,string> subViews = config.GetPluginSubViews(plugName, viewID);
|
||||||
|
|
||||||
|
if (subViews.size() == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (map<int,string>::iterator it = subViews.begin(); it != subViews.end(); it ++) {
|
||||||
|
int subViewID = it->first;
|
||||||
|
stringstream templateName;
|
||||||
|
templateName << "plug-" << plugName << "-" << it->second;
|
||||||
|
string subViewTemplate = templateName.str();
|
||||||
|
cTemplateView *plgTemplateView = new cTemplateViewPlugin(plugName, subViewID);
|
||||||
|
plgTemplateView->SetGlobals(globals);
|
||||||
|
cXmlParser parser;
|
||||||
|
if (!parser.ReadView(plgTemplateView, subViewTemplate)) {
|
||||||
|
esyslog("skindesigner: error reading plugin %s template", plugName.c_str());
|
||||||
|
delete plgTemplateView;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!parser.ParseView()) {
|
||||||
|
esyslog("skindesigner: error reading plugin %s template", plugName.c_str());
|
||||||
|
delete plgTemplateView;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
stringstream svid;
|
||||||
|
svid << subViewID;
|
||||||
|
rootView->AddSubView(svid.str(), plgTemplateView);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void cTemplate::Debug(void) {
|
void cTemplate::Debug(void) {
|
||||||
rootView->Debug();
|
rootView->Debug();
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,8 @@ public:
|
|||||||
//get fonts for pre caching
|
//get fonts for pre caching
|
||||||
vector< pair<string, int> > GetUsedFonts(void);
|
vector< pair<string, int> > GetUsedFonts(void);
|
||||||
void CacheImages(void);
|
void CacheImages(void);
|
||||||
|
//Set Plugin Subviews
|
||||||
|
bool SetSubViews(string plugName, int viewID);
|
||||||
//Debug
|
//Debug
|
||||||
void Debug(void);
|
void Debug(void);
|
||||||
};
|
};
|
||||||
|
@ -725,11 +725,16 @@ bool cTemplateFunction::SetNumericParameter(eParamType type, string value) {
|
|||||||
break;
|
break;
|
||||||
case ptY:
|
case ptY:
|
||||||
case ptHeight:
|
case ptHeight:
|
||||||
case ptFontSize:
|
|
||||||
case ptScaleTvY:
|
case ptScaleTvY:
|
||||||
case ptScaleTvHeight:
|
case ptScaleTvHeight:
|
||||||
param.SetVertical();
|
param.SetVertical();
|
||||||
break;
|
break;
|
||||||
|
case ptFontSize: {
|
||||||
|
if (this->type == ftDrawTextVertical)
|
||||||
|
param.SetHorizontal();
|
||||||
|
else
|
||||||
|
param.SetVertical();
|
||||||
|
break; }
|
||||||
case ptLayer:
|
case ptLayer:
|
||||||
param.SetDefault(1);
|
param.SetDefault(1);
|
||||||
break;
|
break;
|
||||||
|
@ -29,6 +29,7 @@ enum eFuncType {
|
|||||||
ftFill,
|
ftFill,
|
||||||
ftDrawText,
|
ftDrawText,
|
||||||
ftDrawTextBox,
|
ftDrawTextBox,
|
||||||
|
ftDrawTextVertical,
|
||||||
ftDrawImage,
|
ftDrawImage,
|
||||||
ftDrawRectangle,
|
ftDrawRectangle,
|
||||||
ftDrawEllipse,
|
ftDrawEllipse,
|
||||||
@ -198,6 +199,8 @@ public:
|
|||||||
//Dynamic width or height parameter
|
//Dynamic width or height parameter
|
||||||
int GetWidth(bool cutted = true);
|
int GetWidth(bool cutted = true);
|
||||||
int GetHeight(void);
|
int GetHeight(void);
|
||||||
|
int GetContainerWidth(void) { return containerWidth; };
|
||||||
|
int GetContainerHeight(void) { return containerHeight; };
|
||||||
void GetNeededWidths(multimap<eParamType,string> *widths);
|
void GetNeededWidths(multimap<eParamType,string> *widths);
|
||||||
void GetNeededHeights(multimap<eParamType,string> *heights);
|
void GetNeededHeights(multimap<eParamType,string> *heights);
|
||||||
void GetNeededPosX(multimap<eParamType,string> *posXs);
|
void GetNeededPosX(multimap<eParamType,string> *posXs);
|
||||||
|
@ -124,6 +124,8 @@ void cTemplatePixmap::AddFunction(string name, vector<pair<string, string> > &pa
|
|||||||
type = ftDrawText;
|
type = ftDrawText;
|
||||||
} else if (!name.compare("drawtextbox")) {
|
} else if (!name.compare("drawtextbox")) {
|
||||||
type = ftDrawTextBox;
|
type = ftDrawTextBox;
|
||||||
|
} else if (!name.compare("drawtextvertical")) {
|
||||||
|
type = ftDrawTextVertical;
|
||||||
} else if (!name.compare("drawimage")) {
|
} else if (!name.compare("drawimage")) {
|
||||||
type = ftDrawImage;
|
type = ftDrawImage;
|
||||||
} else if (!name.compare("drawrectangle")) {
|
} else if (!name.compare("drawrectangle")) {
|
||||||
|
@ -642,6 +642,22 @@ void cTemplateView::SetFunctionDefinitions(void) {
|
|||||||
attributes.insert("floatheight");
|
attributes.insert("floatheight");
|
||||||
funcsAllowed.insert(pair< string, set<string> >(name, attributes));
|
funcsAllowed.insert(pair< string, set<string> >(name, attributes));
|
||||||
|
|
||||||
|
name = "drawtextvertical";
|
||||||
|
attributes.clear();
|
||||||
|
attributes.insert("debug");
|
||||||
|
attributes.insert("condition");
|
||||||
|
attributes.insert("name");
|
||||||
|
attributes.insert("x");
|
||||||
|
attributes.insert("y");
|
||||||
|
attributes.insert("height");
|
||||||
|
attributes.insert("align");
|
||||||
|
attributes.insert("valign");
|
||||||
|
attributes.insert("font");
|
||||||
|
attributes.insert("fontsize");
|
||||||
|
attributes.insert("color");
|
||||||
|
attributes.insert("text");
|
||||||
|
funcsAllowed.insert(pair< string, set<string> >(name, attributes));
|
||||||
|
|
||||||
name = "drawimage";
|
name = "drawimage";
|
||||||
attributes.clear();
|
attributes.clear();
|
||||||
attributes.insert("debug");
|
attributes.insert("debug");
|
||||||
@ -1849,6 +1865,20 @@ cTemplateViewPlugin::cTemplateViewPlugin(string pluginName, int viewID) {
|
|||||||
attributes.insert("scaletvheight");
|
attributes.insert("scaletvheight");
|
||||||
funcsAllowed.insert(pair< string, set<string> >(viewName, attributes));
|
funcsAllowed.insert(pair< string, set<string> >(viewName, attributes));
|
||||||
|
|
||||||
|
//definition of allowed parameters for viewtab
|
||||||
|
attributes.clear();
|
||||||
|
attributes.insert("debug");
|
||||||
|
attributes.insert("name");
|
||||||
|
attributes.insert("condition");
|
||||||
|
attributes.insert("x");
|
||||||
|
attributes.insert("y");
|
||||||
|
attributes.insert("width");
|
||||||
|
attributes.insert("height");
|
||||||
|
attributes.insert("layer");
|
||||||
|
attributes.insert("transparency");
|
||||||
|
attributes.insert("scrollheight");
|
||||||
|
funcsAllowed.insert(pair< string, set<string> >("tab", attributes));
|
||||||
|
|
||||||
attributes.clear();
|
attributes.clear();
|
||||||
attributes.insert("x");
|
attributes.insert("x");
|
||||||
attributes.insert("y");
|
attributes.insert("y");
|
||||||
@ -1858,15 +1888,23 @@ cTemplateViewPlugin::cTemplateViewPlugin(string pluginName, int viewID) {
|
|||||||
funcsAllowed.insert(pair< string, set<string> >("grid", attributes));
|
funcsAllowed.insert(pair< string, set<string> >("grid", attributes));
|
||||||
|
|
||||||
viewElementsAllowed.insert("viewelement");
|
viewElementsAllowed.insert("viewelement");
|
||||||
|
viewElementsAllowed.insert("scrollbar");
|
||||||
|
viewElementsAllowed.insert("tablabels");
|
||||||
viewGridsAllowed.insert("grid");
|
viewGridsAllowed.insert("grid");
|
||||||
}
|
}
|
||||||
|
|
||||||
cTemplateViewPlugin::~cTemplateViewPlugin() {
|
cTemplateViewPlugin::~cTemplateViewPlugin() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cTemplateViewPlugin::AddSubView(string sSubView, cTemplateView *subView) {
|
||||||
|
int subViewId = atoi(sSubView.c_str());
|
||||||
|
subViews.insert(pair< eSubView, cTemplateView* >((eSubView)subViewId, subView));
|
||||||
|
}
|
||||||
|
|
||||||
void cTemplateViewPlugin::AddPixmap(string sViewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes) {
|
void cTemplateViewPlugin::AddPixmap(string sViewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes) {
|
||||||
eViewElement ve = veUndefined;
|
eViewElement ve = veUndefined;
|
||||||
string viewElementName = "";
|
string viewElementName = "";
|
||||||
|
int viewElementID = -1;
|
||||||
bool found = false;
|
bool found = false;
|
||||||
for (vector<pair<string, string> >::iterator it = viewElementattributes.begin(); it != viewElementattributes.end(); it++) {
|
for (vector<pair<string, string> >::iterator it = viewElementattributes.begin(); it != viewElementattributes.end(); it++) {
|
||||||
if (!(it->first).compare("name")) {
|
if (!(it->first).compare("name")) {
|
||||||
@ -1875,16 +1913,23 @@ void cTemplateViewPlugin::AddPixmap(string sViewElement, cTemplatePixmap *pix, v
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!found) {
|
|
||||||
esyslog("skindesigner: no name defined for plugin %s viewelement", pluginName.c_str());
|
if (found) {
|
||||||
|
viewElementID = config.GetPluginViewElementID(pluginName, viewElementName, viewID);
|
||||||
|
} else {
|
||||||
|
//check for internal view elements
|
||||||
|
ePluginInteralViewElements pve = pveUndefined;
|
||||||
|
if (!sViewElement.compare("scrollbar")) {
|
||||||
|
pve = pveScrollbar;
|
||||||
|
} else if (!sViewElement.compare("tablabels")) {
|
||||||
|
pve = pveTablabels;
|
||||||
}
|
}
|
||||||
|
if (pve == pveUndefined) {
|
||||||
int viewElementID = config.GetPluginViewElementID(pluginName, viewElementName, viewID);
|
|
||||||
|
|
||||||
if (viewElementID == -1) {
|
|
||||||
esyslog("skindesigner: %s: unknown ViewElement in displayplugin: %s", pluginName.c_str(), viewElementName.c_str());
|
esyslog("skindesigner: %s: unknown ViewElement in displayplugin: %s", pluginName.c_str(), viewElementName.c_str());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
viewElementID = pve;
|
||||||
|
}
|
||||||
|
|
||||||
pix->SetGlobals(globals);
|
pix->SetGlobals(globals);
|
||||||
|
|
||||||
@ -1932,3 +1977,7 @@ void cTemplateViewPlugin::AddPixmapGrid(cTemplatePixmap *pix, vector<pair<string
|
|||||||
(hit->second)->AddPixmap(pix);
|
(hit->second)->AddPixmap(pix);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cTemplateViewPlugin::AddViewTab(cTemplateViewTab *viewTab) {
|
||||||
|
viewTabs.push_back(viewTab);
|
||||||
|
}
|
||||||
|
@ -211,7 +211,7 @@ public:
|
|||||||
void AddViewList(string sViewList, cTemplateViewList *viewList);
|
void AddViewList(string sViewList, cTemplateViewList *viewList);
|
||||||
};
|
};
|
||||||
|
|
||||||
// --- cTemplateViewAudioTracks -------------------------------------------------------------
|
// --- cTemplateViewPlugin -------------------------------------------------------------
|
||||||
|
|
||||||
class cTemplateViewPlugin : public cTemplateView {
|
class cTemplateViewPlugin : public cTemplateView {
|
||||||
private:
|
private:
|
||||||
@ -220,8 +220,10 @@ private:
|
|||||||
public:
|
public:
|
||||||
cTemplateViewPlugin(string pluginName, int viewID);
|
cTemplateViewPlugin(string pluginName, int viewID);
|
||||||
virtual ~cTemplateViewPlugin(void);
|
virtual ~cTemplateViewPlugin(void);
|
||||||
|
void AddSubView(string sSubView, cTemplateView *subView);
|
||||||
void AddPixmap(string viewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes);
|
void AddPixmap(string viewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes);
|
||||||
void AddPixmapGrid(cTemplatePixmap *pix, vector<pair<string, string> > &gridAttributes);
|
void AddPixmapGrid(cTemplatePixmap *pix, vector<pair<string, string> > &gridAttributes);
|
||||||
|
void AddViewTab(cTemplateViewTab *viewTab);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //__TEMPLATEVIEW_H
|
#endif //__TEMPLATEVIEW_H
|
||||||
|
@ -70,6 +70,12 @@ enum eViewElement {
|
|||||||
veVolume
|
veVolume
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ePluginInteralViewElements {
|
||||||
|
pveScrollbar = -1,
|
||||||
|
pveTablabels = -2,
|
||||||
|
pveUndefined = 0
|
||||||
|
};
|
||||||
|
|
||||||
class cTemplateViewElement {
|
class cTemplateViewElement {
|
||||||
protected:
|
protected:
|
||||||
bool debugTokens;
|
bool debugTokens;
|
||||||
|
@ -200,6 +200,8 @@ bool cXmlParser::ParseView(void) {
|
|||||||
vector<pair<string, string> > attribs;
|
vector<pair<string, string> > attribs;
|
||||||
ParseAttributes(attr, node, attribs);
|
ParseAttributes(attr, node, attribs);
|
||||||
ParseGrid(node->xmlChildrenNode, attribs);
|
ParseGrid(node->xmlChildrenNode, attribs);
|
||||||
|
} else if (!xmlStrcmp(node->name, (const xmlChar *) "tab")) {
|
||||||
|
ParseViewTab(node, view);
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,10 @@ public:
|
|||||||
void SetView(int key, string templateName) {
|
void SetView(int key, string templateName) {
|
||||||
views.insert(pair<int, string>(key, templateName));
|
views.insert(pair<int, string>(key, templateName));
|
||||||
}
|
}
|
||||||
|
void SetSubView(int view, int subView, string templateName) {
|
||||||
|
pair<int, string> sub = make_pair(subView, templateName);
|
||||||
|
subViews.insert(pair<int, pair<int, string> >(view, sub));
|
||||||
|
}
|
||||||
void SetViewElement(int view, int viewElement, string name) {
|
void SetViewElement(int view, int viewElement, string name) {
|
||||||
map< int, map<int, string> >::iterator hit = viewElements.find(view);
|
map< int, map<int, string> >::iterator hit = viewElements.find(view);
|
||||||
if (hit == viewElements.end()) {
|
if (hit == viewElements.end()) {
|
||||||
@ -46,6 +50,7 @@ public:
|
|||||||
string name; //name of plugin
|
string name; //name of plugin
|
||||||
map< int, string > menus; //menus as key -> templatename hashmap
|
map< int, string > menus; //menus as key -> templatename hashmap
|
||||||
map< int, string> views; //standalone views as key -> templatename hashmap
|
map< int, string> views; //standalone views as key -> templatename hashmap
|
||||||
|
multimap< int, pair <int, string> > subViews; //subviews of standalone views as view -> (subview, templatename) multimap
|
||||||
map< int, map <int, string> > viewElements; //viewelements as key -> (viewelement, viewelementname) hashmap
|
map< int, map <int, string> > viewElements; //viewelements as key -> (viewelement, viewelementname) hashmap
|
||||||
map< int, map <int, string> > viewGrids; //viewgrids as key -> (viewgrid, viewgridname) hashmap
|
map< int, map <int, string> > viewGrids; //viewgrids as key -> (viewgrid, viewgridname) hashmap
|
||||||
//out
|
//out
|
||||||
@ -68,11 +73,13 @@ public:
|
|||||||
GetDisplayPlugin(void) {
|
GetDisplayPlugin(void) {
|
||||||
pluginName = "";
|
pluginName = "";
|
||||||
viewID = -1;
|
viewID = -1;
|
||||||
|
subViewID = -1;
|
||||||
displayPlugin = NULL;
|
displayPlugin = NULL;
|
||||||
};
|
};
|
||||||
// in
|
// in
|
||||||
string pluginName;
|
string pluginName;
|
||||||
int viewID;
|
int viewID;
|
||||||
|
int subViewID;
|
||||||
//out
|
//out
|
||||||
cSkinDisplayPlugin *displayPlugin;
|
cSkinDisplayPlugin *displayPlugin;
|
||||||
};
|
};
|
||||||
|
@ -1,340 +0,0 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 2, June 1991
|
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
License is intended to guarantee your freedom to share and change free
|
|
||||||
software--to make sure the software is free for all its users. This
|
|
||||||
General Public License applies to most of the Free Software
|
|
||||||
Foundation's software and to any other program whose authors commit to
|
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
|
||||||
the GNU Lesser General Public License instead.) You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
this service if you wish), that you receive source code or can get it
|
|
||||||
if you want it, that you can change the software or use pieces of it
|
|
||||||
in new free programs; and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
|
||||||
anyone to deny you these rights or to ask you to surrender the rights.
|
|
||||||
These restrictions translate to certain responsibilities for you if you
|
|
||||||
distribute copies of the software, or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must give the recipients all the rights that
|
|
||||||
you have. You must make sure that they, too, receive or can get the
|
|
||||||
source code. And you must show them these terms so they know their
|
|
||||||
rights.
|
|
||||||
|
|
||||||
We protect your rights with two steps: (1) copyright the software, and
|
|
||||||
(2) offer you this license which gives you legal permission to copy,
|
|
||||||
distribute and/or modify the software.
|
|
||||||
|
|
||||||
Also, for each author's protection and ours, we want to make certain
|
|
||||||
that everyone understands that there is no warranty for this free
|
|
||||||
software. If the software is modified by someone else and passed on, we
|
|
||||||
want its recipients to know that what they have is not the original, so
|
|
||||||
that any problems introduced by others will not reflect on the original
|
|
||||||
authors' reputations.
|
|
||||||
|
|
||||||
Finally, any free program is threatened constantly by software
|
|
||||||
patents. We wish to avoid the danger that redistributors of a free
|
|
||||||
program will individually obtain patent licenses, in effect making the
|
|
||||||
program proprietary. To prevent this, we have made it clear that any
|
|
||||||
patent must be licensed for everyone's free use or not licensed at all.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
|
||||||
a notice placed by the copyright holder saying it may be distributed
|
|
||||||
under the terms of this General Public License. The "Program", below,
|
|
||||||
refers to any such program or work, and a "work based on the Program"
|
|
||||||
means either the Program or any derivative work under copyright law:
|
|
||||||
that is to say, a work containing the Program or a portion of it,
|
|
||||||
either verbatim or with modifications and/or translated into another
|
|
||||||
language. (Hereinafter, translation is included without limitation in
|
|
||||||
the term "modification".) Each licensee is addressed as "you".
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running the Program is not restricted, and the output from the Program
|
|
||||||
is covered only if its contents constitute a work based on the
|
|
||||||
Program (independent of having been made by running the Program).
|
|
||||||
Whether that is true depends on what the Program does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Program's
|
|
||||||
source code as you receive it, in any medium, provided that you
|
|
||||||
conspicuously and appropriately publish on each copy an appropriate
|
|
||||||
copyright notice and disclaimer of warranty; keep intact all the
|
|
||||||
notices that refer to this License and to the absence of any warranty;
|
|
||||||
and give any other recipients of the Program a copy of this License
|
|
||||||
along with the Program.
|
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy, and
|
|
||||||
you may at your option offer warranty protection in exchange for a fee.
|
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Program or any portion
|
|
||||||
of it, thus forming a work based on the Program, and copy and
|
|
||||||
distribute such modifications or work under the terms of Section 1
|
|
||||||
above, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) You must cause the modified files to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
b) You must cause any work that you distribute or publish, that in
|
|
||||||
whole or in part contains or is derived from the Program or any
|
|
||||||
part thereof, to be licensed as a whole at no charge to all third
|
|
||||||
parties under the terms of this License.
|
|
||||||
|
|
||||||
c) If the modified program normally reads commands interactively
|
|
||||||
when run, you must cause it, when started running for such
|
|
||||||
interactive use in the most ordinary way, to print or display an
|
|
||||||
announcement including an appropriate copyright notice and a
|
|
||||||
notice that there is no warranty (or else, saying that you provide
|
|
||||||
a warranty) and that users may redistribute the program under
|
|
||||||
these conditions, and telling the user how to view a copy of this
|
|
||||||
License. (Exception: if the Program itself is interactive but
|
|
||||||
does not normally print such an announcement, your work based on
|
|
||||||
the Program is not required to print an announcement.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Program,
|
|
||||||
and can be reasonably considered independent and separate works in
|
|
||||||
themselves, then this License, and its terms, do not apply to those
|
|
||||||
sections when you distribute them as separate works. But when you
|
|
||||||
distribute the same sections as part of a whole which is a work based
|
|
||||||
on the Program, the distribution of the whole must be on the terms of
|
|
||||||
this License, whose permissions for other licensees extend to the
|
|
||||||
entire whole, and thus to each and every part regardless of who wrote it.
|
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
|
||||||
exercise the right to control the distribution of derivative or
|
|
||||||
collective works based on the Program.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Program
|
|
||||||
with the Program (or with a work based on the Program) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may copy and distribute the Program (or a work based on it,
|
|
||||||
under Section 2) in object code or executable form under the terms of
|
|
||||||
Sections 1 and 2 above provided that you also do one of the following:
|
|
||||||
|
|
||||||
a) Accompany it with the complete corresponding machine-readable
|
|
||||||
source code, which must be distributed under the terms of Sections
|
|
||||||
1 and 2 above on a medium customarily used for software interchange; or,
|
|
||||||
|
|
||||||
b) Accompany it with a written offer, valid for at least three
|
|
||||||
years, to give any third party, for a charge no more than your
|
|
||||||
cost of physically performing source distribution, a complete
|
|
||||||
machine-readable copy of the corresponding source code, to be
|
|
||||||
distributed under the terms of Sections 1 and 2 above on a medium
|
|
||||||
customarily used for software interchange; or,
|
|
||||||
|
|
||||||
c) Accompany it with the information you received as to the offer
|
|
||||||
to distribute corresponding source code. (This alternative is
|
|
||||||
allowed only for noncommercial distribution and only if you
|
|
||||||
received the program in object code or executable form with such
|
|
||||||
an offer, in accord with Subsection b above.)
|
|
||||||
|
|
||||||
The source code for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For an executable work, complete source
|
|
||||||
code means all the source code for all modules it contains, plus any
|
|
||||||
associated interface definition files, plus the scripts used to
|
|
||||||
control compilation and installation of the executable. However, as a
|
|
||||||
special exception, the source code distributed need not include
|
|
||||||
anything that is normally distributed (in either source or binary
|
|
||||||
form) with the major components (compiler, kernel, and so on) of the
|
|
||||||
operating system on which the executable runs, unless that component
|
|
||||||
itself accompanies the executable.
|
|
||||||
|
|
||||||
If distribution of executable or object code is made by offering
|
|
||||||
access to copy from a designated place, then offering equivalent
|
|
||||||
access to copy the source code from the same place counts as
|
|
||||||
distribution of the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
|
||||||
except as expressly provided under this License. Any attempt
|
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
|
||||||
void, and will automatically terminate your rights under this License.
|
|
||||||
However, parties who have received copies, or rights, from you under
|
|
||||||
this License will not have their licenses terminated so long as such
|
|
||||||
parties remain in full compliance.
|
|
||||||
|
|
||||||
5. You are not required to accept this License, since you have not
|
|
||||||
signed it. However, nothing else grants you permission to modify or
|
|
||||||
distribute the Program or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Program (or any work based on the
|
|
||||||
Program), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Program or works based on it.
|
|
||||||
|
|
||||||
6. Each time you redistribute the Program (or any work based on the
|
|
||||||
Program), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute or modify the Program subject to
|
|
||||||
these terms and conditions. You may not impose any further
|
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
|
||||||
You are not responsible for enforcing compliance by third parties to
|
|
||||||
this License.
|
|
||||||
|
|
||||||
7. If, as a consequence of a court judgment or allegation of patent
|
|
||||||
infringement or for any other reason (not limited to patent issues),
|
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot
|
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you
|
|
||||||
may not distribute the Program at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Program by
|
|
||||||
all those who receive copies directly or indirectly through you, then
|
|
||||||
the only way you could satisfy both it and this License would be to
|
|
||||||
refrain entirely from distribution of the Program.
|
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under
|
|
||||||
any particular circumstance, the balance of the section is intended to
|
|
||||||
apply and the section as a whole is intended to apply in other
|
|
||||||
circumstances.
|
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
|
||||||
patents or other property right claims or to contest validity of any
|
|
||||||
such claims; this section has the sole purpose of protecting the
|
|
||||||
integrity of the free software distribution system, which is
|
|
||||||
implemented by public license practices. Many people have made
|
|
||||||
generous contributions to the wide range of software distributed
|
|
||||||
through that system in reliance on consistent application of that
|
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
|
||||||
to distribute software through any other system and a licensee cannot
|
|
||||||
impose that choice.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Program under this License
|
|
||||||
may add an explicit geographical distribution limitation excluding
|
|
||||||
those countries, so that distribution is permitted only in or among
|
|
||||||
countries not thus excluded. In such case, this License incorporates
|
|
||||||
the limitation as if written in the body of this License.
|
|
||||||
|
|
||||||
9. The Free Software Foundation may publish revised and/or new versions
|
|
||||||
of the General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Program
|
|
||||||
specifies a version number of this License which applies to it and "any
|
|
||||||
later version", you have the option of following the terms and conditions
|
|
||||||
either of that version or of any later version published by the Free
|
|
||||||
Software Foundation. If the Program does not specify a version number of
|
|
||||||
this License, you may choose any version ever published by the Free Software
|
|
||||||
Foundation.
|
|
||||||
|
|
||||||
10. If you wish to incorporate parts of the Program into other free
|
|
||||||
programs whose distribution conditions are different, write to the author
|
|
||||||
to ask for permission. For software which is copyrighted by the Free
|
|
||||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
|
||||||
make exceptions for this. Our decision will be guided by the two goals
|
|
||||||
of preserving the free status of all derivatives of our free software and
|
|
||||||
of promoting the sharing and reuse of software generally.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
|
||||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
|
||||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
|
||||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
|
||||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
|
||||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
|
||||||
REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
|
||||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
|
||||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
|
||||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
|
||||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|
||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
convey the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
|
||||||
when it starts in an interactive mode:
|
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, the commands you use may
|
|
||||||
be called something other than `show w' and `show c'; they could even be
|
|
||||||
mouse-clicks or menu items--whatever suits your program.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
|
||||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1989
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
This General Public License does not permit incorporating your program into
|
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
|
||||||
consider it more useful to permit linking proprietary applications with the
|
|
||||||
library. If this is what you want to do, use the GNU Lesser General
|
|
||||||
Public License instead of this License.
|
|
@ -1,123 +0,0 @@
|
|||||||
#
|
|
||||||
# Makefile for a Video Disk Recorder plugin
|
|
||||||
#
|
|
||||||
# $Id$
|
|
||||||
|
|
||||||
# The official name of this plugin.
|
|
||||||
# This name will be used in the '-P...' option of VDR to load the plugin.
|
|
||||||
# By default the main source file also carries this name.
|
|
||||||
|
|
||||||
PLUGIN = skindesclient
|
|
||||||
|
|
||||||
### The version number of this plugin (taken from the main source file):
|
|
||||||
|
|
||||||
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
|
|
||||||
|
|
||||||
### The directory environment:
|
|
||||||
|
|
||||||
# Use package data if installed...otherwise assume we're under the VDR source directory:
|
|
||||||
PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
|
|
||||||
LIBDIR = $(call PKGCFG,libdir)
|
|
||||||
LOCDIR = $(call PKGCFG,locdir)
|
|
||||||
PLGCFG = $(call PKGCFG,plgcfg)
|
|
||||||
#
|
|
||||||
TMPDIR ?= /tmp
|
|
||||||
|
|
||||||
### The compiler options:
|
|
||||||
|
|
||||||
export CFLAGS = $(call PKGCFG,cflags)
|
|
||||||
export CXXFLAGS = $(call PKGCFG,cxxflags)
|
|
||||||
|
|
||||||
### The version number of VDR's plugin API:
|
|
||||||
|
|
||||||
APIVERSION = $(call PKGCFG,apiversion)
|
|
||||||
|
|
||||||
### Allow user defined options to overwrite defaults:
|
|
||||||
|
|
||||||
-include $(PLGCFG)
|
|
||||||
|
|
||||||
### The name of the distribution archive:
|
|
||||||
|
|
||||||
ARCHIVE = $(PLUGIN)-$(VERSION)
|
|
||||||
PACKAGE = vdr-$(ARCHIVE)
|
|
||||||
|
|
||||||
### The name of the shared object file:
|
|
||||||
|
|
||||||
SOFILE = libvdr-$(PLUGIN).so
|
|
||||||
|
|
||||||
### Includes and Defines (add further entries here):
|
|
||||||
|
|
||||||
INCLUDES +=
|
|
||||||
|
|
||||||
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
|
||||||
|
|
||||||
### The object files (add further files here):
|
|
||||||
|
|
||||||
OBJS = $(PLUGIN).o \
|
|
||||||
libskindesigner/skindesignerosdbase.o
|
|
||||||
|
|
||||||
### The main target:
|
|
||||||
|
|
||||||
all: $(SOFILE) i18n
|
|
||||||
|
|
||||||
### Implicit rules:
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
|
|
||||||
|
|
||||||
### Dependencies:
|
|
||||||
|
|
||||||
MAKEDEP = $(CXX) -MM -MG
|
|
||||||
DEPFILE = .dependencies
|
|
||||||
$(DEPFILE): Makefile
|
|
||||||
@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
|
|
||||||
|
|
||||||
-include $(DEPFILE)
|
|
||||||
|
|
||||||
### Internationalization (I18N):
|
|
||||||
|
|
||||||
PODIR = po
|
|
||||||
I18Npo = $(wildcard $(PODIR)/*.po)
|
|
||||||
I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
|
|
||||||
I18Nmsgs = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
|
|
||||||
I18Npot = $(PODIR)/$(PLUGIN).pot
|
|
||||||
|
|
||||||
%.mo: %.po
|
|
||||||
msgfmt -c -o $@ $<
|
|
||||||
|
|
||||||
$(I18Npot): $(wildcard *.c)
|
|
||||||
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
|
|
||||||
|
|
||||||
%.po: $(I18Npot)
|
|
||||||
msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
|
|
||||||
@touch $@
|
|
||||||
|
|
||||||
$(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
|
|
||||||
install -D -m644 $< $@
|
|
||||||
|
|
||||||
.PHONY: i18n
|
|
||||||
i18n: $(I18Nmo) $(I18Npot)
|
|
||||||
|
|
||||||
install-i18n: $(I18Nmsgs)
|
|
||||||
|
|
||||||
### Targets:
|
|
||||||
|
|
||||||
$(SOFILE): $(OBJS)
|
|
||||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
|
|
||||||
|
|
||||||
install-lib: $(SOFILE)
|
|
||||||
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
|
|
||||||
|
|
||||||
install: install-lib install-i18n
|
|
||||||
|
|
||||||
dist: $(I18Npo) clean
|
|
||||||
@-rm -rf $(TMPDIR)/$(ARCHIVE)
|
|
||||||
@mkdir $(TMPDIR)/$(ARCHIVE)
|
|
||||||
@cp -a * $(TMPDIR)/$(ARCHIVE)
|
|
||||||
@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
|
|
||||||
@-rm -rf $(TMPDIR)/$(ARCHIVE)
|
|
||||||
@echo Distribution package created as $(PACKAGE).tgz
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
|
|
||||||
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~
|
|
@ -1,16 +0,0 @@
|
|||||||
This is a "plugin" for the Video Disk Recorder (VDR).
|
|
||||||
|
|
||||||
Written by: Louis Braun <louis.braun@gmx.de>
|
|
||||||
|
|
||||||
Project's homepage: ---
|
|
||||||
|
|
||||||
Latest version available at: ---
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
See the file COPYING for more information.
|
|
||||||
|
|
||||||
Description: This is just an example how to use the skindesigner
|
|
||||||
template engine with a VDR plugin
|
|
@ -1,52 +0,0 @@
|
|||||||
#ifndef __SKINDESIGNERSERVICES_H
|
|
||||||
#define __SKINDESIGNERSERVICES_H
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
#include <map>
|
|
||||||
|
|
||||||
enum eMenuType {
|
|
||||||
mtList,
|
|
||||||
mtText
|
|
||||||
};
|
|
||||||
|
|
||||||
class cSDDisplayMenu : public cSkinDisplayMenu {
|
|
||||||
public:
|
|
||||||
virtual void SetTitle(const char *Title);
|
|
||||||
virtual void SetPluginMenu(string name, int menu, int type, bool init);
|
|
||||||
virtual bool SetItemPlugin(map<string,string> *stringTokens, map<string,int> *intTokens, map<string,vector<map<string,string> > > *loopTokens, int Index, bool Current, bool Selectable);
|
|
||||||
virtual bool SetPluginText(map<string,string> *stringTokens, map<string,int> *intTokens, map<string,vector<map<string,string> > > *loopTokens);
|
|
||||||
};
|
|
||||||
|
|
||||||
/*********************************************************************
|
|
||||||
* Data Structures for Service Calls
|
|
||||||
*********************************************************************/
|
|
||||||
|
|
||||||
// Data structure for service "RegisterPlugin"
|
|
||||||
class RegisterPlugin {
|
|
||||||
public:
|
|
||||||
RegisterPlugin(void) {
|
|
||||||
name = "";
|
|
||||||
};
|
|
||||||
void SetMenu(int key, string templateName) {
|
|
||||||
menus.insert(pair<int, string>(key, templateName));
|
|
||||||
}
|
|
||||||
// in
|
|
||||||
string name; //name of plugin
|
|
||||||
map< int, string > menus; //menus as key -> templatename hashmap
|
|
||||||
//out
|
|
||||||
};
|
|
||||||
|
|
||||||
// Data structure for service "GetDisplayMenu"
|
|
||||||
class GetDisplayMenu {
|
|
||||||
public:
|
|
||||||
GetDisplayMenu(void) {
|
|
||||||
displayMenu = NULL;
|
|
||||||
};
|
|
||||||
// in
|
|
||||||
//out
|
|
||||||
cSDDisplayMenu *displayMenu;
|
|
||||||
};
|
|
||||||
#endif //__SKINDESIGNERSERVICES_H
|
|
@ -1,148 +0,0 @@
|
|||||||
#include <vdr/osdbase.h>
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
#include <map>
|
|
||||||
#include <set>
|
|
||||||
#include <sstream>
|
|
||||||
#include "libskindesigner/skindesignerosdbase.h"
|
|
||||||
|
|
||||||
enum eMenus {
|
|
||||||
meListMain,
|
|
||||||
meListSub,
|
|
||||||
meDetail
|
|
||||||
};
|
|
||||||
|
|
||||||
class cPlugOsdMenu : public cSkindesignerOsdMenu {
|
|
||||||
private:
|
|
||||||
void SetMenu(int numItems, bool subfolder = false);
|
|
||||||
void SetDetailView(int element);
|
|
||||||
public:
|
|
||||||
cPlugOsdMenu(void);
|
|
||||||
virtual ~cPlugOsdMenu();
|
|
||||||
virtual eOSState ProcessKey(eKeys key);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
//***************************************************************************
|
|
||||||
// Public Functions
|
|
||||||
//***************************************************************************
|
|
||||||
|
|
||||||
cPlugOsdMenu::cPlugOsdMenu(void) : cSkindesignerOsdMenu("Skindesigner Client") {
|
|
||||||
SetPluginName("skindesclient");
|
|
||||||
SetMenu(10);
|
|
||||||
}
|
|
||||||
|
|
||||||
cPlugOsdMenu::~cPlugOsdMenu(void) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
eOSState cPlugOsdMenu::ProcessKey(eKeys key) {
|
|
||||||
eOSState state = cOsdMenu::ProcessKey(key);
|
|
||||||
switch (key) {
|
|
||||||
case kOk: {
|
|
||||||
int element = Current();
|
|
||||||
if (element%2)
|
|
||||||
SetDetailView(element);
|
|
||||||
else
|
|
||||||
SetMenu(25, true);
|
|
||||||
state = osContinue;
|
|
||||||
break;
|
|
||||||
} case kLeft: {
|
|
||||||
TextKeyLeft();
|
|
||||||
state = osContinue;
|
|
||||||
break;
|
|
||||||
} case kRight: {
|
|
||||||
TextKeyRight();
|
|
||||||
state = osContinue;
|
|
||||||
break;
|
|
||||||
} case kUp: {
|
|
||||||
TextKeyUp();
|
|
||||||
state = osContinue;
|
|
||||||
break;
|
|
||||||
} case kDown: {
|
|
||||||
TextKeyDown();
|
|
||||||
state = osContinue;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
//***************************************************************************
|
|
||||||
// Private Functions
|
|
||||||
//***************************************************************************
|
|
||||||
|
|
||||||
void cPlugOsdMenu::SetMenu(int numItems, bool subfolder) {
|
|
||||||
eMenus menu = subfolder ? meListSub : meListMain;
|
|
||||||
SetPluginMenu(menu, mtList);
|
|
||||||
Clear();
|
|
||||||
|
|
||||||
for (int i=0; i < numItems; i++) {
|
|
||||||
cSkindesignerOsdItem *item = new cSkindesignerOsdItem();
|
|
||||||
//add some tokens to the menu item
|
|
||||||
stringstream text;
|
|
||||||
if (i%2)
|
|
||||||
text << "DetailItem" << (i+1);
|
|
||||||
else
|
|
||||||
text << "FolderItem" << (i+1);
|
|
||||||
item->SetText(text.str().c_str());
|
|
||||||
item->AddIntToken("itemnumber", i);
|
|
||||||
item->AddStringToken("menuitemtext", text.str().c_str());
|
|
||||||
|
|
||||||
stringstream text2;
|
|
||||||
text2 << "CurrentItemText" << (i+1) << "\n";
|
|
||||||
text2 << "CurrentItemText" << (i+1) << "\n";
|
|
||||||
text2 << "CurrentItemText" << (i+1) << "\n";
|
|
||||||
text2 << "CurrentItemText" << (i+1) << "\n";
|
|
||||||
text2 << "CurrentItemText" << (i+1) << "\n";
|
|
||||||
text2 << "CurrentItemText" << (i+1) << "\n";
|
|
||||||
item->AddStringToken("currentitemtext", text2.str().c_str());
|
|
||||||
|
|
||||||
//Loop Token Example
|
|
||||||
for (int row=0; row<20; row++) {
|
|
||||||
map<string, string> tokens;
|
|
||||||
for (int col=0; col<3; col++) {
|
|
||||||
stringstream key;
|
|
||||||
stringstream value;
|
|
||||||
key << "loop1[" << "col" << col << "]";
|
|
||||||
value << "menuitem" << i << "-" << row << "x" << col;
|
|
||||||
tokens.insert(pair<string,string>(key.str(), value.str()));
|
|
||||||
}
|
|
||||||
item->AddLoopToken("loop1", tokens);
|
|
||||||
}
|
|
||||||
//Add item
|
|
||||||
bool current = (i==0)?true:false;
|
|
||||||
Add(item, current);
|
|
||||||
}
|
|
||||||
SetHelp("Red", "Green", "Yellow", "Blue");
|
|
||||||
Display();
|
|
||||||
}
|
|
||||||
|
|
||||||
void cPlugOsdMenu::SetDetailView(int element) {
|
|
||||||
SetPluginMenu(meDetail, mtText);
|
|
||||||
Clear();
|
|
||||||
ClearTokens();
|
|
||||||
|
|
||||||
SetText("Text to be displayed if skindesigner templates are not available");
|
|
||||||
|
|
||||||
AddIntToken("menuitem", element);
|
|
||||||
AddStringToken("tabtext", "String Token to be displayed if skindesigner template is available");
|
|
||||||
|
|
||||||
//Loop Token Example
|
|
||||||
for (int row=0; row<25; row++) {
|
|
||||||
map<string, string> tokens;
|
|
||||||
for (int col=0; col<10; col++) {
|
|
||||||
stringstream key;
|
|
||||||
stringstream value;
|
|
||||||
key << "loop1[" << "col" << col << "]";
|
|
||||||
value << "row" << row << "-" << "col" << "-" << col;
|
|
||||||
tokens.insert(pair<string,string>(key.str(), value.str()));
|
|
||||||
}
|
|
||||||
AddLoopToken("loop1", tokens);
|
|
||||||
}
|
|
||||||
|
|
||||||
SetHelp("Red", "Green", "Yellow", "Blue");
|
|
||||||
Display();
|
|
||||||
}
|
|
@ -1,147 +0,0 @@
|
|||||||
/*
|
|
||||||
* skindesclient.c: A plugin for the Video Disk Recorder
|
|
||||||
*
|
|
||||||
* See the README file for copyright information and how to reach the author.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <vdr/plugin.h>
|
|
||||||
#include "osdmenu.c"
|
|
||||||
#include "libskindesigner/services.h"
|
|
||||||
|
|
||||||
static const char *VERSION = "0.0.1";
|
|
||||||
static const char *DESCRIPTION = "SkinDesigner Test Client";
|
|
||||||
static const char *MAINMENUENTRY = "Skindesclient";
|
|
||||||
|
|
||||||
class cPluginSkindesclient : public cPlugin {
|
|
||||||
private:
|
|
||||||
// Add any member variables or functions you may need here.
|
|
||||||
public:
|
|
||||||
cPluginSkindesclient(void);
|
|
||||||
virtual ~cPluginSkindesclient();
|
|
||||||
virtual const char *Version(void) { return VERSION; }
|
|
||||||
virtual const char *Description(void) { return DESCRIPTION; }
|
|
||||||
virtual const char *CommandLineHelp(void);
|
|
||||||
virtual bool ProcessArgs(int argc, char *argv[]);
|
|
||||||
virtual bool Initialize(void);
|
|
||||||
virtual bool Start(void);
|
|
||||||
virtual void Stop(void);
|
|
||||||
virtual void Housekeeping(void);
|
|
||||||
virtual void MainThreadHook(void);
|
|
||||||
virtual cString Active(void);
|
|
||||||
virtual time_t WakeupTime(void);
|
|
||||||
virtual const char *MainMenuEntry(void) { return MAINMENUENTRY; }
|
|
||||||
virtual cOsdObject *MainMenuAction(void);
|
|
||||||
virtual cMenuSetupPage *SetupMenu(void);
|
|
||||||
virtual bool SetupParse(const char *Name, const char *Value);
|
|
||||||
virtual bool Service(const char *Id, void *Data = NULL);
|
|
||||||
virtual const char **SVDRPHelpPages(void);
|
|
||||||
virtual cString SVDRPCommand(const char *Command, const char *Option, int &ReplyCode);
|
|
||||||
};
|
|
||||||
|
|
||||||
cPluginSkindesclient::cPluginSkindesclient(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
cPluginSkindesclient::~cPluginSkindesclient()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *cPluginSkindesclient::CommandLineHelp(void)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool cPluginSkindesclient::ProcessArgs(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool cPluginSkindesclient::Initialize(void)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool cPluginSkindesclient::Start(void)
|
|
||||||
{
|
|
||||||
RegisterPlugin reg;
|
|
||||||
reg.name = "skindesclient";
|
|
||||||
reg.SetMenu(meListMain, "menulistmain.xml");
|
|
||||||
reg.SetMenu(meListSub, "menulistsub.xml");
|
|
||||||
reg.SetMenu(meDetail, "menudetail.xml");
|
|
||||||
static cPlugin *pSkinDesigner = cPluginManager::GetPlugin("skindesigner");
|
|
||||||
if (pSkinDesigner) {
|
|
||||||
bool ok = pSkinDesigner->Service("RegisterPlugin", ®);
|
|
||||||
} else {
|
|
||||||
esyslog("skindesclient: skindesigner not available");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void cPluginSkindesclient::Stop(void)
|
|
||||||
{
|
|
||||||
// Stop any background activities the plugin is performing.
|
|
||||||
}
|
|
||||||
|
|
||||||
void cPluginSkindesclient::Housekeeping(void)
|
|
||||||
{
|
|
||||||
// Perform any cleanup or other regular tasks.
|
|
||||||
}
|
|
||||||
|
|
||||||
void cPluginSkindesclient::MainThreadHook(void)
|
|
||||||
{
|
|
||||||
// Perform actions in the context of the main program thread.
|
|
||||||
// WARNING: Use with great care - see PLUGINS.html!
|
|
||||||
}
|
|
||||||
|
|
||||||
cString cPluginSkindesclient::Active(void)
|
|
||||||
{
|
|
||||||
// Return a message string if shutdown should be postponed
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
time_t cPluginSkindesclient::WakeupTime(void)
|
|
||||||
{
|
|
||||||
// Return custom wakeup time for shutdown script
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
cOsdObject *cPluginSkindesclient::MainMenuAction(void)
|
|
||||||
{
|
|
||||||
cOsdObject *menu = new cPlugOsdMenu();
|
|
||||||
return menu;
|
|
||||||
}
|
|
||||||
|
|
||||||
cMenuSetupPage *cPluginSkindesclient::SetupMenu(void)
|
|
||||||
{
|
|
||||||
// Return a setup menu in case the plugin supports one.
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool cPluginSkindesclient::SetupParse(const char *Name, const char *Value)
|
|
||||||
{
|
|
||||||
// Parse your own setup parameters and store their values.
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool cPluginSkindesclient::Service(const char *Id, void *Data)
|
|
||||||
{
|
|
||||||
// Handle custom service requests from other plugins
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char **cPluginSkindesclient::SVDRPHelpPages(void)
|
|
||||||
{
|
|
||||||
// Return help text for SVDRP commands this plugin implements
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
cString cPluginSkindesclient::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode)
|
|
||||||
{
|
|
||||||
// Process SVDRP commands this plugin implements
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
VDRPLUGINCREATOR(cPluginSkindesclient); // Don't touch this!
|
|
@ -1,80 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE menuplugin SYSTEM "../../../dtd/displaymenuplugin.dtd">
|
|
||||||
|
|
||||||
<menuplugin x="0" y="0" width="100%" height="100%" fadetime="0">
|
|
||||||
<background>
|
|
||||||
<area x="0" y="0" width="100%" height="100%" layer="1">
|
|
||||||
<fill color="{clrTransBlack}" />
|
|
||||||
</area>
|
|
||||||
</background>
|
|
||||||
<!-- dummyheader -->
|
|
||||||
<header>
|
|
||||||
<area x="0" y="0" width="1" height="1" layer="1">
|
|
||||||
<fill color="{clrTransparent}" />
|
|
||||||
</area>
|
|
||||||
</header>
|
|
||||||
<datetime>
|
|
||||||
<area x="0" y="0" width="1" height="1" layer="1">
|
|
||||||
<fill color="{clrTransparent}" />
|
|
||||||
</area>
|
|
||||||
</datetime>
|
|
||||||
<colorbuttons>
|
|
||||||
</colorbuttons>
|
|
||||||
<!-- Available Variables in detail header:
|
|
||||||
{menuitem} Number of menu item element from list
|
|
||||||
{tabtext} Text for Tab
|
|
||||||
-->
|
|
||||||
<detailheader>
|
|
||||||
<area x="0" y="0" width="100%" height="20%" layer="2">
|
|
||||||
<fill color="{clrTransBlueLight}" />
|
|
||||||
</area>
|
|
||||||
<area x="0" y="0" width="100%" height="20%" layer="3">
|
|
||||||
<drawtext x="20" valign="center" font="{light}" fontsize="40%" color="{clrWhite}" text="Header for menuitem {menuitem} detailed information" />
|
|
||||||
</area>
|
|
||||||
</detailheader>
|
|
||||||
<!-- Available Variables scrollbar:
|
|
||||||
{height} height in one-tenth of a percent of total height
|
|
||||||
{offset} offset from top in one-tenth of a percent of total height
|
|
||||||
-->
|
|
||||||
<scrollbar>
|
|
||||||
<area x="98%" y="20%" width="2%" height="65%" layer="3">
|
|
||||||
<fill color="{clrWhite}" />
|
|
||||||
<drawrectangle x="2" y="2" width="{areawidth} - 4" height="{areaheight} - 4" color="{clrTransparent}" />
|
|
||||||
<drawrectangle x="4" y="4 + {areaheight} * {offset} / 1000" width="{areawidth} - 8" height="{areaheight} * {height} / 1000 - 8" color="{clrWhite}" />
|
|
||||||
</area>
|
|
||||||
</scrollbar>
|
|
||||||
<!-- Available Variables in tab elements:
|
|
||||||
{menuitem} Number of menu item element from list
|
|
||||||
{tabtext} Text for Tab
|
|
||||||
{loop1[]} test array
|
|
||||||
{loop1[col0]} test array first col
|
|
||||||
...
|
|
||||||
{loop1[col3]} test array fourth col
|
|
||||||
-->
|
|
||||||
<!-- TAB TEST1 -->
|
|
||||||
<tab name="Test1" x="2%" y="20%" width="94%" height="65%" layer="2" scrollheight="{areaheight}/4">
|
|
||||||
<drawtextbox x="0" y="0" width="96%" font="{light}" fontsize="8%" color="{clrWhite}" text="{tabtext}" />
|
|
||||||
</tab>
|
|
||||||
<!-- TAB TEST2 -->
|
|
||||||
<tab name="Test2" x="2%" y="20%" width="94%" height="65%" layer="2" scrollheight="{areaheight}/4">
|
|
||||||
<drawtext x="10" y="0" width="96%" font="{light}" fontsize="8%" color="{clrWhite}" text="{tabtext}" />
|
|
||||||
<loop name="loop1" x="0" y="9%" width="{areawidth} - 40" orientation="vertical">
|
|
||||||
<drawtext x="20" y="0" width="{areawidth} - 20" font="{light}" fontsize="8%" color="{clrWhite}" text="{loop1[col0]} {loop1[col1]} {loop1[col2]} {loop1[col3]}" />
|
|
||||||
</loop>
|
|
||||||
</tab>
|
|
||||||
<!-- Available Variables tablabels:
|
|
||||||
{tabs[]} array with available tab labels
|
|
||||||
{tabs[title]} title of tab
|
|
||||||
{tabs[current]} true if tab is displayed currently
|
|
||||||
-->
|
|
||||||
<tablabels>
|
|
||||||
<area x="0" y="85%" width="98%" height="5%" layer="3">
|
|
||||||
<loop name="tabs" x="0" y="0" orientation="horizontal">
|
|
||||||
<drawrectangle condition="{tabs[current]}" x="0" y="0" width="{width(label)}" height="100%" color="{clrTransBlueLight}" />
|
|
||||||
<drawrectangle condition="not{tabs[current]}" x="0" y="0" width="{width(label)}" height="100%" color="{clrTransBlueLight}" />
|
|
||||||
<drawrectangle condition="not{tabs[current]}" x="2" y="2" width="{width(label)} - 4" height="{areaheight}-4" color="{clrTransparent}" />
|
|
||||||
<drawtext name="label" x="0" valign="center" font="{light}" fontsize="95%" color="{clrWhite}" text=" {tabs[title]} " />
|
|
||||||
</loop>
|
|
||||||
</area>
|
|
||||||
</tablabels>
|
|
||||||
</menuplugin>
|
|
@ -1,67 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE menuplugin SYSTEM "../../../dtd/displaymenuplugin.dtd">
|
|
||||||
|
|
||||||
<menuplugin x="0" y="0" width="100%" height="100%" fadetime="0">
|
|
||||||
<!-- Available Variables header:
|
|
||||||
{title} title of current menu
|
|
||||||
{vdrversion} running VDR Version
|
|
||||||
{hasicon} true if a menu icon is available
|
|
||||||
{icon} path of menu icon
|
|
||||||
-->
|
|
||||||
<header>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<menuitems x="0" y="10%" orientation="vertical" width="100%" height="82%" align="center" numlistelements="6">
|
|
||||||
<!-- Available Variables schedules menu listelement:
|
|
||||||
{nummenuitem} number of item in list, starts with 1
|
|
||||||
{current}
|
|
||||||
{separator}
|
|
||||||
{itemnumber}
|
|
||||||
{menuitemtext}
|
|
||||||
{currentitemtext}
|
|
||||||
-->
|
|
||||||
<listelement>
|
|
||||||
<!-- Background -->
|
|
||||||
<area x="1%" width="58%" layer="2">
|
|
||||||
<fill condition="not{current}" color="{clrTransparent}" />
|
|
||||||
<fill condition="{current}" color="{clrTransBlueLight}" />
|
|
||||||
</area>
|
|
||||||
<area x="1%" width="58%" layer="3">
|
|
||||||
<drawtext x="10" valign="center" font="{light}" fontsize="95%" color="{clrWhite}" text="{itemnumber} {menuitemtext}" />
|
|
||||||
</area>
|
|
||||||
</listelement>
|
|
||||||
<!-- additional element which is drawn for current element -->
|
|
||||||
<!-- Available Variables schedules menu currentelement:
|
|
||||||
{itemnumber}
|
|
||||||
{menuitemtext}
|
|
||||||
{currentitemtext}
|
|
||||||
{loop1[]} test array
|
|
||||||
{loop1[col0]} test array first col
|
|
||||||
...
|
|
||||||
{loop1[col2]} test array third col
|
|
||||||
-->
|
|
||||||
<currentelement delay="500" fadetime="0">
|
|
||||||
<area x="63%" y="0" width="36%" height="85%" layer="3">
|
|
||||||
<drawtext align="center" y="0" font="{semibold}" width="{areawidth}-20" fontsize="15%" color="{clrWhite}" text="{itemnumber}" />
|
|
||||||
<drawtext align="center" y="15%" font="{semibold}" width="{areawidth}-20" fontsize="8%" color="{clrWhite}" text="{menuitemtext}" />
|
|
||||||
<drawtextbox x="10" y="{areaheight}/3" width="{areawidth}-20" font="{light}" fontsize="{areaheight}/15" color="{clrWhite}" text="{currentitemtext}" />
|
|
||||||
</area>
|
|
||||||
<areascroll mode="carriagereturn" orientation="vertical" delay="1000" scrollspeed="medium" x="63%" y="85%" width="36%" height="15%" layer="3">
|
|
||||||
<loop name="loop1" x="0" y="0" orientation="vertical">
|
|
||||||
<drawtext x="10" font="{light}" width="{areawidth}-20" fontsize="20%" color="{clrWhite}" text="{loop1[col0]} {loop1[col1]} {loop1[col2]}" />
|
|
||||||
</loop>
|
|
||||||
</areascroll>
|
|
||||||
</currentelement>
|
|
||||||
</menuitems>
|
|
||||||
<!-- Available Variables scrollbar:
|
|
||||||
{height} height in one-tenth of a percent of total height
|
|
||||||
{offset} offset from top in one-tenth of a percent of total height
|
|
||||||
-->
|
|
||||||
<scrollbar>
|
|
||||||
<area x="60%" y="10%" width="2%" height="82%" layer="3">
|
|
||||||
<fill color="{clrWhite}" />
|
|
||||||
<drawrectangle x="2" y="2" width="{areawidth} - 4" height="{areaheight} - 4" color="{clrTransparent}" />
|
|
||||||
<drawrectangle x="4" y="4 + {areaheight} * {offset} / 1000" width="{areawidth} - 8" height="{areaheight} * {height} / 1000 - 8" color="{clrWhite}" />
|
|
||||||
</area>
|
|
||||||
</scrollbar>
|
|
||||||
</menuplugin>
|
|
@ -1,67 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE menuplugin SYSTEM "../../../dtd/displaymenuplugin.dtd">
|
|
||||||
|
|
||||||
<menuplugin x="0" y="0" width="100%" height="100%" fadetime="0">
|
|
||||||
<!-- Available Variables header:
|
|
||||||
{title} title of current menu
|
|
||||||
{vdrversion} running VDR Version
|
|
||||||
{hasicon} true if a menu icon is available
|
|
||||||
{icon} path of menu icon
|
|
||||||
-->
|
|
||||||
<header>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<menuitems x="0" y="10%" orientation="vertical" width="100%" height="82%" align="center" numlistelements="12">
|
|
||||||
<!-- Available Variables schedules menu listelement:
|
|
||||||
{nummenuitem} number of item in list, starts with 1
|
|
||||||
{current}
|
|
||||||
{separator}
|
|
||||||
{itemnumber}
|
|
||||||
{menuitemtext}
|
|
||||||
{currentitemtext}
|
|
||||||
-->
|
|
||||||
<listelement>
|
|
||||||
<!-- Background -->
|
|
||||||
<area x="1%" width="58%" layer="2">
|
|
||||||
<fill condition="not{current}" color="{clrTransparent}" />
|
|
||||||
<fill condition="{current}" color="{clrTransBlueLight}" />
|
|
||||||
</area>
|
|
||||||
<area x="1%" width="58%" layer="3">
|
|
||||||
<drawtext x="10" valign="center" font="{light}" fontsize="95%" color="{clrWhite}" text="{itemnumber} {menuitemtext}" />
|
|
||||||
</area>
|
|
||||||
</listelement>
|
|
||||||
<!-- additional element which is drawn for current element -->
|
|
||||||
<!-- Available Variables schedules menu currentelement:
|
|
||||||
{itemnumber}
|
|
||||||
{menuitemtext}
|
|
||||||
{currentitemtext}
|
|
||||||
{loop1[]} test array
|
|
||||||
{loop1[col0]} test array first col
|
|
||||||
...
|
|
||||||
{loop1[col2]} test array third col
|
|
||||||
-->
|
|
||||||
<currentelement delay="500" fadetime="0">
|
|
||||||
<area x="63%" y="0" width="36%" height="85%" layer="3">
|
|
||||||
<drawtext align="center" y="0" font="{semibold}" width="{areawidth}-20" fontsize="15%" color="{clrWhite}" text="{itemnumber}" />
|
|
||||||
<drawtext align="center" y="15%" font="{semibold}" width="{areawidth}-20" fontsize="8%" color="{clrWhite}" text="{menuitemtext}" />
|
|
||||||
<drawtextbox x="10" y="{areaheight}/3" width="{areawidth}-20" font="{light}" fontsize="{areaheight}/15" color="{clrWhite}" text="{currentitemtext}" />
|
|
||||||
</area>
|
|
||||||
<areascroll mode="carriagereturn" orientation="vertical" delay="1000" scrollspeed="medium" x="63%" y="85%" width="36%" height="15%" layer="3">
|
|
||||||
<loop name="loop1" x="0" y="0" orientation="vertical">
|
|
||||||
<drawtext x="10" font="{light}" width="{areawidth}-20" fontsize="20%" color="{clrWhite}" text="{loop1[col0]} {loop1[col1]} {loop1[col2]}" />
|
|
||||||
</loop>
|
|
||||||
</areascroll>
|
|
||||||
</currentelement>
|
|
||||||
</menuitems>
|
|
||||||
<!-- Available Variables scrollbar:
|
|
||||||
{height} height in one-tenth of a percent of total height
|
|
||||||
{offset} offset from top in one-tenth of a percent of total height
|
|
||||||
-->
|
|
||||||
<scrollbar>
|
|
||||||
<area x="60%" y="10%" width="2%" height="82%" layer="3">
|
|
||||||
<fill color="{clrWhite}" />
|
|
||||||
<drawrectangle x="2" y="2" width="{areawidth} - 4" height="{areaheight} - 4" color="{clrTransparent}" />
|
|
||||||
<drawrectangle x="4" y="4 + {areaheight} * {offset} / 1000" width="{areawidth} - 8" height="{areaheight} * {height} / 1000 - 8" color="{clrWhite}" />
|
|
||||||
</area>
|
|
||||||
</scrollbar>
|
|
||||||
</menuplugin>
|
|
@ -19,7 +19,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static const char *VERSION = "0.2.2";
|
static const char *VERSION = "0.3.0";
|
||||||
static const char *DESCRIPTION = trNOOP("Skin Designer");
|
static const char *DESCRIPTION = trNOOP("Skin Designer");
|
||||||
|
|
||||||
class cPluginSkinDesigner : public cPlugin {
|
class cPluginSkinDesigner : public cPlugin {
|
||||||
@ -168,7 +168,7 @@ bool cPluginSkinDesigner::Service(const char *Id, void *Data) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
config.AddPluginMenus(call->name, call->menus);
|
config.AddPluginMenus(call->name, call->menus);
|
||||||
config.AddPluginViews(call->name, call->views, call->viewElements, call->viewGrids);
|
config.AddPluginViews(call->name, call->views, call->subViews, call->viewElements, call->viewGrids);
|
||||||
if (call->menus.size() > 0)
|
if (call->menus.size() > 0)
|
||||||
dsyslog("skindesigner: plugin %s has registered %ld menus", call->name.c_str(), call->menus.size());
|
dsyslog("skindesigner: plugin %s has registered %ld menus", call->name.c_str(), call->menus.size());
|
||||||
if (call->views.size() > 0)
|
if (call->views.size() > 0)
|
||||||
@ -195,7 +195,7 @@ bool cPluginSkinDesigner::Service(const char *Id, void *Data) {
|
|||||||
cSkin *current = Skins.Current();
|
cSkin *current = Skins.Current();
|
||||||
for (vector<cSkinDesigner*>::iterator skin = skins.begin(); skin != skins.end(); skin++) {
|
for (vector<cSkinDesigner*>::iterator skin = skins.begin(); skin != skins.end(); skin++) {
|
||||||
if (*skin == current) {
|
if (*skin == current) {
|
||||||
cSkinDisplayPlugin *displayPlugin = (*skin)->DisplayPlugin(call->pluginName, call->viewID);
|
cSkinDisplayPlugin *displayPlugin = (*skin)->DisplayPlugin(call->pluginName, call->viewID, call->subViewID);
|
||||||
if (displayPlugin) {
|
if (displayPlugin) {
|
||||||
call->displayPlugin = displayPlugin;
|
call->displayPlugin = displayPlugin;
|
||||||
return true;
|
return true;
|
||||||
|
BIN
skins/blackhole/themes/default/icons/ico_activetimer.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
skins/blackhole/themes/default/icons/ico_arrow_left.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
skins/blackhole/themes/default/icons/ico_arrow_right.png
Normal file
After Width: | Height: | Size: 936 B |
BIN
skins/blackhole/themes/default/icons/ico_delete_active.png
Normal file
After Width: | Height: | Size: 768 B |
BIN
skins/blackhole/themes/default/icons/ico_delete_inactive.png
Normal file
After Width: | Height: | Size: 886 B |
BIN
skins/blackhole/themes/default/icons/ico_edit_active.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
skins/blackhole/themes/default/icons/ico_edit_inactive.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
skins/blackhole/themes/default/icons/ico_info_active.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
skins/blackhole/themes/default/icons/ico_info_inactive.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
skins/blackhole/themes/default/icons/ico_no.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
skins/blackhole/themes/default/icons/ico_record_active.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
skins/blackhole/themes/default/icons/ico_record_inactive.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
skins/blackhole/themes/default/icons/ico_search_active.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
skins/blackhole/themes/default/icons/ico_search_inactive.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
162
skins/blackhole/themes/default/icons/ico_switchtimer.svg
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="50"
|
||||||
|
height="50"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre2 r13516"
|
||||||
|
viewBox="0 0 49.999999 50.000001"
|
||||||
|
sodipodi:docname="ico_switchtimer.svg">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient4240">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4242" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop4244" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient4214">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop4216" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop4218" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient4173">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#2c4255;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4175" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop4177" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient4173"
|
||||||
|
id="linearGradient4179"
|
||||||
|
x1="6.1765633"
|
||||||
|
y1="1047.7924"
|
||||||
|
x2="39.66613"
|
||||||
|
y2="1009.4264"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient4214"
|
||||||
|
id="linearGradient4220"
|
||||||
|
x1="8.7948284"
|
||||||
|
y1="1042.3796"
|
||||||
|
x2="43.393124"
|
||||||
|
y2="1014.2346"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient4240"
|
||||||
|
id="radialGradient4246"
|
||||||
|
cx="42.006367"
|
||||||
|
cy="1003.2948"
|
||||||
|
fx="42.006367"
|
||||||
|
fy="1003.2948"
|
||||||
|
r="23.434333"
|
||||||
|
gradientTransform="translate(0,-8.3618257e-5)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient4214"
|
||||||
|
id="linearGradient4155"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="8.7948284"
|
||||||
|
y1="1042.3796"
|
||||||
|
x2="43.393124"
|
||||||
|
y2="1014.2346"
|
||||||
|
gradientTransform="matrix(1.0231507,0,0,1.0231507,-0.57876763,-23.784214)" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="10.055058"
|
||||||
|
inkscape:cx="-0.844769"
|
||||||
|
inkscape:cy="23.850628"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1846"
|
||||||
|
inkscape:window-height="1058"
|
||||||
|
inkscape:window-x="66"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-1002.3622)">
|
||||||
|
<circle
|
||||||
|
style="opacity:1;fill:#ff7f2a;fill-opacity:1;stroke:url(#linearGradient4155);stroke-width:2.046;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4196"
|
||||||
|
cy="1027.3622"
|
||||||
|
cx="25"
|
||||||
|
r="23.976849"
|
||||||
|
d="M 48.976849,1027.3622 A 23.976849,23.976849 0 0 1 25,1051.339 23.976849,23.976849 0 0 1 1.0231514,1027.3622 23.976849,23.976849 0 0 1 25,1003.3853 a 23.976849,23.976849 0 0 1 23.976849,23.9769 z" />
|
||||||
|
<ellipse
|
||||||
|
cx="25"
|
||||||
|
cy="1027.3623"
|
||||||
|
rx="23.434328"
|
||||||
|
ry="23.43433"
|
||||||
|
id="ellipse4226"
|
||||||
|
style="opacity:1;fill:url(#radialGradient4246);fill-opacity:1;stroke:url(#linearGradient4220);stroke-width:0;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
d="M 48.434328,1027.3623 A 23.434328,23.43433 0 0 1 25,1050.7966 23.434328,23.43433 0 0 1 1.5656719,1027.3623 23.434328,23.43433 0 0 1 25,1003.928 a 23.434328,23.43433 0 0 1 23.434328,23.4343 z" />
|
||||||
|
<path
|
||||||
|
style="opacity:0.75;fill:#cccccc;fill-opacity:1;stroke:url(#linearGradient4179);stroke-width:2.0349884;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4137"
|
||||||
|
r="23.982506"
|
||||||
|
cy="1027.3622"
|
||||||
|
cx="24.999998" />
|
||||||
|
<ellipse
|
||||||
|
style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:#00ffff;stroke-width:2.0599978;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4164"
|
||||||
|
cx="24.99999"
|
||||||
|
cy="1027.3622"
|
||||||
|
r="23.970001" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.5 KiB |
BIN
skins/blackhole/themes/default/icons/ico_yes.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
@ -0,0 +1,193 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="300"
|
||||||
|
height="90"
|
||||||
|
viewBox="0 0 300 90"
|
||||||
|
id="svg10995"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguide_grid_active.svg">
|
||||||
|
<defs
|
||||||
|
id="defs10997">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11584">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11586" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11588" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11570">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11572" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11574" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11576"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,1048.356)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11580"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,959.35596)"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11590"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,90,0,-89655.234)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11594"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,90,299,-89655.234)"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5" />
|
||||||
|
<linearGradient
|
||||||
|
gradientTransform="matrix(0.29739198,0,0,1.2857141,-7.7321871,756.64803)"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5073"
|
||||||
|
id="linearGradient5079"
|
||||||
|
x1="571.08295"
|
||||||
|
y1="223.60255"
|
||||||
|
x2="573.04272"
|
||||||
|
y2="164.76302"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5073">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00284a;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5075" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop5077" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="2.502027"
|
||||||
|
inkscape:cx="168.30828"
|
||||||
|
inkscape:cy="138.77937"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata11000">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-962.36218)">
|
||||||
|
<rect
|
||||||
|
style="display:inline;opacity:1;fill:url(#linearGradient5079);fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4576"
|
||||||
|
width="300"
|
||||||
|
height="89.999992"
|
||||||
|
x="4.9999999e-006"
|
||||||
|
y="962.36218"
|
||||||
|
ry="0.13425298" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11576);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11568"
|
||||||
|
width="300"
|
||||||
|
height="1"
|
||||||
|
x="0"
|
||||||
|
y="1051.3622" />
|
||||||
|
<rect
|
||||||
|
y="962.36218"
|
||||||
|
x="0"
|
||||||
|
height="1"
|
||||||
|
width="300"
|
||||||
|
id="rect11578"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11580);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11590);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11582"
|
||||||
|
width="1"
|
||||||
|
height="90"
|
||||||
|
x="0"
|
||||||
|
y="962.36218" />
|
||||||
|
<rect
|
||||||
|
y="962.36218"
|
||||||
|
x="299"
|
||||||
|
height="90"
|
||||||
|
width="1"
|
||||||
|
id="rect11592"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11594);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:#000000;fill-opacity:0;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect4166"
|
||||||
|
width="364.90414"
|
||||||
|
height="161.46909"
|
||||||
|
x="-51.15852"
|
||||||
|
y="910.07751" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.2 KiB |
@ -0,0 +1,193 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="300"
|
||||||
|
height="300"
|
||||||
|
viewBox="0 0 300 300"
|
||||||
|
id="svg10995"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguide_grid_active_ver.svg">
|
||||||
|
<defs
|
||||||
|
id="defs10997">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11584">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11586" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11588" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11570">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11572" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11574" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11576"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,1048.356)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11580"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,749.35595)"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11590"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,300,0,-301306.29)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11594"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,300,299,-301306.29)"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5" />
|
||||||
|
<linearGradient
|
||||||
|
gradientTransform="matrix(0.29739197,0,0,4.2857138,-7.7321827,66.64835)"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5073"
|
||||||
|
id="linearGradient5079"
|
||||||
|
x1="571.08295"
|
||||||
|
y1="223.60255"
|
||||||
|
x2="578.41846"
|
||||||
|
y2="158.79453"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5073">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00284a;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5075" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop5077" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="2.502027"
|
||||||
|
inkscape:cx="104.75981"
|
||||||
|
inkscape:cy="167.10004"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata11000">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-752.36218)">
|
||||||
|
<rect
|
||||||
|
style="display:inline;opacity:1;fill:url(#linearGradient5079);fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4576"
|
||||||
|
width="300"
|
||||||
|
height="299.99997"
|
||||||
|
x="9.1287093e-006"
|
||||||
|
y="752.36218"
|
||||||
|
ry="0.44750994" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11576);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11568"
|
||||||
|
width="300"
|
||||||
|
height="1"
|
||||||
|
x="0"
|
||||||
|
y="1051.3622" />
|
||||||
|
<rect
|
||||||
|
y="752.36218"
|
||||||
|
x="0"
|
||||||
|
height="1"
|
||||||
|
width="300"
|
||||||
|
id="rect11578"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11580);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11590);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11582"
|
||||||
|
width="1"
|
||||||
|
height="300"
|
||||||
|
x="0"
|
||||||
|
y="752.36218" />
|
||||||
|
<rect
|
||||||
|
y="752.36218"
|
||||||
|
x="299"
|
||||||
|
height="300"
|
||||||
|
width="1"
|
||||||
|
id="rect11592"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11594);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:#000000;fill-opacity:0;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect4166"
|
||||||
|
width="364.90414"
|
||||||
|
height="161.46909"
|
||||||
|
x="-51.15852"
|
||||||
|
y="910.07751" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.2 KiB |
@ -0,0 +1,184 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="300"
|
||||||
|
height="90"
|
||||||
|
viewBox="0 0 300 90"
|
||||||
|
id="svg10995"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguide_grid_bright.svg">
|
||||||
|
<defs
|
||||||
|
id="defs10997">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11584">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11586" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11588" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11570">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11572" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11574" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11560">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop11562" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#444444;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop11564" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11560"
|
||||||
|
id="linearGradient11566"
|
||||||
|
x1="4.3964353"
|
||||||
|
y1="1040.9349"
|
||||||
|
x2="295.20389"
|
||||||
|
y2="978.58551"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11576"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,1048.356)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11580"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,959.35596)"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11590"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,90,0,-89655.234)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11594"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,90,299,-89655.234)"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="2.502027"
|
||||||
|
inkscape:cx="107.8801"
|
||||||
|
inkscape:cy="42.857143"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata11000">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-962.36218)">
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient11566);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11543"
|
||||||
|
width="300"
|
||||||
|
height="90"
|
||||||
|
x="0"
|
||||||
|
y="962.36218" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11576);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11568"
|
||||||
|
width="300"
|
||||||
|
height="1"
|
||||||
|
x="0"
|
||||||
|
y="1051.3622" />
|
||||||
|
<rect
|
||||||
|
y="962.36218"
|
||||||
|
x="0"
|
||||||
|
height="1"
|
||||||
|
width="300"
|
||||||
|
id="rect11578"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11580);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11590);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11582"
|
||||||
|
width="1"
|
||||||
|
height="90"
|
||||||
|
x="0"
|
||||||
|
y="962.36218" />
|
||||||
|
<rect
|
||||||
|
y="962.36218"
|
||||||
|
x="299"
|
||||||
|
height="90"
|
||||||
|
width="1"
|
||||||
|
id="rect11592"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11594);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.8 KiB |
@ -0,0 +1,185 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="300"
|
||||||
|
height="300"
|
||||||
|
viewBox="0 0 300 300"
|
||||||
|
id="svg10995"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguide_grid_bright_ver.svg">
|
||||||
|
<defs
|
||||||
|
id="defs10997">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11584">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11586" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11588" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11570">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11572" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11574" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11560">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop11562" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#444444;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop11564" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11560"
|
||||||
|
id="linearGradient11566"
|
||||||
|
x1="4.3964353"
|
||||||
|
y1="1040.9349"
|
||||||
|
x2="295.20389"
|
||||||
|
y2="978.58551"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,3.3333333,0,-2455.5118)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11576"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,1048.356)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11580"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,749.35596)"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11590"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,300,0,-301306.29)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11594"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,300,299,-301306.29)"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="2.502027"
|
||||||
|
inkscape:cx="131.96205"
|
||||||
|
inkscape:cy="138.77937"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata11000">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-752.36218)">
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient11566);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11543"
|
||||||
|
width="300"
|
||||||
|
height="300"
|
||||||
|
x="0"
|
||||||
|
y="752.36218" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11576);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11568"
|
||||||
|
width="300"
|
||||||
|
height="1"
|
||||||
|
x="0"
|
||||||
|
y="1051.3622" />
|
||||||
|
<rect
|
||||||
|
y="752.36218"
|
||||||
|
x="0"
|
||||||
|
height="1"
|
||||||
|
width="300"
|
||||||
|
id="rect11578"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11580);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11590);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11582"
|
||||||
|
width="1"
|
||||||
|
height="300"
|
||||||
|
x="0"
|
||||||
|
y="752.36218" />
|
||||||
|
<rect
|
||||||
|
y="752.36218"
|
||||||
|
x="299"
|
||||||
|
height="300"
|
||||||
|
width="1"
|
||||||
|
id="rect11592"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11594);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.8 KiB |
@ -0,0 +1,184 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="300"
|
||||||
|
height="90"
|
||||||
|
viewBox="0 0 300 90"
|
||||||
|
id="svg10995"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguide_grid_dark.svg">
|
||||||
|
<defs
|
||||||
|
id="defs10997">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11584">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11586" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11588" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11570">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11572" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11574" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11560">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop11562" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#222222;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop11564" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11560"
|
||||||
|
id="linearGradient11566"
|
||||||
|
x1="1.9983797"
|
||||||
|
y1="1039.736"
|
||||||
|
x2="297.60196"
|
||||||
|
y2="977.38647"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11576"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,1048.356)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11580"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,959.35596)"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11590"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,90,0,-89655.234)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11594"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,90,299,-89655.234)"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="2.502027"
|
||||||
|
inkscape:cx="107.8801"
|
||||||
|
inkscape:cy="42.857143"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata11000">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-962.36218)">
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient11566);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11543"
|
||||||
|
width="300"
|
||||||
|
height="90"
|
||||||
|
x="0"
|
||||||
|
y="962.36218" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11576);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11568"
|
||||||
|
width="300"
|
||||||
|
height="1"
|
||||||
|
x="0"
|
||||||
|
y="1051.3622" />
|
||||||
|
<rect
|
||||||
|
y="962.36218"
|
||||||
|
x="0"
|
||||||
|
height="1"
|
||||||
|
width="300"
|
||||||
|
id="rect11578"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11580);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11590);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11582"
|
||||||
|
width="1"
|
||||||
|
height="90"
|
||||||
|
x="0"
|
||||||
|
y="962.36218" />
|
||||||
|
<rect
|
||||||
|
y="962.36218"
|
||||||
|
x="299"
|
||||||
|
height="90"
|
||||||
|
width="1"
|
||||||
|
id="rect11592"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11594);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.8 KiB |
@ -0,0 +1,185 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="300"
|
||||||
|
height="300"
|
||||||
|
viewBox="0 0 300 300"
|
||||||
|
id="svg10995"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguide_grid_dark_ver.svg">
|
||||||
|
<defs
|
||||||
|
id="defs10997">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11584">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11586" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11588" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11570">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11572" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11574" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient11560">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop11562" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#222222;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop11564" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11560"
|
||||||
|
id="linearGradient11566"
|
||||||
|
x1="1.9983797"
|
||||||
|
y1="1039.736"
|
||||||
|
x2="297.60196"
|
||||||
|
y2="977.38647"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,3.3333333,0,-2455.5118)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11576"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,1048.356)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11570"
|
||||||
|
id="radialGradient11580"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00333333,0,749.35596)"
|
||||||
|
cx="150"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="150"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="150" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11590"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1.1,0,0,300,0,-301306.29)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient11584"
|
||||||
|
id="radialGradient11594"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,300,299,-301306.29)"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1007.3622"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1007.3622"
|
||||||
|
r="0.5" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="2.502027"
|
||||||
|
inkscape:cx="140.90371"
|
||||||
|
inkscape:cy="42.857143"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata11000">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-752.36218)">
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient11566);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11543"
|
||||||
|
width="300"
|
||||||
|
height="300"
|
||||||
|
x="0"
|
||||||
|
y="752.36218" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11576);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11568"
|
||||||
|
width="300"
|
||||||
|
height="1"
|
||||||
|
x="0"
|
||||||
|
y="1051.3622" />
|
||||||
|
<rect
|
||||||
|
y="752.36218"
|
||||||
|
x="0"
|
||||||
|
height="1"
|
||||||
|
width="300"
|
||||||
|
id="rect11578"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11580);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient11590);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect11582"
|
||||||
|
width="1.1"
|
||||||
|
height="300"
|
||||||
|
x="0"
|
||||||
|
y="752.36218" />
|
||||||
|
<rect
|
||||||
|
y="752.36218"
|
||||||
|
x="299"
|
||||||
|
height="300"
|
||||||
|
width="1"
|
||||||
|
id="rect11592"
|
||||||
|
style="opacity:1;fill:url(#radialGradient11594);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.8 KiB |
@ -0,0 +1,185 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="220"
|
||||||
|
height="54"
|
||||||
|
viewBox="0 0 220 54.000001"
|
||||||
|
id="svg10367"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguide_timelinegrid_bright.svg">
|
||||||
|
<defs
|
||||||
|
id="defs10369">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10951">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10953" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10955" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10937">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10939" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10941" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10925">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#aaaaaa;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop10927" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#dddddd;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop10929" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10925"
|
||||||
|
id="linearGradient10931"
|
||||||
|
x1="0.45233849"
|
||||||
|
y1="1025.76"
|
||||||
|
x2="220.45234"
|
||||||
|
y2="1025.76"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(-0.45233849,-0.39786977)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10937"
|
||||||
|
id="radialGradient10943"
|
||||||
|
cx="110"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="110"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="110"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00454545,0,1047.081)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10937"
|
||||||
|
id="radialGradient10947"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00454545,0,994.08096)"
|
||||||
|
cx="110"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="110"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="110" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10951"
|
||||||
|
id="radialGradient10957"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1025.3621"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1025.3621"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,54,0,-54344.192)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10951"
|
||||||
|
id="radialGradient10961"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,54,219,-54344.192)"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1025.3621"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1025.3621"
|
||||||
|
r="0.5" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="4.4214676"
|
||||||
|
inkscape:cx="113.12449"
|
||||||
|
inkscape:cy="43.594485"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata10372">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-998.36214)">
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient10931);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10915"
|
||||||
|
width="220"
|
||||||
|
height="54"
|
||||||
|
x="0"
|
||||||
|
y="998.36212" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient10943);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10935"
|
||||||
|
width="220"
|
||||||
|
height="1"
|
||||||
|
x="0"
|
||||||
|
y="1051.3622" />
|
||||||
|
<rect
|
||||||
|
y="998.36212"
|
||||||
|
x="0"
|
||||||
|
height="1"
|
||||||
|
width="220"
|
||||||
|
id="rect10945"
|
||||||
|
style="opacity:1;fill:url(#radialGradient10947);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient10957);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10949"
|
||||||
|
width="1"
|
||||||
|
height="54"
|
||||||
|
x="0"
|
||||||
|
y="998.36212" />
|
||||||
|
<rect
|
||||||
|
y="998.36212"
|
||||||
|
x="219"
|
||||||
|
height="54"
|
||||||
|
width="1"
|
||||||
|
id="rect10959"
|
||||||
|
style="opacity:1;fill:url(#radialGradient10961);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.8 KiB |
@ -0,0 +1,186 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="150"
|
||||||
|
height="75"
|
||||||
|
viewBox="0 0 150 75.000001"
|
||||||
|
id="svg10367"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguide_timelinegrid_bright_ver.svg">
|
||||||
|
<defs
|
||||||
|
id="defs10369">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10951">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10953" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10955" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10937">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10939" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10941" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10925">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#aaaaaa;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop10927" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#dddddd;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop10929" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10925"
|
||||||
|
id="linearGradient10931"
|
||||||
|
x1="0.45233849"
|
||||||
|
y1="1025.76"
|
||||||
|
x2="220.45235"
|
||||||
|
y2="1025.76"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.68181818,0,0,1.3888889,-0.30841261,-409.80453)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10937"
|
||||||
|
id="radialGradient10943"
|
||||||
|
cx="110"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="110"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="110"
|
||||||
|
gradientTransform="matrix(0.68181818,0,0,0.00454545,0,1047.081)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10937"
|
||||||
|
id="radialGradient10947"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.68181818,0,0,0.00454545,0,973.08098)"
|
||||||
|
cx="110"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="110"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="110" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10951"
|
||||||
|
id="radialGradient10957"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1025.3621"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1025.3621"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,75,0,-75887.296)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10951"
|
||||||
|
id="radialGradient10961"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,75,149,-75887.296)"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1025.3621"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1025.3621"
|
||||||
|
r="0.5" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="4.4214676"
|
||||||
|
inkscape:cx="109.67027"
|
||||||
|
inkscape:cy="34.547715"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
borderlayer="true" />
|
||||||
|
<metadata
|
||||||
|
id="metadata10372">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-977.36214)">
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient10931);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10915"
|
||||||
|
width="150"
|
||||||
|
height="75"
|
||||||
|
x="0"
|
||||||
|
y="977.36212" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient10943);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10935"
|
||||||
|
width="150"
|
||||||
|
height="1"
|
||||||
|
x="0"
|
||||||
|
y="1051.3622" />
|
||||||
|
<rect
|
||||||
|
y="977.36212"
|
||||||
|
x="0"
|
||||||
|
height="1"
|
||||||
|
width="150"
|
||||||
|
id="rect10945"
|
||||||
|
style="opacity:1;fill:url(#radialGradient10947);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient10957);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10949"
|
||||||
|
width="1"
|
||||||
|
height="75"
|
||||||
|
x="0"
|
||||||
|
y="977.36212" />
|
||||||
|
<rect
|
||||||
|
y="977.36212"
|
||||||
|
x="149"
|
||||||
|
height="75"
|
||||||
|
width="1"
|
||||||
|
id="rect10959"
|
||||||
|
style="opacity:1;fill:url(#radialGradient10961);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.9 KiB |
@ -0,0 +1,209 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="220"
|
||||||
|
height="54"
|
||||||
|
viewBox="0 0 220 54.000001"
|
||||||
|
id="svg10367"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguide_timelinegrid_dark.svg">
|
||||||
|
<defs
|
||||||
|
id="defs10369">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10987">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10989" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10991" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10979">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10981" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10983" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10971">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10973" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10975" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10963">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10965" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10967" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10925">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop10927" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#444444;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop10929" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10925"
|
||||||
|
id="linearGradient10931"
|
||||||
|
x1="0.45233849"
|
||||||
|
y1="1025.76"
|
||||||
|
x2="220.45234"
|
||||||
|
y2="1025.76"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(-0.45233849,-0.39786977)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10963"
|
||||||
|
id="radialGradient10969"
|
||||||
|
cx="110"
|
||||||
|
cy="998.86212"
|
||||||
|
fx="110"
|
||||||
|
fy="998.86212"
|
||||||
|
r="110"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00454545,0,994.32184)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10971"
|
||||||
|
id="radialGradient10977"
|
||||||
|
cx="219.5"
|
||||||
|
cy="1025.3621"
|
||||||
|
fx="219.5"
|
||||||
|
fy="1025.3621"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,54,0,-54344.192)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10979"
|
||||||
|
id="radialGradient10985"
|
||||||
|
cx="110"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="110"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="110"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00454545,0,1047.081)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10987"
|
||||||
|
id="radialGradient10993"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1025.3621"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1025.3621"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,54,0,-54344.192)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="4.4214676"
|
||||||
|
inkscape:cx="113.12449"
|
||||||
|
inkscape:cy="43.594485"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata10372">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-998.36214)">
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient10931);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10915"
|
||||||
|
width="220"
|
||||||
|
height="54"
|
||||||
|
x="0"
|
||||||
|
y="998.36212" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient10985);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10935"
|
||||||
|
width="220"
|
||||||
|
height="1"
|
||||||
|
x="0"
|
||||||
|
y="1051.3622" />
|
||||||
|
<rect
|
||||||
|
y="998.36212"
|
||||||
|
x="0"
|
||||||
|
height="1"
|
||||||
|
width="220"
|
||||||
|
id="rect10945"
|
||||||
|
style="opacity:1;fill:url(#radialGradient10969);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient10993);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10949"
|
||||||
|
width="1"
|
||||||
|
height="54"
|
||||||
|
x="0"
|
||||||
|
y="998.36212" />
|
||||||
|
<rect
|
||||||
|
y="998.36212"
|
||||||
|
x="219"
|
||||||
|
height="54"
|
||||||
|
width="1"
|
||||||
|
id="rect10959"
|
||||||
|
style="opacity:1;fill:url(#radialGradient10977);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
@ -0,0 +1,209 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="150"
|
||||||
|
height="75"
|
||||||
|
viewBox="0 0 150 75.000001"
|
||||||
|
id="svg10367"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguide_timelinegrid_dark_ver.svg">
|
||||||
|
<defs
|
||||||
|
id="defs10369">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10987">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10989" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10991" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10979">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10981" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10983" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10971">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10973" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10975" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10963">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10965" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10967" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient10925">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop10927" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#444444;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop10929" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10925"
|
||||||
|
id="linearGradient10931"
|
||||||
|
x1="0.45233849"
|
||||||
|
y1="1025.76"
|
||||||
|
x2="220.45235"
|
||||||
|
y2="1025.76"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.68181818,0,0,1.3888889,-0.30841261,-409.80453)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10963"
|
||||||
|
id="radialGradient10969"
|
||||||
|
cx="110"
|
||||||
|
cy="998.86212"
|
||||||
|
fx="110"
|
||||||
|
fy="998.86212"
|
||||||
|
r="110"
|
||||||
|
gradientTransform="matrix(0.68181818,0,0,0.00454545,0,973.32186)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10971"
|
||||||
|
id="radialGradient10977"
|
||||||
|
cx="219.5"
|
||||||
|
cy="1025.3621"
|
||||||
|
fx="219.5"
|
||||||
|
fy="1025.3621"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,75,-70,-75887.296)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10979"
|
||||||
|
id="radialGradient10985"
|
||||||
|
cx="110"
|
||||||
|
cy="1051.8622"
|
||||||
|
fx="110"
|
||||||
|
fy="1051.8622"
|
||||||
|
r="110"
|
||||||
|
gradientTransform="matrix(0.68181818,0,0,0.00454545,0,1047.081)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10987"
|
||||||
|
id="radialGradient10993"
|
||||||
|
cx="0.5"
|
||||||
|
cy="1025.3621"
|
||||||
|
fx="0.5"
|
||||||
|
fy="1025.3621"
|
||||||
|
r="0.5"
|
||||||
|
gradientTransform="matrix(1,0,0,75,0,-75887.296)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="4.4214676"
|
||||||
|
inkscape:cx="95.855427"
|
||||||
|
inkscape:cy="43.594485"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata10372">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-977.36214)">
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient10931);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10915"
|
||||||
|
width="150"
|
||||||
|
height="75"
|
||||||
|
x="0"
|
||||||
|
y="977.36212" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient10985);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10935"
|
||||||
|
width="150"
|
||||||
|
height="1"
|
||||||
|
x="0"
|
||||||
|
y="1051.3622" />
|
||||||
|
<rect
|
||||||
|
y="977.36212"
|
||||||
|
x="0"
|
||||||
|
height="1"
|
||||||
|
width="150"
|
||||||
|
id="rect10945"
|
||||||
|
style="opacity:1;fill:url(#radialGradient10969);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient10993);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect10949"
|
||||||
|
width="1"
|
||||||
|
height="75"
|
||||||
|
x="0"
|
||||||
|
y="977.36212" />
|
||||||
|
<rect
|
||||||
|
y="977.36212"
|
||||||
|
x="149"
|
||||||
|
height="75"
|
||||||
|
width="1"
|
||||||
|
id="rect10959"
|
||||||
|
style="opacity:1;fill:url(#radialGradient10977);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
171
skins/blackhole/themes/default/skinparts/tvguideheader.svg
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="1920"
|
||||||
|
height="216"
|
||||||
|
viewBox="0 0 1920 216"
|
||||||
|
id="svg8417"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre3 r13670"
|
||||||
|
sodipodi:docname="tvguideheader.svg">
|
||||||
|
<defs
|
||||||
|
id="defs8419">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient8989">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop8991" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop8993" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient8975">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop8977" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#999999;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop8979" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient8975"
|
||||||
|
id="linearGradient8981"
|
||||||
|
x1="0.7203052"
|
||||||
|
y1="946.20978"
|
||||||
|
x2="2208.1833"
|
||||||
|
y2="857.31635"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(-2.0203052,-838.20978)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient8989"
|
||||||
|
id="radialGradient8995"
|
||||||
|
cx="1199"
|
||||||
|
cy="944.79773"
|
||||||
|
fx="1199"
|
||||||
|
fy="944.79773"
|
||||||
|
r="1"
|
||||||
|
gradientTransform="matrix(1,0,0,100,0,-93534.975)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient8989"
|
||||||
|
id="radialGradient8995-8"
|
||||||
|
cx="1199"
|
||||||
|
cy="944.79773"
|
||||||
|
fx="1199"
|
||||||
|
fy="944.79773"
|
||||||
|
r="1"
|
||||||
|
gradientTransform="matrix(1,0,0,100,348,-93534.974)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient8989"
|
||||||
|
id="radialGradient9031"
|
||||||
|
cx="1371.6094"
|
||||||
|
cy="842.61261"
|
||||||
|
fx="1371.6094"
|
||||||
|
fy="842.61261"
|
||||||
|
r="174"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00574713,2,842.51954)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient8989"
|
||||||
|
id="radialGradient9035"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,0.00574713,0,1038.5195)"
|
||||||
|
cx="1371.6094"
|
||||||
|
cy="842.61261"
|
||||||
|
fx="1371.6094"
|
||||||
|
fy="842.61261"
|
||||||
|
r="174" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.3330036"
|
||||||
|
inkscape:cx="907.03522"
|
||||||
|
inkscape:cy="-144.31449"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1531"
|
||||||
|
inkscape:window-height="878"
|
||||||
|
inkscape:window-x="61"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata8422">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-836.36214)">
|
||||||
|
<path
|
||||||
|
style="opacity:1;fill:url(#linearGradient8981);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
d="M 0 0 L 0 216 L 1920 216 L 1920 0 L 0 0 z M 1200 12 L 1546 12 L 1546 206 L 1200 206 L 1200 12 z "
|
||||||
|
transform="translate(0,836.36214)"
|
||||||
|
id="rect8965" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient8995);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect8987"
|
||||||
|
width="2"
|
||||||
|
height="200"
|
||||||
|
x="1198"
|
||||||
|
y="844.79773" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient8995-8);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect8987-9"
|
||||||
|
width="2"
|
||||||
|
height="200"
|
||||||
|
x="1546"
|
||||||
|
y="844.79816" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#radialGradient9031);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect9023"
|
||||||
|
width="348"
|
||||||
|
height="2"
|
||||||
|
x="1199.6094"
|
||||||
|
y="846.36212" />
|
||||||
|
<rect
|
||||||
|
y="1042.3621"
|
||||||
|
x="1197.6094"
|
||||||
|
height="2"
|
||||||
|
width="348"
|
||||||
|
id="rect9033"
|
||||||
|
style="opacity:1;fill:url(#radialGradient9035);fill-opacity:1;stroke:none;stroke-width:2.5999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.6 KiB |
@ -14,8 +14,10 @@
|
|||||||
<color name="clrWhite">FFFFFFFF</color>
|
<color name="clrWhite">FFFFFFFF</color>
|
||||||
<color name="clrBlack">FF000000</color>
|
<color name="clrBlack">FF000000</color>
|
||||||
<color name="clrGray">FF999999</color>
|
<color name="clrGray">FF999999</color>
|
||||||
|
<color name="clrGray2">FF777777</color>
|
||||||
<color name="clrRedTrans">55FF0000</color>
|
<color name="clrRedTrans">55FF0000</color>
|
||||||
<color name="clrBlackTrans">99000000</color>
|
<color name="clrBlackTrans">99000000</color>
|
||||||
|
<color name="clrBlueMenu">FF00284A</color>
|
||||||
</colors>
|
</colors>
|
||||||
<!--
|
<!--
|
||||||
these variables can be used everywhere in the templates
|
these variables can be used everywhere in the templates
|
||||||
|
@ -1,15 +1,454 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE displayplugin SYSTEM "../../../dtd/displayplugin.dtd">
|
<!DOCTYPE displayplugin SYSTEM "../../../dtd/displayplugin.dtd">
|
||||||
|
|
||||||
<displayplugin x="0" y="0" width="100%" height="100%" fadetime="0" scaletvx="55%" scaletvy="30%" scaletvwidth="40%" scaletvheight="40%">
|
<displayplugin x="0" y="0" width="100%" height="100%" fadetime="0" scaletvx="55%" scaletvy="10%" scaletvwidth="40%" scaletvheight="40%">
|
||||||
|
|
||||||
<viewelement name="background">
|
<viewelement name="background">
|
||||||
<area x="0" y="0" width="100%" height="30%" layer="1">
|
<area x="0" y="0" width="100%" height="100%" layer="1">
|
||||||
<fill color="{clrRed}" />
|
<drawimage imagetype="skinpart" path="displaymenubacktv" x="0" y="0" width="100%" height="100%"/>
|
||||||
</area>
|
</area>
|
||||||
<area x="0" y="0" width="100%" height="30%" layer="2">
|
<area x="0" y="0" width="83%" height="8%" layer="2">
|
||||||
<drawtext align="center" valign="center" font="{regular}" fontsize="20%" color="{clrWhite}" text="{backtext} {zahl}" />
|
<drawimage imagetype="skinpart" path="displaymenuheader" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="74%" y="0" width="26%" height="46%" layer="3">
|
||||||
|
<drawimage imagetype="skinpart" path="displaymenucorner" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="{areawidth}*0.865" y="{areawidth}*0.005" width="13%" height="{areawidth}*0.13" layer="4">
|
||||||
|
<drawimage imagetype="skinpart" path="watchback" x="0" y="0" width="100%" height="100%"/>
|
||||||
</area>
|
</area>
|
||||||
</viewelement>
|
</viewelement>
|
||||||
|
|
||||||
|
<scrollbar>
|
||||||
|
<area x="52%" y="10%" width="2%" height="80%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="scrollbarback" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="52%" y="10%" width="2%" height="80%" layer="3">
|
||||||
|
<drawimage imagetype="skinpart" path="scrollbar" x="0" y="{areaheight} * {offset} / 1000" width="100%" height="{areaheight} * {height} / 1000"/>
|
||||||
|
</area>
|
||||||
|
</scrollbar>
|
||||||
|
|
||||||
|
<!-- Available Variables Footer:
|
||||||
|
{red1} true if red button is button 1
|
||||||
|
{red2} true if red button is button 2
|
||||||
|
{red3} true if red button is button 3
|
||||||
|
{red4} true if red button is button 4
|
||||||
|
{green1} true if green button is button 1
|
||||||
|
{green2} true if green button is button 2
|
||||||
|
{green3} true if green button is button 3
|
||||||
|
{green4} true if green button is button 4
|
||||||
|
{yellow1} true if yellow button is button 1
|
||||||
|
{yellow2} true if yellow button is button 2
|
||||||
|
{yellow3} true if yellow button is button 3
|
||||||
|
{yellow4} true if yellow button is button 4
|
||||||
|
{blue1} true if blue button is button 1
|
||||||
|
{blue2} true if blue button is button 2
|
||||||
|
{blue3} true if blue button is button 3
|
||||||
|
{blue4} true if blue button is button 4
|
||||||
|
{red} label of red button
|
||||||
|
{green} label of green button
|
||||||
|
{yellow} label of yellow button
|
||||||
|
{blue} label of blue button
|
||||||
|
-->
|
||||||
|
<viewelement name="footer">
|
||||||
|
<area condition="{red1}" x="0" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonred" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{red1}" x="0" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{red}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{green1}" x="0" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttongreen" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{green1}" x="0" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{green}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow1}" x="0" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonyellow" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow1}" x="0" y="90%" width="25%" height="10%" layer="4">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{blue1}" x="0" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonblue" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{blue1}" x="0" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{blue}" />
|
||||||
|
</area>
|
||||||
|
|
||||||
|
<area condition="{red2}" x="25%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonred" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{red2}" x="25%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{red}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{green2}" x="25%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttongreen" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{green2}" x="25%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{green}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow2}" x="25%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonyellow" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow2}" x="25%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{blue2}" x="25%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonblue" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{blue2}" x="25%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{blue}" />
|
||||||
|
</area>
|
||||||
|
|
||||||
|
<area condition="{red3}" x="50%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonred" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{red3}" x="50%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{red}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{green3}" x="50%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttongreen" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{green3}" x="50%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{green}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow3}" x="50%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonyellow" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow3}" x="50%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{blue3}" x="50%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonblue" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{blue3}" x="50%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{blue}" />
|
||||||
|
</area>
|
||||||
|
|
||||||
|
<area condition="{red4}" x="75%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonred" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{red4}" x="75%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{red}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{green4}" x="75%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttongreen" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{green4}" x="60%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{green}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow4}" x="75%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonyellow" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow4}" x="75%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{blue4}" x="75%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonblue" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{blue4}" x="75%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{blue}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Available Variables time:
|
||||||
|
{time} timestring in hh:mm
|
||||||
|
{sec} current seconds
|
||||||
|
{min} current minutes
|
||||||
|
{hour} current hours
|
||||||
|
{hmins} current "hourminutes" to display an hour hand
|
||||||
|
-->
|
||||||
|
<viewelement name="time">
|
||||||
|
<area x="81%" y="0" width="7%" height="5%" layer="5">
|
||||||
|
<drawtext x="0" valign="center" font="{digital}" fontsize="90%" color="{clrWhite}" text="{time}" />
|
||||||
|
</area>
|
||||||
|
<area x="{areawidth}*0.865" y="{areawidth}*0.005" width="13%" height="{areawidth}*0.13" layer="5">
|
||||||
|
<drawimage imagetype="skinpart" path="watchhands/s_{sec}" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="{areawidth}*0.865" y="{areawidth}*0.005" width="13%" height="{areawidth}*0.13" layer="6">
|
||||||
|
<drawimage imagetype="skinpart" path="watchhands/m_{min}" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="{areawidth}*0.865" y="{areawidth}*0.005" width="13%" height="{areawidth}*0.13" layer="7">
|
||||||
|
<drawimage imagetype="skinpart" path="watchhands/h_{hmins}" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Available Variables in detailheader elements:
|
||||||
|
{title} title of event
|
||||||
|
{shorttext} shorttext of event
|
||||||
|
{start} event start time in hh::mm
|
||||||
|
{stop} event stop time
|
||||||
|
{day} Day of event as three letter abrivation
|
||||||
|
{date} date of current event in dd.mm.yy
|
||||||
|
{daynumeric} day as number
|
||||||
|
{month} month as number
|
||||||
|
{year} year as number
|
||||||
|
{running} true if event is currently running
|
||||||
|
{elapsed} elapsed time of event, if not running 0
|
||||||
|
{duration} duration of event
|
||||||
|
{durationhours} duration, full hours
|
||||||
|
{durationminutes} duration, rest of minutes
|
||||||
|
{vps} vps description string
|
||||||
|
{channelname} Channelname of event
|
||||||
|
{channelnumber} Channelnumber of event
|
||||||
|
{channellogoexists} true if a channel logo exists
|
||||||
|
{channelid} ChannelID as path to display channel logo
|
||||||
|
{ismovie} true if event is scraped as a movie
|
||||||
|
{isseries} true if event is scraped as a series
|
||||||
|
{posteravailable} true if a poster is available
|
||||||
|
{posterwidth} width of scraped poster
|
||||||
|
{posterheight} height of scraped poster
|
||||||
|
{posterpath} absolute path of scraped poster
|
||||||
|
{banneravailable} true if a banner is available
|
||||||
|
{bannerwidth} width of banner
|
||||||
|
{bannerheight} height of banner
|
||||||
|
{bannerpath} path of banner
|
||||||
|
{epgpicavailable} true if a epg picture is available
|
||||||
|
{epgpicpath} path of epg picture
|
||||||
|
-->
|
||||||
|
<viewelement name="header">
|
||||||
|
<area x="0" y="0" width="83%" height="8%" layer="3">
|
||||||
|
<drawimage name="logo" imagetype="channellogo" path="{channelid}" x="1%" width="5%" height="90%" align="left" valign="center" />
|
||||||
|
<drawtext x="{posx(logo)} + {width(logo)}+20" valign="center" font="{semibold}" fontsize="80%" color="{clrWhite}" text="{channelnumber} - {channelname}" />
|
||||||
|
</area>
|
||||||
|
<area x="1%" y="10%" width="50%" height="80%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="displaymendetailback" x="0" y="0" width="100%" height="100%" />
|
||||||
|
</area>
|
||||||
|
<area x="55%" y="52%" width="43%" height="38%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="displaymenucurrentback" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="not{ismovie}++not{isseries}" x="55%" y="52%" width="43%" height="20%" layer="3">
|
||||||
|
<drawtext x="3%" y="15%" font="{regular}" fontsize="15%" color="{clrWhite}" text="{day} {date} {start} - {stop} ({duration} mins)" />
|
||||||
|
<drawtext x="3%" y="30%" width="96%" font="{semibold}" fontsize="30%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtext x="3%" y="60%" width="96%" font="{regular}" fontsize="20%" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{isseries}" x="55%" y="52%" width="43%" height="20%" layer="3">
|
||||||
|
<drawimage name="banner" imagetype="image" path="{bannerpath}" align="center" y="1%" width="70%" height="{areawidth} * 0.7 * {bannerheight} / {bannerwidth}"/>
|
||||||
|
<drawtext name="datetime" x="3%" y="{posy(banner)} + {height(banner)} + 5" font="{regular}" fontsize="15%" color="{clrWhite}" text="{day} {date} {start} - {stop} ({duration} mins)" />
|
||||||
|
<drawtext x="3%" y="{posy(datetime)} + {height(datetime)}" width="96%" font="{semibold}" fontsize="30%" color="{clrWhite}" text="{title} - {shorttext}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{ismovie}" x="55%" y="52%" width="43%" height="20%" layer="3">
|
||||||
|
<drawimage name="poster" imagetype="image" path="{posterpath}" x="1%" valign="center" width="{areaheight} * {posterwidth} / {posterheight}" height="{areaheight}-20"/>
|
||||||
|
<drawtext x="{posx(poster)} + {width(poster)} + 10" y="15%" font="{regular}" fontsize="15%" color="{clrWhite}" text="{day} {date} {start} - {stop} ({duration} mins)" />
|
||||||
|
<drawtext x="{posx(poster)} + {width(poster)} + 10" y="30%" width="{areawidth} - {posx(poster)} - {width(poster)} - 20" font="{semibold}" fontsize="30%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtext x="{posx(poster)} + {width(poster)} + 10" y="60%" width="{areawidth} - {posx(poster)} - {width(poster)} - 20" font="{regular}" fontsize="20%" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
</area>
|
||||||
|
<area x="56%" y="72%" width="41%" height="17%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="tabback" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Available Variables in tab elements:
|
||||||
|
{title} title of event
|
||||||
|
{shorttext} shorttext of event
|
||||||
|
{description} description of event
|
||||||
|
{start} event start time in hh::mm
|
||||||
|
{stop} event stop time
|
||||||
|
{day} Day of event as three letter abrivation
|
||||||
|
{date} date of current event in dd.mm.yy
|
||||||
|
{daynumeric} day as number
|
||||||
|
{month} month as number
|
||||||
|
{year} year as number
|
||||||
|
{running} true if event is currently running
|
||||||
|
{elapsed} elapsed time of event, if not running 0
|
||||||
|
{duration} duration of event
|
||||||
|
{durationhours} duration, full hours
|
||||||
|
{durationminutes} duration, rest of minutes
|
||||||
|
{vps} vps description string
|
||||||
|
{channellogoexists} true if a channel logo exists
|
||||||
|
{channelid} ChannelID as path to display channel logo
|
||||||
|
{hasreruns} true if reruns of this event are found
|
||||||
|
{reruns[]} array with reruns
|
||||||
|
{reruns[title]} title of rerun
|
||||||
|
{reruns[shorttext]} shorttext of rerun
|
||||||
|
{reruns[date]} date of rerun in dd:mm
|
||||||
|
{reruns[day]} short dayname of rerun
|
||||||
|
{reruns[start]} start time of rerun in hh:mm
|
||||||
|
{reruns[stop]} stop time of rerun in hh:mm
|
||||||
|
{reruns[channelname]} name of channel on which rerun occurs
|
||||||
|
{reruns[channelnumber]} number of channel on which rerun occurs
|
||||||
|
{reruns[channelid]} id of channel on which rerun occurs to display channel logo
|
||||||
|
{reruns[channellogoexists]} true if channel logo exists
|
||||||
|
{epgpic1avaialble} true if first epg picture is available
|
||||||
|
{epgpic2avaialble} true if first epg picture is available
|
||||||
|
{epgpic3avaialble} true if first epg picture is available
|
||||||
|
{epgpic1path} path of first epg picture
|
||||||
|
{epgpic2path} path of second epg picture
|
||||||
|
{epgpic3path} path of third epg picture
|
||||||
|
|
||||||
|
{ismovie} true if event is scraped as a movie
|
||||||
|
Available variables for movies:
|
||||||
|
{movietitle} movie title from themoviedb
|
||||||
|
{movieoriginalTitle} movie original title from themoviedb
|
||||||
|
{movietagline} movie tagline from themoviedb
|
||||||
|
{movieoverview} movie overview from themoviedb
|
||||||
|
{movieadult} true if movie is rated as adult
|
||||||
|
{moviebudget} movie budget from themoviedb in $
|
||||||
|
{movierevenue} movie revenue from themoviedb in $
|
||||||
|
{moviegenres} movie genres from themoviedb
|
||||||
|
{moviehomepage} movie homepage from themoviedb
|
||||||
|
{moviereleasedate} movie release date from themoviedb
|
||||||
|
{movieruntime} movie runtime from themoviedb
|
||||||
|
{moviepopularity} movie popularity from themoviedb
|
||||||
|
{movievoteaverage} movie vote average from themoviedb
|
||||||
|
{posterwidth} width of scraped poster
|
||||||
|
{posterheight} height of scraped poster
|
||||||
|
{posterpath} absolute path of scraped poster
|
||||||
|
{fanartwidth} width of scraped fanart
|
||||||
|
{fanartheight} height of scraped fanart
|
||||||
|
{fanartpath} absolute path of scraped fanart
|
||||||
|
{movieiscollection} true if movie is part of a collection
|
||||||
|
{moviecollectionName} name of movie collection
|
||||||
|
{collectionposterwidth} width of scraped collection poster
|
||||||
|
{collectionposterheight} height of scraped collection poster
|
||||||
|
{collectionposterpath} absolute path of scraped collection poster
|
||||||
|
{collectionfanartwidth} width of scraped collection fanart
|
||||||
|
{collectionfanartheight} height of scraped collection fanart
|
||||||
|
{collectionfanartpath} absolute path of scraped collection fanart
|
||||||
|
{actors[]} array with movie actors
|
||||||
|
{actors[name]} real name of actor
|
||||||
|
{actors[role]} actor role
|
||||||
|
{actors[thumb]} absolute path of scraped actor thumb
|
||||||
|
{actors[thumbwidth]} width of scraped actor thumb
|
||||||
|
{actors[thumbheight]} height of scraped actor thumb
|
||||||
|
|
||||||
|
{isseries} true if event is scraped as a series
|
||||||
|
Available variables for series:
|
||||||
|
{seriesname} name of series
|
||||||
|
{seriesoverview} series overview
|
||||||
|
{seriesfirstaired} first aired date
|
||||||
|
{seriesnetwork} network which produces series
|
||||||
|
{seriesgenre} series genre
|
||||||
|
{seriesrating} series thetvdb rating
|
||||||
|
{seriesstatus} status of series (running / finished)
|
||||||
|
{episodetitle} title of episode
|
||||||
|
{episodenumber} number of episode
|
||||||
|
{episodeseason} season of episode
|
||||||
|
{episodefirstaired} first aired date of episode
|
||||||
|
{episodegueststars} guest stars of episode
|
||||||
|
{episodeoverview} episode overview
|
||||||
|
{episoderating} user rating for episode
|
||||||
|
{episodeimagewidth} episode image width
|
||||||
|
{episodeimageheight} episode image height
|
||||||
|
{episodeimagepath} episode image path
|
||||||
|
{seasonposterwidth} episode season poster width
|
||||||
|
{seasonposterheight} episode season poster height
|
||||||
|
{seasonposterpath} episode season poster path
|
||||||
|
{seriesposter1width} width of 1st poster
|
||||||
|
{seriesposter1height} height of 1st poster
|
||||||
|
{seriesposter1path} path of 1st poster
|
||||||
|
{seriesposter2width} width of 2nd poster
|
||||||
|
{seriesposter2height} height of 2nd poster
|
||||||
|
{seriesposter2path} path of 2nd poster
|
||||||
|
{seriesposter3width} width of 3rd poster
|
||||||
|
{seriesposter3height} height of 3rd poster
|
||||||
|
{seriesposter3path} path of 3rd poster
|
||||||
|
{seriesfanart1width} width of 1st fanart
|
||||||
|
{seriesfanart1height} height of 1st fanart
|
||||||
|
{seriesfanart1path} path of 1st fanart
|
||||||
|
{seriesfanart2width} width of 2nd fanart
|
||||||
|
{seriesfanart2height} height of 2nd fanart
|
||||||
|
{seriesfanart2path} path of 2nd fanart
|
||||||
|
{seriesfanart3width} width of 3rd fanart
|
||||||
|
{seriesfanart3height} height of 3rd fanart
|
||||||
|
{seriesfanart3path} path of 3rd fanart
|
||||||
|
{seriesbanner1width} width of 1st banner
|
||||||
|
{seriesbanner1height} height of 1st banner
|
||||||
|
{seriesbanner1path} path of 1st banner
|
||||||
|
{seriesbanner2width} width of 2nd banner
|
||||||
|
{seriesbanner2height} height of 2nd banner
|
||||||
|
{seriesbanner2path} path of 2nd banner
|
||||||
|
{seriesbanner3width} width of 3rd banner
|
||||||
|
{seriesbanner3height} height of 3rd banner
|
||||||
|
{seriesbanner3path} path of 3rd fanart
|
||||||
|
{actors[]} array with movie actors
|
||||||
|
{actors[name]} real name of actor
|
||||||
|
{actors[role]} actor role
|
||||||
|
{actors[thumb]} absolute path of scraped actor thumb
|
||||||
|
{actors[thumbwidth]} width of scraped actor thumb
|
||||||
|
{actors[thumbheight]} height of scraped actor thumb
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- a tab is one scrolling area, just position and draw as inside a normal area -->
|
||||||
|
<!-- just define as many tabs as needed -->
|
||||||
|
|
||||||
|
<!-- TAB EPGINFO -->
|
||||||
|
<tab name="EPG Info" x="2%" y="11%" width="48%" height="78%" layer="3" scrollheight="{areaheight}/4">
|
||||||
|
<drawtext x="0" y="0" font="{semibold}" fontsize="6%" color="{clrWhite}" text="{day} {date} {start} - {stop} ({duration} mins)" />
|
||||||
|
<drawtext x="0" y="6%" width="100%" font="{semibold}" fontsize="9%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtext x="0" y="14%" width="100%" font="{regular}" fontsize="7%" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
|
||||||
|
<drawtextbox condition="not{isseries}++not{ismovie}" x="0" y="24%" width="96%" font="{regular}" fontsize="5%" color="{clrWhite}" text="{description}" />
|
||||||
|
<drawimage condition="{isseries}" name="seriesposter" imagetype="image" path="{seriesposter1path}" x="{areawidth}*0.7" y="20%" width="{areawidth}*0.3" height="{areawidth} * 0.3 * {seriesposter1height} / {seriesposter1width}"/>
|
||||||
|
<drawimage condition="{ismovie}" name="movieposter" imagetype="image" path="{posterpath}" x="{areawidth}*0.7" y="20%" width="{areawidth}*0.3" height="{areawidth} * 0.3 * {posterheight} / {posterwidth}" />
|
||||||
|
<drawtextbox condition="{isseries}" x="0" y="24%" width="96%" float="topright" floatwidth="{width(seriesposter)} + 10" floatheight="{height(seriesposter)} + 20" font="{regular}" fontsize="5%" color="{clrWhite}" text="{description}" />
|
||||||
|
<drawtextbox condition="{ismovie}" x="0" y="24%" width="96%" float="topright" floatwidth="{width(movieposter)} + 10" floatheight="{height(movieposter)} + 20" font="{regular}" fontsize="5%" color="{clrWhite}" text="{description}" />
|
||||||
|
|
||||||
|
</tab>
|
||||||
|
<!-- TAB RERUNS -->
|
||||||
|
<tab name="{tr(reruns)}" x="2%" y="11%" width="48%" height="78%" layer="3" scrollheight="{areaheight}/4">
|
||||||
|
<drawtext align="center" y="0" width="100%" name="title" font="{semibold}" fontsize="6%" color="{clrWhite}" text="{tr(rerunsof)} '{title}'" />
|
||||||
|
<loop name="reruns" x="0" y="{height(title)} + 10" width="{areawidth}" orientation="vertical">
|
||||||
|
<drawimage name="logo" condition="{reruns[channellogoexists]}" imagetype="channellogo" path="{reruns[channelid]}" x="0" width="10%" height="10%" />
|
||||||
|
<drawtext name="channelname" condition="not{reruns[channellogoexists]}" x="0" y="2%" font="{regular}" fontsize="5%" color="{clrWhite}" text="{reruns[channelname]}" />
|
||||||
|
<drawtext condition="{reruns[channellogoexists]}" x="{width(logo)}+20" y="0" width="{areawidth} - {width(logo)} - 20" font="{regular}" fontsize="5%" color="{clrWhite}" text="{reruns[day]} {reruns[date]} {reruns[start]} - {reruns[stop]}" />
|
||||||
|
<drawtext condition="{reruns[channellogoexists]}" x="{width(logo)}+20" y="4%" width="{areawidth} - {width(logo)} - 20" font="{semibold}" fontsize="5%" color="{clrWhite}" text="{reruns[title]} {reruns[shorttext]}" />
|
||||||
|
<drawtext condition="not{reruns[channellogoexists]}" x="{width(channelname)}+20" y="0" width="{areawidth} - {width(logo)} - 20" font="{regular}" fontsize="5%" color="{clrWhite}" text="{reruns[day]} {reruns[date]} {reruns[start]} - {reruns[stop]}" />
|
||||||
|
<drawtext condition="not{reruns[channellogoexists]}" x="{width(channelname)}+20" y="4%" width="{areawidth} - {width(logo)} - 20" font="{semibold}" fontsize="5%" color="{clrWhite}" text="{reruns[title]} {reruns[shorttext]}" />
|
||||||
|
</loop>
|
||||||
|
</tab>
|
||||||
|
<!-- TAB ACTORS -->
|
||||||
|
<tab condition="{isseries}||{ismovie}" name="{tr(actors)}" x="2%" y="11%" width="48%" height="78%" layer="3" scrollheight="{areaheight}/4">
|
||||||
|
<drawtext align="center" name="title" y="0" font="{semibold}" fontsize="15%" color="{clrWhite}" text="{tr(actors)}" />
|
||||||
|
<loop name="actors" x="0" y="{height(title)} + 10" width="{areawidth}" orientation="horizontal" columnwidth="{areawidth}*0.3" rowheight="{areawidth}*0.3*1.8" overflow="linewrap">
|
||||||
|
<drawimage name="thumb" imagetype="image" path="{actors[thumb]}" x="20" y="0" width="{columnwidth}-40" height="{columnwidth} * {actors[thumbheight]} / {actors[thumbwidth]} - 40 * {actors[thumbheight]} / {actors[thumbwidth]}"/>
|
||||||
|
<drawtext align="center" y="{height(thumb)} + 10" width="{columnwidth}" name="actorname" font="{regular}" fontsize="7%" color="{clrWhite}" text="{actors[name]}" />
|
||||||
|
<drawtext align="center" y="{height(thumb)} + 10 + {height(actorname)}" width="{columnwidth}" font="{regular}" fontsize="7%" color="{clrWhite}" text="{actors[role]}" />
|
||||||
|
</loop>
|
||||||
|
</tab>
|
||||||
|
<!-- TAB TVDBINFO -->
|
||||||
|
<tab condition="{isseries}" name="TvDBInfo" x="2%" y="11%" width="48%" height="78%" layer="3" scrollheight="{areaheight}/4">
|
||||||
|
<drawimage name="banner" imagetype="image" path="{seriesbanner1path}" align="center" y="10" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesbanner1height} / {seriesbanner1width}"/>
|
||||||
|
<drawimage name="episodeimage" imagetype="image" path="{episodeimagepath}" x="{areawidth}*0.7" y="{height(banner)} + 20" width="{areawidth}*0.3" height="{areawidth} * 0.3 * {episodeimageheight} / {episodeimagewidth}"/>
|
||||||
|
<drawimage name="seasonposter" imagetype="image" path="{seasonposterpath}" x="{areawidth}*0.7" y="{height(banner)} + {height(episodeimage)} + 30" width="{areawidth}*0.3" height="{areawidth} * 0.3 * {seasonposterheight} / {seasonposterwidth}"/>
|
||||||
|
<drawtextbox x="0" y="{height(banner)} + 20" width="96%" float="topright" floatwidth="{width(seasonposter)} + 10" floatheight="{height(episodeimage)} + {height(seasonposter)} + 30" font="{regular}" fontsize="6%" color="{clrWhite}" text="{tr(episode)}: {episodetitle} ({tr(season)} {episodeseason}, {tr(episode)} {episodenumber}) {episodeoverview}| {tr(gueststars)}: {episodegueststars}|| {tr(seriesfirstaired)}: {seriesfirstaired}|| {tr(episodefirstaired)}: {episodefirstaired}|| {tr(network)}: {seriesnetwork}|| {tr(genre)}: {seriesgenre}|| {tr(status)}: {seriesstatus}|| {tr(rating)}: {seriesrating}|| {tr(episoderating)}: {episoderating} |{seriesoverview} " />
|
||||||
|
</tab>
|
||||||
|
<!-- TAB SERIESGALERY -->
|
||||||
|
<tab condition="{isseries}" name="{tr(seriesgalery)}" x="2%" y="11%" width="48%" height="78%" layer="3" scrollheight="{areaheight}/4">
|
||||||
|
<drawimage name="banner1" imagetype="image" path="{seriesbanner1path}" align="center" y="10" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesbanner1height} / {seriesbanner1width}"/>
|
||||||
|
<drawimage name="fanart1" imagetype="image" path="{seriesfanart1path}" align="center" y="{posy(banner1)} + {height(banner1)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesfanart1height} / {seriesfanart1width}"/>
|
||||||
|
<drawimage name="banner2" imagetype="image" path="{seriesbanner2path}" align="center" y="{posy(fanart1)} + {height(fanart1)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesbanner2height} / {seriesbanner2width}"/>
|
||||||
|
<drawimage name="fanart2" imagetype="image" path="{seriesfanart2path}" align="center" y="{posy(banner2)} + {height(banner2)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesfanart2height} / {seriesfanart2width}"/>
|
||||||
|
<drawimage name="banner3" imagetype="image" path="{seriesbanner3path}" align="center" y="{posy(fanart2)} + {height(fanart2)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesbanner3height} / {seriesbanner3width}"/>
|
||||||
|
<drawimage name="fanart3" imagetype="image" path="{seriesfanart3path}" align="center" y="{posy(banner3)} + {height(banner3)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesfanart3height} / {seriesfanart3width}"/>
|
||||||
|
<drawimage name="poster1" imagetype="image" path="{seriesposter1path}" align="center" y="{posy(fanart3)} + {height(fanart3)} + 20" width="{areawidth}*0.5" height="{areawidth} * 0.5 * {seriesposter1height} / {seriesposter1width}"/>
|
||||||
|
<drawimage name="poster2" imagetype="image" path="{seriesposter2path}" align="center" y="{posy(poster1)} + {height(poster1)} + 20" width="{areawidth}*0.5" height="{areawidth} * 0.5 * {seriesposter2height} / {seriesposter2width}"/>
|
||||||
|
<drawimage name="poster3" imagetype="image" path="{seriesposter3path}" align="center" y="{posy(poster2)} + {height(poster2)} + 20" width="{areawidth}*0.5" height="{areawidth} * 0.5 * {seriesposter3height} / {seriesposter3width}"/>
|
||||||
|
</tab>
|
||||||
|
<!-- TAB MOVIEDBINFO -->
|
||||||
|
<tab condition="{ismovie}" name="MovieDBInfo" x="2%" y="11%" width="48%" height="78%" layer="3" scrollheight="{areaheight}/4">
|
||||||
|
<drawimage name="poster" imagetype="image" path="{posterpath}" x="70%" y="10" width="{areawidth}*0.3" height="{areawidth} * 0.3 * {posterheight} / {posterwidth}"/>
|
||||||
|
<drawtextbox x="0" y="10" width="96%" float="topright" floatwidth="{width(poster)} + 10" floatheight="{height(poster)} + 20" font="{regular}" fontsize="6%" color="{clrWhite}" text="{tr(originaltitle)}: {movieoriginalTitle} |{tr(genre)}: {moviegenres} ||{movietagline} |{movieoverview} |{tr(budget)}: {moviebudget} ||{tr(revenue)}: {movierevenue} ||{tr(adult)}: {movieadult} ||{tr(releasedate)}: {moviereleasedate} ||{tr(runtime)}: {movieruntime} min || {tr(popularity)}: {moviepopularity} || {tr(voteaverage)}: {movievoteaverage} || {tr(homepage)}: {moviehomepage}| " />
|
||||||
|
</tab>
|
||||||
|
<!-- TAB MOVIEGALERY -->
|
||||||
|
<tab condition="{ismovie}" name="{tr(moviegalery)}" x="2%" y="11%" width="48%" height="78%" layer="3" scrollheight="{areaheight}/4">
|
||||||
|
<drawimage name="fanart" imagetype="image" path="{fanartpath}" align="center" y="10" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {fanartheight} / {fanartwidth}"/>
|
||||||
|
<drawimage name="poster" imagetype="image" path="{posterpath}" align="center" y="{height(fanart)} + 30" width="{areawidth}*0.6" height="{areawidth} * 0.6 * {posterheight} / {posterwidth}"/>
|
||||||
|
<drawimage condition="{movieiscollection}" name="collectionfanart" imagetype="image" path="{collectionfanartpath}" align="center" y="{posy(poster)} + {height(poster)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {collectionfanartheight} / {collectionfanartwidth}"/>
|
||||||
|
<drawimage condition="{movieiscollection}" name="collectionposter" imagetype="image" path="{collectionposterpath}" align="center" y="{posy(collectionfanart)} + {height(collectionfanart)} + 20" width="{areawidth}*0.6" height="{areawidth} * 0.6 * {collectionposterheight} / {collectionposterwidth}"/>
|
||||||
|
</tab>
|
||||||
|
|
||||||
|
<tablabels>
|
||||||
|
<area x="56%" y="72%" width="41%" height="9%" layer="3">
|
||||||
|
<drawtext align="center" y="0" width="100%" font="{semibold}" fontsize="100%" color="{clrWhite}" text="{currenttab}" />
|
||||||
|
</area>
|
||||||
|
<area x="56%" y="81%" width="18%" height="8%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" width="100%" font="{regular}" fontsize="60%" color="{clrGray}" text="{prevtab}" />
|
||||||
|
</area>
|
||||||
|
<area x="79%" y="81%" width="17%" height="8%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" width="100%" font="{regular}" fontsize="60%" color="{clrGray}" text="{nexttab}" />
|
||||||
|
</area>
|
||||||
|
</tablabels>
|
||||||
|
|
||||||
</displayplugin>
|
</displayplugin>
|
||||||
|
454
skins/blackhole/xmlfiles/plug-tvguideng-recmenu.xml
Normal file
@ -0,0 +1,454 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE displayplugin SYSTEM "../../../dtd/displayplugin.dtd">
|
||||||
|
|
||||||
|
<displayplugin x="0" y="0" width="100%" height="100%" fadetime="0" scaletvx="0.625*{areawidth}" scaletvy="1%" scaletvwidth="18%" scaletvheight="18%">
|
||||||
|
|
||||||
|
<!-- Available Variables Background:
|
||||||
|
{menuwidth} menuwidth in percent of screenwidth
|
||||||
|
{menuheight} menuheight in percent of screenheight
|
||||||
|
{hasscrollbar} true if menu needs a scrollbar
|
||||||
|
-->
|
||||||
|
<viewelement name="background">
|
||||||
|
<area x="0" y="0" width="100%" height="100%" layer="4">
|
||||||
|
<fill color="{clrBlackTrans}" />
|
||||||
|
</area>
|
||||||
|
<area condition="not{hasscrollbar}" x="0" y="0" width="100%" height="100%" layer="4">
|
||||||
|
<drawrectangle x="{areawidth}/2 - {menuwidth}*{areawidth}/100/2" y="{areaheight}/2 - {menuheight}*{areaheight}/100/2" width="{menuwidth}*{areawidth}/100" height="{menuheight}*{areaheight}/100" color="{clrBlack}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{hasscrollbar}" x="0" y="0" width="100%" height="100%" layer="4">
|
||||||
|
<drawrectangle x="{areawidth}/2 - {menuwidth}*{areawidth}/100/2" y="{areaheight}/2 - {menuheight}*{areaheight}/100/2" width="{menuwidth}*{areawidth}/100 + {areawidth}*0.03" height="{menuheight}*{areaheight}/100" color="{clrBlack}"/>
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Available Variables Scrollbar:
|
||||||
|
{menuwidth} menuwidth in percent of screenwidth
|
||||||
|
{posy} y position of scrollbar start in percent of screenheight
|
||||||
|
{totalheight} height of complete scrollbar in percent of screenheight
|
||||||
|
{height} height in tenth of a percent of total height
|
||||||
|
{offset} offset in tenth of a percent
|
||||||
|
-->
|
||||||
|
<viewelement name="scrollbar">
|
||||||
|
<area x="0" y="0" width="100%" height="100%" layer="5">
|
||||||
|
<drawimage imagetype="skinpart" path="scrollbarback" x="{areawidth}/2 + {menuwidth}*{areawidth}/100/2" y="{posy}*{areaheight}/100" width="2%" height="{totalheight}*{areaheight}/100"/>
|
||||||
|
</area>
|
||||||
|
<area x="0" y="0" width="100%" height="100%" layer="6">
|
||||||
|
<drawimage imagetype="skinpart" path="scrollbar" x="{areawidth}/2 + {menuwidth}*{areawidth}/100/2" y="{posy}*{areaheight}/100 + {totalheight}*{areaheight}/100 * {offset} / 1000" width="2%" height="{totalheight}*{areaheight}/100 * {height} / 1000"/>
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<grid name="recmenu" x="0" y="0" width="100%" height="100%">
|
||||||
|
<!-- Background
|
||||||
|
{current} true if item is currently selected
|
||||||
|
-->
|
||||||
|
<area condition="not{info}++not{buttonyesno}++not{timerconflictheader}++not{timerconflict}++not{timelineheader}++not{timelinetimer}" layer="5">
|
||||||
|
<drawimage condition="not{current}" imagetype="skinpart" path="menubutton" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
<drawimage condition="{current}" imagetype="skinpart" path="menubuttonactive" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<!-- info item
|
||||||
|
{info} true
|
||||||
|
{lines} number of lines to display (max. 4)
|
||||||
|
{line1} text of line 1
|
||||||
|
{line2} text of line 1
|
||||||
|
{line3} text of line 1
|
||||||
|
{line4} text of line 1
|
||||||
|
-->
|
||||||
|
<area condition="{info}" layer="5">
|
||||||
|
<drawtext condition="eq({lines}, 1)" align="center" valign="center" font="{regular}" fontsize="60%" color="{clrWhite}" text="{line1}" />
|
||||||
|
|
||||||
|
<drawtext condition="eq({lines}, 2)" align="center" y="5%" font="{regular}" fontsize="40%" color="{clrWhite}" text="{line1}" />
|
||||||
|
<drawtext condition="eq({lines}, 2)" align="center" y="52%" font="{regular}" fontsize="40%" color="{clrWhite}" text="{line2}" />
|
||||||
|
|
||||||
|
<drawtext condition="eq({lines}, 3)" align="center" y="0%" font="{regular}" fontsize="28%" color="{clrWhite}" text="{line1}" />
|
||||||
|
<drawtext condition="eq({lines}, 3)" align="center" y="33%" font="{regular}" fontsize="28%" color="{clrWhite}" text="{line2}" />
|
||||||
|
<drawtext condition="eq({lines}, 3)" align="center" y="66%" font="{regular}" fontsize="28%" color="{clrWhite}" text="{line3}" />
|
||||||
|
|
||||||
|
<drawtext condition="eq({lines}, 4)" align="center" y="0%" font="{regular}" fontsize="22%" color="{clrWhite}" text="{line1}" />
|
||||||
|
<drawtext condition="eq({lines}, 4)" align="center" y="25%" font="{regular}" fontsize="22%" color="{clrWhite}" text="{line2}" />
|
||||||
|
<drawtext condition="eq({lines}, 4)" align="center" y="50%" font="{regular}" fontsize="22%" color="{clrWhite}" text="{line3}" />
|
||||||
|
<drawtext condition="eq({lines}, 4)" align="center" y="75%" font="{regular}" fontsize="22%" color="{clrWhite}" text="{line4}" />
|
||||||
|
</area>
|
||||||
|
<!-- button
|
||||||
|
{button} true
|
||||||
|
{buttontext} text to display on button
|
||||||
|
-->
|
||||||
|
<area condition="{button}" layer="6">
|
||||||
|
<drawtext align="center" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{buttontext}" />
|
||||||
|
</area>
|
||||||
|
|
||||||
|
<!-- yes / no button
|
||||||
|
{buttonyesno} true
|
||||||
|
{yes} true if button is set to yes
|
||||||
|
{textyes} text to display on yes button
|
||||||
|
{textno} text to display on no button
|
||||||
|
-->
|
||||||
|
<area condition="{buttonyesno}" layer="5">
|
||||||
|
<drawimage condition="not{current}" imagetype="skinpart" path="menubutton" x="2%" y="5%" width="46%" height="90%"/>
|
||||||
|
<drawimage condition="not{current}" imagetype="skinpart" path="menubutton" x="52%" y="5%" width="46%" height="90%"/>
|
||||||
|
<drawimage condition="{current}++{yes}" imagetype="skinpart" path="menubuttonactive" x="2%" y="5%" width="46%" height="90%"/>
|
||||||
|
<drawimage condition="{current}++{yes}" imagetype="skinpart" path="menubutton" x="52%" y="5%" width="46%" height="90%"/>
|
||||||
|
<drawimage condition="{current}++not{yes}" imagetype="skinpart" path="menubutton" x="2%" y="5%" width="46%" height="90%"/>
|
||||||
|
<drawimage condition="{current}++not{yes}" imagetype="skinpart" path="menubuttonactive" x="52%" y="5%" width="46%" height="90%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{buttonyesno}" layer="6">
|
||||||
|
<drawtext name="yestext" x="{areawidth}/4 - {width(yestext)}/2" valign="center" font="{light}" fontsize="70%" color="{clrWhite}" text="{textyes}" />
|
||||||
|
<drawtext name="notext" x="3*{areawidth}/4 - {width(notext)}/2" valign="center" font="{light}" fontsize="70%" color="{clrWhite}" text="{textno}" />
|
||||||
|
</area> <!-- Int Selector
|
||||||
|
{intselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, integer
|
||||||
|
-->
|
||||||
|
<area condition="{intselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawtext align="right" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{value} " />
|
||||||
|
</area>
|
||||||
|
<!-- Bool Selector
|
||||||
|
{boolselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, true or false
|
||||||
|
-->
|
||||||
|
<area condition="{boolselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawimage condition="{value}" imagetype="icon" path="ico_yes" x="{areawidth} - {areaheight}*0.8" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
<drawimage condition="not{value}" imagetype="icon" path="ico_no" x="{areawidth} - {areaheight}*0.8" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
</area>
|
||||||
|
<!-- String Selector
|
||||||
|
{stringselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, string
|
||||||
|
-->
|
||||||
|
<area condition="{stringselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawimage imagetype="icon" path="ico_arrow_right" x="{areawidth} - {areaheight}*0.8" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
<drawtext name="value" x="{areawidth} - {width(value)} - {areaheight}" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{value}" />
|
||||||
|
<drawimage imagetype="icon" path="ico_arrow_left" x="{areawidth} - {width(value)} - 2*{areaheight}" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
</area>
|
||||||
|
<!-- Text Input
|
||||||
|
{textinput} true
|
||||||
|
{editmode} true if currently in edit mode
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, string
|
||||||
|
-->
|
||||||
|
<area condition="{textinput}" layer="6">
|
||||||
|
<drawtext x="1%" y="10%" font="{light}" fontsize="40%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawrectangle condition="not{editmode}" x="1%" y="55%" width="98%" height="40%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle condition="{editmode}" x="1%" y="55%" width="98%" height="40%" color="{clrRed}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{textinput}" layer="7">
|
||||||
|
<drawtext align="right" y="55%" font="{light}" fontsize="40%" color="{clrBlack}" text="{value} " />
|
||||||
|
</area>
|
||||||
|
<!-- Time Selector
|
||||||
|
{timeselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, hh:mm
|
||||||
|
-->
|
||||||
|
<area condition="{timeselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawtext align="right" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{value} " />
|
||||||
|
</area>
|
||||||
|
<!-- Day Selector
|
||||||
|
{dayselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, dd.mm
|
||||||
|
-->
|
||||||
|
<area condition="{dayselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawtext align="right" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{value} " />
|
||||||
|
</area>
|
||||||
|
<!-- Channel Selector
|
||||||
|
{channelselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{channelnumber} number of currently selected channel, 0 for "all channels"
|
||||||
|
{channelname} name of channel or "all channels"
|
||||||
|
{channelid} id of channel
|
||||||
|
{channellogoexisis} true if channel logo exists
|
||||||
|
-->
|
||||||
|
<area condition="{channelselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawimage condition="{channellogoexisis}" imagetype="channellogo" path="{channelid}" x="{areawidth}-{areaheight}" valign="center" width="{areaheight}*0.9" height="{areaheight}*0.9" />
|
||||||
|
<drawtext name="channelnumberlogo" condition="{channellogoexisis}" x="{areawidth}-{areaheight}-{width(channelnumberlogo)}-10" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{channelnumber}" />
|
||||||
|
<drawtext condition="not{channellogoexisis}++{channelnumber}" align="right" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{channelnumber} {channelname} " />
|
||||||
|
<drawtext condition="not{channelnumber}" align="right" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{channelname} " />
|
||||||
|
</area>
|
||||||
|
<!-- Weekday Selector
|
||||||
|
{weekdayselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{dayselected} number of currently selected day (0 - 6)
|
||||||
|
{day0abbr} ... {day6abbr} localized one character abbrevation for weekdays from Monday to Sunday
|
||||||
|
{day0set} ... {day6set} true if according weekday from Monday to Sunday is set
|
||||||
|
-->
|
||||||
|
<area condition="{weekdayselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
|
||||||
|
<drawrectangle x="{areawidth} - {areaheight}*4" y="25%" width="{areaheight}*3.5" height="50%" color="{clrWhite}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day0set}" x="{areawidth} - {areaheight}*4.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrGray2}" />
|
||||||
|
<drawrectangle condition="{day0set}" x="{areawidth} - {areaheight}*4.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlueMenu}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day1set}" x="{areawidth} - {areaheight}*3.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrGray2}" />
|
||||||
|
<drawrectangle condition="{day1set}" x="{areawidth} - {areaheight}*3.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlueMenu}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day2set}" x="{areawidth} - {areaheight}*3.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrGray2}" />
|
||||||
|
<drawrectangle condition="{day2set}" x="{areawidth} - {areaheight}*3.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlueMenu}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day3set}" x="{areawidth} - {areaheight}*2.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrGray2}" />
|
||||||
|
<drawrectangle condition="{day3set}" x="{areawidth} - {areaheight}*2.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlueMenu}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day4set}" x="{areawidth} - {areaheight}*2.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrGray2}" />
|
||||||
|
<drawrectangle condition="{day4set}" x="{areawidth} - {areaheight}*2.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlueMenu}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day5set}" x="{areawidth} - {areaheight}*1.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrGray2}" />
|
||||||
|
<drawrectangle condition="{day5set}" x="{areawidth} - {areaheight}*1.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlueMenu}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day6set}" x="{areawidth} - {areaheight}*1.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrGray2}" />
|
||||||
|
<drawrectangle condition="{day6set}" x="{areawidth} - {areaheight}*1.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlueMenu}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{weekdayselector}" layer="7">
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 0)" x="{areawidth} - {areaheight}*4.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlackTrans}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 1)" x="{areawidth} - {areaheight}*3.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlackTrans}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 2)" x="{areawidth} - {areaheight}*3.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlackTrans}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 3)" x="{areawidth} - {areaheight}*2.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlackTrans}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 4)" x="{areawidth} - {areaheight}*2.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlackTrans}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 5)" x="{areawidth} - {areaheight}*1.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlackTrans}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 6)" x="{areawidth} - {areaheight}*1.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrBlackTrans}" />
|
||||||
|
|
||||||
|
<drawtext name="day0" x="{areawidth} - {areaheight}*4.0 + {areaheight}/4 - {width(day0)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day0abbr}" />
|
||||||
|
<drawtext name="day1" x="{areawidth} - {areaheight}*3.5 + {areaheight}/4 - {width(day1)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day1abbr}" />
|
||||||
|
<drawtext name="day2" x="{areawidth} - {areaheight}*3.0 + {areaheight}/4 - {width(day2)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day2abbr}" />
|
||||||
|
<drawtext name="day3" x="{areawidth} - {areaheight}*2.5 + {areaheight}/4 - {width(day3)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day3abbr}" />
|
||||||
|
<drawtext name="day4" x="{areawidth} - {areaheight}*2.0 + {areaheight}/4 - {width(day4)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day4abbr}" />
|
||||||
|
<drawtext name="day5" x="{areawidth} - {areaheight}*1.5 + {areaheight}/4 - {width(day5)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day5abbr}" />
|
||||||
|
<drawtext name="day6" x="{areawidth} - {areaheight}*1.0 + {areaheight}/4 - {width(day6)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day6abbr}" />
|
||||||
|
</area>
|
||||||
|
<!-- Directory Selector
|
||||||
|
{directoryselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{folder} current folder of selector, string
|
||||||
|
-->
|
||||||
|
<area condition="{directoryselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawimage imagetype="icon" path="ico_arrow_right" x="{areawidth} - {areaheight}*0.8" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
<drawtext name="folder" x="{areawidth} - {width(folder)} - {areaheight}" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{folder}" />
|
||||||
|
<drawimage imagetype="icon" path="ico_arrow_left" x="{areawidth} - {width(folder)} - 2*{areaheight}" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
</area>
|
||||||
|
<!-- Timerconflict Header
|
||||||
|
{timerconflictheader} true
|
||||||
|
{text} title of Timerconflict Header
|
||||||
|
{conflictstart} start of conflict in hh:mm
|
||||||
|
{conflictstop} end of conflict in hh:mm
|
||||||
|
{overlapstart} start of overlap in hh:mm
|
||||||
|
{overlapstop} end of overlap in hh:mm
|
||||||
|
{overlapstartpercent} start of overlap in percent of total conflict time width
|
||||||
|
{overlapwidthpercent} width of overlap in percent of total conflict time width
|
||||||
|
-->
|
||||||
|
<area condition="{timerconflictheader}" layer="5">
|
||||||
|
<drawtext name="title" x="{areawidth}*0.7*0.5 - {width(title)}/2" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawrectangle x="70%" y="0" width="30%" height="100%" color="{clrWhite}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timerconflictheader}" layer="6">
|
||||||
|
<drawtext x="{areawidth}*0.7" y="0" font="{light}" fontsize="50%" color="{clrBlack}" text="{conflictstart}" />
|
||||||
|
<drawtext align="right" y="0" font="{light}" fontsize="50%" color="{clrBlack}" text="{conflictstop}" />
|
||||||
|
<drawtext name="olstart" x="{areawidth}*0.7 + {overlapstartpercent}*{areawidth}*0.3/100 - 70" y="50%" font="{light}" fontsize="50%" color="{clrRed}" text="{overlapstart}" />
|
||||||
|
<drawtext x="{areawidth}*0.7 + {overlapstartpercent}*{areawidth}*0.3/100 + {overlapwidthpercent}*{areawidth}*0.3/100 + 5" y="50%" font="{light}" fontsize="50%" color="{clrRed}" text="{overlapstop}" />
|
||||||
|
<drawrectangle x="{areawidth}*0.7 + {overlapstartpercent}*{areawidth}*0.3/100" y="50%" width="{overlapwidthpercent}*{areawidth}*0.3/100" height="50%" color="{clrRedTrans}"/>
|
||||||
|
</area>
|
||||||
|
<!-- Timerconflict
|
||||||
|
{timerconflict} true
|
||||||
|
{timertitle} title of timer
|
||||||
|
{channelname} name of channel
|
||||||
|
{channelid} channel ID
|
||||||
|
{transponder} transponder of channel
|
||||||
|
{starttime} start of timer in hh:mm
|
||||||
|
{stoptime} end of timer in hh:mm
|
||||||
|
{date} date of timer in dd.mm.yy
|
||||||
|
{weekday} weekday of timer, 3 letter abrivation
|
||||||
|
{infoactive} true if info icon is active
|
||||||
|
{deleteactive} true if delete icon is active
|
||||||
|
{editactive} true if edit icon is active
|
||||||
|
{searchactive} true if search icon is active
|
||||||
|
{timerstartpercent} start of timer in percent of total conflict time width
|
||||||
|
{timerwidthpercent} end of timer in percent of total conflict time width
|
||||||
|
{overlapstartpercent} start of overlap in percent of total conflict time width
|
||||||
|
{overlapwidthpercent} width of overlap in percent of total conflict time width
|
||||||
|
-->
|
||||||
|
<area condition="{timerconflict}" layer="5">
|
||||||
|
<drawimage condition="not{current}" imagetype="skinpart" path="menubutton" x="0" y="0" width="70%" height="100%"/>
|
||||||
|
<drawimage condition="{current}" imagetype="skinpart" path="menubuttonactive" x="0" y="0" width="70%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timerconflict}" layer="6">
|
||||||
|
<drawimage condition="{current}++{infoactive}" imagetype="icon" path="ico_info_active" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{infoactive}" imagetype="icon" path="ico_info_inactive" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{current}++{deleteactive}" imagetype="icon" path="ico_delete_active" x="{areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{deleteactive}" imagetype="icon" path="ico_delete_inactive" x="{areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{current}++{editactive}" imagetype="icon" path="ico_edit_active" x="{areaheight}*1.15" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{editactive}" imagetype="icon" path="ico_edit_inactive" x="{areaheight}*1.15" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{current}++{searchactive}" imagetype="icon" path="ico_search_active" x="{areaheight}*1.7" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{searchactive}" imagetype="icon" path="ico_search_inactive" x="{areaheight}*1.7" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawtext x="{areaheight}*2.3" width="{areawidth}*0.7 - {areaheight}*2.4" y="0" font="{regular}" fontsize="40%" color="{clrWhite}" text="{timertitle}" />
|
||||||
|
<drawtext x="{areaheight}*2.3" y="40%" font="{light}" fontsize="30%" color="{clrWhite}" text="{weekday} {date} {starttime} - {stoptime}" />
|
||||||
|
<drawtext x="{areaheight}*2.3" y="70%" font="{light}" fontsize="30%" color="{clrWhite}" text="{channelname}, Transp. {transponder}" />
|
||||||
|
<drawrectangle x="70%" y="0" width="30%" height="100%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.7 + {timerstartpercent}*{areawidth}*0.3/100" y="30%" width="{timerwidthpercent}*{areawidth}*0.3/100" height="40%" color="{clrBlack}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timerconflict}" layer="7">
|
||||||
|
<drawrectangle x="{areawidth}*0.7 + {overlapstartpercent}*{areawidth}*0.3/100" y="0" width="{overlapwidthpercent}*{areawidth}*0.3/100" height="100%" color="{clrRedTrans}"/>
|
||||||
|
</area>
|
||||||
|
<!-- Event
|
||||||
|
{event} true
|
||||||
|
{title} title of event
|
||||||
|
{shorttext} shorttext of event
|
||||||
|
{starttime} start of event in hh:mm
|
||||||
|
{stoptime} end of event in hh:mm
|
||||||
|
{date} date of event in dd.mm.yy
|
||||||
|
{weekday} weekday of event, 3 letter abrivation
|
||||||
|
{channelnumber} number of channel
|
||||||
|
{channelname} name of channel
|
||||||
|
{channelid} id of channel
|
||||||
|
{channellogoexisis} true if channel logo exists
|
||||||
|
{hastimer} true if event has a timer
|
||||||
|
-->
|
||||||
|
<area condition="{event}" layer="6">
|
||||||
|
<drawimage condition="{current}" imagetype="icon" path="ico_info_active" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}" imagetype="icon" path="ico_info_inactive" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{channellogoexisis}" imagetype="channellogo" path="{channelid}" x="{areaheight}*0.8" valign="center" width="{areaheight}" height="{areaheight}" />
|
||||||
|
<drawtext x="{areaheight}*2.2" y="2" font="{light}" fontsize="30%" color="{clrWhite}" text="{weekday} {date} {starttime} - {stoptime} {channelname}" />
|
||||||
|
<drawtext x="{areaheight}*2.2" y="30%" width="{areawidth} - 3*{areaheight}" font="{regular}" fontsize="45%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtext x="{areaheight}*2.2" y="69%" width="{areawidth} - 3*{areaheight}" font="{light}" fontsize="30%" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
<drawimage condition="{current}++not{hastimer}" imagetype="icon" path="ico_record_active" x="{areawidth} - {areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}++not{hastimer}" imagetype="icon" path="ico_record_inactive" x="{areawidth} - {areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{hastimer}" imagetype="icon" path="ico_activetimer" x="{areawidth} - {areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
</area>
|
||||||
|
<!-- Recording
|
||||||
|
{recording} true
|
||||||
|
{recname} title of recording
|
||||||
|
{recstarttime} start of recording in hh:mm
|
||||||
|
{recdate} date of recording in dd.mm.yy
|
||||||
|
{recduration} duration of recording in min
|
||||||
|
{channelnumber} number of channel
|
||||||
|
{channelname} name of channel
|
||||||
|
{channelid} id of channel
|
||||||
|
{channellogoexisis} true if channel logo exists
|
||||||
|
-->
|
||||||
|
<area condition="{recording}" layer="6">
|
||||||
|
<drawtext x="1%" y="0" font="{light}" width="98%" fontsize="50%" color="{clrWhite}" text="{recname}" />
|
||||||
|
<drawtext x="55%" y="0" font="{light}" width="98%" fontsize="35%" color="{clrWhite}" text="{recdate} {recstarttime} - {recduration} min, {channelname}" />
|
||||||
|
</area>
|
||||||
|
<!-- Searchtimer
|
||||||
|
{searchtimer} true
|
||||||
|
{timeractive} true if searchtimer is active
|
||||||
|
{searchstring} searchtimer search string
|
||||||
|
{activetimers} number of active timers caused by this searchtimer
|
||||||
|
{recordingsdone} number of recordings done by this searchtimer
|
||||||
|
{searchactive} true if search icon is active
|
||||||
|
{editactive} true if edit icon is active
|
||||||
|
{deleteactive} true if delete icon is active
|
||||||
|
-->
|
||||||
|
<area condition="{searchtimer}" layer="6">
|
||||||
|
<drawimage condition="{current}++{searchactive}" imagetype="icon" path="ico_search_active" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{searchactive}" imagetype="icon" path="ico_search_inactive" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{current}++{editactive}" imagetype="icon" path="ico_edit_active" x="{areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{editactive}" imagetype="icon" path="ico_edit_inactive" x="{areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{current}++{deleteactive}" imagetype="icon" path="ico_delete_active" x="{areaheight}*1.15" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{deleteactive}" imagetype="icon" path="ico_delete_inactive" x="{areaheight}*1.15" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawtext x="{areaheight}*1.8" width="{areawidth} - {areaheight}*2" y="5%" font="{regular}" fontsize="45%" color="{clrWhite}" text="{searchstring}" />
|
||||||
|
<drawtext condition="{timeractive}" align="right" y="5%" font="{regular}" fontsize="35%" color="{clrWhite}" text="active " />
|
||||||
|
<drawtext x="{areaheight}*1.8" y="55%" font="{light}" fontsize="35%" color="{clrWhite}" text="Active Timers: {activetimers}, Recordings: {recordingsdone}" />
|
||||||
|
</area>
|
||||||
|
<!-- Timeline Header
|
||||||
|
{timelineheader} true
|
||||||
|
{date} date of current day in weekdayname dd.mm.yyyy
|
||||||
|
{timerset} true if timer info is set
|
||||||
|
{channelname} name of channel of timer
|
||||||
|
{channelid} channel ID of channel of timer
|
||||||
|
{channellogoexisis} true if channel logo exists
|
||||||
|
{channelnumber} number of channel of timer
|
||||||
|
{channeltransponder} transponder of channel of timer
|
||||||
|
{timerstart} start of timer in hh:mm
|
||||||
|
{timerstop} end of timer in hh:mm
|
||||||
|
{eventtitle} title of according event
|
||||||
|
{eventshorttext} short text of according event
|
||||||
|
{eventstart} start time of according event
|
||||||
|
{eventstop} end time of according event
|
||||||
|
-->
|
||||||
|
<area condition="{timelineheader}" layer="5">
|
||||||
|
<drawtext align="center" y="1%" font="{regular}" fontsize="35%" color="{clrWhite}" text="Timer for {date}" />
|
||||||
|
<drawrectangle x="{areawidth}*0.05" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.0875" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.125" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.1625" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.2" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.2375" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.275" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.3125" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.35" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.3875" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.425" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.4625" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.5" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.5375" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.575" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.6125" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.65" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.6875" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.725" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.7625" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.8" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.8375" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.875" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.9125" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timelineheader}" layer="6">
|
||||||
|
<drawtext name="text0" x="{areawidth}*0.05 + {areawidth}*0.0375/2 - {width(text0)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="0"/>
|
||||||
|
<drawtext name="text1" x="{areawidth}*0.0875 + {areawidth}*0.0375/2 - {width(text1)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="1"/>
|
||||||
|
<drawtext name="text2" x="{areawidth}*0.125 + {areawidth}*0.0375/2 - {width(text2)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="2"/>
|
||||||
|
<drawtext name="text3" x="{areawidth}*0.1625 + {areawidth}*0.0375/2 - {width(text3)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="3"/>
|
||||||
|
<drawtext name="text4" x="{areawidth}*0.2 + {areawidth}*0.0375/2 - {width(text4)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="4"/>
|
||||||
|
<drawtext name="text5" x="{areawidth}*0.2375 + {areawidth}*0.0375/2 - {width(text5)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="5"/>
|
||||||
|
<drawtext name="text6" x="{areawidth}*0.275 + {areawidth}*0.0375/2 - {width(text6)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="6"/>
|
||||||
|
<drawtext name="text7" x="{areawidth}*0.3125 + {areawidth}*0.0375/2 - {width(text7)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="7"/>
|
||||||
|
<drawtext name="text8" x="{areawidth}*0.35 + {areawidth}*0.0375/2 - {width(text8)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="8"/>
|
||||||
|
<drawtext name="text9" x="{areawidth}*0.3875 + {areawidth}*0.0375/2 - {width(text9)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="9"/>
|
||||||
|
<drawtext name="text10" x="{areawidth}*0.425 + {areawidth}*0.0375/2 - {width(text10)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="10"/>
|
||||||
|
<drawtext name="text11" x="{areawidth}*0.4625 + {areawidth}*0.0375/2 - {width(text11)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="11"/>
|
||||||
|
<drawtext name="text12" x="{areawidth}*0.5 + {areawidth}*0.0375/2 - {width(text12)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="12"/>
|
||||||
|
<drawtext name="text13" x="{areawidth}*0.5375 + {areawidth}*0.0375/2 - {width(text13)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="13"/>
|
||||||
|
<drawtext name="text14" x="{areawidth}*0.575 + {areawidth}*0.0375/2 - {width(text14)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="14"/>
|
||||||
|
<drawtext name="text15" x="{areawidth}*0.6125 + {areawidth}*0.0375/2 - {width(text15)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="15"/>
|
||||||
|
<drawtext name="text16" x="{areawidth}*0.65 + {areawidth}*0.0375/2 - {width(text16)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="16"/>
|
||||||
|
<drawtext name="text17" x="{areawidth}*0.6875 + {areawidth}*0.0375/2 - {width(text17)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="17"/>
|
||||||
|
<drawtext name="text18" x="{areawidth}*0.725 + {areawidth}*0.0375/2 - {width(text18)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="18"/>
|
||||||
|
<drawtext name="text19" x="{areawidth}*0.7625 + {areawidth}*0.0375/2 - {width(text19)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="19"/>
|
||||||
|
<drawtext name="text20" x="{areawidth}*0.8 + {areawidth}*0.0375/2 - {width(text20)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="20"/>
|
||||||
|
<drawtext name="text21" x="{areawidth}*0.8375 + {areawidth}*0.0375/2 - {width(text21)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="21"/>
|
||||||
|
<drawtext name="text22" x="{areawidth}*0.875 + {areawidth}*0.0375/2 - {width(text22)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="22"/>
|
||||||
|
<drawtext name="text23" x="{areawidth}*0.9125 + {areawidth}*0.0375/2 - {width(text23)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="23"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timelineheader}++{timerset}" layer="6">
|
||||||
|
<drawimage condition="{channellogoexisis}" imagetype="channellogo" path="{channelid}" x="1%" y="30%" width="{areaheight}*0.5" height="{areaheight}*0.5" />
|
||||||
|
<drawtext condition="not{channellogoexisis}" x="1%" width="{areaheight}*0.7" y="40%" font="{light}" fontsize="20%" color="{clrWhite}" text="{channelname}"/>
|
||||||
|
<drawtext x="{areaheight}*0.8" y="36%" font="{light}" fontsize="25%" color="{clrWhite}" text="{eventstart} - {eventstop} (Rec. {timerstart} - {timerstop}), Transp. {channeltransponder}"/>
|
||||||
|
<drawtext x="{areaheight}*0.8" y="57%" width="{areawidth}-{areaheight}" font="{light}" fontsize="25%" color="{clrWhite}" text="{eventtitle} - {eventshorttext}"/>
|
||||||
|
</area>
|
||||||
|
<!-- Timeline Timer
|
||||||
|
{timelinetimer} true
|
||||||
|
{timerstart} start of timer in tenth percent of complete 24h width
|
||||||
|
{timerwidth} width of timer in tenth percent of complete 24h width
|
||||||
|
-->
|
||||||
|
<area condition="{timelinetimer}" layer="5">
|
||||||
|
<drawrectangle condition="{current}" x="5%" y="0" width="90%" height="100%" color="{clrBlueMenu}"/>
|
||||||
|
<drawrectangle condition="not{current}" x="5%" y="0" width="90%" height="100%" color="{clrGray}"/>
|
||||||
|
<drawrectangle x="5%" y="{areaheight}-1" width="90%" height="1" color="{clrBlack}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timelinetimer}" layer="6">
|
||||||
|
<drawrectangle x="{areawidth}*0.05 + {timerstart}*{areawidth}*0.9/1000" y="25%" width="{timerwidth}*{areawidth}*0.9/1000" height="50%" color="{clrBlack}"/>
|
||||||
|
</area>
|
||||||
|
<!-- Favorites
|
||||||
|
{favorite} true
|
||||||
|
{favdesc} description of favorite
|
||||||
|
-->
|
||||||
|
<area condition="{favorite}" layer="6">
|
||||||
|
<drawimage condition="{current}" imagetype="icon" path="ico_search_active" x="{areaheight}*0.1" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}" imagetype="icon" path="ico_search_inactive" x="{areaheight}*0.1" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawtext x="{areaheight}" valign="center" font="{light}" width="{areawidth} - {areaheight}" fontsize="80%" color="{clrWhite}" text="{favdesc}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
</displayplugin>
|
@ -1,45 +1,270 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE displayplugin SYSTEM "../../../dtd/displayplugin.dtd">
|
<!DOCTYPE displayplugin SYSTEM "../../../dtd/displayplugin.dtd">
|
||||||
|
|
||||||
<displayplugin x="0" y="0" width="100%" height="100%" fadetime="0" scaletvx="70%" scaletvy="0" scaletvwidth="30%" scaletvheight="15%">
|
<displayplugin x="0" y="0" width="100%" height="100%" fadetime="0" scaletvx="0.625*{areawidth}" scaletvy="1%" scaletvwidth="18%" scaletvheight="18%">
|
||||||
|
|
||||||
<viewelement name="background">
|
<viewelement name="background_hor">
|
||||||
<area x="0" y="20%" width="100%" height="65%" layer="1">
|
<area x="0" y="0" width="100%" height="20%" layer="1">
|
||||||
<fill color="{clrGray}" />
|
<drawimage imagetype="skinpart" path="tvguideheader" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="5%" y="20%" width="8%" height="5%" layer="1">
|
||||||
|
<drawimage imagetype="skinpart" path="tvguide_timelinegrid_dark_hor" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="74%" y="0" width="26%" height="46%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="displaymenucorner" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="{areawidth}*0.865" y="{areawidth}*0.005" width="13%" height="{areawidth}*0.13" layer="3">
|
||||||
|
<drawimage imagetype="skinpart" path="watchback" x="0" y="0" width="100%" height="100%"/>
|
||||||
</area>
|
</area>
|
||||||
</viewelement>
|
</viewelement>
|
||||||
|
|
||||||
|
<viewelement name="background_ver">
|
||||||
|
<area x="0" y="0" width="100%" height="20%" layer="1">
|
||||||
|
<drawimage imagetype="skinpart" path="tvguideheader" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="0" y="20%" width="8%" height="15%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="tvguide_timelinegrid_dark_ver" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="74%" y="0" width="26%" height="46%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="displaymenucorner" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="{areawidth}*0.865" y="{areawidth}*0.005" width="13%" height="{areawidth}*0.13" layer="3">
|
||||||
|
<drawimage imagetype="skinpart" path="watchback" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Tokens available in Header
|
||||||
|
{isdummy} true if active element is a dummy element
|
||||||
|
{title} title of event of active grid
|
||||||
|
{shorttext} shorttext of event of active grid
|
||||||
|
{description} detailed description of event of active grid
|
||||||
|
{start} event start time in hh::mm
|
||||||
|
{stop} event stop time
|
||||||
|
{day} day of event of active grid
|
||||||
|
{date} date of event of active grid in dd.mm.yy
|
||||||
|
{daynumeric} day as number
|
||||||
|
{month} month as number
|
||||||
|
{year} year as number
|
||||||
|
{running} true if event is currently running
|
||||||
|
{elapsed} elapsed time of event, if not running 0
|
||||||
|
{duration} duration of event
|
||||||
|
{durationhours} duration, full hours
|
||||||
|
{durationminutes} duration, rest of minutes
|
||||||
|
{channelname} Channel Name
|
||||||
|
{channelnumber} Channel Number
|
||||||
|
{channelid} ChannelID as path to display channel logo
|
||||||
|
{channellogoexists} true if channel logo exists
|
||||||
|
{hasposter} true if a scraped poster is available for this element
|
||||||
|
{posterwidth} width of scraped poster
|
||||||
|
{posterheight} height of scraped poster
|
||||||
|
{posterpath} absolute path of scraped poster
|
||||||
|
-->
|
||||||
<viewelement name="header">
|
<viewelement name="header">
|
||||||
<area x="0" y="0" width="70%" height="15%" layer="1">
|
<areascroll condition="not{isdummy}++not{hasposter}" orientation="vertical" mode="forthandback" delay="1000" scrollspeed="medium" x="1%" y="1%" width="58%" height="18%" layer="2">
|
||||||
<fill color="{clrRed}" />
|
<drawtext x="0" y="0" font="{semibold}" width="100%" fontsize="20%" color="{clrWhite}" text="{day} {daynumeric}.{month} {start} - {stop}" />
|
||||||
|
<drawtext x="0" y="20%" font="{semibold}" width="100%" fontsize="25%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtextbox name="shorttext" x="0" y="45%" width="100%" font="{regular}" fontsize="15%" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
<drawtextbox x="0" y="{posy(shorttext)} + {height(shorttext)}" width="100%" font="{regular}" fontsize="15%" color="{clrWhite}" text="{description}" />
|
||||||
|
</areascroll>
|
||||||
|
<area condition="not{isdummy}++{hasposter}" x="1%" y="1%" width="{areaheight}*0.18*{posterwidth}/{posterheight}" height="18%" layer="2">
|
||||||
|
<drawimage imagetype="image" path="{posterpath}" x="0" y="0" width="100%" height="100%"/>
|
||||||
</area>
|
</area>
|
||||||
<area x="0" y="0" width="70%" height="20%" layer="2">
|
<areascroll condition="not{isdummy}++{hasposter}" orientation="vertical" mode="forthandback" delay="1000" scrollspeed="medium" x="12%" y="1%" width="46%" height="18%" layer="2">
|
||||||
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{headertext}" />
|
<drawtext x="0" y="0" font="{semibold}" width="100%" fontsize="20%" color="{clrWhite}" text="{day} {daynumeric}.{month} {start} - {stop}" />
|
||||||
|
<drawtext x="0" y="20%" font="{semibold}" width="100%" fontsize="25%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtextbox name="shorttext" x="0" y="45%" width="100%" font="{regular}" fontsize="15%" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
<drawtextbox x="0" y="{posy(shorttext)} + {height(shorttext)}" width="100%" font="{regular}" fontsize="15%" color="{clrWhite}" text="{description}" />
|
||||||
|
</areascroll>
|
||||||
|
<area condition="{isdummy}" x="1%" y="1%" width="58%" height="18%" layer="2">
|
||||||
|
<drawtext x="0" y="20%" font="{semibold}" width="100%" fontsize="35%" color="{clrWhite}" text="{title}" />
|
||||||
</area>
|
</area>
|
||||||
</viewelement>
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Available Variables Footer:
|
||||||
|
{red1} true if red button is button 1
|
||||||
|
{red2} true if red button is button 2
|
||||||
|
{red3} true if red button is button 3
|
||||||
|
{red4} true if red button is button 4
|
||||||
|
{green1} true if green button is button 1
|
||||||
|
{green2} true if green button is button 2
|
||||||
|
{green3} true if green button is button 3
|
||||||
|
{green4} true if green button is button 4
|
||||||
|
{yellow1} true if yellow button is button 1
|
||||||
|
{yellow2} true if yellow button is button 2
|
||||||
|
{yellow3} true if yellow button is button 3
|
||||||
|
{yellow4} true if yellow button is button 4
|
||||||
|
{blue1} true if blue button is button 1
|
||||||
|
{blue2} true if blue button is button 2
|
||||||
|
{blue3} true if blue button is button 3
|
||||||
|
{blue4} true if blue button is button 4
|
||||||
|
{red} label of red button
|
||||||
|
{green} label of green button
|
||||||
|
{yellow} label of yellow button
|
||||||
|
{blue} label of blue button
|
||||||
|
-->
|
||||||
<viewelement name="footer">
|
<viewelement name="footer">
|
||||||
<area x="0" y="85%" width="100%" height="15%" layer="1">
|
<area condition="{red1}" x="0" y="90%" width="25%" height="10%" layer="2">
|
||||||
<fill color="{clrBlue}" />
|
<drawimage imagetype="skinpart" path="buttonred" align="center" valign="center" width="90%" height="60%"/>
|
||||||
</area>
|
</area>
|
||||||
<area x="0" y="85%" width="100%" height="15%" layer="2">
|
<area condition="{red1}" x="0" y="90%" width="25%" height="10%" layer="3">
|
||||||
<drawtext align="center" valign="center" font="{regular}" fontsize="60%" color="{clrWhite}" text="{footertext}" />
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{red}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{green1}" x="0" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttongreen" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{green1}" x="0" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{green}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow1}" x="0" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonyellow" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow1}" x="0" y="90%" width="25%" height="10%" layer="4">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{blue1}" x="0" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonblue" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{blue1}" x="0" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{blue}" />
|
||||||
|
</area>
|
||||||
|
|
||||||
|
<area condition="{red2}" x="25%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonred" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{red2}" x="25%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{red}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{green2}" x="25%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttongreen" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{green2}" x="25%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{green}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow2}" x="25%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonyellow" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow2}" x="25%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{blue2}" x="25%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonblue" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{blue2}" x="25%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{blue}" />
|
||||||
|
</area>
|
||||||
|
|
||||||
|
<area condition="{red3}" x="50%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonred" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{red3}" x="50%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{red}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{green3}" x="50%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttongreen" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{green3}" x="50%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{green}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow3}" x="50%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonyellow" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow3}" x="50%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{blue3}" x="50%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonblue" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{blue3}" x="50%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{blue}" />
|
||||||
|
</area>
|
||||||
|
|
||||||
|
<area condition="{red4}" x="75%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonred" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{red4}" x="75%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{red}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{green4}" x="75%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttongreen" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{green4}" x="60%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{green}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow4}" x="75%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonyellow" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{yellow4}" x="75%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{blue4}" x="75%" y="90%" width="25%" height="10%" layer="2">
|
||||||
|
<drawimage imagetype="skinpart" path="buttonblue" align="center" valign="center" width="90%" height="60%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{blue4}" x="75%" y="90%" width="25%" height="10%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{blue}" />
|
||||||
</area>
|
</area>
|
||||||
</viewelement>
|
</viewelement>
|
||||||
|
|
||||||
<viewelement name="datetimeline">
|
<!-- Available Variables time:
|
||||||
<area x="0" y="15%" width="15%" height="5%" layer="1">
|
{time} timestring in hh:mm
|
||||||
<fill color="{clrBlack}" />
|
{sec} current seconds
|
||||||
|
{min} current minutes
|
||||||
|
{hour} current hours
|
||||||
|
{hmins} current "hourminutes" to display an hour hand
|
||||||
|
-->
|
||||||
|
<viewelement name="time">
|
||||||
|
<area x="81%" y="0" width="7%" height="5%" layer="3">
|
||||||
|
<drawtext x="0" valign="center" font="{digital}" fontsize="90%" color="{clrWhite}" text="{time}" />
|
||||||
</area>
|
</area>
|
||||||
<area x="0" y="15%" width="15%" height="5%" layer="2">
|
<area x="{areawidth}*0.865" y="{areawidth}*0.005" width="13%" height="{areawidth}*0.13" layer="4">
|
||||||
<drawtext align="center" valign="center" font="{regular}" fontsize="80%" color="{clrWhite}" text="{date}" />
|
<drawimage imagetype="skinpart" path="watchhands/s_{sec}" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="{areawidth}*0.865" y="{areawidth}*0.005" width="13%" height="{areawidth}*0.13" layer="4">
|
||||||
|
<drawimage imagetype="skinpart" path="watchhands/m_{min}" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area x="{areawidth}*0.865" y="{areawidth}*0.005" width="13%" height="{areawidth}*0.13" layer="5">
|
||||||
|
<drawimage imagetype="skinpart" path="watchhands/h_{hmins}" x="0" y="0" width="100%" height="100%"/>
|
||||||
</area>
|
</area>
|
||||||
</viewelement>
|
</viewelement>
|
||||||
|
|
||||||
<grid debug="true" name="timeline" x="15%" y="15%" width="85%" height="5%">
|
<!-- Tokens available in datetimeline
|
||||||
|
{weekday} weekday of current display
|
||||||
|
{date} date of current display
|
||||||
|
-->
|
||||||
|
<viewelement name="datetimeline_hor">
|
||||||
|
<area x="0" y="20%" width="13%" height="5%" layer="2">
|
||||||
|
<drawtext align="center" valign="center" font="{light}" fontsize="70%" color="{clrWhite}" text="{weekday} {date}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<viewelement name="datetimeline_ver">
|
||||||
|
<area x="0" y="20%" width="8%" height="15%" layer="2">
|
||||||
|
<drawtext align="center" y="10%" font="{light}" fontsize="40%" color="{clrWhite}" text="{weekday}" />
|
||||||
|
<drawtext align="center" y="50%" font="{light}" fontsize="40%" color="{clrWhite}" text="{date}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Tokens available in timeindicator
|
||||||
|
{percenttotal} position of current time indicator in tenth of a percent of complete time shown
|
||||||
|
-->
|
||||||
|
<viewelement name="timeindicator_hor">
|
||||||
|
<area x="13%" y="20%" width="87%" height="70%" layer="3">
|
||||||
|
<drawrectangle x="{percenttotal}*{areawidth}/1000" y="0" width="1" height="100%" color="{clrRed}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<viewelement name="timeindicator_ver">
|
||||||
|
<area x="0" y="35%" width="100%" height="55%" layer="3">
|
||||||
|
<drawrectangle x="0" y="{percenttotal}*{areaheight}/1000" width="100%" height="1" color="{clrRed}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Tokens available in timeline
|
||||||
|
{timestring} time of grid in hh:mm
|
||||||
|
-->
|
||||||
|
<grid name="timeline_hor" x="13%" y="20%" width="87%" height="5%">
|
||||||
<area layer="1">
|
<area layer="1">
|
||||||
<fill condition="{fullhour}" color="{clrWhite}" />
|
<drawimage condition="{fullhour}" imagetype="skinpart" path="tvguide_timelinegrid_bright_hor" x="0" y="0" width="100%" height="100%"/>
|
||||||
<fill condition="not{fullhour}" color="{clrBlack}" />
|
<drawimage condition="not{fullhour}" imagetype="skinpart" path="tvguide_timelinegrid_dark_hor" x="0" y="0" width="100%" height="100%"/>
|
||||||
</area>
|
</area>
|
||||||
<area layer="2">
|
<area layer="2">
|
||||||
<drawtext condition="{fullhour}" x="5%" valign="center" font="{light}" fontsize="80%" color="{clrBlack}" text="{timestring}" />
|
<drawtext condition="{fullhour}" x="5%" valign="center" font="{light}" fontsize="80%" color="{clrBlack}" text="{timestring}" />
|
||||||
@ -47,26 +272,122 @@
|
|||||||
</area>
|
</area>
|
||||||
</grid>
|
</grid>
|
||||||
|
|
||||||
<grid debug="true" name="channels" x="0" y="20%" width="15%" height="65%">
|
<grid name="timeline_ver" x="0" y="35%" width="8%" height="55%">
|
||||||
<area layer="1">
|
<area layer="1">
|
||||||
<fill color="{clrYellow}" />
|
<drawimage condition="{fullhour}" imagetype="skinpart" path="tvguide_timelinegrid_bright_ver" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
<drawimage condition="not{fullhour}" imagetype="skinpart" path="tvguide_timelinegrid_dark_ver" x="0" y="0" width="100%" height="100%"/>
|
||||||
</area>
|
</area>
|
||||||
<area layer="2">
|
<area layer="2">
|
||||||
<drawtext x="1%" valign="center" width="98%" font="{light}" fontsize="40%" color="{clrWhite}" text="{number} {name}" />
|
<drawtext condition="{fullhour}" align="center" y="5%" font="{light}" fontsize="60%" color="{clrBlack}" text="{timestring}" />
|
||||||
|
<drawtext condition="not{fullhour}" align="center" y="5%" font="{light}" fontsize="60%" color="{clrWhite}" text="{timestring}" />
|
||||||
</area>
|
</area>
|
||||||
</grid>
|
</grid>
|
||||||
|
|
||||||
<grid name="schedules" x="15%" y="20%" width="85%" height="65%">
|
<!-- Tokens available in channels
|
||||||
|
{name} name of channel
|
||||||
|
{number} number of channel
|
||||||
|
{channelid} id of channel to display channel logo
|
||||||
|
{channellogoexists} true if channel logo exists
|
||||||
|
-->
|
||||||
|
<grid name="channels_hor" x="5%" y="25%" width="8%" height="65%">
|
||||||
<area layer="1">
|
<area layer="1">
|
||||||
<fill condition="{color}++not{current}" color="{clrBlue}" />
|
<drawimage imagetype="skinpart" path="tvguide_grid_active_hor" x="0" y="0" width="100%" height="100%"/>
|
||||||
<fill condition="not{color}++not{current}" color="{clrGreen}" />
|
|
||||||
<fill condition="{current}" color="{clrRed}" />
|
|
||||||
</area>
|
</area>
|
||||||
<area layer="2">
|
<area layer="2">
|
||||||
<drawtext condition="not{dummy}" x="1%" y="5%" width="98%" font="{light}" fontsize="30%" color="{clrWhite}" text="{start} - {stop}" />
|
<drawtext x="1%" valign="center" font="{light}" fontsize="45%" color="{clrWhite}" text="{number}" />
|
||||||
<drawtext condition="not{dummy}" x="1%" y="50%" width="98%" font="{light}" fontsize="30%" color="{clrWhite}" text="{title}" />
|
<drawimage condition="{channellogoexists}" imagetype="channellogo" path="{channelid}" x="19%" valign="center" width="80%" height="80%" />
|
||||||
<drawtext condition="{dummy}" x="1%" valign="center" width="98%" font="{light}" fontsize="40%" color="{clrWhite}" text="{title}" />
|
<drawtext condition="not{channellogoexists}" x="19%" valign="center" width="94%" font="{light}" fontsize="45%" color="{clrWhite}" text="{name}" />
|
||||||
</area>
|
</area>
|
||||||
</grid>
|
</grid>
|
||||||
|
|
||||||
|
<grid name="channels_ver" x="8%" y="25%" width="92%" height="10%">
|
||||||
|
<area layer="1">
|
||||||
|
<drawimage imagetype="skinpart" path="tvguide_grid_active_ver" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area layer="2">
|
||||||
|
<drawimage condition="{channellogoexists}" imagetype="channellogo" path="{channelid}" align="center" valign="center" width="80%" height="80%" />
|
||||||
|
<drawtext condition="not{channellogoexists}" align="center" valign="center" width="98%" font="{light}" fontsize="30%" color="{clrWhite}" text="{name}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<!-- Tokens available in channelgroups
|
||||||
|
{color} alternates grid by grid from true to false
|
||||||
|
{group} name of channel group
|
||||||
|
-->
|
||||||
|
<grid name="channelgroups_hor" x="0" y="25%" width="5%" height="65%">
|
||||||
|
<area layer="1">
|
||||||
|
<drawimage condition="{color}" imagetype="skinpart" path="tvguide_grid_bright_ver" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
<drawimage condition="not{color}" imagetype="skinpart" path="tvguide_grid_dark_ver" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area layer="2">
|
||||||
|
<drawtextvertical align="center" valign="center" font="{regular}" fontsize="50%" color="{clrWhite}" text="{group}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<grid name="channelgroups_ver" x="8%" y="20%" width="92%" height="5%">
|
||||||
|
<area layer="1">
|
||||||
|
<drawimage condition="{color}" imagetype="skinpart" path="tvguide_grid_bright_hor" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
<drawimage condition="not{color}" imagetype="skinpart" path="tvguide_grid_dark_hor" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area layer="2">
|
||||||
|
<drawtext align="center" valign="center" font="{regular}" fontsize="80%" color="{clrWhite}" text="{group}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<!-- Tokens available in schedules
|
||||||
|
{color} alternates grid by grid from true to false
|
||||||
|
{dummy} true if grid is a dummy grid
|
||||||
|
{timer} true if a timer is set for the according event
|
||||||
|
{switchtimer} true if a switchtimer is set for the according event
|
||||||
|
{title} title of grid
|
||||||
|
{shorttext} shorttext of grid
|
||||||
|
{start} start time in hh:mm
|
||||||
|
{stop} stop time in hh:dd
|
||||||
|
-->
|
||||||
|
<grid name="schedules_hor" x="13%" y="25%" width="87%" height="65%">
|
||||||
|
<area layer="1">
|
||||||
|
<drawimage condition="{color}++not{current}" imagetype="skinpart" path="tvguide_grid_bright_hor" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
<drawimage condition="not{color}++not{current}" imagetype="skinpart" path="tvguide_grid_dark_hor" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
<drawimage condition="{current}" imagetype="skinpart" path="tvguide_grid_active_hor" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area layer="2">
|
||||||
|
<drawtext condition="not{dummy}" x="1%" y="2%" width="98%" font="{light}" fontsize="45%" color="{clrWhite}" text="{start} - {stop}" />
|
||||||
|
<drawtext condition="not{dummy}" x="1%" y="50%" width="98%" font="{regular}" fontsize="50%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtext condition="{dummy}" x="1%" valign="center" width="98%" font="{regular}" fontsize="50%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawimage condition="{timer}" imagetype="icon" path="ico_rec_on" x="{areawidth} - {areaheight}*0.42" y="58%" width="{areaheight}*0.4" height="{areaheight}*0.4"/>
|
||||||
|
<drawimage condition="{switchtimer}++not{timer}" imagetype="icon" path="ico_switchtimer" x="{areawidth} - {areaheight}*0.42" y="58%" width="{areaheight}*0.4" height="{areaheight}*0.4"/>
|
||||||
|
<drawimage condition="{switchtimer}++{timer}" imagetype="icon" path="ico_switchtimer" x="{areawidth} - {areaheight}*0.84" y="58%" width="{areaheight}*0.4" height="{areaheight}*0.4"/>
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<grid name="schedules_ver" x="8%" y="35%" width="92%" height="55%">
|
||||||
|
<area layer="1">
|
||||||
|
<drawimage condition="{color}++not{current}" imagetype="skinpart" path="tvguide_grid_bright_ver" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
<drawimage condition="not{color}++not{current}" imagetype="skinpart" path="tvguide_grid_dark_ver" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
<drawimage condition="{current}" imagetype="skinpart" path="tvguide_grid_active_ver" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area layer="2">
|
||||||
|
<drawtext condition="not{dummy}" x="2%" y="0" width="96%" font="{light}" fontsize="{areawidth}*0.16" color="{clrWhite}" text="{start} - {stop}" />
|
||||||
|
<drawtextbox name="title" condition="not{dummy}" x="2%" y="{areawidth}*0.16" width="96%" font="{regular}" fontsize="{areawidth}*0.15" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtextbox condition="not{dummy}" x="2%" y="{posy(title)} + {height(title)} - {areawidth}*0.1" width="96%" height="{areaheight}*1.1 - {posy(title)} - {height(title)}" font="{light}" fontsize="{areawidth}*0.12" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
<drawtextbox condition="{dummy}" x="2%" y="5%" width="96%" font="{regular}" fontsize="{areawidth}*0.2" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawimage condition="{timer}" imagetype="icon" path="ico_rec_on" x="82%" y="{areaheight}-{areawidth}*0.18" width="15%" height="{areawidth}*0.15"/>
|
||||||
|
<drawimage condition="{switchtimer}++not{timer}" imagetype="icon" path="ico_switchtimer" x="82%" y="{areaheight}-{areawidth}*0.18" width="15%" height="{areawidth}*0.15"/>
|
||||||
|
<drawimage condition="{switchtimer}++{timer}" imagetype="icon" path="ico_switchtimer" x="65%" y="{areaheight}-{areawidth}*0.18" width="15%" height="{areawidth}*0.15"/>
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<!-- Tokens available in channeljump
|
||||||
|
{channel} current user input for channel jump
|
||||||
|
-->
|
||||||
|
<viewelement name="channeljump">
|
||||||
|
<area x="40%" y="40%" width="20%" height="20%" layer="3">
|
||||||
|
<fill color="{clrBlack}" />
|
||||||
|
</area>
|
||||||
|
<area x="40%" y="40%" width="20%" height="20%" layer="4">
|
||||||
|
<drawtext align="center" y="10%" font="{bold}" fontsize="30%" color="{clrWhite}" text="Channel" />
|
||||||
|
<drawtext align="center" y="45%" font="{light}" fontsize="50%" color="{clrWhite}" text="{channel}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
</displayplugin>
|
</displayplugin>
|
||||||
|
76
skins/metrixhd/themes/default/icons/ico_switchtimer.svg
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="45"
|
||||||
|
height="23"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre2 r13516"
|
||||||
|
viewBox="0 0 45 23"
|
||||||
|
sodipodi:docname="ico_switchtimer.svg">
|
||||||
|
<defs
|
||||||
|
id="defs4" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="5.6"
|
||||||
|
inkscape:cx="13.069196"
|
||||||
|
inkscape:cy="16.082332"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1846"
|
||||||
|
inkscape:window-height="1058"
|
||||||
|
inkscape:window-x="66"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-1029.3622)">
|
||||||
|
<rect
|
||||||
|
style="fill:#ff7f2a;fill-opacity:1;stroke:#ececec;stroke-width:0;stroke-miterlimit:5.69999981;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4148"
|
||||||
|
width="45"
|
||||||
|
height="23"
|
||||||
|
x="4.9999999e-006"
|
||||||
|
y="1029.3622"
|
||||||
|
ry="8.9285717" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="1.4285712"
|
||||||
|
y="1045.0408"
|
||||||
|
id="text4150"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4152"
|
||||||
|
x="1.4285712"
|
||||||
|
y="1045.0408">Switch</tspan></text>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
@ -10,6 +10,7 @@
|
|||||||
<color name="clrGreen">FF5FE200</color>
|
<color name="clrGreen">FF5FE200</color>
|
||||||
<color name="clrYellow">FFE2DA00</color>
|
<color name="clrYellow">FFE2DA00</color>
|
||||||
<color name="clrBlue">FF007FE2</color>
|
<color name="clrBlue">FF007FE2</color>
|
||||||
|
<color name="clrBlack">FF000000</color>
|
||||||
<color name="clrTransBlack">C0000000</color>
|
<color name="clrTransBlack">C0000000</color>
|
||||||
<color name="clrSemiTransBlack">D0000000</color>
|
<color name="clrSemiTransBlack">D0000000</color>
|
||||||
<color name="clrBlueLight">FF1E8BD7</color>
|
<color name="clrBlueLight">FF1E8BD7</color>
|
||||||
@ -17,6 +18,7 @@
|
|||||||
<color name="clrTransWhite">C0FFFFFF</color>
|
<color name="clrTransWhite">C0FFFFFF</color>
|
||||||
<color name="clrWhite">FFFFFFFF</color>
|
<color name="clrWhite">FFFFFFFF</color>
|
||||||
<color name="clrDarkGray">FF14141E</color>
|
<color name="clrDarkGray">FF14141E</color>
|
||||||
|
<color name="clrRedTrans">55FF0000</color>
|
||||||
<color name="clrTransparent">00000000</color>
|
<color name="clrTransparent">00000000</color>
|
||||||
</colors>
|
</colors>
|
||||||
<!--
|
<!--
|
||||||
|
365
skins/metrixhd/xmlfiles/plug-tvguideng-detail.xml
Normal file
@ -0,0 +1,365 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE displayplugin SYSTEM "../../../dtd/displayplugin.dtd">
|
||||||
|
|
||||||
|
<displayplugin x="0" y="0" width="100%" height="100%">
|
||||||
|
|
||||||
|
<viewelement name="background">
|
||||||
|
<area x="0" y="0" width="100%" height="100%" layer="1">
|
||||||
|
<fill color="{clrTransBlack}" />
|
||||||
|
</area>
|
||||||
|
<area x="0" y="0" width="100%" height="20%" layer="2">
|
||||||
|
<fill color="{clrTransBlueLight}" />
|
||||||
|
</area>
|
||||||
|
<area x="0" y="85%" width="100%" height="2" layer="3">
|
||||||
|
<fill color="{clrTransBlueLight}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Available Variables scrollbar:
|
||||||
|
{height} height of scrollbar in tenth of a percent of total height
|
||||||
|
{offset} offset in tenth of a percent of total height
|
||||||
|
-->
|
||||||
|
<scrollbar>
|
||||||
|
<area x="98%" y="20%" width="2%" height="65%" layer="3">
|
||||||
|
<fill color="{clrWhite}" />
|
||||||
|
<drawrectangle x="2" y="2" width="{areawidth} - 4" height="{areaheight} - 4" color="{clrTransparent}" />
|
||||||
|
<drawrectangle x="4" y="4 + {areaheight} * {offset} / 1000" width="{areawidth} - 8" height="{areaheight} * {height} / 1000 - 8" color="{clrWhite}" />
|
||||||
|
</area>
|
||||||
|
</scrollbar>
|
||||||
|
|
||||||
|
<!-- Available Variables Footer:
|
||||||
|
{red1} true if red button is button 1
|
||||||
|
{red2} true if red button is button 2
|
||||||
|
{red3} true if red button is button 3
|
||||||
|
{red4} true if red button is button 4
|
||||||
|
{green1} true if green button is button 1
|
||||||
|
{green2} true if green button is button 2
|
||||||
|
{green3} true if green button is button 3
|
||||||
|
{green4} true if green button is button 4
|
||||||
|
{yellow1} true if yellow button is button 1
|
||||||
|
{yellow2} true if yellow button is button 2
|
||||||
|
{yellow3} true if yellow button is button 3
|
||||||
|
{yellow4} true if yellow button is button 4
|
||||||
|
{blue1} true if blue button is button 1
|
||||||
|
{blue2} true if blue button is button 2
|
||||||
|
{blue3} true if blue button is button 3
|
||||||
|
{blue4} true if blue button is button 4
|
||||||
|
{red} label of red button
|
||||||
|
{green} label of green button
|
||||||
|
{yellow} label of yellow button
|
||||||
|
{blue} label of blue button
|
||||||
|
-->
|
||||||
|
<viewelement name="footer">
|
||||||
|
<area x="0" y="92%" width="25%" height="8%" layer="2">
|
||||||
|
<drawtext condition="{red1}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{red}" />
|
||||||
|
<drawrectangle condition="{red1}" x="0" y="0" width="10" height="100%" color="{clrRed}" />
|
||||||
|
<drawtext condition="{green1}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{green}" />
|
||||||
|
<drawrectangle condition="{green1}" x="0" y="0" width="10" height="100%" color="{clrGreen}" />
|
||||||
|
<drawtext condition="{yellow1}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
<drawrectangle condition="{yellow1}" x="0" y="0" width="10" height="100%" color="{clrYellow}" />
|
||||||
|
<drawtext condition="{blue1}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{blue}" />
|
||||||
|
<drawrectangle condition="{blue1}" x="0" y="0" width="10" height="100%" color="{clrBlue}" />
|
||||||
|
</area>
|
||||||
|
<area x="25%" y="92%" width="25%" height="8%" layer="2">
|
||||||
|
<drawtext condition="{red2}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{red}" />
|
||||||
|
<drawrectangle condition="{red2}" x="0" y="0" width="10" height="100%" color="{clrRed}" />
|
||||||
|
<drawtext condition="{green2}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{green}" />
|
||||||
|
<drawrectangle condition="{green2}" x="0" y="0" width="10" height="100%" color="{clrGreen}" />
|
||||||
|
<drawtext condition="{yellow2}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
<drawrectangle condition="{yellow2}" x="0" y="0" width="10" height="100%" color="{clrYellow}" />
|
||||||
|
<drawtext condition="{blue2}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{blue}" />
|
||||||
|
<drawrectangle condition="{blue2}" x="0" y="0" width="10" height="100%" color="{clrBlue}" />
|
||||||
|
</area>
|
||||||
|
<area x="50%" y="92%" width="25%" height="8%" layer="2">
|
||||||
|
<drawtext condition="{red3}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{red}" />
|
||||||
|
<drawrectangle condition="{red3}" x="0" y="0" width="10" height="100%" color="{clrRed}" />
|
||||||
|
<drawtext condition="{green3}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{green}" />
|
||||||
|
<drawrectangle condition="{green3}" x="0" y="0" width="10" height="100%" color="{clrGreen}" />
|
||||||
|
<drawtext condition="{yellow3}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
<drawrectangle condition="{yellow3}" x="0" y="0" width="10" height="100%" color="{clrYellow}" />
|
||||||
|
<drawtext condition="{blue3}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{blue}" />
|
||||||
|
<drawrectangle condition="{blue3}" x="0" y="0" width="10" height="100%" color="{clrBlue}" />
|
||||||
|
</area>
|
||||||
|
<area x="75%" y="92%" width="25%" height="8%" layer="2">
|
||||||
|
<drawtext condition="{red4}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{red}" />
|
||||||
|
<drawrectangle condition="{red4}" x="0" y="0" width="10" height="100%" color="{clrRed}" />
|
||||||
|
<drawtext condition="{green4}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{green}" />
|
||||||
|
<drawrectangle condition="{green4}" x="0" y="0" width="10" height="100%" color="{clrGreen}" />
|
||||||
|
<drawtext condition="{yellow4}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
<drawrectangle condition="{yellow4}" x="0" y="0" width="10" height="100%" color="{clrYellow}" />
|
||||||
|
<drawtext condition="{blue4}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{blue}" />
|
||||||
|
<drawrectangle condition="{blue4}" x="0" y="0" width="10" height="100%" color="{clrBlue}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Available Variables time:
|
||||||
|
{time} timestring in hh:mm
|
||||||
|
{sec} current seconds
|
||||||
|
{min} current minutes
|
||||||
|
{hour} current hours
|
||||||
|
{hmins} current "hourminutes" to display an hour hand
|
||||||
|
-->
|
||||||
|
<viewelement name="time">
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Available Variables in detailheader elements:
|
||||||
|
{title} title of event
|
||||||
|
{shorttext} shorttext of event
|
||||||
|
{start} event start time in hh::mm
|
||||||
|
{stop} event stop time
|
||||||
|
{day} Day of event as three letter abrivation
|
||||||
|
{date} date of current event in dd.mm.yy
|
||||||
|
{daynumeric} day as number
|
||||||
|
{month} month as number
|
||||||
|
{year} year as number
|
||||||
|
{running} true if event is currently running
|
||||||
|
{elapsed} elapsed time of event, if not running 0
|
||||||
|
{duration} duration of event
|
||||||
|
{durationhours} duration, full hours
|
||||||
|
{durationminutes} duration, rest of minutes
|
||||||
|
{vps} vps description string
|
||||||
|
{channelname} Channelname of event
|
||||||
|
{channelnumber} Channelnumber of event
|
||||||
|
{channellogoexists} true if a channel logo exists
|
||||||
|
{channelid} ChannelID as path to display channel logo
|
||||||
|
{ismovie} true if event is scraped as a movie
|
||||||
|
{isseries} true if event is scraped as a series
|
||||||
|
{posteravailable} true if a poster is available
|
||||||
|
{posterwidth} width of scraped poster
|
||||||
|
{posterheight} height of scraped poster
|
||||||
|
{posterpath} absolute path of scraped poster
|
||||||
|
{banneravailable} true if a banner is available
|
||||||
|
{bannerwidth} width of banner
|
||||||
|
{bannerheight} height of banner
|
||||||
|
{bannerpath} path of banner
|
||||||
|
{epgpicavailable} true if a epg picture is available
|
||||||
|
{epgpicpath} path of epg picture
|
||||||
|
-->
|
||||||
|
<viewelement name="header">
|
||||||
|
<area x="1%" y="0" width="98%" height="20%" layer="3">
|
||||||
|
<drawimage name="logo" imagetype="channellogo" path="{channelid}" x="0" width="15%" height="80%" valign="center" />
|
||||||
|
<drawimage condition="{isseries}++{banneravailable}++not{epgpicavailable}" imagetype="image" path="{bannerpath}" x="{areawidth} - {areawidth}/3 - 10" valign="center" width="{areawidth}/3" height="{areawidth}/3 * {bannerheight} / {bannerwidth}"/>
|
||||||
|
<drawimage condition="{ismovie}++{posteravailable}++not{epgpicavailable}" imagetype="image" path="{posterpath}" x="{areawidth} - {areaheight}*8/10" valign="center" width="{areaheight}*8 / 10 * {posterheight} / {posterwidth}" height="{areaheight}*8 / 10"/>
|
||||||
|
<drawimage condition="{epgpicavailable}" imagetype="image" path="{epgpicpath}" x="{areawidth} - {areaheight}*8/10 * 174 / 130" valign="center" width="{areaheight}*8/10 * 174 / 130" height="{areaheight}*8 / 10"/>
|
||||||
|
|
||||||
|
<drawtext name="title" x="{width(logo)} + 20" valign="center" font="{semibold}" fontsize="35%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtext name="datetime" x="{width(logo)} + 20" y="{posy(title)} - {height(datetime)}" font="{light}" fontsize="25%" color="{clrWhite}" text="{day} {date} {start} - {stop} ({duration} mins)" />
|
||||||
|
<drawtext name="shorttext" x="{width(logo)} + 20" y="{posy(title)} + {height(title)}" font="{light}" fontsize="25%" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Available Variables in tab elements:
|
||||||
|
{title} title of event
|
||||||
|
{shorttext} shorttext of event
|
||||||
|
{description} description of event
|
||||||
|
{start} event start time in hh::mm
|
||||||
|
{stop} event stop time
|
||||||
|
{day} Day of event as three letter abrivation
|
||||||
|
{date} date of current event in dd.mm.yy
|
||||||
|
{daynumeric} day as number
|
||||||
|
{month} month as number
|
||||||
|
{year} year as number
|
||||||
|
{running} true if event is currently running
|
||||||
|
{elapsed} elapsed time of event, if not running 0
|
||||||
|
{duration} duration of event
|
||||||
|
{durationhours} duration, full hours
|
||||||
|
{durationminutes} duration, rest of minutes
|
||||||
|
{vps} vps description string
|
||||||
|
{channellogoexists} true if a channel logo exists
|
||||||
|
{channelid} ChannelID as path to display channel logo
|
||||||
|
{hasreruns} true if reruns of this event are found
|
||||||
|
{reruns[]} array with reruns
|
||||||
|
{reruns[title]} title of rerun
|
||||||
|
{reruns[shorttext]} shorttext of rerun
|
||||||
|
{reruns[date]} date of rerun in dd:mm
|
||||||
|
{reruns[day]} short dayname of rerun
|
||||||
|
{reruns[start]} start time of rerun in hh:mm
|
||||||
|
{reruns[stop]} stop time of rerun in hh:mm
|
||||||
|
{reruns[channelname]} name of channel on which rerun occurs
|
||||||
|
{reruns[channelnumber]} number of channel on which rerun occurs
|
||||||
|
{reruns[channelid]} id of channel on which rerun occurs to display channel logo
|
||||||
|
{reruns[channellogoexists]} true if channel logo exists
|
||||||
|
{epgpic1avaialble} true if first epg picture is available
|
||||||
|
{epgpic2avaialble} true if first epg picture is available
|
||||||
|
{epgpic3avaialble} true if first epg picture is available
|
||||||
|
{epgpic1path} path of first epg picture
|
||||||
|
{epgpic2path} path of second epg picture
|
||||||
|
{epgpic3path} path of third epg picture
|
||||||
|
|
||||||
|
{ismovie} true if event is scraped as a movie
|
||||||
|
Available variables for movies:
|
||||||
|
{movietitle} movie title from themoviedb
|
||||||
|
{movieoriginalTitle} movie original title from themoviedb
|
||||||
|
{movietagline} movie tagline from themoviedb
|
||||||
|
{movieoverview} movie overview from themoviedb
|
||||||
|
{movieadult} true if movie is rated as adult
|
||||||
|
{moviebudget} movie budget from themoviedb in $
|
||||||
|
{movierevenue} movie revenue from themoviedb in $
|
||||||
|
{moviegenres} movie genres from themoviedb
|
||||||
|
{moviehomepage} movie homepage from themoviedb
|
||||||
|
{moviereleasedate} movie release date from themoviedb
|
||||||
|
{movieruntime} movie runtime from themoviedb
|
||||||
|
{moviepopularity} movie popularity from themoviedb
|
||||||
|
{movievoteaverage} movie vote average from themoviedb
|
||||||
|
{posterwidth} width of scraped poster
|
||||||
|
{posterheight} height of scraped poster
|
||||||
|
{posterpath} absolute path of scraped poster
|
||||||
|
{fanartwidth} width of scraped fanart
|
||||||
|
{fanartheight} height of scraped fanart
|
||||||
|
{fanartpath} absolute path of scraped fanart
|
||||||
|
{movieiscollection} true if movie is part of a collection
|
||||||
|
{moviecollectionName} name of movie collection
|
||||||
|
{collectionposterwidth} width of scraped collection poster
|
||||||
|
{collectionposterheight} height of scraped collection poster
|
||||||
|
{collectionposterpath} absolute path of scraped collection poster
|
||||||
|
{collectionfanartwidth} width of scraped collection fanart
|
||||||
|
{collectionfanartheight} height of scraped collection fanart
|
||||||
|
{collectionfanartpath} absolute path of scraped collection fanart
|
||||||
|
{actors[]} array with movie actors
|
||||||
|
{actors[name]} real name of actor
|
||||||
|
{actors[role]} actor role
|
||||||
|
{actors[thumb]} absolute path of scraped actor thumb
|
||||||
|
{actors[thumbwidth]} width of scraped actor thumb
|
||||||
|
{actors[thumbheight]} height of scraped actor thumb
|
||||||
|
|
||||||
|
{isseries} true if event is scraped as a series
|
||||||
|
Available variables for series:
|
||||||
|
{seriesname} name of series
|
||||||
|
{seriesoverview} series overview
|
||||||
|
{seriesfirstaired} first aired date
|
||||||
|
{seriesnetwork} network which produces series
|
||||||
|
{seriesgenre} series genre
|
||||||
|
{seriesrating} series thetvdb rating
|
||||||
|
{seriesstatus} status of series (running / finished)
|
||||||
|
{episodetitle} title of episode
|
||||||
|
{episodenumber} number of episode
|
||||||
|
{episodeseason} season of episode
|
||||||
|
{episodefirstaired} first aired date of episode
|
||||||
|
{episodegueststars} guest stars of episode
|
||||||
|
{episodeoverview} episode overview
|
||||||
|
{episoderating} user rating for episode
|
||||||
|
{episodeimagewidth} episode image width
|
||||||
|
{episodeimageheight} episode image height
|
||||||
|
{episodeimagepath} episode image path
|
||||||
|
{seasonposterwidth} episode season poster width
|
||||||
|
{seasonposterheight} episode season poster height
|
||||||
|
{seasonposterpath} episode season poster path
|
||||||
|
{seriesposter1width} width of 1st poster
|
||||||
|
{seriesposter1height} height of 1st poster
|
||||||
|
{seriesposter1path} path of 1st poster
|
||||||
|
{seriesposter2width} width of 2nd poster
|
||||||
|
{seriesposter2height} height of 2nd poster
|
||||||
|
{seriesposter2path} path of 2nd poster
|
||||||
|
{seriesposter3width} width of 3rd poster
|
||||||
|
{seriesposter3height} height of 3rd poster
|
||||||
|
{seriesposter3path} path of 3rd poster
|
||||||
|
{seriesfanart1width} width of 1st fanart
|
||||||
|
{seriesfanart1height} height of 1st fanart
|
||||||
|
{seriesfanart1path} path of 1st fanart
|
||||||
|
{seriesfanart2width} width of 2nd fanart
|
||||||
|
{seriesfanart2height} height of 2nd fanart
|
||||||
|
{seriesfanart2path} path of 2nd fanart
|
||||||
|
{seriesfanart3width} width of 3rd fanart
|
||||||
|
{seriesfanart3height} height of 3rd fanart
|
||||||
|
{seriesfanart3path} path of 3rd fanart
|
||||||
|
{seriesbanner1width} width of 1st banner
|
||||||
|
{seriesbanner1height} height of 1st banner
|
||||||
|
{seriesbanner1path} path of 1st banner
|
||||||
|
{seriesbanner2width} width of 2nd banner
|
||||||
|
{seriesbanner2height} height of 2nd banner
|
||||||
|
{seriesbanner2path} path of 2nd banner
|
||||||
|
{seriesbanner3width} width of 3rd banner
|
||||||
|
{seriesbanner3height} height of 3rd banner
|
||||||
|
{seriesbanner3path} path of 3rd fanart
|
||||||
|
{actors[]} array with movie actors
|
||||||
|
{actors[name]} real name of actor
|
||||||
|
{actors[role]} actor role
|
||||||
|
{actors[thumb]} absolute path of scraped actor thumb
|
||||||
|
{actors[thumbwidth]} width of scraped actor thumb
|
||||||
|
{actors[thumbheight]} height of scraped actor thumb
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- a tab is one scrolling area, just position and draw as inside a normal area -->
|
||||||
|
<!-- just define as many tabs as needed -->
|
||||||
|
|
||||||
|
<!-- TAB EPGINFO -->
|
||||||
|
<tab name="EPG Info" x="2%" y="20%" width="94%" height="65%" layer="2" scrollheight="{areaheight}/4">
|
||||||
|
<drawtextbox condition="not{isseries}++not{ismovie}" x="0" y="0" width="96%" font="{light}" fontsize="8%" color="{clrWhite}" text="{description}" />
|
||||||
|
<drawimage condition="{isseries}" name="seriesposter" imagetype="image" path="{seriesposter1path}" x="{areawidth}*0.75" y="0" width="{areawidth}*0.25" height="{areawidth} * 0.25 * {seriesposter1height} / {seriesposter1width}"/>
|
||||||
|
<drawimage condition="{ismovie}" name="movieposter" imagetype="image" path="{posterpath}" x="{areawidth}*0.75" y="0" width="{areawidth}*0.25" height="{areawidth} * 0.25 * {posterheight} / {posterwidth}" />
|
||||||
|
<drawtextbox condition="{isseries}" x="0" y="0" width="96%" float="topright" floatwidth="{width(seriesposter)} + 10" floatheight="{height(seriesposter)} + 20" font="{light}" fontsize="8%" color="{clrWhite}" text="{description}" />
|
||||||
|
<drawtextbox condition="{ismovie}" x="0" y="0" width="96%" float="topright" floatwidth="{width(movieposter)} + 10" floatheight="{height(movieposter)} + 20" font="{light}" fontsize="8%" color="{clrWhite}" text="{description}" />
|
||||||
|
</tab>
|
||||||
|
<!-- TAB RERUNS -->
|
||||||
|
<tab condition="{hasreruns}" name="{tr(reruns)}" x="2%" y="20%" width="94%" height="65%" layer="2" scrollheight="{areaheight}/4">
|
||||||
|
<drawtext align="center" y="0" name="title" font="{light}" fontsize="10%" color="{clrWhite}" text="{tr(rerunsof)} '{title}'" />
|
||||||
|
<loop name="reruns" x="0" y="{height(title)} + 10" width="{areawidth}" orientation="vertical">
|
||||||
|
<drawimage name="logo" condition="{reruns[channellogoexists]}" imagetype="channellogo" path="{reruns[channelid]}" x="0" width="10%" height="10%" />
|
||||||
|
<drawtext name="channelname" condition="not{reruns[channellogoexists]}" x="-5" font="{light}" fontsize="10%" color="{clrWhite}" text="{reruns[channelname]}" />
|
||||||
|
<drawtext condition="{reruns[channellogoexists]}" x="{width(logo)}+20" y="-5" width="{areawidth} - {width(logo)} - 20" font="{light}" fontsize="8%" color="{clrWhite}" text="{reruns[day]} {reruns[date]} {reruns[start]} - {reruns[stop]}: {reruns[title]} {reruns[shorttext]}" />
|
||||||
|
<drawtext condition="not{reruns[channellogoexists]}" x="{width(channelname)}+20" y="-5" width="{areawidth} - {width(logo)} - 20" font="{light}" fontsize="8%" color="{clrWhite}" text="{reruns[day]} {reruns[date]} {reruns[start]} - {reruns[stop]}: {reruns[title]} {reruns[shorttext]}" />
|
||||||
|
</loop>
|
||||||
|
</tab>
|
||||||
|
<!-- TAB ACTORS -->
|
||||||
|
<tab condition="{isseries}||{ismovie}" name="{tr(actors)}" x="2%" y="20%" width="94%" height="65%" layer="2" scrollheight="{areaheight}/4">
|
||||||
|
<drawtext align="center" name="title" y="0" font="{semibold}" fontsize="15%" color="{clrWhite}" text="{tr(actors)}" />
|
||||||
|
<loop name="actors" x="0" y="{height(title)} + 10" width="{areawidth}" orientation="horizontal" columnwidth="{areawidth}/5" rowheight="{areawidth}/5*1.8" overflow="linewrap">
|
||||||
|
<drawimage name="thumb" imagetype="image" path="{actors[thumb]}" x="20" y="0" width="{columnwidth}-40" height="{columnwidth} * {actors[thumbheight]} / {actors[thumbwidth]} - 40 * {actors[thumbheight]} / {actors[thumbwidth]}"/>
|
||||||
|
<drawtext align="center" y="{height(thumb)} + 10" width="{columnwidth}" name="actorname" font="{light}" fontsize="7%" color="{clrWhite}" text="{actors[name]}" />
|
||||||
|
<drawtext align="center" y="{height(thumb)} + 10 + {height(actorname)}" width="{columnwidth}" font="{light}" fontsize="7%" color="{clrWhite}" text="{actors[role]}" />
|
||||||
|
</loop>
|
||||||
|
</tab>
|
||||||
|
<!-- TAB TVDBINFO -->
|
||||||
|
<tab condition="{isseries}" name="TvDBInfo" x="2%" y="20%" width="94%" height="65%" layer="2" scrollheight="{areaheight}/4">
|
||||||
|
<drawimage name="banner" imagetype="image" path="{seriesbanner1path}" align="center" y="10" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesbanner1height} / {seriesbanner1width}"/>
|
||||||
|
<drawimage name="episodeimage" imagetype="image" path="{episodeimagepath}" x="{areawidth}*0.7" y="{height(banner)} + 20" width="{areawidth}*0.3" height="{areawidth} * 0.3 * {episodeimageheight} / {episodeimagewidth}"/>
|
||||||
|
<drawimage name="seasonposter" imagetype="image" path="{seasonposterpath}" x="{areawidth}*0.7" y="{height(banner)} + {height(episodeimage)} + 30" width="{areawidth}*0.3" height="{areawidth} * 0.3 * {seasonposterheight} / {seasonposterwidth}"/>
|
||||||
|
<drawtextbox x="0" y="{height(banner)} + 20" width="96%" float="topright" floatwidth="{width(seasonposter)} + 10" floatheight="{height(episodeimage)} + {height(seasonposter)} + 30" font="{light}" fontsize="8%" color="{clrWhite}" text="{tr(episode)}: {episodetitle} ({tr(season)} {episodeseason}, {tr(episode)} {episodenumber}) {episodeoverview}| {tr(gueststars)}: {episodegueststars}|| {tr(seriesfirstaired)}: {seriesfirstaired}|| {tr(episodefirstaired)}: {episodefirstaired}|| {tr(network)}: {seriesnetwork}|| {tr(genre)}: {seriesgenre}|| {tr(status)}: {seriesstatus}|| {tr(rating)}: {seriesrating}|| {tr(episoderating)}: {episoderating} |{seriesoverview} " />
|
||||||
|
</tab>
|
||||||
|
<!-- TAB SERIESGALERY -->
|
||||||
|
<tab condition="{isseries}" name="{tr(seriesgalery)}" x="2%" y="20%" width="94%" height="65%" layer="2" scrollheight="{areaheight}/4">
|
||||||
|
<drawimage name="banner1" imagetype="image" path="{seriesbanner1path}" align="center" y="10" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesbanner1height} / {seriesbanner1width}"/>
|
||||||
|
<drawimage name="fanart1" imagetype="image" path="{seriesfanart1path}" align="center" y="{posy(banner1)} + {height(banner1)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesfanart1height} / {seriesfanart1width}"/>
|
||||||
|
<drawimage name="banner2" imagetype="image" path="{seriesbanner2path}" align="center" y="{posy(fanart1)} + {height(fanart1)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesbanner2height} / {seriesbanner2width}"/>
|
||||||
|
<drawimage name="fanart2" imagetype="image" path="{seriesfanart2path}" align="center" y="{posy(banner2)} + {height(banner2)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesfanart2height} / {seriesfanart2width}"/>
|
||||||
|
<drawimage name="banner3" imagetype="image" path="{seriesbanner3path}" align="center" y="{posy(fanart2)} + {height(fanart2)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesbanner3height} / {seriesbanner3width}"/>
|
||||||
|
<drawimage name="fanart3" imagetype="image" path="{seriesfanart3path}" align="center" y="{posy(banner3)} + {height(banner3)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {seriesfanart3height} / {seriesfanart3width}"/>
|
||||||
|
<drawimage name="poster1" imagetype="image" path="{seriesposter1path}" align="center" y="{posy(fanart3)} + {height(fanart3)} + 20" width="{areawidth}*0.5" height="{areawidth} * 0.5 * {seriesposter1height} / {seriesposter1width}"/>
|
||||||
|
<drawimage name="poster2" imagetype="image" path="{seriesposter2path}" align="center" y="{posy(poster1)} + {height(poster1)} + 20" width="{areawidth}*0.5" height="{areawidth} * 0.5 * {seriesposter2height} / {seriesposter2width}"/>
|
||||||
|
<drawimage name="poster3" imagetype="image" path="{seriesposter3path}" align="center" y="{posy(poster2)} + {height(poster2)} + 20" width="{areawidth}*0.5" height="{areawidth} * 0.5 * {seriesposter3height} / {seriesposter3width}"/>
|
||||||
|
</tab>
|
||||||
|
<!-- TAB MOVIEDBINFO -->
|
||||||
|
<tab condition="{ismovie}" name="MovieDBInfo" x="2%" y="20%" width="94%" height="65%" layer="2" scrollheight="{areaheight}/4">
|
||||||
|
<drawimage name="poster" imagetype="image" path="{posterpath}" x="70%" y="10" width="{areawidth}*0.3" height="{areawidth} * 0.3 * {posterheight} / {posterwidth}"/>
|
||||||
|
<drawtextbox x="0" y="10" width="96%" float="topright" floatwidth="{width(poster)} + 10" floatheight="{height(poster)} + 20" font="{light}" fontsize="8%" color="{clrWhite}" text="{tr(originaltitle)}: {movieoriginalTitle} |{tr(genre)}: {moviegenres} ||{movietagline} |{movieoverview} |{tr(budget)}: {moviebudget} ||{tr(revenue)}: {movierevenue} ||{tr(adult)}: {movieadult} ||{tr(releasedate)}: {moviereleasedate} ||{tr(runtime)}: {movieruntime} min || {tr(popularity)}: {moviepopularity} || {tr(voteaverage)}: {movievoteaverage} || {tr(homepage)}: {moviehomepage}| " />
|
||||||
|
</tab>
|
||||||
|
<!-- TAB MOVIEGALERY -->
|
||||||
|
<tab condition="{ismovie}" name="{tr(moviegalery)}" x="2%" y="20%" width="94%" height="65%" layer="2" scrollheight="{areaheight}/4">
|
||||||
|
<drawimage name="fanart" imagetype="image" path="{fanartpath}" align="center" y="10" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {fanartheight} / {fanartwidth}"/>
|
||||||
|
<drawimage name="poster" imagetype="image" path="{posterpath}" align="center" y="{height(fanart)} + 30" width="{areawidth}*0.6" height="{areawidth} * 0.6 * {posterheight} / {posterwidth}"/>
|
||||||
|
<drawimage condition="{movieiscollection}" name="collectionfanart" imagetype="image" path="{collectionfanartpath}" align="center" y="{posy(poster)} + {height(poster)} + 20" width="{areawidth}*0.9" height="{areawidth} * 0.9 * {collectionfanartheight} / {collectionfanartwidth}"/>
|
||||||
|
<drawimage condition="{movieiscollection}" name="collectionposter" imagetype="image" path="{collectionposterpath}" align="center" y="{posy(collectionfanart)} + {height(collectionfanart)} + 20" width="{areawidth}*0.6" height="{areawidth} * 0.6 * {collectionposterheight} / {collectionposterwidth}"/>
|
||||||
|
</tab>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Available Variables tablabels:
|
||||||
|
{currenttab} name of currently active tab
|
||||||
|
{prevtab} name of prev tab
|
||||||
|
{nexttab} name of next tab
|
||||||
|
{tabs[]} array with available tab labels
|
||||||
|
{tabs[title]} title of tab
|
||||||
|
{tabs[current]} true if tab is displayed currently
|
||||||
|
-->
|
||||||
|
<tablabels>
|
||||||
|
<area x="0" y="85%" width="98%" height="5%" layer="3">
|
||||||
|
<loop name="tabs" x="0" y="0" orientation="horizontal">
|
||||||
|
<drawrectangle condition="{tabs[current]}" x="0" y="0" width="{width(label)}" height="100%" color="{clrTransBlueLight}" />
|
||||||
|
<drawrectangle condition="not{tabs[current]}" x="0" y="0" width="{width(label)}" height="100%" color="{clrTransBlueLight}" />
|
||||||
|
<drawrectangle condition="not{tabs[current]}" x="2" y="2" width="{width(label)} - 4" height="{areaheight}-4" color="{clrTransparent}" />
|
||||||
|
<drawtext name="label" x="0" valign="center" font="{light}" fontsize="95%" color="{clrWhite}" text=" {tabs[title]} " />
|
||||||
|
</loop>
|
||||||
|
</area>
|
||||||
|
</tablabels>
|
||||||
|
|
||||||
|
</displayplugin>
|
452
skins/metrixhd/xmlfiles/plug-tvguideng-recmenu.xml
Normal file
@ -0,0 +1,452 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE displayplugin SYSTEM "../../../dtd/displayplugin.dtd">
|
||||||
|
|
||||||
|
<displayplugin x="0" y="0" width="100%" height="100%">
|
||||||
|
<!-- Available Variables Background:
|
||||||
|
{menuwidth} menuwidth in percent of screenwidth
|
||||||
|
{menuheight} menuheight in percent of screenheight
|
||||||
|
{hasscrollbar} true if menu needs a scrollbar
|
||||||
|
-->
|
||||||
|
<viewelement name="background">
|
||||||
|
<area condition="not{hasscrollbar}" x="0" y="0" width="100%" height="100%" layer="4">
|
||||||
|
<drawrectangle x="{areawidth}/2 - {menuwidth}*{areawidth}/100/2" y="{areaheight}/2 - {menuheight}*{areaheight}/100/2" width="{menuwidth}*{areawidth}/100" height="{menuheight}*{areaheight}/100" color="{clrTransBlack}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{hasscrollbar}" x="0" y="0" width="100%" height="100%" layer="4">
|
||||||
|
<drawrectangle x="{areawidth}/2 - {menuwidth}*{areawidth}/100/2" y="{areaheight}/2 - {menuheight}*{areaheight}/100/2" width="{menuwidth}*{areawidth}/100 + {areawidth}*0.03" height="{menuheight}*{areaheight}/100" color="{clrTransBlack}"/>
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Available Variables Scrollbar:
|
||||||
|
{menuwidth} menuwidth in percent of screenwidth
|
||||||
|
{posy} y position of scrollbar start in percent of screenheight
|
||||||
|
{totalheight} height of complete scrollbar in percent of screenheight
|
||||||
|
{height} height in tenth of a percent of total height
|
||||||
|
{offset} offset in tenth of a percent
|
||||||
|
-->
|
||||||
|
<viewelement name="scrollbar">
|
||||||
|
<area x="0" y="0" width="100%" height="100%" layer="5">
|
||||||
|
<drawrectangle x="{areawidth}/2 + {menuwidth}*{areawidth}/100/2" y="{posy}*{areaheight}/100" width="2%" height="{totalheight}*{areaheight}/100" color="{clrWhite}" />
|
||||||
|
<drawrectangle x="{areawidth}/2 + {menuwidth}*{areawidth}/100/2 + 2" y="{posy}*{areaheight}/100 + 2" width="{areawidth}*0.02 - 4" height="{totalheight}*{areaheight}/100 - 4" color="{clrTransparent}" />
|
||||||
|
</area>
|
||||||
|
<area x="0" y="0" width="100%" height="100%" layer="6">
|
||||||
|
<drawrectangle x="{areawidth}/2 + {menuwidth}*{areawidth}/100/2 + 4" y="{posy}*{areaheight}/100 + {totalheight}*{areaheight}/100 * {offset} / 1000 + 4" width="{areawidth}*0.02 - 8" height="{totalheight}*{areaheight}/100 * {height} / 1000 - 8" color="{clrWhite}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<grid name="recmenu" x="0" y="0" width="100%" height="100%">
|
||||||
|
<!-- Background
|
||||||
|
{current} true if item is currently selected
|
||||||
|
-->
|
||||||
|
<area condition="not{info}++not{buttonyesno}++not{timerconflictheader}++not{timerconflict}++not{timelineheader}++not{timelinetimer}" layer="5">
|
||||||
|
<fill condition="{current}" color="{clrTransBlueLight}" />
|
||||||
|
<fill condition="not{current}" color="{clrTransBlack}" />
|
||||||
|
</area>
|
||||||
|
<!-- info item
|
||||||
|
{info} true
|
||||||
|
{lines} number of lines to display (max. 4)
|
||||||
|
{line1} text of line 1
|
||||||
|
{line2} text of line 1
|
||||||
|
{line3} text of line 1
|
||||||
|
{line4} text of line 1
|
||||||
|
-->
|
||||||
|
<area condition="{info}" layer="5">
|
||||||
|
<drawtext condition="eq({lines}, 1)" align="center" valign="center" font="{semibold}" fontsize="60%" color="{clrWhite}" text="{line1}" />
|
||||||
|
|
||||||
|
<drawtext condition="eq({lines}, 2)" align="center" y="5%" font="{semibold}" fontsize="40%" color="{clrWhite}" text="{line1}" />
|
||||||
|
<drawtext condition="eq({lines}, 2)" align="center" y="52%" font="{semibold}" fontsize="40%" color="{clrWhite}" text="{line2}" />
|
||||||
|
|
||||||
|
<drawtext condition="eq({lines}, 3)" align="center" y="0%" font="{semibold}" fontsize="28%" color="{clrWhite}" text="{line1}" />
|
||||||
|
<drawtext condition="eq({lines}, 3)" align="center" y="33%" font="{semibold}" fontsize="28%" color="{clrWhite}" text="{line2}" />
|
||||||
|
<drawtext condition="eq({lines}, 3)" align="center" y="66%" font="{semibold}" fontsize="28%" color="{clrWhite}" text="{line3}" />
|
||||||
|
|
||||||
|
<drawtext condition="eq({lines}, 4)" align="center" y="0%" font="{semibold}" fontsize="22%" color="{clrWhite}" text="{line1}" />
|
||||||
|
<drawtext condition="eq({lines}, 4)" align="center" y="25%" font="{semibold}" fontsize="22%" color="{clrWhite}" text="{line2}" />
|
||||||
|
<drawtext condition="eq({lines}, 4)" align="center" y="50%" font="{semibold}" fontsize="22%" color="{clrWhite}" text="{line3}" />
|
||||||
|
<drawtext condition="eq({lines}, 4)" align="center" y="75%" font="{semibold}" fontsize="22%" color="{clrWhite}" text="{line4}" />
|
||||||
|
</area>
|
||||||
|
<!-- button
|
||||||
|
{button} true
|
||||||
|
{buttontext} text to display on button
|
||||||
|
-->
|
||||||
|
<area condition="{button}" layer="6">
|
||||||
|
<drawtext align="center" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{buttontext}" />
|
||||||
|
</area>
|
||||||
|
|
||||||
|
<!-- yes / no button
|
||||||
|
{buttonyesno} true
|
||||||
|
{yes} true if button is set to yes
|
||||||
|
{textyes} text to display on yes button
|
||||||
|
{textno} text to display on no button
|
||||||
|
-->
|
||||||
|
<area condition="{buttonyesno}" layer="5">
|
||||||
|
<drawrectangle condition="not{current}" x="2%" y="5%" width="46%" height="90%" color="{clrDarkGray}"/>
|
||||||
|
<drawrectangle condition="not{current}" x="52%" y="5%" width="46%" height="90%" color="{clrDarkGray}"/>
|
||||||
|
<drawrectangle condition="{current}++{yes}" x="2%" y="5%" width="46%" height="90%" color="{clrTransBlueLight}"/>
|
||||||
|
<drawrectangle condition="{current}++{yes}" x="52%" y="5%" width="46%" height="90%" color="{clrDarkGray}"/>
|
||||||
|
<drawrectangle condition="{current}++not{yes}" x="2%" y="5%" width="46%" height="90%" color="{clrDarkGray}"/>
|
||||||
|
<drawrectangle condition="{current}++not{yes}" x="52%" y="5%" width="46%" height="90%" color="{clrTransBlueLight}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{buttonyesno}" layer="6">
|
||||||
|
<drawtext name="yestext" x="{areawidth}/4 - {width(yestext)}/2" valign="center" font="{light}" fontsize="70%" color="{clrWhite}" text="{textyes}" />
|
||||||
|
<drawtext name="notext" x="3*{areawidth}/4 - {width(notext)}/2" valign="center" font="{light}" fontsize="70%" color="{clrWhite}" text="{textno}" />
|
||||||
|
</area>
|
||||||
|
<!-- Int Selector
|
||||||
|
{intselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, integer
|
||||||
|
-->
|
||||||
|
<area condition="{intselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawtext align="right" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{value} " />
|
||||||
|
</area>
|
||||||
|
<!-- Bool Selector
|
||||||
|
{boolselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, true or false
|
||||||
|
-->
|
||||||
|
<area condition="{boolselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawimage condition="{value}" imagetype="icon" path="ico_yes" x="{areawidth} - {areaheight}*0.8" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
<drawimage condition="not{value}" imagetype="icon" path="ico_no" x="{areawidth} - {areaheight}*0.8" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
</area>
|
||||||
|
<!-- String Selector
|
||||||
|
{stringselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, string
|
||||||
|
-->
|
||||||
|
<area condition="{stringselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawimage imagetype="icon" path="ico_arrow_right" x="{areawidth} - {areaheight}*0.8" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
<drawtext name="value" x="{areawidth} - {width(value)} - {areaheight}" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{value}" />
|
||||||
|
<drawimage imagetype="icon" path="ico_arrow_left" x="{areawidth} - {width(value)} - 2*{areaheight}" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
</area>
|
||||||
|
<!-- Text Input
|
||||||
|
{textinput} true
|
||||||
|
{editmode} true if currently in edit mode
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, string
|
||||||
|
-->
|
||||||
|
<area condition="{textinput}" layer="6">
|
||||||
|
<drawtext x="1%" y="10%" font="{light}" fontsize="40%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawrectangle condition="not{editmode}" x="1%" y="55%" width="98%" height="40%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle condition="{editmode}" x="1%" y="55%" width="98%" height="40%" color="{clrRed}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{textinput}" layer="7">
|
||||||
|
<drawtext align="right" y="55%" font="{light}" fontsize="40%" color="{clrBlack}" text="{value} " />
|
||||||
|
</area>
|
||||||
|
<!-- Time Selector
|
||||||
|
{timeselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, hh:mm
|
||||||
|
-->
|
||||||
|
<area condition="{timeselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawtext align="right" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{value} " />
|
||||||
|
</area>
|
||||||
|
<!-- Day Selector
|
||||||
|
{dayselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{value} current value of selector, dd.mm
|
||||||
|
-->
|
||||||
|
<area condition="{dayselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawtext align="right" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{value} " />
|
||||||
|
</area>
|
||||||
|
<!-- Channel Selector
|
||||||
|
{channelselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{channelnumber} number of currently selected channel, 0 for "all channels"
|
||||||
|
{channelname} name of channel or "all channels"
|
||||||
|
{channelid} id of channel
|
||||||
|
{channellogoexisis} true if channel logo exists
|
||||||
|
-->
|
||||||
|
<area condition="{channelselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawimage condition="{channellogoexisis}" imagetype="channellogo" path="{channelid}" x="{areawidth}-{areaheight}" valign="center" width="{areaheight}*0.9" height="{areaheight}*0.9" />
|
||||||
|
<drawtext name="channelnumberlogo" condition="{channellogoexisis}" x="{areawidth}-{areaheight}-{width(channelnumberlogo)}-10" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{channelnumber}" />
|
||||||
|
<drawtext condition="not{channellogoexisis}++{channelnumber}" align="right" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{channelnumber} {channelname} " />
|
||||||
|
<drawtext condition="not{channelnumber}" align="right" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{channelname} " />
|
||||||
|
</area>
|
||||||
|
<!-- Weekday Selector
|
||||||
|
{weekdayselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{dayselected} number of currently selected day (0 - 6)
|
||||||
|
{day0abbr} ... {day6abbr} localized one character abbrevation for weekdays from Monday to Sunday
|
||||||
|
{day0set} ... {day6set} true if according weekday from Monday to Sunday is set
|
||||||
|
-->
|
||||||
|
<area condition="{weekdayselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
|
||||||
|
<drawrectangle x="{areawidth} - {areaheight}*4" y="25%" width="{areaheight}*3.5" height="50%" color="{clrWhite}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day0set}" x="{areawidth} - {areaheight}*4.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrDarkGray}" />
|
||||||
|
<drawrectangle condition="{day0set}" x="{areawidth} - {areaheight}*4.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlueLight}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day1set}" x="{areawidth} - {areaheight}*3.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrDarkGray}" />
|
||||||
|
<drawrectangle condition="{day1set}" x="{areawidth} - {areaheight}*3.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlueLight}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day2set}" x="{areawidth} - {areaheight}*3.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrDarkGray}" />
|
||||||
|
<drawrectangle condition="{day2set}" x="{areawidth} - {areaheight}*3.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlueLight}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day3set}" x="{areawidth} - {areaheight}*2.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrDarkGray}" />
|
||||||
|
<drawrectangle condition="{day3set}" x="{areawidth} - {areaheight}*2.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlueLight}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day4set}" x="{areawidth} - {areaheight}*2.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrDarkGray}" />
|
||||||
|
<drawrectangle condition="{day4set}" x="{areawidth} - {areaheight}*2.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlueLight}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day5set}" x="{areawidth} - {areaheight}*1.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrDarkGray}" />
|
||||||
|
<drawrectangle condition="{day5set}" x="{areawidth} - {areaheight}*1.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlueLight}" />
|
||||||
|
|
||||||
|
<drawrectangle condition="not{day6set}" x="{areawidth} - {areaheight}*1.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrDarkGray}" />
|
||||||
|
<drawrectangle condition="{day6set}" x="{areawidth} - {areaheight}*1.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlueLight}" />
|
||||||
|
</area>
|
||||||
|
<area condition="{weekdayselector}" layer="7">
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 0)" x="{areawidth} - {areaheight}*4.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlack}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 1)" x="{areawidth} - {areaheight}*3.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlack}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 2)" x="{areawidth} - {areaheight}*3.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlack}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 3)" x="{areawidth} - {areaheight}*2.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlack}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 4)" x="{areawidth} - {areaheight}*2.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlack}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 5)" x="{areawidth} - {areaheight}*1.5 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlack}" />
|
||||||
|
<drawrectangle condition="{current}++eq({dayselected}, 6)" x="{areawidth} - {areaheight}*1.0 + 2" y="{areaheight}*0.25+2" width="{areaheight}*0.5-4" height="{areaheight}*0.5-4" color="{clrTransBlack}" />
|
||||||
|
|
||||||
|
<drawtext name="day0" x="{areawidth} - {areaheight}*4.0 + {areaheight}/4 - {width(day0)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day0abbr}" />
|
||||||
|
<drawtext name="day1" x="{areawidth} - {areaheight}*3.5 + {areaheight}/4 - {width(day1)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day1abbr}" />
|
||||||
|
<drawtext name="day2" x="{areawidth} - {areaheight}*3.0 + {areaheight}/4 - {width(day2)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day2abbr}" />
|
||||||
|
<drawtext name="day3" x="{areawidth} - {areaheight}*2.5 + {areaheight}/4 - {width(day3)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day3abbr}" />
|
||||||
|
<drawtext name="day4" x="{areawidth} - {areaheight}*2.0 + {areaheight}/4 - {width(day4)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day4abbr}" />
|
||||||
|
<drawtext name="day5" x="{areawidth} - {areaheight}*1.5 + {areaheight}/4 - {width(day5)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day5abbr}" />
|
||||||
|
<drawtext name="day6" x="{areawidth} - {areaheight}*1.0 + {areaheight}/4 - {width(day6)}/2" valign="center" font="{light}" fontsize="50%" color="{clrWhite}" text="{day6abbr}" />
|
||||||
|
</area>
|
||||||
|
<!-- Directory Selector
|
||||||
|
{directoryselector} true
|
||||||
|
{text} title of selector
|
||||||
|
{folder} current folder of selector, string
|
||||||
|
-->
|
||||||
|
<area condition="{directoryselector}" layer="6">
|
||||||
|
<drawtext x="1%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawimage imagetype="icon" path="ico_arrow_right" x="{areawidth} - {areaheight}*0.8" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
<drawtext name="folder" x="{areawidth} - {width(folder)} - {areaheight}" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{folder}" />
|
||||||
|
<drawimage imagetype="icon" path="ico_arrow_left" x="{areawidth} - {width(folder)} - 2*{areaheight}" y="10%" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
||||||
|
</area>
|
||||||
|
<!-- Timerconflict Header
|
||||||
|
{timerconflictheader} true
|
||||||
|
{text} title of Timerconflict Header
|
||||||
|
{conflictstart} start of conflict in hh:mm
|
||||||
|
{conflictstop} end of conflict in hh:mm
|
||||||
|
{overlapstart} start of overlap in hh:mm
|
||||||
|
{overlapstop} end of overlap in hh:mm
|
||||||
|
{overlapstartpercent} start of overlap in percent of total conflict time width
|
||||||
|
{overlapwidthpercent} width of overlap in percent of total conflict time width
|
||||||
|
-->
|
||||||
|
<area condition="{timerconflictheader}" layer="5">
|
||||||
|
<drawtext name="title" x="{areawidth}*0.7*0.5 - {width(title)}/2" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{text}" />
|
||||||
|
<drawrectangle x="70%" y="0" width="30%" height="100%" color="{clrWhite}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timerconflictheader}" layer="6">
|
||||||
|
<drawtext x="{areawidth}*0.7" y="0" font="{light}" fontsize="50%" color="{clrBlack}" text="{conflictstart}" />
|
||||||
|
<drawtext align="right" y="0" font="{light}" fontsize="50%" color="{clrBlack}" text="{conflictstop}" />
|
||||||
|
<drawtext name="olstart" x="{areawidth}*0.7 + {overlapstartpercent}*{areawidth}*0.3/100 - 70" y="50%" font="{light}" fontsize="50%" color="{clrRed}" text="{overlapstart}" />
|
||||||
|
<drawtext x="{areawidth}*0.7 + {overlapstartpercent}*{areawidth}*0.3/100 + {overlapwidthpercent}*{areawidth}*0.3/100 + 5" y="50%" font="{light}" fontsize="50%" color="{clrRed}" text="{overlapstop}" />
|
||||||
|
<drawrectangle x="{areawidth}*0.7 + {overlapstartpercent}*{areawidth}*0.3/100" y="50%" width="{overlapwidthpercent}*{areawidth}*0.3/100" height="50%" color="{clrRedTrans}"/>
|
||||||
|
</area>
|
||||||
|
<!-- Timerconflict
|
||||||
|
{timerconflict} true
|
||||||
|
{timertitle} title of timer
|
||||||
|
{channelname} name of channel
|
||||||
|
{channelid} channel ID
|
||||||
|
{transponder} transponder of channel
|
||||||
|
{starttime} start of timer in hh:mm
|
||||||
|
{stoptime} end of timer in hh:mm
|
||||||
|
{date} date of timer in dd.mm.yy
|
||||||
|
{weekday} weekday of timer, 3 letter abrivation
|
||||||
|
{infoactive} true if info icon is active
|
||||||
|
{deleteactive} true if delete icon is active
|
||||||
|
{editactive} true if edit icon is active
|
||||||
|
{searchactive} true if search icon is active
|
||||||
|
{timerstartpercent} start of timer in percent of total conflict time width
|
||||||
|
{timerwidthpercent} end of timer in percent of total conflict time width
|
||||||
|
{overlapstartpercent} start of overlap in percent of total conflict time width
|
||||||
|
{overlapwidthpercent} width of overlap in percent of total conflict time width
|
||||||
|
-->
|
||||||
|
<area condition="{timerconflict}" layer="5">
|
||||||
|
<drawimage condition="not{current}" imagetype="skinpart" path="menubutton" x="0" y="0" width="70%" height="100%"/>
|
||||||
|
<drawimage condition="{current}" imagetype="skinpart" path="menubuttonactive" x="0" y="0" width="70%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timerconflict}" layer="6">
|
||||||
|
<drawimage condition="{current}++{infoactive}" imagetype="icon" path="ico_info_active" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{infoactive}" imagetype="icon" path="ico_info_inactive" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{current}++{deleteactive}" imagetype="icon" path="ico_delete_active" x="{areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{deleteactive}" imagetype="icon" path="ico_delete_inactive" x="{areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{current}++{editactive}" imagetype="icon" path="ico_edit_active" x="{areaheight}*1.15" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{editactive}" imagetype="icon" path="ico_edit_inactive" x="{areaheight}*1.15" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{current}++{searchactive}" imagetype="icon" path="ico_search_active" x="{areaheight}*1.7" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{searchactive}" imagetype="icon" path="ico_search_inactive" x="{areaheight}*1.7" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawtext x="{areaheight}*2.3" width="{areawidth}*0.7 - {areaheight}*2.4" y="0" font="{regular}" fontsize="40%" color="{clrWhite}" text="{timertitle}" />
|
||||||
|
<drawtext x="{areaheight}*2.3" y="40%" font="{light}" fontsize="30%" color="{clrWhite}" text="{weekday} {date} {starttime} - {stoptime}" />
|
||||||
|
<drawtext x="{areaheight}*2.3" y="70%" font="{light}" fontsize="30%" color="{clrWhite}" text="{channelname}, Transp. {transponder}" />
|
||||||
|
<drawrectangle x="70%" y="0" width="30%" height="100%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.7 + {timerstartpercent}*{areawidth}*0.3/100" y="30%" width="{timerwidthpercent}*{areawidth}*0.3/100" height="40%" color="{clrBlack}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timerconflict}" layer="7">
|
||||||
|
<drawrectangle x="{areawidth}*0.7 + {overlapstartpercent}*{areawidth}*0.3/100" y="0" width="{overlapwidthpercent}*{areawidth}*0.3/100" height="100%" color="{clrRedTrans}"/>
|
||||||
|
</area>
|
||||||
|
<!-- Event
|
||||||
|
{event} true
|
||||||
|
{title} title of event
|
||||||
|
{shorttext} shorttext of event
|
||||||
|
{starttime} start of event in hh:mm
|
||||||
|
{stoptime} end of event in hh:mm
|
||||||
|
{date} date of event in dd.mm.yy
|
||||||
|
{weekday} weekday of event, 3 letter abrivation
|
||||||
|
{channelnumber} number of channel
|
||||||
|
{channelname} name of channel
|
||||||
|
{channelid} id of channel
|
||||||
|
{channellogoexisis} true if channel logo exists
|
||||||
|
{hastimer} true if event has a timer
|
||||||
|
-->
|
||||||
|
<area condition="{event}" layer="6">
|
||||||
|
<drawimage condition="{current}" imagetype="icon" path="ico_info_active" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}" imagetype="icon" path="ico_info_inactive" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{channellogoexisis}" imagetype="channellogo" path="{channelid}" x="{areaheight}*0.8" valign="center" width="{areaheight}" height="{areaheight}" />
|
||||||
|
<drawtext x="{areaheight}*2.2" y="2" font="{light}" fontsize="30%" color="{clrWhite}" text="{weekday} {date} {starttime} - {stoptime} {channelname}" />
|
||||||
|
<drawtext x="{areaheight}*2.2" y="30%" width="{areawidth} - 3*{areaheight}" font="{regular}" fontsize="45%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtext x="{areaheight}*2.2" y="69%" width="{areawidth} - 3*{areaheight}" font="{light}" fontsize="30%" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
<drawimage condition="{current}++not{hastimer}" imagetype="icon" path="ico_record_active" x="{areawidth} - {areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}++not{hastimer}" imagetype="icon" path="ico_record_inactive" x="{areawidth} - {areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{hastimer}" imagetype="icon" path="ico_activetimer" x="{areawidth} - {areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
</area>
|
||||||
|
<!-- Recording
|
||||||
|
{recording} true
|
||||||
|
{recname} title of recording
|
||||||
|
{recstarttime} start of recording in hh:mm
|
||||||
|
{recdate} date of recording in dd.mm.yy
|
||||||
|
{recduration} duration of recording in min
|
||||||
|
{channelnumber} number of channel
|
||||||
|
{channelname} name of channel
|
||||||
|
{channelid} id of channel
|
||||||
|
{channellogoexisis} true if channel logo exists
|
||||||
|
-->
|
||||||
|
<area condition="{recording}" layer="6">
|
||||||
|
<drawtext x="1%" y="0" font="{light}" width="98%" fontsize="50%" color="{clrWhite}" text="{recname}" />
|
||||||
|
<drawtext x="55%" y="0" font="{light}" width="98%" fontsize="35%" color="{clrWhite}" text="{recdate} {recstarttime} - {recduration} min, {channelname}" />
|
||||||
|
</area>
|
||||||
|
<!-- Searchtimer
|
||||||
|
{searchtimer} true
|
||||||
|
{timeractive} true if searchtimer is active
|
||||||
|
{searchstring} searchtimer search string
|
||||||
|
{activetimers} number of active timers caused by this searchtimer
|
||||||
|
{recordingsdone} number of recordings done by this searchtimer
|
||||||
|
{searchactive} true if search icon is active
|
||||||
|
{editactive} true if edit icon is active
|
||||||
|
{deleteactive} true if delete icon is active
|
||||||
|
-->
|
||||||
|
<area condition="{searchtimer}" layer="6">
|
||||||
|
<drawimage condition="{current}++{searchactive}" imagetype="icon" path="ico_search_active" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{searchactive}" imagetype="icon" path="ico_search_inactive" x="{areaheight}*0.05" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{current}++{editactive}" imagetype="icon" path="ico_edit_active" x="{areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{editactive}" imagetype="icon" path="ico_edit_inactive" x="{areaheight}*0.6" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="{current}++{deleteactive}" imagetype="icon" path="ico_delete_active" x="{areaheight}*1.15" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}||not{deleteactive}" imagetype="icon" path="ico_delete_inactive" x="{areaheight}*1.15" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawtext x="{areaheight}*1.8" width="{areawidth} - {areaheight}*2" y="5%" font="{regular}" fontsize="45%" color="{clrWhite}" text="{searchstring}" />
|
||||||
|
<drawtext condition="{timeractive}" align="right" y="5%" font="{regular}" fontsize="35%" color="{clrWhite}" text="active " />
|
||||||
|
<drawtext x="{areaheight}*1.8" y="55%" font="{light}" fontsize="35%" color="{clrWhite}" text="Active Timers: {activetimers}, Recordings: {recordingsdone}" />
|
||||||
|
</area>
|
||||||
|
<!-- Timeline Header
|
||||||
|
{timelineheader} true
|
||||||
|
{date} date of current day in weekdayname dd.mm.yyyy
|
||||||
|
{timerset} true if timer info is set
|
||||||
|
{channelname} name of channel of timer
|
||||||
|
{channelid} channel ID of channel of timer
|
||||||
|
{channellogoexisis} true if channel logo exists
|
||||||
|
{channelnumber} number of channel of timer
|
||||||
|
{channeltransponder} transponder of channel of timer
|
||||||
|
{timerstart} start of timer in hh:mm
|
||||||
|
{timerstop} end of timer in hh:mm
|
||||||
|
{eventtitle} title of according event
|
||||||
|
{eventshorttext} short text of according event
|
||||||
|
{eventstart} start time of according event
|
||||||
|
{eventstop} end time of according event
|
||||||
|
-->
|
||||||
|
<area condition="{timelineheader}" layer="5">
|
||||||
|
<drawtext align="center" y="1%" font="{regular}" fontsize="35%" color="{clrWhite}" text="Timer for {date}" />
|
||||||
|
<drawrectangle x="{areawidth}*0.05" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.0875" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.125" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.1625" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.2" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.2375" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.275" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.3125" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.35" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.3875" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.425" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.4625" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.5" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.5375" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.575" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.6125" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.65" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.6875" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.725" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.7625" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.8" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.8375" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.875" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrBlack}"/>
|
||||||
|
<drawrectangle x="{areawidth}*0.9125" y="80%" width="{areawidth}*0.0375" height="20%" color="{clrWhite}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timelineheader}" layer="6">
|
||||||
|
<drawtext name="text0" x="{areawidth}*0.05 + {areawidth}*0.0375/2 - {width(text0)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="0"/>
|
||||||
|
<drawtext name="text1" x="{areawidth}*0.0875 + {areawidth}*0.0375/2 - {width(text1)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="1"/>
|
||||||
|
<drawtext name="text2" x="{areawidth}*0.125 + {areawidth}*0.0375/2 - {width(text2)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="2"/>
|
||||||
|
<drawtext name="text3" x="{areawidth}*0.1625 + {areawidth}*0.0375/2 - {width(text3)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="3"/>
|
||||||
|
<drawtext name="text4" x="{areawidth}*0.2 + {areawidth}*0.0375/2 - {width(text4)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="4"/>
|
||||||
|
<drawtext name="text5" x="{areawidth}*0.2375 + {areawidth}*0.0375/2 - {width(text5)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="5"/>
|
||||||
|
<drawtext name="text6" x="{areawidth}*0.275 + {areawidth}*0.0375/2 - {width(text6)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="6"/>
|
||||||
|
<drawtext name="text7" x="{areawidth}*0.3125 + {areawidth}*0.0375/2 - {width(text7)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="7"/>
|
||||||
|
<drawtext name="text8" x="{areawidth}*0.35 + {areawidth}*0.0375/2 - {width(text8)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="8"/>
|
||||||
|
<drawtext name="text9" x="{areawidth}*0.3875 + {areawidth}*0.0375/2 - {width(text9)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="9"/>
|
||||||
|
<drawtext name="text10" x="{areawidth}*0.425 + {areawidth}*0.0375/2 - {width(text10)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="10"/>
|
||||||
|
<drawtext name="text11" x="{areawidth}*0.4625 + {areawidth}*0.0375/2 - {width(text11)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="11"/>
|
||||||
|
<drawtext name="text12" x="{areawidth}*0.5 + {areawidth}*0.0375/2 - {width(text12)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="12"/>
|
||||||
|
<drawtext name="text13" x="{areawidth}*0.5375 + {areawidth}*0.0375/2 - {width(text13)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="13"/>
|
||||||
|
<drawtext name="text14" x="{areawidth}*0.575 + {areawidth}*0.0375/2 - {width(text14)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="14"/>
|
||||||
|
<drawtext name="text15" x="{areawidth}*0.6125 + {areawidth}*0.0375/2 - {width(text15)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="15"/>
|
||||||
|
<drawtext name="text16" x="{areawidth}*0.65 + {areawidth}*0.0375/2 - {width(text16)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="16"/>
|
||||||
|
<drawtext name="text17" x="{areawidth}*0.6875 + {areawidth}*0.0375/2 - {width(text17)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="17"/>
|
||||||
|
<drawtext name="text18" x="{areawidth}*0.725 + {areawidth}*0.0375/2 - {width(text18)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="18"/>
|
||||||
|
<drawtext name="text19" x="{areawidth}*0.7625 + {areawidth}*0.0375/2 - {width(text19)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="19"/>
|
||||||
|
<drawtext name="text20" x="{areawidth}*0.8 + {areawidth}*0.0375/2 - {width(text20)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="20"/>
|
||||||
|
<drawtext name="text21" x="{areawidth}*0.8375 + {areawidth}*0.0375/2 - {width(text21)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="21"/>
|
||||||
|
<drawtext name="text22" x="{areawidth}*0.875 + {areawidth}*0.0375/2 - {width(text22)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrWhite}" text="22"/>
|
||||||
|
<drawtext name="text23" x="{areawidth}*0.9125 + {areawidth}*0.0375/2 - {width(text23)}/2" y="80%" font="{regular}" fontsize="20%" color="{clrBlack}" text="23"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timelineheader}++{timerset}" layer="6">
|
||||||
|
<drawimage condition="{channellogoexisis}" imagetype="channellogo" path="{channelid}" x="1%" y="30%" width="{areaheight}*0.5" height="{areaheight}*0.5" />
|
||||||
|
<drawtext condition="not{channellogoexisis}" x="1%" width="{areaheight}*0.7" y="40%" font="{light}" fontsize="20%" color="{clrWhite}" text="{channelname}"/>
|
||||||
|
<drawtext x="{areaheight}*0.8" y="36%" font="{light}" fontsize="25%" color="{clrWhite}" text="{eventstart} - {eventstop} (Rec. {timerstart} - {timerstop}), Transp. {channeltransponder}"/>
|
||||||
|
<drawtext x="{areaheight}*0.8" y="57%" width="{areawidth}-{areaheight}" font="{light}" fontsize="25%" color="{clrWhite}" text="{eventtitle} - {eventshorttext}"/>
|
||||||
|
</area>
|
||||||
|
<!-- Timeline Timer
|
||||||
|
{timelinetimer} true
|
||||||
|
{timerstart} start of timer in tenth percent of complete 24h width
|
||||||
|
{timerwidth} width of timer in tenth percent of complete 24h width
|
||||||
|
-->
|
||||||
|
<area condition="{timelinetimer}" layer="5">
|
||||||
|
<drawrectangle condition="{current}" x="5%" y="0" width="90%" height="100%" color="{clrTransBlueLight}"/>
|
||||||
|
<drawrectangle condition="not{current}" x="5%" y="0" width="90%" height="100%" color="{clrDarkGray}"/>
|
||||||
|
<drawrectangle x="5%" y="{areaheight}-1" width="90%" height="1" color="{clrBlack}"/>
|
||||||
|
</area>
|
||||||
|
<area condition="{timelinetimer}" layer="6">
|
||||||
|
<drawrectangle x="{areawidth}*0.05 + {timerstart}*{areawidth}*0.9/1000" y="25%" width="{timerwidth}*{areawidth}*0.9/1000" height="50%" color="{clrBlack}"/>
|
||||||
|
</area>
|
||||||
|
<!-- Favorites
|
||||||
|
{favorite} true
|
||||||
|
{favdesc} description of favorite
|
||||||
|
-->
|
||||||
|
<area condition="{favorite}" layer="6">
|
||||||
|
<drawimage condition="{current}" imagetype="icon" path="ico_search_active" x="{areaheight}*0.1" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawimage condition="not{current}" imagetype="icon" path="ico_search_inactive" x="{areaheight}*0.1" valign="center" width="{areaheight}*0.5" height="{areaheight}*0.5"/>
|
||||||
|
<drawtext x="{areaheight}" valign="center" font="{light}" width="{areawidth} - {areaheight}" fontsize="80%" color="{clrWhite}" text="{favdesc}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
</displayplugin>
|
317
skins/metrixhd/xmlfiles/plug-tvguideng-root.xml
Normal file
@ -0,0 +1,317 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE displayplugin SYSTEM "../../../dtd/displayplugin.dtd">
|
||||||
|
|
||||||
|
<displayplugin x="3%" y="5%" width="94%" height="90%">
|
||||||
|
|
||||||
|
<viewelement name="background_hor">
|
||||||
|
<area x="0" y="0" width="100%" height="100%" layer="1">
|
||||||
|
<fill color="{clrTransBlack}" />
|
||||||
|
</area>
|
||||||
|
<area x="70%" y="0" width="15%" height="12%" layer="1">
|
||||||
|
<fill color="{clrTransBlueLight}" />
|
||||||
|
</area>
|
||||||
|
<area x="0" y="20%" width="15%" height="5%" layer="2">
|
||||||
|
<drawrectangle x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransBlack}"/>
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<viewelement name="background_ver">
|
||||||
|
<area x="0" y="0" width="100%" height="100%" layer="1">
|
||||||
|
<fill color="{clrTransBlack}" />
|
||||||
|
</area>
|
||||||
|
<area x="70%" y="0" width="15%" height="12%" layer="1">
|
||||||
|
<fill color="{clrTransBlueLight}" />
|
||||||
|
</area>
|
||||||
|
<area x="0" y="20%" width="8%" height="15%" layer="2">
|
||||||
|
<drawrectangle x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransBlack}"/>
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Tokens available in Header
|
||||||
|
{isdummy} true if active element is a dummy element
|
||||||
|
{title} title of event of active grid
|
||||||
|
{shorttext} shorttext of event of active grid
|
||||||
|
{description} detailed description of event of active grid
|
||||||
|
{start} event start time in hh::mm
|
||||||
|
{stop} event stop time
|
||||||
|
{day} day of event of active grid
|
||||||
|
{date} date of event of active grid in dd.mm.yy
|
||||||
|
{daynumeric} day as number
|
||||||
|
{month} month as number
|
||||||
|
{year} year as number
|
||||||
|
{running} true if event is currently running
|
||||||
|
{elapsed} elapsed time of event, if not running 0
|
||||||
|
{duration} duration of event
|
||||||
|
{durationhours} duration, full hours
|
||||||
|
{durationminutes} duration, rest of minutes
|
||||||
|
{channelname} Channel Name
|
||||||
|
{channelnumber} Channel Number
|
||||||
|
{channelid} ChannelID as path to display channel logo
|
||||||
|
{channellogoexists} true if channel logo exists
|
||||||
|
{hasposter} true if a scraped poster is available for this element
|
||||||
|
{posterwidth} width of scraped poster
|
||||||
|
{posterheight} height of scraped poster
|
||||||
|
{posterpath} absolute path of scraped poster
|
||||||
|
-->
|
||||||
|
<viewelement name="header">
|
||||||
|
<areascroll condition="not{isdummy}++not{hasposter}" orientation="vertical" mode="forthandback" delay="1000" scrollspeed="medium" x="1%" y="1%" width="68%" height="19%" layer="2">
|
||||||
|
<drawtext x="0" y="0" font="{semibold}" width="100%" fontsize="25%" color="{clrWhite}" text="{day} {daynumeric}.{month} {start} - {stop}" />
|
||||||
|
<drawtext x="0" y="20%" font="{semibold}" width="100%" fontsize="30%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtextbox name="shorttext" x="0" y="50%" width="100%" font="{light}" fontsize="20%" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
<drawtextbox x="0" y="{posy(shorttext)} + {height(shorttext)} - {areaheight}*0.15" width="100%" font="{light}" fontsize="20%" color="{clrWhite}" text="{description}" />
|
||||||
|
</areascroll>
|
||||||
|
<area condition="not{isdummy}++{hasposter}" x="1%" y="1%" width="{areaheight}*0.2*{posterwidth}/{posterheight}" height="19%" layer="2">
|
||||||
|
<drawimage imagetype="image" path="{posterpath}" x="0" y="0" width="100%" height="100%"/>
|
||||||
|
</area>
|
||||||
|
<areascroll condition="not{isdummy}++{hasposter}" orientation="vertical" mode="forthandback" delay="1000" scrollspeed="medium" x="12%" y="1%" width="56%" height="19%" layer="2">
|
||||||
|
<drawtext x="0" y="0" font="{semibold}" width="100%" fontsize="25%" color="{clrWhite}" text="{day} {daynumeric}.{month} {start} - {stop}" />
|
||||||
|
<drawtext x="0" y="20%" font="{semibold}" width="100%" fontsize="30%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtextbox name="shorttext" x="0" y="50%" width="100%" font="{light}" fontsize="20%" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
<drawtextbox x="0" y="{posy(shorttext)} + {height(shorttext)} - {areaheight}*0.15" width="100%" font="{light}" fontsize="20%" color="{clrWhite}" text="{description}" />
|
||||||
|
</areascroll>
|
||||||
|
<area condition="{isdummy}" x="1%" y="1%" width="68%" height="19%" layer="2">
|
||||||
|
<drawtext x="0" y="20%" font="{semibold}" width="100%" fontsize="35%" color="{clrWhite}" text="{title}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Available Variables Footer:
|
||||||
|
{red1} true if red button is button 1
|
||||||
|
{red2} true if red button is button 2
|
||||||
|
{red3} true if red button is button 3
|
||||||
|
{red4} true if red button is button 4
|
||||||
|
{green1} true if green button is button 1
|
||||||
|
{green2} true if green button is button 2
|
||||||
|
{green3} true if green button is button 3
|
||||||
|
{green4} true if green button is button 4
|
||||||
|
{yellow1} true if yellow button is button 1
|
||||||
|
{yellow2} true if yellow button is button 2
|
||||||
|
{yellow3} true if yellow button is button 3
|
||||||
|
{yellow4} true if yellow button is button 4
|
||||||
|
{blue1} true if blue button is button 1
|
||||||
|
{blue2} true if blue button is button 2
|
||||||
|
{blue3} true if blue button is button 3
|
||||||
|
{blue4} true if blue button is button 4
|
||||||
|
{red} label of red button
|
||||||
|
{green} label of green button
|
||||||
|
{yellow} label of yellow button
|
||||||
|
{blue} label of blue button
|
||||||
|
-->
|
||||||
|
<viewelement name="footer">
|
||||||
|
<area x="0" y="92%" width="25%" height="8%" layer="2">
|
||||||
|
<drawtext condition="{red1}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{red}" />
|
||||||
|
<drawrectangle condition="{red1}" x="0" y="0" width="10" height="100%" color="{clrRed}" />
|
||||||
|
<drawtext condition="{green1}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{green}" />
|
||||||
|
<drawrectangle condition="{green1}" x="0" y="0" width="10" height="100%" color="{clrGreen}" />
|
||||||
|
<drawtext condition="{yellow1}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
<drawrectangle condition="{yellow1}" x="0" y="0" width="10" height="100%" color="{clrYellow}" />
|
||||||
|
<drawtext condition="{blue1}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{blue}" />
|
||||||
|
<drawrectangle condition="{blue1}" x="0" y="0" width="10" height="100%" color="{clrBlue}" />
|
||||||
|
</area>
|
||||||
|
<area x="25%" y="92%" width="25%" height="8%" layer="2">
|
||||||
|
<drawtext condition="{red2}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{red}" />
|
||||||
|
<drawrectangle condition="{red2}" x="0" y="0" width="10" height="100%" color="{clrRed}" />
|
||||||
|
<drawtext condition="{green2}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{green}" />
|
||||||
|
<drawrectangle condition="{green2}" x="0" y="0" width="10" height="100%" color="{clrGreen}" />
|
||||||
|
<drawtext condition="{yellow2}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
<drawrectangle condition="{yellow2}" x="0" y="0" width="10" height="100%" color="{clrYellow}" />
|
||||||
|
<drawtext condition="{blue2}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{blue}" />
|
||||||
|
<drawrectangle condition="{blue2}" x="0" y="0" width="10" height="100%" color="{clrBlue}" />
|
||||||
|
</area>
|
||||||
|
<area x="50%" y="92%" width="25%" height="8%" layer="2">
|
||||||
|
<drawtext condition="{red3}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{red}" />
|
||||||
|
<drawrectangle condition="{red3}" x="0" y="0" width="10" height="100%" color="{clrRed}" />
|
||||||
|
<drawtext condition="{green3}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{green}" />
|
||||||
|
<drawrectangle condition="{green3}" x="0" y="0" width="10" height="100%" color="{clrGreen}" />
|
||||||
|
<drawtext condition="{yellow3}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
<drawrectangle condition="{yellow3}" x="0" y="0" width="10" height="100%" color="{clrYellow}" />
|
||||||
|
<drawtext condition="{blue3}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{blue}" />
|
||||||
|
<drawrectangle condition="{blue3}" x="0" y="0" width="10" height="100%" color="{clrBlue}" />
|
||||||
|
</area>
|
||||||
|
<area x="75%" y="92%" width="25%" height="8%" layer="2">
|
||||||
|
<drawtext condition="{red4}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{red}" />
|
||||||
|
<drawrectangle condition="{red4}" x="0" y="0" width="10" height="100%" color="{clrRed}" />
|
||||||
|
<drawtext condition="{green4}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{green}" />
|
||||||
|
<drawrectangle condition="{green4}" x="0" y="0" width="10" height="100%" color="{clrGreen}" />
|
||||||
|
<drawtext condition="{yellow4}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{yellow}" />
|
||||||
|
<drawrectangle condition="{yellow4}" x="0" y="0" width="10" height="100%" color="{clrYellow}" />
|
||||||
|
<drawtext condition="{blue4}" x="20" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{blue}" />
|
||||||
|
<drawrectangle condition="{blue4}" x="0" y="0" width="10" height="100%" color="{clrBlue}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Available Variables time:
|
||||||
|
{time} timestring in hh:mm
|
||||||
|
{sec} current seconds
|
||||||
|
{min} current minutes
|
||||||
|
{hour} current hours
|
||||||
|
{hmins} current "hourminutes" to display an hour hand
|
||||||
|
{day} day in digits
|
||||||
|
{dayleadingzero} day in digits with leading 0
|
||||||
|
{dayname} Full name of the day
|
||||||
|
{daynameshort} Short 3 char name of the day
|
||||||
|
{month} month in digits with leading 0
|
||||||
|
{monthname} Full name of the month
|
||||||
|
{monthnameshort} 3 letter abbrivation of month name
|
||||||
|
{year} year in yyyy
|
||||||
|
-->
|
||||||
|
<viewelement name="time">
|
||||||
|
<area x="70%" y="0" width="{areawidth}*0.145" height="12%" layer="2">
|
||||||
|
<drawtext align="right" y="5%" font="{light}" fontsize="45%" color="{clrWhite}" text="{dayname}" />
|
||||||
|
<drawtext align="right" y="45%" font="{light}" fontsize="45%" color="{clrWhite}" text="{day}. {monthnameshort}" />
|
||||||
|
</area>
|
||||||
|
<area x="85%" y="0" width="15%" height="12%" layer="2">
|
||||||
|
<drawtext align="center" valign="center" font="{light}" fontsize="75%" color="{clrWhite}" text="{time}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Tokens available in datetimeline
|
||||||
|
{weekday} weekday of current display
|
||||||
|
{date} date of current display
|
||||||
|
-->
|
||||||
|
<viewelement name="datetimeline_hor">
|
||||||
|
<area x="0" y="20%" width="15%" height="5%" layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{semibold}" fontsize="90%" color="{clrWhite}" text="{weekday} {date}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<viewelement name="datetimeline_ver">
|
||||||
|
<area x="0" y="20%" width="8%" height="15%" layer="2">
|
||||||
|
<drawtext align="center" y="10%" font="{light}" fontsize="40%" color="{clrWhite}" text="{weekday}" />
|
||||||
|
<drawtext align="center" y="50%" font="{light}" fontsize="40%" color="{clrWhite}" text="{date}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Tokens available in timeindicator
|
||||||
|
{percenttotal} position of current time indicator in tenth of a percent of complete time shown
|
||||||
|
-->
|
||||||
|
<viewelement name="timeindicator_hor">
|
||||||
|
<area x="15%" y="20%" width="85%" height="72%" layer="4">
|
||||||
|
<drawrectangle x="{percenttotal}*{areawidth}/1000" y="0" width="1" height="100%" color="{clrRed}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<viewelement name="timeindicator_ver">
|
||||||
|
<area x="0" y="35%" width="100%" height="57%" layer="3">
|
||||||
|
<drawrectangle x="0" y="{percenttotal}*{areaheight}/1000" width="100%" height="1" color="{clrRed}" />
|
||||||
|
</area>
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
<!-- Tokens available in timeline
|
||||||
|
{timestring} time of grid in hh:mm
|
||||||
|
-->
|
||||||
|
<grid name="timeline_hor" x="15%" y="20%" width="85%" height="5%">
|
||||||
|
<area layer="2">
|
||||||
|
<drawrectangle condition="{fullhour}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransWhite}"/>
|
||||||
|
<drawrectangle condition="not{fullhour}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransBlack}" />
|
||||||
|
</area>
|
||||||
|
<area layer="2">
|
||||||
|
<drawtext condition="{fullhour}" x="5%" valign="center" font="{light}" fontsize="80%" color="{clrBlack}" text="{timestring}" />
|
||||||
|
<drawtext condition="not{fullhour}" x="5%" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{timestring}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<grid name="timeline_ver" x="0" y="35%" width="8%" height="57%">
|
||||||
|
<area layer="2">
|
||||||
|
<drawrectangle condition="{fullhour}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransWhite}"/>
|
||||||
|
<drawrectangle condition="not{fullhour}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransBlack}" />
|
||||||
|
</area>
|
||||||
|
<area layer="2">
|
||||||
|
<drawtext condition="{fullhour}" align="center" y="5%" font="{light}" fontsize="70%" color="{clrBlack}" text="{timestring}" />
|
||||||
|
<drawtext condition="not{fullhour}" align="center" y="5%" font="{light}" fontsize="70%" color="{clrWhite}" text="{timestring}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<!-- Tokens available in channels
|
||||||
|
{name} name of channel
|
||||||
|
{number} number of channel
|
||||||
|
{channelid} id of channel to display channel logo
|
||||||
|
{channellogoexists} true if channel logo exists
|
||||||
|
-->
|
||||||
|
<grid name="channels_hor" x="5%" y="25%" width="10%" height="67%">
|
||||||
|
<area layer="2">
|
||||||
|
<drawimage condition="{channellogoexists}" imagetype="channellogo" path="{channelid}" align="center" valign="center" width="80%" height="80%" />
|
||||||
|
<drawtext condition="not{channellogoexists}" x="1%" valign="center" width="98%" font="{light}" fontsize="45%" color="{clrWhite}" text="{name}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<grid name="channels_ver" x="8%" y="25%" width="92%" height="10%">
|
||||||
|
<area layer="2">
|
||||||
|
<drawimage condition="{channellogoexists}" imagetype="channellogo" path="{channelid}" align="center" valign="center" width="80%" height="80%" />
|
||||||
|
<drawtext condition="not{channellogoexists}" align="center" valign="center" width="98%" font="{light}" fontsize="45%" color="{clrWhite}" text="{name}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<!-- Tokens available in channelgroups
|
||||||
|
{color} alternates grid by grid from true to false
|
||||||
|
{group} name of channel group
|
||||||
|
-->
|
||||||
|
<grid name="channelgroups_hor" x="0" y="25%" width="5%" height="67%">
|
||||||
|
<area layer="2">
|
||||||
|
<drawrectangle condition="{color}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransBlack}" />
|
||||||
|
<drawrectangle condition="not{color}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrDarkGray}" />
|
||||||
|
</area>
|
||||||
|
<area layer="3">
|
||||||
|
<drawtextvertical align="center" valign="center" font="{semibold}" fontsize="50%" color="{clrWhite}" text="{group}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<grid name="channelgroups_ver" x="8%" y="20%" width="92%" height="5%">
|
||||||
|
<area layer="2">
|
||||||
|
<drawrectangle condition="{color}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransBlack}" />
|
||||||
|
<drawrectangle condition="not{color}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrDarkGray}" />
|
||||||
|
</area>
|
||||||
|
<area layer="3">
|
||||||
|
<drawtext align="center" valign="center" font="{semibold}" fontsize="90%" color="{clrWhite}" text="{group}" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<!-- Tokens available in schedules
|
||||||
|
{color} alternates grid by grid from true to false
|
||||||
|
{dummy} true if grid is a dummy grid
|
||||||
|
{timer} true if a timer is set for the according event
|
||||||
|
{switchtimer} true if a switchtimer is set for the according event
|
||||||
|
{title} title of grid
|
||||||
|
{shorttext} shorttext of grid
|
||||||
|
{start} start time in hh:mm
|
||||||
|
{stop} stop time in hh:dd
|
||||||
|
-->
|
||||||
|
<grid name="schedules_hor" x="15%" y="25%" width="85%" height="67%">
|
||||||
|
<area layer="2">
|
||||||
|
<drawrectangle condition="{color}++not{current}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransBlack}" />
|
||||||
|
<drawrectangle condition="not{color}++not{current}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrDarkGray}" />
|
||||||
|
<drawrectangle condition="{current}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransBlueLight}" />
|
||||||
|
</area>
|
||||||
|
<area layer="3">
|
||||||
|
<drawtext condition="not{dummy}" x="3" y="2%" font="{light}" fontsize="45%" color="{clrWhite}" text="{start} - {stop}" />
|
||||||
|
<drawtext condition="not{dummy}" x="3" y="40%" width="{areawidth}-6" font="{semibold}" fontsize="55%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtext condition="{dummy}" x="3" valign="center" width="98%" font="{semibold}" fontsize="55%" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawimage condition="{timer}" imagetype="icon" path="ico_rec_on" x="{areawidth} - {areaheight}*0.32*45/23" y="68%" width="{areaheight}*0.3*45/23" height="{areaheight}*0.3"/>
|
||||||
|
<drawimage condition="{switchtimer}++not{timer}" imagetype="icon" path="ico_switchtimer" x="{areawidth} - {areaheight}*0.32*45/23" y="68%" width="{areaheight}*0.3*45/23" height="{areaheight}*0.3"/>
|
||||||
|
<drawimage condition="{switchtimer}++{timer}" imagetype="icon" path="ico_switchtimer" x="{areawidth} - {areaheight}*0.32*45/23*2 - 5" y="68%" width="{areaheight}*0.3*45/23" height="{areaheight}*0.3" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<grid name="schedules_ver" x="8%" y="35%" width="92%" height="57%">
|
||||||
|
<area layer="2">
|
||||||
|
<drawrectangle condition="{color}++not{current}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransBlack}" />
|
||||||
|
<drawrectangle condition="not{color}++not{current}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrDarkGray}" />
|
||||||
|
<drawrectangle condition="{current}" x="1" y="1" width="{areawidth}-2" height="{areaheight}-2" color="{clrTransBlueLight}" />
|
||||||
|
</area>
|
||||||
|
<area layer="3">
|
||||||
|
<drawtext condition="not{dummy}" x="3" y="2%" font="{light}" fontsize="{areawidth}*0.16" color="{clrWhite}" text="{start} - {stop}" />
|
||||||
|
<drawtextbox name="title" condition="not{dummy}" x="2%" y="{areawidth}*0.16" width="96%" font="{semibold}" fontsize="{areawidth}*0.15" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawtextbox condition="not{dummy}" x="2%" y="{posy(title)} + {height(title)} - {areawidth}*0.1" width="96%" height="{areaheight}*1.1 - {posy(title)} - {height(title)}" font="{light}" fontsize="{areawidth}*0.12" color="{clrWhite}" text="{shorttext}" />
|
||||||
|
<drawtextbox condition="{dummy}" x="2%" y="5%" width="96%" font="{regular}" fontsize="{areawidth}*0.2" color="{clrWhite}" text="{title}" />
|
||||||
|
<drawimage condition="{timer}" imagetype="icon" path="ico_rec_on" x="{areawidth} - {areaheight}*0.32*45/23" y="68%" width="{areaheight}*0.3*45/23" height="{areaheight}*0.3"/>
|
||||||
|
<drawimage condition="{switchtimer}++not{timer}" imagetype="icon" path="ico_switchtimer" x="{areawidth} - {areaheight}*0.32*45/23" y="68%" width="{areaheight}*0.3*45/23" height="{areaheight}*0.3"/>
|
||||||
|
<drawimage condition="{switchtimer}++{timer}" imagetype="icon" path="ico_switchtimer" x="{areawidth} - {areaheight}*0.32*45/23*2 - 5" y="68%" width="{areaheight}*0.3*45/23" height="{areaheight}*0.3" />
|
||||||
|
</area>
|
||||||
|
</grid>
|
||||||
|
|
||||||
|
<!-- Tokens available in channeljump
|
||||||
|
{channel} current user input for channel jump
|
||||||
|
-->
|
||||||
|
<viewelement name="channeljump">
|
||||||
|
</viewelement>
|
||||||
|
|
||||||
|
</displayplugin>
|
BIN
skins/nopacity/themes/darkred/icons/ico_arrow_left.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
skins/nopacity/themes/darkred/icons/ico_arrow_right.png
Normal file
After Width: | Height: | Size: 936 B |
BIN
skins/nopacity/themes/darkred/icons/ico_delete_active.png
Normal file
After Width: | Height: | Size: 768 B |
BIN
skins/nopacity/themes/darkred/icons/ico_delete_inactive.png
Normal file
After Width: | Height: | Size: 886 B |
BIN
skins/nopacity/themes/darkred/icons/ico_edit_active.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
skins/nopacity/themes/darkred/icons/ico_edit_inactive.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
skins/nopacity/themes/darkred/icons/ico_info_active.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
skins/nopacity/themes/darkred/icons/ico_info_inactive.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
81
skins/nopacity/themes/darkred/icons/ico_rec_on.svg
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="45"
|
||||||
|
height="23"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre2 r13516"
|
||||||
|
viewBox="0 0 45 23"
|
||||||
|
sodipodi:docname="ico_rec.svg">
|
||||||
|
<defs
|
||||||
|
id="defs4" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="5.6"
|
||||||
|
inkscape:cx="-13.27009"
|
||||||
|
inkscape:cy="16.082332"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1846"
|
||||||
|
inkscape:window-height="1058"
|
||||||
|
inkscape:window-x="66"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-1029.3622)">
|
||||||
|
<rect
|
||||||
|
style="fill:#d40000;fill-opacity:1;stroke:#ececec;stroke-width:0;stroke-miterlimit:5.69999981;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4148"
|
||||||
|
width="45"
|
||||||
|
height="23"
|
||||||
|
x="4.9999999e-006"
|
||||||
|
y="1029.3622"
|
||||||
|
ry="8.9285717" />
|
||||||
|
<g
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:13.75px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
id="text4151">
|
||||||
|
<path
|
||||||
|
d="m 18.185688,1046.1122 -1.725464,0 -3.343506,-3.9746 -1.873169,0 0,3.9746 -1.3293454,0 0,-9.997 2.7996824,0 q 0.906372,0 1.51062,0.1209 0.604248,0.1141 1.087647,0.4162 0.543823,0.3425 0.845947,0.8661 0.308838,0.517 0.308838,1.316 0,1.0809 -0.543823,1.8127 -0.543823,0.7251 -1.497193,1.0944 l 3.759766,4.3707 z m -3.10852,-7.1839 q 0,-0.4296 -0.154419,-0.7586 -0.147706,-0.3357 -0.496827,-0.564 -0.288696,-0.1947 -0.684814,-0.2685 -0.396118,-0.081 -0.933228,-0.081 l -1.564331,0 0,3.7732 1.342774,0 q 0.631103,0 1.101074,-0.1074 0.469971,-0.1142 0.79895,-0.4163 0.302124,-0.282 0.443115,-0.6445 0.147706,-0.3693 0.147706,-0.9333 z"
|
||||||
|
style="font-size:13.75px;fill:#ffffff"
|
||||||
|
id="path4156" />
|
||||||
|
<path
|
||||||
|
d="m 26.061054,1046.1122 -6.586303,0 0,-9.997 6.586303,0 0,1.1817 -5.256958,0 0,2.7392 5.256958,0 0,1.1817 -5.256958,0 0,3.7127 5.256958,0 0,1.1817 z"
|
||||||
|
style="font-size:13.75px;fill:#ffffff"
|
||||||
|
id="path4158" />
|
||||||
|
<path
|
||||||
|
d="m 35.89687,1045.3871 q -0.369263,0.1611 -0.671387,0.3021 -0.29541,0.141 -0.778809,0.2954 -0.409546,0.1276 -0.892944,0.2149 -0.476685,0.094 -1.054077,0.094 -1.087647,0 -1.980591,-0.3022 -0.88623,-0.3088 -1.544189,-0.96 -0.644532,-0.6379 -1.00708,-1.6181 -0.362549,-0.9869 -0.362549,-2.2894 0,-1.2354 0.349121,-2.2089 0.349121,-0.9735 1.00708,-1.6449 0.637817,-0.6512 1.537475,-0.9936 0.906373,-0.3424 2.007447,-0.3424 0.805664,0 1.604614,0.1947 0.805664,0.1947 1.785889,0.6848 l 0,1.5777 -0.100708,0 q -0.825806,-0.6915 -1.638184,-1.007 -0.812378,-0.3156 -1.738892,-0.3156 -0.758667,0 -1.369628,0.2484 -0.604248,0.2417 -1.080933,0.7587 -0.463257,0.5035 -0.725098,1.2756 -0.255127,0.7654 -0.255127,1.7725 0,1.0541 0.281983,1.8127 0.288696,0.7587 0.738525,1.2354 0.469971,0.4968 1.09436,0.7385 0.631104,0.235 1.329346,0.235 0.960083,0 1.799317,-0.329 0.839233,-0.329 1.571045,-0.9869 l 0.09399,0 0,1.5576 z"
|
||||||
|
style="font-size:13.75px;fill:#ffffff"
|
||||||
|
id="path4160" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
BIN
skins/nopacity/themes/darkred/icons/ico_record_active.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
skins/nopacity/themes/darkred/icons/ico_record_inactive.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
skins/nopacity/themes/darkred/icons/ico_search_active.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
skins/nopacity/themes/darkred/icons/ico_search_inactive.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
93
skins/nopacity/themes/darkred/icons/ico_switchtimer.svg
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="45"
|
||||||
|
height="23"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91pre2 r13516"
|
||||||
|
viewBox="0 0 45 23"
|
||||||
|
sodipodi:docname="ico_switchtimer.svg">
|
||||||
|
<defs
|
||||||
|
id="defs4" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="5.6"
|
||||||
|
inkscape:cx="-13.27009"
|
||||||
|
inkscape:cy="16.082332"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1846"
|
||||||
|
inkscape:window-height="1058"
|
||||||
|
inkscape:window-x="66"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-1029.3622)">
|
||||||
|
<rect
|
||||||
|
style="fill:#ff7f2a;fill-opacity:1;stroke:#ececec;stroke-width:0;stroke-miterlimit:5.69999981;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4148"
|
||||||
|
width="45"
|
||||||
|
height="23"
|
||||||
|
x="4.9999999e-006"
|
||||||
|
y="1029.3622"
|
||||||
|
ry="8.9285717" />
|
||||||
|
<g
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
id="text4150">
|
||||||
|
<path
|
||||||
|
d="m 9.2532783,1042.4468 q 0,0.531 -0.2502442,1.0498 -0.2441406,0.5188 -0.6896973,0.8789 -0.4882812,0.3906 -1.1413574,0.6103 -0.6469726,0.2198 -1.5625,0.2198 -0.982666,0 -1.7700195,-0.1831 -0.78125,-0.1831 -1.5930176,-0.5433 l 0,-1.5136 0.085449,0 q 0.6896973,0.5737 1.5930176,0.885 0.9033203,0.3113 1.6967774,0.3113 1.1230468,0 1.7456054,-0.4212 0.6286621,-0.4211 0.6286621,-1.123 0,-0.6043 -0.2990722,-0.8911 -0.2929688,-0.2869 -0.8972168,-0.4456 -0.4577637,-0.1221 -0.9948731,-0.2014 -0.5310058,-0.079 -1.1291504,-0.2014 -1.2084961,-0.2564 -1.7944336,-0.8728 -0.5798339,-0.6226 -0.5798339,-1.6175 0,-1.1413 0.9643554,-1.8676 0.9643555,-0.7325 2.4475098,-0.7325 0.9582519,0 1.7578125,0.1831 0.7995605,0.1832 1.4160156,0.4517 l 0,1.4282 -0.085449,0 q -0.5187988,-0.4394 -1.3671875,-0.7263 -0.8422852,-0.293 -1.7272949,-0.293 -0.970459,0 -1.5625,0.4029 -0.5859375,0.4028 -0.5859375,1.0376 0,0.5676 0.2929687,0.8911 0.2929688,0.3235 1.0314942,0.4944 0.390625,0.085 1.1108398,0.2075 0.7202149,0.1221 1.2207031,0.2502 1.0131836,0.2686 1.5258789,0.8118 0.5126954,0.5432 0.5126954,1.5198 z"
|
||||||
|
style=""
|
||||||
|
id="path4138" />
|
||||||
|
<path
|
||||||
|
d="m 19.678083,1038.2231 -1.776123,6.8177 -1.062012,0 -1.751709,-5.2552 -1.739502,5.2552 -1.055908,0 -1.794434,-6.8177 1.19629,0 1.25122,5.2796 1.702881,-5.2796 0.946045,0 1.745605,5.2796 1.184082,-5.2796 1.153565,0 z"
|
||||||
|
style=""
|
||||||
|
id="path4140" />
|
||||||
|
<path
|
||||||
|
d="m 22.565046,1037.0818 -1.293945,0 0,-1.1902 1.293945,0 0,1.1902 z m -0.07324,7.959 -1.147461,0 0,-6.8177 1.147461,0 0,6.8177 z"
|
||||||
|
style=""
|
||||||
|
id="path4142" />
|
||||||
|
<path
|
||||||
|
d="m 28.265729,1044.9797 q -0.323486,0.085 -0.708007,0.1404 -0.378418,0.055 -0.677491,0.055 -1.043701,0 -1.586914,-0.5615 -0.543213,-0.5615 -0.543213,-1.8005 l 0,-3.6255 -0.775146,0 0,-0.9644 0.775146,0 0,-1.9592 1.147461,0 0,1.9592 2.368164,0 0,0.9644 -2.368164,0 0,3.1067 q 0,0.5371 0.02441,0.8423 0.02441,0.299 0.170899,0.5615 0.134277,0.2441 0.366211,0.3601 0.238037,0.1099 0.720215,0.1099 0.280761,0 0.585937,-0.079 0.305176,-0.085 0.439453,-0.1404 l 0.06104,0 0,1.0315 z"
|
||||||
|
style=""
|
||||||
|
id="path4144" />
|
||||||
|
<path
|
||||||
|
d="m 34.698835,1044.6135 q -0.573731,0.2747 -1.092529,0.4273 -0.512696,0.1526 -1.09253,0.1526 -0.738525,0 -1.35498,-0.2137 -0.616455,-0.2197 -1.055908,-0.6591 -0.445557,-0.4395 -0.689698,-1.1109 -0.24414,-0.6714 -0.24414,-1.5686 0,-1.6723 0.915527,-2.6245 0.921631,-0.9521 2.429199,-0.9521 0.585938,0 1.147461,0.1647 0.567627,0.1648 1.037598,0.4029 l 0,1.2756 -0.06104,0 q -0.524903,-0.4089 -1.086426,-0.6286 -0.55542,-0.2198 -1.086426,-0.2198 -0.976562,0 -1.544189,0.6592 -0.561524,0.6531 -0.561524,1.9226 0,1.2329 0.549317,1.8982 0.55542,0.6592 1.556396,0.6592 0.347901,0 0.708008,-0.092 0.360107,-0.091 0.646973,-0.238 0.250244,-0.1282 0.46997,-0.2686 0.219727,-0.1464 0.347901,-0.2502 l 0.06104,0 0,1.2634 z"
|
||||||
|
style=""
|
||||||
|
id="path4146" />
|
||||||
|
<path
|
||||||
|
d="m 41.876569,1045.0408 -1.147461,0 0,-3.8819 q 0,-0.4699 -0.05493,-0.8789 -0.05493,-0.415 -0.201416,-0.6469 -0.152588,-0.2564 -0.439453,-0.3785 -0.286866,-0.1281 -0.744629,-0.1281 -0.469971,0 -0.982666,0.2319 -0.512696,0.2319 -0.982666,0.592 l 0,5.0904 -1.147461,0 0,-9.4971 1.147461,0 0,3.4363 q 0.537109,-0.4456 1.110839,-0.6958 0.573731,-0.2503 1.177979,-0.2503 1.104736,0 1.68457,0.6653 0.579834,0.6653 0.579834,1.9165 l 0,4.4251 z"
|
||||||
|
style=""
|
||||||
|
id="path4148" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.5 KiB |
BIN
skins/nopacity/themes/darkred/skinparts/tvguide_button.png
Normal file
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 14 KiB |