Un seul code pour 2 OS possible ???

Codes specifiques à Linux
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Un seul code pour 2 OS possible ???

Message par Golfy »

Bonjour à tous,

j'ai quelques codes sous Windows que je re-compile sous Linux mais en fait, je suis obligé de ré-écrire de toutes petites parties car

1) Problème sur les chemins : eh oui, Microsoft a déclaré le '\' comme séparateur, là où le reste du monde utilise le '/'...
- puis-je automatiser avec une macro (If CompilerOS alors separateur = '\' etc.) sachant qu'il me faut un exemple car je n'ai jamais utilisé les macros
- par exemple, si je travaille avec GetCurrentDirectory()+"\symbols\" puis idem sous Linux : GetCurrentDirectory()+"/symbols/"

2) Problème de polices : il semble que sous Linux, les utilisateurs aient de très grands écrans ou une petite vue... les polices sont plus grandes que sous Windows
- Quelles polices sont communes ?
- Si je dois embarquer une police avec mon logiciel, un TTF fonctionne partout ? puis-je forcer les polices systèmes ?
- Comment s'assurer que le même code donnera le même aspect ?

3) Problème de "fenêtre" et Gadget : même ordre d'idée que ci-dessus...
- Comment puis-je déterminer la bonne hauteur
- Une macro peut-elle me permettre de remplacer une constante (#Win-High-Offset par exemple) ?

Merci d'avance pour vos aides très précieuses comme toujours :)
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Un seul code pour 2 OS possible ???

Message par MetalOS »

Le développement d'interface sous Linux et très compliqué car chaque utilisateur utilise son propre bureau (Gnome, Kde, Xfce, Window Maker, Mate...) et ca propre police c'est un peut la philosophie de Linux de personnaliser ca distrib. Le texte d'un bouton sous Gnome risque d'être tronqué sous KDE ou décalé sous xfce. Il faut systématiquement appliquer une police avec une taille pour chaque Gadget afin forcer le même résultat sous chaque environnements. C'est la seul solution que j'ai trouvé pour que ca fonctionne au mieux.

Autrement pour les '/' j'utilise la fonction "Rechercher - Remplacer" de PB quand je veut convertir un '\' en '/'.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Un seul code pour 2 OS possible ???

Message par falsam »

MetalOS a écrit :Autrement pour les '/' j'utilise la fonction "Rechercher - Remplacer" de PB quand je veut convertir un '\' en '/'.
j'ai abandonné le dev sous linux, mais il me semble que "/" fonctionne aussi bien sous windows que sous linux.

Test (sous windows et Linux) si tu as une valeur non nul avec ce code qui cherche à lire le premier exemple de code se trouvant dans le dossier d'installation de Pure Basic

Code : Tout sélectionner

Debug ReadFile(#PB_Any,  #PB_Compiler_Home+"/Examples/Sources/2DDrawing.pb")
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%
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Un seul code pour 2 OS possible ???

Message par Golfy »

Voilà déjà un problème de moins ( \ et / ), merci je n'avais pas eu l'idée d'essayer :D
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Un seul code pour 2 OS possible ???

Message par poshu »

Pour tout ce qui est taille de gadget et police, faut juste pas utiliser de nombre magique, comme un dev web (bon, je vais aussi rappeler que, même sous windows only, les nombres magiques devraient êtres bannis, après tout vous ne connaissez pas la configuration de l'utilisateur final). Tous mes programmes sont osx/linux/windows sans aucun problème :p
Par contre, faut bannir tous les éditeurs de fenêtres qui sont incapable de faire ça.
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Un seul code pour 2 OS possible ???

Message par Golfy »

C'est quoi les nombres magiques (hormis le ratio considéré comme idéal esthétiquement)
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Un seul code pour 2 OS possible ???

Message par poshu »

En gros, quand tu fais une fenêtre, si il y a un nombre fixé arbitrairement à un endroit, ça va déconner un jour ou l'autre, c'est inévitable.
Un exemple que j'ai beaucoup vu dans le coin, c'est avec une scrollarea qui ne doit scroller que dans une direction:

Code : Tout sélectionner

OpenWindow(0,0,0,800,600,"",#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget) ;<-- 800 et 600, c'est pas un problème si la fenêtre est resizable puisque l'utilisateur corrigera de lui même.
ScrollAreaGadget(0,0,0,800,600,1000,600-21);<-- -21???? Bah ouais, j'ai mesuré la hauteur des barres de défilement sous windows 8 et ça faisait 21...

Repeat : Until WaitWindowEvent() =#PB_Event_CloseWindow
bon, bah ça, c'est du code digne d'un débutant fini; ça va déconner selon l'utilisateur (c'est un paramètre réglable) et selon l'OS. 21 est donc un nombre magique; et quand je vois ça, je comprends "j'avais la flemme de faire une travail correct"...
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Un seul code pour 2 OS possible ???

Message par Golfy »

ok, je crois avoir compris :mrgreen:
Et comment fait-on pour trouver des nombres pas magiques ? :roll:

A part ça, je commence à comprendre l'intérêt d'une interface PHP, d'un traitement Purebasic et... d'une passerelle GET/POST :D
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Répondre