this is my code that warrior helpe dme with if it helps
dialog nicklist {
title "Nick"
size -1 -1 86 314
option dbu
list 1, 10 20 75 293, size extsel hsbar vsbar
text "Room name", 2, 3 2 80 8
text "Chatters:", 3, 3 10 43 8
text "num", 4, 54 11 29 8, right
button "", 5, 1 21 8 283
}
menu channel {
Nicklist:
.Turn Nicklist On: {
;This will turn the nicklist on for each channel you use it in.
if ($dialog(nicklist $+ $active)) dialog -c nicklist $+ $active nicklist
dialog -m nicklist $+ $active nicklist
;The codes above will determine if the nicklist for a channel is already running. If it is it will close, and reactivate it.
}
.Turn Nicklist off: dialog -c nicklist $+ $active nicklist
}
on *:dialog:nicklist*:init:*: {
dll dll\mdx.dll MarkDialog $dname
dll dll\mdx.dll SetMircVersion $version
dll dll\mdx.dll SetDialog $dname style
dll dll\mdx.dll SetFont $dname 1 12 50 verdana
dll dll\mdx.dll SetColor $dname 1 text $rgb (0,0,139)
dll dll\mdx.dll SetControlMDX $dname 1 ListView report showsel noheader smallicon hottrack single > dll\views.mdx
dll dll\mdx.dll SetControlMDX $dname 5 scrollbar vertical > dll\ctl_gen.mdx
;The code above transforms the button above into a vertical scrollbar.
did -i $dname 1 1 headerdims $calc($gettok($dll(dll\nicklist.dll,GetSize,$active),1,38) - 6) $+ :1 0:2
dll dll\nicklist.dll Nicklist $dname $active
;The code above attaches your custom nicklist to the one in mIRC.
did -ra $dname 5 1 0 114 15 2 1
did -i $dname 1 1 iconsize normal small
did -i $dname 1 1 seticon normal c:\mirc\icons\owner.ico
did -i $dname 1 1 seticon normal c:\mirc\icons\host.ico
did -i $dname 1 1 seticon normal c:\mirc\icons\no.ico
did -i $dname 1 1 seticon normal c:\mirc\icons\voice.ico
did -i $dname 1 1 seticon normal c:\mirc\icons\tick.ico
listnicks
}
on *:dialog:nicklist*:*:*: {
if ($devent == sclick) {
if ($did == 1) echo -a $did(1).seltext
if ($did == 5) relistnicks
}
elseif ($devent == close) .timerresize. $+ $remove($dialog(nicklist*),nicklist) off
}
on *:join:#: listnicks
on *:part:#: listnicks
on *:kick:#: listnicks
alias listnicks {
did -ra nicklist $+ $active 4 $nick($active,0)
did -ra nicklist $+ $active 2 $active
var %x = 1
did -r nicklist $+ $active 1
while ($nick($active,%x)) {
did -az nicklist $+ $active 1 0 + $nickicon($nick($active,%x)) $nick($active,%x)
inc %x
}
.timerresize. $+ $active -m 0 1 resize $active
;This code resizes the nicklist if it needs to. Otherwise, it won't do anything.
}
;This code is used for scrolling with the scrollbar. It deletes the top names from the list while scrolling down, and readds them when scrolling up. It calculates the position of the scrollbar to determine which nicknames to add, and which to delete. Therefore giving it a scrolling perspective.
alias relistnicks {
.remove nicklist.txt
var %x = $gettok($calc($did(nicklist $+ $active,1).lines * $gettok($did(nicklist $+ $active,5).text,1,32) / 100),1,$asc(.))
did -r nicklist $+ $active 1
while ($nick($active,%x)) {
write -l $+ %x nicklist.txt 0 + $nickicon($nick($active,%x)) $nick($active,%x)
inc %x
}
loadbuf -ro nicklist $+ $active 1 nicklist.txt
.timerresize. $+ $chan -m 0 1 resize $active
}
alias nickicon {
if ($left($nick($active,$1).pnick,1) == ~) return 1
if ($left($nick($active,$1).pnick,1) == &) || ($left($nick($active,$1).pnick,1) == @) return 2
if ($left($nick($active,$1).pnick,1) == +) return 4
if ($left($nick($active,$1).pnick,1) == %) return 2
else return 3
}
;The following alias checks to see if the nicklist needs to be resized for whatever reason. If the nicklist isn't the size of mIRC's nicklist it will resize to compensate.
alias resize {
var %achan $1-
if ($dialog(nicklist $+ %achan)) {
if ($dialog(nicklist $+ %achan).w $dialog(nicklist $+ %achan).h > $dll(dll\nicklist.dll,GetSize,%achan)) || ($dialog(nicklist $+ %achan).w $dialog(nicklist $+ %achan).h < $dll(dll\nicklist.dll,GetSize,%achan)) {
dll dll\mdx.dll SetDialog nicklist $+ %achan coords 0 0 $dll(dll\nicklist.dll,GetSize,%achan)
dll dll\mdx.dll MoveControl nicklist $+ %achan 1 * * $gettok($dll(dll\nicklist.dll,GetSize,%achan),1,32) 2000
if ($dialog(nicklist $+ %achan)) {
did -i nicklist $+ %achan 1 1 headerdims $calc($gettok($dll(dll\nicklist.dll,GetSize,%achan),1,38) - 6) $+ :1 0:2
}
listnicks
}
}
}