Salut Yannick,
serait t'il  possible d'avoir un exemple que tu aurais  fait ?
histoire d'avoir quelque chose de concret !
----- Original Message ----- 
From: "Yannick Youalé" <[email protected]>
To: <[email protected]>
Sent: Monday, April 23, 2012 12:56 AM
Subject: [progliste] ControlCreator- logiciel de conception graphique des 
fenêtres pour aveugles


>
> Salut la progliste !
>
> Je suis Yannick Daniel Youalé, et certains d'entre vous me connaissent 
> sous le pseudonyme de mailtoloco.
>
> Je vous écris aujourd'hui pour vous proposer un logiciel de ma conception 
> en version alpha. J'ai nommé: controlCreator.
> Il s'agit d'un utilitaire, initialement destiné aux programmeurs aveugles 
> et sensé leur apporter plus de facilité dans ce qui est pour l'instant 
> leur point faible: la conception graphique des fenêtres.
>
> Vous pouvez le télécharger ici:
>
> http://dl.dropbox.com/u/50237171/ControlsCreator.zip
>
> Pour l'instant, il n'a principalement été aménagé que pour le visual basic 
> 6, langage de programmation certes arriéré, mais qui possède l'une des 
> plus grandes simplicité que je connaisse.
>
> Néanmoins, à terme, l'une de ses particularités devrait être de pouvoir 
> être adapté pour n'importe quel autre langage de programmation via un 
> langage de script (que j'ai voulu être le VBScript).
>
>
>
>
>
> Une autre des particularité du controlCreator, qui m'est venue d'une 
> révélation, a été de concevoir la gestion des objets d'une fenêtre, non 
> plus de façon linéaire, mais plutôt dans une arborescence dont les noeuds 
> représenteraient la fenêtre elle-même et ses objets enfants.
>
> En effet, gérer une liste de controls dans une arborescence pourrait être 
> plus facile à vivre pour des développeurs aveugles car, c'est certainement 
> l'un des types d'objet dans windows auquel il sont le plus habitués, 
> qu'ils manipulent le mieux, et qui serait le plus approprié à représenter 
> la structure hierarchique de l'organisation des controls sur une form.
> Et c'est sur ce principe de base essentiel que repose mon logiciel 
> "controlCreator".
>
> Un petit bémol cependant. Comme vous le constaterez en lançant 
> l'application, le control d'arborescence que j'utilise n'est pas le 
> control natif de windows, mais plutôt celui qui m'est proposé parmi les 
> objets du langage de programmation de développement que j'ai utilisé. 
> Alors, il pourrait manquer à certains moment de vous dire si un noeud est 
> ouvert ou pas.
> Et Vous devrez probablement désactiver la lecture des graphiques pour ne 
> pas être embêté lors de la lecture des informations.
> De plus, je dois aussi dire que ce control d'arborescence n'est 
> malheureusement pas reconnu par NVDA.
>
> Quoi qu'il en soit, cela ne devrait malgré tout pas poser trop de 
> problèmes avec jaws.
>
> En attendant que je me développe un control activX en MFC qui se 
> comportera mieux, disons nous que nous allons utiliser celui-là, ne 
> serais-ce que pour expérimenter.
>
> x. Description du logiciel
>
> ControlCreator est un logiciel (pour l'instant) non installable, donc 
> transportable dans une clée USB, conçu en vb6, dôté de fonctionnalités 
> permettant aux aveugles dans une arborescence et d'autres objets 
> accessibles de:
>
> *   Créer et réorganiser des formulaires et des controls, cela de façon 
> hierarchique (avec des parents, des enfant, des sous-enfants, etc);
>
> * dimensionner et positionner ces formulaires et ces controls en 
> choisissant le type de coordonnées (par pixels, par twip). Pour le moment, 
> ne sont pas encore implémenté les positionnement et dimensionnement par 
> centimètre, par milimètre, par point, par position de grille (colonne, 
> ligne, colspan, rowspan))
>
> * assigner des valeurs aux propriétés propres à chaque élément des 
> fenêtres;
>
> * attribuer des couleurs d'arrière-plan et de texte par des outils 
> accessibles dans lesquels une grande variété de couleurs sont nomées en 
> français ou en anglais. Ce vollet n'est pas encore totalement implémenté, 
> mais sachez quand même que je me suis servi du fichier colors.ini du 
> dossier des paramètres partagés de jaws.
>
> Toutes les commandes étant disponibles par les menus (barre des menus et 
> menus contextuels), les boutons ou les raccourci clavier.
>
> A la fin de  la procédure de création, l'utilisateur pourra générer un 
> fichier à l'extension ".frm" contenant le code de la form et de ses 
> controls. Vous pourrez alors intégrer ce fichier frm dans vos projets 
> visual basic.
>
> De même, Via le menu fichier, ouvrir, vous pourrez importer le code d'un 
> formulaire visual basic à l'extension ".frm" déja existante et le modifier 
> dans le logiciel pour le réenregistrer dans ce fichier.
>
> Ainsi, le but de ce logiciel sera à terme de pouvoir importer et exporter 
> le code d'un fichier spécifique au langage pour lequel il est destiné.
>
> x. Les controls
>
> Le code des controls insérés dans les formulaires du ControlCreator 
> proviennent d'un sous dossier de l'application
> dans lequel ils sont conservés dans des fichiers texte.
> Lors de l'insertion de controls nécessitant  des importations d'API, 
> controlCreator vous avertira de l'existance ou non de ces API sur 
> l'ordinateur sur lequel vous travaillez.
> Bien entendu, il vous sera possibles d'ajoutter d'autres codes de controls 
> dans le dossier des modèles de controls si vous le désirez.
>
>
> x. fonctionnement du logiciel
>
> Quand vous lancez le programme par le fichier controlCreator.exe, vous 
> vous trouvez sur la fenêtre MDI principale. Elle contient la barre des 
> menus que je vous invite dans un premier temps à explorer.
>
> Pour créer votre premier formulaire, vous pouvez faire "ctrl+n", ou alors 
> fichier, nouveau sous-menu, formulaire.
>
> Vous remarquerez que dans nouveau sous-menu, une des trois options vous 
> permet de créer un formulaire à onglet. Fonctionnalité extrèmement 
> intéressante que vous explorerez par vous-même plus tard. Mais pour 
> l'instant, continuons !
>
> Lorsque votre formulaire s'ouvre, vous vous trouvez sur une arborescence. 
> Et le premier noeud représente le formulaire. Il porte d'ailleurs le nom 
> générique "form1".
>
> Imaginons maintenant qu'au formulaire nommé form1, vous vouliez créer des 
> controls enfants. Prenons par exemple:
> * un control label
> * et un control textbox.
>
> Vous vous placez sur  le noeud form1. ha ! vous êtes déja dessus.
>
> Vous faites application pour ouvrir le menu contextuel;
>
> Vous faites flèche bas jusqu'à l'item intitulé "Nouveau control 
> enfant...", et vous faite entrer.
>
> Une boîte de dialogue s'ouvre pour vous demander quel type de control vous 
> voulez insérer. Vous vous trouvez dans une liste.
>
> Vous faites alors flèche bas jusqu'à l'élément label, ou alors vous tapez 
> la première lettre de l'élément que vous recherchez pour le trouver plus 
> rapidement, et vous faites entrer lorsque vous l'avez trouver.
>
> Lorsque la boîte de dialogue se referme, vous êtes repositionné dans 
> l'arborescence sur un control nommé "label1", et qui est, comme vous le 
> constaterez, un noeud enfant du noeud form1.
>
> Ensuite, pour créer la textbox, étant positionné sur le label1, vous 
> referez menu contextuel et choisirez cette fois "nouveau control après..." 
> avant de faire entre et de choisir dans la boîte de dialogue qui s'ouvrira 
> le type textbox.
>
> Voilà ! J'espère que vous avez compris le principe.
>
> Vous pourrez ainsi, grace au menu contextuel:
>
> * créer des control avant, après, ou comme enfant du control sur lequel se 
> trouve le curseur pc.
>
> Et toujours dans le menu contextuel, dans paramètres sous menu que vous 
> atteindrez directement en faisant flèche haut une fois) vous remarquerez 
> que vous pouvez également:
>
> * renommer un control,
> * modifier le caption (ou légende) d'un control (pour ceux qui en sont 
> dotés).
>
> La modification du type d'un control n'est pour lemoment pas implémentée.
>
> x. un déplacement logique et rapide dans l'arborescence
>
>
> la combinaison "ctrl+origine" vous amènera au premier control de 
> l'arborescence qui est, le formulaire lui-même.
>
> la combinaison ctrl+fin vous amènera au dernier control du dernier niveau 
> hierarchique de l'arborescence du formulaire
>
> la touche origine vous amènera au premier des controls du niveau 
> hierarchique sur lequel vous vous trouvez, c'est-à-dire au premier des 
> controls frères courants.
>
> Et la touche fin vous amènera au dernier control du niveau hierarchique 
> sur lequel vous vous trouvez. C'est-à-dire au dernier des controls frères 
> courants.
>
> Ces commandes de déplacement sont selon moi importantes car, elles 
> permettent de se déplacer facilement lorsque le nombre de control devient 
> important.
>
>
>
> x. le déplacement des controls dans l'arborescence
>
> Deux méthodes possibles
>
> x. Méthode de déplacement 1
>
> Vous pourez déplacer les control dans l'arborescence par le couper-coller 
> ou le copier coller.
>
> A Chaque fois que vous collerez un control préalablement coupé ou copié, 
> une boîte de dialogue s'ouvrira pour vous demander si vous voulez  coller 
> le control présent dans le presse papier avant, après, ou comme enfant du 
> control sous le curseur.
>
> Si par exemple vous ouvrez plusieurs formulaires à la fois, vous pourrez 
> copier-coller des controls d'un formulaire à l'autre.
>
> Soit dit en passant, basculer entre les formulaires ouverts, c'est 
> ctrl+tab.
>
> x. méthode de déplacement 2
>
> Vous pourrez déplacer les controls par les raccourcis clavier suivant
>
> * alt+flèche haut: déplace le control courant dans l'arborescence vers le 
> haut
>
> * alt+flèche bas: déplace le control courant dans l'arborescence vers le 
> bas
>
> * alt+flèche gauche: déplace le control courant vers la gauche dans 
> l'arborescence; autrement dit, le place comme frère de son parent actuel.
>
> * alt flèche droite: déplace le control courant vers la droite dans 
> l'arborescence; autrement dit, le place comme l'un des enfant  du control 
> le précédent.
>
> x. le positionnement des controls
>
> NB: pour pouvoir  afficher les coordonnées géographique des controls dans 
> le texte des noeuds,  vous devrez valider sur affichage, afficher les 
> coordonnées dans le texte des noeuds.
>
>
> les commandes de positionnement sont regroupées dans le menu 
> "positionnement sous menu" du menu contextuel.
>
> sinon, rapidement, ctrl+p ouvre une série de boîtes de dialogue dans 
> lesquelles on vous demandera le left et le top du control sous le curseur.
>
> A noter que dans les zones d'édition de ces boîtes de dialogue, vous 
> pourrez entrer des expressions simples. Par exemple, "2000 + 120 - 240" 
> sera pris en compte et calculé.
>
> Sachez également que lorsque vous êtes positionné sur un control, vous 
> pourrez modifier sont left ou son top à chaque fois de (120 twips  ou 8 
> pixels) grace aux raccourcis clavier
> * ctrl+flèche gauche ou flèche droite
> * ctrl+flèche haut ou flèche bas
>
> Et là, si vous effectuez ces commandes raccourci, en observant le 
> comportement de jaws, la question que vous allez vous poser est de savoir 
> comment je suis arrivé à faire en sorte que jaws donne en temps réel la 
> valeur modifiée.
>
> En fait, il s'agit d'une petite astuce qui veut que après que la commande 
> raccourci ait été effectuée, je remplace le texte du noeud courant par la 
> valeur à lire, pendant quelques fractions de secondes, ce qui laisse le 
> temps à jaws de se rendre compte que le texte surligné à changé, et le 
> force à le lire, puis je remet le texte qui doit normalement apparaître 
> sur le noeud, c'est à dire: le type du control, son name, son caption, et 
> ses coordonnées géographiques.
>
> Malin n'est-ce pas ?
>
> x. le dimensionnement des controls
>
> NB: pour pouvoir  afficher les informations de dimension des controls dans 
> le texte des noeuds,  vous devrez valider sur affichage, afficher les 
> coordonnées dans le texte des noeuds.
>
> les commandes de dimensionnement sont regroupées dans le menu 
> "dimensionnement sous menu" du menu contextuel.
>
> sinon, rapidement, ctrl+d ouvre une série de boîtes de dialogue dans 
> lesquelles on vous demandera le width et le height du control sous le 
> curseur.
>
> Sachez également que lorsque vous êtes positionné sur un control, vous 
> pourrez modifier sont width ou son height à chaque fois de (120 twips  ou 
> 8 pixels) grace aux raccourcis clavier
> * maj+flèche gauche ou flèche droite
> * maj+flèche haut ou flèche bas
>
> Là aussi, vous vous rendrez compte que les modification seront lues en 
> temps réel et cela vous permettra de savoir où vous arrêter.
>
>
> x. les rapports
>
> dans le menu outils, vous trouverez "rapports sous menus"
>
> Ce n'est pas encore totalement codé, mais là devrait se trouver des 
> options permettant de produire des rapports descriptifs sur la disposition 
> des controls sur le formulaire courant.
>
> Ce qui pourrait nous permettre d'avoir rapidement une idée claire sur la 
> disposition géographique des controls d'un formulaire.
>
> C'est sûr qu'Ici, il va me falloir un bon algorithme d'intelligence 
> artificielle.
>
>
> x. autres fonctionnalités
>
> * Pour les voyants et malvoyants, j'ai prévu dans le menu fichier un item 
> aperçu pour pouvoir avoir un aperçu visuel de ce à quoi ressemblera le 
> formulaire lorsqu'il sera exécuté.
> Pour le futur, je prévois la possibilité pour ces voyants et mal-voyants 
> de pouvoir grace à la souris, modifier la disposition et les dimensions 
> des controls.
>
> * Dans nouveau sous-menu du menu fichier, vous trouverez une option 
> ouvrant un assistant permettant de créer une fenêtre à onglet.
> Donc, sans effort, vous pourrez créer le code de ce type de formulaire qui 
> selon moi est généralement l'un des plus difficile à créer par les 
> aveugles.
>
> * Dans le menu édition, des éléments de menus vous permettront de 
> rechercher et trouver rapidement des controls quel que soiet leur 
> emplacement dans l'arborescence.
>
> * Dans le menu outils, scripts sous-menu, vous trouverez des exemples 
> d'items de déclanchement de scripts essentiellement d'exportation que j'ai 
> créé pour produire le code vers des langages qui vous seront listé.
> Attention ! Tous ne fonctionnent pas pour l'instant.
>
> * des options vous sont également offertes pour :
>
> sélectionner des controls (avec ctrl+entrer), puis leur appliquer une 
> action.
>
> En partant du principe que le premier control sélectionné est toujours le 
> modèle, vous pourrez assigner des mêmes dimensions, positions à une série 
> de controls sélectionnés;
>
> Vous pourrez aligner une série de controls les uns à la suite des autres, 
> en indiquant bien sûr la direction (droite ou bas) et l'écart qu'il doit y 
> avoir entre eux.
>
> Vous pourrez modifier une propriété pour une série de controls 
> sélectionnés.
>
> Par exemple, si vous voulez déplacer une série de controls de 100 pixels 
> sur la droite,
>
> Sélectionnez tout d'abord les controls en faisant ctrl+entrer sur chacun 
> d'entre eux.
>
> faites ensuite menu contextuel, série sous-menu,
>
> faite entrer sur l'item "modifier une propriété pour une série de 
> controls.
>
> Dans la boîte de dialogue qui s'ouvrira, vous remarquerez dans la liste de 
> départ que les controls à modifier sont cochés. Vous pouvez en décocher ou 
> en cocher d'autres.
>
> Ensuite vous choisirez la propriété à modifier (left, top, width ou 
> height).
>
> et enfin vous taperez la valeur de la modification avant de faire entrer 
> sur le bouton ok.
>
> NB: Pour vider la liste des controls sélectionnés, c'est tout simplement 
> échap. Un son de vidage de corbeille vous avertira que l'action s'est 
> effectuée avec succès.
>
> x. conclusion
>
> Si j'ai travaillé comme un dingue sur ce logiciel et que je vous le 
> soumet, c'est que je crois en sa capacité à nous rendre la tache beaucoup 
> plus facile.
> Comme je l'ai écris tantôt un peu plus haut, il s'agit ici d'un principe 
> que je vous appelle à m'aider à développer, à améliorer. Je n'ai pas la 
> prétention de croire qu'il s'agisse de la panassé, le remède qui guérira 
> tous nos maux, mais simplement d'une avancée que vous, développeurs 
> aveugles, pouvez m'aider à transformer en un outil de plus qui nous aidera 
> à rattraper une partie de notre retard sur les voyants.
>
> Bien entendu, je suis conscient que ce que j'ai fait est loin d'être 
> parfait, et s'il s'avère qu'il faille modifier ce projet, le reprendre 
> dans un langage plus approprié, avec des outils plus appropriés, je serais 
> heureux de participer en transcrivant mes codes, en faisant part de mon 
> expérience dans le domaine car, ce qui m'importe avant tout, c'est que 
> nous puissions arriver à un résultat efficace.
>
> Le controlCreator peut très bien se concevoir en projet autonome, ou être 
> adapté pour être intégrée comme concepteur  graphique à un éditeur de 
> code.
>
> J'ai commencé par le configurer pour la création de code visual basic, mon 
> langage préféré, mais ce logiciel pourrait sans grands efforts être 
> adaptés à d'autres langages de programmation tels que:
> * le VBA,
> * le VB.net,
> * le WX de python,
> * le Swing de java
> * ou tout autre langage graphique qu'utilisent les programmeurs aveugles.
>
> Même si vous n'êtes pas un programmeur visual basic, Téléchargez-le et 
> utilisez le pour me faire part de ce que vous en pensez.
>
> Pour finir, je dirais que nous pouvons attendre qu'il nous proposent des 
> outils les plus accessibles possibles, les plus gratuits possibles, les 
> plus professionnels possibles, ou alors nous pouvons sortir de notre 
> rêverie, choisir nous même de créer ces outils car, mieux que personne, 
> nous savons ce dont nous avons besoin, et désormais, nous avons les 
> capacités techniques de réaliser nos rêves.
> On peut toujours se complaire dans la difficulté, cela nous donnera 
> l'illusion d'être compétent. Cependant nous appartenons à l'ère des 
> vitesses pour lequel l'aveugle avec son block-note risque de devenir un 
> boulet.
> Acceptons de souffrir comme des chiens pendant un jour, une semaine, un 
> mois, pour n'avoir plus qu'à appuyer sur un bouton afin que notre bébé 
> fasse tout le travail ou presque à notre place.
>
> Yannick Daniel Youalé
> alias mailtoloco
> Douala,
> Cameroun,
> Afrique Centrale
>
> La programmation est une religion.
> Aimez-la, ou quittez-la.
> Progliste :
> Pour se désinscrire de la liste : 
> mailto:[email protected]?subject=unsubscribe
>
> Pour voir les archives de la liste :
> http://www.mail-archive.com/[email protected]/
>
> Pour accéder aux fichiers de la liste
> http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
> Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, 
> je vous répondrez en privé. 


Progliste :
Pour se désinscrire de la liste : 
mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/       

Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je 
vous répondrez en privé.

Répondre à