mirror of
https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
synced 2023-10-19 15:58:31 +00:00
added category indicator token to default menus
This commit is contained in:
@@ -106,6 +106,7 @@ cDisplayMenuItemDefaultView::cDisplayMenuItemDefaultView(cTemplateViewList *tmpl
|
||||
this->tabs = tabs;
|
||||
this->tabWidths = tabWidths;
|
||||
maxTabs = cSkinDisplayMenu::MaxTabs;
|
||||
menuCategory = "";
|
||||
}
|
||||
|
||||
cDisplayMenuItemDefaultView::~cDisplayMenuItemDefaultView() {
|
||||
@@ -138,6 +139,9 @@ void cDisplayMenuItemDefaultView::SetTokens(void) {
|
||||
intTokens.insert(pair<string,int>("current", current));
|
||||
intTokens.insert(pair<string,int>("separator", !selectable));
|
||||
intTokens.insert(pair<string,int>("nummenuitem", num+1));
|
||||
if (menuCategory.size() > 0) {
|
||||
intTokens.insert(pair<string,int>(menuCategory, 1));
|
||||
}
|
||||
}
|
||||
|
||||
void cDisplayMenuItemDefaultView::Prepare(void) {
|
||||
@@ -173,6 +177,10 @@ cDisplayMenuItemMainView::cDisplayMenuItemMainView(cTemplateViewList *tmplList,
|
||||
number = "";
|
||||
label = "";
|
||||
icon = "";
|
||||
isPlugin = false;
|
||||
plugName = "";
|
||||
SplitMenuText();
|
||||
CheckPlugins();
|
||||
}
|
||||
|
||||
cDisplayMenuItemMainView::~cDisplayMenuItemMainView() {
|
||||
@@ -193,8 +201,11 @@ void cDisplayMenuItemMainView::SetTokens(void) {
|
||||
|
||||
void cDisplayMenuItemMainView::Prepare(void) {
|
||||
ArrangeContainer();
|
||||
SplitMenuText();
|
||||
icon = imgCache->GetIconName(label);
|
||||
if (isPlugin) {
|
||||
icon = imgCache->GetIconName(label, mcUnknown, plugName);
|
||||
} else {
|
||||
icon = imgCache->GetIconName(label);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -214,6 +225,12 @@ void cDisplayMenuItemMainView::Render(void) {
|
||||
dirty = false;
|
||||
}
|
||||
|
||||
string cDisplayMenuItemMainView::GetPluginName(void) {
|
||||
if (!isPlugin)
|
||||
return "";
|
||||
return plugName;
|
||||
}
|
||||
|
||||
void cDisplayMenuItemMainView::Debug(void) {
|
||||
esyslog("skindesigner: Main Menu Item ---------------");
|
||||
cDisplayMenuItemView::Debug();
|
||||
@@ -266,6 +283,24 @@ void cDisplayMenuItemMainView::SplitMenuText(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void cDisplayMenuItemMainView::CheckPlugins(void) {
|
||||
for (int i = 0; ; i++) {
|
||||
cPlugin *p = cPluginManager::GetPlugin(i);
|
||||
if (p) {
|
||||
const char *mainMenuEntry = p->MainMenuEntry();
|
||||
if (mainMenuEntry) {
|
||||
string plugMainEntry = mainMenuEntry;
|
||||
if (label.substr(0, plugMainEntry.size()) == plugMainEntry) {
|
||||
isPlugin = true;
|
||||
plugName = p->Name() ? p->Name() : "";
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************
|
||||
* cDisplayMenuItemSchedulesView
|
||||
*************************************************************/
|
||||
|
@@ -42,11 +42,13 @@ private:
|
||||
int *tabWidths;
|
||||
string *tabTexts;
|
||||
int maxTabs;
|
||||
string menuCategory;
|
||||
public:
|
||||
cDisplayMenuItemDefaultView(cTemplateViewList *tmplList, string *tabTexts, int *tabs, int *tabWidths, bool current, bool selectable);
|
||||
virtual ~cDisplayMenuItemDefaultView();
|
||||
void SetTabTexts(string *tabTexts);
|
||||
void SetTokens(void);
|
||||
void SetMenuCategory(string cat) { menuCategory = cat; };
|
||||
void Prepare(void);
|
||||
void Render(void);
|
||||
void Debug(void);
|
||||
@@ -54,17 +56,21 @@ public:
|
||||
|
||||
class cDisplayMenuItemMainView: public cDisplayMenuItemView {
|
||||
private:
|
||||
bool isPlugin;
|
||||
string plugName;
|
||||
string text;
|
||||
string number;
|
||||
string label;
|
||||
string icon;
|
||||
void SplitMenuText(void);
|
||||
void CheckPlugins(void);
|
||||
public:
|
||||
cDisplayMenuItemMainView(cTemplateViewList *tmplList, string itemText, bool current, bool selectable);
|
||||
virtual ~cDisplayMenuItemMainView();
|
||||
void SetTokens(void);
|
||||
void Prepare(void);
|
||||
void Render(void);
|
||||
string GetPluginName(void);
|
||||
void Debug(void);
|
||||
};
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#include "displaymenulistview.h"
|
||||
|
||||
|
||||
cDisplayMenuListView::cDisplayMenuListView(cTemplateViewList *tmplList, int count) {
|
||||
cDisplayMenuListView::cDisplayMenuListView(cTemplateViewList *tmplList, int count, eMenuCategory cat, string currentPlug) {
|
||||
oneColumn = true;
|
||||
this->tmplList = tmplList;
|
||||
if (count < 0) {
|
||||
@@ -15,6 +15,8 @@ cDisplayMenuListView::cDisplayMenuListView(cTemplateViewList *tmplList, int coun
|
||||
intTokens.insert(pair<string,int>("numelements", count));
|
||||
tmplList->CalculateListParameters(&intTokens);
|
||||
}
|
||||
this->cat = cat;
|
||||
this->currentPlug = currentPlug;
|
||||
menuItems = new cDisplayMenuItemView*[itemCount];
|
||||
for (int i=0; i<itemCount; i++)
|
||||
menuItems[i] = NULL;
|
||||
@@ -111,19 +113,24 @@ void cDisplayMenuListView::AddDefaultMenuItem(int index, string *tabTexts, bool
|
||||
break;
|
||||
}
|
||||
}
|
||||
cDisplayMenuItemView *item = new cDisplayMenuItemDefaultView(tmplList, tabTexts, tabs, tabWidths, current, selectable);
|
||||
cDisplayMenuItemDefaultView *item = new cDisplayMenuItemDefaultView(tmplList, tabTexts, tabs, tabWidths, current, selectable);
|
||||
item->SetMenuCategory(GetDefaultMenuCategory());
|
||||
menuItems[index] = item;
|
||||
}
|
||||
|
||||
void cDisplayMenuListView::AddMainMenuItem(int index, const char *itemText, bool current, bool selectable) {
|
||||
string cDisplayMenuListView::AddMainMenuItem(int index, const char *itemText, bool current, bool selectable) {
|
||||
if (index >= itemCount)
|
||||
return;
|
||||
return "";
|
||||
if (menuItems[index]) {
|
||||
menuItems[index]->SetCurrent(current);
|
||||
return;
|
||||
cDisplayMenuItemMainView *menuItem = dynamic_cast<cDisplayMenuItemMainView*>(menuItems[index]);
|
||||
if (!menuItem)
|
||||
return "";
|
||||
menuItem->SetCurrent(current);
|
||||
return menuItem->GetPluginName();
|
||||
}
|
||||
cDisplayMenuItemView *item = new cDisplayMenuItemMainView(tmplList, itemText, current, selectable);
|
||||
cDisplayMenuItemMainView *item = new cDisplayMenuItemMainView(tmplList, itemText, current, selectable);
|
||||
menuItems[index] = item;
|
||||
return item->GetPluginName();
|
||||
}
|
||||
|
||||
void cDisplayMenuListView::AddSetupMenuItem(int index, const char *itemText, bool current, bool selectable) {
|
||||
@@ -241,3 +248,13 @@ void cDisplayMenuListView::Debug(void) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
string cDisplayMenuListView::GetDefaultMenuCategory(void) {
|
||||
if (cat == mcSchedule || cat == mcScheduleNow || cat == mcScheduleNext)
|
||||
return "schedule";
|
||||
else if (cat >= mcPluginSetup && cat <= mcSetupPlugins)
|
||||
return "setup";
|
||||
else if (cat == mcCommand)
|
||||
return "commands";
|
||||
return currentPlug;
|
||||
}
|
||||
|
@@ -8,20 +8,23 @@
|
||||
class cDisplayMenuListView {
|
||||
private:
|
||||
cTemplateViewList *tmplList;
|
||||
eMenuCategory cat;
|
||||
string currentPlug;
|
||||
int itemCount;
|
||||
cDisplayMenuItemView **menuItems;
|
||||
int *tabs;
|
||||
int *tabWidths;
|
||||
bool oneColumn;
|
||||
string GetDefaultMenuCategory(void);
|
||||
public:
|
||||
cDisplayMenuListView(cTemplateViewList *tmplList, int count = -1);
|
||||
cDisplayMenuListView(cTemplateViewList *tmplList, int count, eMenuCategory cat = mcUnknown, string currentPlug = "");
|
||||
virtual ~cDisplayMenuListView();
|
||||
void Clear(void);
|
||||
void SetTabs(int tab1, int tab2, int tab3, int tab4, int tab5);
|
||||
int GetMaxItems(void) { return itemCount; };
|
||||
int GetListWidth(void);
|
||||
void AddDefaultMenuItem(int index, string *tabTexts, bool current, bool selectable);
|
||||
void AddMainMenuItem(int index, const char *itemText, bool current, bool selectable);
|
||||
string AddMainMenuItem(int index, const char *itemText, bool current, bool selectable);
|
||||
void AddSetupMenuItem(int index, const char *itemText, bool current, bool selectable);
|
||||
void AddSchedulesMenuItem(int index, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch, eMenuCategory cat, bool isEpgSearchFav, bool current, bool selectable);
|
||||
void AddChannelsMenuItem(int index, const cChannel *channel, bool withProvider, bool current, bool selectable);
|
||||
|
@@ -7,6 +7,7 @@
|
||||
|
||||
cDisplayMenuRootView::cDisplayMenuRootView(cTemplateView *rootView) : cView(rootView) {
|
||||
cat = mcUndefined;
|
||||
selectedPluginMainMenu = "";
|
||||
sortMode = msmUnknown;
|
||||
sortModeLast = msmUnknown;
|
||||
menuTitle = "";
|
||||
@@ -208,7 +209,7 @@ void cDisplayMenuRootView::SetMenu(eMenuCategory menuCat, bool menuInit) {
|
||||
cTemplateViewList *tmplMenuItems = subView->GetViewList(vlMenuItem);
|
||||
if (!tmplMenuItems)
|
||||
return;
|
||||
listView = new cDisplayMenuListView(tmplMenuItems);
|
||||
listView = new cDisplayMenuListView(tmplMenuItems, -1, menuCat, selectedPluginMainMenu);
|
||||
} else {
|
||||
//Create detailed view
|
||||
detailView = new cDisplayMenuDetailView(subView);
|
||||
|
@@ -15,6 +15,7 @@ enum ePluginMenuType {
|
||||
class cDisplayMenuRootView : public cView, public cViewHelpers {
|
||||
private:
|
||||
eMenuCategory cat;
|
||||
string selectedPluginMainMenu;
|
||||
eMenuSortMode sortMode;
|
||||
eMenuSortMode sortModeLast;
|
||||
eSubView viewType;
|
||||
@@ -51,6 +52,7 @@ public:
|
||||
virtual ~cDisplayMenuRootView();
|
||||
bool createOsd(void);
|
||||
void SetMenu(eMenuCategory menuCat, bool menuInit);
|
||||
void SetSelectedPluginMainMenu(string name) { selectedPluginMainMenu = name; };
|
||||
void SetSortMode(eMenuSortMode sortMode);
|
||||
void SetCurrentRecording(string rec) { currentRecording = rec; };
|
||||
void CorrectDefaultMenu(void);
|
||||
|
Reference in New Issue
Block a user