Accéder au contenu.
Menu Sympa

progliste - [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

[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: [progliste] NGPad, les méthodes wx.MenuBar:setMenuLabel et wx.Menu:setLabel
  • Date: Fri, 12 Apr 2024 17:05:41 +0200
  • Authentication-results: rod3.framasoft.org; dkim=pass header.d=free.fr header.s=smtp-20201208 header.b=XJuX1fV0; dmarc=pass (policy=none) header.from=free.fr; spf=pass (rod3.framasoft.org: domain of abdelkrim.bensaid AT free.fr designates 2a01:e0c:1:1599::15 as permitted sender) smtp.mailfrom=abdelkrim.bensaid AT free.fr

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