Info sur CanevasGadget

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
MetalOS
Messages : 1510
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Info sur CanevasGadget

Message 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.
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Info sur CanevasGadget

Message 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.
Avatar de l’utilisateur
MetalOS
Messages : 1510
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Info sur CanevasGadget

Message 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 ?
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Info sur CanevasGadget

Message par SPH »

Je suis aussi interessé par vos reponses ! :idea:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Info sur CanevasGadget

Message 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
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: Info sur CanevasGadget

Message 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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Info sur CanevasGadget

Message 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
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Info sur CanevasGadget

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Info sur CanevasGadget

Message par Backup »

un photoshop like :)
Avatar de l’utilisateur
MetalOS
Messages : 1510
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Info sur CanevasGadget

Message 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é.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Info sur CanevasGadget

Message 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
Avatar de l’utilisateur
MetalOS
Messages : 1510
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Info sur CanevasGadget

Message par MetalOS »

Plutôt simple effectivement merci G-Rom.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Info sur CanevasGadget

Message par falsam »

Merci pour ce code G-Rom :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Info sur CanevasGadget

Message 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.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Info sur CanevasGadget

Message 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 ...
;)
Répondre