Page 1 sur 2

Info sur CanevasGadget

Publié : mar. 18/sept./2012 16:46
par MetalOS
Salut tous le monde,

J'ai un peut de mal à trouver des exemples de ce que l'on peut faire avec un CanevasGadget. Si quelqu'un aurait l'amabilité de poster un code d'exemple sur les possibilités d'un CanevasGadget sa serait super.

Peut on dessiner des truc controlable à l'intérieur d'un CanevasGadget de ce genre là

Image

Je suis peut être à côté de la plaque sur ce que je demande mais j'ai un peut de mal à savoir à quoi sert exactement ce CanevasGadget. Merci d'avance.

Re: Info sur CanevasGadget

Publié : mar. 18/sept./2012 17:19
par Mesa
Ça doit être possible mais pour atteindre une bonne vitesse de rafraîchissement, j'aurais utilisé la bibliothèque Gadget3D, il y a un exemple fourni avec.

Mesa.

Re: Info sur CanevasGadget

Publié : mar. 18/sept./2012 17:27
par MetalOS
L'exemple que j'ai mis et plutôt complexe voici un autre exemple plus simple

Image

Des genres de boite à outils intégrée dans une fenêtre et skiné dans un CanvasGadget. C'est possible ce genre de chose ?

Re: Info sur CanevasGadget

Publié : mar. 18/sept./2012 17:51
par SPH
Je suis aussi interessé par vos reponses ! :idea:

Re: Info sur CanevasGadget

Publié : mar. 18/sept./2012 22:21
par Backup
on pouvais faire ça avant le Canvas gadget

j'imagine qu'on peut le faire depuis qu'on l'a ... :)

pour preuve

the Colorer :
Image
Image

puissance 4 de Erix14

Image


la calculette du soldat
Image

ldvm de Ar-s
Image

Md5 file validator de Ar-s
Image


bref , fait une recherche sur les Skin ;)
ps : le Soldat avait fait une librairie pour skiner les fenetres et les gadgets ....
http://www.lsi-dev.com/index.php?mod=ar ... ires&id=53

lire ici :
http://www.purebasic.fr/french/viewtopi ... re&start=0

lire SURTOUT ici :
http://www.purebasic.fr/french/viewtopi ... in+fenetre

Image

Re: Info sur CanevasGadget

Publié : mar. 18/sept./2012 23:01
par Fred
Oui, tu peux faire ca avec le canvasgadget(), mais utilise plutot plein de petit canvasgadget() plutot qu'un seul gros, surtout quand t'as des boutons repetitifs. Ca accelera grandement l'affichage et reduira ton code.

Re: Info sur CanevasGadget

Publié : mer. 19/sept./2012 0:29
par Backup
voici un petit exemple , j'ai repris l'un des boutons de ton image
plusieurs click bouton gauche de la souris , fait tourner le bouton dans un sens
plusieurs click bouton droit de la souris , fait tourner dans un autre ...

j'utilise ici un petit Canvas de la taille de l'image
pour un coté pratique ( pour le forum ) j'ai mis l'image du bouton en data :)

Code : Tout sélectionner

; By Dobro

Enumeration
	#fenetre
	#canvas
	#bouton
	#image_bouton
	
EndEnumeration
Structure image
	x.l
	Y.l
EndStructure
Global Dim image.image(360)


Declare  rotate_image(id,x2,y2,degres)



If OpenWindow(#fenetre, 0, 0, 220, 220, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	
	; *********** lit l'image en Data ****************************************
	Largeur=39 ; affiche en 800 x600 la vrais resolution est de :39x39
	Hauteur=39
	Global Dim tableau(Largeur, Hauteur)
	CreateImage(#image_bouton, Largeur, Hauteur)
	If StartDrawing(ImageOutput(#image_bouton))
		; ***********mise en tableau ************
		For i = 0 To Hauteur -1
			For j = 0 To Largeur -1 
				Read a.l 
				tableau(j, i)=a.l 
			Next j
		Next i
		; **************************
		For i = 0 To Hauteur -1
			For j = 0 To Largeur -1 
				Plot(j,i,tableau(j,i)) 
			Next j
		Next i
	StopDrawing() 
EndIf
; ***********************************************************************




global larg_image =ImageWidth(#image_bouton)
global haut_image=  ImageHeight(#image_bouton)
Global Dim tabl1(larg_image+10,haut_image+10 )
; ******* mise en tableau de l'image **********
StartDrawing ( ImageOutput ( #image_bouton) )
	For Y=1 To haut_image-1
		For x=1 To  larg_image-1
			tabl1(x,Y)= Point (x,Y)
		Next x
	Next Y
StopDrawing ()
;*****************************************************
CanvasGadget(#canvas, 10, 10,larg_image,haut_image )

Repeat
	Event = WaitWindowEvent(20)
	
	If Event = #PB_Event_Gadget 
		if  EventGadget() = #canvas
			if EventType() = #PB_EventType_LeftButtonDown 
				degres=degres+10
				if degres>359 :degres=1:endif   
				rotate_image(#image_bouton,larg_image,haut_image,degres)  
				
				elseif  EventType() = #PB_EventType_RightButtonDown 
				degres=degres-10
				if degres<1 :degres=359:endif   
				rotate_image(#image_bouton,larg_image,haut_image,degres)     
			endif
		endif
	endif
	
	StartDrawing(CanvasOutput(#canvas))
		DrawImage(ImageID(#image_bouton),1,1)  
	StopDrawing()
	
	
	
Until Event = #PB_Event_CloseWindow
EndIf


Procedure rotate_image(id,x2,y2,degres)
; By Dobro
x3=x2/2
y3=y2/2
StartDrawing ( ImageOutput ( id ) )
	For Y=1 To y2-1
		For x=1 To x2-1
			; ********* voici la formule de la rotation d'image *********
			image(degres)\x= x3+(x-x3) * Cos (degres* #PI /180) +( Y-y3)* Sin (degres* #PI /180)
			image(degres)\Y= y3-(x-x3) * Sin (degres* #PI /180) + (Y-y3)* Cos (degres* #PI /180)
			;*****************************************************
			; *** on evite que les coordonée sorte du tableau dim ****
			If   image(degres) \Y <0 
				image(degres) \Y=y2-image(degres)\Y
			EndIf
			If   image(degres)\Y>y2 
				image(degres) \Y =0+image(degres)\Y-y2
			EndIf
			If    image(degres)\x>x2 
				image(degres)\x=0+image(degres)\x-x2
			EndIf
			If    image(degres)\x<1 
				image(degres)\x=x2-image(degres)\x
			EndIf
			; *****************************************
			Plot (x,Y,tabl1( image(degres)\x,image(degres)\Y)) ; on dessine l'image rotaté a l'aide du tableau de points 
			
		Next x
	Next Y
StopDrawing ()
EndProcedure

DataSection
Data.l 39,39
data.l $171313,$2F2928,$2B2423,$302827,$302927,$2E2624,$2A2220,$272220,$2B2524,$2C2625,$312A29,$302827,$28201F,$2B2524,$302A29,$2D2625,$2C2524,$2D2625,$282221
data.l $282221,$2E2827,$2D2726,$2B2524,$2B2425,$2C2526,$2C2524,$292120,$2A2221,$2C2524,$2E2726,$2A2322,$2D2726,$2F2928,$282221,$292523,$2D2827,$2D2726,$2C2524,$161312
data.l $2B2423,$594C4A,$544542,$5B4C49,$584946,$564744,$584946,$625652,$5F504D,$554643,$5F504D,$625351,$5A4D4B,$584C4A,$554C49,$514344,$57494A,$5A4C4D,$554748,$57494A
data.l $5A4C4D,$554748,$57494A,$574B4B,$615555,$685C5C,$594C4A,$524341,$544543,$584645,$584645,$504440,$554945,$594E4A,$605452,$594D4B,$574B49,$584A4B,$2B2424,$2A2322
data.l $5C504C,$5B4C49,$5D4E4B,$5A4B48,$5B4C49,$625350,$5C4B48,$574845,$4D3E3B,$534743,$554947,$564D4A,$48413E,$37322F,$2B2323,$292121,$251D1D,$1E1616,$1E1616,$1F1717
data.l $271F1F,$393131,$3A3232,$3D3535,$4F4545,$5A4E4E,$5F5250,$5C4D4B,$584645,$544241,$554943,$594D47,$4E433F,$423733,$3D312F,$423636,$3F3333,$20191A,$2B2422,$60514E
data.l $5B4F4B,$5A4E4A,$584C48,$594C4A,$5C4F4D,$584744,$5C4D4A,$574A48,$4D4441,$362F2C,$2B2623,$1E1B17,$14110D,$80907,$20301,$10200,$10200,$10200,$100,$10200
data.l $A0B09,$F0B0A,$14100F,$2B2625,$423A3A,$4D413F,$4E413F,$5E4F4D,$625351,$5B4F49,$564A44,$4B3F3B,$3D312D,$322523,$312525,$2C2020,$151011,$2E2625,$635451,$635753
data.l $5B4F4B,$534644,$574A48,$625553,$5D504E,$4F4341,$3E3532,$292423,$110D0C,$50302,$20000,$20000,$101,$0,$101,$0,$0,$0,$101,$0
data.l $10200,$20000,$70302,$110C0B,$201818,$332A27,$4C4340,$524644,$5C504C,$564A46,$605450,$655856,$4C3F3D,$392D2B,$312727,$171212,$292120,$5A4B48,$625652,$5B4E4C
data.l $544745,$564A48,$5E5250,$554949,$312727,$171211,$70505,$10101,$0,$0,$10101,$0,$10101,$30303,$20202,$10101,$20202,$20202,$0,$100
data.l $100,$30402,$20000,$80403,$14100F,$2B2623,$3E3936,$574A48,$5B4E4C,$5C4D4B,$615250,$584B49,$433735,$2F2623,$161211,$251D1C,$4D3E3B,$504440,$504341,$594D4B
data.l $584C4A,$4C403E,$282021,$B0506,$50001,$0,$202,$1,$30204,$30204,$80606,$B0909,$B0909,$E0C0C,$110F0F,$E0C0C,$B0909,$C0A0A,$60808,$200
data.l $30402,$100,$30100,$30100,$B0908,$292524,$4B3D3E,$564947,$5A4B49,$5E4F4D,$5C4F4D,$564B47,$443B37,$171411,$2A2423,$5D4E4B,$5C4C46,$53453F,$534844,$403936
data.l $1B1716,$30100,$100,$100,$100,$20503,$301,$80B09,$F1210,$1C1C1C,$222424,$262828,$272929,$272929,$262828,$232525,$1C1C1C,$151515,$131313,$B0B0B
data.l $80808,$0,$10101,$0,$20404,$171717,$3A3635,$4B423F,$544844,$5A4A44,$544340,$514240,$201A19,$2D2726,$625350,$61534D,$5E524E,$4A413D,$221D1C,$20000
data.l $40404,$0,$0,$0,$80808,$121212,$1D1F1F,$242626,$252525,$1A1A1A,$181818,$141414,$131313,$161616,$151515,$1D1D1D,$1E1E1E,$1F1F1F,$181818,$111111
data.l $A0A0A,$30303,$0,$20202,$50505,$231F1E,$403936,$4C403C,$51423F,$564744,$554644,$292221,$302927,$5D4E4B,$564744,$4C413D,$2E2724,$D0809,$0,$0
data.l $20202,$90909,$B0B0B,$1C1C1C,$252525,$1C1C1C,$111111,$40404,$20202,$10101,$0,$0,$10101,$10101,$10101,$90909,$111111,$1A1A1A,$1A1A1A,$161616
data.l $F0F0F,$70707,$20000,$0,$60403,$251D1D,$483C3A,$5E524E,$60514E,$504341,$27201F,$2E2724,$594A47,$4B3E3C,$2D2421,$C0708,$0,$102,$30303,$40404
data.l $131313,$222222,$242424,$F0F0F,$0,$90909,$363C3B,$616766,$888D8C,$A9AEAD,$ABB0AF,$8C9190,$666C6B,$3C4241,$131515,$0,$10303,$101212,$1C1C1C,$181818
data.l $161414,$90707,$10303,$20000,$A0504,$342A2A,$544846,$584B49,$554846,$2B2423,$2A2422,$554A46,$423838,$191413,$20000,$10002,$203,$50505,$C0C0C,$1F1F1F
data.l $1F2121,$80A0A,$50707,$363838,$787A7A,$AEBCBA,$C4D1CF,$D2DDDB,$DCE7E5,$DDE8E6,$D4DFDD,$C7D4D2,$B0BEBC,$858B8A,$3C4241,$40908,$0,$D0F0F,$171717,$181616
data.l $100E0E,$0,$30303,$50001,$1D1718,$423838,$584C4C,$534745,$26201F,$292321,$463C3C,$251D1E,$70203,$20000,$10101,$202,$B0B0B,$232323,$212121,$202
data.l $40908,$5D6362,$BCC2C1,$E1E9E8,$D7E9E8,$C7D7D6,$A9B5B5,$788282,$7A8484,$ADB9B9,$C7D7D6,$D2E4E3,$DEE9E7,$B3BEBC,$606867,$151B1A,$100,$90B0B,$181818,$191919
data.l $F1111,$30505,$20000,$70203,$292324,$584E4E,$534745,$282221,$2B2725,$3C3435,$140E0F,$50002,$20000,$30402,$90A08,$1A1818,$222222,$70909,$50A09,$4D5554
data.l $B8C3C1,$DDEAE8,$C2D0CE,$ABBBBA,$A5B3B2,$929C9C,$535B5B,$5A6262,$9FA9A9,$ACBAB9,$A8B8B7,$BECCCA,$D6E3E1,$BBC6C4,$68706F,$C1211,$100,$90B0B,$1B1B1B,$151717
data.l $40606,$20103,$20001,$151012,$4B4344,$564D4A,$2E2827,$262222,$2B2526,$90406,$20001,$20000,$70504,$151410,$242123,$141113,$40607,$54595A,$C0C8C8,$D6E2E2
data.l $B2C2C1,$A1B1B0,$9CAAA9,$9FA9A9,$919697,$5C6061,$676B6C,$A7ACAD,$ACB6B6,$9BA9A8,$9DAEAB,$B6C4C2,$D1DEDC,$C3CECC,$565E5D,$E1312,$0,$F1111,$171919,$E1010
data.l $40607,$1,$60103,$3D3738,$5C5350,$2B2524,$242020,$1C1A1A,$0,$10002,$30101,$A0A0A,$171A18,$241F20,$20202,$191F1E,$9FA9A9,$D8E6E5,$BACAC9,$9BABAA
data.l $9DADAC,$9AAFB0,$9CAEAD,$8F9B9B,$5D6362,$656B6A,$A5AFAF,$ABBBBA,$99ADAE,$9DADAC,$9AA8A7,$B8C4C4,$D0DEDD,$9FADAC,$303D3B,$100,$D0B0B,$131515,$1E1E1E,$F0D0D
data.l $0,$0,$2E2C2B,$574F4F,$2E2727,$242020,$171515,$0,$10002,$30101,$F0F0F,$202321,$171515,$80808,$545A59,$C9D3D3,$C4D2D1,$9FAFAE,$A1B1B0,$A2B2B1
data.l $A0B5B6,$A1B3B2,$97A1A1,$5D6362,$646A69,$A7B1B1,$AEBEBD,$9FB3B4,$A3B3B2,$A5B3B2,$9FABAB,$B4C2C1,$C7D5D4,$74817F,$70D0C,$20000,$B0D0D,$1C1C1C,$141212,$30303
data.l $0,$1F1D1C,$504848,$2F2829,$1C1818,$B0909,$0,$20103,$50303,$121212,$1B1E1C,$80606,$202222,$909695,$D0DCDC,$AEBEBD,$99A9A8,$A7B7B6,$A7B7B6,$A3B7B8
data.l $A7B7B6,$9BA5A5,$5E6463,$656B6A,$ABB5B5,$B4C2C1,$A3B5B6,$A1B3B2,$ABB9B8,$9DABAA,$A7B5B4,$C9D9D8,$9FACAA,$1E2423,$20202,$70909,$1D1D1D,$1B1919,$70707,$0
data.l $D0B0A,$494141,$302929,$191515,$40202,$0,$1,$70505,$191919,$161917,$0,$393B3B,$B0B8B7,$BCC8C8,$A2B2B1,$A8B8B7,$ADBDBC,$ABBBBA,$A7B9BA,$AFBFBE
data.l $9DA7A7,$606665,$696F6E,$B1BBBB,$BDCBCA,$A6B5B7,$A9BBBA,$AABAB9,$A7B5B4,$A5B3B2,$B5C5C4,$B1BEBC,$363C3B,$30303,$50707,$191919,$1E1C1C,$90909,$10101,$50302
data.l $4E4646,$322B2C,$191515,$20000,$0,$1,$B0909,$1C1C1C,$171A18,$202,$424746,$C6D1CF,$B3C1C0,$9AAAA9,$B1C1C0,$B1C1C0,$B1C1C0,$B0C2C3,$AEBEBD,$ABB7B7
data.l $A5ADAC,$ABB3B2,$BDC7C7,$BBC9C8,$B0BFC1,$B0C2C1,$B2C2C1,$B2C0BF,$A2B0AF,$ACBCBB,$C0CECC,$474D4C,$0,$60808,$181818,$242222,$D0D0D,$0,$20000,$514949
data.l $312A2A,$191515,$20000,$0,$60507,$E0C0C,$181818,$161917,$201,$4C5251,$D1DCDA,$ADBBBA,$95A5A4,$B4C6C5,$B4C4C3,$B7C7C6,$B2C6C7,$B6C8C7,$BAC8C7,$C1CECC
data.l $C3D0CE,$C1CDCD,$BCCCCB,$B3C5C6,$B2C4C3,$B7C7C6,$BBC9C8,$A2B2B1,$A4B4B3,$C2D0CE,$525857,$10101,$202,$121212,$262424,$101010,$0,$20000,$544C4C,$312A2B
data.l $1D1919,$30101,$0,$40305,$C0A0A,$191919,$151816,$100,$4A504F,$C0CDCB,$A3B3B2,$95A7A6,$B6C8C7,$BACAC9,$BCCCCB,$B9CDCE,$B8CAC9,$BACAC9,$C3D1CF,$C2D0CE
data.l $BACAC9,$BCCCCB,$BBCDCE,$BBCDCC,$BACAC9,$BAC8C7,$A2B2B1,$A2B2B1,$B7C5C3,$4C5251,$0,$20404,$131313,$282626,$111111,$0,$20000,$4F4747,$302929,$1C1818
data.l $20000,$10101,$1,$B0909,$1D1D1D,$121513,$100,$343C3B,$A8B5B3,$A6B6B5,$99ABAA,$B3C5C4,$C1D1D0,$BFCFCE,$BACFD0,$BACFCD,$BED0CF,$BFD0CD,$BFD0CD,$C1D1D0
data.l $BED0CF,$BBCFD0,$BED0CF,$C2D2D1,$BAC8C7,$A2B2B1,$A7B7B6,$A8B6B4,$373F3E,$10101,$30505,$141414,$262424,$F0F0F,$0,$30100,$4C4444,$312A2A,$1F191A,$A0405
data.l $10101,$101,$30505,$171717,$171515,$0,$2C3130,$8E9695,$B0BDBB,$98A9A6,$B0C0BF,$C6D6D5,$C7D5D4,$C6D4D2,$C6D4D2,$C7D5D3,$C5D3D1,$C5D3D1,$C6D4D2,$C6D4D2
data.l $C5D3D1,$C6D2D2,$CBD9D8,$B1C1C0,$9DAEAB,$A8B6B4,$9AA5A3,$292F2E,$0,$70505,$1B1B1B,$242626,$A0D0B,$100,$120E0D,$5A5252,$302A2A,$252021,$151011,$10101
data.l $0,$10303,$151515,$171515,$40606,$B100F,$5C6463,$ADBAB8,$9CADAA,$99A9A8,$C1D1D0,$C7D7D6,$CBD9D7,$C9D7D5,$CAD8D6,$CCDAD8,$CDDBD9,$CCDAD8,$CBD9D7,$CCDAD8
data.l $CCDAD9,$C4D2D1,$9AAAA9,$93A4A1,$AEBCBA,$76817F,$B100F,$202,$70505,$1D1D1D,$1E2020,$50806,$20301,$1E1A19,$574F4F,$322C2C,$262121,$1D1918,$10200,$0
data.l $20404,$111313,$191919,$131313,$0,$212726,$8F9A98,$ADBBB9,$91A3A2,$A9BBBA,$C5DAD8,$CFDDDB,$CFDDDB,$CCDAD8,$CBD9D7,$CCDAD8,$CEDCDA,$CFDDDB,$CFDDDB,$C9D9D8
data.l $ACBCBB,$96A8A7,$9FB0AD,$93A09E,$3E4645,$0,$10101,$D0B0B,$282828,$1B1B1B,$10200,$20000,$312D2C,$5C5454,$2B2525,$282323,$2C2726,$90706,$0,$101
data.l $A0C0C,$1B1D1D,$181818,$30505,$70C0B,$575F5E,$9FACAA,$9FAFAE,$92A4A3,$A4B9B7,$C5D3D2,$CEDCDB,$D2E0DF,$D3E1E0,$D4E2E1,$D4E2E1,$CFDDDC,$C5D3D2,$ABBDBC,$8FA1A0
data.l $9DADAC,$A2B0AE,$5E6967,$131918,$20202,$50303,$151515,$2A2A2A,$141414,$100,$60201,$45403F,$685E5E,$2A2424,$292322,$3F3835,$191514,$20000,$0,$40606
data.l $191B1B,$242424,$141414,$10303,$161C1B,$596462,$99A7A6,$9EAEAD,$8EA09F,$98A6A5,$A9B7B6,$B9C7C6,$C5D3D2,$C6D4D3,$BCCAC9,$ADBBBA,$9BA9A8,$8D9F9E,$9CACAB,$99A7A6
data.l $687573,$1B2322,$10303,$10101,$C0A0A,$252525,$1E1E1E,$90909,$30100,$161110,$564E4E,$625858,$2D2727,$292322,$4F4341,$2C2424,$80403,$20000,$40404,$141617
data.l $303030,$2C2C2C,$111111,$0,$111716,$5D6565,$98A4A4,$A1AFAE,$97A5A4,$92A09F,$869493,$82908F,$82908F,$869493,$92A09F,$97A5A4,$9CAAA9,$99A5A5,$646E6E,$202827
data.l $100,$0,$50303,$211C1D,$2B2D2D,$101010,$20000,$60201,$322A2A,$645A5A,$524646,$2A2323,$2E2725,$574A48,$413835,$1A1212,$40000,$10101,$C0E0F,$242424
data.l $373737,$262424,$60606,$0,$15191A,$4A5252,$768080,$8F9D9C,$96A4A3,$96A4A3,$98A6A5,$97A5A4,$94A2A1,$95A3A2,$909E9D,$828C8C,$4A5252,$14191A,$10605,$20202
data.l $40202,$100E0E,$2D2829,$1A1C1C,$40404,$20000,$201B1A,$534B4B,$605656,$504444,$292222,$2B2321,$544543,$554947,$332929,$B0506,$20000,$40305,$1A1A1A,$272727
data.l $161414,$20000,$30101,$203,$1,$131819,$3F4D4C,$606E6D,$7B8988,$8B9998,$8B9998,$7C8A89,$647271,$465453,$202526,$405,$1,$0,$20000,$20000
data.l $1E1C1C,$211F1F,$80A0A,$0,$70505,$494443,$6F6565,$4D4141,$57494A,$2E2727,$2C2525,$5B4B4C,$544647,$463A3A,$2A2425,$20202,$100,$20202,$A0A0A,$20202
data.l $1,$1,$D0C0E,$141315,$40305,$70909,$70909,$C0E0E,$121414,$131515,$F1111,$90B0B,$60808,$40201,$D0E0C,$60705,$10200,$10101,$0,$40606
data.l $40606,$100,$30402,$2A2522,$6B605C,$6B5C59,$584946,$5A4E4A,$282220,$2C2625,$594A48,$584947,$544848,$4A4242,$24201F,$30402,$10101,$0,$0,$20202
data.l $E0D0F,$2D2C2E,$353738,$2C2E2F,$191919,$101010,$80808,$40404,$30303,$40404,$80808,$D0D0D,$181917,$222222,$262626,$131313,$0,$0,$202,$0
data.l $0,$2D2928,$625B58,$695E5A,$524340,$584C48,$554945,$1D1716,$2B2523,$5B4C49,$594A48,$4E3F3D,$564A48,$4A4340,$1A1512,$30303,$0,$10101,$0,$F0F0F
data.l $3A3C3D,$414344,$383A3B,$3B3B3B,$363636,$303030,$2C2C2C,$2A2A2A,$292929,$2A2A2A,$2C2C2C,$2D2D2D,$323232,$3A3A3A,$1E1E1E,$30303,$10101,$0,$30303,$231D1E
data.l $605858,$736765,$594C4A,$4F433F,$574B49,$413835,$F0B0A,$26201D,$5B4D47,$655653,$554643,$594A47,$5E524E,$473C38,$22201F,$70504,$30101,$0,$50505,$1B1B1B
data.l $292B2B,$393B3B,$393939,$3A3A3A,$3B3B3B,$3B3B3B,$3A3A3A,$383838,$353535,$333333,$353436,$29282A,$1D1D1D,$90909,$0,$20000,$B0909,$272525,$635757,$6C6060
data.l $645755,$594C4A,$544846,$473E3B,$2B2323,$80605,$28221F,$554741,$5F514B,$5F4F49,$51423F,$4D3E3B,$574845,$5F5B5A,$2F2B2A,$E0A09,$30100,$20000,$0,$60606
data.l $101010,$222222,$292929,$313131,$353535,$353535,$323232,$2B2B2B,$242424,$131214,$50505,$0,$30101,$30101,$A0605,$34302F,$6B6665,$79696A,$5E4F4D,$554846
data.l $514543,$4C4340,$312929,$C0708,$60505,$2D2724,$5A4C46,$53453F,$5A4B48,$5B4C49,$574845,$5E4D4A,$605858,$534B4B,$403838,$272221,$110D0C,$40000,$20000,$40202
data.l $10101,$30303,$50505,$60606,$50505,$50505,$30303,$10101,$20000,$40202,$20000,$F0B0A,$2B2625,$504946,$67605D,$615855,$5A4B49,$544745,$4C403E,$3C3330
data.l $342D2A,$1B1716,$80606,$90809,$2E2724,$5D4E4B,$504440,$574B47,$60514E,$61524F,$574845,$514543,$5A4E4C,$615855,$5B5353,$504848,$332E2D,$1C1817,$F0B0A,$60606
data.l $20202,$0,$10101,$10101,$0,$0,$40404,$D0B0A,$1E1A19,$342F2E,$524D4A,$69605D,$6E635F,$625753,$463A36,$4B3E3C,$544844,$4A413D,$2E2724,$100C0B
data.l $20000,$B0A0C,$50406,$171312,$28201F,$282220,$2F2927,$2A2422,$2A2322,$2C2423,$241E1D,$282120,$292322,$25201F,$2E2929,$353131,$312F2E,$2A2827,$191818,$111010
data.l $C0B0B,$B0A0A,$C0B0B,$C0B0B,$121111,$191818,$232120,$323030,$383534,$322F2D,$2F2A28,$2F2927,$2D2724,$28211E,$2A2422,$292321,$201D1A,$100D0C,$C0B0B,$B0B0B
data.l $A0A0B,$6050

EndDataSection

;
; EPB

Re: Info sur CanevasGadget

Publié : mer. 19/sept./2012 1:00
par G-Rom
oui, j'avais fait un début de tracker y a qq temps :

Code : Tout sélectionner

Structure TrackerRect
x.i : y.i
EndStructure

Structure TrackerValue
  IsSelected.b
  SoundID.i
  ;Filters.i ; on ajoute se que l'on veut
EndStructure


Structure Tracker_Track
  Value.TrackerValue[8]
EndStructure

Structure TrackerGadget

  TrackerEntry.TrackerValue[257] ; Liens vers la banque de son
  SelectedLine.b[257] ; Pour la multiselection
  
  NbTrack.c
  
  GadgetSize.TrackerRect

  
  Image.i
  Surface.i
  ScrollArea.i
  Thread.i
  WindowParent.i
  
  BackgroundColor.i
  ForegroundColor.i
  SelectedLineColor.i
  SelectedItemColor.i

EndStructure


Procedure TrackerGadgetThread(*Tracker.TrackerGadget)
  Repeat
    With *Tracker
       
       
       
       
       
       StartDrawing(ImageOutput(\Image))
       
       Marge = 2
       TrackSize = ((\GadgetSize\x-21-40) / \NbTrack) 
       
       
       ;Dessin du Fond
       Box(0,0,\GadgetSize\x ,5120,\BackgroundColor)
                        
                        
      For i =  0 To \NbTrack -1                 
                        
          For Sector = 0 To 255
              
            
              
              Line(0,Sector*20,\GadgetSize\x ,0,RGB(192,192,192))
              Hexa$ =  RSet(Hex(Sector,2),2,"0")
              DrawingMode(#PB_2DDrawing_Transparent)
              DrawText(0,(Sector*20)+Marge,Hexa$,\ForegroundColor)
              DrawText(\GadgetSize\x-40,(Sector*20)+Marge,Hexa$,\ForegroundColor)
              
              
              ;Selection a la souris
              
              MouseGadgetX = (WindowMouseX(\WindowParent) - GadgetX(\ScrollArea)) + GetGadgetAttribute(\ScrollArea,#PB_ScrollArea_X)
              MouseGadgetY = (WindowMouseY(\WindowParent) - GadgetY(\ScrollArea)) + GetGadgetAttribute(\ScrollArea,#PB_ScrollArea_Y)
              
;                 ; La ligne est selectionné
;               If \SelectedLine[Sector] = #True
;                       Box(24,2,\GadgetSize\x-4-21-40,16,\SelectedLineColor)
;               EndIf
              
              If MouseGadgetX > TrackSize*i+20+2 And MouseGadgetX < (TrackSize*i+20+2)+TrackSize-4 And MouseGadgetY > Sector*20+2 And MouseGadgetY < (Sector*20+2)+16
                           Box( TrackSize*i+20+2,Sector*20+2,TrackSize-4,16,\SelectedLineColor)
              EndIf
              
              
              
              
              
              
              
          Next 
       Next 
       
       
       For i =  0 To \NbTrack                  
           ; Dessin du séparateur de track
          Box( 20 + (i*TrackSize),0,Marge,5120,RGB(192,192,192))
       Next 
       
     

          
          
          
          
        StopDrawing()
        
        
        
        
      SetGadgetState(\Surface,ImageID(\Image))
      EndWith
      
    Delay(10)
ForEver
EndProcedure




Procedure.i TrackerGadget(x,y,width,height,NbTrack)

*Tracker.TrackerGadget = AllocateMemory(SizeOf(TrackerGadget))
  If *Tracker = #Null
    MessageRequester("Error","Can't make Tracker Gadget , not enough memory")
      End
        EndIf 

    With *Tracker


      \Image        = CreateImage(#PB_Any,width,5120)
      \ScrollArea   = ScrollAreaGadget(#PB_Any,x,y,width,height,width-21,5120)
      \Surface      = ImageGadget(#PB_Any,0,0,width,5100,ImageID(\Image)) : CloseGadgetList()
      \WindowParent = GetActiveWindow()

      \GadgetSize\x = width 
      \GadgetSize\y = height
      
      \BackgroundColor = $002000
      \ForegroundColor  = $008000
      \SelectedLineColor       = $800000
      \SelectedItemColor       = 0
      \NbTrack                 = NbTrack
      
      \SelectedLine[1] = #True
      
      \Thread = CreateThread(@TrackerGadgetThread(),*Tracker)

    EndWith
    
    
ProcedureReturn *Tracker
EndProcedure




OpenWindow(0,0,0,1024,768,"PureTracker")
SetWindowColor(0,$800000)

TrackerGadget(10,412,1004,346,8)



Repeat
event = WindowEvent()
SmartWindowRefresh(0,1)

Delay(10)
Until event = #PB_Event_CloseWindow
ou une ébauche de gadget fait à la volée ( les layers à droite ):

Image

Re: Info sur CanevasGadget

Publié : mer. 19/sept./2012 1:05
par Backup
un photoshop like :)

Re: Info sur CanevasGadget

Publié : mer. 19/sept./2012 3:42
par MetalOS
Merci pour votre aide.

*Dobro

Le problème de la librairie du Soldat Inconnu pour skiner une fenêtre et qu'elle est uniquement compatible windows, et comme maintenant je suis sous Mac je ne pourrait pas l'utiliser. Merci pour ton code d'exemple, il va me servir pour modifier un projet.

*G-Rom

L'ébauche de tes layer et exactement un autre truc que je cherche, aurai tu un exemple de code à partager ?

Le CanvasGadget semble être un gadget essentiel pour produire des interface de qualité.

Re: Info sur CanevasGadget

Publié : mer. 19/sept./2012 11:45
par G-Rom
j'ai pas de code directement exploitable.
mais c'est simple :

Code : Tout sélectionner


Structure s_MonGadget
  containerID.i
  canvasID.i
  button_a.i
  button_b.i
EndStructure
  


Procedure MonGadget(gadgetID.i,x.i,y.i,w.i,h.i)
  
  *g.s_Mongadget = AllocateMemory(SizeOf(s_MonGadget))
  
  *g\containerID = ContainerGadget(gadgetID,x,y,w,h)
  
  *g\canvasID = CanvasGadget(#PB_Any,5,5,w/4,h-15)
  *g\button_a = ButtonGadget(#PB_Any,5+(w/4)+5,5,(w*0.72)-10,20,"button A")
  *g\button_b = ButtonGadget(#PB_Any,5+(w/4)+5,30,(w*0.72)-10,20,"button B")
  
  
  SetGadgetColor(*g\containerID,#PB_Gadget_BackColor,$BABABA)
  
  StartDrawing(CanvasOutput(*g\canvasID))
  
  For y = 0 To h+1 Step 4
    For x = 0 To w+1 Step 4
      color+1
      color%2
      Box(x,y,4,4,color*$FFFFFF)
    Next
  Next 
      
  StopDrawing()
  
  
  CloseGadgetList()
  ProcedureReturn *g
EndProcedure




OpenWindow(0,0,0,800,600,"")

MonGadget(#PB_Any,10,10,320,200)
MonGadget(#PB_Any,500,200,200,100)
MonGadget(#PB_Any,500,10,250,150)
MonGadget(#PB_Any,10,250,200,250)


Repeat
  
  
  Until WindowEvent() = #PB_Event_CloseWindow

Re: Info sur CanevasGadget

Publié : mer. 19/sept./2012 21:00
par MetalOS
Plutôt simple effectivement merci G-Rom.

Re: Info sur CanevasGadget

Publié : mer. 19/sept./2012 21:19
par falsam
Merci pour ce code G-Rom :)

Re: Info sur CanevasGadget

Publié : jeu. 20/sept./2012 9:02
par Le Soldat Inconnu
Ma librairie, cité plus haut par Dobro, n'utilise pas du tout les CanvasGadgets. Elle permet l'affichage d'une fenêtre avec support de la couche alpha (donc on peut faire une fenêtre avec des zones transparentes, des zones opaques, la forme que l'on souhaite) et idem pour les boutons de la fenêtre.

Re: Info sur CanevasGadget

Publié : jeu. 20/sept./2012 9:15
par Backup
oui , c'est meme pour ça que je dis dès le debut du message :
on pouvais faire ça avant le Canvas gadget

j'imagine qu'on peut le faire depuis qu'on l'a ...
;)