mirror of
https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
synced 2023-10-19 15:58:31 +00:00
implemented horizontal menus
This commit is contained in:
@@ -149,6 +149,15 @@ void cGlobals::ReplaceStringVars(string &value) {
|
||||
|
||||
}
|
||||
|
||||
bool cGlobals::GetString(string &name, string &value) {
|
||||
map<string,string>::iterator hit = stringVars.find(name);
|
||||
if (hit == stringVars.end())
|
||||
return false;
|
||||
value = hit->second;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool cGlobals::AddTranslation(string name, map < string, string > transl) {
|
||||
translations.erase(name);
|
||||
translations.insert(pair<string, map < string, string > >(name, transl));
|
||||
|
||||
@@ -47,6 +47,7 @@ public:
|
||||
void ReplaceDoubleVars(string &value);
|
||||
void AddString(string &name, string &value);
|
||||
void ReplaceStringVars(string &value);
|
||||
bool GetString(string &name, string &value);
|
||||
bool AddTranslation(string name, map < string, string > transl);
|
||||
bool Translate(string text, string &translation);
|
||||
void AddCustomInt(string &name, int value);
|
||||
|
||||
@@ -291,6 +291,14 @@ void cConditionalParameter::Evaluate(map < string, int > *intTokens, map < strin
|
||||
tokenTrue = true;
|
||||
}
|
||||
}
|
||||
if (!tokenTrue) {
|
||||
string value = "";
|
||||
if (globals->GetString(cond->tokenName, value)) {
|
||||
if (!value.compare(cond->strCompareValue)) {
|
||||
tokenTrue = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (cond->type == ctStringNotEquals) {
|
||||
if (stringTokens) {
|
||||
map < string, string >::iterator hit = stringTokens->find(cond->tokenName);
|
||||
@@ -313,6 +321,14 @@ void cConditionalParameter::Evaluate(map < string, int > *intTokens, map < strin
|
||||
tokenTrue = true;
|
||||
}
|
||||
}
|
||||
if (!tokenTrue) {
|
||||
string value = "";
|
||||
if (globals->GetString(cond->tokenName, value)) {
|
||||
if (value.find(cond->strCompareValue) != string::npos) {
|
||||
tokenTrue = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (cond->type == ctStringNotContains) {
|
||||
if (stringTokens) {
|
||||
map < string, string >::iterator hit = stringTokens->find(cond->tokenName);
|
||||
@@ -472,6 +488,6 @@ string cConditionalParameter::StripWhitespaces(string value) {
|
||||
void cConditionalParameter::Debug(void) {
|
||||
dsyslog("skindesigner: Condition %s, Type: %s, cond is %s", value.c_str(), (type == cpAnd)?"and combination":((type == cpOr)?"or combination":"single param") , isTrue?"true":"false");
|
||||
for (vector<sCondition>::iterator it = conditions.begin(); it != conditions.end(); it++) {
|
||||
dsyslog("skindesigner: cond token %s, type: %d, compareValue %d, negated: %d", it->tokenName.c_str(), it->type, it->compareValue, it->isNegated);
|
||||
dsyslog("skindesigner: cond token %s, type: %d, compareValue %d, negated: %d, strCompareValue %s", it->tokenName.c_str(), it->type, it->compareValue, it->isNegated, it->strCompareValue.c_str());
|
||||
}
|
||||
}
|
||||
@@ -14,11 +14,11 @@ cTemplateView::cTemplateView(void) {
|
||||
}
|
||||
|
||||
cTemplateView::~cTemplateView() {
|
||||
for (map < eViewElement, cTemplateViewElement* >::iterator it = viewElements.begin(); it != viewElements.end(); it++) {
|
||||
for (multimap < eViewElement, cTemplateViewElement* >::iterator it = viewElements.begin(); it != viewElements.end(); it++) {
|
||||
delete it->second;
|
||||
}
|
||||
|
||||
for (map < eViewList, cTemplateViewList* >::iterator it = viewLists.begin(); it != viewLists.end(); it++) {
|
||||
for (multimap < eViewList, cTemplateViewList* >::iterator it = viewLists.begin(); it != viewLists.end(); it++) {
|
||||
delete it->second;
|
||||
}
|
||||
|
||||
@@ -64,11 +64,15 @@ void cTemplateView::SetContainer(int x, int y, int width, int height) {
|
||||
}
|
||||
|
||||
cTemplateViewElement *cTemplateView::GetViewElement(eViewElement ve) {
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end()) {
|
||||
return NULL;
|
||||
pair<multimap< eViewElement, cTemplateViewElement* >::iterator, multimap< eViewElement, cTemplateViewElement* >::iterator> rangeViewElements;
|
||||
rangeViewElements = viewElements.equal_range(ve);
|
||||
for (multimap<eViewElement, cTemplateViewElement*>::iterator it = rangeViewElements.first; it!=rangeViewElements.second; ++it) {
|
||||
cTemplateViewElement *viewElement = it->second;
|
||||
if (viewElement->Execute()) {
|
||||
return viewElement;
|
||||
}
|
||||
}
|
||||
return hit->second;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void cTemplateView::InitViewElementIterator(void) {
|
||||
@@ -104,10 +108,21 @@ cTemplateViewGrid *cTemplateView::GetNextViewGrid(void) {
|
||||
}
|
||||
|
||||
cTemplateViewList *cTemplateView::GetViewList(eViewList vl) {
|
||||
map < eViewList, cTemplateViewList* >::iterator hit = viewLists.find(vl);
|
||||
if (hit == viewLists.end())
|
||||
return NULL;
|
||||
return hit->second;
|
||||
if (viewLists.size() == 1) {
|
||||
multimap < eViewList, cTemplateViewList* >::iterator hit = viewLists.find(vl);
|
||||
if (hit == viewLists.end())
|
||||
return NULL;
|
||||
return hit->second;
|
||||
}
|
||||
pair<multimap< eViewList, cTemplateViewList* >::iterator, multimap< eViewList, cTemplateViewList* >::iterator> rangeViewLists;
|
||||
rangeViewLists = viewLists.equal_range(vl);
|
||||
for (multimap<eViewList, cTemplateViewList*>::iterator it = rangeViewLists.first; it!=rangeViewLists.second; ++it) {
|
||||
cTemplateViewList *viewList = it->second;
|
||||
if (viewList->Execute()) {
|
||||
return viewList;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void cTemplateView::InitViewListIterator(void) {
|
||||
@@ -190,7 +205,7 @@ cRect cTemplateView::GetOsdSize(void) {
|
||||
|
||||
int cTemplateView::GetNumPixmaps(void) {
|
||||
int numPixmaps = 0;
|
||||
for (map < eViewElement, cTemplateViewElement* >::iterator it = viewElements.begin(); it != viewElements.end(); it++) {
|
||||
for (multimap < eViewElement, cTemplateViewElement* >::iterator it = viewElements.begin(); it != viewElements.end(); it++) {
|
||||
cTemplateViewElement *viewElement = it->second;
|
||||
numPixmaps += viewElement->GetNumPixmaps();
|
||||
}
|
||||
@@ -198,10 +213,9 @@ int cTemplateView::GetNumPixmaps(void) {
|
||||
}
|
||||
|
||||
int cTemplateView::GetNumPixmapsViewElement(eViewElement ve) {
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end())
|
||||
cTemplateViewElement *viewElement = GetViewElement(ve);
|
||||
if (!viewElement)
|
||||
return 0;
|
||||
cTemplateViewElement *viewElement = hit->second;
|
||||
return viewElement->GetNumPixmaps();
|
||||
}
|
||||
|
||||
@@ -248,15 +262,14 @@ tColor cTemplateView::DebugGridFontColor(void) {
|
||||
}
|
||||
|
||||
bool cTemplateView::ExecuteView(eViewElement ve) {
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end())
|
||||
cTemplateViewElement *viewElement = GetViewElement(ve);
|
||||
if (!viewElement)
|
||||
return false;
|
||||
cTemplateViewElement *viewElement = hit->second;
|
||||
return viewElement->Execute();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cTemplateView::DetachViewElement(eViewElement ve) {
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
multimap < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end())
|
||||
return false;
|
||||
cTemplateViewElement *viewElement = hit->second;
|
||||
@@ -264,10 +277,9 @@ bool cTemplateView::DetachViewElement(eViewElement ve) {
|
||||
}
|
||||
|
||||
string cTemplateView::GetViewElementMode(eViewElement ve) {
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end())
|
||||
cTemplateViewElement *viewElement = GetViewElement(ve);
|
||||
if (!viewElement)
|
||||
return "";
|
||||
cTemplateViewElement *viewElement = hit->second;
|
||||
return viewElement->GetMode();
|
||||
}
|
||||
|
||||
@@ -563,9 +575,8 @@ void cTemplateView::PreCache(bool isSubview) {
|
||||
int osdWidth = parameters->GetNumericParameter(ptWidth);
|
||||
int osdHeight = parameters->GetNumericParameter(ptHeight);
|
||||
int pixOffset = 0;
|
||||
|
||||
//Cache ViewElements
|
||||
for (map < eViewElement, cTemplateViewElement* >::iterator it = viewElements.begin(); it != viewElements.end(); it++) {
|
||||
for (multimap < eViewElement, cTemplateViewElement* >::iterator it = viewElements.begin(); it != viewElements.end(); it++) {
|
||||
cTemplateViewElement *viewElement = it->second;
|
||||
viewElement->SetGlobals(globals);
|
||||
if (!isSubview)
|
||||
@@ -588,7 +599,7 @@ void cTemplateView::PreCache(bool isSubview) {
|
||||
}
|
||||
|
||||
//Cache ViewLists
|
||||
for (map < eViewList, cTemplateViewList* >::iterator it = viewLists.begin(); it != viewLists.end(); it++) {
|
||||
for (multimap < eViewList, cTemplateViewList* >::iterator it = viewLists.begin(); it != viewLists.end(); it++) {
|
||||
cTemplateViewList *viewList = it->second;
|
||||
viewList->SetGlobals(globals);
|
||||
//viewlists in subviews need complete container information
|
||||
@@ -632,13 +643,13 @@ void cTemplateView::Debug(void) {
|
||||
|
||||
parameters->Debug();
|
||||
|
||||
for (map < eViewElement, cTemplateViewElement* >::iterator it = viewElements.begin(); it != viewElements.end(); it++) {
|
||||
for (multimap < eViewElement, cTemplateViewElement* >::iterator it = viewElements.begin(); it != viewElements.end(); it++) {
|
||||
esyslog("skindesigner: ++++++++ ViewElement: %s", GetViewElementName(it->first).c_str());
|
||||
cTemplateViewElement *viewElement = it->second;
|
||||
viewElement->Debug();
|
||||
}
|
||||
|
||||
for (map < eViewList, cTemplateViewList* >::iterator it = viewLists.begin(); it != viewLists.end(); it++) {
|
||||
for (multimap < eViewList, cTemplateViewList* >::iterator it = viewLists.begin(); it != viewLists.end(); it++) {
|
||||
esyslog("skindesigner: ++++++++ ViewList: %s", GetViewListName(it->first).c_str());
|
||||
cTemplateViewList *viewList = it->second;
|
||||
viewList->Debug();
|
||||
@@ -787,6 +798,7 @@ void cTemplateView::SetFunctionDefinitions(void) {
|
||||
attributes.insert("width");
|
||||
attributes.insert("height");
|
||||
attributes.insert("align");
|
||||
attributes.insert("valign");
|
||||
attributes.insert("maxlines");
|
||||
attributes.insert("font");
|
||||
attributes.insert("fontsize");
|
||||
@@ -1008,7 +1020,7 @@ string cTemplateViewChannel::GetViewElementName(eViewElement ve) {
|
||||
return name;
|
||||
}
|
||||
|
||||
void cTemplateViewChannel::AddPixmap(string sViewElement, cTemplatePixmapNode *pix, vector<stringpair> &viewElementattributes) {
|
||||
void cTemplateViewChannel::AddViewElement(string sViewElement, cTemplateViewElement *viewElement) {
|
||||
eViewElement ve = veUndefined;
|
||||
|
||||
if (!sViewElement.compare("background")) {
|
||||
@@ -1055,17 +1067,7 @@ void cTemplateViewChannel::AddPixmap(string sViewElement, cTemplatePixmapNode *p
|
||||
return;
|
||||
}
|
||||
|
||||
pix->SetGlobals(globals);
|
||||
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end()) {
|
||||
cTemplateViewElement *viewElement = new cTemplateViewElement();
|
||||
viewElement->SetParameters(viewElementattributes);
|
||||
viewElement->AddPixmap(pix);
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
} else {
|
||||
(hit->second)->AddPixmap(pix);
|
||||
}
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
}
|
||||
|
||||
/************************************************************************************
|
||||
@@ -1246,6 +1248,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
|
||||
attributes.insert("menuitemwidth");
|
||||
attributes.insert("determinatefont");
|
||||
attributes.insert("numlistelements");
|
||||
attributes.insert("condition");
|
||||
funcsAllowed.insert(pair< string, set<string> >("menuitems", attributes));
|
||||
|
||||
//definition of allowed parameters for currentitems viewlist
|
||||
@@ -1516,7 +1519,7 @@ void cTemplateViewMenu::AddPluginView(string plugName, int templNo, cTemplateVie
|
||||
}
|
||||
}
|
||||
|
||||
void cTemplateViewMenu::AddPixmap(string sViewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes) {
|
||||
void cTemplateViewMenu::AddViewElement(string sViewElement, cTemplateViewElement *viewElement) {
|
||||
eViewElement ve = veUndefined;
|
||||
|
||||
if (!sViewElement.compare("background")) {
|
||||
@@ -1568,20 +1571,7 @@ void cTemplateViewMenu::AddPixmap(string sViewElement, cTemplatePixmapNode *pix,
|
||||
return;
|
||||
}
|
||||
|
||||
pix->SetGlobals(globals);
|
||||
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end()) {
|
||||
cTemplateViewElement *viewElement = new cTemplateViewElement();
|
||||
viewElement->SetParameters(viewElementattributes);
|
||||
if (viewElement->DebugTokens()) {
|
||||
dsyslog("skindesigner: activating token debugging for view element %s", sViewElement.c_str());
|
||||
}
|
||||
viewElement->AddPixmap(pix);
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
} else {
|
||||
(hit->second)->AddPixmap(pix);
|
||||
}
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
}
|
||||
|
||||
void cTemplateViewMenu::AddViewList(string sViewList, cTemplateViewList *viewList) {
|
||||
@@ -1657,7 +1647,7 @@ string cTemplateViewMessage::GetViewElementName(eViewElement ve) {
|
||||
return name;
|
||||
}
|
||||
|
||||
void cTemplateViewMessage::AddPixmap(string sViewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes) {
|
||||
void cTemplateViewMessage::AddViewElement(string sViewElement, cTemplateViewElement *viewElement) {
|
||||
eViewElement ve = veUndefined;
|
||||
|
||||
if (!sViewElement.compare("background")) {
|
||||
@@ -1671,17 +1661,7 @@ void cTemplateViewMessage::AddPixmap(string sViewElement, cTemplatePixmapNode *p
|
||||
return;
|
||||
}
|
||||
|
||||
pix->SetGlobals(globals);
|
||||
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end()) {
|
||||
cTemplateViewElement *viewElement = new cTemplateViewElement();
|
||||
viewElement->SetParameters(viewElementattributes);
|
||||
viewElement->AddPixmap(pix);
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
} else {
|
||||
(hit->second)->AddPixmap(pix);
|
||||
}
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
}
|
||||
|
||||
/************************************************************************************
|
||||
@@ -1814,7 +1794,7 @@ string cTemplateViewReplay::GetViewElementName(eViewElement ve) {
|
||||
return name;
|
||||
}
|
||||
|
||||
void cTemplateViewReplay::AddPixmap(string sViewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes) {
|
||||
void cTemplateViewReplay::AddViewElement(string sViewElement, cTemplateViewElement *viewElement) {
|
||||
eViewElement ve = veUndefined;
|
||||
|
||||
if (!sViewElement.compare("background")) {
|
||||
@@ -1864,17 +1844,7 @@ void cTemplateViewReplay::AddPixmap(string sViewElement, cTemplatePixmapNode *pi
|
||||
return;
|
||||
}
|
||||
|
||||
pix->SetGlobals(globals);
|
||||
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end()) {
|
||||
cTemplateViewElement *viewElement = new cTemplateViewElement();
|
||||
viewElement->SetParameters(viewElementattributes);
|
||||
viewElement->AddPixmap(pix);
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
} else {
|
||||
(hit->second)->AddPixmap(pix);
|
||||
}
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
}
|
||||
|
||||
|
||||
@@ -1931,7 +1901,7 @@ string cTemplateViewVolume::GetViewElementName(eViewElement ve) {
|
||||
return name;
|
||||
}
|
||||
|
||||
void cTemplateViewVolume::AddPixmap(string sViewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes) {
|
||||
void cTemplateViewVolume::AddViewElement(string sViewElement, cTemplateViewElement *viewElement) {
|
||||
eViewElement ve = veUndefined;
|
||||
|
||||
if (!sViewElement.compare("background")) {
|
||||
@@ -1945,17 +1915,7 @@ void cTemplateViewVolume::AddPixmap(string sViewElement, cTemplatePixmapNode *pi
|
||||
return;
|
||||
}
|
||||
|
||||
pix->SetGlobals(globals);
|
||||
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end()) {
|
||||
cTemplateViewElement *viewElement = new cTemplateViewElement();
|
||||
viewElement->SetParameters(viewElementattributes);
|
||||
viewElement->AddPixmap(pix);
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
} else {
|
||||
(hit->second)->AddPixmap(pix);
|
||||
}
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
}
|
||||
|
||||
/************************************************************************************
|
||||
@@ -2041,7 +2001,7 @@ string cTemplateViewAudioTracks::GetViewListName(eViewList vl) {
|
||||
return name;
|
||||
}
|
||||
|
||||
void cTemplateViewAudioTracks::AddPixmap(string sViewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes) {
|
||||
void cTemplateViewAudioTracks::AddViewElement(string sViewElement, cTemplateViewElement *viewElement) {
|
||||
eViewElement ve = veUndefined;
|
||||
|
||||
if (!sViewElement.compare("background")) {
|
||||
@@ -2055,17 +2015,7 @@ void cTemplateViewAudioTracks::AddPixmap(string sViewElement, cTemplatePixmapNod
|
||||
return;
|
||||
}
|
||||
|
||||
pix->SetGlobals(globals);
|
||||
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end()) {
|
||||
cTemplateViewElement *viewElement = new cTemplateViewElement();
|
||||
viewElement->SetParameters(viewElementattributes);
|
||||
viewElement->AddPixmap(pix);
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
} else {
|
||||
(hit->second)->AddPixmap(pix);
|
||||
}
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
}
|
||||
|
||||
void cTemplateViewAudioTracks::AddViewList(string sViewList, cTemplateViewList *viewList) {
|
||||
@@ -2148,18 +2098,12 @@ void cTemplateViewPlugin::AddSubView(string sSubView, cTemplateView *subView) {
|
||||
subViews.insert(pair< eSubView, cTemplateView* >((eSubView)subViewId, subView));
|
||||
}
|
||||
|
||||
void cTemplateViewPlugin::AddPixmap(string sViewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes) {
|
||||
void cTemplateViewPlugin::AddViewElement(string sViewElement, cTemplateViewElement *viewElement) {
|
||||
eViewElement ve = veUndefined;
|
||||
string viewElementName = "";
|
||||
int viewElementID = -1;
|
||||
bool found = false;
|
||||
for (vector<pair<string, string> >::iterator it = viewElementattributes.begin(); it != viewElementattributes.end(); it++) {
|
||||
if (!(it->first).compare("name")) {
|
||||
viewElementName = it->second;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool found = viewElement->GetName(viewElementName);
|
||||
|
||||
if (found) {
|
||||
viewElementID = config.GetPluginViewElementID(pluginName, viewElementName, viewID);
|
||||
@@ -2178,30 +2122,14 @@ void cTemplateViewPlugin::AddPixmap(string sViewElement, cTemplatePixmapNode *pi
|
||||
viewElementID = pve;
|
||||
}
|
||||
|
||||
pix->SetGlobals(globals);
|
||||
|
||||
ve = (eViewElement)viewElementID;
|
||||
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
|
||||
if (hit == viewElements.end()) {
|
||||
cTemplateViewElement *viewElement = new cTemplateViewElement();
|
||||
viewElement->SetParameters(viewElementattributes);
|
||||
viewElement->AddPixmap(pix);
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
} else {
|
||||
(hit->second)->AddPixmap(pix);
|
||||
}
|
||||
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
|
||||
}
|
||||
|
||||
void cTemplateViewPlugin::AddPixmapGrid(cTemplatePixmapNode *pix, vector<pair<string, string> > &gridAttributes) {
|
||||
void cTemplateViewPlugin::AddGrid(cTemplateViewGrid *viewGrid) {
|
||||
string gridName = "";
|
||||
bool found = false;
|
||||
for (vector<pair<string, string> >::iterator it = gridAttributes.begin(); it != gridAttributes.end(); it++) {
|
||||
if (!(it->first).compare("name")) {
|
||||
gridName = it->second;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
bool found = viewGrid->GetName(gridName);
|
||||
|
||||
if (!found) {
|
||||
esyslog("skindesigner: no name defined for plugin %s grid", pluginName.c_str());
|
||||
}
|
||||
@@ -2212,17 +2140,7 @@ void cTemplateViewPlugin::AddPixmapGrid(cTemplatePixmapNode *pix, vector<pair<st
|
||||
return;
|
||||
}
|
||||
|
||||
pix->SetGlobals(globals);
|
||||
|
||||
map < int, cTemplateViewGrid* >::iterator hit = viewGrids.find(gridID);
|
||||
if (hit == viewGrids.end()) {
|
||||
cTemplateViewGrid *viewGrid = new cTemplateViewGrid();
|
||||
viewGrid->SetParameters(gridAttributes);
|
||||
viewGrid->AddPixmap(pix);
|
||||
viewGrids.insert(pair< int, cTemplateViewGrid*>(gridID, viewGrid));
|
||||
} else {
|
||||
(hit->second)->AddPixmap(pix);
|
||||
}
|
||||
viewGrids.insert(pair< int, cTemplateViewGrid*>(gridID, viewGrid));
|
||||
}
|
||||
|
||||
void cTemplateViewPlugin::AddViewTab(cTemplateViewTab *viewTab) {
|
||||
|
||||
@@ -49,8 +49,8 @@ protected:
|
||||
int containerWidth;
|
||||
int containerHeight;
|
||||
//basic view data structures
|
||||
map < eViewElement, cTemplateViewElement* > viewElements;
|
||||
map < eViewList, cTemplateViewList* > viewLists;
|
||||
multimap < eViewElement, cTemplateViewElement* > viewElements;
|
||||
multimap < eViewList, cTemplateViewList* > viewLists;
|
||||
map < int, cTemplateViewGrid* > viewGrids;
|
||||
map < eSubView, cTemplateView* > subViews;
|
||||
vector< cTemplateViewTab* > viewTabs;
|
||||
@@ -76,8 +76,8 @@ public:
|
||||
virtual string GetViewListName(eViewList vl) { return ""; };
|
||||
virtual void AddSubView(string sSubView, cTemplateView *subView) {};
|
||||
virtual void AddPluginView(string plugName, int templNo, cTemplateView *plugView) {};
|
||||
virtual void AddPixmap(string sViewElement, cTemplatePixmapNode *pix, vector<stringpair> &viewElementattributes) {};
|
||||
virtual void AddPixmapGrid(cTemplatePixmapNode *pix, vector<pair<string, string> > &gridAttributes) {};
|
||||
virtual void AddViewElement(string sViewElement, cTemplateViewElement *viewElement) {};
|
||||
virtual void AddGrid(cTemplateViewGrid *viewGrid) {};
|
||||
virtual void AddViewList(string sViewList, cTemplateViewList *viewList) {};
|
||||
virtual void AddViewTab(cTemplateViewTab *viewTab) {};
|
||||
//Setter Functions
|
||||
@@ -151,7 +151,7 @@ public:
|
||||
cTemplateViewChannel(void);
|
||||
virtual ~cTemplateViewChannel(void);
|
||||
string GetViewElementName(eViewElement ve);
|
||||
void AddPixmap(string viewElement, cTemplatePixmapNode *pix, vector<stringpair> &viewElementattributes);
|
||||
void AddViewElement(string sViewElement, cTemplateViewElement *viewElement);
|
||||
};
|
||||
|
||||
// --- cTemplateViewMenu -------------------------------------------------------------
|
||||
@@ -169,7 +169,7 @@ public:
|
||||
string GetViewListName(eViewList vl);
|
||||
void AddSubView(string sSubView, cTemplateView *subView);
|
||||
void AddPluginView(string plugName, int templNo, cTemplateView *plugView);
|
||||
void AddPixmap(string viewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes);
|
||||
void AddViewElement(string sViewElement, cTemplateViewElement *viewElement);
|
||||
void AddViewList(string sViewList, cTemplateViewList *viewList);
|
||||
void AddViewTab(cTemplateViewTab *viewTab);
|
||||
};
|
||||
@@ -183,7 +183,7 @@ public:
|
||||
cTemplateViewMessage(void);
|
||||
virtual ~cTemplateViewMessage(void);
|
||||
string GetViewElementName(eViewElement ve);
|
||||
void AddPixmap(string viewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes);
|
||||
void AddViewElement(string sViewElement, cTemplateViewElement *viewElement);
|
||||
};
|
||||
|
||||
// --- cTemplateViewReplay -------------------------------------------------------------
|
||||
@@ -195,7 +195,7 @@ public:
|
||||
cTemplateViewReplay(void);
|
||||
virtual ~cTemplateViewReplay(void);
|
||||
string GetViewElementName(eViewElement ve);
|
||||
void AddPixmap(string viewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes);
|
||||
void AddViewElement(string sViewElement, cTemplateViewElement *viewElement);
|
||||
};
|
||||
|
||||
// --- cTemplateViewVolume -------------------------------------------------------------
|
||||
@@ -207,7 +207,7 @@ public:
|
||||
cTemplateViewVolume(void);
|
||||
virtual ~cTemplateViewVolume(void);
|
||||
string GetViewElementName(eViewElement ve);
|
||||
void AddPixmap(string viewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes);
|
||||
void AddViewElement(string sViewElement, cTemplateViewElement *viewElement);
|
||||
};
|
||||
|
||||
// --- cTemplateViewAudioTracks -------------------------------------------------------------
|
||||
@@ -221,7 +221,7 @@ public:
|
||||
virtual ~cTemplateViewAudioTracks(void);
|
||||
string GetViewElementName(eViewElement ve);
|
||||
string GetViewListName(eViewList vl);
|
||||
void AddPixmap(string viewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes);
|
||||
void AddViewElement(string sViewElement, cTemplateViewElement *viewElement);
|
||||
void AddViewList(string sViewList, cTemplateViewList *viewList);
|
||||
};
|
||||
|
||||
@@ -235,8 +235,8 @@ public:
|
||||
cTemplateViewPlugin(string pluginName, int viewID);
|
||||
virtual ~cTemplateViewPlugin(void);
|
||||
void AddSubView(string sSubView, cTemplateView *subView);
|
||||
void AddPixmap(string viewElement, cTemplatePixmapNode *pix, vector<pair<string, string> > &viewElementattributes);
|
||||
void AddPixmapGrid(cTemplatePixmapNode *pix, vector<pair<string, string> > &gridAttributes);
|
||||
void AddViewElement(string sViewElement, cTemplateViewElement *viewElement);
|
||||
void AddGrid(cTemplateViewGrid *viewGrid);
|
||||
void AddViewTab(cTemplateViewTab *viewTab);
|
||||
};
|
||||
|
||||
|
||||
@@ -97,6 +97,15 @@ int cTemplateViewElement::GetNumPixmaps(void) {
|
||||
return numPixmaps;
|
||||
};
|
||||
|
||||
bool cTemplateViewElement::GetName(string &name) {
|
||||
if (!parameters)
|
||||
return false;
|
||||
name = parameters->GetParameter(ptName);
|
||||
if (name.size() > 0)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void cTemplateViewElement::InitPixmapNodeIterator(void) {
|
||||
pixmapNodeIterator = viewPixmapNodes.begin();
|
||||
}
|
||||
|
||||
@@ -111,6 +111,7 @@ public:
|
||||
void SetPixOffset(int offset) { pixOffset = offset; };
|
||||
int GetPixOffset(void) { return pixOffset; };
|
||||
virtual int GetNumPixmaps(void);
|
||||
bool GetName(string &name);
|
||||
void InitPixmapNodeIterator(void);
|
||||
cTemplatePixmapNode *GetNextPixmapNode(void);
|
||||
void InitPixmapIterator(void);
|
||||
|
||||
@@ -25,9 +25,7 @@ void cTemplateViewList::SetGlobals(cGlobals *globals) {
|
||||
bool cTemplateViewList::CalculateListParameters(void) {
|
||||
if (!parameters)
|
||||
return false;
|
||||
parameters->SetContainer(containerX, containerY, containerWidth, containerHeight);
|
||||
parameters->SetGlobals(globals);
|
||||
bool paramsValid = parameters->CalculateParameters();
|
||||
bool paramsValid = false;
|
||||
if (!listElement)
|
||||
return false;
|
||||
listElement->SetContainer(parameters->GetNumericParameter(ptX),
|
||||
@@ -67,6 +65,13 @@ bool cTemplateViewList::CalculateListParameters(map < string, int > *intTokens)
|
||||
return paramsValid;
|
||||
}
|
||||
|
||||
eOrientation cTemplateViewList::GetOrientation(void) {
|
||||
if (!parameters)
|
||||
return orNone;
|
||||
int orientation = parameters->GetNumericParameter(ptOrientation);
|
||||
return (eOrientation)orientation;
|
||||
}
|
||||
|
||||
int cTemplateViewList::GetAverageFontWidth(void) {
|
||||
int defaultAverageFontWidth = 20;
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ public:
|
||||
bool CalculateListParameters(map < string, int > *intTokens);
|
||||
cTemplateViewElement *GetListElement(void) { return listElement; };
|
||||
cTemplateViewElement *GetListElementCurrent(void) { return currentElement; };
|
||||
eOrientation GetOrientation(void);
|
||||
int GetAverageFontWidth(void);
|
||||
cFont *GetTextAreaFont(void);
|
||||
int GetMenuItemWidth(void);
|
||||
|
||||
@@ -199,12 +199,16 @@ void cXmlParser::ParseViewElement(cTemplateView *subView) {
|
||||
if (!view)
|
||||
return;
|
||||
|
||||
const char *viewElement = NodeName();
|
||||
const char *viewElementName = NodeName();
|
||||
vector<stringpair> attributes = ParseAttributes();
|
||||
ValidateAttributes("viewelement", attributes);
|
||||
|
||||
if (!LevelDown())
|
||||
return;
|
||||
|
||||
cTemplateViewElement *viewElement = new cTemplateViewElement();
|
||||
viewElement->SetParameters(attributes);
|
||||
|
||||
do {
|
||||
if (!CheckNodeName("areacontainer") && !CheckNodeName("area") && !CheckNodeName("areascroll")) {
|
||||
esyslog("skindesigner: invalid tag \"%s\" in viewelement", NodeName());
|
||||
@@ -216,12 +220,15 @@ void cXmlParser::ParseViewElement(cTemplateView *subView) {
|
||||
} else {
|
||||
pix = ParseAreaContainer();
|
||||
}
|
||||
if (subView)
|
||||
subView->AddPixmap(viewElement, pix, attributes);
|
||||
else
|
||||
view->AddPixmap(viewElement, pix, attributes);
|
||||
pix->SetGlobals(globals);
|
||||
viewElement->AddPixmap(pix);
|
||||
} while (NextNode());
|
||||
LevelUp();
|
||||
|
||||
if (subView)
|
||||
subView->AddViewElement(viewElementName, viewElement);
|
||||
else
|
||||
view->AddViewElement(viewElementName, viewElement);
|
||||
}
|
||||
|
||||
void cXmlParser::ParseViewList(cTemplateView *subView) {
|
||||
@@ -323,6 +330,10 @@ void cXmlParser::ParseGrid(void) {
|
||||
|
||||
if (!LevelDown())
|
||||
return;
|
||||
|
||||
cTemplateViewGrid *viewGrid = new cTemplateViewGrid();
|
||||
viewGrid->SetParameters(attributes);
|
||||
|
||||
do {
|
||||
|
||||
if (!CheckNodeName("areacontainer") && !CheckNodeName("area") && !CheckNodeName("areascroll")) {
|
||||
@@ -335,9 +346,12 @@ void cXmlParser::ParseGrid(void) {
|
||||
} else {
|
||||
pix = ParseAreaContainer();
|
||||
}
|
||||
view->AddPixmapGrid(pix, attributes);
|
||||
pix->SetGlobals(globals);
|
||||
viewGrid->AddPixmap(pix);
|
||||
} while (NextNode());
|
||||
LevelUp();
|
||||
|
||||
view->AddGrid(viewGrid);
|
||||
}
|
||||
|
||||
cTemplatePixmap *cXmlParser::ParseArea(void) {
|
||||
@@ -579,15 +593,17 @@ void cXmlParser::ParseSetupParameter(void) {
|
||||
string attributeMax = "max";
|
||||
string paramMax = "";
|
||||
string paramValue = "";
|
||||
string attributeOptions = "options";
|
||||
string paramOptions="";
|
||||
|
||||
GetAttribute(attributeType, paramType);
|
||||
GetAttribute(attributeName, paramName);
|
||||
GetAttribute(attributeDisplayText, paramDisplayText);
|
||||
GetAttribute(attributeMin, paramMin);
|
||||
GetAttribute(attributeMax, paramMax);
|
||||
GetAttribute(attributeOptions, paramOptions);
|
||||
GetNodeValue(paramValue);
|
||||
|
||||
skinSetup->SetParameter(paramType, paramName, paramDisplayText, paramMin, paramMax, paramValue);
|
||||
skinSetup->SetParameter(paramType, paramName, paramDisplayText, paramMin, paramMax, paramValue, paramOptions);
|
||||
}
|
||||
|
||||
void cXmlParser::ValidateAttributes(const char *nodeName, vector<stringpair> &attributes) {
|
||||
|
||||
Reference in New Issue
Block a user