;;
;; Usage: /nchange
;; Simple Script to change nicks fast with the help of a popup menu
;;
;; Update:
;; - Fixed High CPU Load while opening popup Menu
;; - Added $me, $mnick and $anick from all Networks you are connected too
dialog nchange {
title "Nickchange"
size -1 -1 70 110
option dbu
combo 1, 5 11 60 70, size
box "Nickchange", 2, 2 2 66 106
button "&Add", 3, 5 81 30 12, default
button "&Del", 4, 35 81 30 12
button "&Up", 5, 5 93 30 12
button "Do&wn", 6, 35 93 30 12
}
on *:dialog:nchange:init:0:{
var %x = $var(%fnc.*,0),%i = 0
while (%i < %x) {
inc %i
did -a $dname 1 $eval($var(%fnc.*,%i),2)
}
}
on *:dialog:nchange:close:0:{
unset %fnc.* | var %x = $did(1).lines
while (%x) { set %fnc. $+ %x $did(1,%x) | dec %x }
}
on *:dialog:nchange:sclick:3:{ if (!$didwm(1,$$did(1).text)) { did -a $dname 1 $$did(1).text } | else beep }
on *:dialog:nchange:sclick:4:{ did -d $dname 1 $$did(1).sel | if ($did(1,1)) { did -c $dname 1 1 } }
on *:dialog:nchange:sclick:5:{ move -1 }
on *:dialog:nchange:sclick:6:{ move +1 }
alias -l move {
if ($did(1).sel) {
var %l = $ifmatch,%o = $did(1,%l),%nl = $calc(%l $1)
if (%nl > $did(1).lines) { %nl = $did(1).lines | beep } | elseif (!%nl) { %nl = 1 | beep }
did -d $dname 1 %l | did -i $dname 1 %nl %o | did -c $dname 1 $didwm(1,%o)
}
}
alias nchange { _nickchange }
menu channel,status,query {
Nickchange
.$submenu($_nickchange($1))
.-
.$!me
..$submenu($_nicks($1).me)
.$!mnick
..$submenu($_nicks($1).m)
.$!anick
..$submenu($_nicks($1).a)
.-
.Setup:nchange
}
alias -l _nicks {
if ($isid) {
if ($1 isnum 1- $+ $scon(0)) {
var %x = $scon($1). [ $+ [ $iif($prop == me,me,$iif($prop == a,anick,$iif($prop == m,mnick))) ] ]
return $iif($me === %x,$style(3),$iif($me == %x,$style(1))) $iif(%x,%x $chr(9) $scon($1).network) (Conn $1 $+ ): nick %x
}
}
else { if (!$dialog(nchange)) { dialog -m nchange nchange } }
}
alias -l _nickchange {
var %n = $var(%fnc.*,0)
if ($isid) { if ($1 isnum 1- $+ %n) { var %x = %fnc. [ $+ [ $1 ] ] | return $iif($me === %x,$style(3),$iif($me == %x,$style(1))) %x : nick %x } }
else { if (!$dialog(nchange)) { dialog -m nchange nchange } }
}