[Basic] Barre de menus : ajout, suppression

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur: Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.

[Basic] Barre de menus : ajout, suppression

Messagepar Alain de La Chaume » 08 Juin 2009 18:23

Bonjour à tous.
Comme j'ai un peu galéré pour trouver comment ajouter/supprimer un menu de la barre du même nom, je mets à dispo ce que j'ai enfin pu faire, me disant que ça pourrait peut-être intéresser quelqu'un.
Pièces jointes
menu_Creer_V4.odt
(19.88 Kio) Téléchargé 1053 fois
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
 
Message(s) : 1507
Inscrit le : 28 Sep 2008 14:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [Basic] Barre de menus : ajout, suppression

Messagepar jjk » 08 Juin 2009 23:00

Et comment que ça va nous intéresser !!
Merci en tout cas.
OpenOffice 3.1.1 sous XP-SP2 et LibreOffice 3.5.0 sous Win 7
jjk
HédOOniste
HédOOniste
 
Message(s) : 1696
Inscrit le : 27 Oct 2008 16:30

Re: [Basic] Barre de menus : ajout, suppression

Messagepar A_math » 09 Juin 2009 13:19

Merci,

Je ne sais pas quand ni pourquoi faire exactement mais je me doute que cela me servira un jour. :super:
Alain

3.0.1 portable sous XP SP3 (boulot) et 3.0.0 sous Mandriva 2009.0
Avatar de l’utilisateur
A_math
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 82
Inscrit le : 13 Jan 2008 01:38

Re: [Basic] Barre de menus : ajout, suppression

Messagepar ThierryF » 22 Juin 2011 14:24

Bonjour,

J'ai lancé ton fichier --> menu_Creer_V4.odt
et mes menus on disparus.

Il semblerait donc que la barre initiale soit affectée.
Après une vérif supplémentaire, il faut que toutes les fenêtres OOo soit fermées.
Dans mon cas, j'avais laissé Calc ouvert et en rouvrant Writer la barre de menu n'était pas réinitialisée.

Tout cela pour te remercier pour ce code.
:super: grand merci Alain
et de plus tu habites dans un lieu que j'affectionne énormément.
Thierry
Dom : OOo 3.3 & LibO 3.4.1 sous Win 7
Bur : OOo 3.3 sous Win XP
ThierryF
Membre lOOyal
Membre lOOyal
 
Message(s) : 27
Inscrit le : 09 Juin 2011 14:36

Re: [Basic] Barre de menus : ajout, suppression

Messagepar Alain de La Chaume » 22 Juin 2011 22:50

Bonjour.. soir,

Ouf ! J'ai cru qu'il s'agissait d'une réclamation... :P
Merci donc à vous aussi (coucou Léa) d'encourager les petits participants libres
à un projet libre... ... et gratuit en plus. :wink:

Bien cordialement, Alain
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
 
Message(s) : 1507
Inscrit le : 28 Sep 2008 14:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [Basic] Barre de menus : ajout, suppression

Messagepar Dude » 13 Sep 2011 21:07

Autre méthode pour la création d'un menu à plusieurs niveaux :
Image
MenuDynamique.odt
(13.4 Kio) Téléchargé 537 fois
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 18521
Inscrit le : 03 Mars 2006 09:45
Localisation : 127.0.0.1

Re: [Basic] Barre de menus : ajout, suppression

Messagepar ThierryT » 28 Déc 2015 19:48

Bonsoir,

Pour répondre au besoin de remettre tous les menus dans les fichiers ouverts, je vous joins le code suivant où il faut appeler la fonction DocumentsOuverts qui scrute l'ensemble des documents ouverts dans l'application LO ou AOO:

Code : Tout sélectionner   AgrandirRéduire
'---------------------------------------------------------------------
sub menusRestaurer(nomModule as string)
    dim sMenuBar as string
    dim oConfMgr, oConfModule, oDefSet

   sMenuBar = "private:resource/menubar/menubar"
       
   oConfMgr = createUnoService(_
             "com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
   oConfModule = oConfMgr.getUIConfigurationManager(nomModule)
   oDefSet = oConfModule.getDefaultSettings(sMenuBar)
   oConfModule.replaceSettings(sMenuBar, oDefSet)
   end sub
'---------------------------------------------------------------------

Sub DocumentsOuverts()
   'pensez à sauvegarder vos documents
   dim lesDocs, laCollection, leDoc

   on error resume next
   lesDocs = StarDesktop.Components
   laCollection = lesDocs.createEnumeration
   while laCollection.hasMoreElements
      leDoc = laCollection.nextElement
      ' Reconnaître les types de documents ouverts
      ' -> restaurer les menus dans les applications de LO ou AOO
      menusRestaurer (leDoc.Identifier)
   wend
End Sub
LibreOffice 5.2.0.3 x64 / AOO 4.1.2 sous Windows 8.1 (64 bits)
ThierryT
Membre hOOnoraire
Membre hOOnoraire
 
Message(s) : 153
Inscrit le : 10 Nov 2012 19:05

Re: [Basic] Barre de menus : ajout, suppression

Messagepar ThierryT » 18 Avr 2016 19:10

La version que propose Alain de Chaume (Menu_Créer_V4) crée bien les menus souhaités MAIS pour l'ensemble des fichiers ouverts dans LO pour le module concerné (ici Writer).

:alerte: Une fois le fichier Menu_Créer_V4 fermé, les menus créées dans les autres fichiers ouverts RESTENT affichées et leurs utilisations génèrent une erreur d'exception. Normal, les fichiers ouverts ne possèdent pas les macros appelées par les menus car elles sont seulement dans le fichier Menu_Créer_V4. :alerte:

Pour affecter seulement l'ajout au fichier en cours, il suffit de remplacer dans la routine acMenuCreer, le code
Code : Tout sélectionner   AgrandirRéduire
   oFrame.layoutManager.getElement(_
         "private:resource/menubar/menubar").setSettings(oSettings)


par
Code : Tout sélectionner   AgrandirRéduire
   ' Création et implantation réel dans la barre de menu du fichier SEUL!!!
   oModelUIManager = oFrame.getController().getModel().getUIConfigurationManager()
   oModelUIManager.insertSettings("private:resource/menubar/menubar", oSettings)
LibreOffice 5.2.0.3 x64 / AOO 4.1.2 sous Windows 8.1 (64 bits)
ThierryT
Membre hOOnoraire
Membre hOOnoraire
 
Message(s) : 153
Inscrit le : 10 Nov 2012 19:05

Re: [Basic] Barre de menus : ajout, suppression

Messagepar Alain de La Chaume » 20 Avr 2016 10:20

Bonjour à tous...

... et merci à ThierryT pour son ajout afin que seul le fichier en cours soit impacté.
Pour ce qui est de son :alerte: commentaire en alerte rouge :alerte: :D
je tiens tout de même à préciser que les macros fournies le sont le plus souvent
dans des fichiers, par commodité, et que c'est aux éventuels utilisateurs de les placer
là où il convient de le faire. Dans ce cas : Mes macros et boîtes de dialogue ...
Voir la note de Papayes à ce propos : Importer une macro d'un fichier exemple ; lanceurs

Bien coOordialement, Alain.
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
 
Message(s) : 1507
Inscrit le : 28 Sep 2008 14:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [Basic] Barre de menus : ajout, suppression

Messagepar ThierryT » 21 Juin 2016 18:01

Bonjour,

Une suite sur les ajouts de menu et plus précisément maintenant la gestion de ceux-ci : menu disponible (non grisé) ou non disponible (grisé).

ATTENTION : cette gestion ne fonctionne que sous LibreOffice pas sous OpenOffice car la gestion des menus sous cette dernière est différente.

Fonctionnement :
Dans le fichier joint, nous avons un menu "Test" ajouté juste avant le menu "Aide".
Ce menu contient un "sous-Menu" de 4 "Items" dont le troisième contient aussi un "sous-Menu" de trois "Items". C'est ce troisième "Item" du sous-Menu (Test33) que nous souhaitons gérer ici.
L'appui sur le bouton "Activer l'intercepteur" permet de visualiser l'ensemble des événements de Menus appelées via le DispatchHelper.
Faire afficher le sous-Menus de l'Item "test3" et voyer la modification de l'Item Test33.
Si vous désactiver l'intercepteur, l'Item "Test33" gardera l'état précédent.
Pièces jointes
Menu utilisateur - Final.ods
Gestion validité Item Menu
(22.61 Kio) Téléchargé 21 fois
LibreOffice 5.2.0.3 x64 / AOO 4.1.2 sous Windows 8.1 (64 bits)
ThierryT
Membre hOOnoraire
Membre hOOnoraire
 
Message(s) : 153
Inscrit le : 10 Nov 2012 19:05


Retour vers Suprême de code

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité