Dernière mise à jour : 8 septembre 2002
Un journal (en anglais) retraçant l'avancement des travaux existe depuis le 1er octobre 2001. Le journal est à jour, alors que ce document n'est actualisé qu'une fois par mois environ (l'ancienne version est encore disponible ici).
A la mi-mars 2002, j'ai pris la décision fondamentale de modifier l'architecture sous-jacente de Virtual Pen : ce ne sera plus OPaC qui gèrera l'interface graphique, ni Ghostscript qui peindra le document... Tout cela a été remplacé par des éléments de Microsoft .NET (Windows Forms et CLR pour remplacer OPaC, GDI+ pour remplacer Ghostscript).
J'ai dû me rendre à l'évidence : les technologies utilisées (et qui avaient un sens jusque vers début 2002) sont actuellement définitivement dépassées; l'architecture .NET et le moteur GDI+ de Microsoft me permettent d'avancer beaucoup plus vite et d'écrire un programme beaucoup plus efficace...
Les vacances étaient nécessaires... et c'est en se remettant à l'ouvrage à la mi-août que j'ai retrouvé un certain nombre de problèmes liés à la gestion des hachures. A la fin août, VP a reçu des menus définitifs et il se comporte enfin comme un vrai logiciel, même si ses fonctions sont encore très limitées.
Les courbes de Bézier ne font toujours pas partie de la panoplie de VP, mais c'est prévu pour la toute fin du mois d'août (32 ou 33 août :-). Par contre, VP sait maintenant imprimer correctement ses documents !
Les travaux sur le pavé de texte ont officiellement commencé en semaine 35 (26 août 2002), soit avec 4 semaines de retard par rapport aux estimations de juin...
Septembre sera entièrement dévolu au pavé de texte et à l'enrichissement de Virtual Pen. Difficile de dire maitenant comment le travail évoluera.
Virtual Pen (version du 27 février 2002) se compose des éléments suivants :
Un système d'enregistrement des données peut venir se greffer entre front-end et back-end pour permettre de reproduire la séquence d'événements qui a conduit à un crash du back-end.
L'application de test affiche une vue du document, une fenêtre de saisie de commandes (utilisée pour le déverminage) et un menu rudimentaire. Une fenêtre additionnelle permet d'éditer les caractéristiques du style actif.
L'interface de l'application est encore primitive.
Le système interne d'édition et de gestion de styles automatiques semble au point. Il a fallu près de deux mois pour que tous les problèmes soient résolus proprement (clonage, annulation, etc.)
Il a fallu faire quelques incursions dans OPaC, car il s'est avéré que tous les widgets ne sont pas implémentés à 100%. Ce travail a été nécessaire (et sera encore nécessaire), même si par la suite, il est probable qu'OPaC passe à la trappe sous sa forme actuelle (pour avoir une meilleure intégration avec Windows XP).
Un widget de type combo-box a été rajouté et les menus ont reçu un petit lifting.
Après avoir écrit une première version de l'éditeur d'attributs (présenté à la séance EPSITEC du 30 avril 2002), j'ai complété l'éditeur d'attributs afin de permettre de retoucher des objets existants. Ceci a nécessité une refonte complète des mécanismes de clônage de styles, car la version implémentée en avril avait de sérieux problèmes. Ce n'est qu'au tout début de juin que l'éditeur s'est avéré entièrement fonctionnel (5 juin 2002).
Les mécanismes pour les plug-ins semblent stables, bien qu'il soit inévitable que des ajouts devront être faits par la suite. J'ai testé un plug-in permettant de créer des règles, d'afficher le zoom, d'éditer des attributs, de gérer des créations d'objets un peu plus complexes que des lignes (courbes de Bézier).
La réflexion sur le pavé de texte est en route et un bon nombre d'idées sont en place (ou le seront bientôt). J'ai passé du temps à me documenter sur les diverses techniques et méthodes disponibles pour réaliser un moteur H&J performant. TEX est toujours, dirait-on, l'un des meilleurs outils dans ce domaine...
Ce mois, il faudra que je termine la consolidation de la gestion des plug-ins dans Virtual Pen et que j'expérimente avec les outils évolués que le groupe typographie avancée de Microsoft met à disposition des programmeurs (OTLS), notamment en relation avec les capacités fabuleuses qu'offre Open Type. J'ai signé des documents qui devraient me donner accès à ces technologies. J'attends la réponse de Microsoft.
Les remarques de Daniel Roux (10 juin) m'ont forcé à réfléchir plus avant sur l'interface graphique (que j'avais quelque peu négligée jusqu'à maintenant). J'ai donc passé une semaine complète à mettre au point une interface utilisateur sur le papier. Il faudra donc l'implémenter.
A la suite des remarques de Daniel Roux (10 juin), j'ai dû revoir mon planning et reporter toute mon attention sur l'interface graphique et sur la logique de création/édition d'objets. J'avais en effet négligé ces aspects et il commençait à devenir urgent que je m'y attelle... J'ai donc passé le mois de juin à concevoir une interface (qui n'est pas encore implémentée) et le début du mois de juillet à récrire la gestion des événements (bouton de gauche pour créer, bouton de droite pour modifier/éditer ne plaisaient pas).
J'ai extrait la logique de gestion des événements dans des classes propres à chaque outil (plume, curseur), ce qui permet une plus grande souplesse et, éventuellement, une implémentation sous la forme de plug-ins.
J'ai continué la réflexion sur les mécanismes du pavé de texte. Après avoir consulté les références en la matière (InDesign 2.0, QuarkXPress 5.0 et TEX), la tâche s'avère ardue... Entre temps, j'ai reçu de Microsoft la documentation et le SDK OTLS nécessaires pour pouvoir accéder aux fonctions avancées d'Open Type sous Windows. Il faudra encore expérimenter...
Je compte avoir une version solide de Virtual Pen à la fin du mois de juillet, laquelle permette de créer des lignes polygonales et des courbes de Bézier, en supportant les outils de base, les groupes et une fonctionalité proche de la version publique. Le pavé de texte attendra août.