Page 3 sur 9
Re: SweetyVD (Visual Designer)
Publié : ven. 10/mars/2017 14:29
par ChrisR
Une question ~théorique
Est-ce que dans une procédure CallBack d'un gadget (canva ici), BindGadgetEvent(),
et à partir de l’événement #PB_EventType_LeftButtonDown, appeler une procédure (ex: CreateHandle(Gadget)),
pour créer "à la volée" des CanvasGadget (les poignées!) et appeler la même procédure CallBack avec, à nouveau, BindGadgetEvent() ?
Re: SweetyVD (Visual Designer)
Publié : ven. 10/mars/2017 14:45
par falsam
Chaque nouveau CanvasGadget créé peut être associé à un BindGadgetEvent() faisant appel à la même procédure.
ou
Un seul CanvasGadget peut être associé à plusieurs BindGadgetEvent() avec pour chacun des BindGadgetEvent() un eventtype différent.
Dans une procédure tu peux aussi récupérer l'EventGadget() et/ou l'EventType()
Re: SweetyVD (Visual Designer)
Publié : ven. 10/mars/2017 14:55
par ChrisR
OK, super et c'est souple.
J'avais vu pour le TypeEvenement (optionnel) et l'EventGadget()
mais j'avais un doute sur l'appel de la même Callback.
Merci a toi

Re: SweetyVD (Visual Designer)
Publié : mer. 15/mars/2017 9:40
par jmg49
Merci de nous faire partager ton projet,
ChrisR a écrit :Salut boby, Shadow
Surtout que je suis un ancien du monde As400 (ou iSeries) avec sa super interface graphique, pour ceux qui connaisse

moi j'y suis encore dedans !! et je le regrette pas ! depuis le iSeries on est passé par le System i et maintenant IBM i on Power !!
Re: SweetyVD (Visual Designer)
Publié : ven. 17/mars/2017 17:53
par ChrisR
jmg49 a écrit :

moi j'y suis encore dedans !! et je le regrette pas ! depuis le iSeries on est passé par le System i et maintenant IBM i on Power !!
Hmm, Pour ma part, après 25 ans sur AS400 ou iSeries, j'ai fait un peu le tour de la bestiole mais je n'ai aucun regrets non plus: projets, dev, salaires (on est peu nombreux) mais les bons projets deviennent rare sur cette plateforme
Il me reste ~15 ans a travailler, pas facile de trouver quelque choses a proximité au fond du 91 et sans faire 1h30 de transports.
Donc, je profite du temps dispo pour voir d'autres choses et je suis très heureux de le faire avec PureBasic.
Plus je le découvre et plus je le trouve Super, vraiment
Félicitation à Fred, Timo (freak) et toute l'équipe Fantaisie

Re: SweetyVD (Visual Designer)
Publié : ven. 17/mars/2017 18:12
par Kwai chang caine
Plus je le découvre et plus je le trouve Super, vraiment
Et je te rassure, même plus de 10 ans après...on a toujours l'impression d'être marié à la plus belle femme du monde, qui ne nous a pas pas divulgué tous son jardin secret

Re: SweetyVD (Visual Designer)
Publié : ven. 17/mars/2017 18:21
par ChrisR
Tu parles de qui KCC du jardin secret de PB, de Fred!!!
falsam a écrit :je pense que la bonne méthode serait de recréer les gadgets 100% Canvas comme dans le Form Designer de PureBasic.
J'ai testé un peu avec les Canvas Gadgets que tu as généreusement partagés falsam
Il est sûr que ces probablement la bonne méthode à suivre mais pas facile pour recréer les Canvas Gadgets
Sans abandonner l'idée et pour ne pas réécrire à nouveau, j'ai continué sur l'idée des Canvas superposés aux vrais gadgets.
C'est bien pour l'ergonomie et il permet le même design que le code final.
Il semble fonctionner pas trop mal même si il y a un peu de "flickering" lors des déplacements des Gadgets pour les repeindre.
Le module qui intègre toute la partie Design est maintenant bien avancée
La prochaine étape est sans doute la création des Gadgets. Je vais sans doute partir sur le même menu contextuel que TVD.
Il semble relativement simple et efficace pour créer les gadgets en les positionnant au bon endroit.
J'ai mis à jour le Code Principale + le code du module sur le 1er message.
Merci pour vos tests et retours -+

Re: SweetyVD (Visual Designer)
Publié : ven. 17/mars/2017 19:15
par Kwai chang caine
Tu parles de qui KCC du jardin secret de PB, de Fred!!!
Alors là, le FREDO c'est pas NABILLA ....
Bon je vais pas me plaindre, il a déjà laissé transpirer quelques infos, et photos

Mais bon, hors mis si je les imprime en format poster, j'ai pas de quoi retapisser ma chambre

Alors pour noël et pour mes "talents" d'artiste, une vue de face, de profil gauche et droit serait les bienvenus
Pour ton code je l'ai essayé et ça avance
J'ai pas vu de bug pour l'instant
Encore merci

Re: SweetyVD (Visual Designer)
Publié : ven. 17/mars/2017 19:59
par ChrisR
Perso, je commencerais par NABILLA en glissant au milieu 1 ou 2 photos du Laboureur.
Sinon, voici un screenshot sous Ubuntu dans VMware.
Tout semble bien fonctionné
sauf les dimensions de la zone de dessin,
SetGadgetAttribute(#DrawArea, #PB_ScrollArea_InnerWidth, GetGadgetState(#DrawWidth)) , idem avec #PB_ScrollArea_InnerWidth
ne fonctionne pas et je ne comprends pas pourquoi

Re: SweetyVD (Visual Designer)
Publié : ven. 17/mars/2017 21:15
par Mindphazer
Salut ChrisR,
j'ai compilé ton code sur mon Mac ; malheureusement j'ai un beau :
Code : Tout sélectionner
[21 :10 :42] [COMPILER] Ligne 140: Structure not found: sdkGadget.
dans le .pbi....
Re: SweetyVD (Visual Designer)
Publié : ven. 17/mars/2017 22:28
par ChrisR
Salut Mindphazer,
Ligne 140, donc dans la procédure GetParentWindowID
Tu peux supprimer cette procédure, elle n'est pas utilisée.
C'est du code récupéré, je l'ai ajouté en me disant qu'elle pouvait peut-être servir plus tard.
J'ai pas de Mac autour pour tester donc fait moi, à nouveau, un feedback.
Et si il fonctionne, un screenshot serait agréable pour voir la gueule qu'il a sur Mac.
A+
ps: le code est à jour, sans la procédure GetParentWindowID, sur le 1er post.
Merci
Re: SweetyVD (Visual Designer)
Publié : sam. 18/mars/2017 0:12
par Mindphazer
Ok, sans la procédure ça fonctionne
Mais... Comment dire....
Sur mon mac avec un écran Retina, l'affichage est miiiiiiiinuscule !...

Re: SweetyVD (Visual Designer)
Publié : sam. 18/mars/2017 2:17
par ChrisR
Merci pour ta capture écran et cool qu'il fonctionne également sur Mac
Mindphazer a écrit :
Sur mon mac avec un écran Retina, l'affichage est miiiiiiiinuscule !...
Hmm, Il doit avoir un rapport avec le facteur de mise à l'échelle DPI qui doit être à 150 ou 200% avec l'écran Retina
La procédure AjustFontSize, voir ici:
http://www.purebasic.fr/french/viewtopi ... =6&t=16557
pour ajuster la taille de la police / 100% ou 96 dpi fait bien son travail.
Mais cela ne semble pas adapté a l'affichage HiDPI de l'écran rétina.
Je ne connais rien sur Mac et je ne sais pas comment il faut faire pour gérer cette échelle d'affichage.
Est-ce que fais quelque chose de ton coté ?
Voici la procédure, elle fonctionne bien sur Windows et Linux. Pour Mac?
Code : Tout sélectionner
Procedure.f AjustFontSize(lSize.l) ;Windows DPI aware by using the font size based on the number of pixels per inch along the screen
Define.i iimage
Static.f fPpp
If fPpp = 0
iimage = CreateImage(#PB_Any,1,1)
If IsImage(iimage)
If StartVectorDrawing(ImageVectorOutput(iimage))
fPpp = VectorResolutionX()
StopVectorDrawing()
EndIf
FreeImage(iimage)
EndIf
EndIf
ProcedureReturn (lSize * 96) / fPpp
EndProcedure
Je suppose qu'il devrait mieux fonctionner pour toi sans l'appel de la procédure. Tu peux essayer en remplaçant
Code : Tout sélectionner
Procedure LoadFontWML() ;Most common fonts on Windows, Mac, and linux/Unix OS with +- a similar size: Verdana, Arial, courrier New.
If LoadFont(#FontWML, "Verdana", AjustFontSize(8))
SetGadgetFont(#PB_Default, FontID(#FontWML)) ; Set the loaded Arial 8 font as new default font for all Gadgets
ElseIf LoadFont(#FontWML, "Arial", AjustFontSize(8))
SetGadgetFont(#PB_Default, FontID(#FontWML)) ; Set the loaded Arial 8 font as new default font for all Gadgets
EndIf ;Else use the original standard font
EndProcedure
par =>
Code : Tout sélectionner
Procedure LoadFontWML() ;Most common fonts on Windows, Mac, and linux/Unix OS with +- a similar size: Verdana, Arial, courrier New.
If LoadFont(#FontWML, "Verdana", 8)
SetGadgetFont(#PB_Default, FontID(#FontWML)) ; Set the loaded Arial 8 font as new default font for all Gadgets
ElseIf LoadFont(#FontWML, "Arial", 8)
SetGadgetFont(#PB_Default, FontID(#FontWML)) ; Set the loaded Arial 8 font as new default font for all Gadgets
EndIf ;Else use the original standard font
EndProcedure
Re: SweetyVD (Visual Designer)
Publié : sam. 18/mars/2017 10:44
par Mindphazer
En effet ça fonctionne mieux en mettant 8 en taille de font
Pour un affichage optimal sur mon Mac, 10 ou 11 c'est encore mieux !
Par contre, et ça n'a rien à voir, j'ai un IMA à la ligne 292 quand je clique sur "Delete Test Button"
Re: SweetyVD (Visual Designer)
Publié : sam. 18/mars/2017 10:53
par falsam
Whaou tu as bien avancé dans ton projet. Bravo
