Jump to content

Tried To Make A Nicklist


Haggis

Recommended Posts

  • Replies 47
  • Created
  • Last Reply

Top Posters In This Topic

I've added some code to this, as well as added a left hand vertical scroll bar so you can scroll the nicklist. Here is the code. :)

 

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: {
    if ($dialog(nicklist)) dialog -c nicklist nicklist
    dialog -m nicklist 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
  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
  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:sclick:*: { 
  if ($did == 1) echo -a $did(1).seltext
  if ($did == 5) relistnicks
}

on *:join:#: listnicks
on *:part:#: listnicks
on *:kick:#: listnicks

alias listnicks {
  did -ra nicklist 4 $nick($active,0)
  did -ra nicklist 2 $active
  var %x = 1
  did -r nicklist 1
  while ($nick($active,%x)) {
    did -az nicklist 1 0 + $nickicon($nick($active,%x)) $nick($active,%x)
    inc %x

  }
  .timerresize -m 0 1 resize $active
}

alias relistnicks {
  .remove nicklist.txt
  var %x = $gettok($calc($did(nicklist,1).lines * $gettok($did(nicklist,5).text,1,32) / 100),1,$asc(.))
  did -r nicklist 1
  while ($nick($active,%x)) {
    write -l $+ %x nicklist.txt 0 + $nickicon($nick($active,%x)) $nick($active,%x)
    inc %x
  }
   loadbuf -ro nicklist 1 nicklist.txt
  .timerresize -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
}

alias resize {
  var %achan $1-
  if ($dialog(nicklist).w $dialog(nicklist).h > $dll(dll\nicklist.dll,GetSize,%achan)) || ($dialog(nicklist).w $dialog(nicklist).h < $dll(dll\nicklist.dll,GetSize,%achan)) {
    dll dll\mdx.dll SetDialog nicklist coords 0 0 $dll(dll\nicklist.dll,GetSize,%achan)
    dll dll\mdx.dll MoveControl nicklist 1 * * $gettok($dll(dll\nicklist.dll,GetSize,%achan),1,32) 2000
    if ($dialog(nicklist)) {
      did -i nicklist 1 1 headerdims $calc($gettok($dll(dll\nicklist.dll,GetSize,%achan),1,38) - 6) $+ :1 0:2
    }
    listnicks
  }
}

Link to comment
Share on other sites

that is a bit of a silly place to put it in my opinion because of the fact that all conventions put it on the right side. you should try and stick to it, cause even for an experienced user like me, it doesn't make sense at all.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...