GUI : Réinventer la roue ? – Plaisir de coder

Y’a des périodes comme ça ou on arrive même plus à trouver le temps d’aller pisser …
Toujours est-il que ce dernier mois a été l’occasion de me pencher sur le problème des interfaces graphiques pour Raydium (support OpenGL, donc).
Première possibilité : utiliser une lib déjà existante. J’ai donc fait le tour de celles qui pouvaient avoir un caractère intéressant :
– FLTK (http://www.fltk.org/)
– GlGoogey (http://glgooey.sourceforge.net/)
– mUi (http://www.fifi.org/doc/glutg3/README.mui)
– Crazy Eddie’s GUI System (http://www.cegui.org.uk)
– GLUI (http://www.cs.unc.edu/~rademach/glui/)
– GG/GiGi (http://gigi.sourceforge.net/)

Certaines sont puissantes mais lourdes (dépendances fortes en particulier), d’autres simples mais très laides, d’autres trop "C++ elite style", d’autres superbes (GlGooey est impressionant) mais au prix d’une complexité insupportable, d’autres sans doc, etc.

Bref or donc bien sûr, comme je commence à en avoir l’habitude avec Raydium, je me suis jetté dans la délicate (mais intéressante) idée de réinventer la roue en codant la bonne GUI pour Raydium.

En me basant sur certaines idée de la VCL de Borland, j’ai commencé à coder la base : la notion de fenêtre, de widget, le focus. Puis le premier widget est arrivé : le bouton, suivi par le label, la trackbar, la boite de saisie, la checkbox et enfin la combobox.
Ca donne ça :

Le tout supporte les thèmes, et du haut de ma grande incompétence graphique, voilà le fichier de thème par défaut :

L’API est stabilisée et documentée (chapitre 33 de la doc), reste à écrire un tutoriel et à s’en servir dans les différentes applis qui attendaient ça depuis longtemps.

La version 1 de RayGUI, même si j’ai très fortement résumé son histoire ici, à été un truc très sympa à coder, pas compliqué dans le principe, mais avec beaucoup de subtilités à prendre en compte dans l’implémentation (on imagine mal les détails utiles à une bête boite de saisie : taille et offset du texte, curseur, …), qui résument assez bien le plaisir de coder que doivent ressentir tous les passionnés de développement.


Du soleil par la fenêtre, une ambiance musicale : let’s code ! 🙂


Publié

dans

par

Étiquettes :

Commentaires

2 réponses à “GUI : Réinventer la roue ? – Plaisir de coder”

  1. Avatar de Ceacy
    Ceacy

    La dernière fois que j’ai voulu réinventer la roue, mon père m’a fait remarquer que, nonobstant l’innovation indéniable, le fait qu’elle soit carrée posait un petit problème.
    Tiens, une question que je voulais te poser : tu utilises quel IDE, pour coder ? Et, également : comment tu as pu prendre en photo tes deux mains ?

  2. Avatar de Xfennec
    Xfennec

    Pour le C, je n’utilise pas d’IDE mais mcedit et gcc enrobé d’un petit script, avec un terminal chacun (voire plusieurs pour mcedit).

    Sinon, pour se prendre en photo les deux mains, il suffit de connaître la fréquence du capteur CCD de son appareil et d’en déduire le temps nécessaire pour faire le trajet déclencheur -> clavier, en général sous les 10 ms. (ou d’utiliser le retardateur de prise)

Laisser un commentaire