IllogicTC commented on a Page, Toolbar Digital Clock  -  Dec 27, 2011

Very nicely done. Doing the numbers in-script rather than having to grab more files makes this much more user-friendly, very grab-n-go.

As for the colors, here's my take. It's nowhere near perfect, I'm still tinkering with it. Also I can figure out how to give a scrollbar a value when initializing a dialog... so it's bugged in a way. But works? I dunno.

alias clock {
  if (%clock.colors == $null) set %clock.colors 0 255 0
  set %startclock clock $1
  if (!$toolbar(clocksep)) toolbar -is clocksep
  if (!$window(@clock)) window -nBj2kpw0 +f @clock 0 0 117 23
  if (!$toolbar(clock)) toolbar -aux clock "" @clock 0 0 $iif($1 == 12,111,82) 17
  clear @clock
  set -l %time $asctime($iif($1 == 12,hhcnncsstt,HHcnncss))
  set -l %num 1
  while ($mid(%time,%num,1) != $null) {
    if ($mid(%time,1,1) != 0) || (%num != 1) || ($1 != 12) numbers $mid(%time,%num,1) $gettok(0 12 24 29 41 53 58 70 $iif($1 == 12,87 99),%num,32)
    inc %num
  }
  toolbar -pu clock @clock 0 0 $iif($1 == 12,111,82) 17
  toolbar -l clock "/clockchange"
  .timerclock -m 0 1000 clock $iif($1 == 12,$v1)
}
alias clockchange { clock $iif($timer(clock).com == clock 12,,12) }
alias clockoff {
  unset %startclock
  .timerclock off
  toolbar -d clocksep
  toolbar -d clock
  window -c @clock
}

on *:start: if (%startclock) { .timerclock 1 1 %startclock | unset %startclock }

alias numbers {
  var %a = $1, %b = $2
  tokenize 32 %clock.colors
  if (%i == c) {
    drawline -r @clock 1264139 1 $calc(%b + 1) 3 $calc(%b + 4) 3
    drawline -r @clock 1264139 1 $calc(%b + 1) 5 $calc(%b + 4) 5
    drawline -r @clock 1264139 1 $calc(%b + 1) 11 $calc(%b + 4) 11
    drawline -r @clock 1264139 1 $calc(%b + 1) 13 $calc(%b + 4) 13
    drawline -r @clock $rgb($1,$2,$3) 3 $calc(%b + 2) 4 $calc(%b + 2) 4
    drawline -r @clock $rgb($1,$2,$3) 3 $calc(%b + 2) 12 $calc(%b + 2) 12
    return
  }
  drawline -r @clock $iif(%a isin ap02356789,$rgb($1,$2,$3),1264139) 1 $calc(%b + 2) 1 $calc(%b + 10) 1
  drawline -r @clock $iif(%a isin ap02356789,$rgb($1,$2,$3),1264139) 1 $calc(%b + 3) 2 $calc(%b + 9) 2
  drawline -r @clock $iif(%a isin apm045689,$rgb($1,$2,$3),1264139) 1 $calc(%b + 1) 2 $calc(%b + 1) 7
  drawline -r @clock $iif(%a isin apm045689,$rgb($1,$2,$3),1264139) 1 $calc(%b + 2) 3 $calc(%b + 2) 8
  drawline -r @clock $iif(%a isin apm0268,$rgb($1,$2,$3),1264139) 1 $calc(%b + 1) 10 $calc(%b + 1) 15
  drawline -r @clock $iif(%a isin apm0268,$rgb($1,$2,$3),1264139) 1 $calc(%b + 2) 9 $calc(%b + 2) 14
  drawline -r @clock $iif(%a isin 023568,$rgb($1,$2,$3),1264139) 1 $calc(%b + 2) 15 $calc(%b + 10) 15
  drawline -r @clock $iif(%a isin 023568,$rgb($1,$2,$3),1264139) 1 $calc(%b + 3) 14 $calc(%b + 9) 14
  drawline -r @clock $iif(%a isin apm01234789,$rgb($1,$2,$3),1264139) 1 $calc(%b + 10) 2 $calc(%b + 10) 7
  drawline -r @clock $iif(%a isin apm01234789,$rgb($1,$2,$3),1264139) 1 $calc(%b + 9) 3 $calc(%b + 9) 8
  drawline -r @clock $iif(%a isin am013456789,$rgb($1,$2,$3),1264139) 1 $calc(%b + 10) 10 $calc(%b + 10) 15
  drawline -r @clock $iif(%a isin am013456789,$rgb($1,$2,$3),1264139) 1 $calc(%b + 9) 9 $calc(%b + 9) 14
  drawline -r @clock $iif(%a isin ap2345689,$rgb($1,$2,$3),1264139) 3 $calc(%b + 4) 8 $calc(%b + 7) 8
  if (%a == m) {
    tokenize 32 %clock.colors
    drawline -r @clock $rgb($1,$2,$3) 1 $calc(%b + 2) 1 $calc(%b + 4) 1
    drawline -r @clock $rgb($1,$2,$3) 1 $calc(%b + 3) 2 $calc(%b + 5) 2
    drawline -r @clock $rgb($1,$2,$3) 1 $calc(%b + 4) 3 $calc(%b + 8) 3
    drawline -r @clock $rgb($1,$2,$3) 1 $calc(%b + 5) 4 $calc(%b + 7) 4
    drawline -r @clock $rgb($1,$2,$3) 1 $calc(%b + 7) 2 $calc(%b + 9) 2
    drawline -r @clock $rgb($1,$2,$3) 1 $calc(%b + 8) 1 $calc(%b + 10) 1
  }
}

alias clockcolor { dialog -m clock_colors clock_colors }
dialog clock_colors {
  title "Clock Colors"
  size -1 -1 96 41
  option dbu
  scroll "", 1, 2 4 92 8, range 1 32 horizontal bottom
  scroll "", 2, 2 17 92 8, range 1 32 horizontal bottom
  scroll "", 3, 2 30 92 8, range 1 32 horizontal bottom
}

on *:dialog:clock_colors:*:*: {
  if ($devent == scroll) set %clock.colors $calc(($did($dname,1).sel * 8) - 1) $calc(($did($dname,2).sel * 8) - 1) $calc(($did($dname,3).sel * 8) - 1)
}

Use /clockcolors to open the color selection script. The three bars adjust the RGB values of the lit "LEDs," as you move them. There are 32 intensities for each colours channel.

Like I said, my work on custom colors needs (quite a bit) of work. You can either stem off of what I have so far here, or well use your imagination! Having customization is a love of mine, and I would like to see this script have more options in the future. ^_^

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.