Hi Tom,
> Couldn't you package this as an Code-Snippet. Using Paolos
> Snippet-Creator found here this would take less than a minute ;-)
>
> http://www.paolo-mantovani.org/
if my plans work out this will be a good idea. I already searched the
snippeds page for examples...
Greetings, Tobias
>>------------------------------------------------------------------------
>>
>>REM ***** BASIC *****
>>
>>Sub Main
>> REM *** Adds a item to the File Menu only transient. Means
>> REM *** that this menu item only exists for and during the
>> REM *** lifetime of the current frame.
>>
>> REM *** Initialize strings
>> sMenuBar = "private:resource/menubar/menubar"
>> sMyPopupMenuCmdId = ".uno:PickList"
>> sMyCommand = "macro:///Standard.Module1.Test()"
>>
>> REM *** Retrieve the current frame of my model
>> oModel = ThisComponent
>>
>> if not isNull( oModel ) then
>> REM *** Retrieve frame from current controller
>> oFrame = oModel.getCurrentController().getFrame()
>>
>> REM *** Retrieve the layout manager of my current frame
>> oLayoutManager = oFrame.LayoutManager()
>>
>> REM *** Retrieve the menu bar from the layout manager
>> oMenuBar = oLayoutManager.getElement( sMenuBar )
>>
>> REM *** Retrieve writable configuration settings from menu bar
>> oMenuBarSettings = oMenuBar.getSettings( true )
>>
>> REM *** Make our changes only transient. An Add-on should
>> REM *** never change configuration persistently as it can
>> REM *** be deinstalled by a user without any chance to
>> REM *** undo its configuration changes!
>> REM *** Please look for bug #i46194 which prevents using
>> REM *** oMenuBar.Persistent = false!!
>> oMenuBar.Persistent = false
>>
>> REM *** Look for the "File" popup menu and add our command
>> REM *** We must look if we haven't added our command already!
>> fileMenuIndex = FindPopupMenu( sMyPopupMenuCmdId, oMenuBarSettings )
>> if fileMenuIndex >= 0 then
>> oPopupMenuItem() = oMenuBarSettings.getByIndex(fileMenuIndex)
>> oPopupMenu = GetProperty( "ItemDescriptorContainer", oPopupMenuItem() )
>> if not isNull( oPopupMenu ) then
>> if FindCommand( sMyCommand, oPopupMenu ) = -1 then
>> oMenuItem = CreateMenuItem( sMyCommand, "Standard.Module1.Test" )
>> nCount = oPopupMenu.getCount()
>> oPopupMenu.insertByIndex( nCount, oMenuItem )
>> endif
>> endif
>> else
>> msgbox "No file menu found!"
>> endif
>>
>> oMenuBar.setSettings( oMenuBarSettings )
>> endif
>>End Sub
>>
>>Function FindCommand( Command as String, oPopupMenu as Object ) as Integer
>> nCount = oPopupMenu.getCount()-1
>> for i = 0 to nCount
>> oMenuItem() = oPopupMenu.getByIndex(i)
>> nPropertyCount = ubound(oMenuItem())
>> for j = 0 to nPropertyCount
>> if oMenuItem(j).Name = "CommandURL" then
>> if oMenuItem(j).Value = Command then
>> FindCommand = j
>> exit function
>> endif
>> endif
>> next j
>> next i
>>
>> FindCommand = -1
>>End Function
>>
>>Function FindPopupMenu( Command as String, oMenuBarSettings as Object ) as
>>Integer
>> for i = 0 to oMenuBarSettings.getCount()-1
>> oPopupMenu() = oMenuBarSettings.getByIndex(i)
>> nPopupMenuCount = ubound(oPopupMenu())
>> for j = 0 to nPopupMenuCount
>> if oPopupMenu(j).Name = "CommandURL" then
>> if oPopupMenu(j).Value = Command then
>> FindPopupMenu = j
>> exit function
>> endif
>> endif
>> next j
>> next i
>>
>> FindPopupMenu = -1
>>End Function
>>
>>Function GetProperty( PropertyName as String, properties() as Variant ) as
>>Variant
>> for j = lbound( properties() ) to ubound( properties() )
>> oPropertyValue = properties(j)
>> if oPropertyValue.Name = PropertyName then
>> GetProperty = oPropertyValue.Value
>> exit function
>> endif
>> next j
>>
>> GetProperty = null
>>end function
>>
>>Function CreateMenuItem( Command as String, Label as String ) as Variant
>> Dim aMenuItem(2) as new com.sun.star.beans.PropertyValue
>>
>> aMenuItem(0).Name = "CommandURL"
>> aMenuItem(0).Value = Command
>> aMenuItem(1).Name = "Label"
>> aMenuItem(1).Value = Label
>> aMenuItem(2).Name = "Type"
>> aMenuItem(2).Value = 0
>>
>> CreateMenuItem = aMenuItem()
>>End Function
>>
>>Sub Test
>> MsgBox "Test"
>>End Sub
>>
>>
>>------------------------------------------------------------------------
>>
>>REM ***** BASIC *****
>>
>>Sub Main
>> REM *** Creates a top-level popup menu on the Writer menu bar
>> persistently.
>> REM *** It checks if its popup menu has already been added to the menu
>> bar
>> REM *** and does nothing.
>> REM *** The popup menu contains one menu item with a
>>
>> REM *** Initialize strings
>> sMenuBar = "private:resource/menubar/menubar"
>> sMyPopupMenuCmdId = "vnd.openoffice.org:MyMenu"
>>
>> REM *** Retrieve the module configuration manager from central module
>> configuration manager supplier
>> oModuleCfgMgrSupplier =
>> createUnoService("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
>>
>> REM *** Retrieve the module configuration manager with module identifier
>> REM *** See com.sun.star.frame.ModuleManager for more information
>> oModuleCfgMgr = oModuleCfgMgrSupplier.getUIConfigurationManager(
>> "com.sun.star.text.TextDocument" )
>> oMenuBarSettings = oModuleCfgMgr.getSettings( sMenuBar, true )
>>
>>
>> REM *** Look for our top-level popup menu. Can be identified by the
>> CommandURL property.
>> bHasAlreadyPopupMenu = false
>> nCount = oMenuBarSettings.getCount()
>> for i = 0 to nCount-1
>> oPopupMenu() = oMenuBarSettings.getByIndex( i )
>> nPopupMenuCount = ubound(oPopupMenu())
>> for j = 0 to nPopupMenuCount
>> if oPopupMenu(j).Name = "CommandURL" then
>> if oPopupMenu(j).Value = sMyPopupMenuCmdId then
>> bHasAlreadyPopupMenu = true
>> end if
>> endif
>> next j
>> next i
>>
>> MsgBox bHasAlreadyPopupMenu
>>
>> if not bHasAlreadyPopupMenu then
>> sString = "My Macro's"
>> oPopupMenu = CreatePopupMenu( sMyPopupMenuCmdId, sString,
>> oMenuBarSettings )
>> oPopupMenuContainer = oPopupMenu(3).Value
>> oMenuItem = CreateMenuItem( "macro:///Standard.Module1.Test()",
>> "Standard.Module1.Test" )
>> oPopupMenuContainer.insertByIndex( 0, oMenuItem )
>> oMenuBarSettings.insertByIndex( nCount, oPopupMenu )
>> oModuleCfgMgr.replaceSettings( sMenuBar, oMenuBarSettings )
>> end if
>>End Sub
>>
>>Function CreatePopupMenu( CommandId, Label, Factory ) as Variant
>> Dim aPopupMenu(3) as new com.sun.star.beans.PropertyValue
>>
>> aPopupMenu(0).Name = "CommandURL"
>> aPopupMenu(0).Value = CommandId
>> aPopupMenu(1).Name = "Label"
>> aPopupMenu(1).Value = Label
>> aPopupMenu(2).Name = "Type"
>> aPopupMenu(2).Value = 0
>> aPopupMenu(3).Name = "ItemDescriptorContainer"
>> aPopupMenu(3).Value = Factory.createInstanceWithContext(
>> GetDefaultContext() )
>>
>> CreatePopupMenu = aPopupMenu()
>>End Function
>>
>>Sub ResetMenuBar
>> sMenuBar = "private:resource/menubar/menubar"
>>
>> REM *** Retrieve the module configuration manager from central module
>> configuration manager supplier
>> oModuleCfgMgrSupplier =
>> createUnoService("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
>>
>> REM *** Retrieve the module configuration manager with module identifier
>> REM *** See com.sun.star.frame.ModuleManager for more information
>> oModuleCfgMgr = oModuleCfgMgrSupplier.getUIConfigurationManager(
>> "com.sun.star.text.TextDocument" )
>>
>> REM *** Reset default settings
>> oMenuBarSettings = oModuleCfgMgr.getDefaultSettings( sMenuBar )
>> oModuleCfgMgr.replaceSettings( oMenuBarSettings )
>>End Sub
>>
>>Function CreateMenuItem( Command as String, Label as String ) as Variant
>> Dim aMenuItem(2) as new com.sun.star.beans.PropertyValue
>>
>> aMenuItem(0).Name = "CommandURL"
>> aMenuItem(0).Value = Command
>> aMenuItem(1).Name = "Label"
>> aMenuItem(1).Value = Label
>> aMenuItem(2).Name = "Type"
>> aMenuItem(2).Value = 0
>>
>> CreateMenuItem = aMenuItem()
>>End Function
>>
>>
>>Sub Test
>> MsgBox "Test"
>>End Sub
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]