Accéder au contenu.
Menu Sympa

progliste - Re: [progliste] NGPad, les méthodes wx.MenuBar:setMenuLabel et wx.Menu:setLabel

progliste AT framalistes.org

Objet : Liste sur la programmation tous languages, orienté déficients visuels

Archives de la liste

Re: [progliste] NGPad, les méthodes wx.MenuBar:setMenuLabel et wx.Menu:setLabel


Chronologique Discussions  
  • From: Abdel <abdelkrim.bensaid AT free.fr>
  • To: progliste AT framalistes.org
  • Subject: Re: [progliste] NGPad, les méthodes wx.MenuBar:setMenuLabel et wx.Menu:setLabel
  • Date: Sat, 13 Apr 2024 00:29:45 +0200
  • Authentication-results: rod3.framasoft.org; dkim=pass header.d=free.fr header.s=smtp-20201208 header.b="XBT/evVv"; dmarc=pass (policy=none) header.from=free.fr; spf=pass (rod3.framasoft.org: domain of abdelkrim.bensaid AT free.fr designates 212.27.42.6 as permitted sender) smtp.mailfrom=abdelkrim.bensaid AT free.fr

Salut Pierre-Louis,

Pas de souci mon ami.

Il existe, dans le code source de NVDA, pas mal d'exemples d'utilisation des listes de cases à cocher.

Je t'ai créé un petit module global pour scratchpad, que tu devras coller dans le dossier "globalPlugins" du répertoire "scratchpad" figurant dans ton répertoire utilisateur de NVDA.


Il faudra bien entendu que dans la catégorie avancée des paramètres de ton NVDA, la case à cocher relative à l'utilisation du bloc-notes du développeur soit bien cochée.

Voici le lien de téléchargement de ce module :

https://www.dropbox.com/scl/fi/5f04dvse3h0k1y60f6dzs/checkListBox.zip?rlkey=dk16qqfgbvfsp9kjqc52nn3hx&dl=1

Il devrait t'ajouter une catégorie intitulée "Liste de cases à cocher pour mon ami Pierre-Louis" dans le volet des paramètres de NVDA, qui devrait te permettre de réaliser des choix multiples.

Après avoir fait tes choix, ce n'est que la que tu pourras valider sur le bouton "appliquer", puis "OK", pour enregistrer tes modifications.

Bien entendu, l'exemple que je te donne montre juste comment tu dois t'y prendre, après, c'est à toi de définir quelles sont les réels choix que tu souhaites proposer.

Cordialement,
Abdel.

Le 12/04/2024 à 17:57, "Pierre-Louis R@RPTools" a écrit :
Bonjour Abdel,

Puisque tu es dans le bain WX, j'aimerais te demander si tu sais comment programmer un menu  d'options à cocher qui ne se referme pas lorsqu'on a coché ou décoché une option ?
Ce serait très pratique lorsque le menu comporte beaucoup d'éléments à cocher.

J'ai cherché mais en vain pour mon extension pour NVDA.

Bien cordialement, merci,

Pierre-Louis
Le 12-04-24 à 17:05, Abdel a écrit :

Salut les scripteurs,

Il existe certaines méthodes et propriétés, propres à wx, qui sont très bien documentées dans la documentation officielle.

Elles ne sont cependant pas documentées dans la doc de NGPad, mais peu-importe...

Parmi ces méthodes et propriétés, je citerait par exemple une méthode propre à la classe wx.MenuBar, il s'agit de setMenuLabel.

Elle permet, comme son nom l'indique, de redéfinir le libellé d'un menu présent dans la barre de menus.

Son premier paramètre est l'objet self, qui symbolise la barre de menu courante, que l'on peut très bien rendre implicite en utilisant le symbole ":".

Son second paramètre est la position du menu en question, qui est représentée par un index qui commence à 0 pour le menu "Fichier", 1 pour "Édition", etc.

Le troisième paramètre est le nouveau libellé que l'on souhaite attribuer à notre menu.

Faisons un petit test dans la console LUA de NGPad et saisissons ce qui suit :


app.currentDocument.menus:setMenuLabel(0, "Nou&veau libellé pour le menu Fichier");



Maintenant, consultons la barre de menus et positionnons-nous sur le premier menu, on entend :

Nouveau libellé pour le menu Fichier sous-menu Alt + V



Pour les items de menu, nous disposons de la méthode "setLabel", disponible aussi bien dans la classe "wx.Menu" que dans la classe "wx.MenuItem".

Dans l'exemple suivant, nous allons définir un nouveau libellé pour un item de menu, vous verrez, il y a 2 façons de le faire, une plutôt contraignante et l'autre, beaucoup plus simple.

On va commencer par la contraignante.

Nous allons définir un nouveau libellé pour l'item "Nouveau sous-menu" du menu "Fichier".

Pour commencer, nous devons mettre la main sur le menu fichier :

menuFichier = app.currentDocument.menus:getMenu(1);


Le paramètre permettant d'indiquer la position de la méthode "wx.MenuBar:getMenu" est différent de celui de "wx.MenuBar:setMenuLabel", les indices commençaient à 0, et là, ils commencent à 1.

Maintenant, pointons sur le premier item du menu fichier :

nouveau = menuFichier[1]; -- Là aussi, l'indice commence à 1.



Récupérons son "id" :

nouveauId = nouveau:getId();


Maintenant, nous allons pouvoir utiliser la méthode "setLabel" de la classe "wx.Menu").

Son premier paramètre est "self", que l'on peut définir comme implicite avec le symbole ":".

Le second paramètre est l'Id de l'item de menu dont on souhaite redéfinir le libellé, attention, ce n'est pas l'indice, mais l'identificateur qui est récupérable grâce à la méthode "getId" de la classe "wx.MenuItem").

Le troisième paramètre est le nouveau libellé que l'on souhaite attribuer.

Allons-y :

menuFichier:setLabel(nouveauId, "Nouveau libellé pour l'item de menu &Nouveau");



Consultons le menu "Fichier" est constatons les changements...

Bien sûr, il y a beaucoup plus simple :

nouveau.label = "Encore un nouveau libellé pour l'item de menu &Nouveau";


Ou encore :

nouveau:setLabel("Un troisième libellé pour l'item de menu &Nouveau");


Remarquez bien que dans le dernier exemple, on utilise le symbole ":".

C'est parce que la méthode "setLabel" de la classe "wx.MenuItem" utilise elle aussi comme premier paramètre, l'objet "self", que l'on peut définir comme implicite grâce aux ":".

Voilà donc pour ce tour d'horizon de ces petites méthodes qui pourraient vous être utiles dans le scripting de NGPad.

Cordialement,
Abdel.








Archives gérées par MHonArc 2.6.24.

Haut de le page