summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schirrmacher <vdr.skinflatplus@schirrmacher.eu>2014-07-12 17:13:16 +0200
committerMartin Schirrmacher <vdr.skinflatplus@schirrmacher.eu>2014-07-12 17:13:16 +0200
commit32ca7bd14120e0fd003279cd66463212216e1efd (patch)
tree913f0228b25042824d8762acc5250b30262c1ac0
parent832141b47e33629cea33411f70185196b93fd1cd (diff)
downloadskin-flatplus-32ca7bd14120e0fd003279cd66463212216e1efd.tar.gz
skin-flatplus-32ca7bd14120e0fd003279cd66463212216e1efd.tar.bz2
new types for scrollbar
-rw-r--r--HISTORY13
-rw-r--r--baserender.c138
-rw-r--r--config.c25
-rw-r--r--config.h16
-rw-r--r--decors/10_rect_sml.decor4
-rw-r--r--decors/11_rect_mid.decor4
-rw-r--r--decors/12_rect_big.decor4
-rw-r--r--decors/20_round_sml.decor4
-rw-r--r--decors/21_round_mid.decor4
-rw-r--r--decors/22_round_big.decor4
-rw-r--r--decors/30_invert-round_sml.decor4
-rw-r--r--decors/31_invert-round_mid.decor4
-rw-r--r--decors/32_invert-round_big.decor4
-rw-r--r--decors/40_rect-alpha_sml.decor4
-rw-r--r--decors/41_rect-alpha_mid.decor4
-rw-r--r--decors/42_rect-alpha_big.decor4
-rw-r--r--decors/50_round-alpha_sml.decor4
-rw-r--r--decors/51_round-alpha_mid.decor4
-rw-r--r--decors/52_round-alpha_big.decor4
-rw-r--r--decors/60_invert-round-alpha_sml.decor4
-rw-r--r--decors/61_invert-round-alpha_mid.decor4
-rw-r--r--decors/62_invert-round-alpha_big.decor4
-rw-r--r--decors/99_none.decor4
-rw-r--r--po/de_DE.po35
-rw-r--r--setup.c28
25 files changed, 318 insertions, 13 deletions
diff --git a/HISTORY b/HISTORY
index 73566517..5301e865 100644
--- a/HISTORY
+++ b/HISTORY
@@ -15,6 +15,19 @@ VDR Plugin 'skinflatplus' Revision History
- [add] new option "diskusage short display" for only show percantage and free hours
- [add] image _cur version for recording_cutted, recording_new, timer_full, timer_partial, vps
if it is the current/selected menu item the cur version of the image will be loaded
+- [add] Support for scrollbar type and size like border and progressbar
+ You can specify the scrollbar type and size in the decor file (ScrollBarType & ScrollBarSize)
+ You can also override the type and size in the setup
+ 8 Types:
+ * 0 = left line + rect bar
+ * 1 = left line + round bar
+ * 2 = middle line + rect bar
+ * 3 = middle line + round bar
+ * 4 = outline + rect bar
+ * 5 = outline + round bar
+ * 6 = rect bar
+ * 7 = round bar
+- [update] decor-files for new scrollbar options
2014-06-19: Version 0.3.1
- [fix] epg image position on channel info
diff --git a/baserender.c b/baserender.c
index 8cfee1ac..84daef32 100644
--- a/baserender.c
+++ b/baserender.c
@@ -25,7 +25,7 @@ cFlatBaseRender::cFlatBaseRender(void) {
marginItem = 5;
- scrollBarWidth = 10;
+ scrollBarWidth = Config.decorScrollBarSize;
buttonsHeight = 0;
buttonsDrawn = false;
@@ -893,20 +893,136 @@ void cFlatBaseRender::ScrollbarDraw(cPixmap *Pixmap, int Left, int Top, int Heig
if( !Pixmap )
return;
- if (Total > 0 && Total > Shown) {
- int scrollHeight = max(int((Height) * double(Shown) / Total + 0.5), 5);
- int scrollTop = min(int(Top + (Height) * double(Offset) / Total + 0.5), Top + Height - scrollHeight);
+ int scrollHeight = max(int((Height) * double(Shown) / Total + 0.5), 5);
+ int scrollTop = min(int(Top + (Height) * double(Offset) / Total + 0.5), Top + Height - scrollHeight);
+
+ /* Types
+ * 0 = left line + rect bar
+ * 1 = left line + round bar
+ * 2 = middle line + rect bar
+ * 3 = middle line + round bar
+ * 4 = outline + rect bar
+ * 5 = outline + round bar
+ * 6 = rect bar
+ * 7 = round bar
+ */
+ int Type = Config.decorScrollBarType;
+ if (Total > 0 && Total > Shown) {
Pixmap->Fill(clrTransparent);
Pixmap->DrawRectangle(cRect(Left, Top, scrollBarWidth, Height), Theme.Color(clrScrollbarBg));
+ switch( Type ) {
+ default:
+ case 0:
+ if( scrollBarWidth <= 10 )
+ Pixmap->DrawRectangle(cRect(Left, Top, 2, Height), Theme.Color(clrScrollbarFg));
+ else if( scrollBarWidth <= 20 )
+ Pixmap->DrawRectangle(cRect(Left, Top, 4, Height), Theme.Color(clrScrollbarFg));
+ else
+ Pixmap->DrawRectangle(cRect(Left, Top, 6, Height), Theme.Color(clrScrollbarFg));
+ Pixmap->DrawRectangle(cRect(Left, scrollTop, scrollBarWidth, scrollHeight), Theme.Color(clrScrollbarBarFg));
+ break;
+ case 1:
+ {
+ int dotHeight = scrollBarWidth / 2;
+ if( scrollBarWidth <= 10 )
+ Pixmap->DrawRectangle(cRect(Left, Top, 2, Height), Theme.Color(clrScrollbarFg));
+ else if( scrollBarWidth <= 20 )
+ Pixmap->DrawRectangle(cRect(Left, Top, 4, Height), Theme.Color(clrScrollbarFg));
+ else
+ Pixmap->DrawRectangle(cRect(Left, Top, 6, Height), Theme.Color(clrScrollbarFg));
+
+ Pixmap->DrawRectangle(cRect(Left, scrollTop + dotHeight, scrollBarWidth, scrollHeight - dotHeight*2), Theme.Color(clrScrollbarBarFg));
+ // dot
+ Pixmap->DrawEllipse(cRect( Left, scrollTop, scrollBarWidth, scrollBarWidth), Theme.Color(clrScrollbarBarFg), 0);
+ Pixmap->DrawEllipse(cRect( Left, scrollTop + scrollHeight - dotHeight*2, scrollBarWidth, scrollBarWidth), Theme.Color(clrScrollbarBarFg), 0);
+
+ break;
+ }
+ case 2:
+ {
+ int Middle = Left + scrollBarWidth / 2;
+ int lineWidth = 6;
+ if( scrollBarWidth <= 10 )
+ lineWidth = 2;
+ else if( scrollBarWidth <= 20 )
+ lineWidth = 4;
+
+ Pixmap->DrawRectangle(cRect(Middle - lineWidth/2, Top, lineWidth, Height), Theme.Color(clrScrollbarFg));
+ Pixmap->DrawRectangle(cRect(Left, scrollTop, scrollBarWidth, scrollHeight), Theme.Color(clrScrollbarBarFg));
+ break;
+ }
+ case 3:
+ {
+ int dotHeight = scrollBarWidth / 2;
+ int Middle = Left + scrollBarWidth / 2;
+ int lineWidth = 6;
+ if( scrollBarWidth <= 10 )
+ lineWidth = 2;
+ else if( scrollBarWidth <= 20 )
+ lineWidth = 4;
+
+ Pixmap->DrawRectangle(cRect(Middle - lineWidth/2, Top, lineWidth, Height), Theme.Color(clrScrollbarFg));
+
+ Pixmap->DrawRectangle(cRect(Left, scrollTop + dotHeight, scrollBarWidth, scrollHeight - dotHeight*2), Theme.Color(clrScrollbarBarFg));
+ // dot
+ Pixmap->DrawEllipse(cRect( Left, scrollTop, scrollBarWidth, scrollBarWidth), Theme.Color(clrScrollbarBarFg), 0);
+ Pixmap->DrawEllipse(cRect( Left, scrollTop + scrollHeight - dotHeight*2, scrollBarWidth, scrollBarWidth), Theme.Color(clrScrollbarBarFg), 0);
+
+ break;
+ }
+ case 4:
+ {
+ int out = 1;
+ if( scrollBarWidth > 10 )
+ out = 2;
+ // outline
+ Pixmap->DrawRectangle(cRect( Left, Top, scrollBarWidth, out), Theme.Color(clrScrollbarBarFg));
+ Pixmap->DrawRectangle(cRect( Left, Top + Height - out, scrollBarWidth, out), Theme.Color(clrScrollbarBarFg));
+ Pixmap->DrawRectangle(cRect( Left, Top, out, Height), Theme.Color(clrScrollbarBarFg));
+ Pixmap->DrawRectangle(cRect( Left + scrollBarWidth - out, Top, out, Height), Theme.Color(clrScrollbarBarFg));
+
+ // bar
+ Pixmap->DrawRectangle(cRect(Left + out, scrollTop + out, scrollBarWidth - out*2, scrollHeight - out*2), Theme.Color(clrScrollbarBarFg));
+ break;
+ }
+ case 5:
+ {
+ int dotHeight = scrollBarWidth / 2;
+ int out = 1;
+ if( scrollBarWidth > 10 )
+ out = 2;
+ // outline
+ Pixmap->DrawRectangle(cRect( Left, Top, scrollBarWidth, out), Theme.Color(clrScrollbarBarFg));
+ Pixmap->DrawRectangle(cRect( Left, Top + Height - out, scrollBarWidth, out), Theme.Color(clrScrollbarBarFg));
+ Pixmap->DrawRectangle(cRect( Left, Top, out, Height), Theme.Color(clrScrollbarBarFg));
+ Pixmap->DrawRectangle(cRect( Left + scrollBarWidth - out, Top, out, Height), Theme.Color(clrScrollbarBarFg));
+
+ // bar
+ Pixmap->DrawRectangle(cRect(Left + out, scrollTop + dotHeight + out, scrollBarWidth - out*2, scrollHeight - dotHeight*2 - out*2), Theme.Color(clrScrollbarBarFg));
+ // dot
+ Pixmap->DrawEllipse(cRect( Left + out, scrollTop + out, scrollBarWidth - out*2, scrollBarWidth - out*2), Theme.Color(clrScrollbarBarFg), 0);
+ Pixmap->DrawEllipse(cRect( Left + out, scrollTop + scrollHeight - dotHeight*2 + out, scrollBarWidth - out*2, scrollBarWidth - out*2), Theme.Color(clrScrollbarBarFg), 0);
+ break;
+ }
+ case 6:
+ {
+ Pixmap->DrawRectangle(cRect(Left, scrollTop, scrollBarWidth, scrollHeight), Theme.Color(clrScrollbarBarFg));
+ break;
+ }
+ case 7:
+ {
+ int dotHeight = scrollBarWidth / 2;
+
+ Pixmap->DrawRectangle(cRect(Left, scrollTop + dotHeight, scrollBarWidth, scrollHeight - dotHeight*2), Theme.Color(clrScrollbarBarFg));
+ // dot
+ Pixmap->DrawEllipse(cRect( Left, scrollTop, scrollBarWidth, scrollBarWidth), Theme.Color(clrScrollbarBarFg), 0);
+ Pixmap->DrawEllipse(cRect( Left, scrollTop + scrollHeight - dotHeight*2, scrollBarWidth, scrollBarWidth), Theme.Color(clrScrollbarBarFg), 0);
+
+ break;
+ }
+ }
- if( scrollBarWidth <= 10 )
- Pixmap->DrawRectangle(cRect(Left, Top, 2, Height), Theme.Color(clrScrollbarFg));
- else if( scrollBarWidth <= 20 )
- Pixmap->DrawRectangle(cRect(Left, Top, 4, Height), Theme.Color(clrScrollbarFg));
- else
- Pixmap->DrawRectangle(cRect(Left, Top, 6, Height), Theme.Color(clrScrollbarFg));
- Pixmap->DrawRectangle(cRect(Left, scrollTop, scrollBarWidth, scrollHeight), Theme.Color(clrScrollbarBarFg));
}
}
diff --git a/config.c b/config.c
index 696a16c6..6028ea4b 100644
--- a/config.c
+++ b/config.c
@@ -136,6 +136,12 @@ cFlatConfig::cFlatConfig(void) {
decorProgressSignalTypeUser = 0;
decorProgressSignalSizeUser = 20;
+ decorScrollBarByTheme = 0;
+ decorScrollBarTypeTheme = 0;
+ decorScrollBarSizeTheme = 20;
+ decorScrollBarTypeUser = 0;
+ decorScrollBarSizeUser = 20;
+
ThemeCurrent = "";
}
@@ -191,6 +197,9 @@ bool cFlatConfig::SetupParse(const char *Name, const char *Value) {
else if (strcmp(Name, "decorProgressSignalByTheme") == 0) decorProgressSignalByTheme = atoi(Value);
else if (strcmp(Name, "decorProgressSignalTypeUser") == 0) decorProgressSignalTypeUser = atoi(Value);
else if (strcmp(Name, "decorProgressSignalSizeUser") == 0) decorProgressSignalSizeUser = atoi(Value);
+ else if (strcmp(Name, "decorScrollBarByTheme") == 0) decorScrollBarByTheme = atoi(Value);
+ else if (strcmp(Name, "decorScrollBarTypeUser") == 0) decorScrollBarTypeUser = atoi(Value);
+ else if (strcmp(Name, "decorScrollBarSizeUser") == 0) decorScrollBarSizeUser = atoi(Value);
else if (strcmp(Name, "ButtonsShowEmpty") == 0) ButtonsShowEmpty = atoi(Value);
else if (strcmp(Name, "ChannelIconsShow") == 0) ChannelIconsShow = atoi(Value);
else if (strcmp(Name, "SignalQualityShow") == 0) SignalQualityShow = atoi(Value);
@@ -384,6 +393,14 @@ void cFlatConfig::DecorCheckAndInit(void) {
decorProgressSignalSize = decorProgressSignalSizeUser;
}
+ if( decorScrollBarByTheme ) {
+ decorScrollBarType = decorScrollBarTypeTheme;
+ decorScrollBarSize = decorScrollBarSizeTheme;
+ } else {
+ decorScrollBarType = decorScrollBarTypeUser;
+ decorScrollBarSize = decorScrollBarSizeUser;
+ }
+
if( decorBorderChannelType == 0 )
decorBorderChannelSize = 0;
if( decorBorderTopBarType == 0 )
@@ -470,6 +487,10 @@ void cFlatConfig::ThemeInit(void) {
decorProgressSignalFg = Theme.Color(clrChannelSignalProgressFg);
decorProgressSignalBarFg = Theme.Color(clrChannelSignalProgressBarFg);
decorProgressSignalBg = Theme.Color(clrChannelSignalProgressBg);
+
+ decorScrollBarFg = Theme.Color(clrScrollbarFg);
+ decorScrollBarBarFg = Theme.Color(clrScrollbarBarFg);
+ decorScrollBarBg = Theme.Color(clrScrollbarBg);
}
void cFlatConfig::Init(void) {
@@ -652,6 +673,10 @@ void cFlatConfig::DecorLoadFile(cString File) {
decorProgressSignalTypeTheme = value; continue; }
if( strstr(n, "ChannelSignalProgressSize") == n ) {
decorProgressSignalSizeTheme = value; continue; }
+ if( strstr(n, "ScrollBarType") == n ) {
+ decorScrollBarTypeTheme = value; continue; }
+ if( strstr(n, "ScrollBarSize") == n ) {
+ decorScrollBarSizeTheme = value; continue; }
}
}
}
diff --git a/config.h b/config.h
index 8a448f94..a8e39d09 100644
--- a/config.h
+++ b/config.h
@@ -157,6 +157,22 @@ class cFlatConfig
int decorProgressSignalType, decorProgressSignalSize;
tColor decorProgressSignalFg, decorProgressSignalBarFg, decorProgressSignalBg;
+ /* Types
+ * 0 = left line + rect bar
+ * 1 = left line + round bar
+ * 2 = middle line + rect bar
+ * 3 = middle line + round bar
+ * 4 = outline + rect bar
+ * 5 = outline + round bar
+ * 6 = rect bar
+ * 7 = round bar
+ */
+ int decorScrollBarByTheme;
+ int decorScrollBarTypeTheme, decorScrollBarSizeTheme;
+ int decorScrollBarTypeUser, decorScrollBarSizeUser;
+ int decorScrollBarType, decorScrollBarSize;
+ tColor decorScrollBarFg, decorScrollBarBarFg, decorScrollBarBg;
+
// General Config
int ButtonsShowEmpty;
int ChannelIconsShow;
diff --git a/decors/10_rect_sml.decor b/decors/10_rect_sml.decor
index ca5d7351..6d3fdfe4 100644
--- a/decors/10_rect_sml.decor
+++ b/decors/10_rect_sml.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 1
VolumeBorderSize = 5
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 10 \ No newline at end of file
diff --git a/decors/11_rect_mid.decor b/decors/11_rect_mid.decor
index cd4523ad..2dc8c7b1 100644
--- a/decors/11_rect_mid.decor
+++ b/decors/11_rect_mid.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 1
VolumeBorderSize = 10
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 15 \ No newline at end of file
diff --git a/decors/12_rect_big.decor b/decors/12_rect_big.decor
index 75bba8ca..b6af43dc 100644
--- a/decors/12_rect_big.decor
+++ b/decors/12_rect_big.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 1
VolumeBorderSize = 20
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 20 \ No newline at end of file
diff --git a/decors/20_round_sml.decor b/decors/20_round_sml.decor
index 34612afc..bb753cfd 100644
--- a/decors/20_round_sml.decor
+++ b/decors/20_round_sml.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 2
VolumeBorderSize = 5
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 10 \ No newline at end of file
diff --git a/decors/21_round_mid.decor b/decors/21_round_mid.decor
index 6ee68415..c5fa200e 100644
--- a/decors/21_round_mid.decor
+++ b/decors/21_round_mid.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 2
VolumeBorderSize = 10
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 15 \ No newline at end of file
diff --git a/decors/22_round_big.decor b/decors/22_round_big.decor
index f147c706..7ce7bbd1 100644
--- a/decors/22_round_big.decor
+++ b/decors/22_round_big.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 2
VolumeBorderSize = 20
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 20 \ No newline at end of file
diff --git a/decors/30_invert-round_sml.decor b/decors/30_invert-round_sml.decor
index 5550d339..4830553f 100644
--- a/decors/30_invert-round_sml.decor
+++ b/decors/30_invert-round_sml.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 3
VolumeBorderSize = 5
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 10 \ No newline at end of file
diff --git a/decors/31_invert-round_mid.decor b/decors/31_invert-round_mid.decor
index 54b9d482..f61d1789 100644
--- a/decors/31_invert-round_mid.decor
+++ b/decors/31_invert-round_mid.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 3
VolumeBorderSize = 10
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 15 \ No newline at end of file
diff --git a/decors/32_invert-round_big.decor b/decors/32_invert-round_big.decor
index 03e7b218..aa5db8d8 100644
--- a/decors/32_invert-round_big.decor
+++ b/decors/32_invert-round_big.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 3
VolumeBorderSize = 20
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 20 \ No newline at end of file
diff --git a/decors/40_rect-alpha_sml.decor b/decors/40_rect-alpha_sml.decor
index f673a04a..832d2c60 100644
--- a/decors/40_rect-alpha_sml.decor
+++ b/decors/40_rect-alpha_sml.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 4
VolumeBorderSize = 5
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 10 \ No newline at end of file
diff --git a/decors/41_rect-alpha_mid.decor b/decors/41_rect-alpha_mid.decor
index 0ebc356a..92fd1bb5 100644
--- a/decors/41_rect-alpha_mid.decor
+++ b/decors/41_rect-alpha_mid.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 4
VolumeBorderSize = 10
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 15 \ No newline at end of file
diff --git a/decors/42_rect-alpha_big.decor b/decors/42_rect-alpha_big.decor
index 62e81cae..523fad20 100644
--- a/decors/42_rect-alpha_big.decor
+++ b/decors/42_rect-alpha_big.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 4
VolumeBorderSize = 20
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 20 \ No newline at end of file
diff --git a/decors/50_round-alpha_sml.decor b/decors/50_round-alpha_sml.decor
index dee6083e..396bad6a 100644
--- a/decors/50_round-alpha_sml.decor
+++ b/decors/50_round-alpha_sml.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 5
VolumeBorderSize = 5
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 10 \ No newline at end of file
diff --git a/decors/51_round-alpha_mid.decor b/decors/51_round-alpha_mid.decor
index 97c6ab82..73406ace 100644
--- a/decors/51_round-alpha_mid.decor
+++ b/decors/51_round-alpha_mid.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 5
VolumeBorderSize = 10
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 15 \ No newline at end of file
diff --git a/decors/52_round-alpha_big.decor b/decors/52_round-alpha_big.decor
index 8555ea85..77351591 100644
--- a/decors/52_round-alpha_big.decor
+++ b/decors/52_round-alpha_big.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 5
VolumeBorderSize = 20
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 20 \ No newline at end of file
diff --git a/decors/60_invert-round-alpha_sml.decor b/decors/60_invert-round-alpha_sml.decor
index bfb92b28..9eb7470d 100644
--- a/decors/60_invert-round-alpha_sml.decor
+++ b/decors/60_invert-round-alpha_sml.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 6
VolumeBorderSize = 5
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 10 \ No newline at end of file
diff --git a/decors/61_invert-round-alpha_mid.decor b/decors/61_invert-round-alpha_mid.decor
index 367607dd..37fd7291 100644
--- a/decors/61_invert-round-alpha_mid.decor
+++ b/decors/61_invert-round-alpha_mid.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 6
VolumeBorderSize = 10
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 15 \ No newline at end of file
diff --git a/decors/62_invert-round-alpha_big.decor b/decors/62_invert-round-alpha_big.decor
index a2195e54..ea71a592 100644
--- a/decors/62_invert-round-alpha_big.decor
+++ b/decors/62_invert-round-alpha_big.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 6
VolumeBorderSize = 20
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 20 \ No newline at end of file
diff --git a/decors/99_none.decor b/decors/99_none.decor
index 4e1a6262..99143ecf 100644
--- a/decors/99_none.decor
+++ b/decors/99_none.decor
@@ -67,3 +67,7 @@ VolumeBorderType = 0
VolumeBorderSize = 0
VolumeProgressType = 3
VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 10 \ No newline at end of file
diff --git a/po/de_DE.po b/po/de_DE.po
index 25e5094e..09b10f3f 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-skinflat 0.3.1\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2014-07-07 23:24+0200\n"
+"POT-Creation-Date: 2014-07-12 16:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -225,6 +225,30 @@ msgstr "carriage return"
msgid "left-right-left"
msgstr "links-rechts-links"
+msgid "left line + rect bar"
+msgstr ""
+
+msgid "left line + round bar"
+msgstr ""
+
+msgid "middle line + rect bar"
+msgstr ""
+
+msgid "middle line + round bar"
+msgstr ""
+
+msgid "outline + rect bar"
+msgstr ""
+
+msgid "outline + round bar"
+msgstr ""
+
+msgid "rect bar"
+msgstr ""
+
+msgid "round bar"
+msgstr ""
+
msgid "General settings"
msgstr "Allgemeine Einstellungen"
@@ -420,6 +444,15 @@ msgstr "Menü Programm Ansicht"
msgid "Menu recording view"
msgstr "Menü Aufzeichnungen Ansicht"
+msgid "Scrollbar by decor-file?"
+msgstr "Scrollbar von Decordatei?"
+
+msgid "Scrollbar type"
+msgstr "Scrollbar Typ"
+
+msgid "Scrollbar size"
+msgstr "Scrollbar Größe"
+
msgid "Menuitem border by decor-file?"
msgstr "Menüitem Rand von Decordatei?"
diff --git a/setup.c b/setup.c
index 1b56d5c4..71f2be43 100644
--- a/setup.c
+++ b/setup.c
@@ -10,6 +10,7 @@ cStringList MenuRecordingViews;
cStringList DecorDescriptions;
cStringList MessageColorPositions;
cStringList ScrollerTypes;
+cStringList ScrollBarTypes;
cFlatSetup::cFlatSetup(void) {
SetupConfig = Config;
@@ -86,6 +87,16 @@ void cFlatSetup::Setup(void) {
ScrollerTypes.Append( strdup( tr("carriage return")) );
ScrollerTypes.Append( strdup( tr("left-right-left")) );
+ ScrollBarTypes.Clear();
+ ScrollBarTypes.Append( strdup( tr("left line + rect bar")) );
+ ScrollBarTypes.Append( strdup( tr("left line + round bar")) );
+ ScrollBarTypes.Append( strdup( tr("middle line + rect bar")) );
+ ScrollBarTypes.Append( strdup( tr("middle line + round bar")) );
+ ScrollBarTypes.Append( strdup( tr("outline + rect bar")) );
+ ScrollBarTypes.Append( strdup( tr("outline + round bar")) );
+ ScrollBarTypes.Append( strdup( tr("rect bar")) );
+ ScrollBarTypes.Append( strdup( tr("round bar")) );
+
Add(new cOsdItem(tr("General settings"), osUnknown, true));
Add(new cOsdItem(tr("Channelinfo settings"), osUnknown, true));
Add(new cOsdItem(tr("Menu settings"), osUnknown, true));
@@ -187,6 +198,9 @@ void cFlatSetup::Store(void) {
SetupStore("decorProgressSignalByTheme", Config.decorProgressSignalByTheme);
SetupStore("decorProgressSignalTypeUser", Config.decorProgressSignalTypeUser);
SetupStore("decorProgressSignalSizeUser", Config.decorProgressSignalSizeUser);
+ SetupStore("decorScrollBarByTheme", Config.decorScrollBarByTheme);
+ SetupStore("decorScrollBarTypeUser", Config.decorScrollBarTypeUser);
+ SetupStore("decorScrollBarSizeUser", Config.decorScrollBarSizeUser);
SetupStore("ButtonsShowEmpty", Config.ButtonsShowEmpty);
SetupStore("ChannelIconsShow", Config.ChannelIconsShow);
SetupStore("SignalQualityShow", Config.SignalQualityShow);
@@ -477,6 +491,17 @@ void cFlatSetupMenu::Setup(void) {
Add(new cMenuEditStraItem(tr("Menu event view"), &SetupConfig->MenuEventView, MenuEventViews.Size(), &MenuEventViews[0]));
Add(new cMenuEditStraItem(tr("Menu recording view"), &SetupConfig->MenuRecordingView, MenuRecordingViews.Size(), &MenuRecordingViews[0]));
+ Add(new cMenuEditBoolItem(tr("Scrollbar by decor-file?"), &SetupConfig->decorScrollBarByTheme));
+ if( SetupConfig->decorScrollBarByTheme ) {
+ cString type = cString::sprintf("%s:\t%s", tr("Scrollbar type"), ScrollBarTypes[SetupConfig->decorScrollBarTypeTheme]);
+ Add(new cOsdItem(type, osUnknown, false));
+ cString size = cString::sprintf("%s:\t%d", tr("Scrollbar size"), SetupConfig->decorScrollBarSizeTheme);
+ Add(new cOsdItem(size, osUnknown, false));
+ } else {
+ Add(new cMenuEditStraItem(tr("Scrollbar type"), &SetupConfig->decorScrollBarTypeUser, ScrollBarTypes.Size(), &ScrollBarTypes[0]));
+ Add(new cMenuEditIntItem(tr("Scrollbar size"), &SetupConfig->decorScrollBarSizeUser));
+ }
+
Add(new cMenuEditBoolItem(tr("Menuitem border by decor-file?"), &SetupConfig->decorBorderMenuItemByTheme));
if( SetupConfig->decorBorderMenuItemByTheme ) {
cString type = cString::sprintf("%s:\t%s", tr("Menuitem border type"), Bordertypes[SetupConfig->decorBorderMenuItemTypeTheme]);
@@ -544,7 +569,8 @@ eOSState cFlatSetupMenu::ProcessKey(eKeys Key) {
if( strstr(ItemText, tr("Menuitem border by decor-file?")) != NULL ||
strstr(ItemText, tr("Menucont. border by decor-file?")) != NULL ||
strstr(ItemText, tr("Menucont. head border by decor-file?")) != NULL ||
- strstr(ItemText, tr("Menuitem progress by decor-file?")) != NULL
+ strstr(ItemText, tr("Menuitem progress by decor-file?")) != NULL ||
+ strstr(ItemText, tr("Scrollbar by decor-file?")) != NULL
) {
ItemLastSel = Current();
Setup();