SweetyVD (Visual Designer)

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
ChrisR
Messages : 222
Inscription : sam. 14/févr./2015 16:20

Re: SweetyVD (Visual Designer)

Message 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() ?
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: SweetyVD (Visual Designer)

Message 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()
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
ChrisR
Messages : 222
Inscription : sam. 14/févr./2015 16:20

Re: SweetyVD (Visual Designer)

Message 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 :)
jmg49
Messages : 153
Inscription : mer. 26/févr./2014 8:53

Re: SweetyVD (Visual Designer)

Message 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 :wink:
:D 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 !!
Avatar de l’utilisateur
ChrisR
Messages : 222
Inscription : sam. 14/févr./2015 16:20

Re: SweetyVD (Visual Designer)

Message par ChrisR »

jmg49 a écrit : :D 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 :D
Félicitation à Fred, Timo (freak) et toute l'équipe Fantaisie 8)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: SweetyVD (Visual Designer)

Message 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 :lol:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
ChrisR
Messages : 222
Inscription : sam. 14/févr./2015 16:20

Re: SweetyVD (Visual Designer)

Message 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 8)
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 -+ 8)

Image
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: SweetyVD (Visual Designer)

Message 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 8)
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 :lol:

Image

Pour ton code je l'ai essayé et ça avance 8)
J'ai pas vu de bug pour l'instant
Encore merci 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
ChrisR
Messages : 222
Inscription : sam. 14/févr./2015 16:20

Re: SweetyVD (Visual Designer)

Message 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é 8)
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 :?

Image
Avatar de l’utilisateur
Mindphazer
Messages : 639
Inscription : mer. 24/août/2005 10:42

Re: SweetyVD (Visual Designer)

Message 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....
Bureau : Win10 64bits
Maison : Macbook Pro M1 14" SSD 512 Go / Ram 16 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
ChrisR
Messages : 222
Inscription : sam. 14/févr./2015 16:20

Re: SweetyVD (Visual Designer)

Message 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
Avatar de l’utilisateur
Mindphazer
Messages : 639
Inscription : mer. 24/août/2005 10:42

Re: SweetyVD (Visual Designer)

Message par Mindphazer »

Ok, sans la procédure ça fonctionne
Mais... Comment dire....
Sur mon mac avec un écran Retina, l'affichage est miiiiiiiinuscule !...

Image
Bureau : Win10 64bits
Maison : Macbook Pro M1 14" SSD 512 Go / Ram 16 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
ChrisR
Messages : 222
Inscription : sam. 14/févr./2015 16:20

Re: SweetyVD (Visual Designer)

Message 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 
Avatar de l’utilisateur
Mindphazer
Messages : 639
Inscription : mer. 24/août/2005 10:42

Re: SweetyVD (Visual Designer)

Message 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"
Bureau : Win10 64bits
Maison : Macbook Pro M1 14" SSD 512 Go / Ram 16 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: SweetyVD (Visual Designer)

Message par falsam »

Whaou tu as bien avancé dans ton projet. Bravo :)
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre