rendered paste body;; /pbar -pl @window X Y W H [PERCENT]
;; -p switch shows the percent:
;; /pbar -p @Pbar 10 10 150 13 50
;; -l switch shows loading:
;; /pbar -p @Pbar 10 10 150 13 50
alias pbar {
tokenize 32 $remove($1-,$chr(37))
if (-* iswm $1) { var %switch = $1 | tokenize 32 $2- }
if (!$5) halt
var %win = $1, %x = $2, %y = $3, %w = $4, %h = $5, %p = $iif($6 >= 99.4,99.4,$iif($6,$6,0))
drawline -r %win $rgb(178,178,178) 1 $calc(%x + 1) $calc(%y -1) $calc(%x + (%w -1)) $calc(%y -1)
drawline -r %win $rgb(178,178,178) 1 $calc(%x + 1) $calc(%y + %h) $calc(%x + (%w -1)) $calc(%y + %h)
drawline -r %win $rgb(178,178,178) 1 %x %y %x $calc(%y + %h)
drawline -r %win $rgb(178,178,178) 1 $calc(%x + %w -1) %y $calc(%x + %w -1) $calc(%y + %h)
var %per = $calc((%p /100) * %w),%g = 1
while (%g <= %per) {
var %b = 1, %1 = 205, %2 = 255, %3 = 205
while (%b <= %h) {
drawdot -rn %win $rgb(%1,%2,%3) 1 $calc(%g + %x) $calc(%y + %b -1)
dec %1 4 | dec %2 4 | dec %3 4 | inc %b
}
inc %g
}
var %e = $calc((99.4 /100) * %w)
while (%g <= %e) {
var %b = 1,%1 = 243
while (%b <= %h) {
drawdot -rn %win $rgb(%1,%1,%1) 1 $calc(%g + %x) $calc(%y + %b -1)
dec %1 4 | inc %b
}
inc %g
}
if (*l* iswm %switch) drawtext -rn %win $rgb(250,250,250) Tahoma $calc(%h -4) $calc(%x + 3) $calc(%y + 1) Loading $str(.,$and(3,%p))
if (*p* iswm %switch) drawtext -rn %win $rgb(250,250,250) Tahoma $calc(%h -4) $calc(%w /2-5) $calc(%y +1) $iif($ceil(%p) == 100,DONE,$+($ceil(%p),$chr(37)))
drawdot %win
}
alias pbartest {
window -adpk0B @Pbar
clear @Pbar
pbar -p @Pbar 10 10 250 13
.timer 1 1 pbar -p @Pbar 10 10 250 13 22
.timer 1 2 pbar -p @Pbar 10 10 250 13 33
.timer 1 3 pbar -p @Pbar 10 10 250 13 44
.timer 1 4 pbar -p @Pbar 10 10 250 13 55
.timer 1 5 pbar -p @Pbar 10 10 250 13 66
.timer 1 6 pbar -p @Pbar 10 10 250 13 77
.timer 1 7 pbar -p @Pbar 10 10 250 13 88
.timer 1 8 pbar -p @Pbar 10 10 250 13 99
.timer 1 9 pbar -p @Pbar 10 10 250 13 100
}