dr_tux:assistant_de_gestion_des_menus_contextuels

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
dr_tux:assistant_de_gestion_des_menus_contextuels [2012/03/12 07:20]
91.224.161.250 OcxWYgxGjvdokkXB
dr_tux:assistant_de_gestion_des_menus_contextuels [2012/03/24 07:51] (Version actuelle)
admin ancienne révision restaurée
Ligne 1: Ligne 1:
-Salut, et merci pour le commentaireJe crnopemds tr s bien le frein psychologiqueJ'ai eu le m me au d butmais le langage m'a convaincu et je suis pass  au del  (surtout que les sources ​sont disponibles du compilateur sont disponibles)Je te propose surtout ​d'essayer le langage par toi-m meApr s l'avoir essay  r ellementje peux t'assurer que c'est d sagr able de repasser ​  ​CamlLa syntaxe est plus concisemais tout aussi lisibleCe qui rend plus concisc'est surtout ​la biblioth que (on recode beaucoup moins de choses simplisteset l'utilisation ​de l'indentation pour finir les blocsUn tail comme le "​in" ​  la fin des lignes devient vite lourd.  ​F# poss de beaucoup ​de nouvelles fonctionnalit ​s, et cela en fait un nouveau langage ​  part enti reJe suis d'accordce n'est pas Camlmais ce n'est pas non plus une "simple ​imitation"​Je suis d'accord, ce n'est pas le m me caf mais il est tout aussi bon (l g rement meilleur ou g rement pireselon les go ts)Pour le Int64tu te rends rapidement compte ​que c'​est ​bord liquem me avec un openIl faudrait red finir les op rateurs ​(+)(-), etcmais c'est tr s dangereuxCamlp4 peut faire beaucoup de chose, mais il est peu utilis ​ ​en ​pratique ​(sauf pour les besoins sp cifiques). En pratiquetu ne feras pas de compr hensions avec Camlp4tu chercheras ​  ​te ​brouillertant bien que malavec les fonctions ​de baseLes compr hensions apportent concision ​*et* lisibilit ​Regarde mon exemple, la diff rence est assez nette  surtout que Caml ne poss de pas la fonction String.to_listRecoder une fonction si commune rel ve plus de la perte de temps   ​Enfin, l'un des points ​les plus importants me semble ​ tre la g n ricit car elle apporte beaucoup en r utilisation du code et en factorisationEt  atu ne peux pas l'avoir en Caml, m me avec de la bonne volont  ​et du Camlp4Ce qui fait gagner beaucoup ​de temps pour le d bogage, c'est l'affichage g n riqueprintf "​%A"​ affiche ​une valeurque que soit son type. C'est un truc qui manque vraiment ​  Camlmalgr  ​tous les workaround que l'on trouve sur le net.+===== Tutoriel Video ===== 
 +  * [[http://​www.youtube.com/​user/​MedinTuxPlanet#​p/​u/​1/​2IMTHlgcjzE|[VIDEO] Edition, Création et utilisation des listes d'insertion]]  
 +==== Le principe des menus contextuels ==== 
 +Comme vous pouvez ​le voir sur la figure ci-aprèsun clic souris ou un appui de la touche F2  
 +à droite ​le la zone texte bleue : « plaie »  a fait apparaître un menu surgissant avec les 
 +propositions textuelles suivantes avec lambeau cutané avec lésion tendineuse avec perte de substance avec dermabrasion risque tétanigène souillée par qui sont en rapport avec le mot  « plaie ». 
 + 
 +{{ :​dr_tux:​drtuxmenucontextaction.png?​nolink&​ |}} 
 + 
 +Le choix  de l'une des propositions se fait en cliquant sur l'​une ​d'elles, ce qui 
 +aura pour effet de l'​ajouter à l'​emplacement du curseur texte. 
 + 
 +Cette insertion de texte peut très bien être aussi une autre 
 +zone de menu déroulant (cas des propositions dont l'icône 
 +a la forme d'un dossier :  ) qui s'​affichera alors en bleu 
 +comme par exemple la proposition « avec dermabrasion », 
 +qui permet aussi un menu contextuel, et ainsi de suite. 
 + 
 +Il est donc possible de créer des documents types possédant déjà une 
 +véritable architecture de menus contextuels dont la mise en oeuvre permet 
 +de saisir très rapidement le dossier. C'est de cette façon qu'il est possible 
 +de protocoliser la saisie avec des propositions homogènes et cohérentes. 
 + 
 +Nous verrons qu'il est aussi possible ​d'​appeler avec un menu contextuel,​ 
 +les dialogues et assistants ​de DrTux, ainsi que des programmes externes. 
 +==== Créer un nouveau menu contextuel ==== 
 +Pour comprendre, rien de mieux qu'un petit exemple : 
 +Dans un des éditeurs de DrTux (Observation par exemple), saisissez le texte suivant 
 +(sans les guillemets bien sûr !!) :   ​ 
 +« Essai de création d'un menu contextuel » 
 + 
 +puis sélectionnez-le à la souris ou au clavier : {{:​dr_tux:​drtuxmenucontexttxtsel.png?​nolink&​|}} 
 + 
 +puis cliquez sur l'​icône : {{:​dr_tux:​createlist_item.png?​nolink&​|}} ​ dans la barre d'​outils {{:​dr_tux:​drtuxmenutooldivers.png?​nolink&​|}} ​  de DrTux. 
 + 
 +Désélectionnez le texte en cliquant à sa droite. Le texte devrait être  
 +alors en bleu comme ceci : Essai de création d'un menu contextuel. 
 + 
 +Puiscliquez avec le bouton droit de la souris, avec toujours le curseur texte et la souris 
 +positionnés à droite du texte, le menu suivant devrait apparaître : 
 + 
 +{{ :​dr_tux:​drtuxmenucontextmodliste.png?​nolink&​ |}} 
 + 
 +Sélectionnez l'​option:​ « Modifier cette liste » 
 +qui devrait faire apparaître l'​assistant de gestion des 
 +menus contextuelsque nous allons voir dans le paragraphe 
 +suivant. 
 +==== Modifier les menus contextuels ==== 
 +Si vous avez suivi l'exemple précédent vous devriez avoir 
 +la boîte de dialogue suivante ​(réduite pour des raisons ​de mise en page) 
 +positionnée sur la liste que vous venez de créer : 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextlitle.png?​nolink&​ |}} 
 + 
 +Comme vous venez de créer cette liste, elle ne contient rien. Aussi, si vous cliquez dessus il 
 +ne se passera rien. 
 + 
 +Cette boîte de dialogue est aussi accessible à l'aide de l'entrée de menu ci-dessous. 
 +{{ :​dr_tux:​drtuxassitmenumenuacces.png?​nolink&​ |}} 
 +=== Ajouter une option === 
 +positionnez la souris au-dessus de : « Essai de création ​d'un menu contextuel » 
 + 
 +{{:​dr_tux:​drtuxassitmenucontextselliste.png?​nolink&​|}} 
 + 
 +et cliquez avec le bouton droit. Vous devriez voir apparaître le menu suivant : 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextaddnew.png?​nolink&​ |}} 
 + 
 +listant les options suivantes : 
 + 
 +  * Créer et Ajouter un Nouvel élément à une liste 
 +  * Créer et Ajouter une référence à une autre liste 
 +  * Choisir une liste déjà existante, comme référence 
 +  * Créer une Nouvelle liste déroulante 
 +  * Renommer cet élément ou liste 
 +  * Effacer cet élément ou liste 
 +  * Vérifier si cette liste est référencée par d'​autres 
 +  * Placer ce menu '​.....' ​comme menu fixe d'une rubrique. 
 +  
 +Cliquez sur l'​option : « Créer et Ajouter un  Nouvel élément à une liste » 
 +le dialogue suivant vous invite alors à saisir le texte d'une nouvelle option de 
 +votre menu contextuel. 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextnewelem.png?​nolink&​ |}} 
 + 
 +Saisissez par exemple : « Option numéro 1 », 
 +puis répétez pour ajouter d'​autres options à votre menu la procédure  
 +précédente décrite en :  « -a- Ajouter une option » 
 +exemple :   « Option numéro 2 » , « Option numéro 3 » 
 + 
 +La liste devrait alors se présenter comme suit, avec les nouvelles options saisies : 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextnewelem1.png?​nolink&​ |}} 
 + 
 +Fermez à présent l'​assistant de gestion des menus contextuels 
 +en cliquant sur la case de fermeture de la fenêtre, 
 +puis positionnez ​ dans le texte, la souris à droite du texte de  
 +couleur bleue :  Essai de création d'un menu contextuel,  
 +et cliquez sur le bouton droit de la souris ou appuyez sur la 
 +touche F2 le menu suivant devrait apparaître : 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextpopfinal.png?​nolink&​ |}} 
 + 
 +Bravo !!! vous avez créé un nouveau menu contextuel. 
 +=== Effacer un menu contextuel === 
 +Sélectionnez la liste à effacer, cliquez avec le bouton droit de la souris 
 +pour afficher le menu, et cliquez sur l'​option : « Effacer cet élément ou liste » 
 +=== Les autres options du menu === 
 +Le menu du gestionnaire de liste déroulante ​s'​obtient en cliquant avec le 
 +bouton droit de la souriscelle-ci placée au-dessus d'un élément de la liste 
 +d'​insertion. 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextsubmenuliste.png?​nolink&​ |}} 
 + 
 +listant les options suivantes : 
 +  * Créer ​et Ajouter un  Nouvel élément à une liste 
 +Ajoute un nouvel item à la liste déroulante 
 + 
 +  * Créer et Ajouter une référence à une autre liste 
 +Ajoute une nouvelle référence à une autre liste : 
 +si cette référence indique une liste non existante,​ 
 +une nouvelle liste vide sera créée.  
 +Les références aux autres listes ont pour symbole 
 +un petit dossier :  
 + 
 +  * Choisir une liste déjà existante, comme référence 
 +Permet d'​ajouter une référence à une autre liste,  
 +en la choisissant dans une liste de liste (heu !!! un dessin S.V.P.) 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextchoixref.png?​nolink&​ |}} 
 + 
 +Les références aux autres listes ont pour symbole 
 +un petit dossier :  
 + 
 +  * Créer une Nouvelle liste déroulante 
 +Comme son nom l'​indique,​ cette option crée  
 +simplement une nouvelle liste déroulante sans 
 +ajouter de référence à une autre liste 
 + 
 +  * Renommer cet élément ou liste 
 +permet de renommer un élément de la liste 
 +
 +  * Effacer cet élément ou liste 
 +Efface un élément de la liste 
 + 
 +  * Vérifier si cette liste est référencée par d'autres 
 +Option très utile pour vérifier avant de renommer 
 +ou effacer une listesi celle-ci ​n'est pas déjà référencée 
 +par une autre listeauquel cas la référence deviendrait 
 +fausse. 
 +  * Placer ​ce menu 'Menu Document'​ comme menu fixe d'une rubrique 
 +Chaque rubrique peut avoir un menu déroulant ne dépendant ​pas du 
 +contexte textuel de l'​éditeur de texte. Cette option permet d'​attribuer la 
 +liste déroulante au-dessus de laquelle la souris se trouve, comme menu 
 +déroulant fixe d'une rubrique à choisir dans la liste d'​options présentée par 
 +le sous menu : 
 +Placer ce menu 'nom de la rubrique'​ comme menu fixe d'une rubrique. 
 +{{ :​dr_tux:​drtuxassitmenucontextsubmenuliste.png?​nolink&​ |}} 
 + 
 +=== Transformer un item de la liste en Item texte  === 
 +Parfois vous souhaiterez qu'une option soit plus qu'une simple 
 +ligne de texte, par exemple un bloc de texte complet. 
 +Pour cela vous disposez ​ à la droite de la boîte listant les listes ​d'insertion 
 +d'une petit éditeur de texte très simple, ​  
 +Sélectionnez un élément d'une liste, cliquez sur l'​éditeur de texte, et vous 
 +remarquerez que, dès que vous commencez à saisir des caractères  
 +le symbole ​ {{:​dr_tux:​savediskicon.png?​nolink&​|}} ​ s'​affiche vous signalant une modification du contenu 
 +textuel de l'​option.  
 +Cliquez ensuite sur ce symbole pour enregistrer les modifications. 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextreftotext.png?​nolink&​ |}} 
 + 
 +Toute option de liste, qui représente un texte est signalée par le symbole :  
 +=== Trucs et astuces du texte d'une option === 
 +  * Les modificateurs $start_title et $end_title pour afficher le titre d'une option en masquant le reste de l'​option : 
 +Cette possibilité est utile par exemple pour les menus comportant des macros très longues qu'​il ​n'est 
 +pas utile de montrer. Pour cela vous placez au début du texte de l'​option les modificateurs : $start_title et $end_title  
 +encadrant ​le titre de l'​optionpuis à la suite le reste du texte devant être masqué. 
 +Exemple : 
 +$start_titleNumérisation et OCR avec Xsane et tesseract$end_title très très longue macro à masquer........ 
 +  * Le modificateur # indique que seul ce qui le suit doit être inséré : 
 +Ce modificateur permet de n'​insérer que la dernière option d'un menu cascadé, sans les items précédents liés à la hiérarchie du menu. 
 + 
 +  * Le modificateur $NoInsert pour empêcher l'​insertion de texte lors de l'​exécution d'une option de menu : 
 +Ce modificateur : $NoInsert fait en sorte qu'​aucun texte ne sera inséré lors du choix de cette option. 
 +Cela est utile par exemple pour des options ne devant pas insérér de texte mais juste exxécuter une macro. 
 +Exemple : 
 +$start_title Appel Google avec une sélection de texte $end_title $noInsert%%{{\%% 
 +%%{{:: VAR_SET(selection,​{{GET_SELECTION}})}}\%% 
 +%%{{:: exe_process ( , C:/Program Files/​Mozilla Firefox/​firefox,​ http://​www.google.fr/​search?​q={{VAR=selection}}&​ie=utf-8&​oe=utf-8&​aq=t&​rls=org.mozilla:​fr:​official&​client=firefox-a )}}}}%% 
 + 
 +  * Insérer une image dans le texte d'une option : 
 +Cliquez sur l'​icône en forme de fleur : {{:​dr_tux:​drtuxassitmenucontextaddimage.png?​nolink&​|}} et, à l'aide du sélecteur de fichierschoisissez l'​image 
 +à insérerCelle-ci se placera à l'​emplacement du curseur texte. Il est à noter que l'​image sera 
 +recopiée dans le répertoire suivant : ImagesFoldersitué lui-même dans le même  
 +répertoire de votre Glossaire. 
 + 
 +  * Placer une référence à une autre liste, dans le texte : 
 +Cliquez sur l'​icône d'​insertion de liste {{:​dr_tux:​createlist_item.png?​nolink&​|}} , ce qui fera apparaître le menu déroulant suivant : 
 + 
 +{{ :​dr_tux:​drtuxmenucontextinsertref.png?​nolink&​ |}} 
 + 
 + 
 +La première option : « Insérer au curseur une référence à une liste déroulante existante » 
 +vous présentera la liste de toutes les listes d'​insertion comme ci-dessous : 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextchoixref.png?​nolink&​ |}} 
 + 
 +il suffit alors de cliquer sur celle dont on veut que la référence 
 +soit indiquée dans le texte. 
 + 
 +La deuxième option :  « Insérer au curseur une nouvelle liste déroulante à créer » 
 +vous proposera, à partir du texte sélectionné auparavant,  
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextreftocreate.png?​nolink&​ |}} 
 + 
 +de saisir le libellé ou intitulé d'une nouvelle liste à créer. 
 +  * Appel d'un assistant de DrTux et insertions de formules préétablies:​ 
 +Il  ​est possible de créer des options qui activent un assistant d'aide à la saisie, 
 +pour cela le texte de l'​option doit être entre %%{{  ouvrants ​ et }}%% fermants. 
 +%%{{ActesClassants}}%% ​  cet exemple est pour l'​assistant d'aide à la saisie des actes classants 
 + 
 +les assistants possibles pour l'​instant sont : 
 + 
 +  * %%{{ActesClassants}}%% Pour l'​assistant d'aide à la saisie des actes classants 
 +  * %%{{CIM10Urg}}%% ​ Pour l'​assistant d'aide à la saisie des codes CIM 10 
 +  * %%{{CCAM_View}}%% Pour l'​assistant d'aide à la saisie des codes CCAM 
 + 
 +les formules préétablies sont : 
 + 
 +  * %%{{PlacerPathologies}}%% Pour insérer la liste des antécédents 
 +  * %%{{TraitementCourant}}%% Pour insérer la liste des prescriptions du traitement courant 
 +  * %%{{TraitementHabituel}}%% Pour insérer la liste des prescriptions du traitement habituel 
 +  * %%{{InsérerOrdo}}%% Pour insérer la liste des prescriptions de l'​ordonnance structurée en cours d'​affichage 
 +  * %%{{HeureCourante}}%% ​ Pour insérer l'​heure courante 
 +  * %%{{DateCourante}}%% Pour insérer la date courante 
 +  * %%{{DT=expression}}%% Pour insérer la date et l'​heure courantes. ​ expression ​  est une chaîne de caractères 
 +  * avec la syntaxe suivante : (format des dates). 
 + 
 +Format des dates : 
 + 
 +^ Expression ​  ^ Résultat ​  ^  
 +| d     | le jour sans placer ​les zéros ​(1-31       | 
 +| dd    | le jour en plaçant les zéros ​(01-31       | 
 +| ddd   | le jour en mode abrégé (e.g. 'Lun'..'​Sam'​) ​ 
 +| dddd  | le jour en mode long (e.g. '​Lundi'​..'​Mardi'​). | 
 +| M     | le mois sans placer ​les zéros (1-12       | 
 +| MM    | le mois en plaçant les zéros (01-12) ​  | 
 +| MMM   | le mois en mode abrégé (e.g. '​Jan'​..'​Déc'​). | 
 +| MMMM  | le mois en mode long (e.g. '​Janvier'​..'​Décembre'​). | 
 +| yy    | l'​année avec deux chiffres (00-99) | 
 +| yyyy  | l'​année avec quatre chiffres (1752-8000) | 
 +| h     | l'​heure sans tenir compte des zéros (0..23 ou 1..12 si AM/PM affiché) | 
 +| hh    | l'​heure en tenant compte des zéros (00..23 ou 01..12 si AM/PM affiché) | 
 +| m     | Les minutes sans tenir compte des zéros (0..59) | 
 +| mm    | Les minutes en tenant compte des zéros (00..59) | 
 +| s     | Les secondes sans tenir compte des zéros (0..59) | 
 +| ss    | Les secondes en tenant compte des zéros (00..59) | 
 +| z     | Les milli-secondes sans tenir compte des zéros (0..999) | 
 +| zzz   | Les milli-secondes en tenant compte des zéros (000..999) | 
 +| AP    | utilise l'​affichage AM/PM. AP devra être remplacé soit par "​AM"​ soit par "​PM"​ | 
 +| ap    | utilise l'​affichage am/pm. AP devra être remplacé soit par "​am"​ soit par "​pm"​ | 
 + 
 +Tous les autres caractères sont ignorés. 
 +Si vous voulez afficher le caractère h placez le symbole | 
 + ​Exemples d'​expressions possibles 
 + ​(suppose que la Date est le 20 Juillet 1969): 
 + 
 +^ Expression ​  ^ Résultat ​  ^  
 +| dd.MM.yyyy ​    | 20.07.1969 ​      | 
 +| ddd MMMM d yy  | Sam Juillet 20 69  | 
 + 
 +=== Installer une liste d'​options permanente dans le menu déroulant === 
 +== Accès par le gestionnaire de menus == 
 +Chaque rubrique peut avoir un menu déroulant ​ne dépendant ​pas du contexte textuel ​de l'​éditeur de texte.  
 + 
 +L'​option : Placer ce menu...comme menu fixe d'une rubrique 
 + 
 +Permet d'​attribuer la liste déroulante au-dessus de laquelle la souris se trouvecomme menu déroulant fixe d'une rubrique à choisir dans la liste d'​options présentée par le sous menu. 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextsubmenuliste.png?​nolink&​ |}} 
 + 
 + 
 +== Accès en éditant les fichiers Manager.ini et drtux.ini == 
 + 
 +Dans les fichiers : 
 + 
 +    MedinTux/​drtux/​bin/​DrTux.ini ​                        
 +et  
 +    MedinTux/​Manager/​bin/​Manager.ini 
 + 
 +vous  trouverez l'​entrée ou section suivante : [MenuContextuel] 
 +    suivie de diverses mentions ou options. 
 + 
 +La règle des menus permanents ou fixes est la suivante : pour toute rubrique '​RubriqueXXX'​ il peut exister dans la section [MenuContextuel] une entrée du nom de la rubriquesuivi du signe égallui-même suivi de la liste permanente correspondant à cette rubriqueUne entrée spéciale ListImages concerne le menus dédiés aux images. 
 + 
 +        [MenuContextuel] 
 +        Observation ​ = Date SU 
 +        Prescription ​ = pendant 
 +        Documents = Gestion des documents 
 +        Identification = Gestion des documents 
 +        ListImages = Gestion des images 
 +          
 +  ​la mention : Observation =  est suivie de la liste d'​options à installer comme options permanentes du menu de la rubrique : ObservationDans l'exemple ​ci-dessusles options de la liste    Date SU   ​seront rajoutées au menu contextuel. 
 + 
 +  * la mention : Prescription =  ​est suivie de la liste d'​options à installer comme options permanentes du menu  de la rubrique : PrescriptionDans l'​exemple ci-dessus, les options de la liste   ​pendant ​  ​seront rajoutées au menu contextuel 
 + 
 +  * la mention : Documents =  est suivie ​de la liste d'​options à installer comme options permanentes du menu  ​de la rubrique : Documents. Dans l'​exemple ci-dessus, les options de la liste   ​Gestion des documents ​  ​seront rajoutées au menu contextuel.  
 + 
 +  * la mention : ListImages =  est suivie de la liste d'​options à installer comme options lors d'un clic droit sur une imagequelle que soit la rubrique. Dans l'exemple ci-dessus, les options de la liste   ​Gestion ​des Images seront rajoutées au menu contextuel.  
 + 
 +== EXEMPLES == 
 +Option de liste déroulante appelant le numérisateur d'​images à placer par exemple dans toutes ​les listes permanentes. 
 + 
 +  * Numériser une image.html dont le contenu est %% {{:: exe_process (WaitEnd ​/​usr/​bin/​kooka) }}%% 
 +  * Liste déroulante lors d'un clic droit sur une image telle que appelée par la mention : ListImages = Gestion des images 
 + 
 +Cette liste contient deux options qui permettent d'​enregistrer la dernière image visualisée sous le curseur texte et de l'​envoyer sur un visualisateur ou éditeur d'​images : 
 +  * Editer l'​image avec kuickshow.html (visualisateur) dont le contenu est %%{{SAVE LAST IMAGE NAME = ../../tmp/ }}\%% 
 +  * %% {{:: exe_process (noWaitEnd ​/​usr/​bin/​kuickshow ,$ToAbsPath ../​../​tmp/​{{GET LAST IMAGE NAME}}) }}%% 
 +  * Editer ​l'image avec The Gimp.html (éditeur) dont le contenu est %%{SAVE LAST IMAGE NAME =../​../​tmp/​}}\%% 
 +%%        {{:: exe_process (noWaitEnd , /​usr/​bin/​gimp ,$ToAbsPath ../​../​tmp/​{{GET LAST IMAGE NAME}}) }}%% 
 +  * Notez l'​instruction d'​attente ​de %%::​exe_process%% 
 +si noWaitEnd qui signifie 'ne pas attendre ​la fin du plugin' ​et revient tout de suite dans MedinTux. 
 +si WaitEnd qui signifie ' attendre la fin du plugin'​ avant de revenir dans MedinTux. 
 + 
 +  * Notez l'​instruction de formatage du path de ::​exe_process $ToAbsPath considère l'​argument ​qui suit comme un chemin ​de fichier relatif et le transforme en chemin absolu. 
 + 
 +Le gestionnaire de listes déroulantes positionné sur la liste déroulante ​'Gestion des images'​ 
 +{{ :​dr_tux:​gestlistegestionimage-00.png?​nolink&​800 |}} 
 +=== Installer un plugin dans une option du menu déroulant === 
 +Un plugin ​est un programme pouvant être appelé à partir du menu contextuel des rubriques,​ 
 +Observation et Prescription de MedinTux.  
 +Ce programme reçoit en entrée les éléments du contexte actuel de MedinTux et, en retour, il  
 +fournit un texte s'​insérant à l'emplacement du curseur textePar exemple, on peut imaginer 
 +un plugin présentant ​une image anatomiquesur laquelle un clic souris permettrait de retourner 
 +un texte affecté à une zone de l'​image. 
 + 
 +Il faut donc trois conditions : 
 + 
 +1) Que le plugin existe et réponde aux conditions d'​appel fixées par MedinTux 
 + 
 +Le plugin reçoit sur sa ligne d'​arguments plusieurs paramètres décrits ci-après:​ 
 +  * argv[0]; ​   // chemin et nom du plugin lui-même 
 +  * argv[1]; ​   // chemin d'un éventuel fichier ini ou "​****"​ si absent 
 +  * argv[2]; ​   // chemin et nom du programme appelant (parent) 
 +  * argv[3]; ​   // chemin et nom du fichier où le résultat doit être retourné 
 +  * argv[4]; ​   // GUID identificateur unique du dossier en cours 
 +  * argv[5]; ​   // clef primaire de l'​observation en cours 
 +  * argv[6]; ​   // clef primaire du terrain en cours 
 +  * argv[7]; ​   // clef primaire de la prescription en cours 
 +  * argv[8]; ​   // réservé pour un usage futur 
 +  * argv[9]; ​   // réservé pour un usage futur 
 +  * argv[10]; ​  // réservé pour un usage futur 
 +  * argv[11]; ​  // réservé pour un usage futur 
 +  * argv[12]; ​  // nb (Nombre des paramètres suivants) 
 +  * argv[13 + 0];        // 1er paramètre ​  (12 + 1)     
 +  * . 
 +  * . 
 +  * argv[13 + nb -1 ];   // nème paramètre ​ (12 + nb)    
 + 
 +2) Que le plugin retourne un texte récupérable par MedinTux. 
 +Le plugin doit écrire ​son résultat dans le fichier indiqué par : 
 +  * argv[3]; ​   // chemin et nom du fichier où le résultat doit être retourné 
 + 
 +3) Qu'il existe dans le système de menu déroulant un appel au plugin. 
 +pour cela placer une option de menu de type item texte avec un texte 
 +dont la syntaxe particulière permet l'​appel du plugin. 
 + 
 +l'exemple ci-dessous permet de comprendre la syntaxe à employer pour 
 +actionner le plugin. Cet exemple ci permet d'​appeler le programme ​ de lecture 
 +des informations de la carte Sesam-Vitale (pour des raisons didactiques 
 +certaines portions de l'​exemple ont été mises en couleur et gras) :  
 +===  La Gestion des librairies de macro === 
 +Il est désormais possible de se constituer des bibliothèques de macro, et modèles. avec tout ce qu'il faut pour qu'​elles fonctionnent. Puis à l'aide du gestionnaire de liste en un clic tous les éléments concernant par exemple un testun score, un modèle avec tous les menus correspondants à ce modèle, seront intégrés à votre menu. 
 + 
 +Pour accéder au gestionnaire de liste activez ​l'option de menu comme indiqué ci-dessous. 
 +{{ :​dr_tux:​drtuxassitmenumenuacces.png?​nolink&​ |}} 
 + 
 +Cela ouvre le dialogue de gestion des listes déroulantes,​ 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextgene.png?​nolink&​ |}} 
 + 
 +dans lequel nous voyons un bouton {{:​dr_tux:​drtuxassitmenucontextlibbutton.png?​nolink&​|}} ​ qui lorsqu'​il est cliqué affiche une liste de choix, 
 + 
 +{{ :​dr_tux:​drtuxassitmenucontextlibliste.png?​nolink&​ |}} 
 + 
 +qui présente les composants disponibles,​ et vous permet de choisir un composant à installer en double cliquant dessus. 
 +Cette bibliothèque de macro. est par défaut positionnée dans le répertoire : Programmes/​Librairie de menus.Il est possible de modifier cet emplacement à l'aide du bouton : {{:​dr_tux:​macro-bibliotheque-localisationbutton.png?​nolink&​|}} . 
 +===  Un tutoriel vaut mieux qu'un long discours. === 
 +[[dr_tux:​tutoriel document type|dr_tux:​tutoriel document type]]
dr_tux/assistant_de_gestion_des_menus_contextuels.1331536825.txt.gz · Dernière modification: 2012/03/12 07:20 par 91.224.161.250