Accueil > > > /XLIST
/XLIST
Information sur la source
Description
Ce code permet de dessiner des listes dans des @win. Vous pouvez utilisez les commandes suivantes : /xlist @ N,> x y w h tf nf sch scv asv Cela permet de crée une liste @ = nom de la fenetre Si vous donné un nombre N, cela supprime la Neme liste pour en refaire une avec les parametre spécifié Sinon mettez > et le numero de la liste sera alors le total du nombre de liste pour cette fenetre plus 1 x y w h = coordonné + taille de la liste tf = taille de l'ecriture nf = nom de la police d'écriture sch = si vous voulez une barre horizontal scv = si vous voulez une barre vertical asv = la liste descendra automatiquement vers le bas Les 3 derniers parametres sont facultatifs /xsuppr @ N Cela permet de supprimer une liste d'une fenetre @ = nom de la fenetre N = n° de la liste dans cette fenetre /xadd @ N rgb Text Cela vous permet d'ajouter du text dans une liste @ = nom de la fenetre N = n° de la liste dans cette fenetre rgb = valeur rgb de la couleur d'ecriture Text = le texte a ajouté /xdel @ N N1 Cela permet de supprimé une ligne @ = nom de la fenetre N = n° de la liste dans cette fenetre N1 = n° de la ligne a supprimé /xins @ N N1 rgb Text Cela permet d'inséré une ligne @ = nom de la fenetre N = n° de la liste dans cette fenetre N1 = n° de la ligne ou l'on insere le texte rgb = valeur rgb de la couleur du texte Text = texte a inséré /xrep @ N space N1 text Cela permet d'ajouter du texte a une ligne deja existante @ = nom de la fenetre N = n° de la liste dans cette fenetre space = si vous voulez un espace entre le texte déja present et le texte que vous rajoutez ( facultatif ) N1 = n° de la ligne a modifié text = le texte a rajoutez $xsel(@,N) retourne le n° de la ligne selectioné de la Neme liste dans la fenetre spécifié $xseltext(@,N) retourne le texte séléctionné de la Neme liste dans la fenetre spécifié Lorsque vous cliquer ,l'alias xsclickp se declenche , vous pouvez y faire ce que vous voulez Idem pour le double click avec l'alias xdclickp Dans ces alias , $1 = nom de la fenetre , $2 = n° de la liste concerné , $3 = $mouse.x et $4 = $mouse.y
Source
- alias xsuppr {
- ;xsuppr @ N
- var %@ = $1 ,%N = $2
- tokenize 32 $hget($+(xlist,%@,%N),cc)
- drawrect -f %@ 0 0 $1-2 $calc($3 + 12) $calc($4 + 12)
- hfree $+(xlist,%@,%N)
- hdec -m xlist %@
- }
-
- alias xlist {
- ; syntaxe : xlist @ >,N x y w h tf nf sch scv asv
- hinc -m xlist $1
- if ($2 == $chr(62)) { var %a = $hget(xlist,$1) }
- else xsuppr $1 $2
- drawrect $1 1 2 $3-6
- hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) name $1
- hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) CC $3-6
- hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) tf $7
- hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) nf $8
- hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) placeh 1 1
- hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) placev 1 1
- hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) sch $istok($9-,sch,32)
- hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) scv $istok($9-,scv,32)
- hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) asv $istok($9-,asv,32)
- if ($hget($+(xlist,$1,$iif(%a,$v1,$2)),sch)) {
- drawrect $1 1 2 $3 $calc($4 + $6 - 2) $5 12
- drawline $1 1 2 $calc($3 + 12) $calc($4 + $6) $calc($3 + 12) $calc($4 + $6 + 12 - 4)
- drawline $1 1 2 $calc($3 + $5 - 12) $calc($4 + $6) $calc($3 + $5 - 12) $calc($4 + $6 + 12 - 4)
- drawtext $1 1 verdana 14 $calc($3 + 1) $calc($4 + $6 - 5) <
- drawtext $1 1 verdana 14 $calc($3 + $5 - 12) $calc($4 + $6 - 5) >
- }
- if ($hget($+(xlist,$1,$iif(%a,$v1,$2)),scv)) {
- drawrect $1 1 2 $calc($3 + $5 - 2) $4 12 $6
- drawline $1 1 2 $calc($3 + $5) $calc($4 + 12) $calc($3 + $5 + 12 - 4) $calc($4 + 12)
- drawline $1 1 2 $calc($3 + $5) $calc($4 + $6 - 12) $calc($3 + $5 + 12 - 4) $calc($4 + $6 - 12)
- drawtext $1 1 verdana 10 $calc($3 + $5) $4 /\
- drawtext $1 1 verdana 10 $calc($3 + $5) $calc($4 + $6 - 12 - 1) \/
- }
- }
-
- menu * {
- sclick : $iif($hget(xlist,$menu),xsclick $menu $mouse.x $mouse.y)
- dclick : $iif($hget(xlist,$menu),xdclick $menu $mouse.x $mouse.y)
- uclick : $iif($hget(xlist,$menu),.timerdc off)
- }
-
- alias xdclick {
- var %a 1 ,%b = $hget(xlist,$1) ,%c = $1 ,%x = $2 ,%y = $3
- while (%a <= %b) {
- tokenize 32 $hget($+(xlist,%c,%a),Cc)
- if ($inrect(%x,%y,$1,$2,$3,$4)) {
- xdclickp %c %a %x %y
- }
- inc %a
- }
- }
-
- alias xsclick {
- var %a 1 ,%b = $hget(xlist,$1) ,%c = $1 ,%x = $2 ,%y = $3
- while (%a <= %b) {
- tokenize 32 $hget($+(xlist,%c,%a),Cc)
- if ($hget($+(xlist,%c,%a),sch)) {
- if ($inrect(%x,%y,$1,$calc($2 + $4),12,12)) { decalh %c %a gauche }
- elseif ($inrect(%x,%y,$calc($1 + $3 - 12),$calc($2 + $4),12,12)) { decalh %c %a droite }
- }
- if ($hget($+(xlist,%c,%a),scv)) {
- if ($inrect(%x,%y,$calc($1 + $3),$2,12,12)) { decalv %c %a haut }
- elseif ($inrect(%x,%y,$calc($1 + $3),$calc($2 + $4 - 12),12,12)) { decalv %c %a bas }
- }
- if ($inrect(%x,%y,$1,$2,$3,$4)) {
- tokenize 32 $hget($+(xlist,%c,%a),placev)
- if ($xsel(click,%c,%a,%y) != 0) {
- hadd -m $+(xlist,%c,%a) xsels $calc($ifmatch - $1 + 1)
- hadd -m $+(xlist,%c,%a) xsel $ifmatch
- xfresh %c %a $calc($hget($+(xlist,%c,%a),xsels) $iif($token($hget($+(xlist,%c,%a),placev),1,32) > 1,+1))
- }
- else xfresh %c %a
- xsclickp %c %a %x %y
- }
- inc %a
- }
- }
-
-
- alias xsel {
- var %@ = $iif($1 == click,$2,$1) ,%N = $iif($1 == click,$3,$2)
- if ($1 == click) {
- var %a 1 ,%b = $4 ,%d = $hget(xlist,$2)
- while (%a <= %d) {
- tokenize 32 $hget($+(xlist,%@,%N),Cc)
- var %c = $calc($2 + 3) ,%j = $calc($2 + $4) ,%mirc ,%t = $token($hget($+(xlist,%@,%N),placev),1,32)
- while (%c <= %j) {
- inc %mirc
- if (%b isnum $+(%c,-,$calc(%c + $hget($+(xlist,%@,%N),tf)))) { return $calc(%mirc + %t - 1) }
- inc %c $calc($hget($+(xlist,%@,%N),tf) + 1)
- }
- inc %a
- }
- }
- else return $hget($+(xlist,%@,%N),xsel)
- }
-
-
- alias xseltext {
- tokenize 160 $hget($+(xlist,$1,$2),$xsel($1,$2))
- return $3-
- }
-
- alias decalv {
- var %@ = $1 ,%N = $2
- if ($hget($+(xlist,%@,%N),n°) == $hget($+(xlist,%@,%N),mvplace)) return
- var %dir = $3
- tokenize 32 $hget($+(xlist,%@,%N),placev)
- if ($1 < 2 && %dir == haut) return
- if ($calc($1 + $2) > $calc($hget($+(xlist,%@,%N),n°) + $1 - 1) && %dir == bas) return
- tokenize 32 $hget($+(xlist,%@,%N),placev)
- hadd -m $+(xlist,%@,%N) placev $calc($1 $iif(%dir == bas,+,-) 1) $calc($2 $iif(%dir == bas,+,-) 1)
- xfresh %@ %N $xsel(%@,%N) %dir
- if ($mouse.key & 1) .timerdc 0 0 decalv %@ %N %dir
- }
-
- alias decalh {
- var %@ = $1 ,%N = $2
- var %dir = $3 ,%t1 = $token($hget($+(xlist,%@,%N),mhplace),1,32) ,%t2 = $token($hget($+(xlist,%@,%N),mhplace),2,32)
- tokenize 160 $hget($+(xlist,%@,%N),%t1)
- var %z = $numtok($3-,160) ,%len = $len($3-)
- tokenize 32 $hget($+(xlist,%@,%N),placeh)
- if (%t2 == $2 || (!$hget($+(xlist,%@,%N),n°))) return
- if ($1 < 2 && %dir == gauche) return
- if ($calc($2 + $1) > $int($calc(%t2 + 1 - %z / %t2)) && %dir == droite) return
- hadd -m $+(xlist,%@,%N) placeh $calc($1 $iif(%dir == droite,+,-) 1) $2
- xfresh %@ %N $xsel(%@,%N)
- if ($mouse.key & 1) .timerdc 0 0 decalh %@ %N %dir
- }
-
- ;xadd @ N rgb Text
- alias xadd {
- var %@ = $1 ,%N = $2
- if ($hget($+(xlist,%@,%N),stopv)) return
- hinc -m $+(xlist,%@,%N) n°
- hadd -m $+(xlist,%@,%N) $hget($+(xlist,%@,%N),n°) $replace($3-,$chr(32),$chr(160))
- var %a = $len($4-) ,%n° = $hget($+(xlist,%@,%N),n°) ,%aa = $len($4-)
- while (1 <= %a) {
- tokenize 160 $hget($+(xlist,%@,%N),%n°)
- var %mid = $mid($2-,1,%a) ,%height = $height(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
- var %width = $width(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
- tokenize 32 $hget($+(xlist,%@,%N),CC)
- if (%width < $calc($3 - 1)) {
- if ($calc((%height - (%height - $hget($+(xlist,%@,%N),tf))) * $hget($+(xlist,%@,%N),n°) + $hget($+(xlist,%@,%N),n°)) < $4) {
- hadd -m $+(xlist,%@,%N) mvplace $hget($+(xlist,%@,%N),n°)
- hadd -m $+(xlist,%@,%N) placev $token($hget($+(xlist,%@,%N),placev),1,32) $hget($+(xlist,%@,%N),n°)
- if ($calc((%height - (%height - $hget($+(xlist,%@,%N),tf))) * ($hget($+(xlist,%@,%N),n°) + 1) + ($hget($+(xlist,%@,%N),n°) + 1)) > $4 && (!$hget($+(xlist,%@,%N),scv))) {
- hadd -m $+(xlist,%@,%N) stopv $true
- }
- }
- else {
- if ($hget($+(xlist,%@,%N),asv)) {
- hadd -m $+(xlist,%@,%N) placev $calc($hget($+(xlist,%@,%N),n°) - $hget($+(xlist,%@,%N),mvplace) + 1) $hget($+(xlist,%@,%N),n°)
- }
- }
- hadd -m $+(xlist,%@,%N) $hget($+(xlist,%@,%N),n°) $replace(%a $hget($+(xlist,%@,%N),$hget($+(xlist,%@,%N),n°)),$chr(32),$chr(160))
- hadd -m $+(xlist,%@,%N) placeh 1 $token($hget($+(xlist,%@,%N),placeh),2,32)
- if (%aa > $token($hget($+(xlist,%@,%N),mhplace),2,32) || !$hget($+(xlist,%@,%N),mhplace)) {
- hadd -m $+(xlist,%@,%N) placeh 1 %a
- hadd -m $+(xlist,%@,%N) mhplace $hget($+(xlist,%@,%N),n°) %aa
- }
- xfresh %@ %N
- break
- }
- else dec %a
- }
- }
-
- alias xfresh {
- var %@ = $1 ,%N = $2
- if (!$hget($+(xlist,%@,%N),1)) return
- if ($3) var %fresh = $3-
- tokenize 32 $hget($+(xlist,%@,%N),Cc)
- drawrect -nf $hget($+(xlist,%@,%N),name) 0 0 $calc($1 + 2) $calc($2 + 2) $calc($3 - 4) $calc($4 - 4)
- var %a = $token($hget($+(xlist,%@,%N),placev),1,32) ,%b = $token($hget($+(xlist,%@,%N),placev),2,32) ,%mirc
- while (%a <= %b) {
- tokenize 160 $hget($+(xlist,%@,%N),%a)
- var %len = $len($3-)
- inc %mirc
- var %text = $3- ,%mid = $mid(%text,$token($hget($+(xlist,%@,%N),placeh),1,32),$1)
- var %height = $height(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf)) ,%width = $width(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
- var %w = $token($hget($+(xlist,%@,%N),CC),3,32) ,%x = $token($hget($+(xlist,%@,%N),CC),1,32)
- var %y = $token($hget($+(xlist,%@,%N),CC),2,32) ,%h = $token($hget($+(xlist,%@,%N),CC),4,32)
- tokenize 32 $hget($+(xlist,%@,%N),Cc)
- if (%fresh) { var %token = $token($hget($+(xlist,%@,%N),placev),1,32) ,%1 = $token(%fresh,1,32) ,%2 = $iif($token(%fresh,2,32),$ifmatch,$null) }
- if (!%2 && %1) { var %g = $calc(%1 + %token - 1 - $iif(%token > 1,%token)) }
- elseif (%1 && %2) { var %g = $calc(%1 - %token + 1) }
- drawtext $+(-nr,$iif(%g == %mirc,b)) $hget($+(xlist,%@,%N),name) $iif(%g == %mirc,16777215,$token($hget($+(xlist,%@,%N),%a),2,160)) $iif(%g == %mirc,16256048) $hget($+(xlist,%@,%N),nf) $hget($+(xlist,%@,%N),tf) $calc(%x + 1) $calc($iif(%mirc == 1,0,$calc($v1 - 1)) + %y + (%mirc - 1) * (%height - (%height - $hget($+(xlist,%@,%N),tf)))) %mid
- inc %a
- }
- drawdot $hget($+(xlist,%@,%N),name)
- tokenize 32 $hget($+(xlist,%@,%N),Cc)
- drawrect $hget($+(xlist,%@,%N),name) 1 2 $1-
- }
-
- ;xdel @ N N1
- alias xdel {
- var %@ = $1 ,%N = $2
- if (!$hget($+(xlist,%@,%N),$3)) return
- var %1 = $3
- tokenize 32 $hget($+(xlist,%@,%N),placev)
- hdel $+(xlist,%@,%N) %1
- var %b = $hget($+(xlist,%@,%N),n°)
- while (%1 < %b) {
- hadd -m $+(xlist,%@,%N) %1 $hget($+(xlist,%@,%N),$calc(%1 + 1))
- inc %1
- }
- hdec -m $+(xlist,%@,%N) n°
- tokenize 32 $hget($+(xlist,%@,%N),placev)
- if ($hget($+(xlist,%@,%N),mvplace) > $hget($+(xlist,%@,%N),n°)) { hdel $+(xlist,%@,%N) stopv }
- if ($hget($+(xlist,%@,%N),n°) < $hget($+(xlist,%@,%N),mvplace)) hdec -m $+(xlist,%@,%N) mvplace
- if ($hget($+(xlist,%@,%N),n°) == $hget($+(xlist,%@,%N),mvplace)) hadd -m $+(xlist,%@,%N) placev 1 $hget($+(xlist,%@,%N),n°)
- else hadd -m $+(xlist,%@,%N) placev $iif($hget($+(xlist,%@,%N),n°) == $calc($2 - 1),$calc($1 - 1),$1) $calc($2 $iif($hget($+(xlist,%@,%N),n°) == $calc($2 - 1),-1))
- tokenize 32 $hget($+(xlist,%@,%N),Cc)
- drawrect -f $hget($+(xlist,%@,%N),name) 0 0 $calc($1 + 2) $calc($2 + 2) $calc($3 - 4) $calc($4 - 4)
- xfresh %@ %N
- }
-
- ;xins @ N N1 rgb Text
- alias xins {
- var %@ = $1 ,%N = $2
- if ($hget($+(xlist,%@,%N),stopv) || (!$hget($+(xlist,%@,%N),$3))) return
- var %M = $3 ,%b = $hget($+(xlist,%@,%N),n°) ,%a = $3 ,%c = $replace($4-,$chr(32),$chr(160))
- while (%b >= %M) {
- hadd -m $+(xlist,%@,%N) $calc(%b + 1) $hget($+(xlist,%@,%N),%b)
- dec %b
- }
- hinc $+(xlist,%@,%N) n°
- var %len = $len($5-)
- while (1 <= %len) {
- var %mid = $mid($5-,1,%len)
- var %height = $height(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
- var %width = $width(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
- var %w = $token($hget($+(xlist,%@,%N),CC),3,32) ,%x = $token($hget($+(xlist,%@,%N),CC),1,32)
- var %y = $token($hget($+(xlist,%@,%N),CC),2,32) ,%h = $token($hget($+(xlist,%@,%N),CC),4,32)
- if (%width < $calc(%w - 1)) {
- if ($calc((%height - (%height - $hget($+(xlist,%@,%N),tf))) * $hget($+(xlist,%@,%N),n°) + $hget($+(xlist,%@,%N),n°)) < %h) { hadd -m $+(xlist,%@,%N) mvplace $hget($+(xlist,%@,%N),n°) | hadd -m $+(xlist,%@,%N) placev $token($hget($+(xlist,%@,%N),placev),1,32) $hget($+(xlist,%@,%N),n°) }
- else {
- hadd -m $+(xlist,%@,%N) stopv $true
- if ($hget($+(xlist,%@,%N),asv)) {
- hadd -m $+(xlist,%@,%N) placev $calc($hget($+(xlist,%@,%N),n°) - $hget($+(xlist,%@,%N),mvplace) + 1) $hget($+(xlist,%@,%N),n°)
- }
- }
- hadd -m $+(xlist,%@,%N) %a $replace(%len %c,$chr(32),$chr(160))
- hadd -m $+(xlist,%@,%N) placeh 1 $token($hget($+(xlist,%@,%N),placeh),2,32)
- if ($len($5-) > $token($hget($+(xlist,%@,%N),mhplace),2,32) || !$hget($+(xlist,%@,%N),mhplace)) {
- hadd -m $+(xlist,%@,%N) placeh 1 %len
- hadd -m $+(xlist,%@,%N) mhplace $hget($+(xlist,%@,%N),n°) $len($5-)
- }
- break
- }
- }
- xfresh %@ %N
- }
-
- ;xrep @ N space N1 text
- alias xrep {
- var %@ = $1 ,%N = $2 ,%sp = $iif($3 == space,$4-,$3-) ,%sp1 = $iif($3 == space,$true,$false) ,%sp2 = $iif($3 == space,$4,$3)
- tokenize 32 %sp
- if (!$hget($+(xlist,%@,%N),$1)) return
- var %a = $1 ,%b = $2-
- tokenize 160 $hget($+(xlist,%@,%N),%a)
- echo -a $1-
- hadd -m $+(xlist,%@,%N) %a $replace($+($1-,$iif(%sp1,$chr(160)),%b),$chr(32),$chr(160))
- tokenize 160 $hget($+(xlist,%@,%N),%a)
- echo -a $1-
- var %len = $len($3-) ,%wtf = $2-
- while (1 <= %len) {
- var %mid = $mid($3-,1,%len)
- var %height = $height(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
- var %width = $width(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
- var %w = $token($hget($+(xlist,%@,%N),CC),3,32) ,%x = $token($hget($+(xlist,%@,%N),CC),1,32)
- var %y = $token($hget($+(xlist,%@,%N),CC),2,32) ,%h = $token($hget($+(xlist,%@,%N),CC),4,32)
- if (%width < $calc(%w - 1)) {
- if ($calc((%height - (%height - $hget($+(xlist,%@,%N),tf))) * $hget($+(xlist,%@,%N),n°) + $hget($+(xlist,%@,%N),n°)) < %h) { hadd -m $+(xlist,%@,%N) mvplace $hget($+(xlist,%@,%N),n°) | hadd -m $+(xlist,%@,%N) placev $token($hget($+(xlist,%@,%N),placev),1,32) $hget($+(xlist,%@,%N),n°) }
- hadd -m $+(xlist,%@,%N) %a $replace(%len %wtf,$chr(32),$chr(160))
- hadd -m $+(xlist,%@,%N) placeh 1 $token($hget($+(xlist,%@,%N),placeh),2,32)
- if ($len($3-) > $token($hget($+(xlist,%@,%N),mhplace),2,32) || !$hget($+(xlist,%@,%N),mhplace)) {
- hadd -m $+(xlist,%@,%N) placeh 1 %len
- hadd -m $+(xlist,%@,%N) mhplace $hget($+(xlist,%@,%N),n°) $len($3-)
- }
- break
- }
- dec %len
- }
- xfresh %@ %N
- }
-
-
- ;alias perso
-
- alias xsclickp {
-
- }
-
- alias xdclickp {
-
- }
alias xsuppr {
;xsuppr @ N
var %@ = $1 ,%N = $2
tokenize 32 $hget($+(xlist,%@,%N),cc)
drawrect -f %@ 0 0 $1-2 $calc($3 + 12) $calc($4 + 12)
hfree $+(xlist,%@,%N)
hdec -m xlist %@
}
alias xlist {
; syntaxe : xlist @ >,N x y w h tf nf sch scv asv
hinc -m xlist $1
if ($2 == $chr(62)) { var %a = $hget(xlist,$1) }
else xsuppr $1 $2
drawrect $1 1 2 $3-6
hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) name $1
hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) CC $3-6
hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) tf $7
hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) nf $8
hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) placeh 1 1
hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) placev 1 1
hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) sch $istok($9-,sch,32)
hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) scv $istok($9-,scv,32)
hadd -m $+(xlist,$1,$iif(%a,$v1,$2)) asv $istok($9-,asv,32)
if ($hget($+(xlist,$1,$iif(%a,$v1,$2)),sch)) {
drawrect $1 1 2 $3 $calc($4 + $6 - 2) $5 12
drawline $1 1 2 $calc($3 + 12) $calc($4 + $6) $calc($3 + 12) $calc($4 + $6 + 12 - 4)
drawline $1 1 2 $calc($3 + $5 - 12) $calc($4 + $6) $calc($3 + $5 - 12) $calc($4 + $6 + 12 - 4)
drawtext $1 1 verdana 14 $calc($3 + 1) $calc($4 + $6 - 5) <
drawtext $1 1 verdana 14 $calc($3 + $5 - 12) $calc($4 + $6 - 5) >
}
if ($hget($+(xlist,$1,$iif(%a,$v1,$2)),scv)) {
drawrect $1 1 2 $calc($3 + $5 - 2) $4 12 $6
drawline $1 1 2 $calc($3 + $5) $calc($4 + 12) $calc($3 + $5 + 12 - 4) $calc($4 + 12)
drawline $1 1 2 $calc($3 + $5) $calc($4 + $6 - 12) $calc($3 + $5 + 12 - 4) $calc($4 + $6 - 12)
drawtext $1 1 verdana 10 $calc($3 + $5) $4 /\
drawtext $1 1 verdana 10 $calc($3 + $5) $calc($4 + $6 - 12 - 1) \/
}
}
menu * {
sclick : $iif($hget(xlist,$menu),xsclick $menu $mouse.x $mouse.y)
dclick : $iif($hget(xlist,$menu),xdclick $menu $mouse.x $mouse.y)
uclick : $iif($hget(xlist,$menu),.timerdc off)
}
alias xdclick {
var %a 1 ,%b = $hget(xlist,$1) ,%c = $1 ,%x = $2 ,%y = $3
while (%a <= %b) {
tokenize 32 $hget($+(xlist,%c,%a),Cc)
if ($inrect(%x,%y,$1,$2,$3,$4)) {
xdclickp %c %a %x %y
}
inc %a
}
}
alias xsclick {
var %a 1 ,%b = $hget(xlist,$1) ,%c = $1 ,%x = $2 ,%y = $3
while (%a <= %b) {
tokenize 32 $hget($+(xlist,%c,%a),Cc)
if ($hget($+(xlist,%c,%a),sch)) {
if ($inrect(%x,%y,$1,$calc($2 + $4),12,12)) { decalh %c %a gauche }
elseif ($inrect(%x,%y,$calc($1 + $3 - 12),$calc($2 + $4),12,12)) { decalh %c %a droite }
}
if ($hget($+(xlist,%c,%a),scv)) {
if ($inrect(%x,%y,$calc($1 + $3),$2,12,12)) { decalv %c %a haut }
elseif ($inrect(%x,%y,$calc($1 + $3),$calc($2 + $4 - 12),12,12)) { decalv %c %a bas }
}
if ($inrect(%x,%y,$1,$2,$3,$4)) {
tokenize 32 $hget($+(xlist,%c,%a),placev)
if ($xsel(click,%c,%a,%y) != 0) {
hadd -m $+(xlist,%c,%a) xsels $calc($ifmatch - $1 + 1)
hadd -m $+(xlist,%c,%a) xsel $ifmatch
xfresh %c %a $calc($hget($+(xlist,%c,%a),xsels) $iif($token($hget($+(xlist,%c,%a),placev),1,32) > 1,+1))
}
else xfresh %c %a
xsclickp %c %a %x %y
}
inc %a
}
}
alias xsel {
var %@ = $iif($1 == click,$2,$1) ,%N = $iif($1 == click,$3,$2)
if ($1 == click) {
var %a 1 ,%b = $4 ,%d = $hget(xlist,$2)
while (%a <= %d) {
tokenize 32 $hget($+(xlist,%@,%N),Cc)
var %c = $calc($2 + 3) ,%j = $calc($2 + $4) ,%mirc ,%t = $token($hget($+(xlist,%@,%N),placev),1,32)
while (%c <= %j) {
inc %mirc
if (%b isnum $+(%c,-,$calc(%c + $hget($+(xlist,%@,%N),tf)))) { return $calc(%mirc + %t - 1) }
inc %c $calc($hget($+(xlist,%@,%N),tf) + 1)
}
inc %a
}
}
else return $hget($+(xlist,%@,%N),xsel)
}
alias xseltext {
tokenize 160 $hget($+(xlist,$1,$2),$xsel($1,$2))
return $3-
}
alias decalv {
var %@ = $1 ,%N = $2
if ($hget($+(xlist,%@,%N),n°) == $hget($+(xlist,%@,%N),mvplace)) return
var %dir = $3
tokenize 32 $hget($+(xlist,%@,%N),placev)
if ($1 < 2 && %dir == haut) return
if ($calc($1 + $2) > $calc($hget($+(xlist,%@,%N),n°) + $1 - 1) && %dir == bas) return
tokenize 32 $hget($+(xlist,%@,%N),placev)
hadd -m $+(xlist,%@,%N) placev $calc($1 $iif(%dir == bas,+,-) 1) $calc($2 $iif(%dir == bas,+,-) 1)
xfresh %@ %N $xsel(%@,%N) %dir
if ($mouse.key & 1) .timerdc 0 0 decalv %@ %N %dir
}
alias decalh {
var %@ = $1 ,%N = $2
var %dir = $3 ,%t1 = $token($hget($+(xlist,%@,%N),mhplace),1,32) ,%t2 = $token($hget($+(xlist,%@,%N),mhplace),2,32)
tokenize 160 $hget($+(xlist,%@,%N),%t1)
var %z = $numtok($3-,160) ,%len = $len($3-)
tokenize 32 $hget($+(xlist,%@,%N),placeh)
if (%t2 == $2 || (!$hget($+(xlist,%@,%N),n°))) return
if ($1 < 2 && %dir == gauche) return
if ($calc($2 + $1) > $int($calc(%t2 + 1 - %z / %t2)) && %dir == droite) return
hadd -m $+(xlist,%@,%N) placeh $calc($1 $iif(%dir == droite,+,-) 1) $2
xfresh %@ %N $xsel(%@,%N)
if ($mouse.key & 1) .timerdc 0 0 decalh %@ %N %dir
}
;xadd @ N rgb Text
alias xadd {
var %@ = $1 ,%N = $2
if ($hget($+(xlist,%@,%N),stopv)) return
hinc -m $+(xlist,%@,%N) n°
hadd -m $+(xlist,%@,%N) $hget($+(xlist,%@,%N),n°) $replace($3-,$chr(32),$chr(160))
var %a = $len($4-) ,%n° = $hget($+(xlist,%@,%N),n°) ,%aa = $len($4-)
while (1 <= %a) {
tokenize 160 $hget($+(xlist,%@,%N),%n°)
var %mid = $mid($2-,1,%a) ,%height = $height(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
var %width = $width(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
tokenize 32 $hget($+(xlist,%@,%N),CC)
if (%width < $calc($3 - 1)) {
if ($calc((%height - (%height - $hget($+(xlist,%@,%N),tf))) * $hget($+(xlist,%@,%N),n°) + $hget($+(xlist,%@,%N),n°)) < $4) {
hadd -m $+(xlist,%@,%N) mvplace $hget($+(xlist,%@,%N),n°)
hadd -m $+(xlist,%@,%N) placev $token($hget($+(xlist,%@,%N),placev),1,32) $hget($+(xlist,%@,%N),n°)
if ($calc((%height - (%height - $hget($+(xlist,%@,%N),tf))) * ($hget($+(xlist,%@,%N),n°) + 1) + ($hget($+(xlist,%@,%N),n°) + 1)) > $4 && (!$hget($+(xlist,%@,%N),scv))) {
hadd -m $+(xlist,%@,%N) stopv $true
}
}
else {
if ($hget($+(xlist,%@,%N),asv)) {
hadd -m $+(xlist,%@,%N) placev $calc($hget($+(xlist,%@,%N),n°) - $hget($+(xlist,%@,%N),mvplace) + 1) $hget($+(xlist,%@,%N),n°)
}
}
hadd -m $+(xlist,%@,%N) $hget($+(xlist,%@,%N),n°) $replace(%a $hget($+(xlist,%@,%N),$hget($+(xlist,%@,%N),n°)),$chr(32),$chr(160))
hadd -m $+(xlist,%@,%N) placeh 1 $token($hget($+(xlist,%@,%N),placeh),2,32)
if (%aa > $token($hget($+(xlist,%@,%N),mhplace),2,32) || !$hget($+(xlist,%@,%N),mhplace)) {
hadd -m $+(xlist,%@,%N) placeh 1 %a
hadd -m $+(xlist,%@,%N) mhplace $hget($+(xlist,%@,%N),n°) %aa
}
xfresh %@ %N
break
}
else dec %a
}
}
alias xfresh {
var %@ = $1 ,%N = $2
if (!$hget($+(xlist,%@,%N),1)) return
if ($3) var %fresh = $3-
tokenize 32 $hget($+(xlist,%@,%N),Cc)
drawrect -nf $hget($+(xlist,%@,%N),name) 0 0 $calc($1 + 2) $calc($2 + 2) $calc($3 - 4) $calc($4 - 4)
var %a = $token($hget($+(xlist,%@,%N),placev),1,32) ,%b = $token($hget($+(xlist,%@,%N),placev),2,32) ,%mirc
while (%a <= %b) {
tokenize 160 $hget($+(xlist,%@,%N),%a)
var %len = $len($3-)
inc %mirc
var %text = $3- ,%mid = $mid(%text,$token($hget($+(xlist,%@,%N),placeh),1,32),$1)
var %height = $height(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf)) ,%width = $width(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
var %w = $token($hget($+(xlist,%@,%N),CC),3,32) ,%x = $token($hget($+(xlist,%@,%N),CC),1,32)
var %y = $token($hget($+(xlist,%@,%N),CC),2,32) ,%h = $token($hget($+(xlist,%@,%N),CC),4,32)
tokenize 32 $hget($+(xlist,%@,%N),Cc)
if (%fresh) { var %token = $token($hget($+(xlist,%@,%N),placev),1,32) ,%1 = $token(%fresh,1,32) ,%2 = $iif($token(%fresh,2,32),$ifmatch,$null) }
if (!%2 && %1) { var %g = $calc(%1 + %token - 1 - $iif(%token > 1,%token)) }
elseif (%1 && %2) { var %g = $calc(%1 - %token + 1) }
drawtext $+(-nr,$iif(%g == %mirc,b)) $hget($+(xlist,%@,%N),name) $iif(%g == %mirc,16777215,$token($hget($+(xlist,%@,%N),%a),2,160)) $iif(%g == %mirc,16256048) $hget($+(xlist,%@,%N),nf) $hget($+(xlist,%@,%N),tf) $calc(%x + 1) $calc($iif(%mirc == 1,0,$calc($v1 - 1)) + %y + (%mirc - 1) * (%height - (%height - $hget($+(xlist,%@,%N),tf)))) %mid
inc %a
}
drawdot $hget($+(xlist,%@,%N),name)
tokenize 32 $hget($+(xlist,%@,%N),Cc)
drawrect $hget($+(xlist,%@,%N),name) 1 2 $1-
}
;xdel @ N N1
alias xdel {
var %@ = $1 ,%N = $2
if (!$hget($+(xlist,%@,%N),$3)) return
var %1 = $3
tokenize 32 $hget($+(xlist,%@,%N),placev)
hdel $+(xlist,%@,%N) %1
var %b = $hget($+(xlist,%@,%N),n°)
while (%1 < %b) {
hadd -m $+(xlist,%@,%N) %1 $hget($+(xlist,%@,%N),$calc(%1 + 1))
inc %1
}
hdec -m $+(xlist,%@,%N) n°
tokenize 32 $hget($+(xlist,%@,%N),placev)
if ($hget($+(xlist,%@,%N),mvplace) > $hget($+(xlist,%@,%N),n°)) { hdel $+(xlist,%@,%N) stopv }
if ($hget($+(xlist,%@,%N),n°) < $hget($+(xlist,%@,%N),mvplace)) hdec -m $+(xlist,%@,%N) mvplace
if ($hget($+(xlist,%@,%N),n°) == $hget($+(xlist,%@,%N),mvplace)) hadd -m $+(xlist,%@,%N) placev 1 $hget($+(xlist,%@,%N),n°)
else hadd -m $+(xlist,%@,%N) placev $iif($hget($+(xlist,%@,%N),n°) == $calc($2 - 1),$calc($1 - 1),$1) $calc($2 $iif($hget($+(xlist,%@,%N),n°) == $calc($2 - 1),-1))
tokenize 32 $hget($+(xlist,%@,%N),Cc)
drawrect -f $hget($+(xlist,%@,%N),name) 0 0 $calc($1 + 2) $calc($2 + 2) $calc($3 - 4) $calc($4 - 4)
xfresh %@ %N
}
;xins @ N N1 rgb Text
alias xins {
var %@ = $1 ,%N = $2
if ($hget($+(xlist,%@,%N),stopv) || (!$hget($+(xlist,%@,%N),$3))) return
var %M = $3 ,%b = $hget($+(xlist,%@,%N),n°) ,%a = $3 ,%c = $replace($4-,$chr(32),$chr(160))
while (%b >= %M) {
hadd -m $+(xlist,%@,%N) $calc(%b + 1) $hget($+(xlist,%@,%N),%b)
dec %b
}
hinc $+(xlist,%@,%N) n°
var %len = $len($5-)
while (1 <= %len) {
var %mid = $mid($5-,1,%len)
var %height = $height(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
var %width = $width(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
var %w = $token($hget($+(xlist,%@,%N),CC),3,32) ,%x = $token($hget($+(xlist,%@,%N),CC),1,32)
var %y = $token($hget($+(xlist,%@,%N),CC),2,32) ,%h = $token($hget($+(xlist,%@,%N),CC),4,32)
if (%width < $calc(%w - 1)) {
if ($calc((%height - (%height - $hget($+(xlist,%@,%N),tf))) * $hget($+(xlist,%@,%N),n°) + $hget($+(xlist,%@,%N),n°)) < %h) { hadd -m $+(xlist,%@,%N) mvplace $hget($+(xlist,%@,%N),n°) | hadd -m $+(xlist,%@,%N) placev $token($hget($+(xlist,%@,%N),placev),1,32) $hget($+(xlist,%@,%N),n°) }
else {
hadd -m $+(xlist,%@,%N) stopv $true
if ($hget($+(xlist,%@,%N),asv)) {
hadd -m $+(xlist,%@,%N) placev $calc($hget($+(xlist,%@,%N),n°) - $hget($+(xlist,%@,%N),mvplace) + 1) $hget($+(xlist,%@,%N),n°)
}
}
hadd -m $+(xlist,%@,%N) %a $replace(%len %c,$chr(32),$chr(160))
hadd -m $+(xlist,%@,%N) placeh 1 $token($hget($+(xlist,%@,%N),placeh),2,32)
if ($len($5-) > $token($hget($+(xlist,%@,%N),mhplace),2,32) || !$hget($+(xlist,%@,%N),mhplace)) {
hadd -m $+(xlist,%@,%N) placeh 1 %len
hadd -m $+(xlist,%@,%N) mhplace $hget($+(xlist,%@,%N),n°) $len($5-)
}
break
}
}
xfresh %@ %N
}
;xrep @ N space N1 text
alias xrep {
var %@ = $1 ,%N = $2 ,%sp = $iif($3 == space,$4-,$3-) ,%sp1 = $iif($3 == space,$true,$false) ,%sp2 = $iif($3 == space,$4,$3)
tokenize 32 %sp
if (!$hget($+(xlist,%@,%N),$1)) return
var %a = $1 ,%b = $2-
tokenize 160 $hget($+(xlist,%@,%N),%a)
echo -a $1-
hadd -m $+(xlist,%@,%N) %a $replace($+($1-,$iif(%sp1,$chr(160)),%b),$chr(32),$chr(160))
tokenize 160 $hget($+(xlist,%@,%N),%a)
echo -a $1-
var %len = $len($3-) ,%wtf = $2-
while (1 <= %len) {
var %mid = $mid($3-,1,%len)
var %height = $height(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
var %width = $width(%mid,$hget($+(xlist,%@,%N),nf),$hget($+(xlist,%@,%N),tf))
var %w = $token($hget($+(xlist,%@,%N),CC),3,32) ,%x = $token($hget($+(xlist,%@,%N),CC),1,32)
var %y = $token($hget($+(xlist,%@,%N),CC),2,32) ,%h = $token($hget($+(xlist,%@,%N),CC),4,32)
if (%width < $calc(%w - 1)) {
if ($calc((%height - (%height - $hget($+(xlist,%@,%N),tf))) * $hget($+(xlist,%@,%N),n°) + $hget($+(xlist,%@,%N),n°)) < %h) { hadd -m $+(xlist,%@,%N) mvplace $hget($+(xlist,%@,%N),n°) | hadd -m $+(xlist,%@,%N) placev $token($hget($+(xlist,%@,%N),placev),1,32) $hget($+(xlist,%@,%N),n°) }
hadd -m $+(xlist,%@,%N) %a $replace(%len %wtf,$chr(32),$chr(160))
hadd -m $+(xlist,%@,%N) placeh 1 $token($hget($+(xlist,%@,%N),placeh),2,32)
if ($len($3-) > $token($hget($+(xlist,%@,%N),mhplace),2,32) || !$hget($+(xlist,%@,%N),mhplace)) {
hadd -m $+(xlist,%@,%N) placeh 1 %len
hadd -m $+(xlist,%@,%N) mhplace $hget($+(xlist,%@,%N),n°) $len($3-)
}
break
}
dec %len
}
xfresh %@ %N
}
;alias perso
alias xsclickp {
}
alias xdclickp {
}
Conclusion
Il y aurait peux etre un bug quand on click sur la derniere ligne visible mais je ne l'ai pas chez moi. S'il manque des choses, hesiter pas :)
Historique
- 25 mars 2006 19:42:12 :
- oublie
- 25 mars 2006 21:24:14 :
- Des caractères n'étais pas passé
- 26 mars 2006 15:15:17 :
- Correction de bug
- 07 avril 2006 20:02:49 :
- Possibilité de mettre plusieur liste dans plusieur fenetre ( une htable par liste malheuresement :\ )
Sources du même auteur
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Dégradé [ par Bloock ]
Bon voila, je vais faire un lecteur mp3 en picwin, et j'aimerai savoir comment on fait [/b]un dégradé dans une fenêtre Picwin[/b]! Merci d'avance <img
Aide Socket & picwin [ par _VeSpArO_ ]
Salut tout le monde je voulai savoir comment stocker un fichier txt d'un site dans un fichier .txt ou autre dans mon mirc.CAD: telecharger par exemple
Picwin je pense lol jsuis meme pas sur du nom :s [ par Panther007 ]
Salut :) Bon je vous dit en quoi j'aimerais me faire aider , j'aimerais me fabriquer un jeu de Ping pong mais avant il faut que je sache comment utili
Dialog + Picwin [ par DiGhan ]
Bonjour,Voilà , j'ai plusieurs dialog, dans lequel je voudrais inclure des picwin.J'aimerais savoir comment faire pour bouger le dialog quand la title
quelques question [ par KiNdErMaXi ]
voila, j'ai quelques questions a vous poser:*1) est-il possible de faire apparaitre un petit truc. Je m'explique, pointez de la souris la croix en hau
tutorial picwin [ par KiNdErMaXi ]
alors voila j'ai fais un petit tutorial sur les picwin, mais comme on ne peut pas laisser de commentaire et puis qu'il est enfouis dans le fond du sit
problème de picwin ... [ par KiNdErMaXi ]
Bonsoir :)Alors voila, je trouvais bizarre certain /drawtext sur mon mIRC, alors j'ai tester avec un autre mIRC et la différence est flagrante ..
Remplissage rectangle en picwin ? [ par talking ]
Voilà bonjour tout le monde. Je poste ce message car j'ai un probléme lors du remplissage de mon rectangle drawrect . Prenons un exemple. Je
Aide dialog => picwin [ par scandalz ]
Salut la troupe. Est-ce possible de mettre des pw sur un dialog ?Merci. scandalz
Aide Dialog/Picwin [ par AgoRa_ScripT ]
Bonjour, Je cherche à savoir comment intégrer une fenêtre picwin dans un dialog. Je crois que c'est possible, mais je me rapelle plus
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : COULEUR TEXTRE : COULEUR TEXT par WorldDMT
Cliquez pour lire la suite par WorldDMT
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|