aboutsummaryrefslogtreecommitdiffstats
path: root/gadgets
diff options
context:
space:
mode:
authorgotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2008-01-02 10:43:58 +0000
committergotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2008-01-02 10:43:58 +0000
commitfacf378ae7400168a95bdfec8126cd251d25a02e (patch)
treef829490f94e020f0b7d9b2759da87b73df1308a6 /gadgets
parent144380360bfb65a3a93de5814fd6b611edb95629 (diff)
downloaddzen-facf378ae7400168a95bdfec8126cd251d25a02e.tar.gz
dzen-facf378ae7400168a95bdfec8126cd251d25a02e.zip
segmented outlined bars
git-svn-id: http://dzen.googlecode.com/svn/trunk@189 f2baff5b-bf2c-0410-a398-912abdc3d8b2
Diffstat (limited to 'gadgets')
-rw-r--r--gadgets/gdbar.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/gadgets/gdbar.c b/gadgets/gdbar.c
index 11a2b59..242273d 100644
--- a/gadgets/gdbar.c
+++ b/gadgets/gdbar.c
@@ -52,12 +52,29 @@ pbar(const char* label, double perc, int maxc, int height, int segw, int segh, i
l=(int)(l + 0.5) >= (int)l ? l+0.5 : l;
rp=(int)(perc + 0.5) >= (int)perc ? (int)(perc + 0.5) : (int)perc;
- if(mode == outlined)
- printf("%s%3d%% ^ib(1)^fg(%s)^ro(%dx%d)^p(%d)^fg(%s)^r(%dx%d)^p(%d)^ib(0)^fg()%s",
- label ? label : "", rp,
- bg, (int)maxc, height, -1*(maxc-1),
- fg, (int)l, height-2,
- maxc-(int)l-1, pnl ? "\n" : "");
+ if(mode == outlined) {
+ if(segb == 0) {
+ printf("%s%3d%% ^ib(1)^fg(%s)^ro(%dx%d)^p(%d)^fg(%s)^r(%dx%d)^p(%d)^ib(0)^fg()%s",
+ label ? label : "", rp,
+ bg, (int)maxc, height, -1*(maxc-2),
+ fg, (int)l, height-4>0?height-4:1,
+ maxc-(int)l-1, pnl ? "\n" : "");
+ } else {
+ segs = (maxc-2) / (segw+segb);
+ segsa = rp * segs / 100;
+
+ printf("%s%3d%% ^ib(1)^fg(%s)^ro(%dx%d)^p(%d)",
+ label ? label : "", rp,
+ bg, (int)maxc, height, -1*(maxc-2));
+ for(i=0; i < segs; i++) {
+ if(i<segsa)
+ printf("^fg(%s)^r(%dx%d+%d+%d')", fg, segw, height-4>0?height-4:1, i?segb:0, 0);
+ else
+ break;
+ }
+ printf("^fg()^p(%d)^ib(0)%s", (segw+segb)*(segs-segsa+1), pnl ? "\n" : "");
+ }
+ }
else if(mode == vertical) {
segs = height / (segh + segb);
segsa = rp * segs / 100;