dialog wbs.channelbar { title "Wbs Channel bar" size -1 -1 80 314 option dbu list 1, 0 0 80 333, size } alias -l wget { return $hget(wbscfg,$1-) } alias sb { var %dname = wbs.channelbar if (!$dialog(%dname).title) { wbsopen %dname } else { load.switchbar } var %dll = $wdll(dmu.dll) if (%dll) { var %height = $dll(%dll,SbSize,height) , %width = $dll(%dll,SbSize,width) if (%height) && (%width) { ;dialog -s %dname %height %width } } } alias ub { if ($dialog(wbs.channelbar).title) { dll $wdll(UltraDock.dll) UnDock 0 | dll $wdll(UltraDock.dll) ShowSwitchbar 1 | wbsclose wbs.channelbar } } alias wbs.gettree { ;usage: $wbs.gettree(Dialog,Id,string) var %tmp = $wildtok($didtok($1,$2,1),* $+ $3- $+ *,1,1) if ($isid) && (%tmp) { return %Tmp } } alias -l pop.add { mpdll MPAddItem $1- } on *:dialog:wbs.channelbar:*:*:{ if ($devent == init) { mdxinit dll $wdll(mdx.dll) SetControlMDX $dname 1 treeview fullrowselect haslines hasbuttons showsel rowselect > $wdll(views.mdx) idid 1 1 iconsize normal small var %ico.dir = $shortfn($wbsdir $+ img\ico\) , %icos = otherads.ico;mirc.ico;serv.ico;burn.ico;notify.ico;sitespring.ico;ftp.ico;skull.ico;send.ico;Sitespring.ico;mem.ico , %i = 1 , %n = $numtok(%icos,59) while (%i <= %n) { idid 1 1 seticon normal %ico.dir $+ $gettok(%icos,%i,59) inc %i } load.switchbar ;idid 1 1 branch collapseall idid 1 1 setcolor bkg 0 idid 1 1 setcolor text 16777215 tokenize 32 $did(1,1,1) if ($window(0)) { idid 1 1 branch collapse $calc($scon(0) +2) } dll $wdll(UltraDock.dll) ShowSwitchbar 0 dll $wdll(UltraDock.dll) Dock -1 $dialog($dname).hwnd left $dname } elseif ($devent == sclick) { tokenize 32 $did(1,1,1) if ($1 == slclick) { var %seltext = $gettok($mdxgb($dname,1,$4),7,32) , %mode = $2 , %auto_dialog = 0 , %text = $mdxgb($dname,1,$4-5) , %stext = $mgettok(%text,7-,32,1,9) var %rtext = $mgettok($mdxgb($dname,1,$4-),7-,32,1,9) if ($left(%Rtext,1) == $chr(35)) { %rtext = $mgettok($mdxgb($dname,1,$4-),7-,32,2,9) } if (%mode == select) && ($1 == slclick) { var %scon = $wbs.findscon(%seltext) if (%scon) { scid %scon } if ($left(%rtext,1) != @) { if (%seltext != !Dcc) && (!$5) { window -a "Status Window" if (%auto_dialog) { wbsopen $dname did -f $dname 1 } } } if ($calc($4 -1) <= $scon(0)) { if ($left(%rtext,1) == $chr(35)) { if ($window(%rtext)) { window -a " $+ %rtext $+ " } if (%auto_dialog) { did -f $dname 1 } } elseif (%Stext = Query) && ($query(%rtext)) { .timer 1 0.1 query %rtext } } elseif ($window(%rtext)) && (%seltext == @Windows) && ($v1) { window -wx %rtext if (%auto_dialog) { did -f $dname 1 } } elseif (%seltext == !Dcc) { var %i = $calc($6 -1) if (%stext == Get) && ($get(%rtext).file) { window -a "Get $get(%rtext) $get(%rtext).file $+ " } elseif (%stext == Send) && ($send(%rtext).file) { window -a "Send $send(%rtext) $send(%rtext).file $+ " } elseif (%stext == Chat) { window -a "Chat $chat(%i) $+ " } if (%auto_dialog) { did -f $dname 1 } } } } elseif ($1 == rclick) { did -f $dname 1 var %seltext = $gettok($mdxgb($dname,1,$4),7,32) , %mode = $gettok($did(1,1),2,32) , %dll = $wdll(mpopup.dll) var %chan = $gettok($gettok($mdxgb($dname,1,$3-),7-,32),1,9) , %scon = $wbs.findscon(%seltext) var %hmenu = $gettok($mpdll(MPCreateMenu,Channelbar),2,32) if (%scon) { scid %scon } pop.add %hmenu > 1 0 0 Actualiser > sb pop.add %hmenu > 2 0 0 - > - pop.add %hmenu > 3 0 0 Rejoindre > hop %chan pop.add %hmenu > 4 0 0 Fermer > part %Chan pop.add %hmenu > 5 0 0 Deconecter > quit mpdll MPMenuColor Channelbar > RGB_BACK > 16777180 mpdll MPopup Channelbar > $mouse.dx $mouse.dy left left left } } } alias -l fmaj { if ($2) { return $upper($left($1,$2)) $+ $mid($1,[ [ $calc($2 +1) ] $+ - ]) } elseif ($1) { return $upper($left($1-,1)) $+ $mid($1-,2-) } } alias -l load.switchbar { var %n = $scon(0) , %i 1 , %dname = wbs.channelbar , %win = $window(0) , %table = wbs.channelbar.data if ($dialog(%dname).title) { wbs.figebar did -r %dname 1 while (%i <= %n) { scid $scon(%i) var %chans = $chan(0) , %i2 1 , %query = $query(0) , %data = $hget(%table,$network) if (%chans > 0) { did -i %dname 1 1 cb root up did -a %dname 1 $iif($gettok(%data,1-6,32),$ifmatch,+be 1 1 0 0 0) $network $chr(9) $network $chr(91) $+ %chans $+ $chr(93) did -i %dname 1 1 cb root last while (%i2 <= %chans) { var %tmp = $fmaj($chan(%i2),2) if ($len(%tmp) <= 17) { did -a %dname 1 2 10 0 0 0 %tmp $chr(9) %tmp } else { did -a %dname 1 2 10 0 0 0 $+($mid(%tmp,1,16),..) $chr(9) %tmp } inc %i2 } } if (%query > 0) { var %i3 1 , %qdata = $hget(%table,$+($network,.,$query(%i))) did -a %dname 1 $iif(%qdata,$ifmatch) 6 6 0 0 0 Query $chr(9) Query $chr(91) $+ %query $+ $chr(93) did -i %dname 1 1 cb last while (%i3 <= %query) { did -a %dname 1 5 5 0 0 0 $query(%i3) $chr(9) $query(%i3) inc %i3 } did -i %dname 1 1 cb root up } inc %i } if (%win > 0) { var %i3 1 did -i %dname 1 1 cb root up did -a %dname 1 $iif($gettok($hget(%table,@windows),1-6,32),$ifmatch,+be 3 3 0 0 0) @Windows $chr(9) @Windows $chr(91) $+ %win $+ $chr(93) did -i %dname 1 1 cb root last while (%i3 <= %win) { did -a %dname 1 4 4 0 0 $window(%i3) $chr(9) $window(%i3) inc %i3 } did -i %dname 1 1 branch collapse $calc($scon(0) +2) did -i %dname 1 1 cb root up } } wbs.dcclist if ($hget(%table)) { hfree %table } } alias -l wbs.dcclist { var %get = $get(0) , %send = $send(0) , %i 1 , %dname = wbs.channelbar , %table = wbs.channelbar.data if ($dialog(%dname).title) { if ($calc(%get + %send + $chat(0)) > 0) { ;did -i %dname 1 1 cb root up did -a %dname 1 $iif($gettok($hget(%table,!DCC),1-6,32),$ifmatch,+be 7 7 0 0 0) !DCC $chr(9) Dcc transfers did -i %dname 1 1 cb root last if (%get) { did -a %dname 1 9 9 0 0 0 Get $chr(9) Get $chr(91) $+ %get $+ $chr(93) did -i %dname 1 1 cb last while (%i <= %get) { did -a %dname 1 8 8 0 0 0 $get(%i) $chr(9) $get(%i).file $chr(40) $+ $get(%i).ip $+ $chr(41) inc %i } did -i %dname 1 1 cb up } if (%send) { var %i 1 did -a %dname 1 10 10 0 0 0 Send $chr(9) Send $chr(91) $+ %send $+ $chr(93) did -i %dname 1 1 cb last while (%i <= %send) { did -a %dname 1 8 8 0 0 0 $send(%i) $chr(9) $send(%i).file $chr(40) $+ $send(%i).ip $+ $chr(41) inc %i } did -i %dname 1 1 cb up } if ($chat(0)) { var %i 1 did -a %dname 1 12 12 0 0 0 Chat $chr(9) Chat $chr(91) $+ $chat(0) $+ $chr(93) did -i %dname 1 1 cb last while (%i <= $chat(0)) { did -a %dname 1 13 13 0 0 0 $chat(%i).ip $chr(9) $chat(%i) $chr(91) $+ $chat(%i).ip $+ $chr(93) inc %i } did -i %dname 1 1 cb root up } } } } alias -l wbs.figebar { var %table = wbs.channelbar.data , %n = $wbs.mdx.tree.num(wbs.channelbar,1) , %i 2 if (%n > 0) { if ($hget(%table)) { hfree %table } while (%i <= %n) { var %data = $did(wbs.channelbar,1,%i) if (%data) { hadd -m %table $gettok(%data,7,32) %data } inc %i } } } on me:*:join:#: { .timer -m 1 1 load.switchbar } on me:*:part:#: { .timer -m 1 1 load.switchbar } on *:connect:{ .timer -m 1 1 load.switchbar } on *:open:@:{ .timer -m 1 1 load.switchbar } on *:close:@:{ .timer -m 1 1 load.switchbar } on *:open:?:{ .timer -m 1 1 load.switchbar } on *:close:?:{ .timer -m 1 1 load.switchbar } on *:close:*:{ if ($target == "status window") { .timer -m 1 1 load.switchbar } } on *:GETFAIL:*.*:{ .timer -m 1 1 load.switchbar } on *:FILERCVD:*:{ .timer -m 1 1 load.switchbar } on *:FILESENT:*:{ .timer -m 1 1 load.switchbar } alias wbs.mdx.tree.num { ;retourne le nombre total d'items dans une treeview if ($dialog($1)) && ($2) && ($isid) { var %i 0 while ($true) { inc %i if (!$mdxgb($1,$2,%i)) { return %i } } } } Alias mdxGB { if ($dialog($1)) { did -i $1 $2 1 cb root $deltok($3,-1,32) return $did($1,$2,1,$gettok($3,-1,32)) } } alias wbs.mdx.tree.id { ;syntaxe: Dname,ID,mot,N ;N = occurence, 0 pour le nombre total d"occurences if ($dialog($1)) && ($len($4)) && ($isid) { var %n = $wbs.mdx.tree.num($1,$2) , %i 1 , %k = 0 while (%i <= %n) { var %data = $strip($mdxgb($1,$2,%i)) if (%data) { var %tmp = $gettok($gettok(%data,7-,32),1,9) if ($3 iswm %tmp || $3 == %tmp) { inc %k if ($4 == %k) { return %i } } } elseif (!$len($4)) { break } else { return %k } inc %i } } } alias wbs.findscon { if ($isid) && ($1) { var %n = $scon(0) , %id = $scon($network) while (%n > 0) { scid $scon(%n) if ($1 == $network) { return $scon(%n) } dec %n } if (%id) { scid $scid(%id) } } } alias wbsopen { var %dialog = $1 , %mod = $2 if (%dialog) { if ($dialog(%dialog).title) { dialog -v %dialog } else { if ($left(%mod,1) == -) { dialog %mod %dialog %dialog } else { dialog -m %dialog %dialog } } } } alias mdx { if ($wdll(mdx.dll)) { dll $ifmatch $1- } elseif (%mdx) { dll $shortfn(%mdx) $1- } } alias mdxinit { if ($1) { var %dname = $1- } else { var %dname = $dname } if (!%dname) { wecho erreur: Mdxinit: nom du dialog manquant ! | halt } else { mdx SetMircVersion $version mdx MarkDialog %dname return OK } } alias dellasttok { return $deltok($1,$numtok($1,$2),$2) } alias wbsdir { if ($wbs.relat($shortfn($scriptdir))) { return $ifmatch $+ $chr(92) } } alias idid { if ($1) { did -i $dname $1- } } alias wbs.relat { if ($gettok($$1,$calc($numtok($mircdir,92) +1),92)) { return $gettok($$1,$calc($numtok($mircdir,92) +1) $+ -,92) } } alias wdll { if ($1) { if ($hget(wbs.dlls,$1)) { return $wbs.relat($shortfn($ifmatch)) } var %wdll = $wbsdir $+ dlls\ $+ $1 if (!$exists(%wdll)) { var %wdll = $findfile($mircdir,$ifmatch,1) if (%wdll) { hadd -m wbs.dlls $nopath(%wdll) %wdll } } if (%wdll) { return $wbs.relat($shortfn($ifmatch)) } } } alias mgettok { if ($0) && ($isid) { var %n = $calc(($0 -1) / 2) if ($chr(46) !isin %n) { var %i 1 , %tok = 3 , %id = 2 while (%i <= %n) { var %tmp = $eval($+($,%tok),2) if (%tmp !isnum) { var %tmp = $asc(%tmp) } if (!%data) { var %data = $gettok($1,$eval($+($,%id),2),%tmp) } else { var %data = $gettok(%data,$eval($+($,%id),2),%tmp) } inc %id 2 inc %tok 2 inc %i } return %data } else { wecho Error: mgettok syntaxe/parametres invalides } } } alias wbsclose { var %dname = $iif($1-,$ifmatch,$dname) if ($dialog(%dname).title) { dialog -x %dname } } alias -l mpdll { if ($isid) { return $dll($wdll(mpopup.dll),$1,$2-) } else { dll $wdll(mpopup.dll) $1 $2- } }