Bonjour à tous !

Dans le cadre du dossier consacrer à la création de GUI, voici donc le dernier article.

Hier, dans l’article consacré au création de layout, j’ai montré la possibilité de les créer grâce à un fichier XML ou en C++ directement dans le programme. Par contre je n’ai pas parlé des raisons qui pourraient vous faire pencher vers l’un ou vers l’autre. Je vais être franc, pour moi je vois pas vraiment d’avantage au C++ Razz . En fait, les seules raisons qui pourraient vous faire pencher vers ce dernier, c’est tout d’abord une affinité, et ensuite le fait qu’il n’y a pas besoin de connaitre toutes les propriétés disponibles, l’auto-complétion vous simplifiant la vie de ce côté là.

Par contre pour le XML, là y en a pas mal d’avantage ! Déjà le premier, c’est un gain de temps conséquent. Bah oui, du C++, dès qu’on le modifie, faut recompiler. Et sur un projet de grande envergure, ça peut prendre longtemps parfois. Alors déplacer un objet de trois pixels, recompiler, vérifier, redéplacer, recompiler, etc… A la longue, on perd pas mal de temps, et c’est pas top. Alors que si on fait le layout en XML, il suffit juste de recharger la page. Le programme n’est pas modifié, il fait toujours la même chose : parser le layout XML pour créer les objets graphiques et les placer. Donc si on change le fichier XML, ça ne change que le résultat du parsage.

Et un autre avantage de la non nécessité de recompiler, c’est la personnalisation des interfaces. Vu qu’il suffit de changer le fichier layout pour changer l’interface, on peut au final facilement se retrouver avec un GUI totalement personnalisable par les utilisateurs, comme c’est le cas dans un World of Warcraft par exemple. On peut même envisager de fournir un outil équivalent à un Qt Designer aux utilisateurs pour laisser leur créativité s’exprimer.

Cet outil, tout comme l’avantage que je viens d’expliquer, est aussi à valoir pour les graphistes de l’équipe. Les graphistes ne sont pas des codeurs, alors aller retoucher du C++, c’est pas leur tasse de thé, bien au contraire. Par contre, travailler un fichier XML, ils y arrivent bien, et à force ils ont pas mal l’habitude. Et en plus de ça, si on leur fournit des outils avec interface graphique et tout, mais alors là ils sont aux anges ! Tout faire à la souris, quel bonheur pour eux.

En pour finir, décentraliser toute la mise en page dans le XML permet d’alléger le code C++. Déjà qu’une page de GUI est assez lourde avec tous les traitements effectués à chaque refresh d’image, au fonction « listener » pour les boutons, et tout ce qui va avec. Si en plus on doit se taper des centaines de lignes d’initialisation, ça commencerait vraiment à faire lourd, et à faire un fichier C++ beaucoup plus chiant et long à maintenir/retravailler.

Voilà, je pense avoir fait le tour des avantages de l’un et de l’autre. Avouez que le XML est tout de même bien pratique, et qu’il permet au final d’avoir quelque chose de bien plus puissant qu’une simple GUI codée en dure dans un fichier C++.

Mais, mais, que vois-je ? Ce ne serait pas la fin du dossier qui arrive ? Eh bien si. Ce dernier article qui se termine met aussi fin au dossier. J’espère qu’il vous aura plu, et qu’il pourra peut être aider certaines personnes ayant du mal à se lancer dans CeGUI. Je vous dis donc à bientôt pour de futurs articles, et qui sait, peut être de futurs dossiers (un dossier sur Twitter pourrait être pas mal…Wink.
XOXO.