summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2013-03-17 18:39:03 +0100
committerlouis <louis.braun@gmx.de>2013-03-17 18:39:03 +0100
commit44d0628d0e09000d25b163a210851673cc7ad695 (patch)
tree713d53e2a3c75e7bd407c630bb4ebd6e58c1352d
parent1e31f10fa68907104562b41fda09fe61485afdb0 (diff)
downloadskin-nopacity-44d0628d0e09000d25b163a210851673cc7ad695.tar.gz
skin-nopacity-44d0628d0e09000d25b163a210851673cc7ad695.tar.bz2
Display grapical progress bar in every default style VDR menu, fixed progress bar detection
-rw-r--r--displaymenu.c2
-rw-r--r--menuitem.c51
-rw-r--r--menuitem.h3
3 files changed, 27 insertions, 29 deletions
diff --git a/displaymenu.c b/displaymenu.c
index 8637231..0bedb00 100644
--- a/displaymenu.c
+++ b/displaymenu.c
@@ -551,7 +551,7 @@ void cNopacityDisplayMenu::SetItem(const char *Text, int Index, bool Current, bo
if (config.useMenuIcons)
hasIcons = true;
} else {
- item = new cNopacityDefaultMenuItem(osd, Text, Selectable, MenuCategory());
+ item = new cNopacityDefaultMenuItem(osd, Text, Selectable);
menuView->GetMenuItemSize(mcUnknown, &itemSize);
item->SetFont(menuView->GetMenuItemFont(mcUnknown));
}
diff --git a/menuitem.c b/menuitem.c
index 7baff3e..0aba919 100644
--- a/menuitem.c
+++ b/menuitem.c
@@ -1052,16 +1052,19 @@ void cNopacityRecordingMenuItem::Render() {
// cNopacityDefaultMenuItem -------------
-cNopacityDefaultMenuItem::cNopacityDefaultMenuItem(cOsd *osd, const char *text, bool sel, eMenuCategory menuCat) : cNopacityMenuItem (osd, text, sel) {
+cNopacityDefaultMenuItem::cNopacityDefaultMenuItem(cOsd *osd, const char *text, bool sel) : cNopacityMenuItem (osd, text, sel) {
scrollCol = -1;
- this->menuCat = menuCat;
}
cNopacityDefaultMenuItem::~cNopacityDefaultMenuItem(void) {
}
bool cNopacityDefaultMenuItem::CheckProgressBar(const char *text) {
- if (strlen(text) > 5 && text[0] == '[' && text[strlen(text) - 1] == ']')
+ if (strlen(text) > 5
+ && text[0] == '['
+ && ((text[1] == '|')||(text[1] == ' '))
+ && ((text[2] == '|')||(text[2] == ' '))
+ && text[strlen(text) - 1] == ']')
return true;
return false;
}
@@ -1111,7 +1114,7 @@ int cNopacityDefaultMenuItem::CheckScrollable(bool hasIcon) {
int colTextWidth = 0;
for (int i=0; i<numTabs; i++) {
if (tabWidth[i] > 0) {
- if ((menuCat == mcScheduleNow)&&(CheckProgressBar(*itemTabs[i])))
+ if (CheckProgressBar(*itemTabs[i]))
continue;
colWidth = tabWidth[i+cSkinDisplayMenu::MaxTabs];
colTextWidth = font->Width(*itemTabs[i]);
@@ -1144,38 +1147,34 @@ void cNopacityDefaultMenuItem::Render() {
int colWidth = 0;
int colTextWidth = 0;
cString itemText("");
- std::stringstream sstrText;
for (int i=0; i<numTabs; i++) {
if (tabWidth[i] > 0) {
- if (selectable) {
- colWidth = tabWidth[i+cSkinDisplayMenu::MaxTabs];
- int posX = tabWidth[i];
- if ((menuCat == mcScheduleNow)&&(CheckProgressBar(*itemTabs[i]))) {
- DrawProgressBar(posX, colWidth, *itemTabs[i], clrFont);
- } else if (i != scrollCol) {
- colTextWidth = font->Width(*itemTabs[i]);
- if (colTextWidth > colWidth) {
- cTextWrapper itemTextWrapped;
- itemTextWrapped.Set(*itemTabs[i], font, colWidth - font->Width("... "));
+ colWidth = tabWidth[i+cSkinDisplayMenu::MaxTabs];
+ int posX = tabWidth[i];
+ if (CheckProgressBar(*itemTabs[i])) {
+ DrawProgressBar(posX, colWidth, *itemTabs[i], clrFont);
+ } else if (i != scrollCol) {
+ colTextWidth = font->Width(*itemTabs[i]);
+ if (colTextWidth > colWidth) {
+ cTextWrapper itemTextWrapped;
+ itemTextWrapped.Set(*itemTabs[i], font, colWidth - font->Width("... "));
+ if (selectable)
itemText = cString::sprintf("%s... ", itemTextWrapped.GetLine(0));
- } else {
- itemText = itemTabs[i];
- }
- if (i==0) posX += 5;
- pixmap->DrawText(cPoint(posX, (height - font->Height()) / 2), *itemText, clrFont, clrTransparent, font);
+ else
+ itemText = cString::sprintf("%s", itemTextWrapped.GetLine(0));
} else {
- if (!Running())
- SetTextShort();
+ itemText = itemTabs[i];
}
+ if (i==0) posX += 5;
+ pixmap->DrawText(cPoint(posX, (height - font->Height()) / 2), *itemText, clrFont, clrTransparent, font);
} else {
- sstrText << *itemTabs[i];
+ if (!Running())
+ SetTextShort();
}
} else
break;
}
- if (!selectable) {
- pixmap->DrawText(cPoint(10, (height - font->Height()) / 2), sstrText.str().c_str(), clrFont, clrTransparent, font);
- }
+
if (current && scrollable && !Running() && config.menuScrollSpeed) {
Start();
}
diff --git a/menuitem.h b/menuitem.h
index 374dd8e..bbabec0 100644
--- a/menuitem.h
+++ b/menuitem.h
@@ -174,7 +174,6 @@ public:
class cNopacityDefaultMenuItem : public cNopacityMenuItem {
private:
- eMenuCategory menuCat;
bool CheckProgressBar(const char *text);
void DrawProgressBar(int x, int width, const char *bar, tColor color);
std::string strEntry;
@@ -183,7 +182,7 @@ private:
void SetTextFull(void);
void SetTextShort(void);
public:
- cNopacityDefaultMenuItem(cOsd *osd, const char *text, bool sel, eMenuCategory menuCat);
+ cNopacityDefaultMenuItem(cOsd *osd, const char *text, bool sel);
~cNopacityDefaultMenuItem(void);
int CheckScrollable(bool hasIcon);
void Render();