Cette addon est la copy de paint ( avec des option differente et des options manquante ^^ )
Cette version est beta !!! donc je sais qu'il y a certain bug que je corrigerai d'ici quelque jour :)
copier coller tout et loader l'addon ( pour pouvoir setter des var car sinon ca marche pas ^^ )
ensuite tapper /paint
Source / Exemple :
alias paint {
if ($window(@paint)) { window -c @config }
window -dapBk0zo +dL @paint -1 -1 375 300
drawrect -fr @paint %fond.rgb.dialog 1 0 0 375 300
drawrect -r @paint %text.rgb.dialog 1 0 0 375 300
drawline -r @paint %text.rgb.dialog 1 375 20 0 20
drawline -r @paint %text.rgb.dialog 1 355 0 355 20
drawtext -r @paint %text.rgb.dialog Tahoma 13 362 2 X
drawtext -r @paint %text.rgb.dialog Tahoma 13 7 2 O
drawline -r @paint %text.rgb.dialog 1 20 0 20 20
drawtext -r @paint %text.rgb.dialog Tahoma 13 160 2 Paint v1.0
drawline -r @paint %text.rgb.dialog 1 0 40 375 40
drawline -r @paint %text.rgb.dialog 1 60 40 60 300
drawline -r @paint %text.rgb.dialog 1 80 20 80 40
drawline -r @paint %text.rgb.dialog 1 160 20 160 40
drawtext -r @paint %text.rgb.dialog Tahoma 13 18 22 Fichier
drawtext -r @paint %text.rgb.dialog Tahoma 13 98 22 Options
drawrect -r @paint %text.rgb.dialog 1 3 43 55 32
drawline -r @paint %text.rgb.dialog 1 10 70 50 50
drawrect -r @paint %text.rgb.dialog 1 3 78 55 32
drawdot -r @paint %text.rgb.dialog 3 32 94
drawrect -r @paint %text.rgb.dialog 1 3 113 55 32
drawrect -re @paint %text.rgb.dialog 1 20 119 20 20
drawrect -r @paint %text.rgb.dialog 1 3 169 55 32
drawgradient @paint %paint.rgb.1 %paint.rgb.2 4 170 53 30
drawrect -r @paint %text.rgb.dialog 1 3 240 55 56
drawrect -fr @paint %paint.rgb.1 1 4 241 53 27
drawrect -fr @paint %paint.rgb.2 1 4 268 53 27
design paint %paint.select 1
if (%n.px == $null) { set %n.px 2 }
drawtext -r @paint %text.rgb.dialog Tahoma 13 3 148 %n.px pixel
drawrect -r @paint %text.rgb.dialog 1 42 148 16 18
drawtext -r @paint %text.rgb.dialog Tahoma 13 49 148 !
}
alias -l paint.popup {
var %click = $menu(Popup,$1-)
if ( %click != $null ) $gettok(%click,3-,32)
return
}
menu @paint {
sclick {
;echo la souris a bouger en $mouse.x : $mouse.y
if ($inrect($mouse.x,$mouse.y,3,43,55,32)) && (%paint.select != trait) { design paint trait 1 | set %paint.trait on }
if ($inrect($mouse.x,$mouse.y,355,0,20,20)) { design paint close 1 | set %paint.close on }
if ($inrect($mouse.x,$mouse.y,0,0,20,20)) { design paint move 1 | set %paint.move on }
if ($inrect($mouse.x,$mouse.y,42,148,16,18)) { design paint px 1 | set %paint.px on }
if ($inrect($mouse.x,$mouse.y,3,78,55,32)) && (%paint.select != point) { design paint point 1 | set %paint.point on }
if ($inrect($mouse.x,$mouse.y,3,113,55,32)) && (%paint.select != rond) { design paint rond 1 | set %paint.rond on }
if ($inrect($mouse.x,$mouse.y,3,170,53,30)) && (%paint.select != degrader) { design paint degrader 1 | set %paint.degrade on }
if ($inrect($mouse.x,$mouse.y,61,41,314,258)) {
if (%paint.select == point) { drawdot -r @paint %paint.rgb.1 2 $mouse.x $mouse.y | set %paint.dessin.point on }
if (%paint.select == rond) { set %paint.dessin.rond on | set %paint.rond.now $mouse.x | set %paint.rond.now2 $mouse.y | set %paint.rond.depard $mouse.x | set %paint.rond.depard2 $mouse.y }
if (%paint.select == trait) { set %paint.dessin.trait on | set %paint.trait.now $mouse.x | set %paint.trait.now2 $mouse.y | set %paint.trait.depard $mouse.x | set %paint.trait.depard2 $mouse.y }
if (%paint.select == degrader) { set %paint.dessin.degrader on | set %paint.degrader.now $mouse.x | set %paint.degrader.now2 $mouse.y | set %paint.degrader.depard $mouse.x | set %paint.degrader.depard2 $mouse.y }
}
}
mouse {
if ($inrect($mouse.x,$mouse.y,42,148,16,18)) && (%paint.px == on) { design paint px 1 }
elseif (!inrect($mouse.x,$mouse.y,42,148,16,18)) && (%paint.px == on) { design paint px 0 | unset %paint.px }
if ($inrect($mouse.x,$mouse.y,3,170,53,30)) && (%paint.degrade == on) { design paint trait 1 }
elseif (!$inrect($mouse.x,$mouse.y,3,170,53,30)) && (%paint.degrade == on) { design paint trait 0 | unset %paint.degrade }
if ($inrect($mouse.x,$mouse.y,3,43,55,32)) && (%paint.trait == on) { design paint trait 1 }
elseif (!$inrect($mouse.x,$mouse.y,3,43,55,32)) && (%paint.trait == on) { design paint trait 0 | unset %paint.trait }
if ($inrect($mouse.x,$mouse.y,355,0,20,20)) && (%paint.close == on) { design paint close 1 }
elseif (!$inrect($mouse.x,$mouse.y,355,0,20,20)) && (%paint.close == on) { design paint close 0 | unset %paint.close }
if ($inrect($mouse.x,$mouse.y,0,0,20,20)) && (%paint.move == on) { design paint move 1 | move.paint $calc($mouse.dx - $window($active).x) $calc($mouse.dy - $window($active).y) }
if ($inrect($mouse.x,$mouse.y,3,78,55,32)) && (%paint.point == on) { design paint point 1 }
elseif (!$inrect($mouse.x,$mouse.y,3,78,55,32)) && (%paint.point == on) { design paint point 0 | unset %paint.point }
if ($inrect($mouse.x,$mouse.y,3,113,55,32)) && (%paint.rond == on) { design paint rond 1 }
elseif (!$inrect($mouse.x,$mouse.y,3,113,55,32)) && (%paint.rond == on) { design paint rond 0 | unset %paint.rond }
if ($inrect($mouse.x,$mouse.y,61,41,314,258)) {
if (%paint.select == point) && (%paint.dessin.point == on) { drawdot -r @paint %paint.rgb.1 %n.px $mouse.x $mouse.y }
if (%paint.select == rond) && (%paint.dessin.rond == on) { drawrect -re @paint %paint.rgb.1 %n.px %paint.rond.depard %paint.rond.depard2 $calc($mouse.x - %paint.rond.depard) $calc($mouse.y - %paint.rond.depard2) | drawrect -re @paint %fond.rgb.dialog %n.px %paint.rond.depard %paint.rond.depard2 $calc(%paint.rond.now - %paint.rond.depard) $calc(%paint.rond.now2 - %paint.rond.depard2) | set %paint.rond.now $mouse.x | set %paint.rond.now2 $mouse.y }
if (%paint.select == trait) && (%paint.dessin.trait == on) { drawline -r @paint %fond.rgb.dialog %n.px %paint.trait.depard %paint.trait.depard2 %paint.trait.now %paint.trait.now2 | drawline -r @paint %paint.rgb.1 %n.px %paint.trait.depard %paint.trait.depard2 $mouse.x $mouse.y | set %paint.trait.now $mouse.x | set %paint.trait.now2 $mouse.y }
if (%paint.select == degrader) && (%paint.dessin.degrader == on) { drawrect -r @paint %paint.rgb.1 %n.px %paint.degrader.depard %paint.degrader.depard2 $calc($mouse.x - %paint.degrader.depard) $calc($mouse.y - %paint.degrader.depard2) | drawrect -r @paint %fond.rgb.dialog %n.px %paint.degrader.depard %paint.degrader.depard2 $calc(%paint.degrader.now - %paint.degrader.depard) $calc(%paint.degrader.now2 - %paint.degrader.depard2) | set %paint.degrader.now $mouse.x | set %paint.degrader.now2 $mouse.y }
}
elseif (!$inrect($mouse.x,$mouse.y,61,41,314,258)) {
if (%paint.select == point) && (%paint.dessin.point == on) { unset %paint.dessin.point }
}
}
uclick {
if ($inrect($mouse.x,$mouse.y,4,241,53,27)) { set %paint.couleur 1 | ouvrir rgb.paint }
if ($inrect($mouse.x,$mouse.y,4,268,53,27)) { set %paint.couleur 2 | ouvrir rgb.paint }
if ($inrect($mouse.x,$mouse.y,42,148,16,18)) { design paint px 0 | unset %paint.px | var %px.temp = $?="entre le nombre de pixel ( entre 1 et 10 conseiller )" | if (%px.temp != $null) { drawtext -r @paint %fond.rgb.dialog Tahoma 13 3 148 %n.px pixel | set %n.px %px.temp | drawtext -r @paint %text.rgb.dialog Tahoma 13 3 148 %n.px pixel } }
if ($inrect($mouse.x,$mouse.y,3,170,53,30)) { design paint %paint.select 0 | unset %paint.degrade | set %paint.select degrader }
if ($inrect($mouse.x,$mouse.y,3,43,55,32)) { design paint %paint.select 0 | unset %paint.trait | set %paint.select trait }
if ($inrect($mouse.x,$mouse.y,355,0,20,20)) { design paint close 0 | unset %paint.close | window -c @paint }
if ($inrect($mouse.x,$mouse.y,0,0,20,20)) { design paint move 0 | unset %paint.move }
if ($inrect($mouse.x,$mouse.y,3,78,55,32)) { design paint %paint.select 0 | unset %paint.point | set %paint.select point }
if ($inrect($mouse.x,$mouse.y,3,113,55,32)) { design paint %paint.select 0 | unset %paint.rond | set %paint.select rond }
if ($inrect($mouse.x,$mouse.y,61,41,314,258)) {
if (%paint.select == point) { unset %paint.dessin.point }
if (%paint.select == rond) { drawrect -re @paint %fond.rgb.dialog %n.px %paint.rond.depard %paint.rond.depard2 $calc($mouse.x - %paint.rond.now) $calc($mouse.y - %paint.rond.now2) | drawrect -fre @paint %paint.rgb.1 %n.px %paint.rond.depard %paint.rond.depard2 $calc($mouse.x - %paint.rond.depard) $calc($mouse.y - %paint.rond.depard2) | unset %paint.dessin.rond | unset %paint.rond.depard | unset %paint.rond.depard2 | unset %paint.rond.now | unset %paint.rond.now2 }
if (%paint.select == trait) { drawline -r @paint %fond.rgb.dialog %n.px %paint.trait.depard %paint.trait.depard2 %paint.trait.now %paint.trait.now2 | drawline -r @paint %paint.rgb.1 %n.px %paint.trait.depard %paint.trait.depard2 $mouse.x $mouse.y | unset %paint.dessin.trait | unset %paint.trait.depard | unset %paint.trait.depard2 | unset %paint.trait.now | unset %paint.trait.now2 }
if (%paint.select == degrader) { drawrect -r @paint %fond.rgb.dialog %n.px %paint.degrader.depard %paint.degrader.depard2 $calc($mouse.x - %paint.degrader.now) $calc($mouse.y - %paint.degrader.now2) | drawgradient @paint %paint.rgb.2 %paint.rgb.1 %paint.degrader.depard %paint.degrader.depard2 $calc($mouse.x - %paint.degrader.depard) $calc($mouse.y - %paint.degrader.depard2) | unset %paint.dessin.degrader | unset %paint.degrader.depard | unset %paint.degrader.depard2 | unset %paint.degrader.now | unset %paint.degrader.now2 }
}
}
}
alias design {
if ($1 == paint) {
if ($2 == trait) {
if ($3 == 1) { drawrect -fr @paint %text.rgb.dialog 1 3 43 55 32 | drawline -r @paint %fond.rgb.dialog 1 10 70 50 50 }
if ($3 == 0) { drawrect -fr @paint %fond.rgb.dialog 1 3 43 55 32 | drawrect -r @paint %text.rgb.dialog 1 3 43 55 32 | drawline -r @paint %text.rgb.dialog 1 10 70 50 50 }
}
if ($2 == close) {
if ($3 == 1) { drawrect -fr @paint %text.rgb.dialog 1 355 0 20 20 | drawtext -r @paint %fond.rgb.dialog Tahoma 13 362 2 X }
if ($3 == 0) { drawrect -fr @paint %fond.rgb.dialog 1 355 0 20 20 | drawrect -r @paint %text.rgb.dialog 1 355 0 20 21 | drawtext -r @paint %text.rgb.dialog Tahoma 13 362 2 X }
}
if ($2 == move) {
if ($3 == 1) { drawrect -fr @paint %text.rgb.dialog 1 0 0 20 20 | drawtext -r @paint %fond.rgb.dialog Tahoma 13 7 3 O }
if ($3 == 0) { drawrect -fr @paint %fond.rgb.dialog 1 0 0 20 20 | drawrect -r @paint %text.rgb.dialog 1 0 0 21 21 | drawtext -r @paint %text.rgb.dialog Tahoma 13 7 3 O }
}
if ($2 == point) {
if ($3 == 1) { drawrect -fr @paint %text.rgb.dialog 1 3 78 55 32 | drawdot -r @paint %fond.rgb.dialog 3 32 94 }
if ($3 == 0) { drawrect -fr @paint %fond.rgb.dialog 1 3 78 55 32 | drawrect -r @paint %text.rgb.dialog 1 3 78 55 32 | drawdot -r @paint %text.rgb.dialog 3 32 94 }
}
if ($2 == rond) {
if ($3 == 1) { drawrect -fr @paint %text.rgb.dialog 1 3 113 55 32 | drawrect -re @paint %fond.rgb.dialog 1 20 119 20 20 }
if ($3 == 0) { drawrect -fr @paint %fond.rgb.dialog 1 3 113 55 32 | drawrect -r @paint %text.rgb.dialog 1 3 113 55 32 | drawrect -re @paint %text.rgb.dialog 1 20 119 20 20 }
}
if ($2 == degrader) {
if ($3 == 1) { drawgradient @paint %paint.rgb.2 %paint.rgb.1 4 170 53 30 }
if ($3 == 0) { drawgradient @paint %paint.rgb.1 %paint.rgb.2 4 170 53 30 }
}
if ($2 == px) {
if ($3 == 1) { drawrect -fr @paint %text.rgb.dialog 1 42 148 16 18 | drawtext -r @paint %fond.rgb.dialog Tahoma 13 49 148 ! }
if ($3 == 0) { drawrect -fr @paint %fond.rgb.dialog 1 42 148 16 18 | drawrect -r @paint %text.rgb.dialog 1 42 148 16 18 | drawtext -r @paint %text.rgb.dialog Tahoma 13 49 148 ! }
}
}
}
alias -l move.paint {
if ($window(@paint)) window @paint $calc($mouse.dx - $1) $calc($mouse.dy - $2)
if ($mouse.key & 1) .timer $+ $ticks -m 1 0 move.paint $1-
}
alias drawgradient { if ($1 == -v) { var %win = $2 , %rgb1 = $3 , %rgb2 = $4 , %x = $5 , %y = $6 , %w = $7 , %h = $8 , %s = %h , %v = $true } | else { var %win = $1 , %rgb1 = $2 , %rgb2 = $3 , %x = $4 , %y = $5 , %w = $6 , %h = $7 , %s = %w , %v = $false } | if !$window(%win) { echo $color(Info Text) -ea * /drawgradient: invalid window | halt } | if !%h { echo $color(Info Text) -ea * /drawgradient: insufficient parameters | halt } | if (%rgb1 isnum) { var %rgb1 = $rgb(%rgb1) } | tokenize 44 $eval(%rgb1,2) | var %R1 = $1 , %G1 = $2 , %B1 = $3 | if (%rgb2 isnum) { var %rgb2 = $rgb(%rgb2) } | tokenize 44 $eval(%rgb2,2) | var %R2 = $1 , %G2 = $2 , %B2 = $3 | var %dR = $calc((%R2 - %R1)/ %s) | var %dG = $calc((%G2 - %G1)/ %s) | var %dB = $calc((%B2 - %B1)/ %s) | var %i = 0
while %i < %s { var %_r = $round($calc(%R1 + %i * %dR),0) | var %_g = $round($calc(%G1 + %i * %dG),0) | var %_b = $round($calc(%B1 + %i * %dB),0) | var %rgb = $rgb(%_r,%_g,%_b) | if %v { drawrect -nr %win %rgb 1 %x $calc(%y + %i) %w 1 } | else { drawrect -nr %win %rgb 1 $calc(%x + %i) %y 1 %h } | inc %i } | drawdot %win
}
dialog rgb.paint {
title "changer de couleur"
size -1 -1 273 82
scroll "", 1, 48 7 150 16, range 255 horizontal bottom
scroll "", 2, 48 31 150 16, range 255 horizontal bottom
scroll "", 3, 48 55 150 16, range 255 horizontal bottom
icon 5, 205 7 64 64
edit "", 6, 3 5 40 21
edit "", 7, 3 29 40 21
edit "", 8, 3 53 40 21
edit "", 9, 30 78 70 21, result hide
}
on *:dialog:rgb.paint:init:*:{
set %rgbfashrgb $rgb(%paint.rgb. [ $+ [ %paint.couleur ] ] $+ )
did -a $dname 6 $gettok(%rgbfashrgb,1,44) | did -a $dname 7 $gettok(%rgbfashrgb,2,44) | did -a $dname 8 $gettok(%rgbfashrgb,3,44) | did -a $dname 9 %zlag.colour [ $+ [ %i1 ] ]
did -c $dname 1 $gettok(%rgbfashrgb,1,44) | did -c $dname 2 $gettok(%rgbfashrgb,2,44) | did -c $dname 3 $gettok(%rgbfashrgb,3,44)
window -hBpf +d @rgbfash -1 -1 64 64
drawrect -fr @rgbfash $rgb($did(6),$did(7),$did(8)) 1 0 0 64 64
drawsave @rgbfash rgb.bmp
did -g $dname 5 rgb.bmp
}
on *:dialog:rgb.paint:scroll:*:{
if ($did == 1) { did -o $dname 6 1 $did(1).sel }
if ($did == 2) { did -o $dname 7 1 $did(2).sel }
if ($did == 3) { did -o $dname 8 1 $did(3).sel }
if ($istok(1 2 3,$did,32)) {
set %paint.rgb. [ $+ [ %paint.couleur ] ] $rgb($did(6),$did(7),$did(8))
if (%paint.couleur == 1) { drawrect -fr @paint $rgb($did(6),$did(7),$did(8)) 1 4 241 53 27 }
if (%paint.couleur == 2) { drawrect -fr @paint $rgb($did(6),$did(7),$did(8)) 1 4 268 53 27 }
drawgradient @paint %paint.rgb.1 %paint.rgb.2 4 170 53 30
drawrect -fr @rgbfash $rgb($did(6),$did(7),$did(8)) 1 0 0 64 64
drawsave @rgbfash rgb.bmp
did -g $dname 5 rgb.bmp
did -o $dname 9 1 $rgb($did(6),$did(7),$did(8))
}
}
on *:dialog:rgb.paint:edit:*:{
if ($did == 6) { if (!$len($did(6))) || ($did(6) !isnum) { did -o $dname 6 1 0 } | did -c $dname 1 $did(6) }
if ($did == 7) { if (!$len($did(7))) || ($did(7) !isnum) { did -o $dname 7 1 0 } | did -c $dname 2 $did(7) }
if ($did == 8) { if (!$len($did(8))) || ($did(8) !isnum) { did -o $dname 8 1 0 } | did -c $dname 3 $did(8) }
if ($istok(6 7 8,$did,32)) {
set %paint.rgb. [ $+ [ %paint.couleur ] ] $rgb($did(6),$did(7),$did(8))
if (%paint.couleur == 1) { drawrect -fr @paint $rgb($did(6),$did(7),$did(8)) 1 4 241 53 27 }
if (%paint.couleur == 2) { drawrect -fr @paint $rgb($did(6),$did(7),$did(8)) 1 4 268 53 27 }
drawgradient @paint %paint.rgb.1 %paint.rgb.2 4 170 53 30
drawrect -fr @rgbfash $rgb($did(6),$did(7),$did(8)) 1 0 0 64 64
drawsave @rgbfash rgb.bmp
did -g $dname 5 rgb.bmp
did -o $dname 9 1 $rgb($did(6),$did(7),$did(8))
}
}
alias ouvrir {
if ($dialog($1)) { dialog -x $1 }
dialog -md $1 $1
}
on 1:load: {
set %fond.rgb.dialog 16777215
set %text.rgb.dialog 7960953
set %paint.rgb.2 0
set %paint.rgb.1 206
set %paint.select point
set %n.px 1
echo -a Merci d'avoir télécharger Paint Version 1.0 creer par thyb
echo -a Merci de ne pas copier
echo -a Pour ouvrir le dialog tappe /paint :) et le tour est jouer :)
echo -a Pour me prevenir des bug ou autre: thybsite@hotmail.com
}
Conclusion :
Voila, une fois loader, ( je me repete mais bon ) tappe /paint
Liste des bug que je corrigerai d'ici pas longtemps:
- les trait,cercle,degrader efface lors de la visualisation du trait ( bug que je corrigerai en mettant un mode sans previsualisation et avec ^^ )
- les menu ( fichier et option ) ne sont pas encore script ( je vais y mettre dans fichier ( new , save as , save , load , exit ) et dans option ( voir le code en mirc scripting ( si j'y arrive ^^ ) , zoom , rectangle )
- lorsqu'on click sur la button pour changer de couleur rgb, il est possible qu'il se trouve sous la window paint :/ donc deplacer la window et vous verrez en dessous le dialog ;)
voila pour les bug decouverts, n'esiter pas a mettre un commentaire :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.