Insertar nuevo menú en Calc.
En la propiedad CommandURL
es posible establecer tanto un comando UNO de LibreOffice, como un diccionario con los datos de una macro.
El nombre del menú es importante para cuando se quiera eliminar.
nombre_menu = 'zaz.my.menu'
menu = {
'Label': 'My menu',
'CommandURL': nombre_menu,
'Submenu': [
{
'Label': 'Open Macros Dialog...',
'CommandURL': 'MacroDialog',
},
{
'Label': '-',
},
{
'Label': 'My macro',
'CommandURL': {'library': 'test', 'name': 'hola'},
},
{
'Label': 'Execute macro...',
'CommandURL': 'RunMacro',
'ShortCut': 'Shift+Ctrl+Alt+E',
},
]
}
menus_calc = app.menus['calc']
menus_calc.insert(menu)
Eliminar un menú existente.
nombre_menu = 'zaz.my.menu'
menus_calc = app.menus['calc']
menus_calc.remove(nombre_menu)
Dentro del menú Herramientas (tools
), después de la opción Macros...
menu = app.menus['calc']['tools']
menu_nombre = 'zaz.my.menu'
menu_nuevo = {
'Label': 'My menu',
'CommandURL': menu_nombre,
'Submenu': [
{
'Label': 'Open Macros Dialog...',
'CommandURL': 'MacroDialog',
},
{
'Label': '-',
},
{
'Label': 'My macro',
'CommandURL': {'library': 'test', 'name': 'hello'},
},
{
'Label': 'Execute macro...',
'CommandURL': 'RunMacro',
'ShortCut': 'Shift+Ctrl+Alt+E',
},
]
}
if menu_nombre in menu:
menu.remove(menu_nombre)
else:
menu.insert(menu_nuevo, '.uno:MacrosMenu')
Para saber los nombres de cualquier menú.
menu = app.menus['calc']['tools']
menu.debug()
(0) .uno:SpellDialog
(1) .uno:SpellOnline
(2) .uno:ThesaurusDialog
(3) .uno:LanguageMenu
├─ (0) .uno:SetLanguageAllTextMenu
├─ (1) ----------
├─ (2) .uno:Hyphenate
├─ (3) .uno:ChineseConversion
├─ (4) .uno:HangulHanjaConversion
├─ (5) ----------
├─ (6) .uno:MoreDictionaries
(4) ----------
(5) .uno:AutoCorrectDlg
(6) .uno:AutoComplete
(7) .uno:ImageMapDialog
(8) ----------
(9) .uno:RedactDoc
(10) .uno:AutoRedactDoc
(11) ----------
(12) .uno:GoalSeekDialog
(13) .uno:SolverDialog
(14) .uno:AuditMenu
├─ (0) .uno:ShowPrecedents
├─ (1) .uno:ShowDependents
├─ (2) ----------
├─ (3) .uno:ClearArrows
├─ (4) .uno:ClearArrowPrecedents
├─ (5) .uno:ClearArrowDependents
├─ (6) ----------
├─ (7) .uno:ShowErrors
├─ (8) .uno:RefreshArrows
├─ (9) ----------
├─ (10) .uno:AuditingFillMode
├─ (11) .uno:AutoRefreshArrows
├─ (12) .uno:ShowInvalid
(15) .uno:ScenarioManager
(16) ----------
(17) .uno:ToolsFormsMenu
├─ (0) .uno:SwitchControlDesignMode
├─ (1) .uno:UseWizards
├─ (2) ----------
├─ (3) .uno:ControlProperties
├─ (4) .uno:FormProperties
├─ (5) ----------
├─ (6) .uno:ShowFmExplorer
├─ (7) .uno:TabDialog
├─ (8) .uno:AddField
├─ (9) ----------
├─ (10) .uno:OpenReadOnly
├─ (11) .uno:AutoControlFocus
(18) ----------
(19) .uno:ShareDocument
(20) .uno:Protect
(21) .uno:ToolProtectionDocument
(22) ----------
(23) .uno:MacrosMenu
├─ (0) .uno:MacroRecorder
├─ (1) .uno:RunMacro
├─ (2) .uno:BasicIDEAppear
├─ (3) .uno:ScriptOrganizer
├─ (4) ----------
├─ (5) .uno:MacroSignature
├─ (6) .uno:MacroOrganizer?TabId:short=1
├─ (7) ----------
├─ (8) .uno:OpenXMLFilterSettings
(24) .uno:DevelopmentToolsDockingWindow
(25) ----------
(26) service:com.sun.star.deployment.ui.PackageManagerDialog
(27) .uno:ConfigureDialog
(28) .uno:OptionsTreeDialog