rendered paste bodydialog 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- }
}