Création de gadget.

Programmation d'applications complexes
Anonyme

Création de gadget.

Message par Anonyme »

Tout est dans le titre , quelqu'un peut me mettre sur la voie pour la création de Gadget ? je suppose qu'il faut être calé avec les apis ( win32 / nux ) ?


Merci d'avance.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Anonyme

Message par Anonyme »

Merci , je suis aller jeter un oeil sur codearchiv , j'y vais jamais , une petite mine d'or :oops:

http://www.purearea.net/pb/CodeArchiv/G ... rGadget.pb
Anonyme

Message par Anonyme »

C'est aussi simple que ca :

Code : Tout sélectionner

; Gadget joli par Cpl.Bator :D
; PB4.3


Structure GadgetRect
  x.i
  y.i
EndStructure

Structure GadgetJolieArea
  Position.GadgetRect
  Size.GadgetRect
  CallBack.i
  Image.i
  Surface.i
EndStructure


Procedure JoliGadgetCallback(*G.GadgetJolieArea)
Static Scroll.f
Box(0,0,*G\Size\x,*G\Size\y,$BB8844) ; Fond 

Scroll + 0.05

If Scroll=>16
  Scroll = 0
EndIf 

; un damier...
For y = 0 To *G\Size\y Step 16
  For x = 0 To *G\Size\x Step 16
  
  a+1
  a%2
  If a=1
    Box(x-Scroll,y-Scroll,16,16,$AA7711)
   EndIf 
   
  Next 
Next 
EndProcedure

Procedure.i JoliGadget(x,y,Width,Height)
*JG.GadgetJolieArea = AllocateMemory(SizeOf(GadgetJolieArea))
*JG\Position\x = x 
*JG\Position\y = y
*JG\Size\x = Width
*JG\Size\y = Height
*JG\CallBack = @JoliGadgetCallback()
*JG\Image  = CreateImage(#PB_Any,Width,Height)
*JG\Surface = ImageGadget(#PB_Any,x,y,Width,Height,ImageID(*JG\Image),#PB_Image_Border)
ProcedureReturn  *JG
EndProcedure

Procedure RedrawJoliGadget(*G.GadgetJolieArea)
StartDrawing(ImageOutput(*G\Image))
CallFunctionFast(*G\CallBack,*G)
StopDrawing()
SetGadgetState(*G\Surface,ImageID(*G\Image))
EndProcedure


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


MonGadget =  JoliGadget(10,10,320,240)
MonGadget2 =  JoliGadget(340,10,320,240)



Repeat
event = WindowEvent()

RedrawJoliGadget(MonGadget)
RedrawJoliGadget(MonGadget2)

Until event = #PB_Event_CloseWindow

Je ne me suis jamais penché sur des application pur & dur.
Ca me donne pas mal d'idée , surtout que là c'est portable à 100%
Prochaine étape pour moi , me faire une jolie grille 2D zoomable et scrollable ! :D

Merci de m'avoir mis sur les rails les gars !
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message par Cls »

Effectivement c'est hyper simple ! Je vais certainement me pencher la dessus quand j'aurais un peu plus de temps.

Merci Cpl.Bator pour ce p'tit code sympatoche ;)
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Salut.

Ben c'est une question que je me posais depuis longtemps, mais moi dés que ça implique les pointeurs c'est déjà hors de portée.

Quand j'ai vu que même un Cpl.Bator ne savait pas faire ça, alors qu'il a fait une jolie bibliothèque comme "PureBasic Screen GUI", alors je me suis dit qu'il fallait être un grand gourou de l'ASM.

Apparemment pas tant que ça, même si j'sais pas trop à quoi peut bien servir ce beau gadget, sinon me faire avoir une crise d'épilepsie.

Ce qu'il y a bien depuis ces derniers temps c'est que l'on a de plus en plus d'adepte de la portabilité :lol: .

Bon ben maintenant je croise les doigts pour qu'il vienne l'envie à Cpl.Bator de faire une aussi jolie bibliothèque pour Le mode fenêtre graphique qu'il l'a fait avec "PureBasic Screen GUI".

Je suis sûr qu'elle aurait un immense succès :wink: .

Bye.
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

c'est tres joli mais
un peu trop compliqué pour moi
Jbernard13
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

Dans l'idée, c'est pas mal, mais c'est loin d'être un véritable création de gadget. Je me suis déjà posé la question quand à l'intégration d'un gadget custom (surtout au niveau de la gestion des event) et j'avoue que j'ai pas trouvé de solution... J'vais aller voir vos liens, au cas où.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Regarde mon lien, ca intégre un gadget au niveau des commandes PB. Mais je sais plus pour les events !
Anonyme

Message par Anonyme »

Progi1984 , le problème c'est que c'est pas portable.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

A l'heure actuelle :), je vais voir ce que je peux faire :)
Répondre