dialog Idle {
title "Idle Time"
size -1 -1 259 141
option dbu
text "Network", 1, 5 5 50 8, center
edit "", 2, 5 15 50 10, read center
list 3, 5 27 50 50
text "Channel", 4, 60 5 50 8, center
edit "", 5, 60 15 50 10, read center
list 6, 60 27 50 50
text "Name/Nick", 7, 115 5 50 8, center
edit "", 8, 115 15 50 10, read center
list 9, 115 27 50 50, multsel
list 10, 170 27 50 50
button "OK/Cancel", 11, 170 15 50 10, ok cancel default
}
menu * {
&Idle Time2: idle.time
}
alias -l idle.time {
dialog $iif(!$dialog(Idle),-md,-ev) Idle Idle
}
on *:dialog:Idle:Init:*:{
did -r $dname 2,3,5,6,8,9,10
var %a = 1, %b = $scon(0)
while %a <= %b {
if $scon(%a).status == connected {
did -a $dname 3 $scon(%a).network
}
inc %a
}
}
on *:dialog:Idle:sclick:3:{
set %connection $did(3).sel
.scon %connection
did -r $dname 2,5,6,8,9,10
var %a = 1, %b = $chan(0)
while %a <= %b {
did -a $dname 6 $chan(%a)
unset %idle.channel
var %c = $nick($chan(%a),0)
while %c {
inc %idle.channel $nick($chan(%a),%c).idle
dec %c
}
inc %idle.network %idle.channel
inc %a
}
did -ra $dname 2 $d2(%idle.network)
}
alias -l d2 {
var %idle = $duration($1)
return $iif($numtok(%idle,32) < 4,$duration($1,3),$+($gettok(%idle,1--3,32),$chr(32),$duration($duration($gettok(%idle,-3-,32)),3)))
}
on *:dialog:idle:sclick:6:{
.scon %connection
did -r $dname 5,8,9,10
set %chan $did(6).seltext
var %a = 1, %b = $nick(%chan,0)
unset %idle.channel
while %a <= %b {
did -a $dname 9 $nick(%chan,%a)
inc %idle.channel $nick(%chan,%a).idle
inc %a
}
did -ra $dname 5 $d2(%idle.channel)
}
on *:dialog:idle:sclick:9:{
.scon %connection
if !$did(9,0).sel {
did -r $dname 8,10
unset %idle.nick
}
else {
var %a = 1, %b = $did(9,0).sel
while %a <= %b {
var %nick = $did(9,%a).seltext
did -o $dname 10 $did(9,%a).sel $d2($nick(%chan,%nick).idle)
inc %idle.nick $nick(%chan,%nick).idle
inc %a
}
did -ra $dname 8 $d2(%idle.nick)
}
}