Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
/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 de la même categorie
Commentaires
Discussions en rapport avec ce code source
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|
|