All pastes #501139 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-21 21:50 UTC
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
}