On 05.01.2011 11:45, Fernand Vanrie wrote:
Hallo,
I can make disappear some Buttons from a Menubar in a document). But
After saving an reopening the doc, the buttons are "again" in place.
my code uses
oMenuBar.Persistent = true
In the ODK help i can find: If the property Persistent is *true* changes
on the structure of the user interface element are written back to
configuration source. When this property is changed, afterwards
XUIElementSettings::updateSettings must be called so the user interface
element tries to retrieve its settings from the new user interface
configuration manager. BUT wath mean this lines ?
There was a issue (46194) whois fixed ("false" wasn't working) , but now
i think "true" is not working any more
Hi Fernand,
You have to use the UI Configuration Manager from the document. Changing
the "Persistent" property to true (which is the default value) is only a
prerequisite. If you retrieve the UI element from the Layout Manager the
configuration source is normally the module and NOT the document.
Just look at the following example which copies the menu bar settings
from the module to a loaded document.
REM ***** BASIC *****
Sub Main
sMenuBarResUrl = "private:resource/menubar/menubar"
oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
REM *** Propterties for loadComponentFromUrl ***
Dim OpenProperties(3) as new com.sun.star.beans.PropertyValue
OpenProperties(0).Name = "Hidden"
OpenProperties(0).Value = True
OpenProperties(1).Name = "AsTemplate"
OpenProperties(1).Value = False
OpenProperties(2).Name = "MacroExecutionMode"
OpenProperties(2).Value =
com.sun.star.document.MacroExecMode.NEVER_EXECUTE
REM *** Load a document ***
sDocUrl = "file:///d:/document.odt"
oDoc = oDesktop.loadComponentFromUrl(sDocUrl, "_default", 0,
OpenProperties())
oModuleCfgMgrSupplier =
createUnoService("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
REM *** Retrieve the text module UI 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( sMenuBarResUrl, true )
REM *** Retrieve the document UI configuration manager
oDocUICfgMgr = oDoc.getUIConfigurationManager()
REM *** Insert/replace the menubar settings to the target document
REM *** with the module ui configuration manager settings.
if oDocUICfgMgr.hasSettings( sMenuBarResUrl ) then
oDocUICfgMgr.replaceSettings( sMenuBarResUrl, oMenuBarSettings )
else
oDocUICfgMgr.insertSettings( sMenuBarResUrl, oMenuBarSettings )
endif
REM *** Store the changes to the document
oDocUICfgMgr.store()
oDoc.store()
End Sub
Regards,
Carsten
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org
For additional commands, e-mail: dev-h...@api.openoffice.org