Autant je trouve très pratique de faire des interfaces simples en XUL, autant il y a plusieurs choses qui me gênent pas mal:
- utilisation de XPCOM: dès qu'on veut utiliser un objet, on doit taper (ou faire de gros copier-coller) un gros bloc bien verbeux. Ça faire un gros contraste avec la simplicité du reste en javascript
- création d'objets XPCOM: j'ai voulu m'y mettre. C'est trop compliqué, trop long à mettre en oeuvre. Ce dont j'ai besoin, c'est d'une part de mettre en place un environnement de compilation simplement, puis de pouvoir générer le code-glue entre mes classes C++ et XPCOM, comme le fait Swig.
- XBL: pas simple à mettre en oeuvre comme XUL, CSS et Javascript. Y a des comportements chiants. Par exemple, lorsqu'on crée un nœud DOM qui correspond à un composant XBL, il ne sera utilisable qu'après son premier affichage. Bref, si je crée un noeud "moncontrole" en javascript, je ne peux pas appeler tout de suite une méthode de cet objet/noeud. Ou alors avec un callback "timeout" (bonjour la complexité!)
[^] # Re: Précisions...
Posté par Fabimaru (site web personnel) . En réponse au journal XULrunner 1.9 est là. Évalué à 3.
- utilisation de XPCOM: dès qu'on veut utiliser un objet, on doit taper (ou faire de gros copier-coller) un gros bloc bien verbeux. Ça faire un gros contraste avec la simplicité du reste en javascript
- création d'objets XPCOM: j'ai voulu m'y mettre. C'est trop compliqué, trop long à mettre en oeuvre. Ce dont j'ai besoin, c'est d'une part de mettre en place un environnement de compilation simplement, puis de pouvoir générer le code-glue entre mes classes C++ et XPCOM, comme le fait Swig.
- XBL: pas simple à mettre en oeuvre comme XUL, CSS et Javascript. Y a des comportements chiants. Par exemple, lorsqu'on crée un nœud DOM qui correspond à un composant XBL, il ne sera utilisable qu'après son premier affichage. Bref, si je crée un noeud "moncontrole" en javascript, je ne peux pas appeler tout de suite une méthode de cet objet/noeud. Ou alors avec un callback "timeout" (bonjour la complexité!)