Jump to content

Tried To Make A Nicklist


Haggis

Recommended Posts

its working and puts in icons etc but when i tried to dock it i t does this

 

desktop3kli.jpg

 

here is my code

 

dialog nicklist {
  title "Nick"
  size -1 -1 86 250
  option dbu
  list 1, 1 20 83 330, size vsbar
  text "Room name", 2, 3 2 80 8
  text "Chatters:", 3, 3 10 43 8
  text "num", 4, 54 11 29 8, right
}

menu channel {
  Nicklist: /dialog -m nicklist nicklist
}

on *:dialog:nicklist:init:*: { 

  listnicks
}

on *:dialog:nicklist:sclick:1: { echo -a $did(1).seltext }

alias listnicks {
  dll dll\rebar.dll Dock $dialog(nicklist).hwnd > right 
  dll dll\mdx.dll SetMircVersion $version
  dll dll\mdx.dll MarkDialog $dname
  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 noheader smallicon hottrack single > dll\views.mdx
  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
  did -ra nicklist 4 $nick($active,0)
  did -ra nicklist 2 $active
  did -r nicklist 1
  var %x = 1
  while ($nick($active,%x)) {
    did -a nicklist 1 0 + $nickicon($nick($active,%x)) $nick($active,%x)
    inc %x

  }
}
alias nickicon {
  if ($left($nick($active,$1).pnick,1) == ~) return 1
  if ($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





}

Link to comment
Share on other sites

  • Replies 47
  • Created
  • Last Reply

Top Posters In This Topic

you are better off docking it with nicklist dll

 

another thing is you should use nicklist.channelname as the name of the dialog and nicklist.* init so you can have them in multiple rooms

Link to comment
Share on other sites

Yes, when you use rebar.dll you will need your regular mirc nicklist hidden, because rebar does not dock to the nicklist. In order to dock to the nicklist you will need nicklist.dll to accomplish that. Here is the edited version for you...

 

dialog nicklist {
  title "Nick"
  size -1 -1 86 314
  option dbu
  list 1, 2 20 83 293, size 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
}


menu channel {
  Nicklist: /dialog -m nicklist nicklist
}

on *:dialog:nicklist:init:*: {
  dll dll\mdx.dll SetMircVersion $version
  dll dll\mdx.dll MarkDialog $dname
  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 noheader smallicon hottrack single > dll\views.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 -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:1: { echo -a $did(1).seltext }

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 -a nicklist 1 0 + $nickicon($nick($active,%x)) $nick($active,%x)
    inc %x

  }
  .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 * * $dll(dll\nicklist.dll,GetSize,%achan)
    if ($dialog(nicklist)) {
      did -i nicklist 1 1 headerdims $calc($gettok($dll(dll\nicklist.dll,GetSize,%achan),1,38) - 6) $+ :1 0:2
    }
    listnicks
  }
}

Edited by Warrior124
Link to comment
Share on other sites

Ahh, I see what happened. Replace the init part of the code with this...

 

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
  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 -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
}

 

It should look like this now...

post-216-1250438244_thumb.jpg

post-216-1250438418_thumb.jpg

post-216-1250438426_thumb.jpg

Edited by Warrior124
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...