alias server {
server $1-
rebuildmenu
}
alias vis {
scon $1
return $iif(!$window(status window).sbstate || !$window(status window).tbstate,0,1)
}
alias mnu {
if ($istok(begin end,$1,32)) { return - }
if ($3 isnum) { scon $3 }
if ($($+($,$2,$chr(40),$1,$chr(41)),2)) {
return $iif($window($iif($2 == chat,=) $+ $($+($,$2,$chr(40),$1,$chr(41)),2)).sbstate || $window($iif($2 == chat,=) $+ $&
$($+($,$2,$chr(40),$1,$chr(41)),2)).tbstate,Hide,Show) $($+($,$2,$chr(40),$1,$chr(41)),2) : window $iif($window($iif($2 == chat,=) $+ $&
$($+($,$2,$chr(40),$1,$chr(41)),2)).sbstate || $window($iif($2 == chat,=) $+ $($+($,$2,$chr(40),$1,$chr(41)),2)).tbstate,-w0,-w3) $iif($2 == chat,=) $+ $($+($,$2,$chr(40),$1,$chr(41)),2)
}
}
alias mnuwindows {
if ($istok(begin end,$1,32)) { return - }
if ($window(@*,$1)) return $iif($window(@*,$1).sbstate || $window(@*,$1).tbstate,Hide,Show) $window(@*,$1) : window $iif($window(@*,$1).sbstate || $window(@*,$1).tbstate,-w0,-w3) $window(@*,$1)
}
alias rebuildmenu {
var %popupfile = $qt($scriptdir $+ popups.mrc)
.fopen -o popups %popupfile
if ($ferr) { return }
.fwrite -n popups menu status $chr(123)
var %i = 1
while ($scon(%i)) {
scon %i
.fwrite -n popups $scon(%i).network
.fwrite -n popups .$iif($vis( %i ),Hide,Show) $scon(%i).network (Status Window) : window $!iif($vis( %i ),-w0,-w3) "status window"
.fwrite -n popups .$iif($chan(0),Channels)
.fwrite -n popups ..$submenu($mnu($1,chan, %i ))
.fwrite -n popups .$iif($query(0),Queries)
.fwrite -n popups ..$submenu($mnu($1,query, %i ))
inc %i
}
.fwrite -n popups $!iif($chat(0),DCC Chats)
.fwrite -n popups .$submenu($mnu($1,chat))
.fwrite -n popups $!iif($window(@*,0),@windows)
.fwrite -n popups .$submenu($mnuwindows($1))
.fwrite -n popups $chr(125)
.fclose popups
.reload -rs %popupfile
}
on *:active:*:{
if (!$istok(%popup_cids,$cid,32)) {
rebuildmenu
set %popup_cids $addtok(%popup_cids,$cid,32)
}
elseif (!$scid($lactivecid)) {
rebuildmenu
if ($remtok(%popup_cids,$lactivecid,1,32)) { set %popup_cids $v1 }
else { unset %popup_cids }
}
}