summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Voytenko <mav@openoffice.org>2011-01-06 14:57:12 +0100
committerMikhail Voytenko <mav@openoffice.org>2011-01-06 14:57:12 +0100
commit8ff51afa0dcd4e5e644e923131ee72435c80b57b (patch)
treed63f6b6e298485b5f29f60c7af25baca46f59375
parentfa1f3c352c6126b24ab5af87ea4ebea742c546c2 (diff)
parent794c821e4d48c34aa376cdc7b6ab2cb029d9574d (diff)
removetooltypes01: rebase to DEV300_m96
-rw-r--r--avmedia/prj/build.lst2
-rw-r--r--basic/inc/basic/modsizeexceeded.hxx (renamed from basic/inc/modsizeexceeded.hxx)0
-rw-r--r--basic/inc/basic/sbmod.hxx7
-rw-r--r--basic/inc/basic/sbobjmod.hxx15
-rw-r--r--basic/inc/basic/sbstar.hxx6
-rw-r--r--basic/inc/basic/sbxdef.hxx3
-rw-r--r--basic/inc/basic/sbxvar.hxx5
-rw-r--r--basic/inc/basic/svtmsg.hrc (renamed from basic/inc/svtmsg.hrc)0
-rw-r--r--basic/inc/basic/testtool.hrc (renamed from basic/inc/testtool.hrc)0
-rw-r--r--basic/inc/basic/ttmsg.hrc (renamed from basic/inc/ttmsg.hrc)0
-rw-r--r--basic/prj/build.lst2
-rw-r--r--basic/prj/d.lst39
-rw-r--r--basic/source/app/svtmsg.src2
-rw-r--r--basic/source/app/testtool.src2
-rw-r--r--basic/source/app/ttmsg.src2
-rw-r--r--basic/source/basmgr/basicmanagerrepository.cxx56
-rw-r--r--basic/source/classes/eventatt.cxx50
-rw-r--r--basic/source/classes/sb.cxx236
-rwxr-xr-xbasic/source/classes/sbunoobj.cxx377
-rwxr-xr-x[-rw-r--r--]basic/source/classes/sbxmod.cxx229
-rw-r--r--basic/source/comp/dim.cxx3
-rw-r--r--basic/source/comp/exprtree.cxx31
-rwxr-xr-xbasic/source/comp/sbcomp.cxx247
-rw-r--r--basic/source/comp/scanner.cxx24
-rw-r--r--basic/source/comp/symtbl.cxx5
-rw-r--r--basic/source/inc/expr.hxx1
-rw-r--r--basic/source/inc/runtime.hxx4
-rwxr-xr-xbasic/source/inc/sbtrace.hxx4
-rw-r--r--basic/source/inc/sbunoobj.hxx18
-rw-r--r--basic/source/inc/scriptcont.hxx1
-rw-r--r--basic/source/runtime/comenumwrapper.cxx81
-rw-r--r--basic/source/runtime/comenumwrapper.hxx54
-rw-r--r--basic/source/runtime/makefile.mk1
-rwxr-xr-x[-rw-r--r--]basic/source/runtime/methods1.cxx127
-rw-r--r--basic/source/runtime/rtlproto.hxx6
-rw-r--r--basic/source/runtime/runtime.cxx23
-rw-r--r--basic/source/runtime/stdobj.cxx8
-rw-r--r--basic/source/runtime/step0.cxx115
-rwxr-xr-xbasic/source/runtime/step2.cxx92
-rw-r--r--basic/source/sbx/sbxbool.cxx2
-rw-r--r--basic/source/sbx/sbxobj.cxx3
-rwxr-xr-x[-rw-r--r--]basic/source/sbx/sbxvalue.cxx10
-rw-r--r--basic/source/sbx/sbxvar.cxx31
-rw-r--r--basic/source/uno/modsizeexceeded.cxx16
-rw-r--r--basic/source/uno/namecont.cxx34
-rw-r--r--basic/source/uno/scriptcont.cxx60
-rw-r--r--configmgr/prj/build.lst2
-rw-r--r--configmgr/source/access.cxx10
-rw-r--r--configmgr/source/childaccess.cxx25
-rw-r--r--configmgr/source/components.cxx6
-rw-r--r--configmgr/source/components.hxx4
-rw-r--r--configmgr/source/configurationprovider.cxx24
-rw-r--r--configmgr/source/configurationregistry.cxx58
-rw-r--r--configmgr/source/configurationregistry.hxx22
-rw-r--r--configmgr/source/defaultprovider.cxx68
-rw-r--r--configmgr/source/defaultprovider.hxx22
-rw-r--r--configmgr/source/node.cxx4
-rw-r--r--configmgr/source/node.hxx5
-rw-r--r--configmgr/source/services.cxx15
-rw-r--r--configmgr/source/update.cxx86
-rw-r--r--configmgr/source/update.hxx22
-rw-r--r--connectivity/inc/connectivity/filtermanager.hxx7
-rw-r--r--connectivity/inc/connectivity/sqlnode.hxx1
-rw-r--r--connectivity/prj/build.lst2
-rw-r--r--connectivity/prj/d.lst1
-rw-r--r--connectivity/source/commontools/FValue.cxx30
-rw-r--r--connectivity/source/commontools/dbtools2.cxx1
-rw-r--r--connectivity/source/commontools/filtermanager.cxx60
-rw-r--r--connectivity/source/drivers/file/FResultSet.cxx31
-rw-r--r--connectivity/source/drivers/file/FStatement.cxx19
-rw-r--r--connectivity/source/drivers/file/fanalyzer.cxx28
-rw-r--r--connectivity/source/drivers/hsqldb/HDriver.cxx38
-rw-r--r--connectivity/source/drivers/hsqldb/makefile.mk1
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx26
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSFolders.hxx3
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx118
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx3
-rwxr-xr-xconnectivity/source/drivers/mozab/mozab.xcu2
-rwxr-xr-xconnectivity/source/drivers/mozab/mozab2.xcu2
-rw-r--r--connectivity/source/inc/file/fcomp.hxx2
-rw-r--r--connectivity/source/parse/sqlnode.cxx10
-rw-r--r--desktop/prj/build.lst5
-rw-r--r--desktop/source/app/app.cxx125
-rw-r--r--desktop/source/app/cmdlineargs.cxx281
-rw-r--r--desktop/source/app/cmdlineargs.hxx129
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui.hrc9
-rw-r--r--desktop/source/deployment/gui/dp_gui_dialog.src34
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_dialog2.cxx90
-rw-r--r--desktop/source/deployment/gui/dp_gui_dialog2.hxx15
-rw-r--r--desktop/source/deployment/gui/dp_gui_extlistbox.cxx55
-rw-r--r--desktop/source/deployment/gui/dp_gui_extlistbox.hxx1
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updatedata.hxx5
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updatedialog.cxx829
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updatedialog.hxx55
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/gui/dp_gui_updatedialog.src20
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/misc/dp_misc.src2
-rw-r--r--desktop/source/deployment/registry/component/dp_component.cxx818
-rw-r--r--desktop/source/deployment/registry/component/dp_component.hrc1
-rw-r--r--desktop/source/deployment/registry/component/dp_component.src5
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/dp_backend.cxx9
-rw-r--r--desktop/source/deployment/registry/help/dp_help.cxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/inc/dp_backend.h5
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/package/dp_package.cxx44
-rwxr-xr-x[-rw-r--r--]desktop/source/deployment/registry/sfwk/dp_sfwk.cxx7
-rw-r--r--desktop/source/migration/wizard.cxx1
-rw-r--r--desktop/test/deployment/active/Addons.xcu67
-rw-r--r--desktop/test/deployment/active/Dispatch.java101
-rw-r--r--desktop/test/deployment/active/MANIFEST.MF3
-rw-r--r--desktop/test/deployment/active/ProtocolHandler.xcu48
-rw-r--r--desktop/test/deployment/active/Provider.java81
-rw-r--r--desktop/test/deployment/active/Services.java72
-rw-r--r--desktop/test/deployment/active/active_native.cxx320
-rw-r--r--desktop/test/deployment/active/active_python.py120
-rw-r--r--desktop/test/deployment/active/description.xml36
-rw-r--r--desktop/test/deployment/active/makefile.mk83
-rw-r--r--desktop/test/deployment/active/manifest.xml43
-rw-r--r--desktop/test/deployment/boxt/boxt.cxx102
-rw-r--r--desktop/test/deployment/boxt/makefile.mk2
-rw-r--r--desktop/test/deployment/locationtest/makefile.mk3
-rw-r--r--desktop/test/deployment/passive/Addons.xcu67
-rw-r--r--desktop/test/deployment/passive/Dispatch.java101
-rw-r--r--desktop/test/deployment/passive/MANIFEST.MF3
-rw-r--r--desktop/test/deployment/passive/ProtocolHandler.xcu48
-rw-r--r--desktop/test/deployment/passive/Provider.java81
-rw-r--r--desktop/test/deployment/passive/Services.java49
-rw-r--r--desktop/test/deployment/passive/description.xml36
-rw-r--r--desktop/test/deployment/passive/makefile.mk136
-rw-r--r--desktop/test/deployment/passive/manifest.xml40
-rw-r--r--desktop/test/deployment/passive/passive_java.component38
-rw-r--r--desktop/test/deployment/passive/passive_native.component38
-rw-r--r--desktop/test/deployment/passive/passive_native.cxx289
-rw-r--r--desktop/test/deployment/passive/passive_python.component38
-rw-r--r--desktop/test/deployment/passive/passive_python.py101
-rwxr-xr-xdesktop/test/deployment/update/updateinfocreation/build/makefile.mk3
-rwxr-xr-x[-rw-r--r--]desktop/util/ooverinfo2.rc16
-rw-r--r--drawinglayer/source/primitive2d/metafileprimitive2d.cxx14
-rw-r--r--editeng/inc/editeng/svxrtf.hxx9
-rw-r--r--editeng/inc/pch/precompiled_editeng.hxx1
-rw-r--r--editeng/source/editeng/eertfpar.cxx1
-rw-r--r--editeng/source/items/flditem.cxx109
-rw-r--r--editeng/source/misc/svxacorr.cxx2
-rw-r--r--editeng/source/rtf/makefile.mk3
-rw-r--r--editeng/source/rtf/rtfgrf.cxx36
-rw-r--r--editeng/source/rtf/rtfitem.cxx12
-rw-r--r--editeng/source/rtf/svxrtf.cxx10
-rw-r--r--embeddedobj/prj/build.lst2
-rw-r--r--embeddedobj/source/commonembedding/miscobj.cxx9
-rw-r--r--embeddedobj/source/commonembedding/persistence.cxx22
-rw-r--r--eventattacher/prj/build.lst2
-rw-r--r--fileaccess/prj/build.lst2
-rw-r--r--formula/prj/build.lst2
-rw-r--r--formula/source/ui/dlg/structpg.cxx2
-rw-r--r--fpicker/prj/build.lst2
-rw-r--r--framework/AllLangResTarget_fwe.mk63
-rw-r--r--framework/Library_fwe.mk115
-rw-r--r--framework/Library_fwi.mk97
-rw-r--r--framework/Library_fwk.mk199
-rw-r--r--framework/Library_fwl.mk99
-rw-r--r--framework/Library_fwm.mk81
-rw-r--r--framework/Makefile (renamed from sfx2/source/explorer/makefile.mk)25
-rw-r--r--framework/Module_framework.mk43
-rw-r--r--framework/Package_dtd.mk (renamed from framework/inc/makefile.mk)34
-rw-r--r--framework/Package_inc.mk48
-rw-r--r--framework/Package_uiconfig.mk (renamed from framework/qa/complex/dispatches/helper/makefile.mk)30
-rw-r--r--framework/Package_unotypes.mk30
-rw-r--r--framework/inc/classes/actiontriggercontainer.hxx4
-rw-r--r--framework/inc/classes/actiontriggerpropertyset.hxx23
-rw-r--r--framework/inc/classes/actiontriggerseparatorpropertyset.hxx2
-rw-r--r--framework/inc/classes/converter.hxx3
-rw-r--r--framework/inc/classes/fwkresid.hxx3
-rw-r--r--framework/inc/classes/imagewrapper.hxx3
-rw-r--r--framework/inc/classes/propertysethelper.hxx3
-rw-r--r--framework/inc/classes/protocolhandlercache.hxx9
-rw-r--r--framework/inc/classes/rootactiontriggercontainer.hxx3
-rw-r--r--framework/inc/dispatch/interaction.hxx325
-rw-r--r--framework/inc/framework/acceleratorinfo.hxx (renamed from framework/inc/helper/acceleratorinfo.hxx)1
-rw-r--r--framework/inc/framework/actiontriggerhelper.hxx (renamed from framework/inc/helper/actiontriggerhelper.hxx)3
-rw-r--r--framework/inc/framework/addonmenu.hxx (renamed from framework/inc/classes/addonmenu.hxx)18
-rw-r--r--framework/inc/framework/addonsoptions.hxx (renamed from framework/inc/classes/addonsoptions.hxx)8
-rw-r--r--framework/inc/framework/bmkmenu.hxx (renamed from framework/inc/classes/bmkmenu.hxx)6
-rw-r--r--framework/inc/framework/configimporter.hxx (renamed from framework/inc/helper/configimporter.hxx)3
-rw-r--r--framework/inc/framework/eventsconfiguration.hxx (renamed from framework/inc/xml/eventsconfiguration.hxx)5
-rw-r--r--framework/inc/framework/framelistanalyzer.hxx (renamed from framework/inc/classes/framelistanalyzer.hxx)3
-rw-r--r--framework/inc/framework/fwedllapi.h13
-rw-r--r--framework/inc/framework/imageproducer.hxx (renamed from framework/inc/helper/imageproducer.hxx)5
-rw-r--r--framework/inc/framework/imagesconfiguration.hxx (renamed from framework/inc/xml/imagesconfiguration.hxx)11
-rw-r--r--framework/inc/framework/interaction.hxx142
-rw-r--r--framework/inc/framework/menuconfiguration.hxx (renamed from framework/inc/xml/menuconfiguration.hxx)3
-rw-r--r--framework/inc/framework/menuextensionsupplier.hxx (renamed from framework/inc/classes/menuextensionsupplier.hxx)7
-rw-r--r--framework/inc/framework/preventduplicateinteraction.hxx (renamed from framework/inc/interaction/preventduplicateinteraction.hxx)3
-rw-r--r--framework/inc/framework/sfxhelperfunctions.hxx (renamed from framework/inc/classes/sfxhelperfunctions.hxx)25
-rw-r--r--framework/inc/framework/statusbarconfiguration.hxx (renamed from framework/inc/xml/statusbarconfiguration.hxx)31
-rw-r--r--framework/inc/framework/titlehelper.hxx (renamed from framework/inc/helper/titlehelper.hxx)3
-rw-r--r--framework/inc/framework/toolboxconfiguration.hxx (renamed from framework/inc/xml/toolboxconfiguration.hxx)29
-rw-r--r--framework/inc/fwidllapi.h13
-rw-r--r--framework/inc/fwkdllapi.h8
-rwxr-xr-x[-rw-r--r--]framework/inc/helper/ilayoutnotifications.hxx (renamed from svx/inc/srchitem.hxx)26
-rwxr-xr-xframework/inc/helper/mischelper.hxx7
-rw-r--r--framework/inc/helper/networkdomain.hxx3
-rw-r--r--framework/inc/helper/propertysetcontainer.hxx3
-rw-r--r--framework/inc/helper/shareablemutex.hxx3
-rw-r--r--framework/inc/helper/uiconfigelementwrapperbase.hxx64
-rw-r--r--framework/inc/helper/uielementwrapperbase.hxx48
-rw-r--r--framework/inc/jobs/configaccess.hxx3
-rw-r--r--framework/inc/jobs/jobconst.hxx4
-rw-r--r--framework/inc/jobs/jobdata.hxx10
-rw-r--r--framework/inc/jobs/jobdispatch.hxx3
-rw-r--r--framework/inc/jobs/jobexecutor.hxx4
-rw-r--r--framework/inc/services.h4
-rw-r--r--framework/inc/services/layoutmanager.hxx218
-rwxr-xr-xframework/inc/services/modelwinservice.hxx122
-rw-r--r--framework/inc/threadhelp/lockhelper.hxx3
-rw-r--r--framework/inc/threadhelp/transactionmanager.hxx3
-rw-r--r--framework/inc/uielement/constitemcontainer.hxx3
-rw-r--r--framework/inc/uielement/itemcontainer.hxx4
-rw-r--r--framework/inc/uielement/menubarmanager.hxx2
-rwxr-xr-xframework/inc/uielement/panelwindow.hxx81
-rwxr-xr-xframework/inc/uielement/panelwrapper.hxx68
-rw-r--r--framework/inc/uielement/rootitemcontainer.hxx17
-rwxr-xr-xframework/inc/uielement/uielement.hxx146
-rw-r--r--framework/inc/xml/eventsdocumenthandler.hxx7
-rw-r--r--framework/inc/xml/imagesdocumenthandler.hxx9
-rw-r--r--framework/inc/xml/menudocumenthandler.hxx13
-rw-r--r--framework/inc/xml/saxnamespacefilter.hxx3
-rw-r--r--framework/inc/xml/statusbardocumenthandler.hxx7
-rw-r--r--framework/inc/xml/toolboxconfigurationdefines.hxx26
-rw-r--r--framework/inc/xml/toolboxdocumenthandler.hxx7
-rw-r--r--framework/inc/xml/xmlnamespaces.hxx3
-rw-r--r--framework/prj/build.lst59
-rw-r--r--framework/prj/d.lst55
-rw-r--r--framework/prj/makefile.mk (renamed from framework/source/application/makefile.mk)25
-rw-r--r--framework/qa/complex/ModuleManager/makefile.mk60
-rw-r--r--framework/qa/complex/XUserInputInterception/makefile.mk133
-rw-r--r--framework/qa/complex/accelerators/helper/makefile.mk46
-rw-r--r--framework/qa/complex/accelerators/makefile.mk67
-rwxr-xr-xframework/qa/complex/api_internal/makefile.mk63
-rwxr-xr-xframework/qa/complex/broken_document/makefile.mk65
-rw-r--r--framework/qa/complex/contextMenuInterceptor/makefile.mk63
-rwxr-xr-xframework/qa/complex/desktop/makefile.mk62
-rw-r--r--framework/qa/complex/dispatches/makefile.mk131
-rwxr-xr-xframework/qa/complex/disposing/makefile.mk61
-rw-r--r--framework/qa/complex/framework/autosave/makefile.mk127
-rwxr-xr-xframework/qa/complex/framework/recovery/makefile.mk103
-rwxr-xr-xframework/qa/complex/imageManager/interfaces/makefile.mk63
-rwxr-xr-xframework/qa/complex/imageManager/makefile.mk123
-rw-r--r--framework/qa/complex/loadAllDocuments/makefile.mk134
-rwxr-xr-xframework/qa/complex/path_settings/makefile.mk62
-rwxr-xr-xframework/qa/complex/path_substitution/makefile.mk122
-rwxr-xr-xframework/qa/unoapi/makefile.mk48
-rw-r--r--framework/source/accelerators/makefile.mk52
-rw-r--r--framework/source/classes/fwktabwindow.cxx6
-rw-r--r--framework/source/classes/makefile.mk69
-rw-r--r--framework/source/classes/menumanager.cxx10
-rw-r--r--framework/source/constant/makefile.mk45
-rw-r--r--framework/source/dispatch/closedispatcher.cxx2
-rw-r--r--framework/source/dispatch/makefile.mk63
-rw-r--r--framework/source/dispatch/menudispatcher.cxx4
-rw-r--r--framework/source/dispatch/popupmenudispatcher.cxx4
-rw-r--r--framework/source/dispatch/startmoduledispatcher.cxx2
-rw-r--r--framework/source/fwe/classes/actiontriggercontainer.cxx (renamed from framework/source/classes/actiontriggercontainer.cxx)0
-rw-r--r--framework/source/fwe/classes/actiontriggerpropertyset.cxx (renamed from framework/source/classes/actiontriggerpropertyset.cxx)2
-rw-r--r--framework/source/fwe/classes/actiontriggerseparatorpropertyset.cxx (renamed from framework/source/classes/actiontriggerseparatorpropertyset.cxx)0
-rw-r--r--framework/source/fwe/classes/addonmenu.cxx (renamed from framework/source/classes/addonmenu.cxx)8
-rw-r--r--framework/source/fwe/classes/addonsoptions.cxx (renamed from framework/source/classes/addonsoptions.cxx)2
-rw-r--r--framework/source/fwe/classes/bmkmenu.cxx (renamed from framework/source/classes/bmkmenu.cxx)6
-rw-r--r--framework/source/fwe/classes/framelistanalyzer.cxx (renamed from framework/source/classes/framelistanalyzer.cxx)2
-rw-r--r--framework/source/fwe/classes/fwkresid.cxx (renamed from framework/source/classes/fwkresid.cxx)0
-rw-r--r--framework/source/fwe/classes/imagewrapper.cxx (renamed from framework/source/classes/imagewrapper.cxx)0
-rw-r--r--framework/source/fwe/classes/menuextensionsupplier.cxx (renamed from framework/source/classes/menuextensionsupplier.cxx)2
-rw-r--r--framework/source/fwe/classes/rootactiontriggercontainer.cxx (renamed from framework/source/classes/rootactiontriggercontainer.cxx)2
-rw-r--r--framework/source/fwe/classes/sfxhelperfunctions.cxx (renamed from framework/source/classes/sfxhelperfunctions.cxx)4
-rw-r--r--framework/source/fwe/dispatch/interaction.cxx (renamed from framework/source/dispatch/interaction.cxx)221
-rw-r--r--framework/source/fwe/helper/acceleratorinfo.cxx (renamed from framework/source/helper/acceleratorinfo.cxx)2
-rw-r--r--framework/source/fwe/helper/actiontriggerhelper.cxx (renamed from framework/source/helper/actiontriggerhelper.cxx)4
-rw-r--r--framework/source/fwe/helper/configimporter.cxx (renamed from framework/source/helper/configimporter.cxx)4
-rw-r--r--framework/source/fwe/helper/imageproducer.cxx (renamed from framework/source/helper/imageproducer.cxx)2
-rw-r--r--framework/source/fwe/helper/propertysetcontainer.cxx (renamed from framework/source/helper/propertysetcontainer.cxx)0
-rw-r--r--framework/source/fwe/helper/titlehelper.cxx (renamed from framework/source/helper/titlehelper.cxx)2
-rw-r--r--framework/source/fwe/helper/uiconfigelementwrapperbase.cxx (renamed from framework/source/helper/uiconfigelementwrapperbase.cxx)0
-rw-r--r--framework/source/fwe/helper/uielementwrapperbase.cxx (renamed from framework/source/helper/uielementwrapperbase.cxx)0
-rw-r--r--framework/source/fwe/interaction/preventduplicateinteraction.cxx (renamed from framework/source/interaction/preventduplicateinteraction.cxx)2
-rw-r--r--framework/source/fwe/xml/eventsconfiguration.cxx (renamed from framework/source/xml/eventsconfiguration.cxx)2
-rw-r--r--framework/source/fwe/xml/eventsdocumenthandler.cxx (renamed from framework/source/xml/eventsdocumenthandler.cxx)1
-rw-r--r--framework/source/fwe/xml/imagesconfiguration.cxx (renamed from framework/source/xml/imagesconfiguration.cxx)2
-rw-r--r--framework/source/fwe/xml/imagesdocumenthandler.cxx (renamed from framework/source/xml/imagesdocumenthandler.cxx)0
-rw-r--r--framework/source/fwe/xml/menuconfiguration.cxx (renamed from framework/source/xml/menuconfiguration.cxx)6
-rw-r--r--framework/source/fwe/xml/menudocumenthandler.cxx (renamed from framework/source/xml/menudocumenthandler.cxx)4
-rw-r--r--framework/source/fwe/xml/saxnamespacefilter.cxx (renamed from framework/source/xml/saxnamespacefilter.cxx)0
-rw-r--r--framework/source/fwe/xml/statusbarconfiguration.cxx (renamed from framework/source/xml/statusbarconfiguration.cxx)2
-rw-r--r--framework/source/fwe/xml/statusbardocumenthandler.cxx (renamed from framework/source/xml/statusbardocumenthandler.cxx)0
-rw-r--r--framework/source/fwe/xml/toolboxconfiguration.cxx (renamed from framework/source/xml/toolboxconfiguration.cxx)2
-rw-r--r--framework/source/fwe/xml/toolboxdocumenthandler.cxx (renamed from framework/source/xml/toolboxdocumenthandler.cxx)0
-rw-r--r--framework/source/fwe/xml/toolboxlayoutdocumenthandler.cxx58
-rw-r--r--framework/source/fwe/xml/xmlnamespaces.cxx (renamed from framework/source/xml/xmlnamespaces.cxx)0
-rw-r--r--framework/source/fwi/classes/converter.cxx (renamed from framework/source/classes/converter.cxx)0
-rw-r--r--framework/source/fwi/classes/propertysethelper.cxx (renamed from framework/source/classes/propertysethelper.cxx)0
-rw-r--r--framework/source/fwi/classes/protocolhandlercache.cxx (renamed from framework/source/classes/protocolhandlercache.cxx)2
-rw-r--r--framework/source/fwi/helper/mischelper.cxx (renamed from framework/source/helper/mischelper.cxx)13
-rw-r--r--framework/source/fwi/helper/networkdomain.cxx (renamed from framework/source/helper/networkdomain.cxx)0
-rw-r--r--framework/source/fwi/helper/shareablemutex.cxx (renamed from framework/source/helper/shareablemutex.cxx)0
-rw-r--r--framework/source/fwi/jobs/configaccess.cxx (renamed from framework/source/jobs/configaccess.cxx)0
-rw-r--r--framework/source/fwi/jobs/jobconst.cxx (renamed from framework/source/jobs/jobconst.cxx)0
-rw-r--r--framework/source/fwi/threadhelp/lockhelper.cxx (renamed from framework/source/threadhelp/lockhelper.cxx)0
-rw-r--r--framework/source/fwi/threadhelp/transactionmanager.cxx (renamed from framework/source/threadhelp/transactionmanager.cxx)3
-rw-r--r--framework/source/fwi/uielement/constitemcontainer.cxx (renamed from framework/source/uielement/constitemcontainer.cxx)0
-rw-r--r--framework/source/fwi/uielement/itemcontainer.cxx (renamed from framework/source/uielement/itemcontainer.cxx)0
-rw-r--r--framework/source/fwi/uielement/rootitemcontainer.cxx (renamed from framework/source/uielement/rootitemcontainer.cxx)0
-rwxr-xr-x[-rw-r--r--]framework/source/helper/dockingareadefaultacceptor.cxx18
-rw-r--r--framework/source/helper/makefile.mk69
-rwxr-xr-x[-rw-r--r--]framework/source/helper/ocomponentaccess.cxx44
-rwxr-xr-x[-rw-r--r--]framework/source/helper/ocomponentenumeration.cxx4
-rwxr-xr-x[-rw-r--r--]framework/source/helper/oframes.cxx56
-rw-r--r--framework/source/interaction/makefile.mk49
-rw-r--r--framework/source/jobs/jobdata.cxx40
-rw-r--r--framework/source/jobs/jobdispatch.cxx37
-rw-r--r--framework/source/jobs/jobexecutor.cxx18
-rw-r--r--framework/source/jobs/makefile.mk53
-rwxr-xr-xframework/source/layoutmanager/helpers.cxx415
-rwxr-xr-xframework/source/layoutmanager/helpers.hxx95
-rwxr-xr-x[-rw-r--r--]framework/source/layoutmanager/layoutmanager.cxx6530
-rw-r--r--framework/source/layoutmanager/makefile.mk47
-rwxr-xr-xframework/source/layoutmanager/panel.cxx88
-rwxr-xr-xframework/source/layoutmanager/panel.hxx88
-rwxr-xr-xframework/source/layoutmanager/panelmanager.cxx183
-rwxr-xr-xframework/source/layoutmanager/panelmanager.hxx109
-rwxr-xr-xframework/source/layoutmanager/toolbarlayoutmanager.cxx4305
-rwxr-xr-xframework/source/layoutmanager/toolbarlayoutmanager.hxx344
-rwxr-xr-xframework/source/layoutmanager/uielement.cxx156
-rw-r--r--framework/source/loadenv/loadenv.cxx19
-rw-r--r--framework/source/loadenv/makefile.mk46
-rw-r--r--framework/source/recording/makefile.mk47
-rw-r--r--framework/source/register/makefile.mk50
-rw-r--r--framework/source/register/registerservices.cxx4
-rw-r--r--framework/source/register/registertemp.cxx2
-rw-r--r--framework/source/services/autorecovery.cxx4
-rw-r--r--framework/source/services/backingcomp.cxx2
-rw-r--r--framework/source/services/desktop.cxx2
-rw-r--r--framework/source/services/frame.cxx4
-rw-r--r--framework/source/services/makefile.mk64
-rwxr-xr-xframework/source/services/modelwinservice.cxx279
-rw-r--r--framework/source/services/pathsettings.cxx31
-rw-r--r--framework/source/tabwin/makefile.mk48
-rw-r--r--framework/source/threadhelp/makefile.mk45
-rw-r--r--framework/source/uiconfiguration/imagemanager.cxx2
-rwxr-xr-x[-rw-r--r--]framework/source/uiconfiguration/imagemanagerimpl.cxx2
-rw-r--r--framework/source/uiconfiguration/makefile.mk54
-rw-r--r--framework/source/uiconfiguration/moduleimagemanager.cxx2
-rw-r--r--framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx11
-rw-r--r--framework/source/uiconfiguration/uiconfigurationmanager.cxx6
-rwxr-xr-xframework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx6
-rw-r--r--framework/source/uiconfiguration/windowstateconfiguration.cxx27
-rw-r--r--framework/source/uielement/addonstoolbarmanager.cxx6
-rw-r--r--framework/source/uielement/addonstoolbarwrapper.cxx2
-rw-r--r--framework/source/uielement/comboboxtoolbarcontroller.cxx33
-rw-r--r--framework/source/uielement/generictoolbarcontroller.cxx2
-rw-r--r--framework/source/uielement/imagebuttontoolbarcontroller.cxx2
-rw-r--r--framework/source/uielement/macrosmenucontroller.cxx2
-rw-r--r--framework/source/uielement/makefile.mk87
-rw-r--r--framework/source/uielement/menubarmanager.cxx16
-rw-r--r--framework/source/uielement/menubarmerger.cxx2
-rw-r--r--framework/source/uielement/menubarwrapper.cxx2
-rw-r--r--framework/source/uielement/newmenucontroller.cxx6
-rwxr-xr-xframework/source/uielement/panelwindow.cxx77
-rwxr-xr-xframework/source/uielement/panelwrapper.cxx226
-rw-r--r--framework/source/uielement/statusbarmanager.cxx2
-rw-r--r--framework/source/uielement/statusbarwrapper.cxx2
-rw-r--r--framework/source/uielement/togglebuttontoolbarcontroller.cxx2
-rw-r--r--framework/source/uielement/toolbarmanager.cxx8
-rw-r--r--framework/source/uielement/toolbarmerger.cxx2
-rw-r--r--framework/source/uielement/toolbarsmenucontroller.cxx4
-rw-r--r--framework/source/uielement/toolbarwrapper.cxx2
-rw-r--r--framework/source/uielement/uicommanddescription.cxx27
-rw-r--r--framework/source/uifactory/makefile.mk54
-rw-r--r--framework/source/xml/makefile.mk58
-rw-r--r--framework/test/makefile.mk94
-rw-r--r--framework/test/threadtest/makefile.mk67
-rw-r--r--framework/test/typecfg/makefile.mk73
-rw-r--r--framework/util/guiapps/makefile.mk67
-rw-r--r--framework/util/makefile.mk445
-rw-r--r--framework/util/makefile.pmk1
-rwxr-xr-xidl/source/prj/command.cxx4
-rw-r--r--linguistic/inc/linguistic/hyphdta.hxx (renamed from linguistic/inc/hyphdta.hxx)0
-rw-r--r--linguistic/inc/linguistic/lngprophelp.hxx (renamed from linguistic/inc/lngprophelp.hxx)0
-rw-r--r--linguistic/inc/linguistic/lngprops.hxx (renamed from linguistic/inc/lngprops.hxx)0
-rw-r--r--linguistic/inc/linguistic/misc.hxx (renamed from linguistic/inc/misc.hxx)0
-rw-r--r--linguistic/inc/linguistic/spelldta.hxx (renamed from linguistic/inc/spelldta.hxx)0
-rw-r--r--linguistic/prj/build.lst2
-rw-r--r--linguistic/prj/d.lst4
-rw-r--r--linguistic/source/convdic.cxx2
-rw-r--r--linguistic/source/convdic.hxx2
-rw-r--r--linguistic/source/convdiclist.cxx2
-rw-r--r--linguistic/source/convdiclist.hxx2
-rw-r--r--linguistic/source/convdicxml.cxx2
-rw-r--r--linguistic/source/convdicxml.hxx2
-rw-r--r--linguistic/source/dicimp.hxx2
-rw-r--r--linguistic/source/dlistimp.hxx2
-rw-r--r--linguistic/source/gciterator.cxx2
-rw-r--r--linguistic/source/grammarchecker.cxx2
-rw-r--r--linguistic/source/hhconvdic.cxx2
-rw-r--r--linguistic/source/hhconvdic.hxx2
-rw-r--r--linguistic/source/hyphdsp.cxx4
-rw-r--r--linguistic/source/hyphdsp.hxx2
-rw-r--r--linguistic/source/hyphdta.cxx6
-rw-r--r--linguistic/source/iprcache.cxx4
-rw-r--r--linguistic/source/lngopt.cxx4
-rw-r--r--linguistic/source/lngopt.hxx2
-rw-r--r--linguistic/source/lngprophelp.cxx6
-rw-r--r--linguistic/source/lngsvcmgr.cxx2
-rw-r--r--linguistic/source/lngsvcmgr.hxx2
-rw-r--r--linguistic/source/misc.cxx6
-rw-r--r--linguistic/source/misc2.cxx2
-rw-r--r--linguistic/source/spelldsp.cxx4
-rw-r--r--linguistic/source/spelldsp.hxx2
-rw-r--r--linguistic/source/spelldta.cxx2
-rw-r--r--linguistic/source/thesdsp.cxx2
-rw-r--r--linguistic/source/thesdta.cxx2
-rw-r--r--linguistic/workben/sprophelp.cxx4
-rw-r--r--linguistic/workben/sspellimp.cxx4
-rw-r--r--linguistic/workben/sspellimp.hxx2
-rw-r--r--officecfg/registry/data/org/openoffice/Interaction.xcu12
-rwxr-xr-xofficecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu109
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu10
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Writer.xcu3
-rwxr-xr-x[-rw-r--r--]officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs70
-rwxr-xr-x[-rw-r--r--]officecfg/registry/schema/org/openoffice/Office/Jobs.xcs5
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Writer.xcs9
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs9
-rw-r--r--oovbaapi/ooo/vba/XApplicationBase.idl6
-rw-r--r--oovbaapi/ooo/vba/XVBAAppService.idl72
-rw-r--r--oovbaapi/ooo/vba/XVBADocService.idl72
-rw-r--r--oovbaapi/ooo/vba/excel/SheetObject.idl2
-rw-r--r--oovbaapi/ooo/vba/excel/SheetObjects.idl6
-rw-r--r--oovbaapi/ooo/vba/excel/XApplication.idl10
-rw-r--r--oovbaapi/ooo/vba/excel/XFormat.idl2
-rw-r--r--oovbaapi/ooo/vba/excel/XGlobals.idl14
-rw-r--r--oovbaapi/ooo/vba/excel/XHyperlinks.idl10
-rw-r--r--oovbaapi/ooo/vba/excel/XRange.idl6
-rw-r--r--oovbaapi/ooo/vba/excel/XWindow.idl2
-rw-r--r--oovbaapi/ooo/vba/excel/XWorkbook.idl10
-rw-r--r--oovbaapi/ooo/vba/excel/XWorkbooks.idl2
-rw-r--r--oovbaapi/ooo/vba/excel/XWorksheet.idl32
-rw-r--r--oovbaapi/ooo/vba/word/XApplication.idl8
-rw-r--r--oovbaapi/ooo/vba/word/XDocument.idl20
-rw-r--r--oovbaapi/ooo/vba/word/XGlobals.idl8
-rw-r--r--oovbaapi/ooo/vba/word/XSelection.idl4
-rw-r--r--oovbaapi/ooo/vba/word/XTable.idl2
-rw-r--r--oovbaapi/ooo/vba/word/XTemplate.idl2
-rw-r--r--oovbaapi/ooo/vba/word/XWindow.idl2
-rwxr-xr-xscripting/prj/build.lst2
-rw-r--r--scripting/source/basprov/basscript.cxx22
-rw-r--r--scripting/source/basprov/basscript.hxx6
-rw-r--r--scripting/source/basprov/makefile.mk1
-rw-r--r--sfx2/AllLangResTarget_sfx2.mk79
-rwxr-xr-xsfx2/Library_qstart.mk92
-rwxr-xr-xsfx2/Library_sfx.mk309
-rw-r--r--sfx2/Makefile38
-rwxr-xr-x[-rw-r--r--]sfx2/Module_sfx2.mk (renamed from framework/qa/complex/loadAllDocuments/helper/makefile.mk)54
-rw-r--r--sfx2/Package_inc.mk138
-rw-r--r--sfx2/Package_sdi.mk30
-rw-r--r--sfx2/inc/brokenpackageint.hxx101
-rw-r--r--sfx2/inc/guisaveas.hxx6
-rw-r--r--sfx2/inc/makefile.mk48
-rw-r--r--sfx2/inc/sfx2/QuerySaveDocument.hxx (renamed from sfx2/inc/QuerySaveDocument.hxx)0
-rw-r--r--sfx2/inc/sfx2/basmgr.hxx (renamed from sfx2/inc/basmgr.hxx)3
-rwxr-xr-xsfx2/inc/sfx2/brokenpackageint.hxx55
-rw-r--r--sfx2/inc/sfx2/dinfedt.hxx (renamed from sfx2/inc/dinfedt.hxx)0
-rw-r--r--sfx2/inc/sfx2/docfile.hxx2
-rw-r--r--sfx2/inc/sfx2/docfilt.hxx37
-rw-r--r--sfx2/inc/sfx2/docinsert.hxx (renamed from sfx2/inc/docinsert.hxx)0
-rw-r--r--sfx2/inc/sfx2/event.hxx24
-rw-r--r--sfx2/inc/sfx2/imagemgr.hxx (renamed from sfx2/inc/imagemgr.hxx)0
-rw-r--r--sfx2/inc/sfx2/imgmgr.hxx (renamed from sfx2/inc/imgmgr.hxx)0
-rw-r--r--sfx2/inc/sfx2/ipclient.hxx1
-rw-r--r--sfx2/inc/sfx2/mailmodelapi.hxx (renamed from sfx2/inc/mailmodelapi.hxx)0
-rw-r--r--sfx2/inc/sfx2/mgetempl.hxx5
-rw-r--r--sfx2/inc/sfx2/mieclip.hxx (renamed from sfx2/inc/mieclip.hxx)0
-rw-r--r--sfx2/inc/sfx2/minfitem.hxx (renamed from sfx2/inc/minfitem.hxx)0
-rw-r--r--sfx2/inc/sfx2/passwd.hxx28
-rw-r--r--sfx2/inc/sfx2/sfx.hrc3
-rw-r--r--sfx2/inc/sfx2/sfxbasemodel.hxx36
-rw-r--r--sfx2/inc/sfx2/sfxhelp.hxx (renamed from sfx2/inc/sfxhelp.hxx)0
-rw-r--r--sfx2/inc/sfx2/sfxresid.hxx (renamed from sfx2/inc/sfxresid.hxx)6
-rw-r--r--sfx2/inc/sfx2/sfxsids.hrc36
-rw-r--r--sfx2/inc/sfx2/sfxuno.hxx3
-rw-r--r--sfx2/inc/sfx2/stbitem.hxx (renamed from sfx2/inc/stbitem.hxx)0
-rw-r--r--sfx2/inc/sfx2/tplpitem.hxx (renamed from sfx2/inc/tplpitem.hxx)0
-rw-r--r--sfx2/inc/sfx2/viewfac.hxx (renamed from sfx2/inc/viewfac.hxx)3
-rw-r--r--sfx2/inc/sfx2/viewsh.hxx3
-rw-r--r--sfx2/prj/build.lst28
-rw-r--r--sfx2/prj/d.lst47
-rw-r--r--sfx2/prj/makefile.mk (renamed from sfx2/source/config/makefile.mk)27
-rw-r--r--sfx2/qa/complex/docinfo/makefile.mk63
-rw-r--r--sfx2/qa/complex/framework/DocHelper/makefile.mk49
-rw-r--r--sfx2/qa/complex/framework/makefile.mk65
-rw-r--r--sfx2/qa/complex/standalonedocumentinfo/makefile.mk56
-rw-r--r--sfx2/qa/cppunit/makefile.mk81
-rw-r--r--sfx2/qa/unoapi/makefile.mk48
-rw-r--r--sfx2/sdi/makefile.mk59
-rw-r--r--sfx2/sdi/sfx.sdi2
-rw-r--r--sfx2/source/appl/app.cxx32
-rw-r--r--sfx2/source/appl/app.src59
-rw-r--r--sfx2/source/appl/appbas.cxx10
-rwxr-xr-x[-rw-r--r--]sfx2/source/appl/appbaslib.cxx3
-rw-r--r--sfx2/source/appl/appcfg.cxx4
-rw-r--r--sfx2/source/appl/appdata.cxx2
-rw-r--r--sfx2/source/appl/appinit.cxx13
-rw-r--r--sfx2/source/appl/appmain.cxx2
-rw-r--r--sfx2/source/appl/appmisc.cxx4
-rw-r--r--sfx2/source/appl/appopen.cxx51
-rw-r--r--sfx2/source/appl/appquit.cxx2
-rw-r--r--sfx2/source/appl/appreg.cxx4
-rw-r--r--sfx2/source/appl/appserv.cxx19
-rw-r--r--sfx2/source/appl/appuno.cxx217
-rw-r--r--sfx2/source/appl/fileobj.cxx2
-rw-r--r--sfx2/source/appl/imagemgr.cxx4
-rw-r--r--sfx2/source/appl/impldde.cxx2
-rw-r--r--sfx2/source/appl/linkmgr2.cxx2
-rw-r--r--sfx2/source/appl/lnkbase2.cxx2
-rw-r--r--sfx2/source/appl/makefile.mk158
-rw-r--r--sfx2/source/appl/module.cxx4
-rw-r--r--sfx2/source/appl/newhelp.cxx8
-rw-r--r--sfx2/source/appl/opengrf.cxx2
-rw-r--r--sfx2/source/appl/sfx.src91
-rw-r--r--sfx2/source/appl/sfxhelp.cxx7
-rw-r--r--sfx2/source/appl/shutdownicon.cxx10
-rw-r--r--sfx2/source/appl/workwin.cxx2
-rw-r--r--sfx2/source/bastyp/fltfnc.cxx4
-rw-r--r--sfx2/source/bastyp/frmhtmlw.cxx2
-rw-r--r--sfx2/source/bastyp/makefile.mk66
-rw-r--r--sfx2/source/bastyp/mieclip.cxx2
-rw-r--r--sfx2/source/bastyp/progress.cxx2
-rw-r--r--sfx2/source/bastyp/sfxresid.cxx2
-rw-r--r--sfx2/source/config/evntconf.cxx13
-rwxr-xr-xsfx2/source/control/dispatch.cxx2
-rw-r--r--sfx2/source/control/macrconf.cxx4
-rw-r--r--sfx2/source/control/makefile.mk73
-rw-r--r--sfx2/source/control/minfitem.cxx5
-rw-r--r--sfx2/source/control/msgpool.cxx2
-rw-r--r--sfx2/source/control/objface.cxx2
-rw-r--r--sfx2/source/control/querystatus.cxx2
-rw-r--r--sfx2/source/control/sfxstatuslistener.cxx2
-rw-r--r--sfx2/source/control/unoctitm.cxx2
-rw-r--r--sfx2/source/dialog/about.cxx3
-rw-r--r--sfx2/source/dialog/alienwarn.cxx2
-rw-r--r--sfx2/source/dialog/basedlgs.cxx4
-rw-r--r--sfx2/source/dialog/dinfedt.cxx4
-rw-r--r--sfx2/source/dialog/dockwin.cxx2
-rw-r--r--sfx2/source/dialog/filedlghelper.cxx44
-rw-r--r--sfx2/source/dialog/filtergrouping.cxx2
-rw-r--r--sfx2/source/dialog/mailmodel.cxx145
-rw-r--r--sfx2/source/dialog/mailmodelapi.cxx695
-rw-r--r--sfx2/source/dialog/makefile.mk127
-rw-r--r--sfx2/source/dialog/mgetempl.cxx14
-rw-r--r--sfx2/source/dialog/mgetempl.hrc1
-rw-r--r--sfx2/source/dialog/mgetempl.src8
-rw-r--r--sfx2/source/dialog/navigat.cxx2
-rw-r--r--sfx2/source/dialog/newstyle.cxx2
-rw-r--r--sfx2/source/dialog/passwd.cxx181
-rw-r--r--sfx2/source/dialog/passwd.hrc5
-rw-r--r--sfx2/source/dialog/passwd.src30
-rw-r--r--sfx2/source/dialog/printopt.cxx2
-rw-r--r--sfx2/source/dialog/recfloat.cxx4
-rwxr-xr-xsfx2/source/dialog/sfxdlg.cxx2
-rw-r--r--sfx2/source/dialog/splitwin.cxx2
-rw-r--r--sfx2/source/dialog/srchdlg.cxx2
-rw-r--r--sfx2/source/dialog/styledlg.cxx2
-rw-r--r--sfx2/source/dialog/tabdlg.cxx4
-rw-r--r--sfx2/source/dialog/templdlg.cxx16
-rw-r--r--sfx2/source/dialog/tplcitem.cxx5
-rw-r--r--sfx2/source/dialog/tplpitem.cxx5
-rw-r--r--sfx2/source/dialog/versdlg.cxx12
-rw-r--r--sfx2/source/doc/QuerySaveDocument.cxx7
-rw-r--r--sfx2/source/doc/docfac.cxx4
-rw-r--r--sfx2/source/doc/docfile.cxx27
-rw-r--r--sfx2/source/doc/docinsert.cxx2
-rw-r--r--sfx2/source/doc/doctdlg.cxx2
-rw-r--r--sfx2/source/doc/doctempl.cxx2
-rw-r--r--sfx2/source/doc/doctemplates.cxx2
-rw-r--r--sfx2/source/doc/docvor.cxx2
-rw-r--r--sfx2/source/doc/graphhelp.cxx2
-rw-r--r--sfx2/source/doc/guisaveas.cxx58
-rw-r--r--sfx2/source/doc/makefile.mk103
-rw-r--r--sfx2/source/doc/new.cxx8
-rw-r--r--sfx2/source/doc/objcont.cxx6
-rw-r--r--sfx2/source/doc/objmisc.cxx21
-rw-r--r--sfx2/source/doc/objserv.cxx7
-rw-r--r--sfx2/source/doc/objstor.cxx48
-rw-r--r--sfx2/source/doc/objuno.cxx2
-rw-r--r--sfx2/source/doc/objxtor.cxx34
-rw-r--r--sfx2/source/doc/querytemplate.cxx2
-rwxr-xr-x[-rw-r--r--]sfx2/source/doc/sfxacldetect.cxx4
-rw-r--r--sfx2/source/doc/sfxbasemodel.cxx210
-rwxr-xr-x[-rw-r--r--]sfx2/source/doc/syspathw32.cxx4
-rw-r--r--sfx2/source/inc/fltoptint.hxx13
-rw-r--r--sfx2/source/layout/makefile.mk56
-rw-r--r--sfx2/source/layout/sfxtabdialog.cxx4
-rw-r--r--sfx2/source/menu/makefile.mk55
-rw-r--r--sfx2/source/menu/mnuitem.cxx6
-rwxr-xr-xsfx2/source/menu/mnumgr.cxx2
-rw-r--r--sfx2/source/menu/virtmenu.cxx9
-rw-r--r--sfx2/source/notify/eventsupplier.cxx2
-rw-r--r--sfx2/source/notify/makefile.mk49
-rw-r--r--sfx2/source/statbar/makefile.mk47
-rw-r--r--sfx2/source/statbar/stbitem.cxx2
-rw-r--r--sfx2/source/toolbox/imgmgr.cxx4
-rw-r--r--sfx2/source/toolbox/makefile.mk48
-rw-r--r--sfx2/source/toolbox/tbxitem.cxx6
-rw-r--r--sfx2/source/view/frame.cxx2
-rw-r--r--sfx2/source/view/frame2.cxx2
-rw-r--r--sfx2/source/view/frmload.cxx11
-rw-r--r--sfx2/source/view/ipclient.cxx6
-rw-r--r--sfx2/source/view/makefile.mk65
-rw-r--r--sfx2/source/view/orgmgr.cxx2
-rw-r--r--sfx2/source/view/printer.cxx2
-rw-r--r--sfx2/source/view/prnmon.cxx495
-rw-r--r--sfx2/source/view/sfxbasecontroller.cxx10
-rw-r--r--sfx2/source/view/view.hrc6
-rw-r--r--sfx2/source/view/viewfac.cxx2
-rw-r--r--sfx2/source/view/viewfrm.cxx25
-rw-r--r--sfx2/source/view/viewfrm2.cxx2
-rw-r--r--sfx2/source/view/viewprn.cxx2
-rw-r--r--sfx2/source/view/viewsh.cxx893
-rw-r--r--sfx2/util/makefile.mk172
-rw-r--r--sfx2/workben/custompanel/makefile.mk120
-rwxr-xr-xshell/prj/build.lst2
-rwxr-xr-xshell/qa/makefile.mk2
-rw-r--r--shell/source/tools/lngconvex/makefile.mk4
-rw-r--r--shell/source/win32/simplemail/senddoc.cxx2
-rw-r--r--svx/Makefile36
-rw-r--r--svx/inc/galbrws2.hxx2
-rw-r--r--svx/inc/globlac.hrc223
-rw-r--r--svx/inc/pch/precompiled_svx.hxx1
-rw-r--r--svx/inc/svx/ActionDescriptionProvider.hxx (renamed from svx/inc/ActionDescriptionProvider.hxx)0
-rw-r--r--svx/inc/svx/DescriptionGenerator.hxx (renamed from svx/inc/DescriptionGenerator.hxx)0
-rw-r--r--svx/inc/svx/EnhancedCustomShape2d.hxx (renamed from svx/source/customshapes/EnhancedCustomShape2d.hxx)0
-rw-r--r--svx/inc/svx/EnhancedCustomShapeGeometry.hxx (renamed from svx/source/customshapes/EnhancedCustomShapeGeometry.hxx)0
-rw-r--r--svx/inc/svx/EnhancedCustomShapeTypeNames.hxx (renamed from svx/source/customshapes/EnhancedCustomShapeTypeNames.hxx)0
-rw-r--r--svx/inc/svx/ParseContext.hxx (renamed from svx/inc/ParseContext.hxx)0
-rw-r--r--svx/inc/svx/UnoNamespaceMap.hxx (renamed from svx/inc/UnoNamespaceMap.hxx)0
-rw-r--r--svx/inc/svx/XPropertyTable.hxx (renamed from svx/inc/XPropertyTable.hxx)0
-rw-r--r--svx/inc/svx/anchorid.hxx (renamed from svx/inc/anchorid.hxx)0
-rw-r--r--svx/inc/svx/chrtitem.hxx (renamed from svx/inc/chrtitem.hxx)0
-rw-r--r--svx/inc/svx/clipboardctl.hxx (renamed from svx/inc/clipboardctl.hxx)0
-rw-r--r--svx/inc/svx/clipfmtitem.hxx (renamed from svx/inc/clipfmtitem.hxx)0
-rw-r--r--svx/inc/svx/connctrl.hxx (renamed from svx/inc/connctrl.hxx)0
-rw-r--r--svx/inc/svx/databaseregistrationui.hxx (renamed from svx/inc/databaseregistrationui.hxx)0
-rw-r--r--svx/inc/svx/dbexch.hrc (renamed from svx/inc/dbexch.hrc)0
-rw-r--r--svx/inc/svx/dialcontrol.hxx (renamed from svx/inc/dialcontrol.hxx)0
-rw-r--r--svx/inc/svx/dlgutil.hxx (renamed from svx/inc/dlgutil.hxx)0
-rw-r--r--svx/inc/svx/drawitem.hxx (renamed from svx/inc/drawitem.hxx)0
-rw-r--r--svx/inc/svx/flagsdef.hxx (renamed from svx/inc/flagsdef.hxx)0
-rw-r--r--svx/inc/svx/float3d.hxx2
-rw-r--r--svx/inc/svx/fmgridif.hxx (renamed from svx/inc/fmgridif.hxx)0
-rw-r--r--svx/inc/svx/fmobjfac.hxx (renamed from svx/inc/fmobjfac.hxx)0
-rw-r--r--svx/inc/svx/fmresids.hrc (renamed from svx/source/inc/fmresids.hrc)0
-rw-r--r--svx/inc/svx/fmsrccfg.hxx (renamed from svx/source/inc/fmsrccfg.hxx)0
-rw-r--r--svx/inc/svx/fmsrcimp.hxx (renamed from svx/source/inc/fmsrcimp.hxx)0
-rw-r--r--svx/inc/svx/fontlb.hxx (renamed from svx/inc/fontlb.hxx)0
-rw-r--r--svx/inc/svx/fontworkgallery.hxx (renamed from svx/inc/fontworkgallery.hxx)0
-rw-r--r--svx/inc/svx/formatpaintbrushctrl.hxx (renamed from svx/inc/formatpaintbrushctrl.hxx)0
-rw-r--r--svx/inc/svx/galbrws.hxx (renamed from svx/inc/galbrws.hxx)0
-rw-r--r--svx/inc/svx/galctrl.hxx (renamed from svx/inc/galctrl.hxx)0
-rw-r--r--svx/inc/svx/gallery.hxx (renamed from svx/inc/gallery.hxx)0
-rw-r--r--svx/inc/svx/galtheme.hxx (renamed from svx/inc/galtheme.hxx)0
-rw-r--r--svx/inc/svx/globl3d.hxx (renamed from svx/inc/globl3d.hxx)0
-rw-r--r--svx/inc/svx/grafctrl.hxx (renamed from svx/inc/grafctrl.hxx)0
-rw-r--r--svx/inc/svx/hlnkitem.hxx (renamed from svx/inc/hlnkitem.hxx)0
-rw-r--r--svx/inc/svx/htmlmode.hxx (renamed from svx/inc/htmlmode.hxx)0
-rw-r--r--svx/inc/svx/hyperdlg.hxx (renamed from svx/inc/hyperdlg.hxx)0
-rw-r--r--svx/inc/svx/hyprlink.hxx (renamed from svx/source/dialog/hyprlink.hxx)0
-rw-r--r--svx/inc/svx/imapdlg.hxx (renamed from svx/inc/imapdlg.hxx)0
-rw-r--r--svx/inc/svx/insctrl.hxx (renamed from svx/inc/insctrl.hxx)0
-rw-r--r--svx/inc/svx/layctrl.hxx (renamed from svx/inc/layctrl.hxx)0
-rw-r--r--svx/inc/svx/lboxctrl.hxx (renamed from svx/inc/lboxctrl.hxx)0
-rw-r--r--svx/inc/svx/linectrl.hxx (renamed from svx/inc/linectrl.hxx)0
-rw-r--r--svx/inc/svx/measctrl.hxx (renamed from svx/inc/measctrl.hxx)0
-rw-r--r--svx/inc/svx/modctrl.hxx (renamed from svx/inc/modctrl.hxx)0
-rw-r--r--svx/inc/svx/numvset.hxx (renamed from svx/inc/numvset.hxx)0
-rw-r--r--svx/inc/svx/objfac3d.hxx (renamed from svx/inc/objfac3d.hxx)0
-rw-r--r--svx/inc/svx/ofaitem.hxx (renamed from svx/inc/ofaitem.hxx)0
-rw-r--r--svx/inc/svx/optgenrl.hxx (renamed from svx/inc/optgenrl.hxx)0
-rw-r--r--svx/inc/svx/optgrid.hxx (renamed from svx/inc/optgrid.hxx)0
-rw-r--r--svx/inc/svx/orienthelper.hxx (renamed from svx/inc/orienthelper.hxx)0
-rw-r--r--svx/inc/svx/passwd.hxx (renamed from svx/inc/passwd.hxx)0
-rw-r--r--svx/inc/svx/pfiledlg.hxx (renamed from svx/inc/pfiledlg.hxx)0
-rw-r--r--svx/inc/svx/postattr.hxx (renamed from svx/inc/postattr.hxx)0
-rw-r--r--svx/inc/svx/prtqry.hxx (renamed from svx/inc/prtqry.hxx)0
-rw-r--r--svx/inc/svx/pszctrl.hxx (renamed from svx/inc/pszctrl.hxx)0
-rw-r--r--svx/inc/svx/relfld.hxx (renamed from svx/inc/relfld.hxx)0
-rw-r--r--svx/inc/svx/rotmodit.hxx (renamed from svx/inc/rotmodit.hxx)0
-rw-r--r--svx/inc/svx/rubydialog.hxx (renamed from svx/inc/rubydialog.hxx)0
-rw-r--r--svx/inc/svx/rulritem.hxx (renamed from svx/inc/rulritem.hxx)0
-rw-r--r--svx/inc/svx/sdr/contact/objectcontactofobjlistpainter.hxx9
-rw-r--r--svx/inc/svx/sdrpagewindow.hxx1
-rw-r--r--svx/inc/svx/sdrpaintwindow.hxx (renamed from svx/inc/sdrpaintwindow.hxx)0
-rw-r--r--svx/inc/svx/selctrl.hxx (renamed from svx/inc/selctrl.hxx)0
-rw-r--r--svx/inc/svx/splitcelldlg.hxx2
-rw-r--r--svx/inc/svx/srchdlg.hxx (renamed from svx/inc/srchdlg.hxx)2
-rw-r--r--svx/inc/svx/svdglob.hxx (renamed from svx/inc/svdglob.hxx)0
-rw-r--r--svx/inc/svx/svditer.hxx (renamed from svx/inc/svditer.hxx)0
-rw-r--r--svx/inc/svx/svditext.hxx (renamed from svx/source/svdraw/svditext.hxx)0
-rw-r--r--svx/inc/svx/svdograf.hxx3
-rw-r--r--svx/inc/svx/svdpagv.hxx3
-rw-r--r--svx/inc/svx/svdpntv.hxx3
-rw-r--r--svx/inc/svx/svdstr.hrc (renamed from svx/inc/svdstr.hrc)0
-rw-r--r--svx/inc/svx/svdviter.hxx (renamed from svx/inc/svdviter.hxx)0
-rw-r--r--svx/inc/svx/svimbase.hxx (renamed from svx/inc/svimbase.hxx)0
-rw-r--r--svx/inc/svx/svxerr.hxx (renamed from svx/inc/svxerr.hxx)0
-rw-r--r--svx/inc/svx/svxgrahicitem.hxx (renamed from svx/inc/svxgrahicitem.hxx)0
-rw-r--r--svx/inc/svx/swframeexample.hxx (renamed from svx/inc/swframeexample.hxx)0
-rw-r--r--svx/inc/svx/swframeposstrings.hxx (renamed from svx/inc/swframeposstrings.hxx)0
-rw-r--r--svx/inc/svx/swframevalidation.hxx (renamed from svx/inc/swframevalidation.hxx)0
-rw-r--r--svx/inc/svx/tabarea.hxx2
-rw-r--r--svx/inc/svx/tabline.hxx2
-rw-r--r--svx/inc/svx/tbxalign.hxx (renamed from svx/inc/tbxalign.hxx)0
-rw-r--r--svx/inc/svx/tbxcolor.hxx (renamed from svx/inc/tbxcolor.hxx)0
-rw-r--r--svx/inc/svx/tbxctl.hxx (renamed from svx/inc/tbxctl.hxx)0
-rw-r--r--svx/inc/svx/tbxcustomshapes.hxx (renamed from svx/inc/tbxcustomshapes.hxx)0
-rw-r--r--svx/inc/svx/tbxdraw.hxx (renamed from svx/inc/tbxdraw.hxx)0
-rw-r--r--svx/inc/svx/txencbox.hxx (renamed from svx/inc/txencbox.hxx)0
-rw-r--r--svx/inc/svx/txenctab.hxx (renamed from svx/inc/txenctab.hxx)0
-rw-r--r--svx/inc/svx/unoapi.hxx (renamed from svx/inc/unoapi.hxx)0
-rw-r--r--svx/inc/svx/unofill.hxx (renamed from svx/inc/unofill.hxx)0
-rw-r--r--svx/inc/svx/unomaster.hxx (renamed from svx/inc/unomaster.hxx)0
-rw-r--r--svx/inc/svx/unopool.hxx (renamed from svx/inc/unopool.hxx)0
-rw-r--r--svx/inc/svx/unoshcol.hxx (renamed from svx/inc/unoshcol.hxx)0
-rw-r--r--svx/inc/svx/verttexttbxctrl.hxx (renamed from svx/inc/verttexttbxctrl.hxx)0
-rw-r--r--svx/inc/svx/wrapfield.hxx (renamed from svx/inc/wrapfield.hxx)0
-rw-r--r--svx/inc/svx/xattr.hxx (renamed from svx/inc/xattr.hxx)0
-rw-r--r--svx/inc/svx/xexch.hxx (renamed from svx/inc/xexch.hxx)0
-rw-r--r--svx/inc/svx/xmleohlp.hxx (renamed from svx/inc/xmleohlp.hxx)0
-rw-r--r--svx/inc/svx/xmlexchg.hxx (renamed from svx/inc/xmlexchg.hxx)0
-rw-r--r--svx/inc/svx/xmlgrhlp.hxx (renamed from svx/inc/xmlgrhlp.hxx)0
-rw-r--r--svx/inc/svx/xmlsecctrl.hxx (renamed from svx/inc/xmlsecctrl.hxx)0
-rw-r--r--svx/inc/svx/xoutbmp.hxx (renamed from svx/inc/xoutbmp.hxx)0
-rw-r--r--svx/inc/svx/zoom_def.hxx (renamed from svx/inc/zoom_def.hxx)0
-rw-r--r--svx/inc/svx/zoomctrl.hxx (renamed from svx/inc/zoomctrl.hxx)0
-rw-r--r--svx/prj/build.lst2
-rw-r--r--svx/prj/d.lst452
-rw-r--r--svx/prj/makefile.mk2
-rw-r--r--svx/prj/target_lib_svx.mk261
-rw-r--r--svx/prj/target_lib_svxcore.mk449
-rw-r--r--svx/prj/target_module_svx.mk52
-rw-r--r--svx/prj/target_package_inc.mk154
-rw-r--r--svx/prj/target_res_svx.mk112
-rw-r--r--svx/sdi/svx.sdi28
-rw-r--r--svx/source/accessibility/AccessibleControlShape.cxx6
-rwxr-xr-xsvx/source/accessibility/AccessibleShape.cxx6
-rw-r--r--svx/source/accessibility/DescriptionGenerator.cxx6
-rw-r--r--svx/source/accessibility/GraphCtlAccessibleContext.cxx2
-rwxr-xr-xsvx/source/accessibility/ShapeTypeHandler.cxx2
-rw-r--r--svx/source/customshapes/EnhancedCustomShape2d.cxx6
-rw-r--r--svx/source/customshapes/EnhancedCustomShape3d.cxx2
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeEngine.cxx8
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeFontWork.cxx4
-rwxr-xr-x[-rw-r--r--]svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx2
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeGeometry.cxx2
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeHandle.cxx4
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx2
-rw-r--r--svx/source/customshapes/tbxcustomshapes.cxx2
-rw-r--r--svx/source/dialog/_contdlg.cxx4
-rw-r--r--svx/source/dialog/connctrl.cxx4
-rw-r--r--svx/source/dialog/contwnd.cxx4
-rw-r--r--svx/source/dialog/databaseregistrationui.cxx2
-rw-r--r--svx/source/dialog/dialcontrol.cxx2
-rw-r--r--svx/source/dialog/dlgutil.cxx2
-rw-r--r--svx/source/dialog/docrecovery.hrc4
-rw-r--r--svx/source/dialog/fontlb.cxx2
-rw-r--r--svx/source/dialog/fontwork.cxx2
-rw-r--r--svx/source/dialog/graphctl.cxx4
-rw-r--r--svx/source/dialog/hdft.cxx4
-rw-r--r--svx/source/dialog/hyperdlg.cxx2
-rw-r--r--svx/source/dialog/hyprlink.cxx4
-rw-r--r--svx/source/dialog/imapdlg.cxx4
-rw-r--r--svx/source/dialog/imapwnd.cxx2
-rw-r--r--svx/source/dialog/measctrl.cxx4
-rw-r--r--svx/source/dialog/optgrid.cxx4
-rw-r--r--svx/source/dialog/orienthelper.cxx4
-rw-r--r--svx/source/dialog/passwd.cxx2
-rw-r--r--svx/source/dialog/pfiledlg.cxx2
-rw-r--r--svx/source/dialog/prtqry.cxx2
-rw-r--r--svx/source/dialog/relfld.cxx2
-rw-r--r--svx/source/dialog/rlrcitem.cxx2
-rw-r--r--svx/source/dialog/rubydialog.cxx2
-rw-r--r--svx/source/dialog/rulritem.cxx2
-rw-r--r--svx/source/dialog/simptabl.cxx1
-rw-r--r--svx/source/dialog/srchctrl.cxx2
-rw-r--r--svx/source/dialog/srchdlg.cxx4
-rw-r--r--svx/source/dialog/svxbmpnumvalueset.cxx10
-rw-r--r--svx/source/dialog/svxgrahicitem.cxx2
-rw-r--r--svx/source/dialog/svxruler.cxx2
-rw-r--r--svx/source/dialog/swframeexample.cxx2
-rw-r--r--svx/source/dialog/swframeposstrings.cxx2
-rw-r--r--svx/source/dialog/swframeposstrings.src2
-rw-r--r--svx/source/dialog/txencbox.cxx4
-rw-r--r--svx/source/dialog/txenctab.cxx2
-rw-r--r--svx/source/dialog/wrapfield.cxx2
-rw-r--r--svx/source/engine3d/cube3d.cxx6
-rw-r--r--svx/source/engine3d/extrud3d.cxx6
-rw-r--r--svx/source/engine3d/float3d.cxx8
-rw-r--r--svx/source/engine3d/helperhittest3d.cxx2
-rw-r--r--svx/source/engine3d/lathe3d.cxx6
-rw-r--r--svx/source/engine3d/obj3d.cxx8
-rw-r--r--svx/source/engine3d/objfac3d.cxx4
-rw-r--r--svx/source/engine3d/polygn3d.cxx2
-rw-r--r--svx/source/engine3d/polysc3d.cxx4
-rw-r--r--svx/source/engine3d/scene3d.cxx8
-rw-r--r--svx/source/engine3d/sphere3d.cxx6
-rw-r--r--svx/source/engine3d/view3d.cxx6
-rw-r--r--svx/source/engine3d/view3d1.cxx4
-rw-r--r--svx/source/fmcomp/fmgridcl.cxx6
-rw-r--r--svx/source/fmcomp/fmgridif.cxx2
-rw-r--r--svx/source/fmcomp/gridcell.cxx8
-rw-r--r--svx/source/fmcomp/gridctrl.cxx2
-rw-r--r--svx/source/fmcomp/gridctrl.src2
-rw-r--r--svx/source/fmcomp/xmlexchg.cxx2
-rw-r--r--svx/source/form/ParseContext.cxx4
-rw-r--r--svx/source/form/databaselocationinput.cxx2
-rw-r--r--svx/source/form/datanavi.cxx6
-rw-r--r--svx/source/form/datanavi.src2
-rw-r--r--svx/source/form/filtnav.cxx2
-rw-r--r--svx/source/form/filtnav.src29
-rw-r--r--svx/source/form/fmPropBrw.cxx2
-rw-r--r--svx/source/form/fmexch.cxx2
-rw-r--r--svx/source/form/fmexpl.cxx4
-rw-r--r--svx/source/form/fmexpl.src2
-rw-r--r--svx/source/form/fmobj.cxx2
-rw-r--r--svx/source/form/fmobjfac.cxx4
-rw-r--r--svx/source/form/fmpage.cxx4
-rw-r--r--svx/source/form/fmpgeimp.cxx6
-rw-r--r--svx/source/form/fmshell.cxx10
-rw-r--r--svx/source/form/fmshimp.cxx119
-rw-r--r--svx/source/form/fmsrccfg.cxx2
-rw-r--r--svx/source/form/fmsrcimp.cxx6
-rw-r--r--svx/source/form/fmstring.src2
-rw-r--r--svx/source/form/fmtextcontroldialogs.cxx2
-rw-r--r--svx/source/form/fmtextcontrolshell.cxx2
-rw-r--r--svx/source/form/fmundo.cxx4
-rw-r--r--svx/source/form/fmview.cxx8
-rw-r--r--svx/source/form/fmvwimp.cxx252
-rw-r--r--svx/source/form/formcontrolfactory.cxx2
-rw-r--r--svx/source/form/formcontroller.cxx109
-rw-r--r--svx/source/form/formshell.src2
-rw-r--r--svx/source/form/navigatortree.cxx6
-rw-r--r--svx/source/form/navigatortreemodel.cxx4
-rw-r--r--svx/source/form/sqlparserclient.cxx2
-rw-r--r--svx/source/form/tabwin.cxx2
-rw-r--r--svx/source/form/tbxform.cxx6
-rw-r--r--svx/source/form/typemap.cxx2
-rw-r--r--svx/source/gallery2/galbrws.cxx2
-rw-r--r--svx/source/gallery2/galbrws1.cxx2
-rw-r--r--svx/source/gallery2/galbrws1.hxx2
-rw-r--r--svx/source/gallery2/galbrws2.cxx6
-rw-r--r--svx/source/gallery2/galctrl.cxx4
-rw-r--r--svx/source/gallery2/galexpl.cxx6
-rw-r--r--svx/source/gallery2/gallery1.cxx4
-rw-r--r--svx/source/gallery2/galmisc.cxx2
-rw-r--r--svx/source/gallery2/galtheme.cxx2
-rw-r--r--svx/source/gengal/gengal.cxx2
-rw-r--r--svx/source/inc/fmshimp.hxx2
-rw-r--r--svx/source/inc/fmvwimp.hxx23
-rw-r--r--svx/source/inc/formcontroller.hxx3
-rw-r--r--svx/source/inc/sqlparserclient.hxx2
-rw-r--r--svx/source/items/chrtitem.cxx2
-rw-r--r--svx/source/items/clipfmtitem.cxx2
-rw-r--r--svx/source/items/drawitem.cxx2
-rw-r--r--svx/source/items/hlnkitem.cxx2
-rw-r--r--svx/source/items/ofaitem.cxx2
-rw-r--r--svx/source/items/postattr.cxx2
-rw-r--r--svx/source/items/rotmodit.cxx2
-rw-r--r--svx/source/items/svxerr.cxx2
-rw-r--r--svx/source/items/svxerr.src2
-rw-r--r--svx/source/mnuctrls/clipboardctl.cxx4
-rw-r--r--svx/source/mnuctrls/fntszctl.cxx2
-rw-r--r--svx/source/mnuctrls/makefile.mk2
-rw-r--r--svx/source/sdr/contact/objectcontactofobjlistpainter.cxx21
-rw-r--r--svx/source/sdr/contact/objectcontactofpageview.cxx4
-rw-r--r--svx/source/sdr/contact/viewcontactofgraphic.cxx4
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrobj.cxx2
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx2
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrpage.cxx4
-rw-r--r--svx/source/sdr/contact/viewcontactofunocontrol.cxx2
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofgraphic.cxx36
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofpageobj.cxx2
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx2
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx2
-rw-r--r--svx/source/sdr/primitive2d/primitivefactory2d.cxx2
-rw-r--r--svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx2
-rw-r--r--svx/source/sdr/properties/e3dsceneproperties.cxx2
-rw-r--r--svx/source/sdr/properties/itemsettools.cxx2
-rw-r--r--svx/source/sdr/properties/properties.cxx2
-rw-r--r--svx/source/src/errtxt.src515
-rw-r--r--svx/source/src/makefile.mk5
-rw-r--r--svx/source/stbctrls/insctrl.cxx2
-rw-r--r--svx/source/stbctrls/makefile.mk12
-rw-r--r--svx/source/stbctrls/modctrl.cxx2
-rw-r--r--svx/source/stbctrls/pszctrl.cxx4
-rw-r--r--svx/source/stbctrls/selctrl.cxx2
-rw-r--r--svx/source/stbctrls/xmlsecctrl.cxx4
-rw-r--r--svx/source/stbctrls/zoomctrl.cxx2
-rw-r--r--svx/source/svdraw/ActionDescriptionProvider.cxx6
-rw-r--r--svx/source/svdraw/sdrpagewindow.cxx6
-rw-r--r--svx/source/svdraw/sdrpaintwindow.cxx2
-rw-r--r--svx/source/svdraw/svdattr.cxx6
-rw-r--r--svx/source/svdraw/svdcrtv.cxx4
-rw-r--r--svx/source/svdraw/svddrgmt.cxx10
-rw-r--r--svx/source/svdraw/svddrgv.cxx8
-rw-r--r--svx/source/svdraw/svdedtv.cxx4
-rw-r--r--svx/source/svdraw/svdedtv1.cxx8
-rw-r--r--svx/source/svdraw/svdedtv2.cxx6
-rw-r--r--svx/source/svdraw/svdedxv.cxx12
-rw-r--r--svx/source/svdraw/svdetc.cxx8
-rw-r--r--svx/source/svdraw/svdfmtf.cxx2
-rw-r--r--svx/source/svdraw/svdglev.cxx4
-rw-r--r--svx/source/svdraw/svdhdl.cxx6
-rw-r--r--svx/source/svdraw/svdibrow.cxx4
-rw-r--r--svx/source/svdraw/svditer.cxx2
-rw-r--r--svx/source/svdraw/svdlayer.cxx4
-rw-r--r--svx/source/svdraw/svdmark.cxx6
-rw-r--r--svx/source/svdraw/svdmodel.cxx10
-rw-r--r--svx/source/svdraw/svdmrkv.cxx8
-rw-r--r--svx/source/svdraw/svdmrkv1.cxx2
-rw-r--r--svx/source/svdraw/svdoashp.cxx14
-rw-r--r--svx/source/svdraw/svdoattr.cxx2
-rw-r--r--svx/source/svdraw/svdobj.cxx6
-rw-r--r--svx/source/svdraw/svdocapt.cxx4
-rw-r--r--svx/source/svdraw/svdocirc.cxx4
-rw-r--r--svx/source/svdraw/svdoedge.cxx4
-rw-r--r--svx/source/svdraw/svdograf.cxx198
-rw-r--r--svx/source/svdraw/svdogrp.cxx6
-rw-r--r--svx/source/svdraw/svdomeas.cxx6
-rw-r--r--svx/source/svdraw/svdomedia.cxx4
-rw-r--r--svx/source/svdraw/svdoole2.cxx4
-rw-r--r--svx/source/svdraw/svdopage.cxx4
-rw-r--r--svx/source/svdraw/svdopath.cxx4
-rw-r--r--svx/source/svdraw/svdorect.cxx4
-rw-r--r--svx/source/svdraw/svdotext.cxx6
-rw-r--r--svx/source/svdraw/svdotextdecomposition.cxx2
-rw-r--r--svx/source/svdraw/svdotextpathdecomposition.cxx2
-rw-r--r--svx/source/svdraw/svdotxat.cxx2
-rw-r--r--svx/source/svdraw/svdotxdr.cxx4
-rw-r--r--svx/source/svdraw/svdotxed.cxx2
-rw-r--r--svx/source/svdraw/svdotxln.cxx2
-rw-r--r--svx/source/svdraw/svdotxtr.cxx4
-rw-r--r--svx/source/svdraw/svdouno.cxx8
-rw-r--r--svx/source/svdraw/svdpage.cxx2
-rw-r--r--svx/source/svdraw/svdpagv.cxx19
-rw-r--r--[-rwxr-xr-x]svx/source/svdraw/svdpntv.cxx12
-rw-r--r--svx/source/svdraw/svdpoev.cxx4
-rw-r--r--svx/source/svdraw/svdsnpv.cxx4
-rw-r--r--svx/source/svdraw/svdstr.src2
-rw-r--r--svx/source/svdraw/svdundo.cxx8
-rw-r--r--svx/source/svdraw/svdview.cxx6
-rw-r--r--svx/source/svdraw/svdviter.cxx4
-rw-r--r--svx/source/svdraw/svdxcgv.cxx10
-rw-r--r--svx/source/table/accessiblecell.cxx2
-rw-r--r--svx/source/table/cellcursor.cxx4
-rw-r--r--svx/source/table/celleditsource.cxx2
-rw-r--r--svx/source/table/svdotable.cxx4
-rw-r--r--svx/source/table/tablecontroller.cxx6
-rw-r--r--svx/source/table/tablehandles.cxx2
-rw-r--r--svx/source/table/tablelayouter.cxx4
-rw-r--r--svx/source/table/tablemodel.cxx4
-rw-r--r--svx/source/tbxctrls/colrctrl.cxx6
-rw-r--r--svx/source/tbxctrls/extrusioncontrols.cxx3
-rw-r--r--svx/source/tbxctrls/fillctrl.cxx4
-rw-r--r--svx/source/tbxctrls/fontworkgallery.cxx6
-rw-r--r--svx/source/tbxctrls/formatpaintbrushctrl.cxx2
-rw-r--r--svx/source/tbxctrls/grafctrl.cxx4
-rw-r--r--svx/source/tbxctrls/itemwin.cxx6
-rw-r--r--svx/source/tbxctrls/layctrl.cxx2
-rw-r--r--svx/source/tbxctrls/lboxctrl.cxx2
-rw-r--r--svx/source/tbxctrls/linectrl.cxx6
-rw-r--r--svx/source/tbxctrls/tbcontrl.cxx24
-rw-r--r--svx/source/tbxctrls/tbxalign.cxx4
-rw-r--r--svx/source/tbxctrls/tbxcolor.cxx2
-rw-r--r--svx/source/tbxctrls/tbxdrctl.cxx6
-rw-r--r--svx/source/tbxctrls/verttexttbxctrl.cxx2
-rw-r--r--svx/source/toolbars/extrusionbar.cxx2
-rw-r--r--svx/source/toolbars/fontworkbar.cxx8
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx2
-rw-r--r--svx/source/unodraw/UnoGraphicExporter.cxx11
-rw-r--r--svx/source/unodraw/UnoNameItemTable.cxx2
-rw-r--r--svx/source/unodraw/UnoNamespaceMap.cxx4
-rw-r--r--svx/source/unodraw/XPropertyTable.cxx4
-rw-r--r--svx/source/unodraw/unobtabl.cxx4
-rw-r--r--svx/source/unodraw/unoctabl.cxx4
-rw-r--r--svx/source/unodraw/unodtabl.cxx2
-rw-r--r--svx/source/unodraw/unogtabl.cxx2
-rw-r--r--svx/source/unodraw/unohtabl.cxx2
-rw-r--r--svx/source/unodraw/unomod.cxx6
-rw-r--r--svx/source/unodraw/unomtabl.cxx4
-rw-r--r--svx/source/unodraw/unopage.cxx4
-rw-r--r--svx/source/unodraw/unopool.cxx4
-rw-r--r--svx/source/unodraw/unoprov.cxx4
-rw-r--r--svx/source/unodraw/unoshap2.cxx2
-rw-r--r--svx/source/unodraw/unoshap3.cxx4
-rw-r--r--svx/source/unodraw/unoshap4.cxx6
-rw-r--r--svx/source/unodraw/unoshape.cxx10
-rw-r--r--svx/source/unodraw/unoshcol.cxx2
-rw-r--r--svx/source/unodraw/unoshtxt.cxx2
-rw-r--r--svx/source/unodraw/unottabl.cxx2
-rw-r--r--svx/source/unogallery/unogalitem.cxx2
-rw-r--r--svx/source/unogallery/unogaltheme.cxx2
-rw-r--r--svx/source/xml/xmleohlp.cxx2
-rw-r--r--svx/source/xml/xmlexport.cxx4
-rw-r--r--svx/source/xml/xmlgrhlp.cxx15
-rw-r--r--svx/source/xml/xmlxtexp.cxx2
-rw-r--r--svx/source/xml/xmlxtimp.cxx2
-rw-r--r--svx/source/xoutdev/_xoutbmp.cxx2
-rw-r--r--svx/source/xoutdev/xattr.cxx6
-rw-r--r--svx/source/xoutdev/xattr2.cxx2
-rw-r--r--svx/source/xoutdev/xattrbmp.cxx4
-rw-r--r--svx/source/xoutdev/xexch.cxx2
-rw-r--r--svx/source/xoutdev/xpool.cxx2
-rw-r--r--svx/source/xoutdev/xtabbtmp.cxx2
-rw-r--r--svx/source/xoutdev/xtabcolr.cxx2
-rw-r--r--svx/source/xoutdev/xtabdash.cxx2
-rw-r--r--svx/source/xoutdev/xtabgrdt.cxx2
-rw-r--r--svx/source/xoutdev/xtabhtch.cxx4
-rw-r--r--svx/source/xoutdev/xtablend.cxx2
-rw-r--r--svx/util/cui.dxp1
-rw-r--r--svx/util/cui.flt139
-rw-r--r--svx/util/dl.flt139
-rw-r--r--svx/util/makefile.mk102
-rw-r--r--svx/util/svx.flt134
-rw-r--r--sysui/desktop/macosx/makefile.mk3
-rw-r--r--ucb/prj/build.lst2
-rw-r--r--ucb/source/ucp/file/shell.cxx38
-rw-r--r--ucb/source/ucp/webdav/LinkSequence.cxx4
-rw-r--r--ucb/source/ucp/webdav/LockEntrySequence.cxx4
-rw-r--r--ucb/source/ucp/webdav/LockSequence.cxx26
-rw-r--r--ucb/source/ucp/webdav/NeonHeadRequest.cxx89
-rw-r--r--ucb/source/ucp/webdav/NeonPropFindRequest.cxx18
-rw-r--r--ucb/source/ucp/webdav/NeonSession.cxx20
-rw-r--r--ucb/source/ucp/webdav/NeonUri.cxx18
-rw-r--r--ucb/source/ucp/webdav/UCBDeadPropertyValue.cxx4
-rw-r--r--ucb/source/ucp/webdav/webdavcontent.cxx57
-rw-r--r--uui/prj/build.lst2
-rw-r--r--uui/source/filechanged.src2
-rw-r--r--uui/source/sslwarndlg.src1
-rw-r--r--vbahelper/inc/vbahelper/vbadocumentsbase.hxx8
-rwxr-xr-xvbahelper/inc/vbahelper/vbaeventshelperbase.hxx26
-rw-r--r--vbahelper/inc/vbahelper/vbahelper.hxx7
-rw-r--r--vbahelper/prj/build.lst2
-rw-r--r--vbahelper/source/msforms/makefile.mk9
-rw-r--r--vbahelper/source/msforms/vbacontrol.cxx1
-rw-r--r--vbahelper/source/msforms/vbauserform.cxx36
-rw-r--r--vbahelper/source/vbahelper/makefile.mk8
-rw-r--r--vbahelper/source/vbahelper/vbaapplicationbase.cxx55
-rw-r--r--vbahelper/source/vbahelper/vbacommandbarcontrol.cxx40
-rw-r--r--vbahelper/source/vbahelper/vbadocumentbase.cxx91
-rw-r--r--vbahelper/source/vbahelper/vbadocumentsbase.cxx21
-rwxr-xr-xvbahelper/source/vbahelper/vbaeventshelperbase.cxx29
-rw-r--r--vbahelper/source/vbahelper/vbahelper.cxx286
-rw-r--r--xmloff/Library_xo.mk401
-rw-r--r--xmloff/Library_xof.mk112
-rw-r--r--xmloff/Makefile38
-rw-r--r--xmloff/Module_xmloff.mk40
-rw-r--r--xmloff/Package_dtd.mk45
-rw-r--r--xmloff/Package_inc.mk131
-rwxr-xr-xxmloff/inc/forms/form_handler_factory.hxx50
-rwxr-xr-xxmloff/inc/forms/property_handler.hxx84
-rwxr-xr-xxmloff/inc/forms/property_ids.hxx56
-rw-r--r--xmloff/inc/functional.hxx27
-rw-r--r--xmloff/inc/makefile.mk48
-rw-r--r--xmloff/inc/txtflde.hxx2
-rw-r--r--xmloff/inc/xmloff/DashStyle.hxx (renamed from xmloff/inc/DashStyle.hxx)0
-rw-r--r--xmloff/inc/xmloff/GradientStyle.hxx (renamed from xmloff/inc/GradientStyle.hxx)0
-rw-r--r--xmloff/inc/xmloff/HatchStyle.hxx (renamed from xmloff/inc/HatchStyle.hxx)0
-rw-r--r--xmloff/inc/xmloff/ImageStyle.hxx (renamed from xmloff/inc/ImageStyle.hxx)0
-rw-r--r--xmloff/inc/xmloff/MarkerStyle.hxx (renamed from xmloff/inc/MarkerStyle.hxx)0
-rw-r--r--xmloff/inc/xmloff/VisAreaContext.hxx (renamed from xmloff/inc/VisAreaContext.hxx)0
-rw-r--r--xmloff/inc/xmloff/VisAreaExport.hxx (renamed from xmloff/inc/VisAreaExport.hxx)0
-rw-r--r--xmloff/inc/xmloff/XMLEmbeddedObjectExportFilter.hxx (renamed from xmloff/inc/XMLEmbeddedObjectExportFilter.hxx)0
-rw-r--r--xmloff/inc/xmloff/XMLFilterServiceNames.h (renamed from xmloff/inc/XMLFilterServiceNames.h)0
-rw-r--r--xmloff/inc/xmloff/XMLTextListAutoStylePool.hxx (renamed from xmloff/inc/XMLTextListAutoStylePool.hxx)0
-rw-r--r--xmloff/inc/xmloff/XMLTextShapeImportHelper.hxx (renamed from xmloff/source/text/XMLTextShapeImportHelper.hxx)0
-rw-r--r--xmloff/inc/xmloff/functional.hxx54
-rw-r--r--xmloff/inc/xmloff/i18nmap.hxx (renamed from xmloff/inc/i18nmap.hxx)0
-rw-r--r--xmloff/inc/xmloff/numehelp.hxx (renamed from xmloff/inc/numehelp.hxx)0
-rw-r--r--xmloff/inc/xmloff/txtimp.hxx2
-rw-r--r--xmloff/inc/xmloff/txtimppr.hxx (renamed from xmloff/inc/txtimppr.hxx)0
-rw-r--r--xmloff/inc/xmloff/unoatrcn.hxx (renamed from xmloff/inc/unoatrcn.hxx)0
-rw-r--r--xmloff/inc/xmloff/xformsexport.hxx (renamed from xmloff/inc/xformsexport.hxx)0
-rw-r--r--xmloff/inc/xmloff/xformsimport.hxx (renamed from xmloff/inc/xformsimport.hxx)0
-rw-r--r--xmloff/inc/xmloff/xmlcnitm.hxx (renamed from xmloff/inc/xmlcnitm.hxx)0
-rw-r--r--xmloff/inc/xmloff/xmlerror.hxx (renamed from xmloff/inc/xmlerror.hxx)0
-rw-r--r--xmloff/inc/xmloff/xmlkywd.hxx1998
-rw-r--r--xmloff/inc/xmloff/xmlnmspe.hxx (renamed from xmloff/inc/xmlnmspe.hxx)0
-rw-r--r--xmloff/inc/xmloff/xmlreg.hxx (renamed from xmloff/inc/xmlreg.hxx)0
-rw-r--r--xmloff/inc/xmloff/xmltabe.hxx (renamed from xmloff/inc/xmltabe.hxx)0
-rw-r--r--xmloff/inc/xmloff/xmltoken.hxx3
-rw-r--r--xmloff/inc/xmlversion.hxx2
-rw-r--r--xmloff/prj/build.lst20
-rw-r--r--xmloff/prj/d.lst120
-rw-r--r--xmloff/prj/makefile.mk (renamed from sfx2/source/inet/makefile.mk)28
-rw-r--r--xmloff/source/chart/PropertyMap.hxx2
-rwxr-xr-xxmloff/source/chart/SchXMLCalculationSettingsContext.cxx2
-rw-r--r--xmloff/source/chart/SchXMLChartContext.cxx2
-rw-r--r--xmloff/source/chart/SchXMLExport.cxx2
-rw-r--r--xmloff/source/chart/SchXMLImport.cxx2
-rw-r--r--xmloff/source/chart/SchXMLParagraphContext.cxx2
-rw-r--r--xmloff/source/chart/SchXMLPlotAreaContext.cxx2
-rw-r--r--xmloff/source/chart/SchXMLSeries2Context.cxx2
-rw-r--r--xmloff/source/chart/SchXMLTableContext.cxx8
-rwxr-xr-xxmloff/source/chart/SchXMLTextListContext.cxx2
-rw-r--r--xmloff/source/chart/SchXMLTools.cxx2
-rw-r--r--xmloff/source/chart/XMLChartStyleContext.cxx2
-rw-r--r--xmloff/source/chart/XMLLabelSeparatorContext.cxx2
-rw-r--r--xmloff/source/chart/XMLSymbolImageContext.cxx2
-rw-r--r--xmloff/source/chart/contexts.cxx2
-rw-r--r--xmloff/source/chart/makefile.mk70
-rw-r--r--xmloff/source/core/DocumentSettingsContext.cxx2
-rw-r--r--xmloff/source/core/DomBuilderContext.cxx2
-rw-r--r--xmloff/source/core/DomExport.cxx2
-rw-r--r--xmloff/source/core/RDFaExportHelper.cxx2
-rw-r--r--xmloff/source/core/SettingsExportHelper.cxx2
-rw-r--r--xmloff/source/core/XMLBase64Export.cxx2
-rw-r--r--xmloff/source/core/XMLEmbeddedObjectExportFilter.cxx2
-rw-r--r--xmloff/source/core/XMLEmbeddedObjectImportContext.cxx6
-rw-r--r--xmloff/source/core/facreg.cxx2
-rw-r--r--xmloff/source/core/i18nmap.cxx2
-rw-r--r--xmloff/source/core/makefile.mk76
-rw-r--r--xmloff/source/core/nmspmap.cxx2
-rw-r--r--xmloff/source/core/unoatrcn.cxx2
-rw-r--r--xmloff/source/core/xmlcnitm.cxx2
-rw-r--r--xmloff/source/core/xmlerror.cxx2
-rw-r--r--xmloff/source/core/xmlexp.cxx20
-rw-r--r--xmloff/source/core/xmlimp.cxx4
-rw-r--r--xmloff/source/core/xmltoken.cxx3
-rw-r--r--xmloff/source/core/xmluconv.cxx88
-rw-r--r--xmloff/source/draw/XMLGraphicsDefaultStyle.cxx20
-rw-r--r--xmloff/source/draw/XMLImageMapContext.cxx4
-rw-r--r--xmloff/source/draw/XMLImageMapExport.cxx2
-rw-r--r--xmloff/source/draw/XMLNumberStyles.cxx2
-rw-r--r--xmloff/source/draw/XMLReplacementImageContext.cxx2
-rw-r--r--xmloff/source/draw/XMLShapeStyleContext.cxx4
-rw-r--r--xmloff/source/draw/animationexport.cxx2
-rw-r--r--xmloff/source/draw/animationimport.cxx2
-rw-r--r--xmloff/source/draw/animexp.cxx2
-rw-r--r--xmloff/source/draw/animimp.cxx2
-rw-r--r--xmloff/source/draw/descriptionimp.cxx2
-rw-r--r--xmloff/source/draw/eventimp.cxx2
-rw-r--r--xmloff/source/draw/layerexp.cxx2
-rw-r--r--xmloff/source/draw/layerimp.cxx2
-rw-r--r--xmloff/source/draw/makefile.mk85
-rw-r--r--xmloff/source/draw/sdpropls.cxx2
-rw-r--r--xmloff/source/draw/sdpropls.hxx2
-rw-r--r--xmloff/source/draw/sdxmlexp.cxx4
-rw-r--r--xmloff/source/draw/sdxmlimp.cxx4
-rw-r--r--xmloff/source/draw/shapeexport.cxx2
-rw-r--r--xmloff/source/draw/shapeexport2.cxx2
-rw-r--r--xmloff/source/draw/shapeexport3.cxx2
-rw-r--r--xmloff/source/draw/shapeexport4.cxx2
-rw-r--r--xmloff/source/draw/shapeimport.cxx2
-rw-r--r--xmloff/source/draw/viewcontext.cxx4
-rw-r--r--xmloff/source/draw/ximp3dscene.cxx2
-rw-r--r--xmloff/source/draw/ximpcustomshape.cxx4
-rw-r--r--xmloff/source/draw/ximpgrp.cxx2
-rw-r--r--xmloff/source/draw/ximplink.cxx2
-rw-r--r--xmloff/source/draw/ximppage.cxx2
-rw-r--r--xmloff/source/draw/ximpshap.cxx34
-rw-r--r--xmloff/source/draw/ximpshow.cxx2
-rw-r--r--xmloff/source/draw/ximpstyl.cxx4
-rw-r--r--xmloff/source/forms/controlelement.cxx2
-rw-r--r--xmloff/source/forms/controlelement.hxx2
-rw-r--r--xmloff/source/forms/controlpropertymap.cxx2
-rw-r--r--xmloff/source/forms/elementexport.cxx129
-rw-r--r--xmloff/source/forms/elementexport.hxx7
-rw-r--r--xmloff/source/forms/elementimport.cxx513
-rw-r--r--xmloff/source/forms/elementimport.hxx65
-rw-r--r--xmloff/source/forms/formattributes.cxx2
-rw-r--r--xmloff/source/forms/formevents.cxx2
-rw-r--r--xmloff/source/forms/formlayerexport.cxx2
-rw-r--r--xmloff/source/forms/formsimp.cxx2
-rw-r--r--xmloff/source/forms/handler/form_handler_factory.cxx90
-rw-r--r--xmloff/source/forms/handler/property_handler_base.cxx61
-rw-r--r--xmloff/source/forms/handler/property_handler_base.hxx64
-rw-r--r--xmloff/source/forms/handler/vcl_date_handler.cxx114
-rw-r--r--xmloff/source/forms/handler/vcl_date_handler.hxx55
-rw-r--r--xmloff/source/forms/handler/vcl_time_handler.cxx115
-rw-r--r--xmloff/source/forms/handler/vcl_time_handler.hxx55
-rw-r--r--xmloff/source/forms/layerexport.cxx4
-rw-r--r--xmloff/source/forms/layerimport.cxx4
-rw-r--r--xmloff/source/forms/makefile.mk70
-rw-r--r--xmloff/source/forms/officeforms.cxx2
-rw-r--r--xmloff/source/forms/property_description.hxx140
-rw-r--r--xmloff/source/forms/property_group.hxx47
-rw-r--r--xmloff/source/forms/property_meta_data.cxx270
-rw-r--r--xmloff/source/forms/property_meta_data.hxx65
-rw-r--r--xmloff/source/forms/propertyexport.cxx29
-rw-r--r--xmloff/source/forms/propertyexport.hxx19
-rw-r--r--xmloff/source/forms/propertyimport.cxx13
-rw-r--r--xmloff/source/forms/propertyimport.hxx2
-rw-r--r--xmloff/source/forms/valueproperties.cxx36
-rw-r--r--xmloff/source/meta/MetaExportComponent.cxx2
-rw-r--r--xmloff/source/meta/MetaImportComponent.cxx2
-rw-r--r--xmloff/source/meta/makefile.mk53
-rw-r--r--xmloff/source/meta/xmlmetae.cxx2
-rw-r--r--xmloff/source/meta/xmlmetai.cxx2
-rw-r--r--xmloff/source/script/XMLEventExport.cxx2
-rw-r--r--xmloff/source/script/XMLEventImportHelper.cxx4
-rw-r--r--xmloff/source/script/XMLEventsImportContext.cxx4
-rw-r--r--xmloff/source/script/XMLScriptContextFactory.cxx2
-rw-r--r--xmloff/source/script/XMLScriptExportHandler.cxx2
-rw-r--r--xmloff/source/script/XMLStarBasicContextFactory.cxx2
-rw-r--r--xmloff/source/script/XMLStarBasicExportHandler.cxx2
-rw-r--r--xmloff/source/script/makefile.mk56
-rw-r--r--xmloff/source/script/xmlscripti.cxx2
-rw-r--r--xmloff/source/style/DashStyle.cxx4
-rw-r--r--xmloff/source/style/FillStyleContext.cxx12
-rw-r--r--xmloff/source/style/GradientStyle.cxx4
-rw-r--r--xmloff/source/style/HatchStyle.cxx4
-rw-r--r--xmloff/source/style/ImageStyle.cxx4
-rw-r--r--xmloff/source/style/MarkerStyle.cxx4
-rw-r--r--xmloff/source/style/PageHeaderFooterContext.cxx2
-rw-r--r--xmloff/source/style/PageMasterImportContext.cxx2
-rw-r--r--xmloff/source/style/PageMasterStyleMap.cxx2
-rw-r--r--xmloff/source/style/TransGradientStyle.cxx2
-rw-r--r--xmloff/source/style/VisAreaContext.cxx4
-rw-r--r--xmloff/source/style/VisAreaExport.cxx4
-rw-r--r--xmloff/source/style/XMLBackgroundImageContext.cxx2
-rw-r--r--xmloff/source/style/XMLBackgroundImageExport.cxx2
-rw-r--r--xmloff/source/style/XMLFontAutoStylePool.cxx4
-rw-r--r--xmloff/source/style/XMLFontStylesContext.cxx2
-rw-r--r--xmloff/source/style/XMLFootnoteSeparatorExport.cxx2
-rw-r--r--xmloff/source/style/XMLFootnoteSeparatorImport.cxx2
-rw-r--r--xmloff/source/style/XMLPageExport.cxx2
-rw-r--r--xmloff/source/style/impastp4.cxx2
-rw-r--r--xmloff/source/style/makefile.mk219
-rw-r--r--xmloff/source/style/numehelp.cxx4
-rw-r--r--xmloff/source/style/prstylei.cxx4
-rw-r--r--xmloff/source/style/styleexp.cxx2
-rw-r--r--xmloff/source/style/xmlaustp.cxx4
-rw-r--r--xmloff/source/style/xmlexppr.cxx2
-rw-r--r--xmloff/source/style/xmlimppr.cxx6
-rw-r--r--xmloff/source/style/xmlnume.cxx4
-rw-r--r--xmloff/source/style/xmlnumfe.cxx2
-rw-r--r--xmloff/source/style/xmlnumfi.cxx2
-rw-r--r--xmloff/source/style/xmlnumi.cxx4
-rw-r--r--xmloff/source/style/xmlstyle.cxx2
-rw-r--r--xmloff/source/style/xmltabe.cxx4
-rw-r--r--xmloff/source/style/xmltabi.cxx4
-rw-r--r--xmloff/source/table/XMLTableExport.cxx2
-rw-r--r--xmloff/source/table/XMLTableImport.cxx2
-rw-r--r--xmloff/source/table/makefile.mk48
-rw-r--r--xmloff/source/table/tabledesignsimporter.cxx103
-rw-r--r--xmloff/source/text/XMLAutoMarkFileContext.cxx2
-rw-r--r--xmloff/source/text/XMLAutoTextContainerEventImport.cxx2
-rw-r--r--xmloff/source/text/XMLAutoTextEventExport.cxx2
-rw-r--r--xmloff/source/text/XMLAutoTextEventImport.cxx2
-rw-r--r--xmloff/source/text/XMLCalculationSettingsContext.cxx2
-rw-r--r--xmloff/source/text/XMLChangeElementImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLChangeImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLChangeInfoContext.cxx2
-rw-r--r--xmloff/source/text/XMLChangedRegionImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLFootnoteBodyImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLFootnoteImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexBibliographyConfigurationContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexBibliographyEntryContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexBibliographySourceContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexChapterInfoEntryContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexIllustrationSourceContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexMarkExport.cxx2
-rw-r--r--xmloff/source/text/XMLIndexObjectSourceContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexSimpleEntryContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexSourceBaseContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexTOCContext.cxx4
-rw-r--r--xmloff/source/text/XMLIndexTOCSourceContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexTOCStylesContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexTabStopEntryContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexTableSourceContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexTemplateContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexTitleTemplateContext.cxx2
-rw-r--r--xmloff/source/text/XMLIndexUserSourceContext.cxx2
-rw-r--r--xmloff/source/text/XMLLineNumberingExport.cxx2
-rw-r--r--xmloff/source/text/XMLLineNumberingImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLLineNumberingSeparatorImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLRedlineExport.cxx2
-rw-r--r--xmloff/source/text/XMLSectionExport.cxx2
-rw-r--r--xmloff/source/text/XMLSectionFootnoteConfigExport.cxx2
-rw-r--r--xmloff/source/text/XMLSectionFootnoteConfigImport.cxx2
-rw-r--r--xmloff/source/text/XMLSectionImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLSectionSourceDDEImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLSectionSourceImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLStringBufferImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLTextCharStyleNamesElementExport.cxx2
-rw-r--r--xmloff/source/text/XMLTextColumnsContext.cxx2
-rw-r--r--xmloff/source/text/XMLTextColumnsExport.cxx2
-rw-r--r--xmloff/source/text/XMLTextFrameContext.cxx4
-rw-r--r--xmloff/source/text/XMLTextFrameHyperlinkContext.cxx2
-rw-r--r--xmloff/source/text/XMLTextHeaderFooterContext.cxx2
-rw-r--r--xmloff/source/text/XMLTextListAutoStylePool.cxx10
-rw-r--r--xmloff/source/text/XMLTextListBlockContext.cxx2
-rw-r--r--xmloff/source/text/XMLTextListItemContext.cxx2
-rw-r--r--xmloff/source/text/XMLTextMarkImportContext.cxx2
-rw-r--r--xmloff/source/text/XMLTextMasterPageContext.cxx2
-rw-r--r--xmloff/source/text/XMLTextMasterPageExport.cxx2
-rw-r--r--xmloff/source/text/XMLTextMasterStylesContext.cxx2
-rw-r--r--xmloff/source/text/XMLTextNumRuleInfo.cxx2
-rw-r--r--xmloff/source/text/XMLTextShapeImportHelper.cxx2
-rw-r--r--xmloff/source/text/XMLTextShapeStyleContext.cxx2
-rw-r--r--xmloff/source/text/XMLTrackedChangesImportContext.cxx2
-rw-r--r--xmloff/source/text/makefile.mk127
-rw-r--r--xmloff/source/text/txtdrope.cxx2
-rw-r--r--xmloff/source/text/txtdropi.cxx2
-rw-r--r--xmloff/source/text/txtexppr.cxx8
-rw-r--r--xmloff/source/text/txtexppr.hxx2
-rw-r--r--xmloff/source/text/txtflde.cxx2
-rw-r--r--xmloff/source/text/txtfldi.cxx2
-rw-r--r--xmloff/source/text/txtftne.cxx2
-rw-r--r--xmloff/source/text/txtimp.cxx6
-rw-r--r--xmloff/source/text/txtimppr.cxx2
-rw-r--r--xmloff/source/text/txtparae.cxx4
-rw-r--r--xmloff/source/text/txtparai.cxx2
-rw-r--r--xmloff/source/text/txtprmap.cxx2
-rw-r--r--xmloff/source/text/txtsecte.cxx2
-rw-r--r--xmloff/source/text/txtstyle.cxx28
-rw-r--r--xmloff/source/text/txtstyli.cxx2
-rw-r--r--xmloff/source/text/txtvfldi.cxx4
-rw-r--r--xmloff/source/transform/ChartOASISTContext.cxx2
-rw-r--r--xmloff/source/transform/ChartOOoTContext.cxx2
-rw-r--r--xmloff/source/transform/ChartPlotAreaOASISTContext.cxx2
-rw-r--r--xmloff/source/transform/ChartPlotAreaOOoTContext.cxx2
-rw-r--r--xmloff/source/transform/ControlOASISTContext.cxx2
-rw-r--r--xmloff/source/transform/ControlOOoTContext.cxx2
-rw-r--r--xmloff/source/transform/DlgOASISTContext.cxx2
-rw-r--r--xmloff/source/transform/DocumentTContext.cxx2
-rw-r--r--xmloff/source/transform/EventMap.cxx2
-rw-r--r--xmloff/source/transform/EventOASISTContext.cxx2
-rw-r--r--xmloff/source/transform/EventOOoTContext.cxx2
-rw-r--r--xmloff/source/transform/FormPropOASISTContext.cxx2
-rw-r--r--xmloff/source/transform/FormPropOOoTContext.cxx2
-rw-r--r--xmloff/source/transform/FrameOASISTContext.cxx2
-rw-r--r--xmloff/source/transform/FrameOOoTContext.cxx2
-rw-r--r--xmloff/source/transform/MergeElemTContext.cxx2
-rw-r--r--xmloff/source/transform/MetaTContext.cxx2
-rw-r--r--xmloff/source/transform/MetaTContext.hxx2
-rw-r--r--xmloff/source/transform/NotesTContext.cxx2
-rw-r--r--xmloff/source/transform/OOo2Oasis.cxx2
-rw-r--r--xmloff/source/transform/Oasis2OOo.cxx2
-rw-r--r--xmloff/source/transform/PropertyActionsOASIS.cxx2
-rw-r--r--xmloff/source/transform/PropertyActionsOOo.cxx2
-rw-r--r--xmloff/source/transform/StyleOASISTContext.cxx2
-rw-r--r--xmloff/source/transform/StyleOOoTContext.cxx2
-rw-r--r--xmloff/source/transform/TransformerBase.cxx2
-rw-r--r--xmloff/source/transform/XMLFilterRegistration.cxx4
-rw-r--r--xmloff/source/transform/makefile.mk103
-rw-r--r--xmloff/source/xforms/SchemaContext.cxx2
-rw-r--r--xmloff/source/xforms/SchemaRestrictionContext.cxx2
-rw-r--r--xmloff/source/xforms/SchemaSimpleTypeContext.cxx2
-rw-r--r--xmloff/source/xforms/TokenContext.cxx2
-rw-r--r--xmloff/source/xforms/XFormsBindContext.cxx4
-rw-r--r--xmloff/source/xforms/XFormsInstanceContext.cxx4
-rw-r--r--xmloff/source/xforms/XFormsModelContext.cxx4
-rw-r--r--xmloff/source/xforms/XFormsSubmissionContext.cxx4
-rw-r--r--xmloff/source/xforms/makefile.mk58
-rw-r--r--xmloff/source/xforms/xformsapi.cxx2
-rw-r--r--xmloff/source/xforms/xformsexport.cxx4
-rw-r--r--xmloff/source/xforms/xformsimport.cxx2
-rw-r--r--xmloff/util/makefile.mk96
-rw-r--r--xmlscript/prj/build.lst2
1365 files changed, 26304 insertions, 20996 deletions
diff --git a/avmedia/prj/build.lst b/avmedia/prj/build.lst
index 6651d9d74f8f..2348b606dcab 100644
--- a/avmedia/prj/build.lst
+++ b/avmedia/prj/build.lst
@@ -1,4 +1,4 @@
-av avmedia : l10n tools sfx2 NULL
+av avmedia : l10n tools sfx2 LIBXSLT:libxslt NULL
av avmedia usr1 - all av_mkout NULL
av avmedia\prj get - all av_prj NULL
av avmedia\inc get - all av_inv NULL
diff --git a/basic/inc/modsizeexceeded.hxx b/basic/inc/basic/modsizeexceeded.hxx
index e2d716259f09..e2d716259f09 100644
--- a/basic/inc/modsizeexceeded.hxx
+++ b/basic/inc/basic/modsizeexceeded.hxx
diff --git a/basic/inc/basic/sbmod.hxx b/basic/inc/basic/sbmod.hxx
index 0bc764e863fe..d6ee1d3eab0e 100644
--- a/basic/inc/basic/sbmod.hxx
+++ b/basic/inc/basic/sbmod.hxx
@@ -46,6 +46,7 @@ class SbProcedureProperty;
class SbIfaceMapperMethod;
class SbClassModuleObject;
+class ModuleInitDependencyMap;
struct ClassModuleRunInitItem;
struct SbClassData;
class SbModuleImpl;
@@ -62,6 +63,8 @@ class SbModule : public SbxObject
SbModuleImpl* mpSbModuleImpl; // Impl data
std::vector< String > mModuleVariableNames;
+ void implClearIfVarDependsOnDeletedBasic( SbxVariable* pVar, StarBASIC* pDeletedBasic );
+
protected:
com::sun::star::uno::Reference< com::sun::star::script::XInvocation > mxWrapper;
::rtl::OUString aOUSource;
@@ -74,7 +77,7 @@ protected:
SbxObjectRef pDocObject; // an impl object ( used by Document Modules )
bool bIsProxyModule;
- static void implProcessModuleRunInit( ClassModuleRunInitItem& rItem );
+ static void implProcessModuleRunInit( ModuleInitDependencyMap& rMap, ClassModuleRunInitItem& rItem );
void StartDefinitions();
SbMethod* GetMethod( const String&, SbxDataType );
SbProperty* GetProperty( const String&, SbxDataType );
@@ -84,6 +87,7 @@ protected:
USHORT Run( SbMethod* );
void RunInit();
void ClearPrivateVars();
+ void ClearVarsDependingOnDeletedBasic( StarBASIC* pDeletedBasic );
void GlobalRunInit( BOOL bBasicStart ); // for all modules
void GlobalRunDeInit( void );
const BYTE* FindNextStmnt( const BYTE*, USHORT&, USHORT& ) const;
@@ -94,6 +98,7 @@ protected:
virtual BOOL LoadCompleted();
virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
const SfxHint& rHint, const TypeId& rHintType );
+ void handleProcedureProperties( SfxBroadcaster& rBC, const SfxHint& rHint );
virtual ~SbModule();
public:
SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_BASICMOD,2);
diff --git a/basic/inc/basic/sbobjmod.hxx b/basic/inc/basic/sbobjmod.hxx
index 9ff46d1931f3..49fefb79309e 100644
--- a/basic/inc/basic/sbobjmod.hxx
+++ b/basic/inc/basic/sbobjmod.hxx
@@ -52,10 +52,18 @@ class SbObjModule : public SbModule
{
SbObjModule( const SbObjModule& );
SbObjModule();
+
+protected:
+ virtual ~SbObjModule();
+
public:
TYPEINFO();
SbObjModule( const String& rName, const com::sun::star::script::ModuleInfo& mInfo, bool bIsVbaCompatible );
virtual SbxVariable* Find( const XubString& rName, SbxClassType t );
+
+ virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+ const SfxHint& rHint, const TypeId& rHintType );
+
using SbxValue::GetObject;
SbxVariable* GetObject();
void SetUnoObject( const com::sun::star::uno::Any& aObj )throw ( com::sun::star::uno::RuntimeException ) ;
@@ -81,7 +89,7 @@ public:
SbUserFormModule( const String& rName, const com::sun::star::script::ModuleInfo& mInfo, bool bIsVBACompat );
virtual ~SbUserFormModule();
virtual SbxVariable* Find( const XubString& rName, SbxClassType t );
- void ResetApiObj();
+ void ResetApiObj( bool bTriggerTerminateEvent = true );
void Unload();
void Load();
void triggerMethod( const String& );
@@ -93,6 +101,11 @@ public:
void triggerLayoutEvent();
void triggerResizeEvent();
+ bool getInitState( void )
+ { return mbInit; }
+ void setInitState( bool bInit )
+ { mbInit = bInit; }
+
class SbUserFormModuleInstance* CreateInstance();
};
diff --git a/basic/inc/basic/sbstar.hxx b/basic/inc/basic/sbstar.hxx
index 7d189c363364..db67836890e9 100644
--- a/basic/inc/basic/sbstar.hxx
+++ b/basic/inc/basic/sbstar.hxx
@@ -38,6 +38,7 @@
#include <basic/sbdef.hxx>
#include <basic/sberrors.hxx>
#include <com/sun/star/script/ModuleInfo.hpp>
+#include <com/sun/star/frame/XModel.hpp>
class SbModule; // completed module
class SbiInstance; // runtime instance
@@ -77,6 +78,8 @@ class StarBASIC : public SbxObject
SbxObjectRef pVBAGlobals;
SbxObject* getVBAGlobals( );
+ void implClearDependingVarsOnDelete( StarBASIC* pDeletedBasic );
+
protected:
BOOL CError( SbError, const String&, xub_StrLen, xub_StrLen, xub_StrLen );
private:
@@ -206,6 +209,9 @@ public:
bool GetUNOConstant( const sal_Char* _pAsciiName, ::com::sun::star::uno::Any& aOut );
void QuitAndExitApplication();
BOOL IsQuitApplication() { return bQuit; };
+
+ static ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >
+ GetModelFromBasic( SbxObject* pBasic );
};
#ifndef __SB_SBSTARBASICREF_HXX
diff --git a/basic/inc/basic/sbxdef.hxx b/basic/inc/basic/sbxdef.hxx
index 89322be776f9..b85b3552c79e 100644
--- a/basic/inc/basic/sbxdef.hxx
+++ b/basic/inc/basic/sbxdef.hxx
@@ -106,6 +106,7 @@ enum SbxDataType {
};
const UINT32 SBX_TYPE_WITH_EVENTS_FLAG = 0x10000;
+const UINT32 SBX_TYPE_DIM_AS_NEW_FLAG = 0x20000;
const UINT32 SBX_FIXED_LEN_STRING_FLAG = 0x10000; // same value as above as no conflict possible
#endif
@@ -317,6 +318,8 @@ enum SbxError { // Ergebnis einer Rechenoperation/Konversion
#define SBX_REFERENCE 0x4000 // Parameter is Reference (DLL-call)
#define SBX_NO_MODIFY 0x8000 // SetModified is suppressed
#define SBX_WITH_EVENTS 0x0080 // Same value as unused SBX_HIDDEN
+#define SBX_DIM_AS_NEW 0x0800 // Same value as SBX_GBLSEARCH, cannot conflict as one
+ // is used for objects, the other for variables only
// Broadcaster-IDs:
#define SBX_HINT_DYING SFX_HINT_DYING
diff --git a/basic/inc/basic/sbxvar.hxx b/basic/inc/basic/sbxvar.hxx
index 0cddcbdf8d17..1ba1b5d1edfa 100644
--- a/basic/inc/basic/sbxvar.hxx
+++ b/basic/inc/basic/sbxvar.hxx
@@ -439,6 +439,7 @@ SV_DECL_REF(SbxInfo)
class SfxBroadcaster;
class SbxVariableImpl;
+class StarBASIC;
class SbxVariable : public SbxValue
{
@@ -499,7 +500,9 @@ public:
const String& GetDeclareClassName( void );
void SetDeclareClassName( const String& );
- void SetComListener( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xComListener );
+ void SetComListener( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xComListener,
+ StarBASIC* pParentBasic );
+ void ClearComListener( void );
static USHORT MakeHashCode( const String& rName );
};
diff --git a/basic/inc/svtmsg.hrc b/basic/inc/basic/svtmsg.hrc
index ff215d3fc9cb..ff215d3fc9cb 100644
--- a/basic/inc/svtmsg.hrc
+++ b/basic/inc/basic/svtmsg.hrc
diff --git a/basic/inc/testtool.hrc b/basic/inc/basic/testtool.hrc
index 075b462944c9..075b462944c9 100644
--- a/basic/inc/testtool.hrc
+++ b/basic/inc/basic/testtool.hrc
diff --git a/basic/inc/ttmsg.hrc b/basic/inc/basic/ttmsg.hrc
index 26f250bc6a6a..26f250bc6a6a 100644
--- a/basic/inc/ttmsg.hrc
+++ b/basic/inc/basic/ttmsg.hrc
diff --git a/basic/prj/build.lst b/basic/prj/build.lst
index c00a3d8412d3..8eab007313ec 100644
--- a/basic/prj/build.lst
+++ b/basic/prj/build.lst
@@ -1,4 +1,4 @@
-sb basic : l10n offuh oovbaapi svtools xmlscript framework salhelper NULL
+sb basic : l10n offuh oovbaapi svtools xmlscript framework salhelper LIBXSLT:libxslt NULL
sb basic usr1 - all sb_mkout NULL
sb basic\inc nmake - all sb_inc NULL
sb basic\source\app nmake - all sb_app sb_class sb_inc NULL
diff --git a/basic/prj/d.lst b/basic/prj/d.lst
index d8d0fce41994..41d1a59550f0 100644
--- a/basic/prj/d.lst
+++ b/basic/prj/d.lst
@@ -20,41 +20,10 @@ mkdir: %COMMON_DEST%\res%_EXT%
..\%__SRC%\lib\libsample.a %_DEST%\lib%_EXT%\libsample.a
mkdir: %_DEST%\inc%_EXT%\basic
-..\inc\testtool.hrc %_DEST%\inc%_EXT%\basic\testtool.hrc
-..\inc\ttmsg.hrc %_DEST%\inc%_EXT%\basic\ttmsg.hrc
-..\inc\basic\ttglobal.hrc %_DEST%\inc%_EXT%\basic\ttglobal.hrc
-..\inc\svtmsg.hrc %_DEST%\inc%_EXT%\basic\svtmsg.hrc
+..\inc\basic\*.hxx %_DEST%\inc%_EXT%\basic\*.hxx
+..\inc\basic\*.hrc %_DEST%\inc%_EXT%\basic\*.hrc
+..\inc\basic\*.h %_DEST%\inc%_EXT%\basic\*.h
-..\inc\basic\sbdef.hxx %_DEST%\inc%_EXT%\basic\sbdef.hxx
-..\inc\basic\sbmod.hxx %_DEST%\inc%_EXT%\basic\sbmod.hxx
-..\inc\basic\sbjsmod.hxx %_DEST%\inc%_EXT%\basic\sbjsmod.hxx
-..\inc\basic\sbmeth.hxx %_DEST%\inc%_EXT%\basic\sbmeth.hxx
-..\inc\basic\sbprop.hxx %_DEST%\inc%_EXT%\basic\sbprop.hxx
-..\inc\basic\sbstar.hxx %_DEST%\inc%_EXT%\basic\sbstar.hxx
-..\inc\basic\sbuno.hxx %_DEST%\inc%_EXT%\basic\sbuno.hxx
-..\inc\basic\basmgr.hxx %_DEST%\inc%_EXT%\basic\basmgr.hxx
-..\inc\basic\sberrors.hxx %_DEST%\inc%_EXT%\basic\sberrors.hxx
-..\inc\basic\basrdll.hxx %_DEST%\inc%_EXT%\basic\basrdll.hxx
-..\inc\basic\sbstdobj.hxx %_DEST%\inc%_EXT%\basic\sbstdobj.hxx
-..\inc\basic\process.hxx %_DEST%\inc%_EXT%\basic\process.hxx
-..\inc\basic\mybasic.hxx %_DEST%\inc%_EXT%\basic\mybasic.hxx
-..\inc\basic\testtool.hxx %_DEST%\inc%_EXT%\basic\testtool.hxx
-..\inc\basic\basicrt.hxx %_DEST%\inc%_EXT%\basic\basicrt.hxx
-..\inc\basic\dispdefs.hxx %_DEST%\inc%_EXT%\basic\dispdefs.hxx
-..\inc\basic\ttstrhlp.hxx %_DEST%\inc%_EXT%\basic\ttstrhlp.hxx
-
-..\inc\basic\sbx.hxx %_DEST%\inc%_EXT%\basic\sbx.hxx
-..\inc\basic\sbxcore.hxx %_DEST%\inc%_EXT%\basic\sbxcore.hxx
-..\inc\basic\sbxdef.hxx %_DEST%\inc%_EXT%\basic\sbxdef.hxx
-..\inc\basic\sbxform.hxx %_DEST%\inc%_EXT%\basic\sbxform.hxx
-..\inc\basic\sbxmeth.hxx %_DEST%\inc%_EXT%\basic\sbxmeth.hxx
-..\inc\basic\sbxobj.hxx %_DEST%\inc%_EXT%\basic\sbxobj.hxx
-..\inc\basic\sbxprop.hxx %_DEST%\inc%_EXT%\basic\sbxprop.hxx
-..\inc\basic\sbxvar.hxx %_DEST%\inc%_EXT%\basic\sbxvar.hxx
-..\inc\basic\sbxbase.hxx %_DEST%\inc%_EXT%\basic\sbxbase.hxx
-..\inc\basic\sbxfac.hxx %_DEST%\inc%_EXT%\basic\sbxfac.hxx
-..\inc\basic\sbxmstrm.hxx %_DEST%\inc%_EXT%\basic\sbxmstrm.hxx
-
-..\inc\basic\basicmanagerrepository.hxx %_DEST%\inc%_EXT%\basic\basicmanagerrepository.hxx
..\inc\modsizeexceeded.hxx %_DEST%\inc%_EXT%\basic\modsizeexceeded.hxx
..\%__SRC%\misc\sb.component %_DEST%\xml%_EXT%\sb.component
+
diff --git a/basic/source/app/svtmsg.src b/basic/source/app/svtmsg.src
index 89686ebfc0ee..748256bb5564 100644
--- a/basic/source/app/svtmsg.src
+++ b/basic/source/app/svtmsg.src
@@ -24,7 +24,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include "svtmsg.hrc"
+#include "basic/svtmsg.hrc"
// Hier sind die Messages aus dem Verzeichnis /basic/source/app enhalten
diff --git a/basic/source/app/testtool.src b/basic/source/app/testtool.src
index 245cff6c7917..090cb735c139 100644
--- a/basic/source/app/testtool.src
+++ b/basic/source/app/testtool.src
@@ -24,7 +24,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include "testtool.hrc"
+#include "basic/testtool.hrc"
///////////////////////////////
diff --git a/basic/source/app/ttmsg.src b/basic/source/app/ttmsg.src
index 63a6643f3cf1..076ee83fd879 100644
--- a/basic/source/app/ttmsg.src
+++ b/basic/source/app/ttmsg.src
@@ -24,7 +24,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include "ttmsg.hrc"
+#include "basic/ttmsg.hrc"
// Hier sind die Messages aus dem Verzeichnis /basic/source/testtool enhalten
diff --git a/basic/source/basmgr/basicmanagerrepository.cxx b/basic/source/basmgr/basicmanagerrepository.cxx
index f6a16ffa80c0..a5a1d4c8ca12 100644
--- a/basic/source/basmgr/basicmanagerrepository.cxx
+++ b/basic/source/basmgr/basicmanagerrepository.cxx
@@ -139,9 +139,17 @@ namespace basic
impl_getLocationForModel( const Reference< XModel >& _rxDocumentModel );
/** creates a new BasicManager instance for the given model
+
+ @param _out_rpBasicManager
+ reference to the pointer variable that will hold the new
+ BasicManager.
+
+ @param _rxDocumentModel
+ the model whose BasicManager will be created. Must not be <NULL/>.
*/
- BasicManagerPointer
- impl_createManagerForModel( const Reference< XModel >& _rxDocumentModel );
+ void impl_createManagerForModel(
+ BasicManagerPointer& _out_rpBasicManager,
+ const Reference< XModel >& _rxDocumentModel );
/** creates the application-wide BasicManager
*/
@@ -244,9 +252,17 @@ namespace basic
{
::osl::MutexGuard aGuard( m_aMutex );
+ /* #163556# (DR) - This function may be called recursively while
+ constructing the Basic manager and loading the Basic storage. By
+ passing the map entry received from impl_getLocationForModel() to
+ the function impl_createManagerForModel(), the new Basic manager
+ will be put immediately into the map of existing Basic managers,
+ thus a recursive call of this function will find and return it
+ without creating another instance.
+ */
BasicManagerPointer& pBasicManager = impl_getLocationForModel( _rxDocumentModel );
if ( pBasicManager == NULL )
- pBasicManager = impl_createManagerForModel( _rxDocumentModel );
+ impl_createManagerForModel( pBasicManager, _rxDocumentModel );
return pBasicManager;
}
@@ -408,21 +424,21 @@ namespace basic
}
//--------------------------------------------------------------------
- BasicManagerPointer ImplRepository::impl_createManagerForModel( const Reference< XModel >& _rxDocumentModel )
+ void ImplRepository::impl_createManagerForModel( BasicManagerPointer& _out_rpBasicManager, const Reference< XModel >& _rxDocumentModel )
{
StarBASIC* pAppBasic = impl_getDefaultAppBasicLibrary();
- BasicManager* pBasicManager( NULL );
+ _out_rpBasicManager = 0;
Reference< XStorage > xStorage;
if ( !impl_getDocumentStorage_nothrow( _rxDocumentModel, xStorage ) )
// the document is not able to provide the storage it is based on.
- return pBasicManager;
+ return;
Reference< XPersistentLibraryContainer > xBasicLibs;
Reference< XPersistentLibraryContainer > xDialogLibs;
if ( !impl_getDocumentLibraryContainers_nothrow( _rxDocumentModel, xBasicLibs, xDialogLibs ) )
// the document does not have BasicLibraries and DialogLibraries
- return pBasicManager;
+ return;
if ( xStorage.is() )
{
@@ -433,24 +449,24 @@ namespace basic
// Storage and BaseURL are only needed by binary documents!
SotStorageRef xDummyStor = new SotStorage( ::rtl::OUString() );
- pBasicManager = new BasicManager( *xDummyStor, String() /* TODO/LATER: xStorage */,
+ _out_rpBasicManager = new BasicManager( *xDummyStor, String() /* TODO/LATER: xStorage */,
pAppBasic,
&aAppBasicDir, TRUE );
- if ( pBasicManager->HasErrors() )
+ if ( _out_rpBasicManager->HasErrors() )
{
// handle errors
- BasicError* pErr = pBasicManager->GetFirstError();
+ BasicError* pErr = _out_rpBasicManager->GetFirstError();
while ( pErr )
{
// show message to user
if ( ERRCODE_BUTTON_CANCEL == ErrorHandler::HandleError( pErr->GetErrorId() ) )
{
// user wants to break loading of BASIC-manager
- BasicManagerCleaner::deleteBasicManager( pBasicManager );
+ BasicManagerCleaner::deleteBasicManager( _out_rpBasicManager );
xStorage.clear();
break;
}
- pErr = pBasicManager->GetNextError();
+ pErr = _out_rpBasicManager->GetNextError();
}
}
}
@@ -461,14 +477,14 @@ namespace basic
// create new BASIC-manager
StarBASIC* pBasic = new StarBASIC( pAppBasic );
pBasic->SetFlag( SBX_EXTSEARCH );
- pBasicManager = new BasicManager( pBasic, NULL, TRUE );
+ _out_rpBasicManager = new BasicManager( pBasic, NULL, TRUE );
}
// knit the containers with the BasicManager
LibraryContainerInfo aInfo( xBasicLibs, xDialogLibs, dynamic_cast< OldBasicPassword* >( xBasicLibs.get() ) );
OSL_ENSURE( aInfo.mpOldBasicPassword, "ImplRepository::impl_createManagerForModel: wrong BasicLibraries implementation!" );
- pBasicManager->SetLibraryContainerInfo( aInfo );
- //pBasicCont->setBasicManager( pBasicManager );
+ _out_rpBasicManager->SetLibraryContainerInfo( aInfo );
+ //pBasicCont->setBasicManager( _out_rpBasicManager );
// that's not needed anymore today. The containers will retrieve their associated
// BasicManager from the BasicManagerRepository, when needed.
@@ -476,13 +492,13 @@ namespace basic
impl_initDocLibraryContainers_nothrow( xBasicLibs, xDialogLibs );
// damit auch Dialoge etc. 'qualifiziert' angesprochen werden k"onnen
- pBasicManager->GetLib(0)->SetParent( pAppBasic );
+ _out_rpBasicManager->GetLib(0)->SetParent( pAppBasic );
// global properties in the document's Basic
- pBasicManager->SetGlobalUNOConstant( "ThisComponent", makeAny( _rxDocumentModel ) );
+ _out_rpBasicManager->SetGlobalUNOConstant( "ThisComponent", makeAny( _rxDocumentModel ) );
// notify
- impl_notifyCreationListeners( _rxDocumentModel, *pBasicManager );
+ impl_notifyCreationListeners( _rxDocumentModel, *_out_rpBasicManager );
// register as listener for this model being disposed/closed
Reference< XComponent > xDocumentComponent( _rxDocumentModel, UNO_QUERY );
@@ -490,9 +506,7 @@ namespace basic
startComponentListening( xDocumentComponent );
// register as listener for the BasicManager being destroyed
- StartListening( *pBasicManager );
-
- return pBasicManager;
+ StartListening( *_out_rpBasicManager );
}
//--------------------------------------------------------------------
diff --git a/basic/source/classes/eventatt.cxx b/basic/source/classes/eventatt.cxx
index 78682a633fe3..6c77259ccc7d 100644
--- a/basic/source/classes/eventatt.cxx
+++ b/basic/source/classes/eventatt.cxx
@@ -88,54 +88,6 @@ using namespace ::cppu;
using namespace ::osl;
-
-Reference< frame::XModel > getModelFromBasic( SbxObject* pBasic )
-{
- OSL_PRECOND( pBasic != NULL, "getModelFromBasic: illegal call!" );
- if ( !pBasic )
- return NULL;
-
- // look for the ThisComponent variable, first in the parent (which
- // might be the document's Basic), then in the parent's parent (which might be
- // the application Basic)
- const ::rtl::OUString sThisComponent( RTL_CONSTASCII_USTRINGPARAM( "ThisComponent" ) );
- SbxVariable* pThisComponent = NULL;
-
- SbxObject* pLookup = pBasic->GetParent();
- while ( pLookup && !pThisComponent )
- {
- pThisComponent = pLookup->Find( sThisComponent, SbxCLASS_OBJECT );
- pLookup = pLookup->GetParent();
- }
- if ( !pThisComponent )
- {
- OSL_TRACE("Failed to get ThisComponent");
- // the application Basic, at the latest, should have this variable
- return NULL;
- }
-
- Any aThisComponent( sbxToUnoValue( pThisComponent ) );
- Reference< frame::XModel > xModel( aThisComponent, UNO_QUERY );
- if ( !xModel.is() )
- {
- // it's no XModel. Okay, ThisComponent nowadays is allowed to be a controller.
- Reference< frame::XController > xController( aThisComponent, UNO_QUERY );
- if ( xController.is() )
- xModel = xController->getModel();
- }
-
- if ( !xModel.is() )
- return NULL;
-
-#if OSL_DEBUG_LEVEL > 0
- OSL_TRACE("Have model ThisComponent points to url %s",
- ::rtl::OUStringToOString( xModel->getURL(),
- RTL_TEXTENCODING_ASCII_US ).pData->buffer );
-#endif
-
- return xModel;
-}
-
void SFURL_firing_impl( const ScriptEvent& aScriptEvent, Any* pRet, const Reference< frame::XModel >& xModel )
{
OSL_TRACE("SFURL_firing_impl() processing script url %s",
@@ -569,7 +521,7 @@ void RTL_Impl_CreateUnoDialog( StarBASIC* pBasic, SbxArray& rPar, BOOL bWrite )
bool bDocDialog = false;
StarBASIC* pFoundBasic = NULL;
OSL_TRACE("About to try get a hold of ThisComponent");
- Reference< frame::XModel > xModel = getModelFromBasic( pINST->GetBasic() ) ;
+ Reference< frame::XModel > xModel = StarBASIC::GetModelFromBasic( pINST->GetBasic() ) ;
aDlgLibAny = implFindDialogLibForDialogBasic( aAnyISP, pINST->GetBasic(), pFoundBasic );
// If we found the dialog then it belongs to the Search basic
if ( !pFoundBasic )
diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index 056c2ea38c4c..30e01892fab9 100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
@@ -71,6 +71,7 @@ TYPEINIT1(StarBASIC,SbxObject)
#define RTLNAME "@SBRTL"
// i#i68894#
+using namespace ::com::sun::star;
using com::sun::star::uno::Reference;
using com::sun::star::uno::Any;
using com::sun::star::uno::UNO_QUERY;
@@ -346,7 +347,18 @@ SbxObject* SbFormFactory::CreateObject( const String& rClassName )
{
if( SbUserFormModule* pFormModule = PTR_CAST( SbUserFormModule, pVar->GetObject() ) )
{
- pFormModule->Load();
+ bool bInitState = pFormModule->getInitState();
+ if( bInitState )
+ {
+ // Not the first instantiate, reset
+ bool bTriggerTerminateEvent = false;
+ pFormModule->ResetApiObj( bTriggerTerminateEvent );
+ pFormModule->setInitState( false );
+ }
+ else
+ {
+ pFormModule->Load();
+ }
return pFormModule->CreateInstance();
}
}
@@ -564,7 +576,6 @@ SbClassModuleObject::SbClassModuleObject( SbModule* pClassModule )
if( pObj != NULL )
{
String aObjClass = pObj->GetClassName();
- (void)aObjClass;
SbClassModuleObject* pClassModuleObj = PTR_CAST(SbClassModuleObject,pObjBase);
if( pClassModuleObj != NULL )
@@ -611,93 +622,7 @@ SbClassModuleObject::~SbClassModuleObject()
void SbClassModuleObject::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
const SfxHint& rHint, const TypeId& rHintType )
{
- bool bDone = false;
-
- const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
- if( pHint )
- {
- SbxVariable* pVar = pHint->GetVar();
- SbProcedureProperty* pProcProperty = PTR_CAST( SbProcedureProperty, pVar );
- if( pProcProperty )
- {
- bDone = true;
-
- if( pHint->GetId() == SBX_HINT_DATAWANTED )
- {
- String aProcName;
- aProcName.AppendAscii( "Property Get " );
- aProcName += pProcProperty->GetName();
-
- SbxVariable* pMeth = Find( aProcName, SbxCLASS_METHOD );
- if( pMeth )
- {
- SbxValues aVals;
- aVals.eType = SbxVARIANT;
-
- SbxArray* pArg = pVar->GetParameters();
- USHORT nVarParCount = (pArg != NULL) ? pArg->Count() : 0;
- if( nVarParCount > 1 )
- {
- SbxArrayRef xMethParameters = new SbxArray;
- xMethParameters->Put( pMeth, 0 ); // Method as parameter 0
- for( USHORT i = 1 ; i < nVarParCount ; ++i )
- {
- SbxVariable* pPar = pArg->Get( i );
- xMethParameters->Put( pPar, i );
- }
-
- pMeth->SetParameters( xMethParameters );
- pMeth->Get( aVals );
- pMeth->SetParameters( NULL );
- }
- else
- {
- pMeth->Get( aVals );
- }
-
- pVar->Put( aVals );
- }
- }
- else if( pHint->GetId() == SBX_HINT_DATACHANGED )
- {
- SbxVariable* pMeth = NULL;
-
- bool bSet = pProcProperty->isSet();
- if( bSet )
- {
- pProcProperty->setSet( false );
-
- String aProcName;
- aProcName.AppendAscii( "Property Set " );
- aProcName += pProcProperty->GetName();
- pMeth = Find( aProcName, SbxCLASS_METHOD );
- }
- if( !pMeth ) // Let
- {
- String aProcName;
- aProcName.AppendAscii( "Property Let " );
- aProcName += pProcProperty->GetName();
- pMeth = Find( aProcName, SbxCLASS_METHOD );
- }
-
- if( pMeth )
- {
- // Setup parameters
- SbxArrayRef xArray = new SbxArray;
- xArray->Put( pMeth, 0 ); // Method as parameter 0
- xArray->Put( pVar, 1 );
- pMeth->SetParameters( xArray );
-
- SbxValues aVals;
- pMeth->Get( aVals );
- pMeth->SetParameters( NULL );
- }
- }
- }
- }
-
- if( !bDone )
- SbModule::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
+ handleProcedureProperties( rBC, rHint );
}
SbxVariable* SbClassModuleObject::Find( const XubString& rName, SbxClassType t )
@@ -809,6 +734,9 @@ SbModule* SbClassFactory::FindClass( const String& rClassName )
return pMod;
}
+typedef std::vector< StarBASIC* > DocBasicVector;
+static DocBasicVector GaDocBasics;
+
StarBASIC::StarBASIC( StarBASIC* p, BOOL bIsDocBasic )
: SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("StarBASIC") ) ), bDocBasic( bIsDocBasic )
{
@@ -822,8 +750,6 @@ StarBASIC::StarBASIC( StarBASIC* p, BOOL bIsDocBasic )
{
pSBFAC = new SbiFactory;
AddFactory( pSBFAC );
- pUNOFAC = new SbUnoFactory;
- AddFactory( pUNOFAC );
pTYPEFAC = new SbTypeFactory;
AddFactory( pTYPEFAC );
pCLASSFAC = new SbClassFactory;
@@ -832,12 +758,17 @@ StarBASIC::StarBASIC( StarBASIC* p, BOOL bIsDocBasic )
AddFactory( pOLEFAC );
pFORMFAC = new SbFormFactory;
AddFactory( pFORMFAC );
+ pUNOFAC = new SbUnoFactory;
+ AddFactory( pUNOFAC );
}
pRtl = new SbiStdObject( String( RTL_CONSTASCII_USTRINGPARAM(RTLNAME) ), this );
// Search via StarBasic is always global
SetFlag( SBX_GBLSEARCH );
pVBAGlobals = NULL;
bQuit = FALSE;
+
+ if( bDocBasic )
+ GaDocBasics.push_back( this );
}
// #51727 Override SetModified so that the modified state
@@ -877,6 +808,29 @@ StarBASIC::~StarBASIC()
}
#endif
}
+ else if( bDocBasic )
+ {
+ SbxError eOld = SbxBase::GetError();
+
+ DocBasicVector::iterator it;
+ for( it = GaDocBasics.begin() ; it != GaDocBasics.end() ; ++it )
+ {
+ if( *it == this )
+ {
+ GaDocBasics.erase( it );
+ break;
+ }
+ }
+ for( it = GaDocBasics.begin() ; it != GaDocBasics.end() ; ++it )
+ {
+ StarBASIC* pBasic = *it;
+ pBasic->implClearDependingVarsOnDelete( this );
+ }
+
+ SbxBase::ResetError();
+ if( eOld != SbxERR_OK )
+ SbxBase::SetError( eOld );
+ }
// #100326 Set Parent NULL in registered listeners
if( xUnoListeners.Is() )
@@ -889,6 +843,9 @@ StarBASIC::~StarBASIC()
}
xUnoListeners = NULL;
}
+
+ clearUnoMethodsForBasic( this );
+ disposeComVariablesForBasic( this );
}
// Override new() operator, so that everyone can create a new instance
@@ -907,6 +864,27 @@ void StarBASIC::operator delete( void* p )
::operator delete( p );
}
+void StarBASIC::implClearDependingVarsOnDelete( StarBASIC* pDeletedBasic )
+{
+ if( this != pDeletedBasic )
+ {
+ for( USHORT i = 0; i < pModules->Count(); i++ )
+ {
+ SbModule* p = (SbModule*)pModules->Get( i );
+ p->ClearVarsDependingOnDeletedBasic( pDeletedBasic );
+ }
+ }
+
+ for( USHORT nObj = 0; nObj < pObjs->Count(); nObj++ )
+ {
+ SbxVariable* pVar = pObjs->Get( nObj );
+ StarBASIC* pBasic = PTR_CAST(StarBASIC,pVar);
+ if( pBasic && pBasic != pDeletedBasic )
+ pBasic->implClearDependingVarsOnDelete( pDeletedBasic );
+ }
+}
+
+
/**************************************************************************
*
* Creation/Managment of modules
@@ -1036,15 +1014,15 @@ struct ClassModuleRunInitItem
{}
};
-typedef std::hash_map< ::rtl::OUString, ClassModuleRunInitItem,
- ::rtl::OUStringHash, ::std::equal_to< ::rtl::OUString > > ModuleInitDependencyMap;
+// Derive from has_map type instead of typedef
+// to allow forward declaration in sbmod.hxx
+class ModuleInitDependencyMap : public
+ std::hash_map< ::rtl::OUString, ClassModuleRunInitItem,
+ ::rtl::OUStringHash, ::std::equal_to< ::rtl::OUString > >
+{};
-static ModuleInitDependencyMap* GpMIDMap = NULL;
-
-void SbModule::implProcessModuleRunInit( ClassModuleRunInitItem& rItem )
+void SbModule::implProcessModuleRunInit( ModuleInitDependencyMap& rMap, ClassModuleRunInitItem& rItem )
{
- ModuleInitDependencyMap& rMIDMap = *GpMIDMap;
-
rItem.m_bProcessing = true;
//bool bAnyDependencies = true;
@@ -1059,8 +1037,8 @@ void SbModule::implProcessModuleRunInit( ClassModuleRunInitItem& rItem )
String& rStr = *it;
// Is required type a class module?
- ModuleInitDependencyMap::iterator itFind = rMIDMap.find( rStr );
- if( itFind != rMIDMap.end() )
+ ModuleInitDependencyMap::iterator itFind = rMap.find( rStr );
+ if( itFind != rMap.end() )
{
ClassModuleRunInitItem& rParentItem = itFind->second;
if( rParentItem.m_bProcessing )
@@ -1071,7 +1049,7 @@ void SbModule::implProcessModuleRunInit( ClassModuleRunInitItem& rItem )
}
if( !rParentItem.m_bRunInitDone )
- implProcessModuleRunInit( rParentItem );
+ implProcessModuleRunInit( rMap, rParentItem );
}
}
}
@@ -1085,6 +1063,8 @@ void SbModule::implProcessModuleRunInit( ClassModuleRunInitItem& rItem )
// Run Init-Code of all modules (including inserted libraries)
void StarBASIC::InitAllModules( StarBASIC* pBasicNotToInit )
{
+ ::vos::OGuard guard( Application::GetSolarMutex() );
+
// Init own modules
for ( USHORT nMod = 0; nMod < pModules->Count(); nMod++ )
{
@@ -1099,7 +1079,6 @@ void StarBASIC::InitAllModules( StarBASIC* pBasicNotToInit )
// Consider required types to init in right order. Class modules
// that are required by other modules have to be initialized first.
ModuleInitDependencyMap aMIDMap;
- GpMIDMap = &aMIDMap;
for ( USHORT nMod = 0; nMod < pModules->Count(); nMod++ )
{
SbModule* pModule = (SbModule*)pModules->Get( nMod );
@@ -1112,9 +1091,8 @@ void StarBASIC::InitAllModules( StarBASIC* pBasicNotToInit )
for( it = aMIDMap.begin() ; it != aMIDMap.end(); ++it )
{
ClassModuleRunInitItem& rItem = it->second;
- SbModule::implProcessModuleRunInit( rItem );
+ SbModule::implProcessModuleRunInit( aMIDMap, rItem );
}
- GpMIDMap = NULL;
// Call RunInit on standard modules
for ( USHORT nMod = 0; nMod < pModules->Count(); nMod++ )
@@ -1143,7 +1121,7 @@ void StarBASIC::DeInitAllModules( void )
for ( USHORT nMod = 0; nMod < pModules->Count(); nMod++ )
{
SbModule* pModule = (SbModule*)pModules->Get( nMod );
- if( pModule->pImage )
+ if( pModule->pImage && !pModule->isProxyModule() && !pModule->ISA(SbObjModule) )
pModule->pImage->bInit = false;
}
@@ -1849,6 +1827,54 @@ bool StarBASIC::GetUNOConstant( const sal_Char* _pAsciiName, ::com::sun::star::u
return bRes;
}
+Reference< frame::XModel > StarBASIC::GetModelFromBasic( SbxObject* pBasic )
+{
+ OSL_PRECOND( pBasic != NULL, "getModelFromBasic: illegal call!" );
+ if ( !pBasic )
+ return NULL;
+
+ // look for the ThisComponent variable, first in the parent (which
+ // might be the document's Basic), then in the parent's parent (which might be
+ // the application Basic)
+ const ::rtl::OUString sThisComponent( RTL_CONSTASCII_USTRINGPARAM( "ThisComponent" ) );
+ SbxVariable* pThisComponent = NULL;
+
+ SbxObject* pLookup = pBasic->GetParent();
+ while ( pLookup && !pThisComponent )
+ {
+ pThisComponent = pLookup->Find( sThisComponent, SbxCLASS_OBJECT );
+ pLookup = pLookup->GetParent();
+ }
+ if ( !pThisComponent )
+ {
+ OSL_TRACE("Failed to get ThisComponent");
+ // the application Basic, at the latest, should have this variable
+ return NULL;
+ }
+
+ Any aThisComponentAny( sbxToUnoValue( pThisComponent ) );
+ Reference< frame::XModel > xModel( aThisComponentAny, UNO_QUERY );
+ if ( !xModel.is() )
+ {
+ // it's no XModel. Okay, ThisComponent nowadays is allowed to be a controller.
+ Reference< frame::XController > xController( aThisComponentAny, UNO_QUERY );
+ if ( xController.is() )
+ xModel = xController->getModel();
+ }
+
+ if ( !xModel.is() )
+ return NULL;
+
+#if OSL_DEBUG_LEVEL > 0
+ OSL_TRACE("Have model ThisComponent points to url %s",
+ ::rtl::OUStringToOString( xModel->getURL(),
+ RTL_TEXTENCODING_ASCII_US ).pData->buffer );
+#endif
+
+ return xModel;
+}
+
+
//========================================================================
// #118116 Implementation Collection object
diff --git a/basic/source/classes/sbunoobj.cxx b/basic/source/classes/sbunoobj.cxx
index 79f55faf37b6..e176eb9e3654 100755
--- a/basic/source/classes/sbunoobj.cxx
+++ b/basic/source/classes/sbunoobj.cxx
@@ -36,15 +36,18 @@
#include <svl/hint.hxx>
#include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/implbase2.hxx>
#include <cppuhelper/exc_hlp.hxx>
#include <cppuhelper/typeprovider.hxx>
#include <cppuhelper/extract.hxx>
+#include <cppuhelper/interfacecontainer.hxx>
#include <comphelper/processfactory.hxx>
#include <rtl/ustrbuf.hxx>
#include <rtl/strbuf.hxx>
#include <com/sun/star/script/ArrayWrapper.hpp>
+#include <com/sun/star/script/NativeObjectWrapper.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/uno/DeploymentException.hpp>
@@ -61,6 +64,7 @@
#include <com/sun/star/script/XInvocationAdapterFactory.hpp>
#include <com/sun/star/script/XTypeConverter.hpp>
#include <com/sun/star/script/XDefaultProperty.hpp>
+#include <com/sun/star/script/XDirectInvocation.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
#include <com/sun/star/reflection/XIdlArray.hpp>
@@ -512,6 +516,44 @@ static void implHandleAnyException( const Any& _rCaughtException )
}
}
+
+// NativeObjectWrapper handling
+struct ObjectItem
+{
+ SbxObjectRef m_xNativeObj;
+
+ ObjectItem( void )
+ {}
+ ObjectItem( SbxObject* pNativeObj )
+ : m_xNativeObj( pNativeObj )
+ {}
+};
+static std::vector< ObjectItem > GaNativeObjectWrapperVector;
+
+void clearNativeObjectWrapperVector( void )
+{
+ GaNativeObjectWrapperVector.clear();
+}
+
+sal_uInt32 lcl_registerNativeObjectWrapper( SbxObject* pNativeObj )
+{
+ sal_uInt32 nIndex = GaNativeObjectWrapperVector.size();
+ GaNativeObjectWrapperVector.push_back( ObjectItem( pNativeObj ) );
+ return nIndex;
+}
+
+SbxObject* lcl_getNativeObject( sal_uInt32 nIndex )
+{
+ SbxObjectRef xRetObj;
+ if( nIndex < GaNativeObjectWrapperVector.size() )
+ {
+ ObjectItem& rItem = GaNativeObjectWrapperVector[ nIndex ];
+ xRetObj = rItem.m_xNativeObj;
+ }
+ return xRetObj;
+}
+
+
// Von Uno nach Sbx wandeln
SbxDataType unoToSbxType( TypeClass eType )
{
@@ -698,6 +740,7 @@ void unoToSbxValue( SbxVariable* pVar, const Any& aValue )
if( eTypeClass == TypeClass_STRUCT )
{
ArrayWrapper aWrap;
+ NativeObjectWrapper aNativeObjectWrapper;
if ( (aValue >>= aWrap) )
{
SbxDimArray* pArray = NULL;
@@ -717,6 +760,18 @@ void unoToSbxValue( SbxVariable* pVar, const Any& aValue )
pVar->PutEmpty();
break;
}
+ else if ( (aValue >>= aNativeObjectWrapper) )
+ {
+ sal_uInt32 nIndex = 0;
+ if( (aNativeObjectWrapper.ObjectId >>= nIndex) )
+ {
+ SbxObject* pObj = lcl_getNativeObject( nIndex );
+ pVar->PutObject( pObj );
+ }
+ else
+ pVar->PutEmpty();
+ break;
+ }
else
{
SbiInstance* pInst = pINST;
@@ -1093,6 +1148,20 @@ Any sbxToUnoValueImpl( SbxVariable* pVar, bool bBlockConversionToSmallestType =
if( pClassModule->createCOMWrapperForIface( aRetAny, pClassModuleObj ) )
return aRetAny;
}
+ if( !xObj->ISA(SbUnoObject) )
+ {
+ // Create NativeObjectWrapper to identify object in case of callbacks
+ SbxObject* pObj = PTR_CAST(SbxObject,pVar->GetObject());
+ if( pObj != NULL )
+ {
+ NativeObjectWrapper aNativeObjectWrapper;
+ sal_uInt32 nIndex = lcl_registerNativeObjectWrapper( pObj );
+ aNativeObjectWrapper.ObjectId <<= nIndex;
+ Any aRetAny;
+ aRetAny <<= aNativeObjectWrapper;
+ return aRetAny;
+ }
+ }
}
}
@@ -2223,26 +2292,36 @@ void SbUnoObject::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
}
else if( bInvocation && mxInvocation.is() )
{
- Sequence< INT16 > OutParamIndex;
- Sequence< Any > OutParam;
- Any aRetAny = mxInvocation->invoke( pMeth->GetName(), args, OutParamIndex, OutParam );
+ Reference< XDirectInvocation > xDirectInvoke;
+ if ( pMeth->needsDirectInvocation() )
+ xDirectInvoke.set( mxInvocation, UNO_QUERY );
- // Wert von Uno nach Sbx uebernehmen
- unoToSbxValue( pVar, aRetAny );
-
- const INT16* pIndices = OutParamIndex.getConstArray();
- UINT32 nLen = OutParamIndex.getLength();
- if( nLen )
+ Any aRetAny;
+ if ( xDirectInvoke.is() )
+ aRetAny = xDirectInvoke->directInvoke( pMeth->GetName(), args );
+ else
{
- const Any* pNewValues = OutParam.getConstArray();
- for( UINT32 j = 0 ; j < nLen ; j++ )
+ Sequence< INT16 > OutParamIndex;
+ Sequence< Any > OutParam;
+ aRetAny = mxInvocation->invoke( pMeth->GetName(), args, OutParamIndex, OutParam );
+
+ const INT16* pIndices = OutParamIndex.getConstArray();
+ UINT32 nLen = OutParamIndex.getLength();
+ if( nLen )
{
- INT16 iTarget = pIndices[ j ];
- if( iTarget >= (INT16)nParamCount )
- break;
- unoToSbxValue( (SbxVariable*)pParams->Get( (USHORT)(j+1) ), pNewValues[ j ] );
+ const Any* pNewValues = OutParam.getConstArray();
+ for( UINT32 j = 0 ; j < nLen ; j++ )
+ {
+ INT16 iTarget = pIndices[ j ];
+ if( iTarget >= (INT16)nParamCount )
+ break;
+ unoToSbxValue( (SbxVariable*)pParams->Get( (USHORT)(j+1) ), pNewValues[ j ] );
+ }
}
}
+
+ // Wert von Uno nach Sbx uebernehmen
+ unoToSbxValue( pVar, aRetAny );
}
// #55460, Parameter hier weghauen, da das in unoToSbxValue()
@@ -2271,7 +2350,7 @@ Reference< XInvocation > createDynamicInvocationFor( const Any& aAny );
SbUnoObject::SbUnoObject( const String& aName_, const Any& aUnoObj_ )
: SbxObject( aName_ )
, bNeedIntrospection( TRUE )
- , bIgnoreNativeCOMObjectMembers( FALSE )
+ , bNativeCOMObject( FALSE )
{
static Reference< XIntrospection > xIntrospection;
@@ -2322,7 +2401,7 @@ SbUnoObject::SbUnoObject( const String& aName_, const Any& aUnoObj_ )
// hiding of equally named COM symbols, e.g. XInvocation::getValue
Reference< oleautomation::XAutomationObject > xAutomationObject( aUnoObj_, UNO_QUERY );
if( xAutomationObject.is() )
- bIgnoreNativeCOMObjectMembers = TRUE;
+ bNativeCOMObject = TRUE;
}
maTmpUnoObj = aUnoObj_;
@@ -2446,6 +2525,47 @@ void SbUnoObject::doIntrospection( void )
// #67781 Start einer Liste aller SbUnoMethod-Instanzen
static SbUnoMethod* pFirst = NULL;
+void clearUnoMethodsForBasic( StarBASIC* pBasic )
+{
+ SbUnoMethod* pMeth = pFirst;
+ while( pMeth )
+ {
+ SbxObject* pObject = dynamic_cast< SbxObject* >( pMeth->GetParent() );
+ if ( pObject )
+ {
+ StarBASIC* pModBasic = dynamic_cast< StarBASIC* >( pObject->GetParent() );
+ if ( pModBasic == pBasic )
+ {
+ // for now the solution is to remove the method from the list and to clear it,
+ // but in case the element should be correctly transfered to another StarBASIC,
+ // we should either set module parent to NULL without clearing it, or even
+ // set the new StarBASIC as the parent of the module
+ // pObject->SetParent( NULL );
+
+ if( pMeth == pFirst )
+ pFirst = pMeth->pNext;
+ else if( pMeth->pPrev )
+ pMeth->pPrev->pNext = pMeth->pNext;
+ if( pMeth->pNext )
+ pMeth->pNext->pPrev = pMeth->pPrev;
+
+ pMeth->pPrev = NULL;
+ pMeth->pNext = NULL;
+
+ pMeth->SbxValue::Clear();
+ pObject->SbxValue::Clear();
+
+ // start from the beginning after object clearing, the cycle will end since the method is removed each time
+ pMeth = pFirst;
+ }
+ else
+ pMeth = pMeth->pNext;
+ }
+ else
+ pMeth = pMeth->pNext;
+ }
+}
+
void clearUnoMethods( void )
{
SbUnoMethod* pMeth = pFirst;
@@ -2462,10 +2582,12 @@ SbUnoMethod::SbUnoMethod
const String& aName_,
SbxDataType eSbxType,
Reference< XIdlMethod > xUnoMethod_,
- bool bInvocation
+ bool bInvocation,
+ bool bDirect
)
: SbxMethod( aName_, eSbxType )
, mbInvocation( bInvocation )
+ , mbDirectInvocation( bDirect )
{
m_xUnoMethod = xUnoMethod_;
pParamInfoSeq = NULL;
@@ -2566,7 +2688,7 @@ SbxVariable* SbUnoObject::Find( const String& rName, SbxClassType t )
if( !pRes )
{
::rtl::OUString aUName( rName );
- if( mxUnoAccess.is() && !bIgnoreNativeCOMObjectMembers )
+ if( mxUnoAccess.is() && !bNativeCOMObject )
{
if( mxExactName.is() )
{
@@ -2667,6 +2789,17 @@ SbxVariable* SbUnoObject::Find( const String& rName, SbxClassType t )
QuickInsert( (SbxVariable*)xMethRef );
pRes = xMethRef;
}
+ else
+ {
+ Reference< XDirectInvocation > xDirectInvoke( mxInvocation, UNO_QUERY );
+ if ( xDirectInvoke.is() && xDirectInvoke->hasMember( aUName ) )
+ {
+ SbxVariableRef xMethRef = new SbUnoMethod( aUName, SbxVARIANT, xDummyMethod, true, true );
+ QuickInsert( (SbxVariable*)xMethRef );
+ pRes = xMethRef;
+ }
+
+ }
}
catch( RuntimeException& e )
{
@@ -2726,11 +2859,11 @@ void SbUnoObject::implCreateAll( void )
// Instrospection besorgen
Reference< XIntrospectionAccess > xAccess = mxUnoAccess;
- if( !xAccess.is() || bIgnoreNativeCOMObjectMembers )
+ if( !xAccess.is() || bNativeCOMObject )
{
if( mxInvocation.is() )
xAccess = mxInvocation->getIntrospection();
- else if( bIgnoreNativeCOMObjectMembers )
+ else if( bNativeCOMObject )
return;
}
if( !xAccess.is() )
@@ -4170,14 +4303,26 @@ void RTL_Impl_CreateUnoValue( StarBASIC* pBasic, SbxArray& rPar, BOOL bWrite )
//==========================================================================
-typedef WeakImplHelper1< XInvocation > ModuleInvocationProxyHelper;
+namespace {
+class OMutexBasis
+{
+protected:
+ // this mutex is necessary for OInterfaceContainerHelper
+ ::osl::Mutex m_aMutex;
+};
+} // namespace
+
+typedef WeakImplHelper2< XInvocation, XComponent > ModuleInvocationProxyHelper;
-class ModuleInvocationProxy : public ModuleInvocationProxyHelper
+class ModuleInvocationProxy : public OMutexBasis,
+ public ModuleInvocationProxyHelper
{
::rtl::OUString m_aPrefix;
SbxObjectRef m_xScopeObj;
bool m_bProxyIsClassModuleObject;
+ ::cppu::OInterfaceContainerHelper m_aListeners;
+
public:
ModuleInvocationProxy( const ::rtl::OUString& aPrefix, SbxObjectRef xScopeObj );
~ModuleInvocationProxy()
@@ -4197,11 +4342,17 @@ public:
Sequence< sal_Int16 >& rOutParamIndex,
Sequence< Any >& rOutParam )
throw( CannotConvertException, InvocationTargetException );
+
+ // XComponent
+ virtual void SAL_CALL dispose() throw(RuntimeException);
+ virtual void SAL_CALL addEventListener( const Reference< XEventListener >& xListener ) throw (RuntimeException);
+ virtual void SAL_CALL removeEventListener( const Reference< XEventListener >& aListener ) throw (RuntimeException);
};
ModuleInvocationProxy::ModuleInvocationProxy( const ::rtl::OUString& aPrefix, SbxObjectRef xScopeObj )
: m_aPrefix( aPrefix + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("_") ) )
, m_xScopeObj( xScopeObj )
+ , m_aListeners( m_aMutex )
{
m_bProxyIsClassModuleObject = xScopeObj.Is() ? xScopeObj->ISA(SbClassModuleObject) : false;
}
@@ -4298,13 +4449,27 @@ Any SAL_CALL ModuleInvocationProxy::invoke( const ::rtl::OUString& rFunction,
vos::OGuard guard( Application::GetSolarMutex() );
Any aRet;
- if( !m_xScopeObj.Is() )
+ SbxObjectRef xScopeObj = m_xScopeObj;
+ if( !xScopeObj.Is() )
return aRet;
::rtl::OUString aFunctionName = m_aPrefix;
aFunctionName += rFunction;
- SbxVariable* p = m_xScopeObj->Find( aFunctionName, SbxCLASS_METHOD );
+ sal_Bool bSetRescheduleBack = sal_False;
+ sal_Bool bOldReschedule = sal_True;
+ SbiInstance* pInst = pINST;
+ if( pInst && pInst->IsCompatibility() )
+ {
+ bOldReschedule = pInst->IsReschedule();
+ if ( bOldReschedule )
+ {
+ pInst->EnableReschedule( sal_False );
+ bSetRescheduleBack = sal_True;
+ }
+ }
+
+ SbxVariable* p = xScopeObj->Find( aFunctionName, SbxCLASS_METHOD );
SbMethod* pMeth = p != NULL ? PTR_CAST(SbMethod,p) : NULL;
if( pMeth == NULL )
{
@@ -4336,11 +4501,38 @@ Any SAL_CALL ModuleInvocationProxy::invoke( const ::rtl::OUString& rFunction,
aRet = sbxToUnoValue( xValue );
pMeth->SetParameters( NULL );
+ if( bSetRescheduleBack )
+ pInst->EnableReschedule( bOldReschedule );
+
// TODO: OutParameter?
return aRet;
}
+void SAL_CALL ModuleInvocationProxy::dispose()
+ throw(RuntimeException)
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EventObject aEvent( (XComponent*)this );
+ m_aListeners.disposeAndClear( aEvent );
+
+ m_xScopeObj = NULL;
+}
+
+void SAL_CALL ModuleInvocationProxy::addEventListener( const Reference< XEventListener >& xListener )
+ throw (RuntimeException)
+{
+ m_aListeners.addInterface( xListener );
+}
+
+void SAL_CALL ModuleInvocationProxy::removeEventListener( const Reference< XEventListener >& xListener )
+ throw (RuntimeException)
+{
+ m_aListeners.removeInterface( xListener );
+}
+
+
Reference< XInterface > createComListener( const Any& aControlAny, const ::rtl::OUString& aVBAType,
const ::rtl::OUString& aPrefix, SbxObjectRef xScopeObj )
{
@@ -4370,6 +4562,97 @@ Reference< XInterface > createComListener( const Any& aControlAny, const ::rtl::
return xRet;
}
+typedef std::vector< WeakReference< XComponent > > ComponentRefVector;
+
+struct StarBasicDisposeItem
+{
+ StarBASIC* m_pBasic;
+ SbxArrayRef m_pRegisteredVariables;
+ ComponentRefVector m_vComImplementsObjects;
+
+ StarBasicDisposeItem( StarBASIC* pBasic )
+ : m_pBasic( pBasic )
+ {
+ m_pRegisteredVariables = new SbxArray();
+ }
+};
+
+typedef std::vector< StarBasicDisposeItem* > DisposeItemVector;
+
+static DisposeItemVector GaDisposeItemVector;
+
+DisposeItemVector::iterator lcl_findItemForBasic( StarBASIC* pBasic )
+{
+ DisposeItemVector::iterator it;
+ for( it = GaDisposeItemVector.begin() ; it != GaDisposeItemVector.end() ; ++it )
+ {
+ StarBasicDisposeItem* pItem = *it;
+ if( pItem->m_pBasic == pBasic )
+ return it;
+ }
+ return GaDisposeItemVector.end();
+}
+
+StarBasicDisposeItem* lcl_getOrCreateItemForBasic( StarBASIC* pBasic )
+{
+ DisposeItemVector::iterator it = lcl_findItemForBasic( pBasic );
+ StarBasicDisposeItem* pItem = (it != GaDisposeItemVector.end()) ? *it : NULL;
+ if( pItem == NULL )
+ {
+ pItem = new StarBasicDisposeItem( pBasic );
+ GaDisposeItemVector.push_back( pItem );
+ }
+ return pItem;
+}
+
+void registerComponentToBeDisposedForBasic
+ ( Reference< XComponent > xComponent, StarBASIC* pBasic )
+{
+ StarBasicDisposeItem* pItem = lcl_getOrCreateItemForBasic( pBasic );
+ pItem->m_vComImplementsObjects.push_back( xComponent );
+}
+
+void registerComListenerVariableForBasic( SbxVariable* pVar, StarBASIC* pBasic )
+{
+ StarBasicDisposeItem* pItem = lcl_getOrCreateItemForBasic( pBasic );
+ SbxArray* pArray = pItem->m_pRegisteredVariables;
+ pArray->Put( pVar, pArray->Count() );
+}
+
+void disposeComVariablesForBasic( StarBASIC* pBasic )
+{
+ DisposeItemVector::iterator it = lcl_findItemForBasic( pBasic );
+ if( it != GaDisposeItemVector.end() )
+ {
+ StarBasicDisposeItem* pItem = *it;
+
+ SbxArray* pArray = pItem->m_pRegisteredVariables;
+ USHORT nCount = pArray->Count();
+ for( USHORT i = 0 ; i < nCount ; ++i )
+ {
+ SbxVariable* pVar = pArray->Get( i );
+ pVar->ClearComListener();
+ }
+
+ ComponentRefVector& rv = pItem->m_vComImplementsObjects;
+ ComponentRefVector::iterator itCRV;
+ for( itCRV = rv.begin() ; itCRV != rv.end() ; ++itCRV )
+ {
+ try
+ {
+ Reference< XComponent > xComponent( (*itCRV).get(), UNO_QUERY_THROW );
+ xComponent->dispose();
+ }
+ catch( Exception& )
+ {}
+ }
+
+ delete pItem;
+ GaDisposeItemVector.erase( it );
+ }
+}
+
+
// Handle module implements mechanism for OLE types
bool SbModule::createCOMWrapperForIface( Any& o_rRetAny, SbClassModuleObject* pProxyClassModuleObject )
{
@@ -4423,6 +4706,23 @@ bool SbModule::createCOMWrapperForIface( Any& o_rRetAny, SbClassModuleObject* pP
if( bSuccess )
{
+ Reference< XComponent > xComponent( xProxy, UNO_QUERY );
+ if( xComponent.is() )
+ {
+ StarBASIC* pParentBasic = NULL;
+ SbxObject* pCurObject = this;
+ do
+ {
+ SbxObject* pObjParent = pCurObject->GetParent();
+ pParentBasic = PTR_CAST( StarBASIC, pObjParent );
+ pCurObject = pObjParent;
+ }
+ while( pParentBasic == NULL && pCurObject != NULL );
+
+ OSL_ASSERT( pParentBasic != NULL );
+ registerComponentToBeDisposedForBasic( xComponent, pParentBasic );
+ }
+
o_rRetAny <<= xRet;
break;
}
@@ -4432,3 +4732,30 @@ bool SbModule::createCOMWrapperForIface( Any& o_rRetAny, SbClassModuleObject* pP
return bSuccess;
}
+
+// Due to an incorrect behavior IE returns an object instead of a string
+// in some scenarios. Calling toString at the object may correct this.
+// Helper function used in sbxvalue.cxx
+bool handleToStringForCOMObjects( SbxObject* pObj, SbxValue* pVal )
+{
+ bool bSuccess = false;
+
+ SbUnoObject* pUnoObj = NULL;
+ if( pObj != NULL && (pUnoObj = PTR_CAST(SbUnoObject,(SbxObject*)pObj)) != NULL )
+ {
+ // Only for native COM objects
+ if( pUnoObj->isNativeCOMObject() )
+ {
+ SbxVariableRef pMeth = pObj->Find( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "toString" ) ), SbxCLASS_METHOD );
+ if ( pMeth.Is() )
+ {
+ SbxValues aRes;
+ pMeth->Get( aRes );
+ pVal->Put( aRes );
+ bSuccess = true;
+ }
+ }
+ }
+ return bSuccess;
+}
+
diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index e70f38bbeaed..0f807db7cf8f 100644..100755
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -496,33 +496,26 @@ IMPL_LINK( AsyncQuitHandler, OnAsyncQuit, void*, /*pNull*/ )
return 0L;
}
-#if 0
-bool UnlockControllerHack( StarBASIC* pBasic )
+bool VBAUnlockControllers( StarBASIC* pBasic )
{
bool bRes = false;
if ( pBasic && pBasic->IsDocBasic() )
{
- uno::Any aUnoVar;
- ::rtl::OUString sVarName( ::rtl::OUString::createFromAscii( "ThisComponent" ) );
- SbUnoObject* pGlobs = dynamic_cast<SbUnoObject*>( pBasic->Find( sVarName, SbxCLASS_DONTCARE ) );
- if ( pGlobs )
- aUnoVar = pGlobs->getUnoAny();
- uno::Reference< frame::XModel > xModel( aUnoVar, uno::UNO_QUERY);
- if ( xModel.is() )
+ SbUnoObject* pGlobs = dynamic_cast< SbUnoObject* >( pBasic->Find( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ThisComponent" ) ), SbxCLASS_DONTCARE ) );
+ if ( pGlobs ) try
{
- try
- {
+ uno::Reference< frame::XModel > xModel( pGlobs->getUnoAny(), uno::UNO_QUERY_THROW );
+ if ( xModel->hasControllersLocked() )
xModel->unlockControllers();
- bRes = true;
- }
- catch( uno::Exception& )
- {
- }
+ bRes = true;
+ }
+ catch( uno::Exception& )
+ {
}
}
return bRes;
}
-#endif
+
/////////////////////////////////////////////////////////////////////////////
// Ein BASIC-Modul hat EXTSEARCH gesetzt, damit die im Modul enthaltenen
@@ -1176,6 +1169,8 @@ USHORT SbModule::Run( SbMethod* pMeth )
// beim Programm-Ende freigeben, damit nichts gehalten wird.
ClearUnoObjectsInRTL_Impl( xBasic );
+ clearNativeObjectWrapperVector();
+
DBG_ASSERT(pINST->nCallLvl==0,"BASIC-Call-Level > 0");
delete pINST, pINST = NULL, bDelInst = FALSE;
@@ -1184,6 +1179,14 @@ USHORT SbModule::Run( SbMethod* pMeth )
SendHint( GetParent(), SBX_HINT_BASICSTOP, pMeth );
GlobalRunDeInit();
+
+ // VBA always ensures screenupdating is enabled after completing
+ if ( mbVBACompat )
+ VBAUnlockControllers( PTR_CAST( StarBASIC, GetParent() ) );
+
+#ifdef DBG_TRACE_BASIC
+ dbg_DeInitTrace();
+#endif
}
}
else
@@ -1195,12 +1198,7 @@ USHORT SbModule::Run( SbMethod* pMeth )
StarBASIC::FatalError( SbERR_STACK_OVERFLOW );
}
- // VBA always ensure screenupdating is enabled after completing
StarBASIC* pBasic = PTR_CAST(StarBASIC,GetParent());
-#if 0
- if ( pBasic && pBasic->IsDocBasic() && !pINST )
- UnlockControllerHack( pBasic );
-#endif
if( bDelInst )
{
// #57841 Uno-Objekte, die in RTL-Funktionen gehalten werden,
@@ -1332,6 +1330,61 @@ void SbModule::ClearPrivateVars()
}
}
+void SbModule::implClearIfVarDependsOnDeletedBasic( SbxVariable* pVar, StarBASIC* pDeletedBasic )
+{
+ if( pVar->SbxValue::GetType() != SbxOBJECT || pVar->ISA( SbProcedureProperty ) )
+ return;
+
+ SbxObject* pObj = PTR_CAST(SbxObject,pVar->GetObject());
+ if( pObj != NULL )
+ {
+ SbxObject* p = pObj;
+
+ SbModule* pMod = PTR_CAST( SbModule, p );
+ if( pMod != NULL )
+ pMod->ClearVarsDependingOnDeletedBasic( pDeletedBasic );
+
+ while( (p = p->GetParent()) != NULL )
+ {
+ StarBASIC* pBasic = PTR_CAST( StarBASIC, p );
+ if( pBasic != NULL && pBasic == pDeletedBasic )
+ {
+ pVar->SbxValue::Clear();
+ break;
+ }
+ }
+ }
+}
+
+void SbModule::ClearVarsDependingOnDeletedBasic( StarBASIC* pDeletedBasic )
+{
+ (void)pDeletedBasic;
+
+ for( USHORT i = 0 ; i < pProps->Count() ; i++ )
+ {
+ SbProperty* p = PTR_CAST(SbProperty,pProps->Get( i ) );
+ if( p )
+ {
+ if( p->GetType() & SbxARRAY )
+ {
+ SbxArray* pArray = PTR_CAST(SbxArray,p->GetObject());
+ if( pArray )
+ {
+ for( USHORT j = 0 ; j < pArray->Count() ; j++ )
+ {
+ SbxVariable* pVar = PTR_CAST(SbxVariable,pArray->Get( j ));
+ implClearIfVarDependsOnDeletedBasic( pVar, pDeletedBasic );
+ }
+ }
+ }
+ else
+ {
+ implClearIfVarDependsOnDeletedBasic( p, pDeletedBasic );
+ }
+ }
+ }
+}
+
// Zunaechst in dieses Modul, um 358-faehig zu bleiben
// (Branch in sb.cxx vermeiden)
void StarBASIC::ClearAllModuleVars( void )
@@ -1341,7 +1394,7 @@ void StarBASIC::ClearAllModuleVars( void )
{
SbModule* pModule = (SbModule*)pModules->Get( nMod );
// Nur initialisieren, wenn der Startcode schon ausgefuehrt wurde
- if( pModule->pImage && pModule->pImage->bInit )
+ if( pModule->pImage && pModule->pImage->bInit && !pModule->isProxyModule() && !pModule->ISA(SbObjModule) )
pModule->ClearPrivateVars();
}
@@ -1739,6 +1792,98 @@ BOOL SbModule::LoadCompleted()
return TRUE;
}
+void SbModule::handleProcedureProperties( SfxBroadcaster& rBC, const SfxHint& rHint )
+{
+ bool bDone = false;
+
+ const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
+ if( pHint )
+ {
+ SbxVariable* pVar = pHint->GetVar();
+ SbProcedureProperty* pProcProperty = PTR_CAST( SbProcedureProperty, pVar );
+ if( pProcProperty )
+ {
+ bDone = true;
+
+ if( pHint->GetId() == SBX_HINT_DATAWANTED )
+ {
+ String aProcName;
+ aProcName.AppendAscii( "Property Get " );
+ aProcName += pProcProperty->GetName();
+
+ SbxVariable* pMeth = Find( aProcName, SbxCLASS_METHOD );
+ if( pMeth )
+ {
+ SbxValues aVals;
+ aVals.eType = SbxVARIANT;
+
+ SbxArray* pArg = pVar->GetParameters();
+ USHORT nVarParCount = (pArg != NULL) ? pArg->Count() : 0;
+ if( nVarParCount > 1 )
+ {
+ SbxArrayRef xMethParameters = new SbxArray;
+ xMethParameters->Put( pMeth, 0 ); // Method as parameter 0
+ for( USHORT i = 1 ; i < nVarParCount ; ++i )
+ {
+ SbxVariable* pPar = pArg->Get( i );
+ xMethParameters->Put( pPar, i );
+ }
+
+ pMeth->SetParameters( xMethParameters );
+ pMeth->Get( aVals );
+ pMeth->SetParameters( NULL );
+ }
+ else
+ {
+ pMeth->Get( aVals );
+ }
+
+ pVar->Put( aVals );
+ }
+ }
+ else if( pHint->GetId() == SBX_HINT_DATACHANGED )
+ {
+ SbxVariable* pMeth = NULL;
+
+ bool bSet = pProcProperty->isSet();
+ if( bSet )
+ {
+ pProcProperty->setSet( false );
+
+ String aProcName;
+ aProcName.AppendAscii( "Property Set " );
+ aProcName += pProcProperty->GetName();
+ pMeth = Find( aProcName, SbxCLASS_METHOD );
+ }
+ if( !pMeth ) // Let
+ {
+ String aProcName;
+ aProcName.AppendAscii( "Property Let " );
+ aProcName += pProcProperty->GetName();
+ pMeth = Find( aProcName, SbxCLASS_METHOD );
+ }
+
+ if( pMeth )
+ {
+ // Setup parameters
+ SbxArrayRef xArray = new SbxArray;
+ xArray->Put( pMeth, 0 ); // Method as parameter 0
+ xArray->Put( pVar, 1 );
+ pMeth->SetParameters( xArray );
+
+ SbxValues aVals;
+ pMeth->Get( aVals );
+ pMeth->SetParameters( NULL );
+ }
+ }
+ }
+ }
+
+ if( !bDone )
+ SbModule::Notify( rBC, rHint );
+}
+
+
/////////////////////////////////////////////////////////////////////////
// Implementation SbJScriptModule (Basic-Modul fuer JavaScript-Sourcen)
SbJScriptModule::SbJScriptModule( const String& rName )
@@ -1969,6 +2114,11 @@ SbObjModule::SbObjModule( const String& rName, const com::sun::star::script::Mod
else if ( mInfo.ModuleObject.is() )
SetUnoObject( uno::makeAny( mInfo.ModuleObject ) );
}
+
+SbObjModule::~SbObjModule()
+{
+}
+
void
SbObjModule::SetUnoObject( const uno::Any& aObj ) throw ( uno::RuntimeException )
{
@@ -2005,6 +2155,13 @@ SbObjModule::Find( const XubString& rName, SbxClassType t )
return pVar;
}
+void SbObjModule::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+ const SfxHint& rHint, const TypeId& rHintType )
+{
+ SbModule::handleProcedureProperties( rBC, rHint );
+}
+
+
typedef ::cppu::WeakImplHelper2< awt::XTopWindowListener, awt::XWindowListener > FormObjEventListener_BASE;
class FormObjEventListenerImpl : public FormObjEventListener_BASE
@@ -2192,9 +2349,9 @@ SbUserFormModule::~SbUserFormModule()
{
}
-void SbUserFormModule::ResetApiObj()
+void SbUserFormModule::ResetApiObj( bool bTriggerTerminateEvent )
{
- if ( m_xDialog.is() ) // probably someone close the dialog window
+ if ( bTriggerTerminateEvent && m_xDialog.is() ) // probably someone close the dialog window
{
triggerTerminateEvent();
}
@@ -2379,11 +2536,12 @@ void SbUserFormModule::Unload()
}
//liuchen
+void registerComponentToBeDisposedForBasic( Reference< XComponent > xComponent, StarBASIC* pBasic );
+
void SbUserFormModule::InitObject()
{
try
{
-
String aHook( RTL_CONSTASCII_USTRINGPARAM( "VBAGlobals" ) );
SbUnoObject* pGlobs = (SbUnoObject*)GetParent()->Find( aHook, SbxCLASS_DONTCARE );
if ( m_xModel.is() && pGlobs )
@@ -2410,6 +2568,25 @@ void SbUserFormModule::InitObject()
aArgs[ 3 ] <<= rtl::OUString( GetParent()->GetName() );
pDocObject = new SbUnoObject( GetName(), uno::makeAny( xVBAFactory->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.msforms.UserForm")), aArgs ) ) );
uno::Reference< lang::XComponent > xComponent( aArgs[ 1 ], uno::UNO_QUERY_THROW );
+
+ // the dialog must be disposed at the end!
+ if( xComponent.is() )
+ {
+ StarBASIC* pParentBasic = NULL;
+ SbxObject* pCurObject = this;
+ do
+ {
+ SbxObject* pObjParent = pCurObject->GetParent();
+ pParentBasic = PTR_CAST( StarBASIC, pObjParent );
+ pCurObject = pObjParent;
+ }
+ while( pParentBasic == NULL && pCurObject != NULL );
+
+ OSL_ASSERT( pParentBasic != NULL );
+ registerComponentToBeDisposedForBasic( xComponent, pParentBasic );
+ }
+
+
// remove old listener if it exists
if ( m_DialogListener.get() )
m_DialogListener->removeListener();
diff --git a/basic/source/comp/dim.cxx b/basic/source/comp/dim.cxx
index 59d77e3f3757..4d188ec1ca8a 100644
--- a/basic/source/comp/dim.cxx
+++ b/basic/source/comp/dim.cxx
@@ -375,6 +375,9 @@ void SbiParser::DefVar( SbiOpcode eOp, BOOL bStatic )
if( pDef->IsWithEvents() )
nOpnd2 |= SBX_TYPE_WITH_EVENTS_FLAG;
+ if( bCompatible && pDef->IsNew() )
+ nOpnd2 |= SBX_TYPE_DIM_AS_NEW_FLAG;
+
short nFixedStringLength = pDef->GetFixedStringLength();
if( nFixedStringLength >= 0 )
nOpnd2 |= (SBX_FIXED_LEN_STRING_FLAG + (UINT32(nFixedStringLength) << 17)); // len = all bits above 0x10000
diff --git a/basic/source/comp/exprtree.cxx b/basic/source/comp/exprtree.cxx
index 7a4ea5965558..69f9ea553529 100644
--- a/basic/source/comp/exprtree.cxx
+++ b/basic/source/comp/exprtree.cxx
@@ -578,10 +578,20 @@ SbiExprNode* SbiExpression::Unary()
{
case MINUS:
eTok = NEG;
- case NOT:
pParser->Next();
pNd = new SbiExprNode( pParser, Unary(), eTok, NULL );
break;
+ case NOT:
+ if( pParser->IsVBASupportOn() )
+ {
+ pNd = Operand();
+ }
+ else
+ {
+ pParser->Next();
+ pNd = new SbiExprNode( pParser, Unary(), eTok, NULL );
+ }
+ break;
case PLUS:
pParser->Next();
pNd = Unary();
@@ -725,9 +735,26 @@ SbiExprNode* SbiExpression::Comp()
return pNd;
}
+SbiExprNode* SbiExpression::VBA_Not()
+{
+ SbiExprNode* pNd = NULL;
+
+ SbiToken eTok = pParser->Peek();
+ if( eTok == NOT )
+ {
+ pParser->Next();
+ pNd = new SbiExprNode( pParser, VBA_Not(), eTok, NULL );
+ }
+ else
+ {
+ pNd = Comp();
+ }
+ return pNd;
+}
+
SbiExprNode* SbiExpression::Like()
{
- SbiExprNode* pNd = Comp();
+ SbiExprNode* pNd = pParser->IsVBASupportOn() ? VBA_Not() : Comp();
if( m_eMode != EXPRMODE_EMPTY_PAREN )
{
short nCount = 0;
diff --git a/basic/source/comp/sbcomp.cxx b/basic/source/comp/sbcomp.cxx
index 5b7e5c70591d..c8fe782487e3 100755
--- a/basic/source/comp/sbcomp.cxx
+++ b/basic/source/comp/sbcomp.cxx
@@ -32,6 +32,7 @@
#include "sbcomp.hxx"
#include "image.hxx"
#include "sbtrace.hxx"
+#include <basic/sbobjmod.hxx>
//==========================================================================
@@ -42,11 +43,145 @@
#include <hash_map>
-// Trace Settings
-static const char* GpTraceFileName = "d:\\zBasic.Asm\\BasicTrace.txt";
-static const bool GbIncludePCodes = false;
-static const int GnIndentPerCallLevel = 4;
-static const int GnIndentForPCode = 2;
+// Trace ini file (set NULL to ignore)
+static char GpTraceIniFile[] = "d:\\zBasic.Asm\\BasicTrace.ini";
+//static char* GpTraceIniFile = NULL;
+
+
+// Trace Settings, used if no ini file / not found in ini file
+static char GpTraceFileNameDefault[] = "d:\\zBasic.Asm\\BasicTrace.txt";
+static char* GpTraceFileName = GpTraceFileNameDefault;
+
+// GbTraceOn:
+// true = tracing is active, false = tracing is disabled, default = true
+// Set to false initially if you want to activate tracing on demand with
+// TraceCommand( "TraceOn" ), see below
+static bool GbTraceOn = true;
+
+// GbIncludePCodes:
+// true = PCodes are written to trace, default = false, correspondents
+// with TraceCommand( "PCodeOn" / "PCodeOff" ), see below
+static bool GbIncludePCodes = false;
+
+static int GnIndentPerCallLevel = 4;
+static int GnIndentForPCode = 2;
+
+/*
+ With trace enabled the runtime function TraceCommand
+ can be used to influence the trace functionality
+ from within the running Basic macro.
+
+ Format: TraceCommand( command as String [, param as Variant] )
+
+ Supported commands (command is NOT case sensitive):
+ TraceCommand "TraceOn" sets GbTraceOn = true
+ TraceCommand "TraceOff" sets GbTraceOn = false
+
+ TraceCommand "PCodeOn" sets GbIncludePCodes = true
+ TraceCommand "PCodeOff" sets GbIncludePCodes = false
+
+ TraceCommand "Print", aVal writes aVal into the trace file as
+ long as it can be converted to string
+*/
+
+static void lcl_skipWhites( char*& rpc )
+{
+ while( *rpc == ' ' || *rpc == '\t' )
+ ++rpc;
+}
+
+inline void lcl_findNextLine( char*& rpc, char* pe )
+{
+ // Find line end
+ while( rpc < pe && *rpc != 13 && *rpc != 10 )
+ ++rpc;
+
+ // Read all
+ while( rpc < pe && (*rpc == 13 || *rpc == 10) )
+ ++rpc;
+}
+
+inline bool lcl_isAlpha( char c )
+{
+ bool bRet = (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
+ return bRet;
+}
+
+static void lcl_ReadIniFile( const char* pIniFileName )
+{
+ const int BUF_SIZE = 1000;
+ static sal_Char TraceFileNameBuffer[BUF_SIZE];
+ sal_Char Buffer[BUF_SIZE];
+ sal_Char VarNameBuffer[BUF_SIZE];
+ sal_Char ValBuffer[BUF_SIZE];
+
+ FILE* pFile = fopen( pIniFileName ,"rb" );
+ if( pFile == NULL )
+ return;
+
+ size_t nRead = fread( Buffer, 1, BUF_SIZE, pFile );
+
+ // Scan
+ char* pc = Buffer;
+ char* pe = Buffer + nRead;
+ while( pc < pe )
+ {
+ lcl_skipWhites( pc ); if( pc == pe ) break;
+
+ // Read variable
+ char* pVarStart = pc;
+ while( pc < pe && lcl_isAlpha( *pc ) )
+ ++pc;
+ int nVarLen = pc - pVarStart;
+ if( nVarLen == 0 )
+ {
+ lcl_findNextLine( pc, pe );
+ continue;
+ }
+ strncpy( VarNameBuffer, pVarStart, nVarLen );
+ VarNameBuffer[nVarLen] = '\0';
+
+ // Check =
+ lcl_skipWhites( pc ); if( pc == pe ) break;
+ if( *pc != '=' )
+ continue;
+ ++pc;
+ lcl_skipWhites( pc ); if( pc == pe ) break;
+
+ // Read value
+ char* pValStart = pc;
+ while( pc < pe && *pc != 13 && *pc != 10 )
+ ++pc;
+ int nValLen = pc - pValStart;
+ if( nValLen == 0 )
+ {
+ lcl_findNextLine( pc, pe );
+ continue;
+ }
+ strncpy( ValBuffer, pValStart, nValLen );
+ ValBuffer[nValLen] = '\0';
+
+ // Match variables
+ if( strcmp( VarNameBuffer, "GpTraceFileName") == 0 )
+ {
+ strcpy( TraceFileNameBuffer, ValBuffer );
+ GpTraceFileName = TraceFileNameBuffer;
+ }
+ else
+ if( strcmp( VarNameBuffer, "GbTraceOn") == 0 )
+ GbTraceOn = (strcmp( ValBuffer, "true" ) == 0);
+ else
+ if( strcmp( VarNameBuffer, "GbIncludePCodes") == 0 )
+ GbIncludePCodes = (strcmp( ValBuffer, "true" ) == 0);
+ else
+ if( strcmp( VarNameBuffer, "GnIndentPerCallLevel") == 0 )
+ GnIndentPerCallLevel = strtol( ValBuffer, NULL, 10 );
+ else
+ if( strcmp( VarNameBuffer, "GnIndentForPCode") == 0 )
+ GnIndentForPCode = strtol( ValBuffer, NULL, 10 );
+ }
+ fclose( pFile );
+}
struct TraceTextData
{
@@ -122,7 +257,7 @@ static rtl::OString lcl_toOStringSkipLeadingWhites( const String& aStr )
return aORetStr;
}
-String dumpMethodParameters( SbMethod* pMethod )
+String lcl_dumpMethodParameters( SbMethod* pMethod )
{
String aStr;
if( pMethod == NULL )
@@ -149,9 +284,10 @@ String dumpMethodParameters( SbMethod* pMethod )
aStr += pParam->aName;
}
aStr += '=';
- if( pVar->GetType() & SbxARRAY )
+ SbxDataType eType = pVar->GetType();
+ if( eType & SbxARRAY )
aStr += String( RTL_CONSTASCII_USTRINGPARAM( "..." ) );
- else
+ else if( eType != SbxOBJECT )
aStr += pVar->GetString();
if ( nParam < ( pParams->Count() - 1 ) )
aStr += String( RTL_CONSTASCII_USTRINGPARAM( ", " ) );
@@ -166,16 +302,36 @@ String dumpMethodParameters( SbMethod* pMethod )
return aStr;
}
+
// Public functions
+
+static bool GbSavTraceOn = false;
void dbg_InitTrace( void )
{
+ if( GpTraceIniFile != NULL )
+ lcl_ReadIniFile( GpTraceIniFile );
+
FILE* pFile = fopen( GpTraceFileName, "w" );
if( pFile != NULL )
fclose( pFile );
+ GbSavTraceOn = GbTraceOn;
+ if( !GbTraceOn )
+ lcl_lineOut( GpTraceFileName, "### Program started with trace off ###" );
+}
+
+void dbg_DeInitTrace( void )
+{
+ GbTraceOn = GbSavTraceOn;
}
+static INT32 GnLastCallLvl = 0;
+
void dbg_traceStep( SbModule* pModule, UINT32 nPC, INT32 nCallLvl )
{
+ if( !GbTraceOn )
+ return;
+ GnLastCallLvl = nCallLvl;
+
SbModule* pTraceMod = pModule;
if( pTraceMod->ISA(SbClassModuleObject) )
{
@@ -206,14 +362,11 @@ void dbg_traceStep( SbModule* pModule, UINT32 nPC, INT32 nCallLvl )
{
const char* pModuleNameStr = OUStringToOString( rtl::OUString( aModuleName ), RTL_TEXTENCODING_ASCII_US ).getStr();
char Buffer[200];
- sprintf( Buffer, "TRACE ERROR: No info for PC = %d in module \"%s\"", nPC, pModuleNameStr );
+ sprintf( Buffer, "TRACE ERROR: No info for PC = %d in module \"%s\"", (int)nPC, pModuleNameStr );
lcl_lineOut( GpTraceFileName, Buffer );
return;
}
- //nCallLvl--;
- //if( nCallLvl < 0 )
- // nCallLvl = 0;
int nIndent = nCallLvl * GnIndentPerCallLevel;
const TraceTextData& rTraceTextData = itInner->second;
@@ -234,6 +387,10 @@ void dbg_traceNotifyCall( SbModule* pModule, SbMethod* pMethod, INT32 nCallLvl,
{
static const char* pSeparator = "' ================================================================================";
+ if( !GbTraceOn )
+ return;
+ GnLastCallLvl = nCallLvl;
+
SbModule* pTraceMod = pModule;
SbClassModuleObject* pClassModuleObj = NULL;
if( pTraceMod->ISA(SbClassModuleObject) )
@@ -281,7 +438,7 @@ void dbg_traceNotifyCall( SbModule* pModule, SbMethod* pMethod, INT32 nCallLvl,
aStr.AppendAscii( "]" );
}
if( !bLeave )
- aStr += dumpMethodParameters( pMethod );
+ aStr += lcl_dumpMethodParameters( pMethod );
lcl_lineOut( GpTraceFileName, OUStringToOString( rtl::OUString( aStr ), RTL_TEXTENCODING_ASCII_US ).getStr(), lcl_getSpaces( nIndent ) );
if( !bLeave )
@@ -293,6 +450,10 @@ void dbg_traceNotifyCall( SbModule* pModule, SbMethod* pMethod, INT32 nCallLvl,
void dbg_traceNotifyError( SbError nTraceErr, const String& aTraceErrMsg, bool bTraceErrHandled, INT32 nCallLvl )
{
+ if( !GbTraceOn )
+ return;
+ GnLastCallLvl = nCallLvl;
+
rtl::OString aOTraceErrMsg = OUStringToOString( rtl::OUString( aTraceErrMsg ), RTL_TEXTENCODING_ASCII_US );
char Buffer[200];
@@ -329,6 +490,63 @@ void dbg_RegisterTraceTextForPC( SbModule* pModule, UINT32 nPC,
(*pInnerMap)[nPC] = aData;
}
+void RTL_Impl_TraceCommand( StarBASIC* pBasic, SbxArray& rPar, BOOL bWrite )
+{
+ (void)pBasic;
+ (void)bWrite;
+
+ if ( rPar.Count() < 2 )
+ {
+ StarBASIC::Error( SbERR_BAD_ARGUMENT );
+ return;
+ }
+
+ String aCommand = rPar.Get(1)->GetString();
+
+ if( aCommand.EqualsIgnoreCaseAscii( "TraceOn" ) )
+ GbTraceOn = true;
+ else
+ if( aCommand.EqualsIgnoreCaseAscii( "TraceOff" ) )
+ GbTraceOn = false;
+ else
+ if( aCommand.EqualsIgnoreCaseAscii( "PCodeOn" ) )
+ GbIncludePCodes = true;
+ else
+ if( aCommand.EqualsIgnoreCaseAscii( "PCodeOff" ) )
+ GbIncludePCodes = false;
+ else
+ if( aCommand.EqualsIgnoreCaseAscii( "Print" ) )
+ {
+ if ( rPar.Count() < 3 )
+ {
+ StarBASIC::Error( SbERR_BAD_ARGUMENT );
+ return;
+ }
+
+ SbxError eOld = SbxBase::GetError();
+ if( eOld != SbxERR_OK )
+ SbxBase::ResetError();
+
+ String aValStr = rPar.Get(2)->GetString();
+ SbxError eErr = SbxBase::GetError();
+ if( eErr != SbxERR_OK )
+ {
+ aValStr = String( RTL_CONSTASCII_USTRINGPARAM( "<ERROR converting value to String>" ) );
+ SbxBase::ResetError();
+ }
+
+ char Buffer[500];
+ const char* pValStr = OUStringToOString( rtl::OUString( aValStr ), RTL_TEXTENCODING_ASCII_US ).getStr();
+
+ sprintf( Buffer, "### TRACE_PRINT: %s ###", pValStr );
+ int nIndent = GnLastCallLvl * GnIndentPerCallLevel;
+ lcl_lineOut( GpTraceFileName, Buffer, lcl_getSpaces( nIndent ) );
+
+ if( eOld != SbxERR_OK )
+ SbxBase::SetError( eOld );
+ }
+}
+
#endif
@@ -431,7 +649,8 @@ BOOL SbModule::Compile()
BOOL bRet = IsCompiled();
if( bRet )
{
- pBasic->ClearAllModuleVars();
+ if( !this->ISA(SbObjModule) )
+ pBasic->ClearAllModuleVars();
RemoveVars(); // remove 'this' Modules variables
// clear all method statics
for( USHORT i = 0; i < pMethods->Count(); i++ )
diff --git a/basic/source/comp/scanner.cxx b/basic/source/comp/scanner.cxx
index dd68f20893f5..26c6af53cc56 100644
--- a/basic/source/comp/scanner.cxx
+++ b/basic/source/comp/scanner.cxx
@@ -224,6 +224,30 @@ BOOL SbiScanner::NextSym()
for ( ; (BasicSimpleCharClass::isAlphaNumeric( *pLine, bCompatible ) || ( *pLine == '_' ) ); pLine++ )
nCol++;
aSym = aLine.copy( n, nCol - n );
+
+ // Special handling for "go to"
+ if( bCompatible && *pLine && aSym.EqualsIgnoreCaseAscii( "go" ) )
+ {
+ const sal_Unicode* pTestLine = pLine;
+ short nTestCol = nCol;
+ while( *pTestLine && (( *pTestLine == ' ' ) || ( *pTestLine == '\t' )) )
+ {
+ pTestLine++;
+ nTestCol++;
+ }
+
+ if( *pTestLine && *(pTestLine + 1) )
+ {
+ String aTestSym = aLine.copy( nTestCol, 2 );
+ if( aTestSym.EqualsIgnoreCaseAscii( "to" ) )
+ {
+ aSym = String::CreateFromAscii( "goto" );
+ pLine = pTestLine + 2;
+ nCol = nTestCol + 2;
+ }
+ }
+ }
+
// Abschliessendes '_' durch Space ersetzen, wenn Zeilenende folgt
// (sonst falsche Zeilenfortsetzung)
if( !bUsedForHilite && !*pLine && *(pLine-1) == '_' )
diff --git a/basic/source/comp/symtbl.cxx b/basic/source/comp/symtbl.cxx
index d6b3dbb878fc..9df91a5748b9 100644
--- a/basic/source/comp/symtbl.cxx
+++ b/basic/source/comp/symtbl.cxx
@@ -206,9 +206,10 @@ void SbiSymPool::Add( SbiSymDef* pDef )
SbiSymDef* SbiSymPool::Find( const String& rName ) const
{
- for( USHORT i = 0; i < aData.Count(); i++ )
+ USHORT nCount = aData.Count();
+ for( USHORT i = 0; i < nCount; i++ )
{
- SbiSymDef* p = aData.GetObject( i );
+ SbiSymDef* p = aData.GetObject( nCount - i - 1 );
if( ( !p->nProcId || ( p->nProcId == nProcId ) )
&& ( p->aName.EqualsIgnoreCaseAscii( rName ) ) )
return p;
diff --git a/basic/source/inc/expr.hxx b/basic/source/inc/expr.hxx
index 851d0d6f1fe5..3795321f0578 100644
--- a/basic/source/inc/expr.hxx
+++ b/basic/source/inc/expr.hxx
@@ -188,6 +188,7 @@ protected:
SbiExprNode* AddSub();
SbiExprNode* Cat();
SbiExprNode* Like();
+ SbiExprNode* VBA_Not();
SbiExprNode* Comp();
SbiExprNode* Boolean();
public:
diff --git a/basic/source/inc/runtime.hxx b/basic/source/inc/runtime.hxx
index 6ca69209a752..356e07c9e55c 100644
--- a/basic/source/inc/runtime.hxx
+++ b/basic/source/inc/runtime.hxx
@@ -276,6 +276,8 @@ struct RefSaveItem
class SbiRuntime
{
+ friend void SbRtl_CallByName( StarBASIC* pBasic, SbxArray& rPar, BOOL bWrite );
+
typedef void( SbiRuntime::*pStep0 )();
typedef void( SbiRuntime::*pStep1 )( UINT32 nOp1 );
typedef void( SbiRuntime::*pStep2 )( UINT32 nOp1, UINT32 nOp2 );
@@ -434,7 +436,7 @@ class SbiRuntime
void StepDCREATE_REDIMP(UINT32,UINT32), StepDCREATE_IMPL(UINT32,UINT32);
void StepFIND_CM( UINT32, UINT32 );
void StepFIND_STATIC( UINT32, UINT32 );
- void implCreateFixedString( SbxVariable* pStrVar, UINT32 nOp2 );
+ void implHandleSbxFlags( SbxVariable* pVar, SbxDataType t, UINT32 nOp2 );
public:
void SetVBAEnabled( bool bEnabled );
USHORT GetImageFlag( USHORT n ) const;
diff --git a/basic/source/inc/sbtrace.hxx b/basic/source/inc/sbtrace.hxx
index e8a482c2f6e9..50e344fb63d2 100755
--- a/basic/source/inc/sbtrace.hxx
+++ b/basic/source/inc/sbtrace.hxx
@@ -28,15 +28,17 @@
#ifndef _SBTRACE_HXX
#define _SBTRACE_HXX
-// #define DBG_TRACE_BASIC
+//#define DBG_TRACE_BASIC
#ifdef DBG_TRACE_BASIC
void dbg_InitTrace( void );
+void dbg_DeInitTrace( void );
void dbg_traceStep( SbModule* pModule, UINT32 nPC, INT32 nCallLvl );
void dbg_traceNotifyCall( SbModule* pModule, SbMethod* pMethod, INT32 nCallLvl, bool bLeave = false );
void dbg_traceNotifyError( SbError nTraceErr, const String& aTraceErrMsg, bool bTraceErrHandled, INT32 nCallLvl );
void dbg_RegisterTraceTextForPC( SbModule* pModule, UINT32 nPC,
const String& aTraceStr_STMNT, const String& aTraceStr_PCode );
+void RTL_Impl_TraceCommand( StarBASIC* pBasic, SbxArray& rPar, BOOL bWrite );
#endif
#endif
diff --git a/basic/source/inc/sbunoobj.hxx b/basic/source/inc/sbunoobj.hxx
index 78afa9783ca8..051ceedfbc78 100644
--- a/basic/source/inc/sbunoobj.hxx
+++ b/basic/source/inc/sbunoobj.hxx
@@ -52,7 +52,7 @@ class SbUnoObject: public SbxObject
::com::sun::star::uno::Reference< ::com::sun::star::beans::XExactName > mxExactName;
::com::sun::star::uno::Reference< ::com::sun::star::beans::XExactName > mxExactNameInvocation;
BOOL bNeedIntrospection;
- BOOL bIgnoreNativeCOMObjectMembers;
+ BOOL bNativeCOMObject;
::com::sun::star::uno::Any maTmpUnoObj; // Only to save obj for doIntrospection!
// Hilfs-Methode zum Anlegen der dbg_-Properties
@@ -84,17 +84,22 @@ public:
::com::sun::star::uno::Reference< ::com::sun::star::script::XInvocation > getInvocation( void ) { return mxInvocation; }
void SFX_NOTIFY( SfxBroadcaster&, const TypeId&, const SfxHint& rHint, const TypeId& );
+
+ bool isNativeCOMObject( void )
+ { return bNativeCOMObject; }
};
SV_DECL_IMPL_REF(SbUnoObject);
// #67781 Rueckgabewerte der Uno-Methoden loeschen
void clearUnoMethods( void );
+void clearUnoMethodsForBasic( StarBASIC* pBasic );
class SbUnoMethod : public SbxMethod
{
friend class SbUnoObject;
friend void clearUnoMethods( void );
+ friend void clearUnoMethodsForBasic( StarBASIC* pBasic );
::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlMethod > m_xUnoMethod;
::com::sun::star::uno::Sequence< ::com::sun::star::reflection::ParamInfo >* pParamInfoSeq;
@@ -103,13 +108,15 @@ class SbUnoMethod : public SbxMethod
SbUnoMethod* pPrev;
SbUnoMethod* pNext;
- bool mbInvocation; // Method is based on invocation
+ bool mbInvocation; // Method is based on invocation
+ bool mbDirectInvocation; // Method should be used with XDirectInvocation interface
public:
TYPEINFO();
SbUnoMethod( const String& aName_, SbxDataType eSbxType, ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlMethod > xUnoMethod_,
- bool bInvocation );
+ bool bInvocation,
+ bool bDirect = false );
virtual ~SbUnoMethod();
virtual SbxInfo* GetInfo();
@@ -117,6 +124,8 @@ public:
bool isInvocationBased( void )
{ return mbInvocation; }
+ bool needsDirectInvocation( void )
+ { return mbDirectInvocation; }
};
@@ -293,6 +302,9 @@ void RTL_Impl_IsUnoStruct( StarBASIC* pBasic, SbxArray& rPar, BOOL bWrite );
void RTL_Impl_EqualUnoObjects( StarBASIC* pBasic, SbxArray& rPar, BOOL bWrite );
void RTL_Impl_GetDefaultContext( StarBASIC* pBasic, SbxArray& rPar, BOOL bWrite );
+void disposeComVariablesForBasic( StarBASIC* pBasic );
+void clearNativeObjectWrapperVector( void );
+
//========================================================================
// #118116 Collection object
diff --git a/basic/source/inc/scriptcont.hxx b/basic/source/inc/scriptcont.hxx
index 091fbc24cdbe..d788a73da0fc 100644
--- a/basic/source/inc/scriptcont.hxx
+++ b/basic/source/inc/scriptcont.hxx
@@ -43,6 +43,7 @@ namespace basic
class SfxScriptLibraryContainer : public SfxLibraryContainer, public OldBasicPassword
{
::rtl::OUString maScriptLanguage;
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > mxCodeNameAccess;
// Methods to distinguish between deffirent library types
virtual SfxLibrary* SAL_CALL implCreateLibrary( const ::rtl::OUString& aName );
diff --git a/basic/source/runtime/comenumwrapper.cxx b/basic/source/runtime/comenumwrapper.cxx
new file mode 100644
index 000000000000..ba3def41838f
--- /dev/null
+++ b/basic/source/runtime/comenumwrapper.cxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "precompiled_basic.hxx"
+#include "comenumwrapper.hxx"
+
+using namespace ::com::sun::star;
+
+::sal_Bool SAL_CALL ComEnumerationWrapper::hasMoreElements()
+ throw ( uno::RuntimeException )
+{
+ sal_Bool bResult = sal_False;
+
+ try
+ {
+ if ( m_xInvocation.is() )
+ {
+ sal_Int32 nLength = 0;
+ bResult =
+ ( ( m_xInvocation->getValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "length" ) ) ) >>= nLength )
+ && nLength > m_nCurInd );
+ }
+ }
+ catch( uno::Exception& )
+ {}
+
+ return bResult;
+}
+
+uno::Any SAL_CALL ComEnumerationWrapper::nextElement()
+ throw ( container::NoSuchElementException,
+ lang::WrappedTargetException,
+ uno::RuntimeException )
+{
+ try
+ {
+ if ( m_xInvocation.is() )
+ {
+ uno::Sequence< sal_Int16 > aNamedParamIndex;
+ uno::Sequence< uno::Any > aNamedParam;
+ uno::Sequence< uno::Any > aArgs( 1 );
+
+ aArgs[0] <<= m_nCurInd++;
+
+ return m_xInvocation->invoke( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "item" ) ),
+ aArgs,
+ aNamedParamIndex,
+ aNamedParam );
+ }
+ }
+ catch( uno::Exception& )
+ {}
+
+ throw container::NoSuchElementException();
+}
+
+
diff --git a/basic/source/runtime/comenumwrapper.hxx b/basic/source/runtime/comenumwrapper.hxx
new file mode 100644
index 000000000000..b2464d686f67
--- /dev/null
+++ b/basic/source/runtime/comenumwrapper.hxx
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _COMENUMWRAPPER_HXX
+#define _COMENUMWRAPPER_HXX
+
+#include <com/sun/star/container/XEnumeration.hpp>
+#include <com/sun/star/script/XInvocation.hpp>
+
+#include <cppuhelper/implbase1.hxx>
+
+class ComEnumerationWrapper : public ::cppu::WeakImplHelper1< ::com::sun::star::container::XEnumeration >
+{
+ ::com::sun::star::uno::Reference< ::com::sun::star::script::XInvocation > m_xInvocation;
+ sal_Int32 m_nCurInd;
+
+public:
+ ComEnumerationWrapper( const ::com::sun::star::uno::Reference< ::com::sun::star::script::XInvocation >& xInvocation )
+ : m_xInvocation( xInvocation )
+ , m_nCurInd( 0 )
+ {
+ }
+
+ // container::XEnumeration
+ virtual ::sal_Bool SAL_CALL hasMoreElements() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL nextElement() throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+};
+
+#endif // _COMENUMWRAPPER_HXX
+
diff --git a/basic/source/runtime/makefile.mk b/basic/source/runtime/makefile.mk
index f2ed11196b28..8ca052aaae1a 100644
--- a/basic/source/runtime/makefile.mk
+++ b/basic/source/runtime/makefile.mk
@@ -41,6 +41,7 @@ ENABLE_EXCEPTIONS = TRUE
SLOFILES= \
$(SLO)$/basrdll.obj \
+ $(SLO)$/comenumwrapper.obj \
$(SLO)$/inputbox.obj \
$(SLO)$/runtime.obj \
$(SLO)$/step0.obj \
diff --git a/basic/source/runtime/methods1.cxx b/basic/source/runtime/methods1.cxx
index 2a536eae65be..6b955fed3d8a 100644..100755
--- a/basic/source/runtime/methods1.cxx
+++ b/basic/source/runtime/methods1.cxx
@@ -112,6 +112,126 @@ static Reference< XCalendar > getLocaleCalendar( void )
return xCalendar;
}
+RTLFUNC(CallByName)
+{
+ (void)pBasic;
+ (void)bWrite;
+
+ const INT16 vbGet = 2;
+ const INT16 vbLet = 4;
+ const INT16 vbMethod = 1;
+ const INT16 vbSet = 8;
+
+ // At least 3 parameter needed plus function itself -> 4
+ USHORT nParCount = rPar.Count();
+ if ( nParCount < 4 )
+ {
+ StarBASIC::Error( SbERR_BAD_ARGUMENT );
+ return;
+ }
+
+ // 1. parameter is object
+ SbxBase* pObjVar = (SbxObject*)rPar.Get(1)->GetObject();
+ SbxObject* pObj = NULL;
+ if( pObjVar )
+ pObj = PTR_CAST(SbxObject,pObjVar);
+ if( !pObj && pObjVar && pObjVar->ISA(SbxVariable) )
+ {
+ SbxBase* pObjVarObj = ((SbxVariable*)pObjVar)->GetObject();
+ pObj = PTR_CAST(SbxObject,pObjVarObj);
+ }
+ if( !pObj )
+ {
+ StarBASIC::Error( SbERR_BAD_PARAMETER );
+ return;
+ }
+
+ // 2. parameter is ProcedureName
+ String aNameStr = rPar.Get(2)->GetString();
+
+ // 3. parameter is CallType
+ INT16 nCallType = rPar.Get(3)->GetInteger();
+
+ //SbxObject* pFindObj = NULL;
+ SbxVariable* pFindVar = pObj->Find( aNameStr, SbxCLASS_DONTCARE );
+ if( pFindVar == NULL )
+ {
+ StarBASIC::Error( SbERR_PROC_UNDEFINED );
+ return;
+ }
+
+ switch( nCallType )
+ {
+ case vbGet:
+ {
+ SbxValues aVals;
+ aVals.eType = SbxVARIANT;
+ pFindVar->Get( aVals );
+
+ SbxVariableRef refVar = rPar.Get(0);
+ refVar->Put( aVals );
+ }
+ break;
+ case vbLet:
+ case vbSet:
+ {
+ if ( nParCount != 5 )
+ {
+ StarBASIC::Error( SbERR_BAD_ARGUMENT );
+ return;
+ }
+ SbxVariableRef pValVar = rPar.Get(4);
+ if( nCallType == vbLet )
+ {
+ SbxValues aVals;
+ aVals.eType = SbxVARIANT;
+ pValVar->Get( aVals );
+ pFindVar->Put( aVals );
+ }
+ else
+ {
+ SbxVariableRef rFindVar = pFindVar;
+ SbiInstance* pInst = pINST;
+ SbiRuntime* pRT = pInst ? pInst->pRun : NULL;
+ if( pRT != NULL )
+ pRT->StepSET_Impl( pValVar, rFindVar, false );
+ }
+ }
+ break;
+ case vbMethod:
+ {
+ SbMethod* pMeth = PTR_CAST(SbMethod,pFindVar);
+ if( pMeth == NULL )
+ {
+ StarBASIC::Error( SbERR_PROC_UNDEFINED );
+ return;
+ }
+
+ // Setup parameters
+ SbxArrayRef xArray;
+ USHORT nMethParamCount = nParCount - 4;
+ if( nMethParamCount > 0 )
+ {
+ xArray = new SbxArray;
+ for( USHORT i = 0 ; i < nMethParamCount ; i++ )
+ {
+ SbxVariable* pPar = rPar.Get( i + 4 );
+ xArray->Put( pPar, i + 1 );
+ }
+ }
+
+ // Call method
+ SbxVariableRef refVar = rPar.Get(0);
+ if( xArray.Is() )
+ pMeth->SetParameters( xArray );
+ pMeth->Call( refVar );
+ pMeth->SetParameters( NULL );
+ }
+ break;
+ default:
+ StarBASIC::Error( SbERR_PROC_UNDEFINED );
+ }
+}
RTLFUNC(CBool) // JSM
{
@@ -527,6 +647,7 @@ RTLFUNC(DoEvents)
//aTimer.Start();
//while ( aTimer.IsActive() )
// Application::Reschedule();
+ Application::Reschedule( true );
}
RTLFUNC(GetGUIVersion)
@@ -1513,6 +1634,12 @@ RTLFUNC(GetDefaultContext)
RTL_Impl_GetDefaultContext( pBasic, rPar, bWrite );
}
+#ifdef DBG_TRACE_BASIC
+RTLFUNC(TraceCommand)
+{
+ RTL_Impl_TraceCommand( pBasic, rPar, bWrite );
+}
+#endif
RTLFUNC(Join)
{
diff --git a/basic/source/runtime/rtlproto.hxx b/basic/source/runtime/rtlproto.hxx
index 5437654f69a0..ba7af48c8472 100644
--- a/basic/source/runtime/rtlproto.hxx
+++ b/basic/source/runtime/rtlproto.hxx
@@ -26,6 +26,7 @@
************************************************************************/
#include <basic/sbstar.hxx>
+#include "sbtrace.hxx"
#define RTLFUNC( name ) void SbRtl_##name( StarBASIC* pBasic, SbxArray& rPar, BOOL bWrite )
#define RTLNAME( name ) &SbRtl_##name
@@ -271,6 +272,7 @@ extern RTLFUNC(AboutStarBasic);
extern RTLFUNC(LoadPicture);
extern RTLFUNC(SavePicture);
+extern RTLFUNC(CallByName);
extern RTLFUNC(CBool); // JSM
extern RTLFUNC(CByte); // JSM
extern RTLFUNC(CCur); // JSM
@@ -345,5 +347,9 @@ extern RTLFUNC(CDec);
extern RTLFUNC(Partition); // Fong
+#ifdef DBG_TRACE_BASIC
+extern RTLFUNC(TraceCommand);
+#endif
+
extern double Now_Impl();
extern void Wait_Impl( bool bDurationBased, SbxArray& rPar );
diff --git a/basic/source/runtime/runtime.cxx b/basic/source/runtime/runtime.cxx
index 1bb6fb82e113..62aa639e4c7e 100644
--- a/basic/source/runtime/runtime.cxx
+++ b/basic/source/runtime/runtime.cxx
@@ -45,6 +45,7 @@
#include "sbunoobj.hxx"
#include "errobject.hxx"
#include "sbtrace.hxx"
+#include "comenumwrapper.hxx"
using namespace ::com::sun::star;
@@ -890,11 +891,12 @@ void SbiRuntime::Error( SbError _errCode, const String& _details )
{
if ( _errCode )
{
- OSL_ENSURE( pInst->pRun == this, "SbiRuntime::Error: can't propagate the error message details!" );
+ // Not correct for class module usage, remove for now
+ //OSL_ENSURE( pInst->pRun == this, "SbiRuntime::Error: can't propagate the error message details!" );
if ( pInst->pRun == this )
{
pInst->Error( _errCode, _details );
- OSL_POSTCOND( nError == _errCode, "SbiRuntime::Error: the instance is expecte to propagate the error code back to me!" );
+ //OSL_POSTCOND( nError == _errCode, "SbiRuntime::Error: the instance is expecte to propagate the error code back to me!" );
}
else
{
@@ -1176,6 +1178,23 @@ void SbiRuntime::PushForEach()
p->xEnumeration = xEnumerationAccess->createEnumeration();
p->eForType = FOR_EACH_XENUMERATION;
}
+ else if ( isVBAEnabled() && pUnoObj->isNativeCOMObject() )
+ {
+ uno::Reference< script::XInvocation > xInvocation;
+ if ( ( aAny >>= xInvocation ) && xInvocation.is() )
+ {
+ try
+ {
+ p->xEnumeration = new ComEnumerationWrapper( xInvocation );
+ p->eForType = FOR_EACH_XENUMERATION;
+ }
+ catch( uno::Exception& )
+ {}
+ }
+
+ if ( !p->xEnumeration.is() )
+ bError_ = true;
+ }
else
{
bError_ = true;
diff --git a/basic/source/runtime/stdobj.cxx b/basic/source/runtime/stdobj.cxx
index 4455901bfeba..39f92afdea4a 100644
--- a/basic/source/runtime/stdobj.cxx
+++ b/basic/source/runtime/stdobj.cxx
@@ -94,6 +94,10 @@ static Methods aMethods[] = {
{ "Blue", SbxINTEGER, 1 | _FUNCTION, RTLNAME(Blue),0 },
{ "RGB-Value", SbxLONG, 0,NULL,0 },
+{ "CallByName", SbxVARIANT, 3 | _FUNCTION, RTLNAME(CallByName),0 },
+ { "Object", SbxOBJECT, 0,NULL,0 },
+ { "ProcedureName",SbxSTRING, 0,NULL,0 },
+ { "CallType", SbxINTEGER, 0,NULL,0 },
{ "CBool", SbxBOOL, 1 | _FUNCTION, RTLNAME(CBool),0 },
{ "expression", SbxVARIANT, 0,NULL,0 },
{ "CByte", SbxBYTE, 1 | _FUNCTION, RTLNAME(CByte),0 },
@@ -531,6 +535,10 @@ static Methods aMethods[] = {
{ "TimeValue", SbxDATE, 1 | _FUNCTION, RTLNAME(TimeValue),0 },
{ "String", SbxSTRING, 0,NULL,0 },
{ "TOGGLE", SbxINTEGER, _CPROP, RTLNAME(TOGGLE),0 },
+#ifdef DBG_TRACE_BASIC
+{ "TraceCommand", SbxNULL, 1 | _FUNCTION, RTLNAME(TraceCommand),0 },
+ { "Command", SbxSTRING, 0,NULL,0 },
+#endif
{ "Trim", SbxSTRING, 1 | _FUNCTION, RTLNAME(Trim),0 },
{ "String", SbxSTRING, 0,NULL,0 },
{ "True", SbxBOOL, _CPROP, RTLNAME(True),0 },
diff --git a/basic/source/runtime/step0.cxx b/basic/source/runtime/step0.cxx
index 2acf59ca6b71..c686b0ed80ed 100644
--- a/basic/source/runtime/step0.cxx
+++ b/basic/source/runtime/step0.cxx
@@ -47,6 +47,7 @@ Reference< XInterface > createComListener( const Any& aControlAny, const ::rtl::
const ::rtl::OUString& aPrefix, SbxObjectRef xScopeObj );
#include <algorithm>
+#include <hash_map>
SbxVariable* getDefaultProp( SbxVariable* pRef );
@@ -418,9 +419,53 @@ void SbiRuntime::StepPUT()
}
+// VBA Dim As New behavior handling, save init object information
+struct DimAsNewRecoverItem
+{
+ String m_aObjClass;
+ String m_aObjName;
+ SbxObject* m_pObjParent;
+ SbModule* m_pClassModule;
+
+ DimAsNewRecoverItem( void )
+ : m_pObjParent( NULL )
+ , m_pClassModule( NULL )
+ {}
+
+ DimAsNewRecoverItem( const String& rObjClass, const String& rObjName,
+ SbxObject* pObjParent, SbModule* pClassModule )
+ : m_aObjClass( rObjClass )
+ , m_aObjName( rObjName )
+ , m_pObjParent( pObjParent )
+ , m_pClassModule( pClassModule )
+ {}
+
+};
+
+
+struct SbxVariablePtrHash
+{
+ size_t operator()( SbxVariable* pVar ) const
+ { return (size_t)pVar; }
+};
+
+typedef std::hash_map< SbxVariable*, DimAsNewRecoverItem, SbxVariablePtrHash > DimAsNewRecoverHash;
+
+static DimAsNewRecoverHash GaDimAsNewRecoverHash;
+
+void removeDimAsNewRecoverItem( SbxVariable* pVar )
+{
+ DimAsNewRecoverHash::iterator it = GaDimAsNewRecoverHash.find( pVar );
+ if( it != GaDimAsNewRecoverHash.end() )
+ GaDimAsNewRecoverHash.erase( it );
+}
+
+
// Speichern Objektvariable
// Nicht-Objekt-Variable fuehren zu Fehlern
+static const char pCollectionStr[] = "Collection";
+
void SbiRuntime::StepSET_Impl( SbxVariableRef& refVal, SbxVariableRef& refVar, bool bHandleDefaultProp )
{
// #67733 Typen mit Array-Flag sind auch ok
@@ -523,6 +568,12 @@ void SbiRuntime::StepSET_Impl( SbxVariableRef& refVal, SbxVariableRef& refVar, b
}
}
+ // Handle Dim As New
+ BOOL bDimAsNew = bVBAEnabled && refVar->IsSet( SBX_DIM_AS_NEW );
+ SbxBaseRef xPrevVarObj;
+ if( bDimAsNew )
+ xPrevVarObj = refVar->GetObject();
+
// Handle withevents
BOOL bWithEvents = refVar->IsSet( SBX_WITH_EVENTS );
if ( bWithEvents )
@@ -541,7 +592,7 @@ void SbiRuntime::StepSET_Impl( SbxVariableRef& refVal, SbxVariableRef& refVar, b
xComListener = createComListener( aControlAny, aVBAType, aPrefix, xScopeObj );
refVal->SetDeclareClassName( aDeclareClassName );
- refVal->SetComListener( xComListener ); // Hold reference
+ refVal->SetComListener( xComListener, &rBasic ); // Hold reference
}
*refVar = *refVal;
@@ -551,6 +602,68 @@ void SbiRuntime::StepSET_Impl( SbxVariableRef& refVal, SbxVariableRef& refVar, b
*refVar = *refVal;
}
+ if ( bDimAsNew )
+ {
+ if( !refVar->ISA(SbxObject) )
+ {
+ SbxBase* pValObjBase = refVal->GetObject();
+ if( pValObjBase == NULL )
+ {
+ if( xPrevVarObj.Is() )
+ {
+ // Object is overwritten with NULL, instantiate init object
+ DimAsNewRecoverHash::iterator it = GaDimAsNewRecoverHash.find( refVar );
+ if( it != GaDimAsNewRecoverHash.end() )
+ {
+ const DimAsNewRecoverItem& rItem = it->second;
+ if( rItem.m_pClassModule != NULL )
+ {
+ SbClassModuleObject* pNewObj = new SbClassModuleObject( rItem.m_pClassModule );
+ pNewObj->SetName( rItem.m_aObjName );
+ pNewObj->SetParent( rItem.m_pObjParent );
+ refVar->PutObject( pNewObj );
+ }
+ else if( rItem.m_aObjClass.EqualsIgnoreCaseAscii( pCollectionStr ) )
+ {
+ BasicCollection* pNewCollection = new BasicCollection( String( RTL_CONSTASCII_USTRINGPARAM(pCollectionStr) ) );
+ pNewCollection->SetName( rItem.m_aObjName );
+ pNewCollection->SetParent( rItem.m_pObjParent );
+ refVar->PutObject( pNewCollection );
+ }
+ }
+ }
+ }
+ else
+ {
+ // Does old value exist?
+ bool bFirstInit = !xPrevVarObj.Is();
+ if( bFirstInit )
+ {
+ // Store information to instantiate object later
+ SbxObject* pValObj = PTR_CAST(SbxObject,pValObjBase);
+ if( pValObj != NULL )
+ {
+ String aObjClass = pValObj->GetClassName();
+
+ SbClassModuleObject* pClassModuleObj = PTR_CAST(SbClassModuleObject,pValObjBase);
+ if( pClassModuleObj != NULL )
+ {
+ SbModule* pClassModule = pClassModuleObj->getClassModule();
+ GaDimAsNewRecoverHash[refVar] =
+ DimAsNewRecoverItem( aObjClass, pValObj->GetName(), pValObj->GetParent(), pClassModule );
+ }
+ else if( aObjClass.EqualsIgnoreCaseAscii( "Collection" ) )
+ {
+ GaDimAsNewRecoverHash[refVar] =
+ DimAsNewRecoverItem( aObjClass, pValObj->GetName(), pValObj->GetParent(), NULL );
+ }
+ }
+ }
+ }
+ }
+ }
+
+
// lhs is a property who's value is currently (Empty e.g. no broadcast yet)
// in this case if there is a default prop involved the value of the
// default property may infact be void so the type will also be SbxEMPTY
diff --git a/basic/source/runtime/step2.cxx b/basic/source/runtime/step2.cxx
index 587b0ae7a590..64a9d86ab940 100755
--- a/basic/source/runtime/step2.cxx
+++ b/basic/source/runtime/step2.cxx
@@ -143,15 +143,19 @@ SbxVariable* SbiRuntime::FindElement
else
pElem = getVBAConstant( aName );
}
- // #72382 VORSICHT! Liefert jetzt wegen unbekannten
- // Modulen IMMER ein Ergebnis!
- SbUnoClass* pUnoClass = findUnoClass( aName );
- if( pUnoClass )
+
+ if( !pElem )
{
- pElem = new SbxVariable( t );
- SbxValues aRes( SbxOBJECT );
- aRes.pObj = pUnoClass;
- pElem->SbxVariable::Put( aRes );
+ // #72382 VORSICHT! Liefert jetzt wegen unbekannten
+ // Modulen IMMER ein Ergebnis!
+ SbUnoClass* pUnoClass = findUnoClass( aName );
+ if( pUnoClass )
+ {
+ pElem = new SbxVariable( t );
+ SbxValues aRes( SbxOBJECT );
+ aRes.pObj = pUnoClass;
+ pElem->SbxVariable::Put( aRes );
+ }
}
// #62939 Wenn eine Uno-Klasse gefunden wurde, muss
@@ -407,6 +411,34 @@ void SbiRuntime::SetupArgs( SbxVariable* p, UINT32 nOp1 )
}
}
}
+ else if( bVBAEnabled && p->GetType() == SbxOBJECT && (!p->ISA(SbxMethod) || !p->IsBroadcaster()) )
+ {
+ // Check for default method with named parameters
+ SbxBaseRef pObj = (SbxBase*)p->GetObject();
+ if( pObj && pObj->ISA(SbUnoObject) )
+ {
+ SbUnoObject* pUnoObj = (SbUnoObject*)(SbxBase*)pObj;
+ Any aAny = pUnoObj->getUnoAny();
+
+ if( aAny.getValueType().getTypeClass() == TypeClass_INTERFACE )
+ {
+ Reference< XInterface > x = *(Reference< XInterface >*)aAny.getValue();
+ Reference< XDefaultMethod > xDfltMethod( x, UNO_QUERY );
+
+ rtl::OUString sDefaultMethod;
+ if ( xDfltMethod.is() )
+ sDefaultMethod = xDfltMethod->getDefaultMethodName();
+ if ( sDefaultMethod.getLength() )
+ {
+ SbxVariable* meth = pUnoObj->Find( sDefaultMethod, SbxCLASS_METHOD );
+ if( meth != NULL )
+ pInfo = meth->GetInfo();
+ if( pInfo )
+ bError_ = false;
+ }
+ }
+ }
+ }
if( bError_ )
Error( SbERR_NO_NAMED_ARGS );
}
@@ -489,7 +521,7 @@ SbxVariable* SbiRuntime::CheckArray( SbxVariable* pElem )
pPar->Put( NULL, 0 );
}
// Index-Access bei UnoObjekten beruecksichtigen
- else if( pElem->GetType() == SbxOBJECT && !pElem->ISA(SbxMethod) )
+ else if( pElem->GetType() == SbxOBJECT && (!pElem->ISA(SbxMethod) || !pElem->IsBroadcaster()) )
{
pPar = pElem->GetParameters();
if ( pPar )
@@ -589,6 +621,12 @@ SbxVariable* SbiRuntime::CheckArray( SbxVariable* pElem )
pCol->CollItem( pPar );
}
}
+ else if( bVBAEnabled ) // !pObj
+ {
+ SbxArray* pParam = pElem->GetParameters();
+ if( pParam != NULL )
+ Error( SbERR_NO_OBJECT );
+ }
}
}
@@ -1085,12 +1123,24 @@ void SbiRuntime::StepTCREATE( UINT32 nOp1, UINT32 nOp2 )
PushVar( pNew );
}
-void SbiRuntime::implCreateFixedString( SbxVariable* pStrVar, UINT32 nOp2 )
+void SbiRuntime::implHandleSbxFlags( SbxVariable* pVar, SbxDataType t, UINT32 nOp2 )
{
- USHORT nCount = static_cast<USHORT>( nOp2 >> 17 ); // len = all bits above 0x10000
- String aStr;
- aStr.Fill( nCount, 0 );
- pStrVar->PutString( aStr );
+ bool bWithEvents = ((t & 0xff) == SbxOBJECT && (nOp2 & SBX_TYPE_WITH_EVENTS_FLAG) != 0);
+ if( bWithEvents )
+ pVar->SetFlag( SBX_WITH_EVENTS );
+
+ bool bDimAsNew = ((nOp2 & SBX_TYPE_DIM_AS_NEW_FLAG) != 0);
+ if( bDimAsNew )
+ pVar->SetFlag( SBX_DIM_AS_NEW );
+
+ bool bFixedString = ((t & 0xff) == SbxSTRING && (nOp2 & SBX_FIXED_LEN_STRING_FLAG) != 0);
+ if( bFixedString )
+ {
+ USHORT nCount = static_cast<USHORT>( nOp2 >> 17 ); // len = all bits above 0x10000
+ String aStr;
+ aStr.Fill( nCount, 0 );
+ pVar->PutString( aStr );
+ }
}
// Einrichten einer lokalen Variablen (+StringID+Typ)
@@ -1105,12 +1155,7 @@ void SbiRuntime::StepLOCAL( UINT32 nOp1, UINT32 nOp2 )
SbxDataType t = (SbxDataType)(nOp2 & 0xffff);
SbxVariable* p = new SbxVariable( t );
p->SetName( aName );
- bool bWithEvents = ((t & 0xff) == SbxOBJECT && (nOp2 & SBX_TYPE_WITH_EVENTS_FLAG) != 0);
- if( bWithEvents )
- p->SetFlag( SBX_WITH_EVENTS );
- bool bFixedString = ((t & 0xff) == SbxSTRING && (nOp2 & SBX_FIXED_LEN_STRING_FLAG) != 0);
- if( bFixedString )
- implCreateFixedString( p, nOp2 );
+ implHandleSbxFlags( p, t, nOp2 );
refLocals->Put( p, refLocals->Count() );
}
}
@@ -1137,12 +1182,7 @@ void SbiRuntime::StepPUBLIC_Impl( UINT32 nOp1, UINT32 nOp2, bool bUsedForClassMo
// AB: 2.7.1996: HACK wegen 'Referenz kann nicht gesichert werden'
pProp->SetFlag( SBX_NO_MODIFY);
- bool bWithEvents = ((t & 0xff) == SbxOBJECT && (nOp2 & SBX_TYPE_WITH_EVENTS_FLAG) != 0);
- if( bWithEvents )
- pProp->SetFlag( SBX_WITH_EVENTS );
- bool bFixedString = ((t & 0xff) == SbxSTRING && (nOp2 & SBX_FIXED_LEN_STRING_FLAG) != 0);
- if( bFixedString )
- implCreateFixedString( p, nOp2 );
+ implHandleSbxFlags( pProp, t, nOp2 );
}
}
diff --git a/basic/source/sbx/sbxbool.cxx b/basic/source/sbx/sbxbool.cxx
index 3216e401b707..c3ed0d09b134 100644
--- a/basic/source/sbx/sbxbool.cxx
+++ b/basic/source/sbx/sbxbool.cxx
@@ -91,7 +91,7 @@ enum SbxBOOL ImpGetBool( const SbxValues* p )
{
if( p->pOUString->equalsIgnoreAsciiCase( SbxRes( STRING_TRUE ) ) )
nRes = SbxTRUE;
- else if( p->pOUString->equalsIgnoreAsciiCase( SbxRes( STRING_FALSE ) ) )
+ else if( !p->pOUString->equalsIgnoreAsciiCase( SbxRes( STRING_FALSE ) ) )
{
// Jetzt kann es noch in eine Zahl konvertierbar sein
BOOL bError = TRUE;
diff --git a/basic/source/sbx/sbxobj.cxx b/basic/source/sbx/sbxobj.cxx
index b2b67fe3774f..6628973b29e8 100644
--- a/basic/source/sbx/sbxobj.cxx
+++ b/basic/source/sbx/sbxobj.cxx
@@ -112,6 +112,9 @@ SbxObject::~SbxObject()
CheckParentsOnDelete( this, pProps );
CheckParentsOnDelete( this, pMethods );
CheckParentsOnDelete( this, pObjs );
+
+ // avoid handling in ~SbxVariable as SBX_DIM_AS_NEW == SBX_GBLSEARCH
+ ResetFlag( SBX_DIM_AS_NEW );
}
SbxDataType SbxObject::GetType() const
diff --git a/basic/source/sbx/sbxvalue.cxx b/basic/source/sbx/sbxvalue.cxx
index 4ea4836b701b..a5e80e8921c6 100644..100755
--- a/basic/source/sbx/sbxvalue.cxx
+++ b/basic/source/sbx/sbxvalue.cxx
@@ -436,6 +436,8 @@ SbxValue* SbxValue::TheRealValue() const
}
// #55226 Zusaetzliche Info transportieren
+bool handleToStringForCOMObjects( SbxObject* pObj, SbxValue* pVal ); // sbunoobj.cxx
+
SbxValue* SbxValue::TheRealValue( BOOL bObjInObjError ) const
{
SbxValue* p = (SbxValue*) this;
@@ -461,8 +463,12 @@ SbxValue* SbxValue::TheRealValue( BOOL bObjInObjError ) const
((SbxValue*) pObj)->aData.eType == SbxOBJECT &&
((SbxValue*) pObj)->aData.pObj == pObj )
{
- SetError( SbxERR_BAD_PROP_VALUE );
- p = NULL;
+ bool bSuccess = handleToStringForCOMObjects( pObj, p );
+ if( !bSuccess )
+ {
+ SetError( SbxERR_BAD_PROP_VALUE );
+ p = NULL;
+ }
}
else if( pDflt )
p = pDflt;
diff --git a/basic/source/sbx/sbxvar.cxx b/basic/source/sbx/sbxvar.cxx
index 58e3c1ae92c2..12a6d29672a9 100644
--- a/basic/source/sbx/sbxvar.cxx
+++ b/basic/source/sbx/sbxvar.cxx
@@ -59,13 +59,17 @@ class SbxVariableImpl
friend class SbxVariable;
String m_aDeclareClassName;
Reference< XInterface > m_xComListener;
+ StarBASIC* m_pComListenerParentBasic;
SbxVariableImpl( void )
+ : m_pComListenerParentBasic( NULL )
{}
SbxVariableImpl( const SbxVariableImpl& r )
: m_aDeclareClassName( r.m_aDeclareClassName )
, m_xComListener( r.m_xComListener )
- {}
+ , m_pComListenerParentBasic( r.m_pComListenerParentBasic )
+ {
+ }
};
@@ -84,12 +88,18 @@ SbxVariable::SbxVariable() : SbxValue()
#endif
}
+void registerComListenerVariableForBasic( SbxVariable* pVar, StarBASIC* pBasic );
+
SbxVariable::SbxVariable( const SbxVariable& r )
: SvRefBase( r ), SbxValue( r ), mpPar( r.mpPar ), pInfo( r.pInfo )
{
mpSbxVariableImpl = NULL;
if( r.mpSbxVariableImpl != NULL )
+ {
mpSbxVariableImpl = new SbxVariableImpl( *r.mpSbxVariableImpl );
+ if( mpSbxVariableImpl->m_xComListener.is() )
+ registerComListenerVariableForBasic( this, mpSbxVariableImpl->m_pComListenerParentBasic );
+ }
pCst = NULL;
if( r.CanRead() )
{
@@ -126,6 +136,8 @@ SbxVariable::SbxVariable( SbxDataType t, void* p ) : SbxValue( t, p )
#endif
}
+void removeDimAsNewRecoverItem( SbxVariable* pVar );
+
SbxVariable::~SbxVariable()
{
#ifdef DBG_UTIL
@@ -136,6 +148,8 @@ SbxVariable::~SbxVariable()
maName.AssignAscii( aCellsStr, sizeof( aCellsStr )-1 );
GetSbxData_Impl()->aVars.Remove( this );
#endif
+ if( IsSet( SBX_DIM_AS_NEW ))
+ removeDimAsNewRecoverItem( this );
delete mpSbxVariableImpl;
delete pCst;
}
@@ -315,7 +329,11 @@ SbxVariable& SbxVariable::operator=( const SbxVariable& r )
SbxValue::operator=( r );
delete mpSbxVariableImpl;
if( r.mpSbxVariableImpl != NULL )
+ {
mpSbxVariableImpl = new SbxVariableImpl( *r.mpSbxVariableImpl );
+ if( mpSbxVariableImpl->m_xComListener.is() )
+ registerComListenerVariableForBasic( this, mpSbxVariableImpl->m_pComListenerParentBasic );
+ }
else
mpSbxVariableImpl = NULL;
return *this;
@@ -396,10 +414,19 @@ void SbxVariable::SetDeclareClassName( const String& rDeclareClassName )
pImpl->m_aDeclareClassName = rDeclareClassName;
}
-void SbxVariable::SetComListener( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xComListener )
+void SbxVariable::SetComListener( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xComListener,
+ StarBASIC* pParentBasic )
{
SbxVariableImpl* pImpl = getImpl();
pImpl->m_xComListener = xComListener;
+ pImpl->m_pComListenerParentBasic = pParentBasic;
+ registerComListenerVariableForBasic( this, pParentBasic );
+}
+
+void SbxVariable::ClearComListener( void )
+{
+ SbxVariableImpl* pImpl = getImpl();
+ pImpl->m_xComListener.clear();
}
diff --git a/basic/source/uno/modsizeexceeded.cxx b/basic/source/uno/modsizeexceeded.cxx
index 408b0f3f8dd4..3efc7f2d230b 100644
--- a/basic/source/uno/modsizeexceeded.cxx
+++ b/basic/source/uno/modsizeexceeded.cxx
@@ -27,9 +27,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_basic.hxx"
-#include "modsizeexceeded.hxx"
+#include "basic/modsizeexceeded.hxx"
-#include <framework/interaction.hxx>
+#include <comphelper/interaction.hxx>
#include <com/sun/star/script/ModuleSizeExceededRequest.hpp>
using namespace com::sun::star;
@@ -44,8 +44,8 @@ ModuleSizeExceeded::ModuleSizeExceeded( const uno::Sequence< ::rtl::OUString >&
m_aRequest <<= aReq;
- m_xAbort.set( uno::Reference< task::XInteractionAbort >(new framework::ContinuationAbort), uno::UNO_QUERY );
- m_xApprove.set( uno::Reference< task::XInteractionApprove >(new framework::ContinuationApprove ), uno::UNO_QUERY );
+ m_xAbort.set( uno::Reference< task::XInteractionAbort >(new comphelper::OInteractionAbort), uno::UNO_QUERY );
+ m_xApprove.set( uno::Reference< task::XInteractionApprove >(new comphelper::OInteractionApprove ), uno::UNO_QUERY );
m_lContinuations.realloc( 2 );
m_lContinuations[0] = m_xApprove;
m_lContinuations[1] = m_xAbort;
@@ -54,15 +54,15 @@ ModuleSizeExceeded::ModuleSizeExceeded( const uno::Sequence< ::rtl::OUString >&
sal_Bool
ModuleSizeExceeded::isAbort() const
{
- framework::ContinuationAbort* pBase = static_cast< framework::ContinuationAbort* >( m_xAbort.get() );
- return pBase->isSelected();
+ comphelper::OInteractionAbort* pBase = static_cast< comphelper::OInteractionAbort* >( m_xAbort.get() );
+ return pBase->wasSelected();
}
sal_Bool
ModuleSizeExceeded::isApprove() const
{
- framework::ContinuationApprove* pBase = static_cast< framework::ContinuationApprove* >( m_xApprove.get() );
- return pBase->isSelected();
+ comphelper::OInteractionApprove* pBase = static_cast< comphelper::OInteractionApprove* >( m_xApprove.get() );
+ return pBase->wasSelected();
}
diff --git a/basic/source/uno/namecont.cxx b/basic/source/uno/namecont.cxx
index c31aed1f8ef7..f44846972710 100644
--- a/basic/source/uno/namecont.cxx
+++ b/basic/source/uno/namecont.cxx
@@ -2815,19 +2815,37 @@ OUString SAL_CALL SfxLibraryContainer::getOriginalLibraryLinkURL( const OUString
void SAL_CALL SfxLibraryContainer::setVBACompatibilityMode( ::sal_Bool _vbacompatmodeon ) throw (RuntimeException)
{
- BasicManager* pBasMgr = getBasicManager();
- if( pBasMgr )
+ /* The member variable mbVBACompat must be set first, the following call
+ to getBasicManager() may call getVBACompatibilityMode() which returns
+ this value. */
+ mbVBACompat = _vbacompatmodeon;
+ if( BasicManager* pBasMgr = getBasicManager() )
{
// get the standard library
- String aLibName( RTL_CONSTASCII_USTRINGPARAM( "Standard" ) );
- if ( pBasMgr->GetName().Len() )
- aLibName = pBasMgr->GetName();
+ String aLibName = pBasMgr->GetName();
+ if ( aLibName.Len() == 0 )
+ aLibName = String( RTL_CONSTASCII_USTRINGPARAM( "Standard" ) );
- StarBASIC* pBasic = pBasMgr->GetLib( aLibName );
- if( pBasic )
+ if( StarBASIC* pBasic = pBasMgr->GetLib( aLibName ) )
pBasic->SetVBAEnabled( _vbacompatmodeon );
+
+ /* If in VBA compatibility mode, force creation of the VBA Globals
+ object. Each application will create an instance of its own
+ implementation and store it in its Basic manager. Implementations
+ will do all necessary additional initialization, such as
+ registering the global "This***Doc" UNO constant, starting the
+ document events processor etc.
+ */
+ if( mbVBACompat ) try
+ {
+ Reference< frame::XModel > xModel( mxOwnerDocument ); // weak-ref -> ref
+ Reference< XMultiServiceFactory > xFactory( xModel, UNO_QUERY_THROW );
+ xFactory->createInstance( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.VBAGlobals" ) ) );
+ }
+ catch( Exception& )
+ {
+ }
}
- mbVBACompat = _vbacompatmodeon;
}
// Methods XServiceInfo
diff --git a/basic/source/uno/scriptcont.cxx b/basic/source/uno/scriptcont.cxx
index f7091d1c1a0b..d99f98589b31 100644
--- a/basic/source/uno/scriptcont.cxx
+++ b/basic/source/uno/scriptcont.cxx
@@ -62,7 +62,7 @@
#include <basic/basmgr.hxx>
#include <basic/sbmod.hxx>
#include <basic/basicmanagerrepository.hxx>
-#include "modsizeexceeded.hxx"
+#include "basic/modsizeexceeded.hxx"
#include <xmlscript/xmlmod_imexp.hxx>
#include <cppuhelper/factory.hxx>
#include <com/sun/star/util/VetoException.hpp>
@@ -80,10 +80,9 @@ using namespace com::sun::star::script;
using namespace com::sun::star::xml::sax;
using namespace com::sun::star;
using namespace cppu;
-using namespace rtl;
using namespace osl;
-using com::sun::star::uno::Reference;
+using ::rtl::OUString;
//============================================================================
// Implementation class SfxScriptLibraryContainer
@@ -311,24 +310,21 @@ Any SAL_CALL SfxScriptLibraryContainer::importLibraryElement
// aMod.aName ignored
if( aMod.aModuleType.getLength() > 0 )
{
- if( !getVBACompatibilityMode() )
+ /* If in VBA compatibility mode, force creation of the VBA Globals
+ object. Each application will create an instance of its own
+ implementation and store it in its Basic manager. Implementations
+ will do all necessary additional initialization, such as
+ registering the global "This***Doc" UNO constant, starting the
+ document events processor etc.
+ */
+ if( getVBACompatibilityMode() ) try
+ {
+ Reference< frame::XModel > xModel( mxOwnerDocument ); // weak-ref -> ref
+ Reference< XMultiServiceFactory > xFactory( xModel, UNO_QUERY_THROW );
+ xFactory->createInstance( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.VBAGlobals" ) ) );
+ }
+ catch( Exception& )
{
- setVBACompatibilityMode( sal_True );
-
- Any aGlobs;
- Sequence< Any > aArgs(1);
- Reference<frame::XModel > xModel( mxOwnerDocument );
- aArgs[ 0 ] <<= xModel;
-
- BasicManager* pBasicMgr = getBasicManager();
- if( pBasicMgr )
- {
- aGlobs <<= ::comphelper::getProcessServiceFactory()->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.excel.Globals" ) ), aArgs );
- pBasicMgr->SetGlobalUNOConstant( "VBAGlobals", aGlobs );
- }
- pBasicMgr = BasicManagerRepository::getApplicationBasicManager( sal_False );
- if( pBasicMgr )
- pBasicMgr->SetGlobalUNOConstant( "ThisExcelDoc", aArgs[0] );
}
script::ModuleInfo aModInfo;
@@ -353,25 +349,21 @@ Any SAL_CALL SfxScriptLibraryContainer::importLibraryElement
RTL_CONSTASCII_STRINGPARAM("document") ))
{
aModInfo.ModuleType = ModuleType::DOCUMENT;
- Reference<frame::XModel > xModel( mxOwnerDocument );
- Reference< XMultiServiceFactory> xSF( xModel, UNO_QUERY);
- Reference< container::XNameAccess > xVBACodeNameAccess;
- if( xSF.is() )
+
+ // #163691# use the same codename access instance for all document modules
+ if( !mxCodeNameAccess.is() ) try
{
- try
- {
- xVBACodeNameAccess.set( xSF->createInstance(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "ooo.vba.VBAObjectModuleObjectProvider"))),
- UNO_QUERY );
- }
- catch(uno::Exception&) {}
+ Reference<frame::XModel > xModel( mxOwnerDocument );
+ Reference< XMultiServiceFactory> xSF( xModel, UNO_QUERY_THROW );
+ mxCodeNameAccess.set( xSF->createInstance( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.VBAObjectModuleObjectProvider" ) ) ), UNO_QUERY );
}
- if( xVBACodeNameAccess.is() )
+ catch( Exception& ) {}
+
+ if( mxCodeNameAccess.is() )
{
try
{
- aModInfo.ModuleObject.set( xVBACodeNameAccess->getByName( aElementName), uno::UNO_QUERY );
+ aModInfo.ModuleObject.set( mxCodeNameAccess->getByName( aElementName), uno::UNO_QUERY );
}
catch(uno::Exception&)
{
diff --git a/configmgr/prj/build.lst b/configmgr/prj/build.lst
index bbd0d7f34a9a..6043290f0914 100644
--- a/configmgr/prj/build.lst
+++ b/configmgr/prj/build.lst
@@ -1,4 +1,4 @@
-cg configmgr : BOOST:boost comphelper cppu cppuhelper offuh sal salhelper stlport xmlreader NULL
+cg configmgr : BOOST:boost LIBXSLT:libxslt comphelper cppu cppuhelper offuh sal salhelper stlport xmlreader NULL
cg configmgr\inc nmake - all cg_inc NULL
cg configmgr\source nmake - all cg_source cg_inc NULL
cg configmgr\qa\unoapi nmake - all cg_qa_unoapi NULL
diff --git a/configmgr/source/access.cxx b/configmgr/source/access.cxx
index eda60e6d612a..933a414d331c 100644
--- a/configmgr/source/access.cxx
+++ b/configmgr/source/access.cxx
@@ -909,11 +909,8 @@ rtl::OUString Access::getImplementationName() throw (css::uno::RuntimeException)
OSL_ASSERT(thisIs(IS_ANY));
osl::MutexGuard g(lock);
checkLocalizedPropertyAccess();
- throw css::uno::RuntimeException(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "configmgr Access has no service implementation name")),
- static_cast< cppu::OWeakObject * >(this));
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("org.openoffice-configmgr::Access"));
}
sal_Bool Access::supportsService(rtl::OUString const & ServiceName)
@@ -2092,7 +2089,8 @@ css::beans::Property Access::asProperty() {
default:
type = cppu::UnoType< css::uno::XInterface >::get(); //TODO: correct?
nillable = false;
- removable = getParentNode()->kind() == Node::KIND_SET;
+ rtl::Reference< Node > parent(getParentNode());
+ removable = parent.is() && parent->kind() == Node::KIND_SET;
break;
}
return css::beans::Property(
diff --git a/configmgr/source/childaccess.cxx b/configmgr/source/childaccess.cxx
index ef2b213d4ef1..d387f351de30 100644
--- a/configmgr/source/childaccess.cxx
+++ b/configmgr/source/childaccess.cxx
@@ -282,9 +282,10 @@ css::uno::Any ChildAccess::asValue() {
if (!Components::allLocales(locale)) {
// Find best match using an adaption of RFC 4647 lookup matching
// rules, removing "-" or "_" delimited segments from the end;
- // defaults are the empty string locale, the "en-US" locale, the
- // first child (if any), or a nil value (even though it may be
- // illegal for the given property), in that order:
+ // defaults are the "en-US" locale, the "en" locale, the empty
+ // string locale, the first child (if any), or a nil value (even
+ // though it may be illegal for the given property), in that
+ // order:
rtl::Reference< ChildAccess > child;
for (;;) {
child = getChild(locale);
@@ -295,16 +296,26 @@ css::uno::Any ChildAccess::asValue() {
while (i > 0 && locale[i] != '-' && locale[i] != '_') {
--i;
}
+ if (i == 0) {
+ break;
+ }
locale = locale.copy(0, i);
}
if (!child.is()) {
child = getChild(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en-US")));
if (!child.is()) {
- std::vector< rtl::Reference< ChildAccess > > all(
- getAllChildren());
- if (!all.empty()) {
- child = all.front();
+ child = getChild(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en")));
+ if (!child.is()) {
+ child = getChild(rtl::OUString());
+ if (!child.is()) {
+ std::vector< rtl::Reference< ChildAccess > >
+ all(getAllChildren());
+ if (!all.empty()) {
+ child = all.front();
+ }
+ }
}
}
}
diff --git a/configmgr/source/components.cxx b/configmgr/source/components.cxx
index 32478e96813d..2d148959edfc 100644
--- a/configmgr/source/components.cxx
+++ b/configmgr/source/components.cxx
@@ -214,7 +214,7 @@ void Components::WriteThread::run() {
reference_->clear();
}
-void Components::initSingleton(
+Components & Components::getSingleton(
css::uno::Reference< css::uno::XComponentContext > const & context)
{
OSL_ASSERT(context.is());
@@ -223,10 +223,6 @@ void Components::initSingleton(
static Components theSingleton(context);
singleton = &theSingleton;
}
-}
-
-Components & Components::getSingleton() {
- OSL_ASSERT(singletonCreated);
if (singleton == 0) {
throw css::uno::RuntimeException(
rtl::OUString(
diff --git a/configmgr/source/components.hxx b/configmgr/source/components.hxx
index 1c735efca6ba..34b693c7e585 100644
--- a/configmgr/source/components.hxx
+++ b/configmgr/source/components.hxx
@@ -65,12 +65,10 @@ class RootAccess;
class Components: private boost::noncopyable {
public:
- static void initSingleton(
+ static Components & getSingleton(
com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
const & context);
- static Components & getSingleton();
-
static bool allLocales(rtl::OUString const & locale);
rtl::Reference< Node > resolvePathRepresentation(
diff --git a/configmgr/source/configurationprovider.cxx b/configmgr/source/configurationprovider.cxx
index 3cd58b145bff..999253118f11 100644
--- a/configmgr/source/configurationprovider.cxx
+++ b/configmgr/source/configurationprovider.cxx
@@ -55,7 +55,7 @@
#include "cppu/unotype.hxx"
#include "cppuhelper/compbase5.hxx"
#include "cppuhelper/factory.hxx"
-#include "cppuhelper/implbase1.hxx"
+#include "cppuhelper/implbase2.hxx"
#include "cppuhelper/interfacecontainer.hxx"
#include "cppuhelper/weak.hxx"
#include "osl/diagnose.h"
@@ -127,7 +127,6 @@ private:
virtual css::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames() throw (css::uno::RuntimeException)
{ return configuration_provider::getSupportedServiceNames(); }
- //TODO: DefaultProvider?
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance(
rtl::OUString const & aServiceSpecifier)
@@ -276,8 +275,7 @@ Service::createInstanceWithArguments(
static_cast< cppu::OWeakObject * >(this));
}
osl::MutexGuard guard(lock);
- Components::initSingleton(context_);
- Components & components = Components::getSingleton();
+ Components & components = Components::getSingleton(context_);
rtl::Reference< RootAccess > root(
new RootAccess(components, nodepath, locale, update));
if (root->isValue()) {
@@ -388,14 +386,14 @@ void Service::flushModifications() const {
Components * components;
{
osl::MutexGuard guard(lock);
- Components::initSingleton(context_);
- components = &Components::getSingleton();
+ components = &Components::getSingleton(context_);
}
components->flushModifications();
}
class Factory:
- public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
+ public cppu::WeakImplHelper2<
+ css::lang::XSingleComponentFactory, css::lang::XServiceInfo >,
private boost::noncopyable
{
public:
@@ -414,6 +412,18 @@ private:
css::uno::Sequence< css::uno::Any > const & Arguments,
css::uno::Reference< css::uno::XComponentContext > const & Context)
throw (css::uno::Exception, css::uno::RuntimeException);
+
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return configuration_provider::getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
+ throw (css::uno::RuntimeException)
+ { return ServiceName == getSupportedServiceNames()[0]; } //TODO
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return configuration_provider::getSupportedServiceNames(); }
};
css::uno::Reference< css::uno::XInterface > Factory::createInstanceWithContext(
diff --git a/configmgr/source/configurationregistry.cxx b/configmgr/source/configurationregistry.cxx
index ffd7174c0ad7..f4810eb34ff8 100644
--- a/configmgr/source/configurationregistry.cxx
+++ b/configmgr/source/configurationregistry.cxx
@@ -36,7 +36,6 @@
#include "com/sun/star/lang/XMultiComponentFactory.hpp"
#include "com/sun/star/lang/XMultiServiceFactory.hpp"
#include "com/sun/star/lang/XServiceInfo.hpp"
-#include "com/sun/star/lang/XSingleComponentFactory.hpp"
#include "com/sun/star/registry/InvalidRegistryException.hpp"
#include "com/sun/star/registry/InvalidValueException.hpp"
#include "com/sun/star/registry/MergeConflictException.hpp"
@@ -56,13 +55,11 @@
#include "com/sun/star/uno/XInterface.hpp"
#include "com/sun/star/util/XFlushable.hpp"
#include "cppu/unotype.hxx"
-#include "cppuhelper/factory.hxx"
#include "cppuhelper/implbase1.hxx"
#include "cppuhelper/implbase3.hxx"
#include "cppuhelper/weak.hxx"
#include "osl/diagnose.h"
#include "osl/mutex.hxx"
-#include "rtl/unload.h"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"
@@ -877,53 +874,12 @@ rtl::OUString RegistryKey::getResolvedName(rtl::OUString const & aKeyName)
return aKeyName;
}
-class Factory:
- public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
- private boost::noncopyable
-{
-public:
- Factory() {}
-
-private:
- virtual ~Factory() {}
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
- createInstanceWithContext(
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException);
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
- createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any > const & Arguments,
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException);
-};
-
-css::uno::Reference< css::uno::XInterface > Factory::createInstanceWithContext(
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException)
-{
- return createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any >(), Context);
}
-css::uno::Reference< css::uno::XInterface >
-Factory::createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any > const & Arguments,
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException)
+css::uno::Reference< css::uno::XInterface > create(
+ css::uno::Reference< css::uno::XComponentContext > const & context)
{
- if (Arguments.getLength() != 0) {
- throw css::uno::Exception(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.configuration.ConfigurationRegistry must be"
- " instantiated without arguments")),
- static_cast< cppu::OWeakObject * >(this));
- }
- return static_cast< cppu::OWeakObject * >(new Service(Context));
-}
-
+ return static_cast< cppu::OWeakObject * >(new Service(context));
}
rtl::OUString getImplementationName() {
@@ -939,12 +895,4 @@ css::uno::Sequence< rtl::OUString > getSupportedServiceNames() {
return css::uno::Sequence< rtl::OUString >(&name, 1);
}
-css::uno::Reference< css::lang::XSingleComponentFactory > createFactory(
- cppu::ComponentFactoryFunc, rtl::OUString const &,
- css::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
- SAL_THROW(())
-{
- return new Factory;
-}
-
} }
diff --git a/configmgr/source/configurationregistry.hxx b/configmgr/source/configurationregistry.hxx
index 6cba122188b1..417c519b97f4 100644
--- a/configmgr/source/configurationregistry.hxx
+++ b/configmgr/source/configurationregistry.hxx
@@ -30,28 +30,28 @@
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/Sequence.hxx"
-#include "cppuhelper/factory.hxx"
-#include "rtl/unload.h"
#include "sal/types.h"
-namespace com { namespace sun { namespace star { namespace lang {
- class XSingleComponentFactory;
-} } } }
+namespace com { namespace sun { namespace star {
+ namespace uno {
+ class XComponentContext;
+ class XInterface;
+ }
+} } }
namespace rtl { class OUString; }
namespace configmgr { namespace configuration_registry {
+com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL
+create(
+ com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
+ const & context);
+
rtl::OUString SAL_CALL getImplementationName();
com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames();
-com::sun::star::uno::Reference< com::sun::star::lang::XSingleComponentFactory >
-SAL_CALL createFactory(
- cppu::ComponentFactoryFunc, rtl::OUString const &,
- com::sun::star::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
- SAL_THROW(());
-
} }
#endif
diff --git a/configmgr/source/defaultprovider.cxx b/configmgr/source/defaultprovider.cxx
index d069663290e8..9079d4736a6c 100644
--- a/configmgr/source/defaultprovider.cxx
+++ b/configmgr/source/defaultprovider.cxx
@@ -28,24 +28,16 @@
#include "precompiled_configmgr.hxx"
#include "sal/config.h"
-#include "boost/noncopyable.hpp"
-#include "com/sun/star/lang/XSingleComponentFactory.hpp"
-#include "com/sun/star/uno/Any.hxx"
-#include "com/sun/star/uno/Exception.hpp"
#include "com/sun/star/uno/Reference.hxx"
-#include "com/sun/star/uno/RuntimeException.hpp"
#include "com/sun/star/uno/Sequence.hxx"
#include "com/sun/star/uno/XComponentContext.hpp"
#include "com/sun/star/uno/XInterface.hpp"
-#include "cppuhelper/factory.hxx"
-#include "cppuhelper/implbase1.hxx"
-#include "cppuhelper/weak.hxx"
-#include "sal/types.h"
-#include "rtl/unload.h"
+#include "osl/mutex.hxx"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "configurationprovider.hxx"
+#include "defaultprovider.hxx"
#include "lock.hxx"
namespace configmgr { namespace default_provider {
@@ -54,58 +46,17 @@ namespace {
namespace css = com::sun::star;
-class Factory:
- public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
- private boost::noncopyable
-{
-public:
- Factory() {}
-
-private:
- virtual ~Factory() {}
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
- createInstanceWithContext(
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException);
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
- createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any > const & Arguments,
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException);
-};
-
-css::uno::Reference< css::uno::XInterface > Factory::createInstanceWithContext(
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException)
-{
- return createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any >(), Context);
}
-css::uno::Reference< css::uno::XInterface >
-Factory::createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any > const & Arguments,
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException)
+css::uno::Reference< css::uno::XInterface > create(
+ css::uno::Reference< css::uno::XComponentContext > const & context)
{
- if (Arguments.getLength() != 0) {
- throw css::uno::Exception(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.configuration.DefaultProvider must be"
- " instantiated without arguments")),
- static_cast< cppu::OWeakObject * >(this));
- }
osl::MutexGuard guard(lock);
static css::uno::Reference< css::uno::XInterface > singleton(
- configuration_provider::createDefault(Context));
+ configuration_provider::createDefault(context));
return singleton;
}
-}
-
rtl::OUString getImplementationName() {
return rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
@@ -119,13 +70,4 @@ css::uno::Sequence< rtl::OUString > getSupportedServiceNames() {
return css::uno::Sequence< rtl::OUString >(&name, 1);
}
-css::uno::Reference< css::lang::XSingleComponentFactory >
-SAL_CALL createFactory(
- cppu::ComponentFactoryFunc, rtl::OUString const &,
- css::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
- SAL_THROW(())
-{
- return new Factory;
-}
-
} }
diff --git a/configmgr/source/defaultprovider.hxx b/configmgr/source/defaultprovider.hxx
index 7b267a80b42e..f678931d35fe 100644
--- a/configmgr/source/defaultprovider.hxx
+++ b/configmgr/source/defaultprovider.hxx
@@ -32,28 +32,28 @@
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/Sequence.hxx"
-#include "cppuhelper/factory.hxx"
-#include "rtl/unload.h"
#include "sal/types.h"
-namespace com { namespace sun { namespace star { namespace lang {
- class XSingleComponentFactory;
-} } } }
+namespace com { namespace sun { namespace star {
+ namespace uno {
+ class XComponentContext;
+ class XInterface;
+ }
+} } }
namespace rtl { class OUString; }
namespace configmgr { namespace default_provider {
+com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL
+create(
+ com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
+ const & context);
+
rtl::OUString SAL_CALL getImplementationName();
com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames();
-com::sun::star::uno::Reference< com::sun::star::lang::XSingleComponentFactory >
-SAL_CALL createFactory(
- cppu::ComponentFactoryFunc, rtl::OUString const &,
- com::sun::star::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
- SAL_THROW(());
-
} }
#endif
diff --git a/configmgr/source/node.cxx b/configmgr/source/node.cxx
index a5a089106b2a..5473b6b1de0c 100644
--- a/configmgr/source/node.cxx
+++ b/configmgr/source/node.cxx
@@ -101,8 +101,4 @@ Node::~Node() {}
void Node::clear() {}
-rtl::Reference< Node > Node::findMember(rtl::OUString const &) {
- return rtl::Reference< Node >();
-}
-
}
diff --git a/configmgr/source/node.hxx b/configmgr/source/node.hxx
index 7c9417e68ea9..f79e7ba296fa 100644
--- a/configmgr/source/node.hxx
+++ b/configmgr/source/node.hxx
@@ -31,11 +31,12 @@
#include "sal/config.h"
#include "rtl/ref.hxx"
-#include "rtl/ustring.hxx"
#include "salhelper/simplereferenceobject.hxx"
#include "nodemap.hxx"
+namespace rtl { class OUString; }
+
namespace configmgr {
class Node: public salhelper::SimpleReferenceObject {
@@ -75,8 +76,6 @@ protected:
virtual void clear();
- virtual rtl::Reference< Node > findMember(rtl::OUString const & name);
-
int layer_;
int finalized_;
};
diff --git a/configmgr/source/services.cxx b/configmgr/source/services.cxx
index b1ef8d2169bb..dd01189be6e2 100644
--- a/configmgr/source/services.cxx
+++ b/configmgr/source/services.cxx
@@ -32,6 +32,7 @@
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/XComponentContext.hpp"
#include "com/sun/star/uno/XInterface.hpp"
+#include "cppuhelper/factory.hxx"
#include "cppuhelper/implementationentry.hxx"
#include "osl/diagnose.h"
#include "uno/lbnames.h"
@@ -58,15 +59,17 @@ static cppu::ImplementationEntry const services[] = {
{ &dummy, &configmgr::configuration_provider::getImplementationName,
&configmgr::configuration_provider::getSupportedServiceNames,
&configmgr::configuration_provider::createFactory, 0, 0 },
- { &dummy, &configmgr::default_provider::getImplementationName,
+ { &configmgr::default_provider::create,
+ &configmgr::default_provider::getImplementationName,
&configmgr::default_provider::getSupportedServiceNames,
- &configmgr::default_provider::createFactory, 0, 0 },
- { &dummy, &configmgr::configuration_registry::getImplementationName,
+ &cppu::createSingleComponentFactory, 0, 0 },
+ { &configmgr::configuration_registry::create,
+ &configmgr::configuration_registry::getImplementationName,
&configmgr::configuration_registry::getSupportedServiceNames,
- &configmgr::configuration_registry::createFactory, 0, 0 },
- { &dummy, &configmgr::update::getImplementationName,
+ &cppu::createSingleComponentFactory, 0, 0 },
+ { &configmgr::update::create, &configmgr::update::getImplementationName,
&configmgr::update::getSupportedServiceNames,
- &configmgr::update::createFactory, 0, 0 },
+ &cppu::createSingleComponentFactory, 0, 0 },
{ 0, 0, 0, 0, 0, 0 }
};
diff --git a/configmgr/source/update.cxx b/configmgr/source/update.cxx
index 403b761a5abd..258765158aa3 100644
--- a/configmgr/source/update.cxx
+++ b/configmgr/source/update.cxx
@@ -32,20 +32,15 @@
#include "boost/noncopyable.hpp"
#include "com/sun/star/configuration/XUpdate.hpp"
-#include "com/sun/star/lang/XSingleComponentFactory.hpp"
-#include "com/sun/star/uno/Any.hxx"
-#include "com/sun/star/uno/Exception.hpp"
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/RuntimeException.hpp"
#include "com/sun/star/uno/Sequence.hxx"
#include "com/sun/star/uno/XComponentContext.hpp"
#include "com/sun/star/uno/XInterface.hpp"
-#include "cppuhelper/factory.hxx"
#include "cppuhelper/implbase1.hxx"
#include "cppuhelper/weak.hxx"
#include "osl/mutex.hxx"
#include "rtl/ref.hxx"
-#include "rtl/unload.h"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"
@@ -76,7 +71,11 @@ class Service:
private boost::noncopyable
{
public:
- Service() {}
+ Service(css::uno::Reference< css::uno::XComponentContext > const context):
+ context_(context)
+ {
+ OSL_ASSERT(context.is());
+ }
private:
virtual ~Service() {}
@@ -97,6 +96,8 @@ private:
css::uno::Sequence< rtl::OUString > const & includedPaths,
css::uno::Sequence< rtl::OUString > const & excludedPaths)
throw (css::uno::RuntimeException);
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
};
void Service::insertExtensionXcsFile(
@@ -104,7 +105,7 @@ void Service::insertExtensionXcsFile(
throw (css::uno::RuntimeException)
{
osl::MutexGuard g(lock);
- Components::getSingleton().insertExtensionXcsFile(shared, fileUri);
+ Components::getSingleton(context_).insertExtensionXcsFile(shared, fileUri);
}
void Service::insertExtensionXcuFile(
@@ -114,10 +115,10 @@ void Service::insertExtensionXcuFile(
Broadcaster bc;
{
osl::MutexGuard g(lock);
+ Components & components = Components::getSingleton(context_);
Modifications mods;
- Components::getSingleton().insertExtensionXcuFile(
- shared, fileUri, &mods);
- Components::getSingleton().initGlobalBroadcaster(
+ components.insertExtensionXcuFile(shared, fileUri, &mods);
+ components.initGlobalBroadcaster(
mods, rtl::Reference< RootAccess >(), &bc);
}
bc.send();
@@ -129,9 +130,10 @@ void Service::removeExtensionXcuFile(rtl::OUString const & fileUri)
Broadcaster bc;
{
osl::MutexGuard g(lock);
+ Components & components = Components::getSingleton(context_);
Modifications mods;
- Components::getSingleton().removeExtensionXcuFile(fileUri, &mods);
- Components::getSingleton().initGlobalBroadcaster(
+ components.removeExtensionXcuFile(fileUri, &mods);
+ components.initGlobalBroadcaster(
mods, rtl::Reference< RootAccess >(), &bc);
}
bc.send();
@@ -146,62 +148,22 @@ void Service::insertModificationXcuFile(
Broadcaster bc;
{
osl::MutexGuard g(lock);
+ Components & components = Components::getSingleton(context_);
Modifications mods;
- Components::getSingleton().insertModificationXcuFile(
+ components.insertModificationXcuFile(
fileUri, seqToSet(includedPaths), seqToSet(excludedPaths), &mods);
- Components::getSingleton().initGlobalBroadcaster(
+ components.initGlobalBroadcaster(
mods, rtl::Reference< RootAccess >(), &bc);
}
bc.send();
}
-class Factory:
- public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
- private boost::noncopyable
-{
-public:
- Factory() {}
-
-private:
- virtual ~Factory() {}
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
- createInstanceWithContext(
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException);
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
- createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any > const & Arguments,
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException);
-};
-
-css::uno::Reference< css::uno::XInterface > Factory::createInstanceWithContext(
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException)
-{
- return createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any >(), Context);
}
-css::uno::Reference< css::uno::XInterface >
-Factory::createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any > const & Arguments,
- css::uno::Reference< css::uno::XComponentContext > const &)
- throw (css::uno::Exception, css::uno::RuntimeException)
+css::uno::Reference< css::uno::XInterface > create(
+ css::uno::Reference< css::uno::XComponentContext > const & context)
{
- if (Arguments.getLength() != 0) {
- throw css::uno::Exception(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.comp.configuration.Update must be"
- " instantiated without arguments")),
- static_cast< cppu::OWeakObject * >(this));
- }
- return static_cast< cppu::OWeakObject * >(new Service);
-}
-
+ return static_cast< cppu::OWeakObject * >(new Service(context));
}
rtl::OUString getImplementationName() {
@@ -216,12 +178,4 @@ css::uno::Sequence< rtl::OUString > getSupportedServiceNames() {
return css::uno::Sequence< rtl::OUString >(&name, 1);
}
-css::uno::Reference< css::lang::XSingleComponentFactory > createFactory(
- cppu::ComponentFactoryFunc, rtl::OUString const &,
- css::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
- SAL_THROW(())
-{
- return new Factory;
-}
-
} }
diff --git a/configmgr/source/update.hxx b/configmgr/source/update.hxx
index faa5c86b15fa..a60264e67ac3 100644
--- a/configmgr/source/update.hxx
+++ b/configmgr/source/update.hxx
@@ -32,28 +32,28 @@
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/Sequence.hxx"
-#include "cppuhelper/factory.hxx"
-#include "rtl/unload.h"
#include "sal/types.h"
-namespace com { namespace sun { namespace star { namespace lang {
- class XSingleComponentFactory;
-} } } }
+namespace com { namespace sun { namespace star {
+ namespace uno {
+ class XComponentContext;
+ class XInterface;
+ }
+} } }
namespace rtl { class OUString; }
namespace configmgr { namespace update {
+com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL
+create(
+ com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
+ const &);
+
rtl::OUString SAL_CALL getImplementationName();
com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames();
-com::sun::star::uno::Reference< com::sun::star::lang::XSingleComponentFactory >
-SAL_CALL createFactory(
- cppu::ComponentFactoryFunc, rtl::OUString const &,
- com::sun::star::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
- SAL_THROW(());
-
} }
#endif
diff --git a/connectivity/inc/connectivity/filtermanager.hxx b/connectivity/inc/connectivity/filtermanager.hxx
index 71494de67b38..c9d1e95cfac4 100644
--- a/connectivity/inc/connectivity/filtermanager.hxx
+++ b/connectivity/inc/connectivity/filtermanager.hxx
@@ -33,7 +33,8 @@
#include <com/sun/star/sdb/XSQLQueryComposer.hpp>
#include <com/sun/star/sdbc/XConnection.hpp>
/** === end UNO includes === **/
-#include <rtl/ustring.hxx>
+
+#include <rtl/ustrbuf.hxx>
#include <vector>
#include "connectivity/dbtoolsdllapi.hxx"
@@ -111,10 +112,10 @@ namespace dbtools
/** appends one filter component to the statement in our composer
*/
- void appendFilterComponent( ::rtl::OUString& /* [inout] */ _rAppendTo, const ::rtl::OUString& _rComponent ) const;
+ void appendFilterComponent( ::rtl::OUStringBuffer& io_appendTo, const ::rtl::OUString& i_component ) const;
/// checks whether there is only one (or even no) non-empty filter component
- bool isThereAtMostOneComponent( ::rtl::OUString& _rOnlyComponent ) const;
+ bool isThereAtMostOneComponent( ::rtl::OUStringBuffer& o_singleComponent ) const;
/// returns the index of the first filter component which should be considered when building the composed filter
inline sal_Int32 getFirstApplicableFilterIndex() const
diff --git a/connectivity/inc/connectivity/sqlnode.hxx b/connectivity/inc/connectivity/sqlnode.hxx
index fa283cb5cf04..04ec8dc153df 100644
--- a/connectivity/inc/connectivity/sqlnode.hxx
+++ b/connectivity/inc/connectivity/sqlnode.hxx
@@ -231,6 +231,7 @@ namespace connectivity
character_string_type,
other_like_predicate_part_2,
between_predicate_part_2,
+ cast_spec,
rule_count, // letzter_wert
UNKNOWN_RULE // ID indicating that a node is no rule with a matching Rule-enum value (see getKnownRuleID)
};
diff --git a/connectivity/prj/build.lst b/connectivity/prj/build.lst
index 0b15c06acf15..6d70bc71c97c 100644
--- a/connectivity/prj/build.lst
+++ b/connectivity/prj/build.lst
@@ -1,4 +1,4 @@
-cn connectivity : shell l10n comphelper MOZ:moz SO:moz_prebuilt svl UNIXODBC:unixODBC unoil javaunohelper HSQLDB:hsqldb qadevOOo officecfg NSS:nss NULL
+cn connectivity : shell l10n comphelper MOZ:moz SO:moz_prebuilt svl UNIXODBC:unixODBC unoil javaunohelper HSQLDB:hsqldb qadevOOo officecfg NSS:nss LIBXSLT:libxslt NULL
cn connectivity usr1 - all cn_mkout NULL
cn connectivity\inc nmake - all cn_inc NULL
cn connectivity\com\sun\star\sdbcx\comp\hsqldb nmake - all cn_jhsqldbdb cn_hsqldb cn_inc NULL
diff --git a/connectivity/prj/d.lst b/connectivity/prj/d.lst
index 01d82ba9177e..22bffa638254 100644
--- a/connectivity/prj/d.lst
+++ b/connectivity/prj/d.lst
@@ -2,6 +2,7 @@
..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%\lib*.so
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+..\%__SRC%\lib\*.jnilib %_DEST%\lib%_EXT%\*.jnilib
..\%__SRC%\slb\connectivity*.* %_DEST%\lib%_EXT%\connectivity*.*
..\%__SRC%\lib\idbt* %_DEST%\lib%_EXT%\idbt*
..\source\cpool\*.xml %_DEST%\xml%_EXT%\*.xml
diff --git a/connectivity/source/commontools/FValue.cxx b/connectivity/source/commontools/FValue.cxx
index aca181916b47..1e39befaf5f7 100644
--- a/connectivity/source/commontools/FValue.cxx
+++ b/connectivity/source/commontools/FValue.cxx
@@ -1753,7 +1753,7 @@ Sequence<sal_Int8> ORowSetValue::getSequence() const
}
// -----------------------------------------------------------------------------
-::com::sun::star::util::Date ORowSetValue::getDate() const
+::com::sun::star::util::Date ORowSetValue::getDate() const
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getDate" );
::com::sun::star::util::Date aValue;
@@ -1768,8 +1768,6 @@ Sequence<sal_Int8> ORowSetValue::getSequence() const
break;
case DataType::DECIMAL:
case DataType::NUMERIC:
- aValue = DBTypeConversion::toDate((double)*this);
- break;
case DataType::FLOAT:
case DataType::DOUBLE:
case DataType::REAL:
@@ -1787,12 +1785,28 @@ Sequence<sal_Int8> ORowSetValue::getSequence() const
aValue.Year = pDateTime->Year;
}
break;
+ case DataType::BIT:
+ case DataType::BOOLEAN:
+ case DataType::TINYINT:
+ case DataType::SMALLINT:
+ case DataType::INTEGER:
+ case DataType::BIGINT:
+ aValue = DBTypeConversion::toDate( double( sal_Int64( *this ) ) );
+ break;
+
+ case DataType::BLOB:
+ case DataType::CLOB:
+ case DataType::OBJECT:
default:
- {
- Any aAnyValue = getAny();
- aAnyValue >>= aValue;
- break;
- }
+ OSL_ENSURE( false, "ORowSetValue::getDate: cannot retrieve the data!" );
+ // NO break!
+
+ case DataType::BINARY:
+ case DataType::VARBINARY:
+ case DataType::LONGVARBINARY:
+ case DataType::TIME:
+ aValue = DBTypeConversion::toDate( (double)0 );
+ break;
}
}
return aValue;
diff --git a/connectivity/source/commontools/dbtools2.cxx b/connectivity/source/commontools/dbtools2.cxx
index c9a878fe1840..67f1b9130862 100644
--- a/connectivity/source/commontools/dbtools2.cxx
+++ b/connectivity/source/commontools/dbtools2.cxx
@@ -585,7 +585,6 @@ bool getDataSourceSetting( const Reference< XInterface >& _xChild, const ::rtl::
try
{
const Reference< XPropertySet> xDataSourceProperties( findDataSource( _xChild ), UNO_QUERY );
- OSL_ENSURE( xDataSourceProperties.is(), "getDataSourceSetting: invalid data source object!" );
if ( !xDataSourceProperties.is() )
return false;
diff --git a/connectivity/source/commontools/filtermanager.cxx b/connectivity/source/commontools/filtermanager.cxx
index bab2ec4ed144..6b9ac603a722 100644
--- a/connectivity/source/commontools/filtermanager.cxx
+++ b/connectivity/source/commontools/filtermanager.cxx
@@ -35,6 +35,8 @@
#include "TConnection.hxx"
#include <osl/diagnose.h>
#include "connectivity/dbtools.hxx"
+#include <tools/diagnose_ex.h>
+#include <rtl/ustrbuf.hxx>
//........................................................................
namespace dbtools
@@ -92,7 +94,7 @@ namespace dbtools
}
catch( const Exception& )
{
- OSL_ENSURE( sal_False, "FilterManager::setFilterComponent: setting the filter failed!" );
+ DBG_UNHANDLED_EXCEPTION();
}
}
@@ -113,44 +115,30 @@ namespace dbtools
}
catch( const Exception& )
{
- OSL_ENSURE( sal_False, "FilterManager::setApplyPublicFilter: setting the filter failed!" );
+ DBG_UNHANDLED_EXCEPTION();
}
}
//--------------------------------------------------------------------
- namespace
+ void FilterManager::appendFilterComponent( ::rtl::OUStringBuffer& io_appendTo, const ::rtl::OUString& i_component ) const
{
- void lcl_ensureBracketed( ::rtl::OUString& /* [inout] */ _rExpression )
+ if ( io_appendTo.getLength() > 0 )
{
- OSL_ENSURE( _rExpression.getLength(), "lcl_ensureBracketed: expression is empty!" );
- if ( _rExpression.getLength() )
- {
- if ( ( _rExpression.getStr()[0] != '(' ) || ( _rExpression.getStr()[ _rExpression.getLength() - 1 ] != ')' ) )
- {
- ::rtl::OUString sComposed( RTL_CONSTASCII_USTRINGPARAM( "(" ) );
- sComposed += _rExpression;
- sComposed += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ")" ) );
- _rExpression = sComposed;
- }
- }
+ io_appendTo.insert( 0, sal_Unicode( '(' ) );
+ io_appendTo.insert( 1, sal_Unicode( ' ' ) );
+ io_appendTo.appendAscii( " ) AND " );
}
- }
- //--------------------------------------------------------------------
- void FilterManager::appendFilterComponent( ::rtl::OUString& /* [inout] */ _rAppendTo, const ::rtl::OUString& _rComponent ) const
- {
- if ( _rAppendTo.getLength() )
- _rAppendTo += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " AND " ) );
- ::rtl::OUString sComponent( _rComponent );
- lcl_ensureBracketed( sComponent );
- _rAppendTo += sComponent;
+ io_appendTo.appendAscii( "( " );
+ io_appendTo.append( i_component );
+ io_appendTo.appendAscii( " )" );
}
//--------------------------------------------------------------------
- bool FilterManager::isThereAtMostOneComponent( ::rtl::OUString& _rOnlyComponent ) const
+ bool FilterManager::isThereAtMostOneComponent( ::rtl::OUStringBuffer& o_singleComponent ) const
{
sal_Int32 nOnlyNonEmpty = -1;
- sal_Int32 i;
+ sal_Int32 i;
for ( i = getFirstApplicableFilterIndex(); i < FC_COMPONENT_COUNT; ++i )
{
if ( m_aFilterComponents[ i ].getLength() )
@@ -164,14 +152,14 @@ namespace dbtools
}
if ( nOnlyNonEmpty == -1 )
{
- _rOnlyComponent = ::rtl::OUString();
+ o_singleComponent.makeStringAndClear();
return true;
}
if ( i == FC_COMPONENT_COUNT )
{
// we found only one non-empty filter component
- _rOnlyComponent = m_aFilterComponents[ nOnlyNonEmpty ];
+ o_singleComponent = m_aFilterComponents[ nOnlyNonEmpty ];
return true;
}
return false;
@@ -180,17 +168,17 @@ namespace dbtools
//--------------------------------------------------------------------
::rtl::OUString FilterManager::getComposedFilter( ) const
{
- ::rtl::OUString sComposedFilter;
+ ::rtl::OUStringBuffer aComposedFilter;
// if we have only one non-empty component, then there's no need to compose anything
- if ( isThereAtMostOneComponent( sComposedFilter ) )
- return sComposedFilter;
-
- // append the single components
- for ( sal_Int32 i = getFirstApplicableFilterIndex(); i < FC_COMPONENT_COUNT; ++i )
- appendFilterComponent( sComposedFilter, m_aFilterComponents[ i ] );
+ if ( !isThereAtMostOneComponent( aComposedFilter ) )
+ {
+ // append the single components
+ for ( sal_Int32 i = getFirstApplicableFilterIndex(); i < FC_COMPONENT_COUNT; ++i )
+ appendFilterComponent( aComposedFilter, m_aFilterComponents[ i ] );
+ }
- return sComposedFilter;
+ return aComposedFilter.makeStringAndClear();
}
//........................................................................
diff --git a/connectivity/source/drivers/file/FResultSet.cxx b/connectivity/source/drivers/file/FResultSet.cxx
index 305e26d386e0..c516b325ad9a 100644
--- a/connectivity/source/drivers/file/FResultSet.cxx
+++ b/connectivity/source/drivers/file/FResultSet.cxx
@@ -937,9 +937,13 @@ again:
{
m_pTable->fetchRow(m_aEvaluateRow, rTableCols, sal_True,bRetrieveData || bHasRestriction);
- if ( (!m_bShowDeleted && m_aEvaluateRow->isDeleted())
- || (bHasRestriction && //!bShowDeleted && m_aEvaluateRow->isDeleted() ||// keine Anzeige von geloeschten Saetzen
- !m_pSQLAnalyzer->evaluateRestriction())) // Auswerten der Bedingungen
+ if ( ( !m_bShowDeleted
+ && m_aEvaluateRow->isDeleted()
+ )
+ || ( bHasRestriction
+ && !m_pSQLAnalyzer->evaluateRestriction()
+ )
+ )
{ // naechsten Satz auswerten
// aktuelle Zeile loeschen im Keyset
if (m_pEvaluationKeySet)
@@ -988,12 +992,14 @@ again:
// Evaluate darf nur gesetzt sein,
// wenn der Keyset weiter aufgebaut werden soll
- if (m_aSQLIterator.getStatementType() == SQL_STATEMENT_SELECT && !isCount() &&
- (m_pFileSet.isValid() || m_pSortIndex) && bEvaluate)
+ if ( ( m_aSQLIterator.getStatementType() == SQL_STATEMENT_SELECT )
+ && !isCount()
+ && bEvaluate
+ )
{
if (m_pSortIndex)
{
- OKeyValue* pKeyValue = GetOrderbyKeyValue(m_aEvaluateRow);
+ OKeyValue* pKeyValue = GetOrderbyKeyValue( m_aSelectRow );
m_pSortIndex->AddKeyValue(pKeyValue);
}
else if (m_pFileSet.isValid())
@@ -1294,8 +1300,8 @@ void OResultSet::sortRows()
::std::vector<sal_Int32>::iterator aOrderByIter = m_aOrderbyColumnNumber.begin();
for (::std::vector<sal_Int16>::size_type i=0;aOrderByIter != m_aOrderbyColumnNumber.end(); ++aOrderByIter,++i)
{
- OSL_ENSURE((sal_Int32)m_aRow->get().size() > *aOrderByIter,"Invalid Index");
- switch ((*(m_aRow->get().begin()+*aOrderByIter))->getValue().getTypeKind())
+ OSL_ENSURE((sal_Int32)m_aSelectRow->get().size() > *aOrderByIter,"Invalid Index");
+ switch ((*(m_aSelectRow->get().begin()+*aOrderByIter))->getValue().getTypeKind())
{
case DataType::CHAR:
case DataType::VARCHAR:
@@ -1324,7 +1330,7 @@ void OResultSet::sortRows()
OSL_ASSERT("OFILECursor::Execute: Datentyp nicht implementiert");
break;
}
- (m_aEvaluateRow->get())[*aOrderByIter]->setBound(sal_True);
+ (m_aSelectRow->get())[*aOrderByIter]->setBound(sal_True);
}
m_pSortIndex = new OSortIndex(eKeyType,m_aOrderbyAscending);
@@ -1341,8 +1347,13 @@ void OResultSet::sortRows()
}
else
{
- while (ExecuteRow(IResultSetHelper::NEXT,1,TRUE))
+ while ( ExecuteRow( IResultSetHelper::NEXT, 1, FALSE, TRUE ) )
{
+ m_aSelectRow->get()[0]->setValue( m_aRow->get()[0]->getValue() );
+ if ( m_pSQLAnalyzer->hasFunctions() )
+ m_pSQLAnalyzer->setSelectionEvaluationResult( m_aSelectRow, m_aColMapping );
+ const sal_Int32 nBookmark = (*m_aRow->get().begin())->getValue();
+ ExecuteRow( IResultSetHelper::BOOKMARK, nBookmark, TRUE, FALSE );
}
}
diff --git a/connectivity/source/drivers/file/FStatement.cxx b/connectivity/source/drivers/file/FStatement.cxx
index acc2059f15c7..52200553d042 100644
--- a/connectivity/source/drivers/file/FStatement.cxx
+++ b/connectivity/source/drivers/file/FStatement.cxx
@@ -451,19 +451,12 @@ void OStatement_Base::setOrderbyColumn( OSQLParseNode* pColumnRef,
return;
// Alles geprueft und wir haben den Namen der Column.
// Die wievielte Column ist das?
- try
- {
- m_aOrderbyColumnNumber.push_back(xColLocate->findColumn(aColumnName));
- }
- catch(Exception)
- {
- ::vos::ORef<OSQLColumns> aSelectColumns = m_aSQLIterator.getSelectColumns();
- ::comphelper::UStringMixEqual aCase;
- OSQLColumns::Vector::const_iterator aFind = ::connectivity::find(aSelectColumns->get().begin(),aSelectColumns->get().end(),aColumnName,aCase);
- if ( aFind == aSelectColumns->get().end() )
- throw SQLException();
- m_aOrderbyColumnNumber.push_back((aFind - aSelectColumns->get().begin()) + 1);
- }
+ ::vos::ORef<OSQLColumns> aSelectColumns = m_aSQLIterator.getSelectColumns();
+ ::comphelper::UStringMixEqual aCase;
+ OSQLColumns::Vector::const_iterator aFind = ::connectivity::find(aSelectColumns->get().begin(),aSelectColumns->get().end(),aColumnName,aCase);
+ if ( aFind == aSelectColumns->get().end() )
+ throw SQLException();
+ m_aOrderbyColumnNumber.push_back((aFind - aSelectColumns->get().begin()) + 1);
// Ascending or Descending?
m_aOrderbyAscending.push_back((SQL_ISTOKEN(pAscendingDescending,DESC)) ? SQL_DESC : SQL_ASC);
diff --git a/connectivity/source/drivers/file/fanalyzer.cxx b/connectivity/source/drivers/file/fanalyzer.cxx
index 7abf10191f21..8211e954a49f 100644
--- a/connectivity/source/drivers/file/fanalyzer.cxx
+++ b/connectivity/source/drivers/file/fanalyzer.cxx
@@ -103,7 +103,26 @@ void OSQLAnalyzer::start(OSQLParseNode* pSQLParseNode)
m_pConnection->throwGenericSQLException(STR_QUERY_COMPLEX_COUNT,NULL);
}
else
- m_aSelectionEvaluations.push_back( TPredicates() );
+ {
+ if ( SQL_ISPUNCTUATION( pColumnRef, "*" )
+ || ( SQL_ISRULE( pColumnRef, column_ref )
+ && ( pColumnRef->count() == 3 )
+ && ( pColumnRef->getChild(0)->getNodeType() == SQL_NODE_NAME )
+ && SQL_ISPUNCTUATION( pColumnRef->getChild(1), "." )
+ && SQL_ISRULE( pColumnRef->getChild(2), column_val )
+ && SQL_ISPUNCTUATION( pColumnRef->getChild(2)->getChild(0), "*" )
+ )
+ )
+ {
+ // push one element for each column of our table
+ const Reference< XNameAccess > xColumnNames( m_aCompiler->getOrigColumns() );
+ const Sequence< ::rtl::OUString > aColumnNames( xColumnNames->getElementNames() );
+ for ( sal_Int32 j=0; j<aColumnNames.getLength(); ++j )
+ m_aSelectionEvaluations.push_back( TPredicates() );
+ }
+ else
+ m_aSelectionEvaluations.push_back( TPredicates() );
+ }
}
}
}
@@ -291,11 +310,12 @@ void OSQLAnalyzer::setSelectionEvaluationResult(OValueRefRow& _pRow,const ::std:
{
if ( aIter->second.isValid() )
{
- sal_Int32 map = nPos;
// the first column (index 0) is for convenience only. The first real select column is no 1.
- if ( (nPos > 0) && (nPos < static_cast<sal_Int32>(_rColumnMapping.size())) )
+ sal_Int32 map = nPos;
+ if ( nPos < static_cast< sal_Int32 >( _rColumnMapping.size() ) )
map = _rColumnMapping[nPos];
- aIter->second->startSelection((_pRow->get())[map]);
+ if ( map > 0 )
+ aIter->second->startSelection( (_pRow->get())[map] );
}
}
}
diff --git a/connectivity/source/drivers/hsqldb/HDriver.cxx b/connectivity/source/drivers/hsqldb/HDriver.cxx
index 14758afafb3f..a0b755c107c9 100644
--- a/connectivity/source/drivers/hsqldb/HDriver.cxx
+++ b/connectivity/source/drivers/hsqldb/HDriver.cxx
@@ -273,22 +273,38 @@ namespace connectivity
if ( pStream.get() )
{
ByteString sLine;
+ ByteString sVersionString;
while ( pStream->ReadLine(sLine) )
{
- if ( sLine.Equals("version=",0,sizeof("version=")-1) )
+ if ( sLine.Len() == 0 )
+ continue;
+ const ByteString sIniKey = sLine.GetToken( 0, '=' );
+ const ByteString sValue = sLine.GetToken( 1, '=' );
+ if ( sIniKey.Equals( "hsqldb.compatible_version" ) )
{
- sLine = sLine.GetToken(1,'=');
- const sal_Int32 nMajor = sLine.GetToken(0,'.').ToInt32();
- const sal_Int32 nMinor = sLine.GetToken(1,'.').ToInt32();
- const sal_Int32 nMicro = sLine.GetToken(2,'.').ToInt32();
- if ( nMajor > 1
- || ( nMajor == 1 && nMinor > 8 )
- || ( nMajor == 1 && nMinor == 8 && nMicro > 0 ) )
+ sVersionString = sValue;
+ }
+ else
+ {
+ if ( sIniKey.Equals( "version" )
+ && ( sVersionString.Len() == 0 )
+ )
{
- ::connectivity::SharedResources aResources;
- sMessage = aResources.getResourceString(STR_ERROR_NEW_VERSION);
+ sVersionString = sValue;
}
- break;
+ }
+ }
+ if ( sVersionString.Len() )
+ {
+ const sal_Int32 nMajor = sVersionString.GetToken(0,'.').ToInt32();
+ const sal_Int32 nMinor = sVersionString.GetToken(1,'.').ToInt32();
+ const sal_Int32 nMicro = sVersionString.GetToken(2,'.').ToInt32();
+ if ( nMajor > 1
+ || ( nMajor == 1 && nMinor > 8 )
+ || ( nMajor == 1 && nMinor == 8 && nMicro > 0 ) )
+ {
+ ::connectivity::SharedResources aResources;
+ sMessage = aResources.getResourceString(STR_ERROR_NEW_VERSION);
}
}
}
diff --git a/connectivity/source/drivers/hsqldb/makefile.mk b/connectivity/source/drivers/hsqldb/makefile.mk
index 5be6fa08cd7b..d0e22fde8970 100644
--- a/connectivity/source/drivers/hsqldb/makefile.mk
+++ b/connectivity/source/drivers/hsqldb/makefile.mk
@@ -103,6 +103,7 @@ SHL1STDLIBS=\
SHL1DEPN=
+SHL1CREATEJNILIB=TRUE
SHL1IMPLIB= i$(HSQLDB_TARGET)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx b/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
index a5d3211fecab..90ba51c29d4d 100644
--- a/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
+++ b/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
@@ -51,14 +51,6 @@ using namespace ::com::sun::star::mozilla;
namespace
{
- #if defined(XP_MAC) || defined(XP_MACOSX) || defined(MACOSX)
- #define APP_REGISTRY_NAME "Application Registry"
- #elif defined(XP_WIN) || defined(XP_OS2)
- #define APP_REGISTRY_NAME "registry.dat"
- #else
- #define APP_REGISTRY_NAME "appreg"
- #endif
-
// -------------------------------------------------------------------
static ::rtl::OUString lcl_getUserDataDirectory()
{
@@ -73,15 +65,15 @@ namespace
static const char* DefaultProductDir[3][3] =
{
#if defined(XP_WIN)
- { "Mozilla/", NULL, NULL },
+ { "Mozilla/SeaMonkey/", NULL, NULL },
{ "Mozilla/Firefox/", NULL, NULL },
{ "Thunderbird/", "Mozilla/Thunderbird/", NULL }
#elif(MACOSX)
- { "../Mozilla/", NULL, NULL },
+ { "../Mozilla/SeaMonkey/", NULL, NULL },
{ "Firefox/", NULL, NULL },
{ "../Thunderbird/", NULL, NULL }
#else
- { ".mozilla/", NULL, NULL },
+ { ".mozilla/seamonkey/", NULL, NULL },
{ ".mozilla/firefox/", NULL, NULL },
{ ".thunderbird/", ".mozilla-thunderbird/", ".mozilla/thunderbird/" }
#endif
@@ -115,7 +107,7 @@ namespace
else
{
::rtl::OUString sProductDirCandidate;
- const char* pProfileRegistry = ( _product == MozillaProductType_Mozilla ) ? APP_REGISTRY_NAME : "profiles.ini";
+ const char* pProfileRegistry = "profiles.ini";
// check all possible candidates
for ( size_t i=0; i<3; ++i )
@@ -159,13 +151,3 @@ namespace
return lcl_guessProfileRoot( product );
}
-#ifndef MINIMAL_PROFILEDISCOVER
-// -----------------------------------------------------------------------
-::rtl::OUString getRegistryFileName(MozillaProductType product)
-{
- if (product == MozillaProductType_Default)
- return ::rtl::OUString();
-
- return getRegistryDir(product) + ::rtl::OUString::createFromAscii(APP_REGISTRY_NAME);
-}
-#endif
diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSFolders.hxx b/connectivity/source/drivers/mozab/bootstrap/MNSFolders.hxx
index d69a5e3435bf..c12894d30684 100644
--- a/connectivity/source/drivers/mozab/bootstrap/MNSFolders.hxx
+++ b/connectivity/source/drivers/mozab/bootstrap/MNSFolders.hxx
@@ -38,9 +38,6 @@
#include <rtl/ustring.hxx>
::rtl::OUString getRegistryDir(::com::sun::star::mozilla::MozillaProductType product);
-#ifndef MINIMAL_PROFILEDISCOVER
-::rtl::OUString getRegistryFileName(::com::sun::star::mozilla::MozillaProductType product);
-#endif
#endif
diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx b/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx
index aa20fb04a089..a9cd5c62fe0b 100644
--- a/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx
+++ b/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx
@@ -144,11 +144,8 @@ namespace connectivity
sal_Int32 ProfileAccess::LoadProductsInfo()
{
-#ifndef MINIMAL_PROFILEDISCOVER
- //load mozilla profiles to m_ProductProfileList
- LoadMozillaProfiles();
-#endif
- sal_Int32 count=static_cast<sal_Int32>(m_ProductProfileList[MozillaProductType_Mozilla].mProfileList.size());
+ //load SeaMonkey 2 profiles to m_ProductProfileList
+ sal_Int32 count = LoadXPToolkitProfiles(MozillaProductType_Mozilla);
//load thunderbird profiles to m_ProductProfileList
count += LoadXPToolkitProfiles(MozillaProductType_Thunderbird);
@@ -158,117 +155,6 @@ namespace connectivity
count += LoadXPToolkitProfiles(MozillaProductType_Firefox);
return count;
}
-#ifndef MINIMAL_PROFILEDISCOVER
- nsresult ProfileAccess::LoadMozillaProfiles()
- {
- sal_Int32 index=MozillaProductType_Mozilla;
- ProductStruct &m_Product = m_ProductProfileList[index];
- nsresult rv = NS_OK;
-
- //step 1 : get mozilla registry file
- nsCOMPtr<nsILocalFile> localFile;
- ::rtl::OUString regDir( getRegistryFileName( MozillaProductType_Mozilla ) );
- // PRUnichar != sal_Unicode in mingw
- nsAutoString registryDir(reinterpret_cast_mingw_only<const PRUnichar *>(regDir.getStr()));
- rv = NS_NewLocalFile(registryDir, PR_TRUE,
- getter_AddRefs(localFile));
- NS_ENSURE_SUCCESS(rv,rv);
- PRBool bExist;
- rv = localFile->Exists(&bExist);
- NS_ENSURE_SUCCESS(rv,rv);
- if (!bExist)
- return rv;
- nsCOMPtr<nsIRegistry> registry(do_CreateInstance(NS_REGISTRY_CONTRACTID, &rv));
- NS_ENSURE_SUCCESS(rv,rv);
- //step 2: open mozilla registry file
- rv = registry->Open(localFile);
- NS_ENSURE_SUCCESS(rv,rv);
-
- nsCOMPtr<nsIEnumerator> enumKeys;
- nsRegistryKey profilesTreeKey;
-
- //step 3:Enumerator it
- rv = registry->GetKey(nsIRegistry::Common,
- // PRUnichar != sal_Unicode in mingw
- reinterpret_cast_mingw_only<const PRUnichar *>(szProfileSubtreeString.getStr()),
- &profilesTreeKey);
- if (NS_FAILED(rv)) return rv;
-
- nsXPIDLString tmpCurrentProfile;
-
- // Get the current profile
- rv = registry->GetString(profilesTreeKey,
- // PRUnichar != sal_Unicode in mingw
- reinterpret_cast_mingw_only<const PRUnichar *>(szCurrentProfileString.getStr()),
- getter_Copies(tmpCurrentProfile));
-
- if (tmpCurrentProfile)
- {
- // PRUnichar != sal_Unicode in mingw
- m_Product.setCurrentProfile ( reinterpret_cast_mingw_only<const sal_Unicode *>(NS_STATIC_CAST(const PRUnichar*, tmpCurrentProfile)));
- }
-
-
- rv = registry->EnumerateSubtrees( profilesTreeKey, getter_AddRefs(enumKeys));
- NS_ENSURE_SUCCESS(rv,rv);
-
- rv = enumKeys->First();
- NS_ENSURE_SUCCESS(rv,rv);
-
- while (NS_OK != enumKeys->IsDone())
- {
- nsCOMPtr<nsISupports> base;
-
- rv = enumKeys->CurrentItem( getter_AddRefs(base) );
- NS_ENSURE_SUCCESS(rv,rv);
- rv = enumKeys->Next();
- NS_ENSURE_SUCCESS(rv,rv);
-
- // Get specific interface.
- nsCOMPtr <nsIRegistryNode> node;
- nsIID nodeIID = NS_IREGISTRYNODE_IID;
-
- rv = base->QueryInterface( nodeIID, getter_AddRefs(node));
- if (NS_FAILED(rv)) continue;
-
- // Get node name.
- nsXPIDLString profile;
- rv = node->GetName(getter_Copies(profile));
- if (NS_FAILED(rv)) continue;
-
- nsRegistryKey profKey;
- rv = node->GetKey(&profKey);
- if (NS_FAILED(rv)) continue;
-
-
- nsCOMPtr<nsILocalFile> tempLocal;
-
- nsXPIDLString regData;
- rv = registry->GetString(profKey,
- // PRUnichar != sal_Unicode in mingw
- reinterpret_cast_mingw_only<const PRUnichar *>(szDirectoryString.getStr()),
- getter_Copies(regData));
- if (NS_FAILED(rv)) continue;
-
-#if defined(XP_MAC) || defined(XP_MACOSX) || defined(MACOSX)
- rv = NS_NewNativeLocalFile(nsCString(), PR_TRUE, getter_AddRefs(tempLocal));
- if (NS_SUCCEEDED(rv))
- rv = tempLocal->SetPersistentDescriptor(NS_LossyConvertUCS2toASCII(regData));
-#else
- rv = NS_NewLocalFile(regData, PR_TRUE, getter_AddRefs(tempLocal));
-#endif
- //Add found profile to profile lists
- if (NS_SUCCEEDED(rv) && tempLocal)
- {
- // PRUnichar != sal_Unicode in mingw
- ProfileStruct* profileItem = new ProfileStruct(MozillaProductType_Mozilla,reinterpret_cast_mingw_only<const sal_Unicode *>(NS_STATIC_CAST(const PRUnichar*, profile)),tempLocal);
- m_Product.mProfileList[profileItem->getProfileName()] = profileItem;
- }
-
- }
- return rv;
- }
-#endif
//Thunderbird and firefox profiles are saved in profiles.ini
sal_Int32 ProfileAccess::LoadXPToolkitProfiles(MozillaProductType product)
{
diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx b/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx
index 9358cd65e650..6c88f04b1cf8 100644
--- a/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx
+++ b/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx
@@ -116,9 +116,6 @@ namespace connectivity
protected:
ProductStruct m_ProductProfileList[4];
sal_Int32 LoadProductsInfo();
-#ifndef MINIMAL_PROFILEDISCOVER
- nsresult LoadMozillaProfiles();
-#endif
sal_Int32 LoadXPToolkitProfiles(MozillaProductType product);
#ifndef MINIMAL_PROFILEDISCOVER
//used by isProfileLocked
diff --git a/connectivity/source/drivers/mozab/mozab.xcu b/connectivity/source/drivers/mozab/mozab.xcu
index c92209e09e5a..fa732d6257ae 100755
--- a/connectivity/source/drivers/mozab/mozab.xcu
+++ b/connectivity/source/drivers/mozab/mozab.xcu
@@ -62,7 +62,7 @@
<value>com.sun.star.comp.sdbc.MozabDriver</value>
</prop>
<prop oor:name="DriverTypeDisplayName" oor:type="xs:string">
- <value xml:lang="en-US">Mozilla Address Book</value>
+ <value xml:lang="en-US">SeaMonkey Address Book</value>
</prop>
<node oor:name="Features">
<node oor:name="EscapeDateTime" oor:op="replace">
diff --git a/connectivity/source/drivers/mozab/mozab2.xcu b/connectivity/source/drivers/mozab/mozab2.xcu
index e7c24143f5a1..d1a620dc73d0 100755
--- a/connectivity/source/drivers/mozab/mozab2.xcu
+++ b/connectivity/source/drivers/mozab/mozab2.xcu
@@ -32,7 +32,7 @@
<value>com.sun.star.comp.sdbc.MozabDriver</value>
</prop>
<prop oor:name="DriverTypeDisplayName" oor:type="xs:string">
- <value xml:lang="en-US">Mozilla Address Book</value>
+ <value xml:lang="en-US">SeaMonkey Address Book</value>
</prop>
<node oor:name="MetaData">
<node oor:name="SupportsBrowsing" oor:op="replace">
diff --git a/connectivity/source/inc/file/fcomp.hxx b/connectivity/source/inc/file/fcomp.hxx
index b46d24ddd089..7cbdb730258a 100644
--- a/connectivity/source/inc/file/fcomp.hxx
+++ b/connectivity/source/inc/file/fcomp.hxx
@@ -109,7 +109,7 @@ namespace connectivity
inline void startSelection(ORowSetValueDecoratorRef& _rVal)
{
- return evaluateSelection(m_rCompiler->m_aCodeList,_rVal);
+ evaluateSelection(m_rCompiler->m_aCodeList,_rVal);
}
diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx
index b8bcd5334787..8f2b3d69812a 100644
--- a/connectivity/source/parse/sqlnode.cxx
+++ b/connectivity/source/parse/sqlnode.cxx
@@ -1425,7 +1425,8 @@ OSQLParser::OSQLParser(const ::com::sun::star::uno::Reference< ::com::sun::star:
{ OSQLParseNode::parenthesized_boolean_value_expression, "parenthesized_boolean_value_expression" },
{ OSQLParseNode::character_string_type, "character_string_type" },
{ OSQLParseNode::other_like_predicate_part_2, "other_like_predicate_part_2" },
- { OSQLParseNode::between_predicate_part_2, "between_predicate_part_2" }
+ { OSQLParseNode::between_predicate_part_2, "between_predicate_part_2" },
+ { OSQLParseNode::cast_spec, "cast_spec" }
};
size_t nRuleMapCount = sizeof( aRuleDescriptions ) / sizeof( aRuleDescriptions[0] );
OSL_ENSURE( nRuleMapCount == size_t( OSQLParseNode::rule_count ), "OSQLParser::OSQLParser: added a new rule? Adjust this map!" );
@@ -2511,6 +2512,7 @@ void OSQLParseNode::parseLeaf(::rtl::OUStringBuffer& rString, const SQLParseNode
rString.append(m_aNodeValue);
rString.appendAscii("#");
break;
+
case SQL_NODE_INTNUM:
case SQL_NODE_APPROXNUM:
{
@@ -2523,6 +2525,12 @@ void OSQLParseNode::parseLeaf(::rtl::OUStringBuffer& rString, const SQLParseNode
rString.append(aTmp);
} break;
+ case SQL_NODE_PUNCTUATION:
+ if ( getParent() && SQL_ISRULE(getParent(),cast_spec) && m_aNodeValue.toChar() == '(' ) // no spaces in front of '('
+ {
+ rString.append(m_aNodeValue);
+ break;
+ }
// fall through
default:
if (rString.getLength() && m_aNodeValue.toChar() != '.' && m_aNodeValue.toChar() != ':' )
diff --git a/desktop/prj/build.lst b/desktop/prj/build.lst
index 0fedcd4c2d49..146579cab8bc 100644
--- a/desktop/prj/build.lst
+++ b/desktop/prj/build.lst
@@ -1,4 +1,4 @@
-dt desktop : l10n sfx2 stoc BERKELEYDB:berkeleydb sysui SO:sysui_so BOOST:boost svx xmlhelp sal unoil officecfg offuh NULL
+dt desktop : l10n sfx2 stoc BERKELEYDB:berkeleydb sysui SO:sysui_so BOOST:boost svx xmlhelp sal unoil officecfg offuh filter LIBXSLT:libxslt NULL
dt desktop usr1 - all dt_mkout NULL
dt desktop\inc nmake - all dt_inc NULL
dt desktop\prj get - all dt_prj NULL
@@ -42,3 +42,6 @@ dt desktop\source\registration\com\sun\star\servicetag\resources get - a
dt desktop\source\registration\com\sun\star\servicetag nmake - all sn_svctag NULL
dt desktop\source\registration\com\sun\star\registration nmake - all sn_regjob sn_svctag NULL
dt desktop\qa\deployment_misc nmake - all sn_qa_deployment_misc dt_dp_misc dt_inc NULL
+dt desktop\test\deployment\active nmake - all dt_test_deployment_active NULL
+dt desktop\test\deployment\boxt nmake - all dt_test_deployment_boxt NULL
+dt desktop\test\deployment\passive nmake - all dt_test_deployment_passive NULL
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index d80aa37fdece..a49cabc90bed 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -121,6 +121,7 @@
#include <osl/module.h>
#include <osl/file.hxx>
#include <osl/signal.h>
+#include <osl/thread.hxx>
#include <rtl/uuid.h>
#include <rtl/uri.hxx>
#include <unotools/pathoptions.hxx>
@@ -347,10 +348,8 @@ CommandLineArgs* Desktop::GetCommandLineArgs()
{
::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
if ( !pArgs )
- {
pArgs = new CommandLineArgs;
}
- }
return pArgs;
}
@@ -1552,7 +1551,7 @@ void Desktop::Main()
Reference< ::com::sun::star::task::XRestartManager > xRestartManager;
sal_Bool bRestartRequested( sal_False );
sal_Bool bUseSystemFileDialog(sal_True);
- int nAcquireCount( 0 );
+ int nAcquireCount( 0 );
Reference < css::document::XEventListener > xGlobalBroadcaster;
try
{
@@ -1619,25 +1618,6 @@ void Desktop::Main()
}
String aTitle = pLabelResMgr ? String( ResId( RID_APPTITLE, *pLabelResMgr ) ) : String();
delete pLabelResMgr;
-/*
- // locale and UI locale in AppSettings are now retrieved from configuration or system directly via SvtSysLocale
- // no reason to set while starting
- // set UI language and locale
- RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ set locale settings" );
- //LanguageSelection langselect;
- OUString aUILocaleString = LanguageSelection::getLanguageString();
- Locale aUILocale = LanguageSelection::IsoStringToLocale(aUILocaleString);
- LanguageType eLanguage = SvtSysLocale().GetLanguage();
-
- // #i39040#, do not call anything between GetSettings and SetSettings that might have
- // a side effect on the settings (like, eg, SvtSysLocaleOptions().GetLocaleLanguageType(),
- // which changes the MiscSettings !!! )
- AllSettings aSettings( Application::GetSettings() );
- aSettings.SetUILocale( aUILocale );
- aSettings.SetLanguage( eLanguage );
- Application::SetSettings( aSettings );
- RTL_LOGFILE_CONTEXT_TRACE( aLog, "} set locale settings" );
-*/
// Check for StarOffice/Suite specific extensions runs also with OpenOffice installation sets
OUString aTitleString( aTitle );
@@ -1657,12 +1637,9 @@ void Desktop::Main()
#endif
SetDisplayName( aTitle );
-// SetSplashScreenProgress(30);
RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ create SvtPathOptions and SvtLanguageOptions" );
pPathOptions.reset( new SvtPathOptions);
-// SetSplashScreenProgress(40);
-// pLanguageOptions = new SvtLanguageOptions(sal_True);
-// SetSplashScreenProgress(45);
+ SetSplashScreenProgress(40);
RTL_LOGFILE_CONTEXT_TRACE( aLog, "} create SvtPathOptions and SvtLanguageOptions" );
// Check special env variable #111015#
@@ -1744,6 +1721,7 @@ void Desktop::Main()
}
SetSplashScreenProgress(50);
+
// Backing Component
sal_Bool bCrashed = sal_False;
sal_Bool bExistsRecoveryData = sal_False;
@@ -1773,43 +1751,37 @@ void Desktop::Main()
if ( !bRestartRequested )
{
- if (
- (pCmdLineArgs->IsEmptyOrAcceptOnly() ) &&
+ if ((!pCmdLineArgs->WantsToLoadDocument() ) &&
(SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SSTARTMODULE)) &&
(!bExistsRecoveryData ) &&
(!bExistsSessionData ) &&
- (!Application::AnyInput( INPUT_APPEVENT ) )
- )
+ (!Application::AnyInput( INPUT_APPEVENT ) ))
{
- RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ create BackingComponent" );
- Reference< XFrame > xDesktopFrame( xSMgr->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ))), UNO_QUERY );
- if (xDesktopFrame.is())
- {
- // SetSplashScreenProgress(60);
- Reference< XFrame > xBackingFrame;
- Reference< ::com::sun::star::awt::XWindow > xContainerWindow;
-
- xBackingFrame = xDesktopFrame->findFrame(OUString( RTL_CONSTASCII_USTRINGPARAM( "_blank" )), 0);
- if (xBackingFrame.is())
- xContainerWindow = xBackingFrame->getContainerWindow();
- if (xContainerWindow.is())
- {
- // set the WB_EXT_DOCUMENT style. Normally, this is done by the TaskCreator service when a "_blank"
- // frame/window is created. Since we do not use the TaskCreator here, we need to mimic its behavior,
- // otherwise documents loaded into this frame will later on miss functionality depending on the style.
- Window* pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
- OSL_ENSURE( pContainerWindow, "Desktop::Main: no implementation access to the frame's container window!" );
- pContainerWindow->SetExtendedStyle( pContainerWindow->GetExtendedStyle() | WB_EXT_DOCUMENT );
-
- SetSplashScreenProgress(75);
- Sequence< Any > lArgs(1);
- lArgs[0] <<= xContainerWindow;
-
- Reference< XController > xBackingComp(
- xSMgr->createInstanceWithArguments(OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.StartModule") ), lArgs),
- UNO_QUERY);
- // SetSplashScreenProgress(80);
+ RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ create BackingComponent" );
+ Reference< XFrame > xDesktopFrame( xSMgr->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ))), UNO_QUERY );
+ if (xDesktopFrame.is())
+ {
+ Reference< XFrame > xBackingFrame;
+ Reference< ::com::sun::star::awt::XWindow > xContainerWindow;
+
+ xBackingFrame = xDesktopFrame->findFrame(OUString( RTL_CONSTASCII_USTRINGPARAM( "_blank" )), 0);
+ if (xBackingFrame.is())
+ xContainerWindow = xBackingFrame->getContainerWindow();
+ if (xContainerWindow.is())
+ {
+ // set the WB_EXT_DOCUMENT style. Normally, this is done by the TaskCreator service when a "_blank"
+ // frame/window is created. Since we do not use the TaskCreator here, we need to mimic its behavior,
+ // otherwise documents loaded into this frame will later on miss functionality depending on the style.
+ Window* pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+ OSL_ENSURE( pContainerWindow, "Desktop::Main: no implementation access to the frame's container window!" );
+ pContainerWindow->SetExtendedStyle( pContainerWindow->GetExtendedStyle() | WB_EXT_DOCUMENT );
+
+ SetSplashScreenProgress(75);
+ Sequence< Any > lArgs(1);
+ lArgs[0] <<= xContainerWindow;
+
+ Reference< XController > xBackingComp(
+ xSMgr->createInstanceWithArguments(OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.StartModule") ), lArgs), UNO_QUERY);
if (xBackingComp.is())
{
Reference< ::com::sun::star::awt::XWindow > xBackingWin(xBackingComp, UNO_QUERY);
@@ -1840,16 +1812,6 @@ void Desktop::Main()
FatalError( MakeStartupErrorMessage(e.Message) );
return;
}
- /*
- catch ( ... )
- {
- FatalError( MakeStartupErrorMessage(
- OUString::createFromAscii(
- "Unknown error during startup (Office wrapper service).\nInstallation could be damaged.")));
- return;
- }
- */
-// SetSplashScreenProgress(55);
SvtFontSubstConfig().Apply();
@@ -1858,7 +1820,6 @@ void Desktop::Main()
aAppearanceCfg.SetApplicationDefaults( this );
SvtAccessibilityOptions aOptions;
aOptions.SetVCLSettings();
-// SetSplashScreenProgress(60);
if ( !bRestartRequested )
{
@@ -1892,15 +1853,6 @@ void Desktop::Main()
FatalError( MakeStartupErrorMessage(e.Message) );
return;
}
- /*
- catch ( ... )
- {
- FatalError( MakeStartupErrorMessage(
- OUString::createFromAscii(
- "Unknown error during startup (TD/Desktop service).\nInstallation could be damaged.")));
- return;
- }
- */
// Post user event to startup first application component window
// We have to send this OpenClients message short before execute() to
@@ -2219,12 +2171,7 @@ IMPL_LINK( Desktop, OpenClients_Impl, void*, EMPTYARG )
// CloseStartupScreen();
CloseSplashScreen();
-
CheckFirstRun( );
-
- // allow ipc interaction
-// OfficeIPCThread::SetReady();
-
EnableOleAutomation();
if (getenv ("OOO_EXIT_POST_STARTUP"))
@@ -2721,16 +2668,6 @@ void Desktop::OpenClients()
if ( ! bAllowRecoveryAndSessionManagement )
{
- /*
- ::comphelper::ConfigurationHelper::writeDirectKey(
- ::comphelper::getProcessServiceFactory(),
- ::rtl::OUString::createFromAscii("org.openoffice.Office.Recovery"),
- ::rtl::OUString::createFromAscii("AutoSave"),
- ::rtl::OUString::createFromAscii("Enabled"),
- ::com::sun::star::uno::makeAny(sal_False),
- ::comphelper::ConfigurationHelper::E_STANDARD);
-
- */
try
{
Reference< XDispatch > xRecovery(
diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index 0625191ee2ea..14b4fd1d6ddc 100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -142,15 +142,16 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
UNO_QUERY);
// parse command line arguments
- sal_Bool bPrintEvent = sal_False;
- sal_Bool bOpenEvent = sal_True;
- sal_Bool bViewEvent = sal_False;
- sal_Bool bStartEvent = sal_False;
- sal_Bool bPrintToEvent = sal_False;
- sal_Bool bPrinterName = sal_False;
- sal_Bool bForceOpenEvent = sal_False;
- sal_Bool bForceNewEvent = sal_False;
- sal_Bool bDisplaySpec = sal_False;
+ bool bOpenEvent(true);
+ bool bPrintEvent(false);
+ bool bViewEvent(false);
+ bool bStartEvent(false);
+ bool bPrintToEvent(false);
+ bool bPrinterName(false);
+ bool bForceOpenEvent(false);
+ bool bForceNewEvent(false);
+ bool bDisplaySpec(false);
+ bool bOpenDoc(false);
m_eArgumentCount = NONE;
@@ -169,8 +170,8 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
if (tmp.getLength() > 0)
aArg = tmp;
}
- String aArgStr = aArg;
+ String aArgStr = aArg;
if ( aArg.getLength() > 0 )
{
m_eArgumentCount = m_eArgumentCount == NONE ? ONE : MANY;
@@ -182,98 +183,98 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
if ( aArgStr.EqualsIgnoreCaseAscii( "-n" ))
{
// force new documents based on the following documents
- bForceNewEvent = sal_True;
- bOpenEvent = sal_False;
- bForceOpenEvent = sal_False;
- bPrintToEvent = sal_False;
- bPrintEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
- }
+ bForceNewEvent = true;
+ bOpenEvent = false;
+ bForceOpenEvent = false;
+ bPrintToEvent = false;
+ bPrintEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
+ }
else if ( aArgStr.EqualsIgnoreCaseAscii( "-o" ))
{
- // force open documents regards if they are templates or not
- bForceOpenEvent = sal_True;
- bOpenEvent = sal_False;
- bForceNewEvent = sal_False;
- bPrintToEvent = sal_False;
- bPrintEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
- }
+ // force open documents regardless if they are templates or not
+ bForceOpenEvent = true;
+ bOpenEvent = false;
+ bForceNewEvent = false;
+ bPrintToEvent = false;
+ bPrintEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
+ }
else if ( aArgStr.EqualsIgnoreCaseAscii( "-pt" ))
{
// Print to special printer
- bPrintToEvent = sal_True;
- bPrinterName = sal_True;
- bPrintEvent = sal_False;
- bOpenEvent = sal_False;
- bForceNewEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
- bForceOpenEvent = sal_False;
- }
- else if ( aArgStr.EqualsIgnoreCaseAscii( "-p" ))
- {
+ bPrintToEvent = true;
+ bPrinterName = true;
+ bPrintEvent = false;
+ bOpenEvent = false;
+ bForceNewEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
+ bForceOpenEvent = false;
+ }
+ else if ( aArgStr.EqualsIgnoreCaseAscii( "-p" ))
+ {
// Print to default printer
- bPrintEvent = sal_True;
- bPrintToEvent = sal_False;
- bOpenEvent = sal_False;
- bForceNewEvent = sal_False;
- bForceOpenEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
- }
- else if ( aArgStr.EqualsIgnoreCaseAscii( "-view" ))
- {
+ bPrintEvent = true;
+ bPrintToEvent = false;
+ bOpenEvent = false;
+ bForceNewEvent = false;
+ bForceOpenEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
+ }
+ else if ( aArgStr.EqualsIgnoreCaseAscii( "-view" ))
+ {
// open in viewmode
- bOpenEvent = sal_False;
- bPrintEvent = sal_False;
- bPrintToEvent = sal_False;
- bForceNewEvent = sal_False;
- bForceOpenEvent = sal_False;
- bViewEvent = sal_True;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
- }
+ bOpenEvent = false;
+ bPrintEvent = false;
+ bPrintToEvent = false;
+ bForceNewEvent = false;
+ bForceOpenEvent = false;
+ bViewEvent = true;
+ bStartEvent = false;
+ bDisplaySpec = false;
+ }
else if ( aArgStr.EqualsIgnoreCaseAscii( "-show" ))
{
// open in viewmode
- bOpenEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_True;
- bPrintEvent = sal_False;
- bPrintToEvent = sal_False;
- bForceNewEvent = sal_False;
- bForceOpenEvent = sal_False;
- bDisplaySpec = sal_False;
+ bOpenEvent = false;
+ bViewEvent = false;
+ bStartEvent = true;
+ bPrintEvent = false;
+ bPrintToEvent = false;
+ bForceNewEvent = false;
+ bForceOpenEvent = false;
+ bDisplaySpec = false;
}
else if ( aArgStr.EqualsIgnoreCaseAscii( "-display" ))
{
// set display
- bOpenEvent = sal_False;
- bPrintEvent = sal_False;
- bForceOpenEvent = sal_False;
- bPrintToEvent = sal_False;
- bForceNewEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_True;
+ bOpenEvent = false;
+ bPrintEvent = false;
+ bForceOpenEvent = false;
+ bPrintToEvent = false;
+ bForceNewEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = true;
}
else if ( aArgStr.EqualsIgnoreCaseAscii( "-language" ))
{
- bOpenEvent = sal_False;
- bPrintEvent = sal_False;
- bForceOpenEvent = sal_False;
- bPrintToEvent = sal_False;
- bForceNewEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
+ bOpenEvent = false;
+ bPrintEvent = false;
+ bForceOpenEvent = false;
+ bPrintToEvent = false;
+ bForceNewEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
}
#ifdef MACOSX
@@ -285,14 +286,14 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
else if ( aArgStr.CompareToAscii( "-psn", 4 ) == COMPARE_EQUAL )
{
// finder argument from MacOSX
- bOpenEvent = sal_False;
- bPrintEvent = sal_False;
- bForceOpenEvent = sal_False;
- bPrintToEvent = sal_False;
- bForceNewEvent = sal_False;
- bViewEvent = sal_False;
- bStartEvent = sal_False;
- bDisplaySpec = sal_False;
+ bOpenEvent = false;
+ bPrintEvent = false;
+ bForceOpenEvent = false;
+ bPrintToEvent = false;
+ bForceNewEvent = false;
+ bViewEvent = false;
+ bStartEvent = false;
+ bDisplaySpec = false;
}
#endif
}
@@ -308,29 +309,54 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
{
// handle this argument as a filename
if ( bOpenEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_OPENLIST, aArgStr );
+ bOpenDoc = true;
+ }
else if ( bViewEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_VIEWLIST, aArgStr );
+ bOpenDoc = true;
+ }
else if ( bStartEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_STARTLIST, aArgStr );
+ bOpenDoc = true;
+ }
else if ( bPrintEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_PRINTLIST, aArgStr );
+ bOpenDoc = true;
+ }
else if ( bPrintToEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_PRINTTOLIST, aArgStr );
+ bOpenDoc = true;
+ }
else if ( bForceNewEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_FORCENEWLIST, aArgStr );
+ bOpenDoc = true;
+ }
else if ( bForceOpenEvent )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_FORCEOPENLIST, aArgStr );
- else if ( bDisplaySpec ){
+ bOpenDoc = true;
+ }
+ else if ( bDisplaySpec )
+ {
AddStringListParam_Impl( CMD_STRINGPARAM_DISPLAY, aArgStr );
- bDisplaySpec = sal_False; // only one display, not a lsit
- bOpenEvent = sal_True; // set back to standard
+ bDisplaySpec = false; // only one display, not a lsit
+ bOpenEvent = true; // set back to standard
}
}
}
}
}
}
+
+ if ( bOpenDoc )
+ m_bDocumentArgs = true;
}
void CommandLineArgs::AddStringListParam_Impl( StringParam eParam, const rtl::OUString& aParam )
@@ -432,8 +458,8 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
return sal_True;
}
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-help" ))
- || aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-h" ))
- || aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-?" )))
+ || aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-h" ))
+ || aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-?" )))
{
SetBoolParam_Impl( CMD_BOOLPARAM_HELP, sal_True );
return sal_True;
@@ -473,18 +499,18 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
SetBoolParam_Impl( CMD_BOOLPARAM_HELPMATH, sal_True );
return sal_True;
}
- #ifdef MACOSX
- /* #i84053# ignore -psn on Mac
- Platform dependent #ifdef here is ugly, however this is currently
- the only platform dependent parameter. Should more appear
- we should find a better solution
- */
+#ifdef MACOSX
+ /* #i84053# ignore -psn on Mac
+ Platform dependent #ifdef here is ugly, however this is currently
+ the only platform dependent parameter. Should more appear
+ we should find a better solution
+ */
else if ( aArg.compareToAscii( "-psn", 4 ) == 0 )
{
SetBoolParam_Impl( CMD_BOOLPARAM_PSN, sal_True );
return sal_True;
}
- #endif
+#endif
else if ( aArgStr.Copy(0, 8).EqualsIgnoreCaseAscii( "-accept=" ))
{
AddStringListParam_Impl( CMD_STRINGPARAM_ACCEPT, aArgStr.Copy( 8 ) );
@@ -496,7 +522,7 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
return sal_True;
}
else if ( aArgStr.CompareIgnoreCaseToAscii( "-portal," ,
- RTL_CONSTASCII_LENGTH( "-portal," )) == COMPARE_EQUAL )
+ RTL_CONSTASCII_LENGTH( "-portal," )) == COMPARE_EQUAL )
{
AddStringListParam_Impl( CMD_STRINGPARAM_PORTAL, aArgStr.Copy( RTL_CONSTASCII_LENGTH( "-portal," )) );
return sal_True;
@@ -504,13 +530,10 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
else if ( aArgStr.Copy( 0, 7 ).EqualsIgnoreCaseAscii( "-userid" ))
{
if ( aArgStr.Len() > 8 )
- {
- rtl::OUString aUserDir = aArgStr;
- AddStringListParam_Impl(
- CMD_STRINGPARAM_USERDIR,
- ::rtl::Uri::decode( aUserDir.copy( 8 ),
- rtl_UriDecodeWithCharset,
- RTL_TEXTENCODING_UTF8 ) );
+ {
+ rtl::OUString aUserDir = aArgStr;
+ AddStringListParam_Impl( CMD_STRINGPARAM_USERDIR,
+ ::rtl::Uri::decode( aUserDir.copy( 8 ), rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8 ) );
}
return sal_True;
}
@@ -533,56 +556,64 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_WRITER );
if ( !bAlreadySet )
- SetBoolParam_Impl( CMD_BOOLPARAM_WRITER, sal_True );
+ SetBoolParam_Impl( CMD_BOOLPARAM_WRITER, sal_True );
+ m_bDocumentArgs = true;
return sal_True;
}
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-calc" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_CALC );
if ( !bAlreadySet )
- SetBoolParam_Impl( CMD_BOOLPARAM_CALC, sal_True );
+ SetBoolParam_Impl( CMD_BOOLPARAM_CALC, sal_True );
+ m_bDocumentArgs = true;
return sal_True;
}
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-draw" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_DRAW );
if ( !bAlreadySet )
- SetBoolParam_Impl( CMD_BOOLPARAM_DRAW, sal_True );
+ SetBoolParam_Impl( CMD_BOOLPARAM_DRAW, sal_True );
+ m_bDocumentArgs = true;
return sal_True;
}
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-impress" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_IMPRESS );
if ( !bAlreadySet )
- SetBoolParam_Impl( CMD_BOOLPARAM_IMPRESS, sal_True );
+ SetBoolParam_Impl( CMD_BOOLPARAM_IMPRESS, sal_True );
+ m_bDocumentArgs = true;
return sal_True;
}
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-base" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_BASE );
if ( !bAlreadySet )
- SetBoolParam_Impl( CMD_BOOLPARAM_BASE, sal_True );
+ SetBoolParam_Impl( CMD_BOOLPARAM_BASE, sal_True );
+ m_bDocumentArgs = true;
return sal_True;
}
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-global" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_GLOBAL );
if ( !bAlreadySet )
- SetBoolParam_Impl( CMD_BOOLPARAM_GLOBAL, sal_True );
+ SetBoolParam_Impl( CMD_BOOLPARAM_GLOBAL, sal_True );
+ m_bDocumentArgs = true;
return sal_True;
}
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-math" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_MATH );
if ( !bAlreadySet )
- SetBoolParam_Impl( CMD_BOOLPARAM_MATH, sal_True );
+ SetBoolParam_Impl( CMD_BOOLPARAM_MATH, sal_True );
+ m_bDocumentArgs = true;
return sal_True;
}
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-web" )) == sal_True )
{
sal_Bool bAlreadySet = CheckGroupMembers( CMD_GRPID_MODULE, CMD_BOOLPARAM_WEB );
if ( !bAlreadySet )
- SetBoolParam_Impl( CMD_BOOLPARAM_WEB, sal_True );
+ SetBoolParam_Impl( CMD_BOOLPARAM_WEB, sal_True );
+ m_bDocumentArgs = true;
return sal_True;
}
@@ -605,12 +636,12 @@ sal_Bool CommandLineArgs::CheckGroupMembers( GroupParamId nGroupId, BoolParam nE
void CommandLineArgs::ResetParamValues()
{
int i;
-
for ( i = 0; i < CMD_BOOLPARAM_COUNT; i++ )
m_aBoolParams[i] = sal_False;
for ( i = 0; i < CMD_STRINGPARAM_COUNT; i++ )
m_aStrSetParams[i] = sal_False;
m_eArgumentCount = NONE;
+ m_bDocumentArgs = false;
}
void CommandLineArgs::SetBoolParam( BoolParam eParam, sal_Bool bNewValue )
@@ -897,4 +928,10 @@ sal_Bool CommandLineArgs::IsEmptyOrAcceptOnly() const
( ( m_eArgumentCount == ONE ) && m_aBoolParams[ CMD_BOOLPARAM_PSN ] );
}
+sal_Bool CommandLineArgs::WantsToLoadDocument() const
+{
+ osl::MutexGuard aMutexGuard( m_aMutex );
+ return m_bDocumentArgs;
+}
+
} // namespace desktop
diff --git a/desktop/source/app/cmdlineargs.hxx b/desktop/source/app/cmdlineargs.hxx
index 615577098c2d..a1c70bf5df72 100644
--- a/desktop/source/app/cmdlineargs.hxx
+++ b/desktop/source/app/cmdlineargs.hxx
@@ -38,7 +38,7 @@ namespace desktop
class CommandLineArgs
{
public:
- enum BoolParam // must be zero based!
+ enum BoolParam // must be zero based!
{
CMD_BOOLPARAM_MINIMIZED,
CMD_BOOLPARAM_INVISIBLE,
@@ -71,7 +71,7 @@ class CommandLineArgs
CMD_BOOLPARAM_HELPIMPRESS,
CMD_BOOLPARAM_HELPBASE,
CMD_BOOLPARAM_PSN,
- CMD_BOOLPARAM_COUNT // must be last element!
+ CMD_BOOLPARAM_COUNT // must be last element!
};
enum StringParam // must be zero based!
@@ -92,7 +92,7 @@ class CommandLineArgs
CMD_STRINGPARAM_PRINTERNAME,
CMD_STRINGPARAM_DISPLAY,
CMD_STRINGPARAM_LANGUAGE,
- CMD_STRINGPARAM_COUNT // must be last element!
+ CMD_STRINGPARAM_COUNT // must be last element!
};
enum GroupParamId
@@ -101,7 +101,8 @@ class CommandLineArgs
CMD_GRPID_COUNT
};
- struct Supplier {
+ struct Supplier
+ {
// Thrown from constructors and next:
class Exception {
public:
@@ -122,86 +123,88 @@ class CommandLineArgs
boost::optional< rtl::OUString > getCwdUrl() const { return m_cwdUrl; }
// generic methods to access parameter
- void SetBoolParam( BoolParam eParam, sal_Bool bNewValue );
+ void SetBoolParam( BoolParam eParam, sal_Bool bNewValue );
// Access to bool parameters
- sal_Bool IsMinimized() const;
- sal_Bool IsInvisible() const;
- sal_Bool IsNoRestore() const;
- sal_Bool IsNoDefault() const;
- sal_Bool IsBean() const;
- sal_Bool IsServer() const;
- sal_Bool IsHeadless() const;
- sal_Bool IsQuickstart() const;
- sal_Bool IsNoQuickstart() const;
- sal_Bool IsTerminateAfterInit() const;
- sal_Bool IsNoFirstStartWizard() const;
- sal_Bool IsNoLogo() const;
- sal_Bool IsNoLockcheck() const;
- sal_Bool IsHelp() const;
- sal_Bool IsHelpWriter() const;
- sal_Bool IsHelpCalc() const;
- sal_Bool IsHelpDraw() const;
- sal_Bool IsHelpImpress() const;
- sal_Bool IsHelpBase() const;
- sal_Bool IsHelpMath() const;
- sal_Bool IsHelpBasic() const;
- sal_Bool IsWriter() const;
- sal_Bool IsCalc() const;
- sal_Bool IsDraw() const;
- sal_Bool IsImpress() const;
- sal_Bool IsBase() const;
- sal_Bool IsGlobal() const;
- sal_Bool IsMath() const;
- sal_Bool IsWeb() const;
- sal_Bool HasModuleParam() const;
+ sal_Bool IsMinimized() const;
+ sal_Bool IsInvisible() const;
+ sal_Bool IsNoRestore() const;
+ sal_Bool IsNoDefault() const;
+ sal_Bool IsBean() const;
+ sal_Bool IsServer() const;
+ sal_Bool IsHeadless() const;
+ sal_Bool IsQuickstart() const;
+ sal_Bool IsNoQuickstart() const;
+ sal_Bool IsTerminateAfterInit() const;
+ sal_Bool IsNoFirstStartWizard() const;
+ sal_Bool IsNoLogo() const;
+ sal_Bool IsNoLockcheck() const;
+ sal_Bool IsHelp() const;
+ sal_Bool IsHelpWriter() const;
+ sal_Bool IsHelpCalc() const;
+ sal_Bool IsHelpDraw() const;
+ sal_Bool IsHelpImpress() const;
+ sal_Bool IsHelpBase() const;
+ sal_Bool IsHelpMath() const;
+ sal_Bool IsHelpBasic() const;
+ sal_Bool IsWriter() const;
+ sal_Bool IsCalc() const;
+ sal_Bool IsDraw() const;
+ sal_Bool IsImpress() const;
+ sal_Bool IsBase() const;
+ sal_Bool IsGlobal() const;
+ sal_Bool IsMath() const;
+ sal_Bool IsWeb() const;
+ sal_Bool HasModuleParam() const;
+ sal_Bool WantsToLoadDocument() const;
// Access to string parameters
- sal_Bool GetPortalConnectString( ::rtl::OUString& rPara) const;
- sal_Bool GetAcceptString( ::rtl::OUString& rPara) const;
- sal_Bool GetUnAcceptString( ::rtl::OUString& rPara) const;
- sal_Bool GetOpenList( ::rtl::OUString& rPara) const;
- sal_Bool GetViewList( ::rtl::OUString& rPara) const;
- sal_Bool GetStartList( ::rtl::OUString& rPara) const;
- sal_Bool GetForceOpenList( ::rtl::OUString& rPara) const;
- sal_Bool GetForceNewList( ::rtl::OUString& rPara) const;
- sal_Bool GetPrintList( ::rtl::OUString& rPara) const;
- sal_Bool GetPrintToList( ::rtl::OUString& rPara ) const;
- sal_Bool GetPrinterName( ::rtl::OUString& rPara ) const;
- sal_Bool GetLanguage( ::rtl::OUString& rPara ) const;
+ sal_Bool GetPortalConnectString( ::rtl::OUString& rPara) const;
+ sal_Bool GetAcceptString( ::rtl::OUString& rPara) const;
+ sal_Bool GetUnAcceptString( ::rtl::OUString& rPara) const;
+ sal_Bool GetOpenList( ::rtl::OUString& rPara) const;
+ sal_Bool GetViewList( ::rtl::OUString& rPara) const;
+ sal_Bool GetStartList( ::rtl::OUString& rPara) const;
+ sal_Bool GetForceOpenList( ::rtl::OUString& rPara) const;
+ sal_Bool GetForceNewList( ::rtl::OUString& rPara) const;
+ sal_Bool GetPrintList( ::rtl::OUString& rPara) const;
+ sal_Bool GetPrintToList( ::rtl::OUString& rPara ) const;
+ sal_Bool GetPrinterName( ::rtl::OUString& rPara ) const;
+ sal_Bool GetLanguage( ::rtl::OUString& rPara ) const;
// Special analyzed states (does not match directly to a command line parameter!)
- sal_Bool IsPrinting() const;
- sal_Bool IsEmpty() const;
- sal_Bool IsEmptyOrAcceptOnly() const;
+ sal_Bool IsPrinting() const;
+ sal_Bool IsEmpty() const;
+ sal_Bool IsEmptyOrAcceptOnly() const;
private:
enum Count { NONE, ONE, MANY };
struct GroupDefinition
{
- sal_Int32 nCount;
- BoolParam* pGroupMembers;
+ sal_Int32 nCount;
+ BoolParam* pGroupMembers;
};
// no copy and operator=
CommandLineArgs( const CommandLineArgs& );
CommandLineArgs operator=( const CommandLineArgs& );
- sal_Bool InterpretCommandLineParameter( const ::rtl::OUString& );
- void ParseCommandLine_Impl( Supplier& supplier );
- void ResetParamValues();
- sal_Bool CheckGroupMembers( GroupParamId nGroup, BoolParam nExcludeMember ) const;
+ sal_Bool InterpretCommandLineParameter( const ::rtl::OUString& );
+ void ParseCommandLine_Impl( Supplier& supplier );
+ void ResetParamValues();
+ sal_Bool CheckGroupMembers( GroupParamId nGroup, BoolParam nExcludeMember ) const;
- void AddStringListParam_Impl( StringParam eParam, const rtl::OUString& aParam );
- void SetBoolParam_Impl( BoolParam eParam, sal_Bool bValue );
+ void AddStringListParam_Impl( StringParam eParam, const rtl::OUString& aParam );
+ void SetBoolParam_Impl( BoolParam eParam, sal_Bool bValue );
boost::optional< rtl::OUString > m_cwdUrl;
- sal_Bool m_aBoolParams[ CMD_BOOLPARAM_COUNT ]; // Stores boolean parameters
- rtl::OUString m_aStrParams[ CMD_STRINGPARAM_COUNT ]; // Stores string parameters
- sal_Bool m_aStrSetParams[ CMD_STRINGPARAM_COUNT ]; // Stores if string parameters are provided on cmdline
- Count m_eArgumentCount; // Number of Args
- mutable ::osl::Mutex m_aMutex;
+ sal_Bool m_aBoolParams[ CMD_BOOLPARAM_COUNT ]; // Stores boolean parameters
+ rtl::OUString m_aStrParams[ CMD_STRINGPARAM_COUNT ]; // Stores string parameters
+ sal_Bool m_aStrSetParams[ CMD_STRINGPARAM_COUNT ]; // Stores if string parameters are provided on cmdline
+ Count m_eArgumentCount; // Number of Args
+ bool m_bDocumentArgs; // A document creation/open/load arg is used
+ mutable ::osl::Mutex m_aMutex;
// static definition for groups where only one member can be true
static GroupDefinition m_pGroupDefinitions[ CMD_GRPID_COUNT ];
diff --git a/desktop/source/deployment/gui/dp_gui.hrc b/desktop/source/deployment/gui/dp_gui.hrc
index 5f52b042edf3..dcde55654a30 100644..100755
--- a/desktop/source/deployment/gui/dp_gui.hrc
+++ b/desktop/source/deployment/gui/dp_gui.hrc
@@ -106,7 +106,7 @@
#define RID_DLG_UPDATE_LINE 8
#define RID_DLG_UPDATE_HELP 9
#define RID_DLG_UPDATE_OK 10
-#define RID_DLG_UPDATE_CANCEL 11
+#define RID_DLG_UPDATE_CLOSE 11
#define RID_DLG_UPDATE_NORMALALERT 12
#define RID_DLG_UPDATE_HIGHCONTRASTALERT 13
#define RID_DLG_UPDATE_ERROR 14
@@ -127,6 +127,11 @@
#define RID_DLG_UPDATE_RELEASENOTES_LINK 29
#define RID_DLG_UPDATE_NOUPDATE 30
#define RID_DLG_UPDATE_VERSION 31
+#define RID_DLG_UPDATE_IGNORE 32
+#define RID_DLG_UPDATE_ENABLE 33
+#define RID_DLG_UPDATE_IGNORE_ALL 34
+#define RID_DLG_UPDATE_IGNORED_UPDATE 35
+
#define RID_DLG_UPDATEINSTALL (RID_DEPLOYMENT_GUI_START + 20)
@@ -163,6 +168,7 @@
#define RID_STR_NO_ADMIN_PRIVILEGE (RID_DEPLOYMENT_GUI_START+95)
#define RID_STR_ERROR_MISSING_DEPENDENCIES (RID_DEPLOYMENT_GUI_START+96)
#define RID_STR_ERROR_MISSING_LICENSE (RID_DEPLOYMENT_GUI_START+97)
+#define RID_STR_SHOW_LICENSE_CMD (RID_DEPLOYMENT_GUI_START+98)
#define WARNINGBOX_CONCURRENTINSTANCE (RID_DEPLOYMENT_GUI_START+100)
@@ -172,6 +178,7 @@
#define RID_WARNINGBOX_REMOVE_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+104)
#define RID_WARNINGBOX_ENABLE_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+105)
#define RID_WARNINGBOX_DISABLE_SHARED_EXTENSION (RID_DEPLOYMENT_GUI_START+106)
+#define RID_DLG_SHOW_LICENSE (RID_DEPLOYMENT_GUI_START+107)
#define RID_DLG_LICENSE RID_DEPLOYMENT_LICENSE_START
diff --git a/desktop/source/deployment/gui/dp_gui_dialog.src b/desktop/source/deployment/gui/dp_gui_dialog.src
index 665dbe5934d7..c9fd19c25592 100644
--- a/desktop/source/deployment/gui/dp_gui_dialog.src
+++ b/desktop/source/deployment/gui/dp_gui_dialog.src
@@ -119,6 +119,11 @@ String RID_STR_ERROR_MISSING_LICENSE
Text [ en-US ] = "This extension is disabled because you haven't accepted the license yet.\n";
};
+String RID_STR_SHOW_LICENSE_CMD
+{
+ Text [ en-US ] = "Show license";
+};
+
// Dialog layout
// ---------------------------------------------------
// row 1 | multi line edit
@@ -293,6 +298,35 @@ ModalDialog RID_DLG_LICENSE
};
+ModalDialog RID_DLG_SHOW_LICENSE
+{
+ Text [ en-US ] = "Extension Software License Agreement";
+ Size = MAP_APPFONT( 300, 200 );
+ OutputSize = TRUE;
+ SVLook = TRUE;
+ Moveable = TRUE;
+ Closeable = TRUE;
+ Sizeable = TRUE;
+
+ MultiLineEdit ML_LICENSE
+ {
+ Pos = MAP_APPFONT( 5, 5 );
+ Size = MAP_APPFONT( 300 - 10, 200 - 15 - RSC_CD_PUSHBUTTON_HEIGHT );
+ Border = TRUE;
+ VScroll = TRUE;
+ ReadOnly = TRUE;
+ };
+
+ OKButton RID_EM_BTN_CLOSE
+ {
+ TabStop = TRUE;
+ DefButton = TRUE;
+ Text [ en-US ] = "Close";
+ Pos = MAP_APPFONT( (300-RSC_CD_PUSHBUTTON_WIDTH)/2, 200 - 5 - RSC_CD_PUSHBUTTON_HEIGHT );
+ Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
+ };
+};
+
WarningBox RID_WARNINGBOX_INSTALL_EXTENSION {
diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.cxx b/desktop/source/deployment/gui/dp_gui_dialog2.cxx
index 44d1e30f74b6..8fd0f4c754d0 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_dialog2.cxx
+++ b/desktop/source/deployment/gui/dp_gui_dialog2.cxx
@@ -39,8 +39,10 @@
#include "dp_gui_theextmgr.hxx"
#include "dp_gui_extensioncmdqueue.hxx"
#include "dp_misc.h"
+#include "dp_ucb.h"
#include "dp_update.hxx"
#include "dp_identifier.hxx"
+#include "dp_descriptioninfoset.hxx"
#include "vcl/ctrl.hxx"
#include "vcl/menu.hxx"
@@ -118,7 +120,8 @@ enum MENU_COMMAND
CMD_REMOVE = 1,
CMD_ENABLE,
CMD_DISABLE,
- CMD_UPDATE
+ CMD_UPDATE,
+ CMD_SHOW_LICENSE
};
class ExtBoxWithBtns_Impl : public ExtensionBox_Impl
@@ -224,13 +227,10 @@ const Size ExtBoxWithBtns_Impl::GetMinOutputSizePixel() const
// -----------------------------------------------------------------------
void ExtBoxWithBtns_Impl::RecalcAll()
{
- ExtensionBox_Impl::RecalcAll();
-
const sal_Int32 nActive = getSelIndex();
if ( nActive != EXTENSION_LISTBOX_ENTRY_NOTFOUND )
{
- SetButtonPos( GetEntryRect( nActive ) );
SetButtonStatus( GetEntryData( nActive) );
}
else
@@ -239,6 +239,11 @@ void ExtBoxWithBtns_Impl::RecalcAll()
m_pEnableBtn->Hide();
m_pRemoveBtn->Hide();
}
+
+ ExtensionBox_Impl::RecalcAll();
+
+ if ( nActive != EXTENSION_LISTBOX_ENTRY_NOTFOUND )
+ SetButtonPos( GetEntryRect( nActive ) );
}
@@ -363,28 +368,29 @@ bool ExtBoxWithBtns_Impl::HandleTabKey( bool bReverse )
// -----------------------------------------------------------------------
MENU_COMMAND ExtBoxWithBtns_Impl::ShowPopupMenu( const Point & rPos, const long nPos )
{
- if ( ( nPos >= 0 ) && ( nPos < (long) getItemCount() ) )
- {
- if ( ! GetEntryData( nPos )->m_bLocked )
- {
- PopupMenu aPopup;
-
- aPopup.InsertItem( CMD_UPDATE, DialogHelper::getResourceString( RID_CTX_ITEM_CHECK_UPDATE ) );
+ if ( nPos >= (long) getItemCount() )
+ return CMD_NONE;
- if ( GetEntryData( nPos )->m_bUser )
- {
- if ( GetEntryData( nPos )->m_eState == REGISTERED )
- aPopup.InsertItem( CMD_DISABLE, DialogHelper::getResourceString( RID_CTX_ITEM_DISABLE ) );
- else if ( GetEntryData( nPos )->m_eState != NOT_AVAILABLE )
- aPopup.InsertItem( CMD_ENABLE, DialogHelper::getResourceString( RID_CTX_ITEM_ENABLE ) );
- }
+ PopupMenu aPopup;
- aPopup.InsertItem( CMD_REMOVE, DialogHelper::getResourceString( RID_CTX_ITEM_REMOVE ) );
+ aPopup.InsertItem( CMD_UPDATE, DialogHelper::getResourceString( RID_CTX_ITEM_CHECK_UPDATE ) );
- return (MENU_COMMAND) aPopup.Execute( this, rPos );
+ if ( ! GetEntryData( nPos )->m_bLocked )
+ {
+ if ( GetEntryData( nPos )->m_bUser )
+ {
+ if ( GetEntryData( nPos )->m_eState == REGISTERED )
+ aPopup.InsertItem( CMD_DISABLE, DialogHelper::getResourceString( RID_CTX_ITEM_DISABLE ) );
+ else if ( GetEntryData( nPos )->m_eState != NOT_AVAILABLE )
+ aPopup.InsertItem( CMD_ENABLE, DialogHelper::getResourceString( RID_CTX_ITEM_ENABLE ) );
}
+ aPopup.InsertItem( CMD_REMOVE, DialogHelper::getResourceString( RID_CTX_ITEM_REMOVE ) );
}
- return CMD_NONE;
+
+ if ( GetEntryData( nPos )->m_sLicenseText.Len() )
+ aPopup.InsertItem( CMD_SHOW_LICENSE, DialogHelper::getResourceString( RID_STR_SHOW_LICENSE_CMD ) );
+
+ return (MENU_COMMAND) aPopup.Execute( this, rPos );
}
//------------------------------------------------------------------------------
@@ -409,6 +415,12 @@ void ExtBoxWithBtns_Impl::MouseButtonDown( const MouseEvent& rMEvt )
break;
case CMD_REMOVE: m_pParent->removePackage( GetEntryData( nPos )->m_xPackage );
break;
+ case CMD_SHOW_LICENSE:
+ {
+ ShowLicenseDialog aLicenseDlg( m_pParent, GetEntryData( nPos )->m_xPackage );
+ aLicenseDlg.Execute();
+ break;
+ }
}
}
else if ( rMEvt.IsLeft() )
@@ -1742,6 +1754,42 @@ void UpdateRequiredDialog::disableAllEntries()
m_aCloseBtn.SetText( m_sCloseText );
}
+//------------------------------------------------------------------------------
+// ShowLicenseDialog
+//------------------------------------------------------------------------------
+ShowLicenseDialog::ShowLicenseDialog( Window * pParent,
+ const uno::Reference< deployment::XPackage > &xPackage ) :
+ ModalDialog( pParent, DialogHelper::getResId( RID_DLG_SHOW_LICENSE ) ),
+ m_aLicenseText( this, DialogHelper::getResId( ML_LICENSE ) ),
+ m_aCloseBtn( this, DialogHelper::getResId( RID_EM_BTN_CLOSE ) )
+{
+ FreeResource();
+
+ OUString aText = xPackage->getLicenseText();
+ m_aLicenseText.SetText( aText );
+}
+
+//------------------------------------------------------------------------------
+ShowLicenseDialog::~ShowLicenseDialog()
+{}
+
+//------------------------------------------------------------------------------
+void ShowLicenseDialog::Resize()
+{
+ Size aTotalSize( GetOutputSizePixel() );
+ Size aTextSize( aTotalSize.Width() - RSC_SP_DLG_INNERBORDER_LEFT - RSC_SP_DLG_INNERBORDER_RIGHT,
+ aTotalSize.Height() - RSC_SP_DLG_INNERBORDER_TOP - 2*RSC_SP_DLG_INNERBORDER_BOTTOM
+ - m_aCloseBtn.GetSizePixel().Height() );
+
+ m_aLicenseText.SetPosSizePixel( Point( RSC_SP_DLG_INNERBORDER_LEFT, RSC_SP_DLG_INNERBORDER_TOP ),
+ aTextSize );
+
+ Point aBtnPos( (aTotalSize.Width() - m_aCloseBtn.GetSizePixel().Width())/2,
+ aTotalSize.Height() - RSC_SP_DLG_INNERBORDER_BOTTOM
+ - m_aCloseBtn.GetSizePixel().Height() );
+ m_aCloseBtn.SetPosPixel( aBtnPos );
+}
+
//=================================================================================
// UpdateRequiredDialogService
//=================================================================================
diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.hxx b/desktop/source/deployment/gui/dp_gui_dialog2.hxx
index f0a85cce98c0..755c3aadcbdf 100644
--- a/desktop/source/deployment/gui/dp_gui_dialog2.hxx
+++ b/desktop/source/deployment/gui/dp_gui_dialog2.hxx
@@ -35,6 +35,7 @@
#include "svtools/fixedhyper.hxx"
#include "svtools/prgsbar.hxx"
+#include "svtools/svmedit.hxx"
#include "osl/conditn.hxx"
#include "osl/mutex.hxx"
@@ -246,6 +247,20 @@ public:
};
//==============================================================================
+class ShowLicenseDialog : public ModalDialog
+{
+ MultiLineEdit m_aLicenseText;
+ OKButton m_aCloseBtn;
+
+public:
+ ShowLicenseDialog( Window * pParent,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::deployment::XPackage > &xPackage );
+ virtual ~ShowLicenseDialog();
+
+ virtual void Resize();
+};
+
+//==============================================================================
class UpdateRequiredDialogService : public ::cppu::WeakImplHelper1< ::com::sun::star::ui::dialogs::XExecutableDialog >
{
::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > const m_xComponentContext;
diff --git a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
index 24b47aa223e3..54495de410dc 100644
--- a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
+++ b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
@@ -71,29 +71,35 @@ Entry_Impl::Entry_Impl( const uno::Reference< deployment::XPackage > &xPackage,
m_pPublisher( NULL ),
m_xPackage( xPackage )
{
- m_sTitle = xPackage->getDisplayName();
- m_sVersion = xPackage->getVersion();
- m_sDescription = xPackage->getDescription();
-
- beans::StringPair aInfo( m_xPackage->getPublisherInfo() );
- m_sPublisher = aInfo.First;
- m_sPublisherURL = aInfo.Second;
-
- // get the icons for the package if there are any
- uno::Reference< graphic::XGraphic > xGraphic = xPackage->getIcon( false );
- if ( xGraphic.is() )
- m_aIcon = Image( xGraphic );
-
- xGraphic = xPackage->getIcon( true );
- if ( xGraphic.is() )
- m_aIconHC = Image( xGraphic );
- else
- m_aIconHC = m_aIcon;
+ try
+ {
+ m_sTitle = xPackage->getDisplayName();
+ m_sVersion = xPackage->getVersion();
+ m_sDescription = xPackage->getDescription();
+ m_sLicenseText = xPackage->getLicenseText();
+
+ beans::StringPair aInfo( m_xPackage->getPublisherInfo() );
+ m_sPublisher = aInfo.First;
+ m_sPublisherURL = aInfo.Second;
+
+ // get the icons for the package if there are any
+ uno::Reference< graphic::XGraphic > xGraphic = xPackage->getIcon( false );
+ if ( xGraphic.is() )
+ m_aIcon = Image( xGraphic );
+
+ xGraphic = xPackage->getIcon( true );
+ if ( xGraphic.is() )
+ m_aIconHC = Image( xGraphic );
+ else
+ m_aIconHC = m_aIcon;
- if ( eState == AMBIGUOUS )
- m_sErrorText = DialogHelper::getResourceString( RID_STR_ERROR_UNKNOWN_STATUS );
- else if ( eState == NOT_REGISTERED )
- checkDependencies();
+ if ( eState == AMBIGUOUS )
+ m_sErrorText = DialogHelper::getResourceString( RID_STR_ERROR_UNKNOWN_STATUS );
+ else if ( eState == NOT_REGISTERED )
+ checkDependencies();
+ }
+ catch (deployment::ExtensionRemovedException &) {}
+ catch (uno::RuntimeException &) {}
}
//------------------------------------------------------------------------------
@@ -963,6 +969,11 @@ long ExtensionBox_Impl::addEntry( const uno::Reference< deployment::XPackage > &
bool bLocked = m_pManager->isReadOnly( xPackage );
TEntry_Impl pEntry( new Entry_Impl( xPackage, eState, bLocked ) );
+
+ // Don't add empty entries
+ if ( ! pEntry->m_sTitle.Len() )
+ return 0;
+
xPackage->addEventListener( uno::Reference< lang::XEventListener > ( m_xRemoveListener, uno::UNO_QUERY ) );
::osl::ClearableMutexGuard guard(m_entriesMutex);
diff --git a/desktop/source/deployment/gui/dp_gui_extlistbox.hxx b/desktop/source/deployment/gui/dp_gui_extlistbox.hxx
index 762f50296690..cbf9e27a8da1 100644
--- a/desktop/source/deployment/gui/dp_gui_extlistbox.hxx
+++ b/desktop/source/deployment/gui/dp_gui_extlistbox.hxx
@@ -81,6 +81,7 @@ struct Entry_Impl
String m_sPublisher;
String m_sPublisherURL;
String m_sErrorText;
+ String m_sLicenseText;
Image m_aIcon;
Image m_aIconHC;
svt::FixedHyperlink *m_pPublisher;
diff --git a/desktop/source/deployment/gui/dp_gui_updatedata.hxx b/desktop/source/deployment/gui/dp_gui_updatedata.hxx
index 76eb8af31e8e..1112de0b34e8 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updatedata.hxx
+++ b/desktop/source/deployment/gui/dp_gui_updatedata.hxx
@@ -28,6 +28,7 @@
#define INCLUDED_DP_GUI_UPDATEDATA_HXX
#include "sal/config.h"
+#include "tools/solar.h"
#include "rtl/ustring.hxx"
#include "com/sun/star/uno/Reference.hxx"
@@ -80,6 +81,10 @@ struct UpdateData
//are to be ignored.
::com::sun::star::uno::Reference< ::com::sun::star::deployment::XPackage >
aUpdateSource;
+
+ // ID to find this entry in the update listbox
+ USHORT m_nID;
+ bool m_bIgnored;
};
}
diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx
index b27cd8da81fe..44f335dd509d 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx
+++ b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx
@@ -50,7 +50,9 @@
#include "com/sun/star/beans/NamedValue.hpp"
#include "com/sun/star/beans/Optional.hpp"
#include "com/sun/star/beans/PropertyValue.hpp"
+#include "com/sun/star/beans/XPropertySet.hpp"
#include "com/sun/star/container/XNameAccess.hpp"
+#include "com/sun/star/container/XNameContainer.hpp"
#include "com/sun/star/deployment/DeploymentException.hpp"
#include "com/sun/star/deployment/UpdateInformationProvider.hpp"
#include "com/sun/star/deployment/XPackage.hpp"
@@ -62,6 +64,7 @@
#include "com/sun/star/frame/XDispatchProvider.hpp"
#include "com/sun/star/lang/IllegalArgumentException.hpp"
#include "com/sun/star/lang/XMultiComponentFactory.hpp"
+#include "com/sun/star/lang/XSingleServiceFactory.hpp"
#include "com/sun/star/system/SystemShellExecuteFlags.hpp"
#include "com/sun/star/system/XSystemShellExecute.hpp"
#include "com/sun/star/task/XAbortChannel.hpp"
@@ -76,6 +79,7 @@
#include "com/sun/star/uno/Sequence.hxx"
#include "com/sun/star/uno/XInterface.hpp"
#include "com/sun/star/util/URL.hpp"
+#include "com/sun/star/util/XChangesBatch.hpp"
#include "com/sun/star/util/XURLTransformer.hpp"
#include "com/sun/star/xml/dom/XElement.hpp"
#include "com/sun/star/xml/dom/XNode.hpp"
@@ -129,16 +133,23 @@ namespace com { namespace sun { namespace star { namespace uno {
class XComponentContext;
} } } }
-namespace css = ::com::sun::star;
-
+using namespace ::com::sun::star;
using dp_gui::UpdateDialog;
namespace {
static sal_Unicode const LF = 0x000A;
static sal_Unicode const CR = 0x000D;
+static const USHORT CMD_ENABLE_UPDATE = 1;
+static const USHORT CMD_IGNORE_UPDATE = 2;
+static const USHORT CMD_IGNORE_ALL_UPDATES = 3;
+
+#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) )
+
+#define IGNORED_UPDATES OUSTR("/org.openoffice.Office.ExtensionManager/ExtensionUpdateData/IgnoredUpdates")
+#define PROPERTY_VERSION OUSTR("Version")
-enum Kind { ENABLED_UPDATE, DISABLED_UPDATE, GENERAL_ERROR, SPECIFIC_ERROR };
+enum Kind { ENABLED_UPDATE, DISABLED_UPDATE, SPECIFIC_ERROR };
rtl::OUString confineToParagraph(rtl::OUString const & text) {
// Confine arbitrary text to a single paragraph in a dp_gui::AutoScrollEdit.
@@ -151,86 +162,64 @@ rtl::OUString confineToParagraph(rtl::OUString const & text) {
struct UpdateDialog::DisabledUpdate {
rtl::OUString name;
- css::uno::Sequence< rtl::OUString > unsatisfiedDependencies;
+ uno::Sequence< rtl::OUString > unsatisfiedDependencies;
// We also want to show release notes and publisher for disabled updates
::com::sun::star::uno::Reference< ::com::sun::star::xml::dom::XNode > aUpdateInfo;
+ USHORT m_nID;
};
struct UpdateDialog::SpecificError {
rtl::OUString name;
rtl::OUString message;
+ USHORT m_nID;
};
-union UpdateDialog::IndexUnion{
- std::vector< dp_gui::UpdateData >::size_type enabledUpdate;
- std::vector< UpdateDialog::DisabledUpdate >::size_type disabledUpdate;
- std::vector< rtl::OUString >::size_type generalError;
- std::vector< UpdateDialog::SpecificError >::size_type specificError;
-};
-
-struct UpdateDialog::Index {
- static std::auto_ptr< UpdateDialog::Index const > newEnabledUpdate(
- std::vector< dp_gui::UpdateData >::size_type n);
-
- static std::auto_ptr< UpdateDialog::Index const > newDisabledUpdate(
- std::vector< UpdateDialog::DisabledUpdate >::size_type n);
+//------------------------------------------------------------------------------
+struct UpdateDialog::IgnoredUpdate {
+ rtl::OUString sExtensionID;
+ rtl::OUString sVersion;
+ bool bRemoved;
- static std::auto_ptr< UpdateDialog::Index const > newGeneralError(
- std::vector< rtl::OUString >::size_type n);
-
- static std::auto_ptr< UpdateDialog::Index const > newSpecificError(
- std::vector< UpdateDialog::SpecificError >::size_type n);
-
- Kind kind;
- IndexUnion index;
-
-private:
- explicit Index(Kind theKind);
+ IgnoredUpdate( const rtl::OUString &rExtensionID, const rtl::OUString &rVersion );
};
-std::auto_ptr< UpdateDialog::Index const >
-UpdateDialog::Index::newEnabledUpdate(
- std::vector< dp_gui::UpdateData >::size_type n)
-{
- UpdateDialog::Index * p = new UpdateDialog::Index(ENABLED_UPDATE);
- p->index.enabledUpdate = n;
- return std::auto_ptr< UpdateDialog::Index const >(p);
-}
-
-std::auto_ptr< UpdateDialog::Index const >
-UpdateDialog::Index::newDisabledUpdate(
- std::vector< UpdateDialog::DisabledUpdate >::size_type n)
-{
- UpdateDialog::Index * p = new UpdateDialog::Index(DISABLED_UPDATE);
- p->index.disabledUpdate = n;
- return std::auto_ptr< UpdateDialog::Index const >(p);
-}
+//------------------------------------------------------------------------------
+UpdateDialog::IgnoredUpdate::IgnoredUpdate( const rtl::OUString &rExtensionID, const rtl::OUString &rVersion ):
+ sExtensionID( rExtensionID ),
+ sVersion( rVersion ),
+ bRemoved( false )
+{}
-std::auto_ptr< UpdateDialog::Index const > UpdateDialog::Index::newGeneralError(
- std::vector< rtl::OUString >::size_type n)
+//------------------------------------------------------------------------------
+struct UpdateDialog::Index
{
- UpdateDialog::Index * p = new UpdateDialog::Index(GENERAL_ERROR);
- p->index.generalError = n;
- return std::auto_ptr< UpdateDialog::Index const >(p);
-}
+ Kind m_eKind;
+ bool m_bIgnored;
+ USHORT m_nID;
+ USHORT m_nIndex;
+ rtl::OUString m_aName;
-std::auto_ptr< UpdateDialog::Index const >
-UpdateDialog::Index::newSpecificError(
- std::vector< UpdateDialog::SpecificError >::size_type n)
-{
- UpdateDialog::Index * p = new UpdateDialog::Index(SPECIFIC_ERROR);
- p->index.specificError = n;
- return std::auto_ptr< UpdateDialog::Index const >(p);
-}
+ Index( Kind theKind, USHORT nID, USHORT nIndex, const rtl::OUString &rName );
+};
-UpdateDialog::Index::Index(Kind theKind): kind(theKind) {}
+//------------------------------------------------------------------------------
+UpdateDialog::Index::Index( Kind theKind, USHORT nID, USHORT nIndex, const rtl::OUString &rName ):
+ m_eKind( theKind ),
+ m_bIgnored( false ),
+ m_nID( nID ),
+ m_nIndex( nIndex ),
+ m_aName( rName )
+{}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
class UpdateDialog::Thread: public dp_gui::Thread {
public:
Thread(
- css::uno::Reference< css::uno::XComponentContext > const & context,
+ uno::Reference< uno::XComponentContext > const & context,
UpdateDialog & dialog,
- const std::vector< css::uno::Reference< css::deployment::XPackage > > & vExtensionList);
+ const std::vector< uno::Reference< deployment::XPackage > > & vExtensionList);
void stop();
@@ -240,16 +229,16 @@ private:
struct Entry {
explicit Entry(
- css::uno::Reference< css::deployment::XPackage > const & thePackage,
+ uno::Reference< deployment::XPackage > const & thePackage,
rtl::OUString const & theVersion);
- css::uno::Reference< css::deployment::XPackage > package;
+ uno::Reference< deployment::XPackage > package;
rtl::OUString version;
//Indicates that the extension provides its own update URLs.
//If this is true, then we must not use the default update
//URL to find the update information.
bool bProvidesOwnUpdate;
- css::uno::Reference< css::xml::dom::XNode > info;
+ uno::Reference< xml::dom::XNode > info;
UpdateDialog::DisabledUpdate disableUpdate;
dp_gui::UpdateData updateData;
};
@@ -261,20 +250,20 @@ private:
virtual void execute();
#if 0
- void handleGeneralError(css::uno::Any const & exception) const;
+ void handleGeneralError(uno::Any const & exception) const;
#endif
void handleSpecificError(
- css::uno::Reference< css::deployment::XPackage > const & package,
- css::uno::Any const & exception) const;
+ uno::Reference< deployment::XPackage > const & package,
+ uno::Any const & exception) const;
- css::uno::Sequence< css::uno::Reference< css::xml::dom::XElement > >
+ uno::Sequence< uno::Reference< xml::dom::XElement > >
getUpdateInformation(
- css::uno::Reference< css::deployment::XPackage > const & package,
- css::uno::Sequence< rtl::OUString > const & urls,
+ uno::Reference< deployment::XPackage > const & package,
+ uno::Sequence< rtl::OUString > const & urls,
rtl::OUString const & identifier) const;
void getOwnUpdateInformation(
- css::uno::Reference< css::deployment::XPackage > const & package,
+ uno::Reference< deployment::XPackage > const & package,
Map * map);
::rtl::OUString getUpdateDisplayString(
@@ -286,40 +275,40 @@ private:
dp_gui::UpdateData & out_data) const;
bool update(
- UpdateDialog::DisabledUpdate const & du,
- dp_gui::UpdateData const & data) const;
+ UpdateDialog::DisabledUpdate & du,
+ dp_gui::UpdateData & data) const;
- css::uno::Reference< css::uno::XComponentContext > m_context;
+ uno::Reference< uno::XComponentContext > m_context;
UpdateDialog & m_dialog;
- std::vector< css::uno::Reference< css::deployment::XPackage > > m_vExtensionList;
- css::uno::Reference< css::deployment::XUpdateInformationProvider > m_updateInformation;
- css::uno::Reference< css::task::XInteractionHandler > m_xInteractionHdl;
+ std::vector< uno::Reference< deployment::XPackage > > m_vExtensionList;
+ uno::Reference< deployment::XUpdateInformationProvider > m_updateInformation;
+ uno::Reference< task::XInteractionHandler > m_xInteractionHdl;
// guarded by Application::GetSolarMutex():
- css::uno::Reference< css::task::XAbortChannel > m_abort;
+ uno::Reference< task::XAbortChannel > m_abort;
bool m_stop;
};
UpdateDialog::Thread::Thread(
- css::uno::Reference< css::uno::XComponentContext > const & context,
+ uno::Reference< uno::XComponentContext > const & context,
UpdateDialog & dialog,
- const std::vector< css::uno::Reference< css::deployment::XPackage > > &vExtensionList):
+ const std::vector< uno::Reference< deployment::XPackage > > &vExtensionList):
m_context(context),
m_dialog(dialog),
m_vExtensionList(vExtensionList),
m_updateInformation(
- css::deployment::UpdateInformationProvider::create(context)),
+ deployment::UpdateInformationProvider::create(context)),
m_stop(false)
{
if( m_context.is() )
{
- css::uno::Reference< css::lang::XMultiComponentFactory > xServiceManager( m_context->getServiceManager() );
+ uno::Reference< lang::XMultiComponentFactory > xServiceManager( m_context->getServiceManager() );
if( xServiceManager.is() )
{
- m_xInteractionHdl = css::uno::Reference< css::task::XInteractionHandler > (
+ m_xInteractionHdl = uno::Reference< task::XInteractionHandler > (
xServiceManager->createInstanceWithContext( OUSTR( "com.sun.star.task.InteractionHandler" ), m_context),
- css::uno::UNO_QUERY );
+ uno::UNO_QUERY );
if ( m_xInteractionHdl.is() )
m_updateInformation->setInteractionHandler( m_xInteractionHdl );
}
@@ -327,7 +316,7 @@ UpdateDialog::Thread::Thread(
}
void UpdateDialog::Thread::stop() {
- css::uno::Reference< css::task::XAbortChannel > abort;
+ uno::Reference< task::XAbortChannel > abort;
{
vos::OGuard g(Application::GetSolarMutex());
abort = m_abort;
@@ -340,7 +329,7 @@ void UpdateDialog::Thread::stop() {
}
UpdateDialog::Thread::Entry::Entry(
- css::uno::Reference< css::deployment::XPackage > const & thePackage,
+ uno::Reference< deployment::XPackage > const & thePackage,
rtl::OUString const & theVersion):
package(thePackage),
@@ -353,7 +342,7 @@ UpdateDialog::Thread::Entry::Entry(
UpdateDialog::Thread::~Thread()
{
if ( m_xInteractionHdl.is() )
- m_updateInformation->setInteractionHandler( css::uno::Reference< css::task::XInteractionHandler > () );
+ m_updateInformation->setInteractionHandler( uno::Reference< task::XInteractionHandler > () );
}
void UpdateDialog::Thread::execute()
@@ -364,16 +353,16 @@ void UpdateDialog::Thread::execute()
return;
}
}
- css::uno::Reference<css::deployment::XExtensionManager> extMgr =
- css::deployment::ExtensionManager::get(m_context);
+ uno::Reference<deployment::XExtensionManager> extMgr =
+ deployment::ExtensionManager::get(m_context);
- std::vector<std::pair<css::uno::Reference<css::deployment::XPackage>, css::uno::Any > > errors;
+ std::vector<std::pair<uno::Reference<deployment::XPackage>, uno::Any > > errors;
dp_misc::UpdateInfoMap updateInfoMap = dp_misc::getOnlineUpdateInfos(
m_context, extMgr, m_updateInformation, &m_vExtensionList, errors);
- typedef std::vector<std::pair<css::uno::Reference<css::deployment::XPackage>,
- css::uno::Any> >::const_iterator ITERROR;
+ typedef std::vector<std::pair<uno::Reference<deployment::XPackage>,
+ uno::Any> >::const_iterator ITERROR;
for (ITERROR ite = errors.begin(); ite != errors.end(); ite ++)
handleSpecificError(ite->first, ite->second);
@@ -392,12 +381,12 @@ void UpdateDialog::Thread::execute()
rtl::OUString sVersionUser;
rtl::OUString sVersionShared;
rtl::OUString sVersionBundled;
- css::uno::Sequence< css::uno::Reference< css::deployment::XPackage> > extensions;
+ uno::Sequence< uno::Reference< deployment::XPackage> > extensions;
try {
extensions = extMgr->getExtensionsWithSameIdentifier(
dp_misc::getIdentifier(info.extension), info.extension->getName(),
- css::uno::Reference<css::ucb::XCommandEnvironment>());
- } catch (css::lang::IllegalArgumentException& ) {
+ uno::Reference<ucb::XCommandEnvironment>());
+ } catch (lang::IllegalArgumentException& ) {
OSL_ASSERT(0);
}
OSL_ASSERT(extensions.getLength() == 3);
@@ -415,7 +404,7 @@ void UpdateDialog::Thread::execute()
dp_misc::UPDATE_SOURCE sourceShared = dp_misc::isUpdateSharedExtension(
bSharedReadOnly, sVersionShared, sVersionBundled, sOnlineVersion);
- css::uno::Reference<css::deployment::XPackage> updateSource;
+ uno::Reference<deployment::XPackage> updateSource;
if (sourceUser != dp_misc::UPDATE_SOURCE_NONE)
{
if (sourceUser == dp_misc::UPDATE_SOURCE_SHARED)
@@ -452,11 +441,11 @@ void UpdateDialog::Thread::execute()
}
}
#if 0
-void UpdateDialog::Thread::handleGeneralError(css::uno::Any const & exception)
+void UpdateDialog::Thread::handleGeneralError(uno::Any const & exception)
const
{
rtl::OUString message;
- css::uno::Exception e;
+ uno::Exception e;
if (exception >>= e) {
message = e.Message;
}
@@ -468,13 +457,13 @@ void UpdateDialog::Thread::handleGeneralError(css::uno::Any const & exception)
#endif
//Parameter package can be null
void UpdateDialog::Thread::handleSpecificError(
- css::uno::Reference< css::deployment::XPackage > const & package,
- css::uno::Any const & exception) const
+ uno::Reference< deployment::XPackage > const & package,
+ uno::Any const & exception) const
{
UpdateDialog::SpecificError data;
if (package.is())
data.name = package->getDisplayName();
- css::uno::Exception e;
+ uno::Exception e;
if (exception >>= e) {
data.message = e.Message;
}
@@ -516,7 +505,7 @@ void UpdateDialog::Thread::handleSpecificError(
/** out_data will only be filled if all dependencies are ok.
*/
void UpdateDialog::Thread::prepareUpdateData(
- css::uno::Reference< css::xml::dom::XNode > const & updateInfo,
+ uno::Reference< xml::dom::XNode > const & updateInfo,
UpdateDialog::DisabledUpdate & out_du,
dp_gui::UpdateData & out_data) const
{
@@ -524,7 +513,7 @@ void UpdateDialog::Thread::prepareUpdateData(
return;
dp_misc::DescriptionInfoset infoset(m_context, updateInfo);
OSL_ASSERT(infoset.getVersion().getLength() != 0);
- css::uno::Sequence< css::uno::Reference< css::xml::dom::XElement > > ds(
+ uno::Sequence< uno::Reference< xml::dom::XElement > > ds(
dp_misc::Dependencies::check(infoset));
out_du.aUpdateInfo = updateInfo;
@@ -547,8 +536,8 @@ void UpdateDialog::Thread::prepareUpdateData(
}
bool UpdateDialog::Thread::update(
- UpdateDialog::DisabledUpdate const & du,
- dp_gui::UpdateData const & data) const
+ UpdateDialog::DisabledUpdate & du,
+ dp_gui::UpdateData & data) const
{
bool ret = false;
if (du.unsatisfiedDependencies.getLength() == 0)
@@ -570,9 +559,9 @@ bool UpdateDialog::Thread::update(
// UpdateDialog ----------------------------------------------------------
UpdateDialog::UpdateDialog(
- css::uno::Reference< css::uno::XComponentContext > const & context,
+ uno::Reference< uno::XComponentContext > const & context,
Window * parent,
- const std::vector<css::uno::Reference< css::deployment::XPackage > > &vExtensionList,
+ const std::vector<uno::Reference< deployment::XPackage > > &vExtensionList,
std::vector< dp_gui::UpdateData > * updateData):
ModalDialog(parent,DpGuiResId(RID_DLG_UPDATE)),
m_context(context),
@@ -592,7 +581,7 @@ UpdateDialog::UpdateDialog(
m_line(this, DpGuiResId(RID_DLG_UPDATE_LINE)),
m_help(this, DpGuiResId(RID_DLG_UPDATE_HELP)),
m_ok(this, DpGuiResId(RID_DLG_UPDATE_OK)),
- m_cancel(this, DpGuiResId(RID_DLG_UPDATE_CANCEL)),
+ m_close(this, DpGuiResId(RID_DLG_UPDATE_CLOSE)),
m_error(String(DpGuiResId(RID_DLG_UPDATE_ERROR))),
m_none(String(DpGuiResId(RID_DLG_UPDATE_NONE))),
m_noInstallable(String(DpGuiResId(RID_DLG_UPDATE_NOINSTALLABLE))),
@@ -604,71 +593,84 @@ UpdateDialog::UpdateDialog(
m_noDependencyCurVer(String(DpGuiResId(RID_DLG_UPDATE_NODEPENDENCY_CUR_VER))),
m_browserbased(String(DpGuiResId(RID_DLG_UPDATE_BROWSERBASED))),
m_version(String(DpGuiResId(RID_DLG_UPDATE_VERSION))),
+ m_ignoredUpdate(String(DpGuiResId(RID_DLG_UPDATE_IGNORED_UPDATE))),
m_updateData(*updateData),
m_thread(
new UpdateDialog::Thread(
context, *this, vExtensionList)),
m_nFirstLineDelta(0),
- m_nOneLineMissing(0)
+ m_nOneLineMissing(0),
+ m_nLastID(1),
+ m_bModified( false )
// TODO: check!
// ,
// m_extensionManagerDialog(extensionManagerDialog)
{
OSL_ASSERT(updateData != NULL);
- m_xExtensionManager = css::deployment::ExtensionManager::get( context );
+ m_xExtensionManager = deployment::ExtensionManager::get( context );
- css::uno::Reference< css::awt::XToolkit > toolkit;
+ uno::Reference< awt::XToolkit > toolkit;
try {
- toolkit = css::uno::Reference< css::awt::XToolkit >(
- (css::uno::Reference< css::lang::XMultiComponentFactory >(
+ toolkit = uno::Reference< awt::XToolkit >(
+ (uno::Reference< lang::XMultiComponentFactory >(
m_context->getServiceManager(),
- css::uno::UNO_QUERY_THROW)->
+ uno::UNO_QUERY_THROW)->
createInstanceWithContext(
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.Toolkit")),
m_context)),
- css::uno::UNO_QUERY_THROW);
- } catch (css::uno::RuntimeException &) {
+ uno::UNO_QUERY_THROW);
+ } catch (uno::RuntimeException &) {
throw;
- } catch (css::uno::Exception & e) {
- throw css::uno::RuntimeException(e.Message, e.Context);
+ } catch (uno::Exception & e) {
+ throw uno::RuntimeException(e.Message, e.Context);
}
Control c(this, DpGuiResId(RID_DLG_UPDATE_THROBBER));
Point pos(c.GetPosPixel());
Size size(c.GetSizePixel());
try {
- m_throbber = css::uno::Reference< css::awt::XThrobber >(
+ m_throbber = uno::Reference< awt::XThrobber >(
toolkit->createWindow(
- css::awt::WindowDescriptor(
- css::awt::WindowClass_SIMPLE,
+ awt::WindowDescriptor(
+ awt::WindowClass_SIMPLE,
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Throbber")),
GetComponentInterface(), 0,
- css::awt::Rectangle(
+ awt::Rectangle(
pos.X(), pos.Y(), size.Width(), size.Height()),
- css::awt::WindowAttribute::SHOW)),
- css::uno::UNO_QUERY_THROW);
- } catch (css::lang::IllegalArgumentException & e) {
- throw css::uno::RuntimeException(e.Message, e.Context);
+ awt::WindowAttribute::SHOW)),
+ uno::UNO_QUERY_THROW);
+ } catch (lang::IllegalArgumentException & e) {
+ throw uno::RuntimeException(e.Message, e.Context);
}
m_updates.SetSelectHdl(LINK(this, UpdateDialog, selectionHandler));
m_all.SetToggleHdl(LINK(this, UpdateDialog, allHandler));
m_ok.SetClickHdl(LINK(this, UpdateDialog, okHandler));
- m_cancel.SetClickHdl(LINK(this, UpdateDialog, cancelHandler));
+ m_close.SetClickHdl(LINK(this, UpdateDialog, closeHandler));
if ( ! dp_misc::office_is_running())
m_help.Disable();
FreeResource();
initDescription();
+ getIgnoredUpdates();
}
-UpdateDialog::~UpdateDialog() {
- for (USHORT i = 0; i < m_updates.getItemCount(); ++i) {
- delete static_cast< UpdateDialog::Index const * >(
- m_updates.GetEntryData(i));
+//------------------------------------------------------------------------------
+UpdateDialog::~UpdateDialog()
+{
+ storeIgnoredUpdates();
+
+ for ( std::vector< UpdateDialog::Index* >::iterator i( m_ListboxEntries.begin() ); i != m_ListboxEntries.end(); ++i )
+ {
+ delete (*i);
+ }
+ for ( std::vector< UpdateDialog::IgnoredUpdate* >::iterator i( m_ignoredUpdates.begin() ); i != m_ignoredUpdates.end(); ++i )
+ {
+ delete (*i);
}
}
+//------------------------------------------------------------------------------
BOOL UpdateDialog::Close() {
m_thread->stop();
return ModalDialog::Close();
@@ -680,29 +682,45 @@ short UpdateDialog::Execute() {
return ModalDialog::Execute();
}
-UpdateDialog::CheckListBox::CheckListBox(
- UpdateDialog & dialog, ResId const & resource,
- Image const & normalStaticImage, Image const & highContrastStaticImage):
- SvxCheckListBox(
- &dialog, resource, normalStaticImage, highContrastStaticImage),
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+UpdateDialog::CheckListBox::CheckListBox( UpdateDialog & dialog, ResId const & resource,
+ Image const & normalStaticImage,
+ Image const & highContrastStaticImage ):
+ SvxCheckListBox( &dialog, resource, normalStaticImage, highContrastStaticImage ),
+ m_ignoreUpdate( String( DpGuiResId( RID_DLG_UPDATE_IGNORE ) ) ),
+ m_ignoreAllUpdates( String( DpGuiResId( RID_DLG_UPDATE_IGNORE_ALL ) ) ),
+ m_enableUpdate( String( DpGuiResId( RID_DLG_UPDATE_ENABLE ) ) ),
m_dialog(dialog)
{}
+//------------------------------------------------------------------------------
UpdateDialog::CheckListBox::~CheckListBox() {}
+//------------------------------------------------------------------------------
USHORT UpdateDialog::CheckListBox::getItemCount() const {
ULONG i = GetEntryCount();
OSL_ASSERT(i <= std::numeric_limits< USHORT >::max());
return sal::static_int_cast< USHORT >(i);
}
-void UpdateDialog::CheckListBox::MouseButtonDown(MouseEvent const & event) {
+//------------------------------------------------------------------------------
+void UpdateDialog::CheckListBox::MouseButtonDown( MouseEvent const & event )
+{
// When clicking on a selected entry in an SvxCheckListBox, the entry's
// checkbox is toggled on mouse button down:
- SvxCheckListBox::MouseButtonDown(event);
+ SvxCheckListBox::MouseButtonDown( event );
+
+ if ( event.IsRight() )
+ {
+ handlePopupMenu( event.GetPosPixel() );
+ }
+
m_dialog.enableOk();
}
+//------------------------------------------------------------------------------
void UpdateDialog::CheckListBox::MouseButtonUp(MouseEvent const & event) {
// When clicking on an entry's checkbox in an SvxCheckListBox, the entry's
// checkbox is toggled on mouse button up:
@@ -715,25 +733,82 @@ void UpdateDialog::CheckListBox::KeyInput(KeyEvent const & event) {
m_dialog.enableOk();
}
-void UpdateDialog::insertItem(
- rtl::OUString const & name, USHORT position,
- std::auto_ptr< UpdateDialog::Index const > index, SvLBoxButtonKind kind)
+//------------------------------------------------------------------------------
+void UpdateDialog::CheckListBox::handlePopupMenu( const Point &rPos )
{
- m_updates.InsertEntry(
- name, position,
- const_cast< void * >(static_cast< void const * >(index.release())),
- kind);
- //TODO #i72487#: UpdateDialog::Index potentially leaks as the exception
- // behavior of SvxCheckListBox::InsertEntry is unspecified
+ SvListEntry *pData = GetEntry( rPos );
+
+ if ( pData )
+ {
+ USHORT nEntryPos = GetSelectEntryPos();
+ UpdateDialog::Index * p = static_cast< UpdateDialog::Index * >( GetEntryData( nEntryPos ) );
+
+ if ( ( p->m_eKind == ENABLED_UPDATE ) || ( p->m_eKind == DISABLED_UPDATE ) )
+ {
+ PopupMenu aPopup;
+
+ if ( p->m_bIgnored )
+ aPopup.InsertItem( CMD_ENABLE_UPDATE, m_enableUpdate );
+ else
+ {
+ aPopup.InsertItem( CMD_IGNORE_UPDATE, m_ignoreUpdate );
+ aPopup.InsertItem( CMD_IGNORE_ALL_UPDATES, m_ignoreAllUpdates );
+ }
+
+ USHORT aCmd = aPopup.Execute( this, rPos );
+ if ( ( aCmd == CMD_IGNORE_UPDATE ) || ( aCmd == CMD_IGNORE_ALL_UPDATES ) )
+ {
+ p->m_bIgnored = true;
+ if ( p->m_eKind == ENABLED_UPDATE )
+ {
+ RemoveEntry( nEntryPos );
+ m_dialog.addAdditional( p, SvLBoxButtonKind_disabledCheckbox );
+ }
+ if ( aCmd == CMD_IGNORE_UPDATE )
+ m_dialog.setIgnoredUpdate( p, true, false );
+ else
+ m_dialog.setIgnoredUpdate( p, true, true );
+ // TODO: reselect entry to display new description!
+ }
+ else if ( aCmd == CMD_ENABLE_UPDATE )
+ {
+ p->m_bIgnored = false;
+ if ( p->m_eKind == ENABLED_UPDATE )
+ {
+ RemoveEntry( nEntryPos );
+ m_dialog.insertItem( p, SvLBoxButtonKind_enabledCheckbox );
+ }
+ m_dialog.setIgnoredUpdate( p, false, false );
+ }
+ }
+ }
}
-void UpdateDialog::addAdditional(
- rtl::OUString const & name, USHORT position,
- std::auto_ptr< UpdateDialog::Index const > index, SvLBoxButtonKind kind)
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+USHORT UpdateDialog::insertItem( UpdateDialog::Index *pEntry, SvLBoxButtonKind kind )
+{
+ m_updates.InsertEntry( pEntry->m_aName, LISTBOX_APPEND, static_cast< void * >( pEntry ), kind );
+
+ for ( USHORT i = m_updates.getItemCount(); i != 0 ; )
+ {
+ i -= 1;
+ UpdateDialog::Index const * p = static_cast< UpdateDialog::Index const * >( m_updates.GetEntryData( i ) );
+ if ( p == pEntry )
+ return i;
+ }
+ OSL_ASSERT(0);
+ return 0;
+}
+
+//------------------------------------------------------------------------------
+void UpdateDialog::addAdditional( UpdateDialog::Index * index, SvLBoxButtonKind kind )
{
m_all.Enable();
- if (m_all.IsChecked()) {
- insertItem(name, position, index, kind);
+ if (m_all.IsChecked())
+ {
+ insertItem( index, kind );
m_update.Enable();
m_updates.Enable();
m_description.Enable();
@@ -741,71 +816,81 @@ void UpdateDialog::addAdditional(
}
}
-void UpdateDialog::addEnabledUpdate(
- rtl::OUString const & name, dp_gui::UpdateData const & data)
+//------------------------------------------------------------------------------
+void UpdateDialog::addEnabledUpdate( rtl::OUString const & name,
+ dp_gui::UpdateData & data )
{
- std::vector< dp_gui::UpdateData >::size_type n = m_enabledUpdates.size();
- m_enabledUpdates.push_back(data);
- insertItem(
- name, sal::static_int_cast< USHORT >(n),
- UpdateDialog::Index::newEnabledUpdate(n),
- SvLBoxButtonKind_enabledCheckbox);
- // position overflow is rather harmless
- m_updates.CheckEntryPos(sal::static_int_cast< USHORT >(n));
- //TODO #i72487#: fragile computation; insertItem should instead return
- // pos
+ USHORT nIndex = sal::static_int_cast< USHORT >( m_enabledUpdates.size() );
+ UpdateDialog::Index *pEntry = new UpdateDialog::Index( ENABLED_UPDATE, m_nLastID, nIndex, name );
+
+ data.m_nID = m_nLastID;
+ m_nLastID += 1;
+
+ m_enabledUpdates.push_back( data );
+ m_ListboxEntries.push_back( pEntry );
+
+ if ( ! isIgnoredUpdate( pEntry ) )
+ {
+ USHORT nPos = insertItem( pEntry, SvLBoxButtonKind_enabledCheckbox );
+ m_updates.CheckEntryPos( nPos );
+ }
+ else
+ addAdditional( pEntry, SvLBoxButtonKind_disabledCheckbox );
+
m_update.Enable();
m_updates.Enable();
m_description.Enable();
m_descriptions.Enable();
}
-void UpdateDialog::addDisabledUpdate(UpdateDialog::DisabledUpdate const & data)
+//------------------------------------------------------------------------------
+void UpdateDialog::addDisabledUpdate( UpdateDialog::DisabledUpdate & data )
{
- std::vector< UpdateDialog::DisabledUpdate >::size_type n =
- m_disabledUpdates.size();
- m_disabledUpdates.push_back(data);
- addAdditional(
- data.name, sal::static_int_cast< USHORT >(m_enabledUpdates.size() + n),
- UpdateDialog::Index::newDisabledUpdate(n),
- SvLBoxButtonKind_disabledCheckbox);
- // position overflow is rather harmless
-}
-#if 0
-void UpdateDialog::addGeneralError(rtl::OUString const & message) {
- std::vector< rtl::OUString >::size_type n = m_generalErrors.size();
- m_generalErrors.push_back(message);
- addAdditional(
- m_error,
- sal::static_int_cast< USHORT >(
- m_enabledUpdates.size() + m_disabledUpdates.size() + n),
- UpdateDialog::Index::newGeneralError(n), SvLBoxButtonKind_staticImage);
- // position overflow is rather harmless
+ USHORT nIndex = sal::static_int_cast< USHORT >( m_disabledUpdates.size() );
+ UpdateDialog::Index *pEntry = new UpdateDialog::Index( DISABLED_UPDATE, m_nLastID, nIndex, data.name );
+
+ data.m_nID = m_nLastID;
+ m_nLastID += 1;
+
+ m_disabledUpdates.push_back( data );
+ m_ListboxEntries.push_back( pEntry );
+
+ isIgnoredUpdate( pEntry );
+ addAdditional( pEntry, SvLBoxButtonKind_disabledCheckbox );
}
-#endif
-void UpdateDialog::addSpecificError(UpdateDialog::SpecificError const & data) {
- std::vector< UpdateDialog::SpecificError >::size_type n =
- m_specificErrors.size();
- m_specificErrors.push_back(data);
- addAdditional(
- data.name, LISTBOX_APPEND, UpdateDialog::Index::newSpecificError(n),
- SvLBoxButtonKind_staticImage);
+
+//------------------------------------------------------------------------------
+void UpdateDialog::addSpecificError( UpdateDialog::SpecificError & data )
+{
+ USHORT nIndex = sal::static_int_cast< USHORT >( m_specificErrors.size() );
+ UpdateDialog::Index *pEntry = new UpdateDialog::Index( DISABLED_UPDATE, m_nLastID, nIndex, data.name );
+
+ data.m_nID = m_nLastID;
+ m_nLastID += 1;
+
+ m_specificErrors.push_back( data );
+ m_ListboxEntries.push_back( pEntry );
+
+ addAdditional( pEntry, SvLBoxButtonKind_staticImage);
}
void UpdateDialog::checkingDone() {
m_checking.Hide();
m_throbber->stop();
- css::uno::Reference< css::awt::XWindow >(
- m_throbber, css::uno::UNO_QUERY_THROW)->setVisible(false);
+ uno::Reference< awt::XWindow >(
+ m_throbber, uno::UNO_QUERY_THROW)->setVisible(false);
if (m_updates.getItemCount() == 0)
{
clearDescription();
m_description.Enable();
m_descriptions.Enable();
- showDescription(
- ( m_disabledUpdates.empty() && m_generalErrors.empty() && m_specificErrors.empty() )
- ? m_none : m_noInstallable, false );
+
+ if ( m_disabledUpdates.empty() && m_specificErrors.empty() && m_ignoredUpdates.empty() )
+ showDescription( m_none, false );
+ else
+ showDescription( m_noInstallable, false );
}
+
enableOk();
}
@@ -817,7 +902,7 @@ void UpdateDialog::enableOk() {
// *********************************************************************************
void UpdateDialog::createNotifyJob( bool bPrepareOnly,
- css::uno::Sequence< css::uno::Sequence< rtl::OUString > > &rItemList )
+ uno::Sequence< uno::Sequence< rtl::OUString > > &rItemList )
{
if ( !dp_misc::office_is_running() )
return;
@@ -825,51 +910,51 @@ void UpdateDialog::createNotifyJob( bool bPrepareOnly,
// notify update check job
try
{
- css::uno::Reference< css::lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
- css::uno::Reference< css::lang::XMultiServiceFactory > xConfigProvider(
+ uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+ uno::Reference< lang::XMultiServiceFactory > xConfigProvider(
xFactory->createInstance( OUSTR( "com.sun.star.configuration.ConfigurationProvider" )),
- css::uno::UNO_QUERY_THROW);
+ uno::UNO_QUERY_THROW);
- css::beans::PropertyValue aProperty;
+ beans::PropertyValue aProperty;
aProperty.Name = OUSTR( "nodepath" );
- aProperty.Value = css::uno::makeAny( OUSTR("org.openoffice.Office.Addons/AddonUI/OfficeHelp/UpdateCheckJob") );
+ aProperty.Value = uno::makeAny( OUSTR("org.openoffice.Office.Addons/AddonUI/OfficeHelp/UpdateCheckJob") );
- css::uno::Sequence< css::uno::Any > aArgumentList( 1 );
- aArgumentList[0] = css::uno::makeAny( aProperty );
+ uno::Sequence< uno::Any > aArgumentList( 1 );
+ aArgumentList[0] = uno::makeAny( aProperty );
- css::uno::Reference< css::container::XNameAccess > xNameAccess(
+ uno::Reference< container::XNameAccess > xNameAccess(
xConfigProvider->createInstanceWithArguments(
OUSTR("com.sun.star.configuration.ConfigurationAccess"), aArgumentList ),
- css::uno::UNO_QUERY_THROW );
+ uno::UNO_QUERY_THROW );
- css::util::URL aURL;
+ util::URL aURL;
xNameAccess->getByName(OUSTR("URL")) >>= aURL.Complete;
- css::uno::Reference < css::util::XURLTransformer > xTransformer( xFactory->createInstance( OUSTR( "com.sun.star.util.URLTransformer" ) ),
- css::uno::UNO_QUERY_THROW );
+ uno::Reference < util::XURLTransformer > xTransformer( xFactory->createInstance( OUSTR( "com.sun.star.util.URLTransformer" ) ),
+ uno::UNO_QUERY_THROW );
xTransformer->parseStrict(aURL);
- css::uno::Reference < css::frame::XDesktop > xDesktop( xFactory->createInstance( OUSTR( "com.sun.star.frame.Desktop" ) ),
- css::uno::UNO_QUERY_THROW );
- css::uno::Reference< css::frame::XDispatchProvider > xDispatchProvider( xDesktop->getCurrentFrame(),
- css::uno::UNO_QUERY_THROW );
- css::uno::Reference< css::frame::XDispatch > xDispatch = xDispatchProvider->queryDispatch(aURL, rtl::OUString(), 0);
+ uno::Reference < frame::XDesktop > xDesktop( xFactory->createInstance( OUSTR( "com.sun.star.frame.Desktop" ) ),
+ uno::UNO_QUERY_THROW );
+ uno::Reference< frame::XDispatchProvider > xDispatchProvider( xDesktop->getCurrentFrame(),
+ uno::UNO_QUERY_THROW );
+ uno::Reference< frame::XDispatch > xDispatch = xDispatchProvider->queryDispatch(aURL, rtl::OUString(), 0);
if( xDispatch.is() )
{
- css::uno::Sequence< css::beans::PropertyValue > aPropList(2);
+ uno::Sequence< beans::PropertyValue > aPropList(2);
aProperty.Name = OUSTR( "updateList" );
- aProperty.Value = css::uno::makeAny( rItemList );
+ aProperty.Value = uno::makeAny( rItemList );
aPropList[0] = aProperty;
aProperty.Name = OUSTR( "prepareOnly" );
- aProperty.Value = css::uno::makeAny( bPrepareOnly );
+ aProperty.Value = uno::makeAny( bPrepareOnly );
aPropList[1] = aProperty;
xDispatch->dispatch(aURL, aPropList );
}
}
- catch( const css::uno::Exception& e )
+ catch( const uno::Exception& e )
{
dp_misc::TRACE( OUSTR("Caught exception: ")
+ e.Message + OUSTR("\n thread terminated.\n\n"));
@@ -882,26 +967,26 @@ void UpdateDialog::notifyMenubar( bool bPrepareOnly, bool bRecheckOnly )
if ( !dp_misc::office_is_running() )
return;
- css::uno::Sequence< css::uno::Sequence< rtl::OUString > > aItemList;
+ uno::Sequence< uno::Sequence< rtl::OUString > > aItemList;
sal_Int32 nCount = 0;
if ( ! bRecheckOnly )
{
for ( sal_Int16 i = 0; i < m_updates.getItemCount(); ++i )
{
- css::uno::Sequence< rtl::OUString > aItem(2);
+ uno::Sequence< rtl::OUString > aItem(2);
UpdateDialog::Index const * p = static_cast< UpdateDialog::Index const * >(m_updates.GetEntryData(i));
- if ( p->kind == ENABLED_UPDATE )
+ if ( p->m_eKind == ENABLED_UPDATE )
{
- dp_gui::UpdateData aUpdData = m_enabledUpdates[ p->index.enabledUpdate ];
+ dp_gui::UpdateData aUpdData = m_enabledUpdates[ p->m_nIndex ];
aItem[0] = dp_misc::getIdentifier( aUpdData.aInstalledPackage );
dp_misc::DescriptionInfoset aInfoset( m_context, aUpdData.aUpdateInfo );
aItem[1] = aInfoset.getVersion();
}
- else if ( p->kind == DISABLED_UPDATE )
+ else if ( p->m_eKind == DISABLED_UPDATE )
continue;
else
continue;
@@ -911,6 +996,8 @@ void UpdateDialog::notifyMenubar( bool bPrepareOnly, bool bRecheckOnly )
nCount += 1;
}
}
+
+ storeIgnoredUpdates();
createNotifyJob( bPrepareOnly, aItemList );
}
@@ -984,17 +1071,17 @@ void UpdateDialog::clearDescription()
m_descriptions.SetPosSizePixel( m_aFirstLinePos, m_aFirstLineSize );
}
-bool UpdateDialog::showDescription(css::uno::Reference< css::xml::dom::XNode > const & aUpdateInfo)
+bool UpdateDialog::showDescription(uno::Reference< xml::dom::XNode > const & aUpdateInfo)
{
dp_misc::DescriptionInfoset infoset(m_context, aUpdateInfo);
return showDescription(infoset.getLocalizedPublisherNameAndURL(),
infoset.getLocalizedReleaseNotesURL());
}
-bool UpdateDialog::showDescription(css::uno::Reference< css::deployment::XPackage > const & aExtension)
+bool UpdateDialog::showDescription(uno::Reference< deployment::XPackage > const & aExtension)
{
OSL_ASSERT(aExtension.is());
- css::beans::StringPair pubInfo = aExtension->getPublisherInfo();
+ beans::StringPair pubInfo = aExtension->getPublisherInfo();
return showDescription(std::make_pair(pubInfo.First, pubInfo.Second),
OUSTR(""));
}
@@ -1057,7 +1144,7 @@ bool UpdateDialog::showDescription( const String& rDescription, bool bWithPublis
return true;
}
-bool UpdateDialog::isReadOnly( const css::uno::Reference< css::deployment::XPackage > &xPackage ) const
+bool UpdateDialog::isReadOnly( const uno::Reference< deployment::XPackage > &xPackage ) const
{
if ( m_xExtensionManager.is() && xPackage.is() )
{
@@ -1067,6 +1154,162 @@ bool UpdateDialog::isReadOnly( const css::uno::Reference< css::deployment::XPack
return true;
}
+//------------------------------------------------------------------------------
+void UpdateDialog::getIgnoredUpdates()
+{
+ uno::Reference< lang::XMultiServiceFactory > xConfig( m_context->getServiceManager()->createInstanceWithContext(
+ OUSTR("com.sun.star.configuration.ConfigurationProvider"), m_context ), uno::UNO_QUERY_THROW);
+ beans::NamedValue aValue( OUSTR("nodepath"), uno::Any( IGNORED_UPDATES ) );
+ uno::Sequence< uno::Any > args(1);
+ args[0] <<= aValue;
+
+ uno::Reference< container::XNameAccess > xNameAccess( xConfig->createInstanceWithArguments( OUSTR("com.sun.star.configuration.ConfigurationAccess"), args), uno::UNO_QUERY_THROW );
+ uno::Sequence< rtl::OUString > aElementNames = xNameAccess->getElementNames();
+
+ for ( sal_Int32 i = 0; i < aElementNames.getLength(); i++ )
+ {
+ ::rtl::OUString aIdentifier = aElementNames[i];
+ ::rtl::OUString aVersion;
+
+ uno::Any aPropValue( uno::Reference< beans::XPropertySet >( xNameAccess->getByName( aIdentifier ), uno::UNO_QUERY_THROW )->getPropertyValue( PROPERTY_VERSION ) );
+ aPropValue >>= aVersion;
+ IgnoredUpdate *pData = new IgnoredUpdate( aIdentifier, aVersion );
+ m_ignoredUpdates.push_back( pData );
+ }
+}
+
+//------------------------------------------------------------------------------
+void UpdateDialog::storeIgnoredUpdates()
+{
+ if ( m_bModified && ( m_ignoredUpdates.size() != 0 ) )
+ {
+ uno::Reference< lang::XMultiServiceFactory > xConfig( m_context->getServiceManager()->createInstanceWithContext(
+ OUSTR("com.sun.star.configuration.ConfigurationProvider"), m_context ), uno::UNO_QUERY_THROW );
+ beans::NamedValue aValue( OUSTR("nodepath"), uno::Any( IGNORED_UPDATES ) );
+ uno::Sequence< uno::Any > args(1);
+ args[0] <<= aValue;
+
+ uno::Reference< container::XNameContainer > xNameContainer( xConfig->createInstanceWithArguments(
+ OUSTR("com.sun.star.configuration.ConfigurationUpdateAccess"), args ), uno::UNO_QUERY_THROW );
+
+ for ( std::vector< UpdateDialog::IgnoredUpdate* >::iterator i( m_ignoredUpdates.begin() ); i != m_ignoredUpdates.end(); ++i )
+ {
+ if ( xNameContainer->hasByName( (*i)->sExtensionID ) )
+ {
+ if ( (*i)->bRemoved )
+ xNameContainer->removeByName( (*i)->sExtensionID );
+ else
+ uno::Reference< beans::XPropertySet >( xNameContainer->getByName( (*i)->sExtensionID ), uno::UNO_QUERY_THROW )->setPropertyValue( PROPERTY_VERSION, uno::Any( (*i)->sVersion ) );
+ }
+ else if ( ! (*i)->bRemoved )
+ {
+ uno::Reference< beans::XPropertySet > elem( uno::Reference< lang::XSingleServiceFactory >( xNameContainer, uno::UNO_QUERY_THROW )->createInstance(), uno::UNO_QUERY_THROW );
+ elem->setPropertyValue( PROPERTY_VERSION, uno::Any( (*i)->sVersion ) );
+ xNameContainer->insertByName( (*i)->sExtensionID, uno::Any( elem ) );
+ }
+ }
+
+ uno::Reference< util::XChangesBatch > xChangesBatch( xNameContainer, uno::UNO_QUERY );
+ if ( xChangesBatch.is() && xChangesBatch->hasPendingChanges() )
+ xChangesBatch->commitChanges();
+ }
+
+ m_bModified = false;
+}
+
+//------------------------------------------------------------------------------
+bool UpdateDialog::isIgnoredUpdate( UpdateDialog::Index * index )
+{
+ bool bIsIgnored = false;
+
+ if ( m_ignoredUpdates.size() != 0 )
+ {
+ rtl::OUString aExtensionID;
+ rtl::OUString aVersion;
+
+ if ( index->m_eKind == ENABLED_UPDATE )
+ {
+ dp_gui::UpdateData aUpdData = m_enabledUpdates[ index->m_nIndex ];
+ aExtensionID = dp_misc::getIdentifier( aUpdData.aInstalledPackage );
+ aVersion = aUpdData.updateVersion;
+ }
+ else if ( index->m_eKind == DISABLED_UPDATE )
+ {
+ DisabledUpdate &rData = m_disabledUpdates[ index->m_nIndex ];
+ dp_misc::DescriptionInfoset aInfoset( m_context, rData.aUpdateInfo );
+ ::boost::optional< ::rtl::OUString > aID( aInfoset.getIdentifier() );
+ if ( aID )
+ aExtensionID = *aID;
+ aVersion = aInfoset.getVersion();
+ }
+
+ for ( std::vector< UpdateDialog::IgnoredUpdate* >::iterator i( m_ignoredUpdates.begin() ); i != m_ignoredUpdates.end(); ++i )
+ {
+ if ( (*i)->sExtensionID == aExtensionID )
+ {
+ if ( ( (*i)->sVersion.getLength() == 0 ) || ( (*i)->sVersion == aVersion ) )
+ {
+ bIsIgnored = true;
+ index->m_bIgnored = true;
+ }
+ else // when we find another update of an ignored version, we will remove the old one to keep the ignored list small
+ (*i)->bRemoved = true;
+ break;
+ }
+ }
+ }
+
+ return bIsIgnored;
+}
+
+//------------------------------------------------------------------------------
+void UpdateDialog::setIgnoredUpdate( UpdateDialog::Index *pIndex, bool bIgnore, bool bIgnoreAll )
+{
+ rtl::OUString aExtensionID;
+ rtl::OUString aVersion;
+
+ m_bModified = true;
+
+ if ( pIndex->m_eKind == ENABLED_UPDATE )
+ {
+ dp_gui::UpdateData aUpdData = m_enabledUpdates[ pIndex->m_nIndex ];
+ aExtensionID = dp_misc::getIdentifier( aUpdData.aInstalledPackage );
+ if ( !bIgnoreAll )
+ aVersion = aUpdData.updateVersion;
+ }
+ else if ( pIndex->m_eKind == DISABLED_UPDATE )
+ {
+ DisabledUpdate &rData = m_disabledUpdates[ pIndex->m_nIndex ];
+ dp_misc::DescriptionInfoset aInfoset( m_context, rData.aUpdateInfo );
+ ::boost::optional< ::rtl::OUString > aID( aInfoset.getIdentifier() );
+ if ( aID )
+ aExtensionID = *aID;
+ if ( !bIgnoreAll )
+ aVersion = aInfoset.getVersion();
+ }
+
+ if ( aExtensionID.getLength() )
+ {
+ bool bFound = false;
+ for ( std::vector< UpdateDialog::IgnoredUpdate* >::iterator i( m_ignoredUpdates.begin() ); i != m_ignoredUpdates.end(); ++i )
+ {
+ if ( (*i)->sExtensionID == aExtensionID )
+ {
+ (*i)->sVersion = aVersion;
+ (*i)->bRemoved = !bIgnore;
+ bFound = true;
+ break;
+ }
+ }
+ if ( bIgnore && !bFound )
+ {
+ IgnoredUpdate *pData = new IgnoredUpdate( aExtensionID, aVersion );
+ m_ignoredUpdates.push_back( pData );
+ }
+ }
+}
+
+//------------------------------------------------------------------------------
IMPL_LINK(UpdateDialog, selectionHandler, void *, EMPTYARG)
{
rtl::OUStringBuffer b;
@@ -1075,38 +1318,32 @@ IMPL_LINK(UpdateDialog, selectionHandler, void *, EMPTYARG)
m_updates.GetEntryData(m_updates.GetSelectEntryPos()));
clearDescription();
- if (p != NULL)
+ if ( p != NULL )
{
- //When the index is greater or equal than the amount of enabled updates then the "Show all"
- //button is probably checked. Then we show first all enabled and then the disabled
- //updates.
- USHORT pos = m_updates.GetSelectEntryPos();
- const std::vector< dp_gui::UpdateData >::size_type sizeEnabled =
- m_enabledUpdates.size();
- const std::vector< UpdateDialog::DisabledUpdate >::size_type sizeDisabled =
- m_disabledUpdates.size();
- if (pos < sizeEnabled)
- {
- if (m_enabledUpdates[pos].aUpdateSource.is())
- bInserted = showDescription(m_enabledUpdates[pos].aUpdateSource);
- else
- bInserted = showDescription(m_enabledUpdates[pos].aUpdateInfo);
- }
- else if (pos >= sizeEnabled
- && pos < (sizeEnabled + sizeDisabled))
- bInserted = showDescription(m_disabledUpdates[pos - sizeEnabled].aUpdateInfo);
+ USHORT pos = p->m_nIndex;
- switch (p->kind)
+ switch (p->m_eKind)
{
case ENABLED_UPDATE:
{
- b.append(m_noDescription);
+ if ( m_enabledUpdates[ pos ].aUpdateSource.is() )
+ bInserted = showDescription( m_enabledUpdates[ pos ].aUpdateSource );
+ else
+ bInserted = showDescription( m_enabledUpdates[ pos ].aUpdateInfo );
+
+ if ( p->m_bIgnored )
+ b.append( m_ignoredUpdate );
+
break;
}
case DISABLED_UPDATE:
{
- UpdateDialog::DisabledUpdate & data = m_disabledUpdates[
- p->index.disabledUpdate];
+ bInserted = showDescription( m_disabledUpdates[pos].aUpdateInfo );
+
+ if ( p->m_bIgnored )
+ b.append( m_ignoredUpdate );
+
+ UpdateDialog::DisabledUpdate & data = m_disabledUpdates[ pos ];
if (data.unsatisfiedDependencies.getLength() != 0)
{
// create error string for version mismatch
@@ -1139,23 +1376,12 @@ IMPL_LINK(UpdateDialog, selectionHandler, void *, EMPTYARG)
}
break;
}
- case GENERAL_ERROR:
- {
- rtl::OUString & msg = m_generalErrors[p->index.generalError];
- b.append(m_failure);
- b.append(LF);
- b.append(msg.getLength() == 0 ? m_unknownError : msg);
- break;
- }
case SPECIFIC_ERROR:
{
- UpdateDialog::SpecificError & data = m_specificErrors[
- p->index.specificError];
+ UpdateDialog::SpecificError & data = m_specificErrors[ pos ];
b.append(m_failure);
b.append(LF);
- b.append(
- data.message.getLength() == 0
- ? m_unknownError : data.message);
+ b.append( data.message.getLength() == 0 ? m_unknownError : data.message );
break;
}
default:
@@ -1164,56 +1390,37 @@ IMPL_LINK(UpdateDialog, selectionHandler, void *, EMPTYARG)
}
}
+ if ( b.getLength() == 0 )
+ b.append( m_noDescription );
+
showDescription( b.makeStringAndClear(), bInserted );
return 0;
}
-IMPL_LINK(UpdateDialog, allHandler, void *, EMPTYARG) {
- if (m_all.IsChecked()) {
+IMPL_LINK(UpdateDialog, allHandler, void *, EMPTYARG)
+{
+ if (m_all.IsChecked())
+ {
m_update.Enable();
m_updates.Enable();
m_description.Enable();
m_descriptions.Enable();
- std::vector< UpdateDialog::DisabledUpdate >::size_type n1 = 0;
- for (std::vector< UpdateDialog::DisabledUpdate >::iterator i(
- m_disabledUpdates.begin());
- i != m_disabledUpdates.end(); ++i)
- {
- insertItem(
- i->name, LISTBOX_APPEND,
- UpdateDialog::Index::newDisabledUpdate(n1++),
- SvLBoxButtonKind_disabledCheckbox);
- }
- std::vector< rtl::OUString >::size_type n2 = 0;
- for (std::vector< rtl::OUString >::iterator i(m_generalErrors.begin());
- i != m_generalErrors.end(); ++i)
+
+ for (std::vector< UpdateDialog::Index* >::iterator i( m_ListboxEntries.begin() );
+ i != m_ListboxEntries.end(); ++i )
{
- insertItem(
- m_error, LISTBOX_APPEND,
- UpdateDialog::Index::newGeneralError(n2++),
- SvLBoxButtonKind_staticImage);
+ if ( (*i)->m_bIgnored || ( (*i)->m_eKind != ENABLED_UPDATE ) )
+ insertItem( (*i), SvLBoxButtonKind_disabledCheckbox );
}
- std::vector< UpdateDialog::SpecificError >::size_type n3 = 0;
- for (std::vector< UpdateDialog::SpecificError >::iterator i(
- m_specificErrors.begin());
- i != m_specificErrors.end(); ++i)
+ }
+ else
+ {
+ for ( USHORT i = 0; i < m_updates.getItemCount(); )
{
- insertItem(
- i->name, LISTBOX_APPEND,
- UpdateDialog::Index::newSpecificError(n3++),
- SvLBoxButtonKind_staticImage);
- }
- } else {
- for (USHORT i = 0; i < m_updates.getItemCount();) {
- UpdateDialog::Index const * p =
- static_cast< UpdateDialog::Index const * >(
- m_updates.GetEntryData(i));
- if (p->kind != ENABLED_UPDATE) {
+ UpdateDialog::Index const * p = static_cast< UpdateDialog::Index const * >( m_updates.GetEntryData(i) );
+ if ( p->m_bIgnored || ( p->m_eKind != ENABLED_UPDATE ) )
+ {
m_updates.RemoveEntry(i);
- //TODO #i72487#: UpdateDialog::Index potentially leaks as
- // SvxCheckListBox::RemoveEntry's exception behavior is
- // unspecified
- delete p;
} else {
++i;
}
@@ -1260,8 +1467,8 @@ IMPL_LINK(UpdateDialog, okHandler, void *, EMPTYARG)
UpdateDialog::Index const * p =
static_cast< UpdateDialog::Index const * >(
m_updates.GetEntryData(i));
- if (p->kind == ENABLED_UPDATE && m_updates.IsChecked(i)) {
- m_updateData.push_back(m_enabledUpdates[p->index.enabledUpdate]);
+ if (p->m_eKind == ENABLED_UPDATE && m_updates.IsChecked(i)) {
+ m_updateData.push_back( m_enabledUpdates[ p->m_nIndex ] );
}
}
@@ -1269,7 +1476,7 @@ IMPL_LINK(UpdateDialog, okHandler, void *, EMPTYARG)
return 0;
}
-IMPL_LINK(UpdateDialog, cancelHandler, void *, EMPTYARG) {
+IMPL_LINK(UpdateDialog, closeHandler, void *, EMPTYARG) {
m_thread->stop();
EndDialog(RET_CANCEL);
return 0;
@@ -1285,15 +1492,15 @@ IMPL_LINK( UpdateDialog, hyperlink_clicked, svt::FixedHyperlink*, pHyperlink )
try
{
- css::uno::Reference< css::system::XSystemShellExecute > xSystemShellExecute(
+ uno::Reference< com::sun::star::system::XSystemShellExecute > xSystemShellExecute(
m_context->getServiceManager()->createInstanceWithContext(
OUSTR( "com.sun.star.system.SystemShellExecute" ),
- m_context), css::uno::UNO_QUERY_THROW);
- //throws css::lang::IllegalArgumentException, css::system::SystemShellExecuteException
+ m_context), uno::UNO_QUERY_THROW);
+ //throws lang::IllegalArgumentException, system::SystemShellExecuteException
xSystemShellExecute->execute(
- sURL, ::rtl::OUString(), css::system::SystemShellExecuteFlags::DEFAULTS);
+ sURL, ::rtl::OUString(), com::sun::star::system::SystemShellExecuteFlags::DEFAULTS);
}
- catch (css::uno::Exception& )
+ catch (uno::Exception& )
{
}
diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.hxx b/desktop/source/deployment/gui/dp_gui_updatedialog.hxx
index 32c317cb8735..54e645f195d8 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updatedialog.hxx
+++ b/desktop/source/deployment/gui/dp_gui_updatedialog.hxx
@@ -112,8 +112,7 @@ private:
struct DisabledUpdate;
struct SpecificError;
- union IndexUnion;
- friend union IndexUnion;
+ struct IgnoredUpdate;
struct Index;
friend struct Index;
class Thread;
@@ -135,40 +134,36 @@ private:
void operator =(UpdateDialog::CheckListBox &); // not defined
virtual void MouseButtonDown(MouseEvent const & event);
-
virtual void MouseButtonUp(MouseEvent const & event);
-
virtual void KeyInput(KeyEvent const & event);
+ void handlePopupMenu( const Point &rPos );
+
+ rtl::OUString m_ignoreUpdate;
+ rtl::OUString m_ignoreAllUpdates;
+ rtl::OUString m_enableUpdate;
UpdateDialog & m_dialog;
};
friend class CheckListBox;
- void insertItem(
- rtl::OUString const & name, USHORT position,
- std::auto_ptr< UpdateDialog::Index const > index,
- SvLBoxButtonKind kind);
-
- void addAdditional(
- rtl::OUString const & name, USHORT position,
- std::auto_ptr< UpdateDialog::Index const > index,
- SvLBoxButtonKind kind);
+ USHORT insertItem( UpdateDialog::Index *pIndex, SvLBoxButtonKind kind );
+ void addAdditional( UpdateDialog::Index *pIndex, SvLBoxButtonKind kind );
+ bool isIgnoredUpdate( UpdateDialog::Index *pIndex );
+ void setIgnoredUpdate( UpdateDialog::Index *pIndex, bool bIgnore, bool bIgnoreAll );
- void addEnabledUpdate(
- rtl::OUString const & name, dp_gui::UpdateData const & data);
-
- void addDisabledUpdate(UpdateDialog::DisabledUpdate const & data);
-#if 0
- void addGeneralError(rtl::OUString const & message);
-#endif
- void addSpecificError(UpdateDialog::SpecificError const & data);
+ void addEnabledUpdate( rtl::OUString const & name, dp_gui::UpdateData & data );
+ void addDisabledUpdate( UpdateDialog::DisabledUpdate & data );
+ void addSpecificError( UpdateDialog::SpecificError & data );
void checkingDone();
void enableOk();
+ void getIgnoredUpdates();
+ void storeIgnoredUpdates();
+
void initDescription();
void clearDescription();
bool showDescription(::com::sun::star::uno::Reference<
@@ -183,7 +178,7 @@ private:
DECL_LINK(selectionHandler, void *);
DECL_LINK(allHandler, void *);
DECL_LINK(okHandler, void *);
- DECL_LINK(cancelHandler, void *);
+ DECL_LINK(closeHandler, void *);
DECL_LINK(hyperlink_clicked, svt::FixedHyperlink *);
com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
@@ -202,7 +197,7 @@ private:
FixedLine m_line;
HelpButton m_help;
PushButton m_ok;
- CancelButton m_cancel;
+ PushButton m_close;
rtl::OUString m_error;
rtl::OUString m_none;
rtl::OUString m_noInstallable;
@@ -214,18 +209,22 @@ private:
rtl::OUString m_noDependencyCurVer;
rtl::OUString m_browserbased;
rtl::OUString m_version;
+ rtl::OUString m_ignoredUpdate;
std::vector< dp_gui::UpdateData > m_enabledUpdates;
std::vector< UpdateDialog::DisabledUpdate > m_disabledUpdates;
- std::vector< rtl::OUString > m_generalErrors;
std::vector< UpdateDialog::SpecificError > m_specificErrors;
+ std::vector< UpdateDialog::IgnoredUpdate* > m_ignoredUpdates;
+ std::vector< Index* > m_ListboxEntries;
std::vector< dp_gui::UpdateData > & m_updateData;
rtl::Reference< UpdateDialog::Thread > m_thread;
::com::sun::star::uno::Reference< ::com::sun::star::deployment::XExtensionManager > m_xExtensionManager;
- Point m_aFirstLinePos;
- Size m_aFirstLineSize;
- long m_nFirstLineDelta;
- long m_nOneLineMissing;
+ Point m_aFirstLinePos;
+ Size m_aFirstLineSize;
+ long m_nFirstLineDelta;
+ long m_nOneLineMissing;
+ USHORT m_nLastID;
+ bool m_bModified;
};
}
diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.src b/desktop/source/deployment/gui/dp_gui_updatedialog.src
index 20b7d30988fd..4da431733e31 100644..100755
--- a/desktop/source/deployment/gui/dp_gui_updatedialog.src
+++ b/desktop/source/deployment/gui/dp_gui_updatedialog.src
@@ -199,7 +199,7 @@ ModalDialog RID_DLG_UPDATE {
Text[en-US] = "~Install";
DefButton = TRUE;
};
- CancelButton RID_DLG_UPDATE_CANCEL {
+ PushButton RID_DLG_UPDATE_CLOSE {
Pos = MAP_APPFONT(
RSC_SP_DLG_INNERBORDER_LEFT + LOCAL_WIDTH - RSC_CD_PUSHBUTTON_WIDTH,
(RSC_SP_DLG_INNERBORDER_TOP + RSC_CD_FIXEDTEXT_HEIGHT +
@@ -208,6 +208,7 @@ ModalDialog RID_DLG_UPDATE {
RSC_SP_CTRL_DESC_Y + LOCAL_LIST_HEIGHT2 + RSC_SP_FLGR_SPACE_Y +
RSC_CD_FIXEDLINE_HEIGHT + RSC_SP_FLGR_SPACE_Y));
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT);
+ Text[en-US] = "Close";
};
Image RID_DLG_UPDATE_NORMALALERT {
@@ -227,7 +228,7 @@ ModalDialog RID_DLG_UPDATE {
Text[en-US] = "No new updates are available.";
};
String RID_DLG_UPDATE_NOINSTALLABLE {
- Text[en-US] = "No installable updates are available. To see all updates, mark the check box 'Show all updates'.";
+ Text[en-US] = "No installable updates are available. To see ignored or disabled updates, mark the check box 'Show all updates'.";
};
String RID_DLG_UPDATE_FAILURE {
Text[en-US] = "An error occurred:";
@@ -236,7 +237,7 @@ ModalDialog RID_DLG_UPDATE {
Text[en-US] = "Unknown error.";
};
String RID_DLG_UPDATE_NODESCRIPTION {
- Text[en-US] = "No descriptions available for this extension.";
+ Text[en-US] = "No more details are available for this update.";
};
String RID_DLG_UPDATE_NOINSTALL {
Text[en-US] = "The extension cannot be updated because:";
@@ -250,10 +251,21 @@ ModalDialog RID_DLG_UPDATE {
String RID_DLG_UPDATE_BROWSERBASED {
Text[en-US] = "browser based update";
};
-
String RID_DLG_UPDATE_VERSION {
Text[en-US] = "Version";
};
+ String RID_DLG_UPDATE_IGNORE {
+ Text[en-US] = "Ignore this Update";
+ };
+ String RID_DLG_UPDATE_IGNORE_ALL {
+ Text[en-US] = "Ignore all Updates";
+ };
+ String RID_DLG_UPDATE_ENABLE {
+ Text[en-US] = "Enable Updates";
+ };
+ String RID_DLG_UPDATE_IGNORED_UPDATE {
+ Text[en-US] = "This update will be ignored.\n";
+ };
};
WarningBox RID_WARNINGBOX_UPDATE_SHARED_EXTENSION
diff --git a/desktop/source/deployment/misc/dp_misc.src b/desktop/source/deployment/misc/dp_misc.src
index 0d341122af16..ae810d2c7851 100644..100755
--- a/desktop/source/deployment/misc/dp_misc.src
+++ b/desktop/source/deployment/misc/dp_misc.src
@@ -32,7 +32,7 @@ String RID_DEPLYOMENT_DEPENDENCIES_UNKNOWN {
};
String RID_DEPLYOMENT_DEPENDENCIES_MIN {
- Text[en-US] = "Extensions requires at least OpenOffice.org %VERSION";
+ Text[en-US] = "Extension requires at least OpenOffice.org %VERSION";
};
String RID_DEPLYOMENT_DEPENDENCIES_MAX {
diff --git a/desktop/source/deployment/registry/component/dp_component.cxx b/desktop/source/deployment/registry/component/dp_component.cxx
index e0844c227669..d1511952a92a 100644
--- a/desktop/source/deployment/registry/component/dp_component.cxx
+++ b/desktop/source/deployment/registry/component/dp_component.cxx
@@ -65,6 +65,7 @@ using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::ucb;
using ::rtl::OUString;
+namespace css = com::sun::star;
namespace dp_registry {
namespace backend {
@@ -121,14 +122,15 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
BackendImpl * getMyBackend() const;
const OUString m_loader;
- ComponentBackendDb::Data m_registeredComponentsDb;
enum reg {
REG_UNINIT, REG_VOID, REG_REGISTERED, REG_NOT_REGISTERED, REG_MAYBE_REGISTERED
} m_registered;
- Reference<loader::XImplementationLoader> getComponentInfo(
- t_stringlist * pImplNames, t_stringpairvec * pSingletons,
+ void getComponentInfo(
+ ComponentBackendDb::Data * data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > *
+ factories,
Reference<XComponentContext> const & xContext );
virtual void SAL_CALL disposing();
@@ -161,6 +163,30 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
};
friend class ComponentPackageImpl;
+ class ComponentsPackageImpl : public ::dp_registry::backend::Package
+ {
+ BackendImpl * getMyBackend() const;
+
+ // Package
+ virtual beans::Optional< beans::Ambiguous<sal_Bool> > isRegistered_(
+ ::osl::ResettableMutexGuard & guard,
+ ::rtl::Reference<AbortChannel> const & abortChannel,
+ Reference<XCommandEnvironment> const & xCmdEnv );
+ virtual void processPackage_(
+ ::osl::ResettableMutexGuard & guard,
+ bool registerPackage,
+ bool startup,
+ ::rtl::Reference<AbortChannel> const & abortChannel,
+ Reference<XCommandEnvironment> const & xCmdEnv );
+ public:
+ ComponentsPackageImpl(
+ ::rtl::Reference<PackageRegistryBackend> const & myBackend,
+ OUString const & url, OUString const & name,
+ Reference<deployment::XPackageTypeInfo> const & xPackageType,
+ bool bRemoved, OUString const & identifier);
+ };
+ friend class ComponentsPackageImpl;
+
class TypelibraryPackageImpl : public ::dp_registry::backend::Package
{
BackendImpl * getMyBackend() const;
@@ -194,8 +220,20 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
t_stringlist m_jar_typelibs;
t_stringlist m_rdb_typelibs;
- t_stringlist & getTypelibs( bool jar ) {
- return jar ? m_jar_typelibs : m_rdb_typelibs;
+ t_stringlist m_components;
+
+ enum RcItem { RCITEM_JAR_TYPELIB, RCITEM_RDB_TYPELIB, RCITEM_COMPONENTS };
+
+ t_stringlist & getRcItemList( RcItem kind ) {
+ switch (kind)
+ {
+ case RCITEM_JAR_TYPELIB:
+ return m_jar_typelibs;
+ case RCITEM_RDB_TYPELIB:
+ return m_rdb_typelibs;
+ default: // case RCITEM_COMPONENTS
+ return m_components;
+ }
}
bool m_unorc_inited;
@@ -217,6 +255,7 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
const Reference<deployment::XPackageTypeInfo> m_xDynComponentTypeInfo;
const Reference<deployment::XPackageTypeInfo> m_xJavaComponentTypeInfo;
const Reference<deployment::XPackageTypeInfo> m_xPythonComponentTypeInfo;
+ const Reference<deployment::XPackageTypeInfo> m_xComponentsTypeInfo;
const Reference<deployment::XPackageTypeInfo> m_xRDBTypelibTypeInfo;
const Reference<deployment::XPackageTypeInfo> m_xJavaTypelibTypeInfo;
Sequence< Reference<deployment::XPackageTypeInfo> > m_typeInfos;
@@ -254,13 +293,31 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
OUString const & id, Reference<XInterface> const & xObject );
void releaseObject( OUString const & id );
- bool addToUnoRc( bool jarFile, OUString const & url,
+ bool addToUnoRc( RcItem kind, OUString const & url,
Reference<XCommandEnvironment> const & xCmdEnv );
- bool removeFromUnoRc( bool jarFile, OUString const & url,
+ bool removeFromUnoRc( RcItem kind, OUString const & url,
Reference<XCommandEnvironment> const & xCmdEnv );
- bool hasInUnoRc( bool jarFile, OUString const & url );
+ bool hasInUnoRc( RcItem kind, OUString const & url );
+
+ css::uno::Reference< css::registry::XRegistryKey > openRegistryKey(
+ css::uno::Reference< css::registry::XRegistryKey > const & base,
+ rtl::OUString const & path);
+ void extractComponentData(
+ css::uno::Reference< css::uno::XComponentContext > const & context,
+ css::uno::Reference< css::registry::XRegistryKey > const & registry,
+ ComponentBackendDb::Data * data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > * factories,
+ css::uno::Reference< css::loader::XImplementationLoader > const *
+ componentLoader,
+ rtl::OUString const * componentUrl);
+ void componentLiveInsertion(
+ ComponentBackendDb::Data const & data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > const &
+ factories);
+
+ void componentLiveRemoval(ComponentBackendDb::Data const & data);
public:
BackendImpl( Sequence<Any> const & args,
@@ -291,13 +348,7 @@ BackendImpl::ComponentPackageImpl::ComponentPackageImpl(
xPackageType, bRemoved, identifier),
m_loader( loader ),
m_registered( REG_UNINIT )
-{
- if (bRemoved)
- {
- m_registeredComponentsDb = getMyBackend()->readDataFromDb(url);
- }
-}
-
+{}
const Reference<registry::XSimpleRegistry>
BackendImpl::ComponentPackageImpl::getRDB() const
@@ -538,6 +589,13 @@ BackendImpl::BackendImpl(
RID_STR_PYTHON_COMPONENT),
RID_IMG_COMPONENT,
RID_IMG_COMPONENT_HC ) ),
+ m_xComponentsTypeInfo( new Package::TypeInfo(
+ OUSTR("application/"
+ "vnd.sun.star.uno-components"),
+ OUSTR("*.components"),
+ getResourceString(RID_STR_COMPONENTS),
+ RID_IMG_COMPONENT,
+ RID_IMG_COMPONENT_HC ) ),
m_xRDBTypelibTypeInfo( new Package::TypeInfo(
OUSTR("application/"
"vnd.sun.star.uno-typelibrary;"
@@ -553,13 +611,14 @@ BackendImpl::BackendImpl(
getResourceString(RID_STR_JAVA_TYPELIB),
RID_IMG_JAVA_TYPELIB,
RID_IMG_JAVA_TYPELIB_HC ) ),
- m_typeInfos( 5 )
+ m_typeInfos( 6 )
{
m_typeInfos[ 0 ] = m_xDynComponentTypeInfo;
m_typeInfos[ 1 ] = m_xJavaComponentTypeInfo;
m_typeInfos[ 2 ] = m_xPythonComponentTypeInfo;
- m_typeInfos[ 3 ] = m_xRDBTypelibTypeInfo;
- m_typeInfos[ 4 ] = m_xJavaTypelibTypeInfo;
+ m_typeInfos[ 3 ] = m_xComponentsTypeInfo;
+ m_typeInfos[ 4 ] = m_xRDBTypelibTypeInfo;
+ m_typeInfos[ 5 ] = m_xJavaTypelibTypeInfo;
const Reference<XCommandEnvironment> xCmdEnv;
@@ -724,6 +783,17 @@ Reference<deployment::XPackage> BackendImpl::bindPackage_(
}
}
else if (subType.EqualsIgnoreCaseAscii(
+ "vnd.sun.star.uno-components"))
+ {
+ INetContentTypeParameter const * param = params.find(
+ ByteString("platform") );
+ if (param == 0 || platform_fits( param->m_sValue )) {
+ return new BackendImpl::ComponentsPackageImpl(
+ this, url, name, m_xComponentsTypeInfo, bRemoved,
+ identifier);
+ }
+ }
+ else if (subType.EqualsIgnoreCaseAscii(
"vnd.sun.star.uno-typelibrary"))
{
INetContentTypeParameter const * param = params.find(
@@ -816,11 +886,50 @@ void BackendImpl::unorc_verify_init(
while (index >= 0);
}
if (readLine( &line, OUSTR("UNO_SERVICES="), ucb_content,
- RTL_TEXTENCODING_UTF8 )) {
- sal_Int32 start = sizeof ("UNO_SERVICES=?$ORIGIN/") - 1;
- sal_Int32 sep = line.indexOf( ' ', start );
- OSL_ASSERT( sep > 0 );
- m_commonRDB_RO = line.copy( start, sep - start );
+ RTL_TEXTENCODING_UTF8 ))
+ {
+ // The UNO_SERVICES line always has the BNF form
+ // "UNO_SERVICES="
+ // ("?$ORIGIN/" <common-rdb>)? -- first
+ // "${$ORIGIN/${_OS}_${_ARCH}rc:UNO_SERVICES}"? -- second
+ // ("?" ("BUNDLED_EXTENSIONS" | -- third
+ // "UNO_SHARED_PACKAGES_CACHE" | "UNO_USER_PACKAGES_CACHE")
+ // ...)*
+ // so can unambiguously be split into its thre parts:
+ int state = 1;
+ for (sal_Int32 i = RTL_CONSTASCII_LENGTH("UNO_SERVICES=");
+ i >= 0;)
+ {
+ rtl::OUString token(line.getToken(0, ' ', i));
+ if (token.getLength() != 0)
+ {
+ if (state == 1 &&
+ token.matchAsciiL(
+ RTL_CONSTASCII_STRINGPARAM("?$ORIGIN/")))
+ {
+ m_commonRDB_RO = token.copy(
+ RTL_CONSTASCII_LENGTH("?$ORIGIN/"));
+ state = 2;
+ }
+ else if (state <= 2 &&
+ token.equalsAsciiL(
+ RTL_CONSTASCII_STRINGPARAM(
+ "${$ORIGIN/${_OS}_${_ARCH}rc:"
+ "UNO_SERVICES}")))
+ {
+ state = 3;
+ }
+ else
+ {
+ if (token[0] == '?')
+ {
+ token = token.copy(1);
+ }
+ m_components.push_back(token);
+ state = 3;
+ }
+ }
+ }
}
// native rc:
@@ -896,16 +1005,27 @@ void BackendImpl::unorc_flush( Reference<XCommandEnvironment> const & xCmdEnv )
OUString sCommonRDB(m_commonRDB.getLength() > 0 ? m_commonRDB : m_commonRDB_RO);
OUString sNativeRDB(m_nativeRDB.getLength() > 0 ? m_nativeRDB : m_nativeRDB_RO);
- if (sCommonRDB.getLength() > 0 || sNativeRDB.getLength() > 0)
+ if (sCommonRDB.getLength() > 0 || sNativeRDB.getLength() > 0 ||
+ !m_components.empty())
{
- buf.append( RTL_CONSTASCII_STRINGPARAM("UNO_SERVICES=?$ORIGIN/") );
- buf.append( ::rtl::OUStringToOString(
- sCommonRDB, RTL_TEXTENCODING_ASCII_US ) );
+ buf.append( RTL_CONSTASCII_STRINGPARAM("UNO_SERVICES=") );
+ bool space = false;
+ if (sCommonRDB.getLength() > 0)
+ {
+ buf.append( RTL_CONSTASCII_STRINGPARAM("?$ORIGIN/") );
+ buf.append( ::rtl::OUStringToOString(
+ sCommonRDB, RTL_TEXTENCODING_ASCII_US ) );
+ space = true;
+ }
if (sNativeRDB.getLength() > 0)
{
+ if (space)
+ {
+ buf.append(' ');
+ }
buf.append( RTL_CONSTASCII_STRINGPARAM(
- " ${$ORIGIN/${_OS}_${_ARCH}rc:UNO_SERVICES}") );
- buf.append(LF);
+ "${$ORIGIN/${_OS}_${_ARCH}rc:UNO_SERVICES}") );
+ space = true;
// write native rc:
::rtl::OStringBuffer buf2;
@@ -927,6 +1047,18 @@ void BackendImpl::unorc_flush( Reference<XCommandEnvironment> const & xCmdEnv )
xCmdEnv );
ucb_content.writeStream( xData, true /* replace existing */ );
}
+ for (t_stringlist::iterator i(m_components.begin());
+ i != m_components.end(); ++i)
+ {
+ if (space)
+ {
+ buf.append(' ');
+ }
+ buf.append('?');
+ buf.append(rtl::OUStringToOString(*i, RTL_TEXTENCODING_UTF8));
+ space = true;
+ }
+ buf.append(LF);
}
// write unorc:
@@ -943,13 +1075,13 @@ void BackendImpl::unorc_flush( Reference<XCommandEnvironment> const & xCmdEnv )
}
//______________________________________________________________________________
-bool BackendImpl::addToUnoRc( bool jarFile, OUString const & url_,
+bool BackendImpl::addToUnoRc( RcItem kind, OUString const & url_,
Reference<XCommandEnvironment> const & xCmdEnv )
{
const OUString rcterm( dp_misc::makeRcTerm(url_) );
const ::osl::MutexGuard guard( getMutex() );
unorc_verify_init( xCmdEnv );
- t_stringlist & rSet = getTypelibs(jarFile);
+ t_stringlist & rSet = getRcItemList(kind);
if (::std::find( rSet.begin(), rSet.end(), rcterm ) == rSet.end()) {
rSet.push_front( rcterm ); // prepend to list, thus overriding
// write immediately:
@@ -963,13 +1095,13 @@ bool BackendImpl::addToUnoRc( bool jarFile, OUString const & url_,
//______________________________________________________________________________
bool BackendImpl::removeFromUnoRc(
- bool jarFile, OUString const & url_,
+ RcItem kind, OUString const & url_,
Reference<XCommandEnvironment> const & xCmdEnv )
{
const OUString rcterm( dp_misc::makeRcTerm(url_) );
const ::osl::MutexGuard guard( getMutex() );
unorc_verify_init( xCmdEnv );
- getTypelibs(jarFile).remove( rcterm );
+ getRcItemList(kind).remove( rcterm );
// write immediately:
m_unorc_modified = true;
unorc_flush( xCmdEnv );
@@ -978,22 +1110,215 @@ bool BackendImpl::removeFromUnoRc(
//______________________________________________________________________________
bool BackendImpl::hasInUnoRc(
- bool jarFile, OUString const & url_ )
+ RcItem kind, OUString const & url_ )
{
const OUString rcterm( dp_misc::makeRcTerm(url_) );
const ::osl::MutexGuard guard( getMutex() );
- t_stringlist const & rSet = getTypelibs(jarFile);
+ t_stringlist const & rSet = getRcItemList(kind);
return ::std::find( rSet.begin(), rSet.end(), rcterm ) != rSet.end();
}
+css::uno::Reference< css::registry::XRegistryKey > BackendImpl::openRegistryKey(
+ css::uno::Reference< css::registry::XRegistryKey > const & base,
+ rtl::OUString const & path)
+{
+ OSL_ASSERT(base.is());
+ css::uno::Reference< css::registry::XRegistryKey > key(base->openKey(path));
+ if (!key.is()) {
+ throw css::deployment::DeploymentException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("missing registry entry ")) +
+ path + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" under ")) +
+ base->getKeyName()),
+ static_cast< OWeakObject * >(this), Any());
+ }
+ return key;
+}
+
+void BackendImpl::extractComponentData(
+ css::uno::Reference< css::uno::XComponentContext > const & context,
+ css::uno::Reference< css::registry::XRegistryKey > const & registry,
+ ComponentBackendDb::Data * data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > * factories,
+ css::uno::Reference< css::loader::XImplementationLoader > const *
+ componentLoader,
+ rtl::OUString const * componentUrl)
+{
+ OSL_ASSERT(context.is() && registry.is() && data != 0 && factories != 0);
+ rtl::OUString registryName(registry->getKeyName());
+ sal_Int32 prefix = registryName.getLength();
+ if (!registryName.endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM("/"))) {
+ prefix += RTL_CONSTASCII_LENGTH("/");
+ }
+ css::uno::Sequence< css::uno::Reference< css::registry::XRegistryKey > >
+ keys(registry->openKeys());
+ css::uno::Reference< css::lang::XMultiComponentFactory > smgr(
+ context->getServiceManager(), css::uno::UNO_QUERY_THROW);
+ for (sal_Int32 i = 0; i < keys.getLength(); ++i) {
+ rtl::OUString name(keys[i]->getKeyName().copy(prefix));
+ data->implementationNames.push_back(name);
+ css::uno::Reference< css::registry::XRegistryKey > singletons(
+ keys[i]->openKey(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UNO/SINGLETONS"))));
+ if (singletons.is()) {
+ sal_Int32 prefix2 = keys[i]->getKeyName().getLength() +
+ RTL_CONSTASCII_LENGTH("/UNO/SINGLETONS/");
+ css::uno::Sequence<
+ css::uno::Reference< css::registry::XRegistryKey > >
+ singletonKeys(singletons->openKeys());
+ for (sal_Int32 j = 0; j < singletonKeys.getLength(); ++j) {
+ data->singletons.push_back(
+ std::pair< rtl::OUString, rtl::OUString >(
+ singletonKeys[j]->getKeyName().copy(prefix2), name));
+ }
+ }
+ css::uno::Reference< css::loader::XImplementationLoader > loader;
+ if (componentLoader == 0) {
+ rtl::OUString activator(
+ openRegistryKey(
+ keys[i],
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("UNO/ACTIVATOR")))->
+ getAsciiValue());
+ loader.set(
+ smgr->createInstanceWithContext(activator, context),
+ css::uno::UNO_QUERY);
+ if (!loader.is()) {
+ throw css::deployment::DeploymentException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "cannot instantiate loader ")) +
+ activator),
+ static_cast< OWeakObject * >(this), Any());
+ }
+ } else {
+ OSL_ASSERT(componentLoader->is());
+ loader = *componentLoader;
+ }
+ factories->push_back(
+ loader->activate(
+ name, rtl::OUString(),
+ (componentUrl == 0
+ ? (openRegistryKey(
+ keys[i],
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("UNO/LOCATION")))->
+ getAsciiValue())
+ : *componentUrl),
+ keys[i]));
+ }
+}
+
+void BackendImpl::componentLiveInsertion(
+ ComponentBackendDb::Data const & data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > const &
+ factories)
+{
+ css::uno::Reference< css::container::XSet > set(
+ getComponentContext()->getServiceManager(), css::uno::UNO_QUERY_THROW);
+ std::vector< css::uno::Reference< css::uno::XInterface > >::const_iterator
+ factory(factories.begin());
+ for (t_stringlist::const_iterator i(data.implementationNames.begin());
+ i != data.implementationNames.end(); ++i)
+ {
+ try {
+ set->insert(css::uno::Any(*factory++));
+ } catch (container::ElementExistException &) {
+ OSL_TRACE(
+ "implementation %s already registered",
+ rtl::OUStringToOString(*i, RTL_TEXTENCODING_UTF8).getStr());
+ }
+ }
+ if (!data.singletons.empty()) {
+ css::uno::Reference< css::container::XNameContainer >
+ rootContext(
+ getComponentContext()->getValueByName(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_root"))),
+ css::uno::UNO_QUERY);
+ if (rootContext.is()) {
+ for (t_stringpairvec::const_iterator i(data.singletons.begin());
+ i != data.singletons.end(); ++i)
+ {
+ rtl::OUString name(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/singletons/")) +
+ i->first);
+ try {
+ rootContext->removeByName(
+ name +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("/arguments")));
+ } catch (container::NoSuchElementException &) {}
+ try {
+ rootContext->insertByName(
+ (name +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("/service"))),
+ css::uno::Any(i->second));
+ } catch (container::ElementExistException &) {
+ rootContext->replaceByName(
+ (name +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("/service"))),
+ css::uno::Any(i->second));
+ }
+ try {
+ rootContext->insertByName(name, css::uno::Any());
+ } catch (container::ElementExistException &) {
+ OSL_TRACE(
+ "singleton %s already registered",
+ rtl::OUStringToOString(
+ i->first, RTL_TEXTENCODING_UTF8).getStr());
+ rootContext->replaceByName(name, css::uno::Any());
+ }
+ }
+ }
+ }
+}
+
+void BackendImpl::componentLiveRemoval(ComponentBackendDb::Data const & data) {
+ css::uno::Reference< css::container::XSet > set(
+ getComponentContext()->getServiceManager(), css::uno::UNO_QUERY_THROW);
+ for (t_stringlist::const_iterator i(data.implementationNames.begin());
+ i != data.implementationNames.end(); ++i)
+ {
+ try {
+ set->remove(css::uno::Any(*i));
+ } catch (css::container::NoSuchElementException &) {
+ // ignore if factory has not been live deployed
+ }
+ }
+ if (!data.singletons.empty()) {
+ css::uno::Reference< css::container::XNameContainer > rootContext(
+ getComponentContext()->getValueByName(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_root"))),
+ css::uno::UNO_QUERY);
+ if (rootContext.is()) {
+ for (t_stringpairvec::const_iterator i(data.singletons.begin());
+ i != data.singletons.end(); ++i)
+ {
+ rtl::OUString name(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/singletons/")) +
+ i->first);
+ try {
+ rootContext->removeByName(
+ name +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("/arguments")));
+ rootContext->removeByName(
+ name +
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/service")));
+ rootContext->removeByName(name);
+ } catch (container::NoSuchElementException &) {}
+ }
+ }
+ }
+}
+
//______________________________________________________________________________
void BackendImpl::releaseObject( OUString const & id )
{
const ::osl::MutexGuard guard( getMutex() );
- if ( m_backendObjects.erase( id ) != 1 )
- {
- OSL_ASSERT( false );
- }
+ m_backendObjects.erase( id );
}
//______________________________________________________________________________
@@ -1076,62 +1401,38 @@ Reference<XComponentContext> raise_uno_process(
}
//------------------------------------------------------------------------------
-Reference<loader::XImplementationLoader>
-BackendImpl::ComponentPackageImpl::getComponentInfo(
- t_stringlist * pImplNames, t_stringpairvec * pSingletons,
+void BackendImpl::ComponentPackageImpl::getComponentInfo(
+ ComponentBackendDb::Data * data,
+ std::vector< css::uno::Reference< css::uno::XInterface > > * factories,
Reference<XComponentContext> const & xContext )
{
const Reference<loader::XImplementationLoader> xLoader(
xContext->getServiceManager()->createInstanceWithContext(
m_loader, xContext ), UNO_QUERY );
if (! xLoader.is())
- return Reference<loader::XImplementationLoader>();
+ {
+ throw css::deployment::DeploymentException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("cannot instantiate loader ")) +
+ m_loader),
+ static_cast< OWeakObject * >(this), Any());
+ }
// HACK: highly dependent on stoc/source/servicemanager
// and stoc/source/implreg implementation which rely on the same
// services.rdb format!
-
+ // .../UNO/LOCATION and .../UNO/ACTIVATOR appear not to be written by
+ // writeRegistryInfo, however, but are knwon, fixed values here, so
+ // can be passed into extractComponentData
+ rtl::OUString url(getURL());
const Reference<registry::XSimpleRegistry> xMemReg(
xContext->getServiceManager()->createInstanceWithContext(
OUSTR("com.sun.star.registry.SimpleRegistry"), xContext ),
UNO_QUERY_THROW );
xMemReg->open( OUString() /* in mem */, false, true );
- xLoader->writeRegistryInfo( xMemReg->getRootKey(), OUString(), getURL() );
-
- const Sequence< Reference<registry::XRegistryKey> > keys(
- xMemReg->getRootKey()->openKeys() );
- for ( sal_Int32 pos = keys.getLength(); pos--; )
- {
- Reference<registry::XRegistryKey> const & xImplKey = keys[ pos ];
- const OUString implName(
- xImplKey->getKeyName().copy( 1 /*leading slash*/ ) );
-
- // check for singletons:
- const Reference<registry::XRegistryKey> xSingletonKey(
- xImplKey->openKey( OUSTR("UNO/SINGLETONS") ) );
- if (xSingletonKey.is() && xSingletonKey->isValid())
- {
- const Sequence< Reference<registry::XRegistryKey> > singletonKeys(
- xSingletonKey->openKeys() );
- for ( sal_Int32 i = singletonKeys.getLength(); i--; )
- {
- Reference<registry::XRegistryKey> const & xSingleton =
- singletonKeys[ i ];
- pSingletons->push_back(
- ::std::pair<OUString, OUString>(
- xSingleton->getKeyName().copy(
- implName.getLength() +
- sizeof ("//UNO/SINGLETONS/") - 1 ),
- xSingleton->getStringValue() ) );
- }
- }
- else
- {
- pImplNames->push_back( implName );
- }
- }
-
- return xLoader;
+ xLoader->writeRegistryInfo( xMemReg->getRootKey(), OUString(), url );
+ getMyBackend()->extractComponentData(
+ xContext, xMemReg->getRootKey(), data, factories, &xLoader, &url);
}
// Package
@@ -1222,223 +1523,74 @@ void BackendImpl::ComponentPackageImpl::processPackage_(
Reference<XCommandEnvironment> const & xCmdEnv )
{
BackendImpl * that = getMyBackend();
-
-
- const bool java = m_loader.equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM("com.sun.star.loader.Java2") );
- const OUString url( getURL() );
- bool isJavaTypelib;
- if (m_bRemoved)
- isJavaTypelib = m_registeredComponentsDb.javaTypeLibrary;
- else
- isJavaTypelib = java &&
- !jarManifestHeaderPresent( url, OUSTR("UNO-Type-Path"), xCmdEnv );
-
- ComponentBackendDb::Data data;
- data.javaTypeLibrary = isJavaTypelib;
- if (doRegisterPackage)
- {
- Reference <uno::XComponentContext> context(that->getComponentContext());
- if (! startup)
- {
- context.set(
- that->getObject( url ), UNO_QUERY );
-
- if (! context.is()) {
+ rtl::OUString url(getURL());
+ if (doRegisterPackage) {
+ ComponentBackendDb::Data data;
+ css::uno::Reference< css::uno::XComponentContext > context;
+ if (startup) {
+ context = that->getComponentContext();
+ } else {
+ context.set(that->getObject(url), css::uno::UNO_QUERY);
+ if (!context.is()) {
context.set(
- that->insertObject( url, raise_uno_process(
- that->getComponentContext(),
- abortChannel ) ),
- UNO_QUERY_THROW );
+ that->insertObject(
+ url,
+ raise_uno_process(
+ that->getComponentContext(), abortChannel)),
+ css::uno::UNO_QUERY_THROW);
}
}
-
- const Reference<registry::XSimpleRegistry> xServicesRDB( getRDB() );
- const Reference<registry::XImplementationRegistration> xImplReg(
+ css::uno::Reference< css::registry::XImplementationRegistration>(
context->getServiceManager()->createInstanceWithContext(
- OUSTR("com.sun.star.registry.ImplementationRegistration"),
- context ), UNO_QUERY_THROW );
-
- xImplReg->registerImplementation( m_loader, url, xServicesRDB );
- //only write to unorc if registration was successful.
- //It may fail if there is no suitable java.
- if (isJavaTypelib)
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.ImplementationRegistration")),
+ context),
+ css::uno::UNO_QUERY_THROW)->registerImplementation(
+ m_loader, url, getRDB());
+ // Only write to unorc after successful registration; it may fail if
+ // there is no suitable java
+ if (m_loader.equalsAsciiL(
+ RTL_CONSTASCII_STRINGPARAM("com.sun.star.loader.Java2")) &&
+ !jarManifestHeaderPresent(url, OUSTR("UNO-Type-Path"), xCmdEnv))
{
- that->addToUnoRc( java, url, xCmdEnv );
+ that->addToUnoRc(RCITEM_JAR_TYPELIB, url, xCmdEnv);
data.javaTypeLibrary = true;
}
-
- t_stringlist implNames;
- t_stringpairvec singletons;
- const Reference<loader::XImplementationLoader> xLoader(
- getComponentInfo( &implNames, &singletons, context ) );
- data.implementationNames = implNames;
- data.singletons = singletons;
-
- if (!startup)
- {
- // factories live insertion:
- const Reference<container::XSet> xSet(
- that->getComponentContext()->getServiceManager(), UNO_QUERY_THROW );
- for ( t_stringlist::const_iterator iPos( implNames.begin() );
- iPos != implNames.end(); ++iPos )
- {
- checkAborted( abortChannel );
- OUString const & implName = *iPos;
- // activate factory:
- const Reference<XInterface> xFactory(
- xLoader->activate(
- implName, OUString(), url,
- xServicesRDB->getRootKey()->openKey(
- OUSTR("/IMPLEMENTATIONS/") + implName ) ) );
- try {
- xSet->insert( Any(xFactory) );
- } // ignore if factory has already been inserted:
- catch (container::ElementExistException &) {
- OSL_ENSURE( 0, "### factory already registered?" );
- }
- }
-
- if (! singletons.empty())
- {
- // singletons live insertion:
- const Reference<container::XNameContainer> xRootContext(
- that->getComponentContext()->getValueByName(
- OUSTR("_root") ), UNO_QUERY );
- if (xRootContext.is())
- {
- for ( t_stringpairvec::const_iterator iPos(
- singletons.begin() );
- iPos != singletons.end(); ++iPos )
- {
- ::std::pair<OUString, OUString> const & sp = *iPos;
- const OUString name( OUSTR("/singletons/") + sp.first );
- // assure no arguments:
- try {
- xRootContext->removeByName( name + OUSTR("/arguments"));
- } catch (container::NoSuchElementException &) {}
- // used service:
- try {
- xRootContext->insertByName(
- name + OUSTR("/service"), Any(sp.second) );
- } catch (container::ElementExistException &) {
- xRootContext->replaceByName(
- name + OUSTR("/service"), Any(sp.second) );
- }
- // singleton entry:
- try {
- xRootContext->insertByName( name, Any() );
- } catch (container::ElementExistException & exc) {
- (void) exc; // avoid warnings
- OSL_ENSURE(
- 0, OUStringToOString(
- exc.Message, RTL_TEXTENCODING_UTF8 ).getStr() );
- xRootContext->replaceByName( name, Any() );
- }
- }
- }
- }
+ std::vector< css::uno::Reference< css::uno::XInterface > > factories;
+ getComponentInfo(&data, &factories, context);
+ if (!startup) {
+ that->componentLiveInsertion(data, factories);
}
-
m_registered = REG_REGISTERED;
- getMyBackend()->addDataToDb(url, data);
- }
- else // revokePackage()
- {
- // set to VOID during revocation process:
+ that->addDataToDb(url, data);
+ } else { // revoke
m_registered = REG_VOID;
-
- //get the remote context. If it does not exist then use the local one
- Reference<XComponentContext> xContext(
- that->getObject( url ), UNO_QUERY );
- bool bRemoteContext = false;
- if (!xContext.is())
- xContext = that->getComponentContext();
- else
- bRemoteContext = true;
-
- t_stringlist implNames;
- t_stringpairvec singletons;
- if (m_bRemoved)
- {
- implNames = m_registeredComponentsDb.implementationNames;
- singletons = m_registeredComponentsDb.singletons;
+ ComponentBackendDb::Data data(that->readDataFromDb(url));
+ css::uno::Reference< css::uno::XComponentContext > context(
+ that->getObject(url), css::uno::UNO_QUERY);
+ bool remoteContext = context.is();
+ if (!remoteContext) {
+ context = that->getComponentContext();
}
- else
- {
- getComponentInfo( &implNames, &singletons, xContext );
+ if (!startup) {
+ that->componentLiveRemoval(data);
}
-
- if (!startup)
- {
- // factories live removal:
- const Reference<container::XSet> xSet(
- that->getComponentContext()->getServiceManager(), UNO_QUERY_THROW );
- for ( t_stringlist::const_iterator iPos( implNames.begin() );
- iPos != implNames.end(); ++iPos )
- {
- OUString const & implName = *iPos;
- try {
- xSet->remove( Any(implName) );
- } // ignore if factory has not been live deployed:
- catch (container::NoSuchElementException &) {
- }
- }
-
- if (! singletons.empty())
- {
- // singletons live removal:
- const Reference<container::XNameContainer> xRootContext(
- that->getComponentContext()->getValueByName(
- OUSTR("_root") ), UNO_QUERY );
- if (xRootContext.is())
- {
- for ( t_stringpairvec::const_iterator iPos(
- singletons.begin() );
- iPos != singletons.end(); ++iPos )
- {
- ::std::pair<OUString, OUString> const & sp = *iPos;
- const OUString name( OUSTR("/singletons/") + sp.first );
- // arguments:
- try {
- xRootContext->removeByName( name + OUSTR("/arguments"));
- }
- catch (container::NoSuchElementException &) {}
- // used service:
- try {
- xRootContext->removeByName( name + OUSTR("/service") );
- }
- catch (container::NoSuchElementException &) {}
- // singleton entry:
- try {
- xRootContext->removeByName( name );
- }
- catch (container::NoSuchElementException & exc) {
- (void) exc; // avoid warnings
- OSL_ENSURE(
- 0, OUStringToOString(
- exc.Message, RTL_TEXTENCODING_UTF8 ).getStr() );
- }
- }
- }
- }
+ css::uno::Reference< css::registry::XImplementationRegistration >(
+ context->getServiceManager()->createInstanceWithContext(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.ImplementationRegistration")),
+ context),
+ css::uno::UNO_QUERY_THROW)->revokeImplementation(url, getRDB());
+ if (data.javaTypeLibrary) {
+ that->removeFromUnoRc(RCITEM_JAR_TYPELIB, url, xCmdEnv);
+ }
+ if (remoteContext) {
+ that->releaseObject(url);
}
-
- const Reference<registry::XSimpleRegistry> xServicesRDB( getRDB() );
- const Reference<registry::XImplementationRegistration> xImplReg(
- xContext->getServiceManager()->createInstanceWithContext(
- OUSTR("com.sun.star.registry.ImplementationRegistration"),
- xContext ), UNO_QUERY_THROW );
- xImplReg->revokeImplementation( url, xServicesRDB );
-
- if (isJavaTypelib)
- that->removeFromUnoRc( java, url, xCmdEnv );
-
- if (bRemoteContext)
- that->releaseObject( url );
-
m_registered = REG_NOT_REGISTERED;
- getMyBackend()->deleteDataFromDb(url);
+ that->deleteDataFromDb(url);
}
}
@@ -1480,7 +1632,8 @@ BackendImpl::TypelibraryPackageImpl::isRegistered_(
return beans::Optional< beans::Ambiguous<sal_Bool> >(
true /* IsPresent */,
beans::Ambiguous<sal_Bool>(
- that->hasInUnoRc( m_jarFile, getURL() ),
+ that->hasInUnoRc(
+ m_jarFile ? RCITEM_JAR_TYPELIB : RCITEM_RDB_TYPELIB, getURL() ),
false /* IsAmbiguous */ ) );
}
@@ -1546,11 +1699,13 @@ void BackendImpl::TypelibraryPackageImpl::processPackage_(
}
}
- that->addToUnoRc( m_jarFile, url, xCmdEnv );
+ that->addToUnoRc( m_jarFile ? RCITEM_JAR_TYPELIB : RCITEM_RDB_TYPELIB,
+ url, xCmdEnv );
}
else // revokePackage()
{
- that->removeFromUnoRc( m_jarFile, url, xCmdEnv );
+ that->removeFromUnoRc(
+ m_jarFile ? RCITEM_JAR_TYPELIB : RCITEM_RDB_TYPELIB, url, xCmdEnv );
// revoking types at runtime, possible, sensible?
if (!m_xTDprov.is())
@@ -1570,6 +1725,97 @@ void BackendImpl::TypelibraryPackageImpl::processPackage_(
}
}
+BackendImpl * BackendImpl::ComponentsPackageImpl::getMyBackend() const
+{
+ BackendImpl * pBackend = static_cast<BackendImpl *>(m_myBackend.get());
+ if (NULL == pBackend)
+ {
+ //Throws a DisposedException
+ check();
+ //We should never get here...
+ throw RuntimeException(
+ OUSTR("Failed to get the BackendImpl"),
+ static_cast<OWeakObject*>(const_cast<ComponentsPackageImpl *>(this)));
+ }
+ return pBackend;
+}
+
+beans::Optional< beans::Ambiguous<sal_Bool> >
+BackendImpl::ComponentsPackageImpl::isRegistered_(
+ ::osl::ResettableMutexGuard &,
+ ::rtl::Reference<AbortChannel> const &,
+ Reference<XCommandEnvironment> const & )
+{
+ return beans::Optional< beans::Ambiguous<sal_Bool> >(
+ true,
+ beans::Ambiguous<sal_Bool>(
+ getMyBackend()->hasInUnoRc(RCITEM_COMPONENTS, getURL()), false));
+}
+
+void BackendImpl::ComponentsPackageImpl::processPackage_(
+ ::osl::ResettableMutexGuard &,
+ bool doRegisterPackage,
+ bool startup,
+ ::rtl::Reference<AbortChannel> const & abortChannel,
+ Reference<XCommandEnvironment> const & xCmdEnv )
+{
+ BackendImpl * that = getMyBackend();
+ rtl::OUString url(getURL());
+ if (doRegisterPackage) {
+ ComponentBackendDb::Data data;
+ data.javaTypeLibrary = false;
+ std::vector< css::uno::Reference< css::uno::XInterface > > factories;
+ css::uno::Reference< css::uno::XComponentContext > context(
+ that->getObject(url), css::uno::UNO_QUERY);
+ if (!context.is()) {
+ context.set(
+ that->insertObject(
+ url,
+ raise_uno_process(
+ that->getComponentContext(), abortChannel)),
+ css::uno::UNO_QUERY_THROW);
+ }
+ css::uno::Reference< css::registry::XSimpleRegistry > registry(
+ css::uno::Reference< css::lang::XMultiComponentFactory >(
+ that->getComponentContext()->getServiceManager(),
+ css::uno::UNO_SET_THROW)->createInstanceWithContext(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry")),
+ that->getComponentContext()),
+ css::uno::UNO_QUERY_THROW);
+ registry->open(expandUnoRcUrl(url), true, false);
+ getMyBackend()->extractComponentData(
+ context,
+ that->openRegistryKey(
+ registry->getRootKey(),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IMPLEMENTATIONS"))),
+ &data, &factories, 0, 0);
+ registry->close();
+ if (!startup) {
+ that->componentLiveInsertion(data, factories);
+ }
+ that->addDataToDb(url, data);
+ that->addToUnoRc(RCITEM_COMPONENTS, url, xCmdEnv);
+ } else { // revoke
+ that->removeFromUnoRc(RCITEM_COMPONENTS, url, xCmdEnv);
+ if (!startup) {
+ that->componentLiveRemoval(that->readDataFromDb(url));
+ }
+ that->releaseObject(url);
+ that->deleteDataFromDb(url);
+ }
+}
+
+BackendImpl::ComponentsPackageImpl::ComponentsPackageImpl(
+ ::rtl::Reference<PackageRegistryBackend> const & myBackend,
+ OUString const & url, OUString const & name,
+ Reference<deployment::XPackageTypeInfo> const & xPackageType,
+ bool bRemoved, OUString const & identifier)
+ : Package( myBackend, url, name, name /* display-name */,
+ xPackageType, bRemoved, identifier)
+{}
+
} // anon namespace
namespace sdecl = comphelper::service_decl;
diff --git a/desktop/source/deployment/registry/component/dp_component.hrc b/desktop/source/deployment/registry/component/dp_component.hrc
index 53085a48d185..4a8c4184a994 100644
--- a/desktop/source/deployment/registry/component/dp_component.hrc
+++ b/desktop/source/deployment/registry/component/dp_component.hrc
@@ -33,6 +33,7 @@
#define RID_STR_DYN_COMPONENT (RID_DEPLOYMENT_COMPONENT_START+10)
#define RID_STR_JAVA_COMPONENT (RID_DEPLOYMENT_COMPONENT_START+11)
#define RID_STR_PYTHON_COMPONENT (RID_DEPLOYMENT_COMPONENT_START+12)
+#define RID_STR_COMPONENTS (RID_DEPLOYMENT_COMPONENT_START+13)
#define RID_STR_RDB_TYPELIB (RID_DEPLOYMENT_COMPONENT_START+20)
#define RID_STR_JAVA_TYPELIB (RID_DEPLOYMENT_COMPONENT_START+21)
diff --git a/desktop/source/deployment/registry/component/dp_component.src b/desktop/source/deployment/registry/component/dp_component.src
index 36f2a1cc4a5c..9e9ab1a82bbf 100644
--- a/desktop/source/deployment/registry/component/dp_component.src
+++ b/desktop/source/deployment/registry/component/dp_component.src
@@ -42,6 +42,11 @@ String RID_STR_PYTHON_COMPONENT
Text [ en-US ] = "UNO Python Component";
};
+String RID_STR_COMPONENTS
+{
+ Text [ en-US ] = "UNO Components";
+};
+
String RID_STR_RDB_TYPELIB
{
Text [ en-US ] = "UNO RDB Type Library";
diff --git a/desktop/source/deployment/registry/dp_backend.cxx b/desktop/source/deployment/registry/dp_backend.cxx
index d781ba9e40ef..fa53d4e78a15 100644..100755
--- a/desktop/source/deployment/registry/dp_backend.cxx
+++ b/desktop/source/deployment/registry/dp_backend.cxx
@@ -520,6 +520,15 @@ OUString Package::getDescription() throw (
}
//______________________________________________________________________________
+OUString Package::getLicenseText() throw (
+ deployment::ExtensionRemovedException,RuntimeException)
+{
+ if (m_bRemoved)
+ throw deployment::ExtensionRemovedException();
+ return OUString();
+}
+
+//______________________________________________________________________________
Sequence<OUString> Package::getUpdateInformationURLs() throw (
deployment::ExtensionRemovedException, RuntimeException)
{
diff --git a/desktop/source/deployment/registry/help/dp_help.cxx b/desktop/source/deployment/registry/help/dp_help.cxx
index 5a5efe825cfb..53a7ba1c316d 100644
--- a/desktop/source/deployment/registry/help/dp_help.cxx
+++ b/desktop/source/deployment/registry/help/dp_help.cxx
@@ -450,7 +450,7 @@ void BackendImpl::implProcessHelp
aJarFile, rtl_UriCharClassPchar,
rtl_UriEncodeIgnoreEscapes,
RTL_TEXTENCODING_UTF8 );
- rtl::OUString aDestBasePath = rtl::OUString::createFromAscii( "vnd.sun.star.pkg://" );
+ rtl::OUString aDestBasePath = rtl::OUString::createFromAscii( "vnd.sun.star.zip://" );
aDestBasePath += aEncodedJarFilePath;
aDestBasePath += rtl::OUString::createFromAscii( "/" );
diff --git a/desktop/source/deployment/registry/inc/dp_backend.h b/desktop/source/deployment/registry/inc/dp_backend.h
index 3d3bf7cf912c..20fc2a8dc7e1 100644..100755
--- a/desktop/source/deployment/registry/inc/dp_backend.h
+++ b/desktop/source/deployment/registry/inc/dp_backend.h
@@ -237,6 +237,9 @@ public:
virtual ::rtl::OUString SAL_CALL getDescription()
throw (css::deployment::ExtensionRemovedException,
css::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getLicenseText()
+ throw (css::deployment::ExtensionRemovedException,
+ css::uno::RuntimeException);
virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL
getUpdateInformationURLs()
throw (css::deployment::ExtensionRemovedException,
@@ -294,7 +297,7 @@ protected:
::rtl::OUString m_context;
// currently only for library containers:
- enum context {
+ enum {
CONTEXT_UNKNOWN,
CONTEXT_USER, CONTEXT_SHARED,CONTEXT_BUNDLED, CONTEXT_TMP,
CONTEXT_DOCUMENT
diff --git a/desktop/source/deployment/registry/package/dp_package.cxx b/desktop/source/deployment/registry/package/dp_package.cxx
index feb55d0af3bf..262bbef420f2 100644..100755
--- a/desktop/source/deployment/registry/package/dp_package.cxx
+++ b/desktop/source/deployment/registry/package/dp_package.cxx
@@ -190,6 +190,9 @@ class BackendImpl : public ImplBaseT
virtual OUString SAL_CALL getDescription()
throw (deployment::ExtensionRemovedException, RuntimeException);
+ virtual OUString SAL_CALL getLicenseText()
+ throw (deployment::ExtensionRemovedException, RuntimeException);
+
virtual void SAL_CALL exportTo(
OUString const & destFolderURL, OUString const & newTitle,
sal_Int32 nameClashAction,
@@ -986,16 +989,45 @@ OUString BackendImpl::PackageImpl::getDescription()
if (sRelativeURL.getLength())
{
OUString sURL = m_url_expanded + OUSTR("/") + sRelativeURL;
- sDescription = getTextFromURL(
- css::uno::Reference< css::ucb::XCommandEnvironment >(), sURL);
+ try
+ {
+ sDescription = getTextFromURL( css::uno::Reference< css::ucb::XCommandEnvironment >(), sURL );
+ }
+ catch ( css::deployment::DeploymentException& )
+ {
+ OSL_ENSURE( 0, ::rtl::OUStringToOString( ::comphelper::anyToString( ::cppu::getCaughtException() ), RTL_TEXTENCODING_UTF8 ).getStr() );
+ }
}
+
if (sDescription.getLength())
return sDescription;
- else if(m_oldDescription.getLength())
- return m_oldDescription;
- else
- return OUString();
+ return m_oldDescription;
+}
+
+//______________________________________________________________________________
+OUString BackendImpl::PackageImpl::getLicenseText()
+ throw (deployment::ExtensionRemovedException, RuntimeException)
+{
+ if (m_bRemoved)
+ throw deployment::ExtensionRemovedException();
+
+ OUString sLicense;
+ DescriptionInfoset aInfo = getDescriptionInfoset();
+
+ ::boost::optional< SimpleLicenseAttributes > aSimplLicAttr = aInfo.getSimpleLicenseAttributes();
+ if ( aSimplLicAttr )
+ {
+ OUString aLicenseURL = aInfo.getLocalizedLicenseURL();
+
+ if ( aLicenseURL.getLength() )
+ {
+ OUString aFullURL = m_url_expanded + OUSTR("/") + aLicenseURL;
+ sLicense = getTextFromURL( Reference< ucb::XCommandEnvironment >(), aFullURL);
+ }
+ }
+
+ return sLicense;
}
//______________________________________________________________________________
diff --git a/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx b/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx
index 8a4ee1b45fbc..f3195701fc7c 100644..100755
--- a/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx
+++ b/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx
@@ -88,6 +88,7 @@ class BackendImpl : public ::dp_registry::backend::PackageRegistryBackend
OUString const & identifier);
// XPackage
virtual OUString SAL_CALL getDescription() throw (RuntimeException);
+ virtual OUString SAL_CALL getLicenseText() throw (RuntimeException);
};
friend class PackageImpl;
@@ -133,6 +134,12 @@ OUString BackendImpl::PackageImpl::getDescription() throw (RuntimeException)
}
//______________________________________________________________________________
+OUString BackendImpl::PackageImpl::getLicenseText() throw (RuntimeException)
+{
+ return Package::getDescription();
+}
+
+//______________________________________________________________________________
BackendImpl::PackageImpl::PackageImpl(
::rtl::Reference<BackendImpl> const & myBackend,
OUString const & url, OUString const & libType, bool bRemoved,
diff --git a/desktop/source/migration/wizard.cxx b/desktop/source/migration/wizard.cxx
index 81a789a613b9..5cc90577aaff 100644
--- a/desktop/source/migration/wizard.cxx
+++ b/desktop/source/migration/wizard.cxx
@@ -209,7 +209,6 @@ FirstStartWizard::FirstStartWizard( Window* pParent, sal_Bool bLicenseNeedsAccep
m_aDefaultPath = defineWizardPagesDependingFromContext();
activatePath(m_aDefaultPath, sal_True);
- enterState(STATE_WELCOME);
ActivatePage();
// set text of finish putton:
diff --git a/desktop/test/deployment/active/Addons.xcu b/desktop/test/deployment/active/Addons.xcu
new file mode 100644
index 000000000000..cc75f2ab8f64
--- /dev/null
+++ b/desktop/test/deployment/active/Addons.xcu
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="Addons">
+ <node o:name="AddonUI">
+ <node o:name="OfficeMenuBar">
+ <node o:name="org.openoffice.test.desktop.deployment.active"
+ o:op="replace">
+ <prop o:name="Title" xml:lang="en-US">
+ <value>active</value>
+ </prop>
+ <node o:name="Submenu">
+ <node o:name="1" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_native:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>native</value>
+ </prop>
+ </node>
+ <node o:name="2" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_java:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>java</value>
+ </prop>
+ </node>
+ <node o:name="3" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_python:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>python</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/active/Dispatch.java b/desktop/test/deployment/active/Dispatch.java
new file mode 100644
index 000000000000..25443f96e092
--- /dev/null
+++ b/desktop/test/deployment/active/Dispatch.java
@@ -0,0 +1,101 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.active_java;
+
+import com.sun.star.awt.MessageBoxButtons;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XMessageBox;
+import com.sun.star.awt.XMessageBoxFactory;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XStatusListener;
+import com.sun.star.lang.WrappedTargetRuntimeException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Dispatch extends WeakBase implements XServiceInfo, XDispatch
+{
+ public Dispatch(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return false; //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public void dispatch(URL URL, PropertyValue[] Arguments) {
+ try {
+ XMultiComponentFactory smgr = UnoRuntime.queryInterface(
+ XMultiComponentFactory.class, context.getServiceManager());
+ XMessageBox box = UnoRuntime.queryInterface(
+ XMessageBoxFactory.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.awt.Toolkit", context)).
+ createMessageBox(
+ UnoRuntime.queryInterface(
+ XWindowPeer.class,
+ (UnoRuntime.queryInterface(
+ XDesktop.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.frame.Desktop", context)).
+ getCurrentFrame().getComponentWindow())),
+ new Rectangle(), "infobox", MessageBoxButtons.BUTTONS_OK,
+ "active", "java");
+ box.execute();
+ UnoRuntime.queryInterface(XComponent.class, box).dispose();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ throw e;
+ } catch (com.sun.star.uno.Exception e) {
+ throw new WrappedTargetRuntimeException(
+ "wrapped: " + e.getMessage(), this, e);
+ }
+ }
+
+ public void addStatusListener(XStatusListener Control, URL URL) {}
+
+ public void removeStatusListener(XStatusListener Control, URL URL) {}
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.active_java_singleton";
+
+ static final String[] serviceNames = new String[0];
+}
diff --git a/desktop/test/deployment/active/MANIFEST.MF b/desktop/test/deployment/active/MANIFEST.MF
new file mode 100644
index 000000000000..63480874dd55
--- /dev/null
+++ b/desktop/test/deployment/active/MANIFEST.MF
@@ -0,0 +1,3 @@
+Sealed: true
+RegistrationClassName: com.sun.star.comp.test.deployment.active_java.Services
+UNO-Type-Path:
diff --git a/desktop/test/deployment/active/ProtocolHandler.xcu b/desktop/test/deployment/active/ProtocolHandler.xcu
new file mode 100644
index 000000000000..017bdea72bea
--- /dev/null
+++ b/desktop/test/deployment/active/ProtocolHandler.xcu
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="ProtocolHandler">
+ <node o:name="HandlerSet">
+ <node o:name="com.sun.star.test.deployment.active_native" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_native:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.active_java" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_java:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.active_python" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_python:*</value>
+ </prop>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/active/Provider.java b/desktop/test/deployment/active/Provider.java
new file mode 100644
index 000000000000..df31979f4b9d
--- /dev/null
+++ b/desktop/test/deployment/active/Provider.java
@@ -0,0 +1,81 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.active_java;
+
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Provider extends WeakBase
+ implements XServiceInfo, XDispatchProvider
+{
+ public Provider(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return ServiceName.equals(getSupportedServiceNames()[0]); //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public XDispatch queryDispatch(
+ URL URL, String TargetFrameName, int SearchFlags)
+ {
+ return UnoRuntime.queryInterface(
+ XDispatch.class,
+ context.getValueByName(
+ "/singletons/" +
+ "com.sun.star.test.deployment.active_java_singleton"));
+ }
+
+ public XDispatch[] queryDispatches(DispatchDescriptor[] Requests) {
+ XDispatch[] s = new XDispatch[Requests.length];
+ for (int i = 0; i < s.length; ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+ }
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.active_java";
+
+ static final String[] serviceNames = new String[] {
+ "com.sun.star.test.deployment.active_java" };
+}
diff --git a/desktop/test/deployment/active/Services.java b/desktop/test/deployment/active/Services.java
new file mode 100644
index 000000000000..4ea19f4b7a71
--- /dev/null
+++ b/desktop/test/deployment/active/Services.java
@@ -0,0 +1,72 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.active_java;
+
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.lib.uno.helper.Factory;
+import com.sun.star.registry.InvalidRegistryException;
+import com.sun.star.registry.XRegistryKey;
+
+public final class Services {
+ private Services() {}
+
+ public static XSingleComponentFactory __getComponentFactory(
+ String implementation)
+ {
+ if (implementation.equals(Dispatch.implementationName)) {
+ return Factory.createComponentFactory(
+ Dispatch.class, Dispatch.implementationName,
+ Dispatch.serviceNames);
+ } else if (implementation.equals(Provider.implementationName)) {
+ return Factory.createComponentFactory(
+ Provider.class, Provider.implementationName,
+ Provider.serviceNames);
+ } else {
+ return null;
+ }
+ }
+
+ public static boolean __writeRegistryServiceInfo(XRegistryKey key) {
+ if (!(Factory.writeRegistryServiceInfo(
+ Dispatch.implementationName, Dispatch.serviceNames, key) &&
+ Factory.writeRegistryServiceInfo(
+ Provider.implementationName, Provider.serviceNames, key)))
+ {
+ return false;
+ }
+ try {
+ key.
+ createKey(
+ "/" + Dispatch.implementationName +
+ "/UNO/SINGLETONS/" +
+ "com.sun.star.test.deployment.active_java_singleton").
+ setStringValue(Dispatch.implementationName);
+ } catch (InvalidRegistryException e) {
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/desktop/test/deployment/active/active_native.cxx b/desktop/test/deployment/active/active_native.cxx
new file mode 100644
index 000000000000..a34d8de88a61
--- /dev/null
+++ b/desktop/test/deployment/active/active_native.cxx
@@ -0,0 +1,320 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+#include "precompiled_desktop.hxx"
+#include "sal/config.h"
+
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/awt/MessageBoxButtons.hpp"
+#include "com/sun/star/awt/Rectangle.hpp"
+#include "com/sun/star/awt/XMessageBox.hpp"
+#include "com/sun/star/awt/XMessageBoxFactory.hpp"
+#include "com/sun/star/awt/XWindowPeer.hpp"
+#include "com/sun/star/beans/PropertyValue.hpp"
+#include "com/sun/star/frame/DispatchDescriptor.hpp"
+#include "com/sun/star/frame/XDesktop.hpp"
+#include "com/sun/star/frame/XDispatch.hpp"
+#include "com/sun/star/frame/XDispatchProvider.hpp"
+#include "com/sun/star/frame/XFrame.hpp"
+#include "com/sun/star/frame/XStatusListener.hpp"
+#include "com/sun/star/lang/XComponent.hpp"
+#include "com/sun/star/lang/XMultiComponentFactory.hpp"
+#include "com/sun/star/lang/XServiceInfo.hpp"
+#include "com/sun/star/registry/XRegistryKey.hpp"
+#include "com/sun/star/uno/DeploymentException.hpp"
+#include "com/sun/star/uno/Exception.hpp"
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/RuntimeException.hpp"
+#include "com/sun/star/uno/Sequence.hxx"
+#include "com/sun/star/uno/XComponentContext.hpp"
+#include "com/sun/star/uno/XInterface.hpp"
+#include "com/sun/star/util/URL.hpp"
+#include "cppuhelper/factory.hxx"
+#include "cppuhelper/implbase2.hxx"
+#include "cppuhelper/implementationentry.hxx"
+#include "cppuhelper/weak.hxx"
+#include "osl/diagnose.h"
+#include "rtl/textenc.h"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "sal/types.h"
+#include "uno/lbnames.h"
+
+namespace {
+
+namespace css = com::sun::star;
+
+class Provider:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatchProvider >,
+ private boost::noncopyable
+{
+public:
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ SAL_THROW((css::uno::Exception))
+ { return static_cast< cppu::OWeakObject * >(new Provider(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames();
+
+private:
+ Provider(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { OSL_ASSERT(context.is()); }
+
+ virtual ~Provider() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
+ throw (css::uno::RuntimeException)
+ { return ServiceName == getSupportedServiceNames()[0]; } //TODO
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return static_getSupportedServiceNames(); }
+
+ virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+ SAL_CALL queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+ throw (css::uno::RuntimeException);
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Provider::static_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.comp.test.deployment.active_native"));
+}
+
+css::uno::Sequence< rtl::OUString > Provider::static_getSupportedServiceNames()
+{
+ rtl::OUString name(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.test.deployment.active_native"));
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
+css::uno::Reference< css::frame::XDispatch > Provider::queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Reference< css::frame::XDispatch > dispatch;
+ if (!(context_->getValueByName(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "/singletons/com.sun.star.test.deployment."
+ "active_native_singleton"))) >>=
+ dispatch) ||
+ !dispatch.is())
+ {
+ throw css::uno::DeploymentException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "component context fails to supply singleton"
+ " com.sun.star.test.deployment.active_native_singleton of"
+ " type com.sun.star.frame.XDispatch")),
+ context_);
+ }
+ return dispatch;
+}
+
+css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+Provider::queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > s(
+ Requests.getLength());
+ for (sal_Int32 i = 0; i < s.getLength(); ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+}
+
+class Dispatch:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatch >,
+ private boost::noncopyable
+{
+public:
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ SAL_THROW((css::uno::Exception))
+ { return static_cast< cppu::OWeakObject * >(new Dispatch(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames()
+ { return css::uno::Sequence< rtl::OUString >(); }
+
+private:
+ Dispatch(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { OSL_ASSERT(context.is()); }
+
+ virtual ~Dispatch() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const &)
+ throw (css::uno::RuntimeException)
+ { return false; } //TODO
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return static_getSupportedServiceNames(); }
+
+ virtual void SAL_CALL dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL addStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &)
+ throw (css::uno::RuntimeException)
+ {}
+
+ virtual void SAL_CALL removeStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &)
+ throw (css::uno::RuntimeException)
+ {}
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Dispatch::static_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.comp.test.deployment.active_native_singleton"));
+}
+
+void Dispatch::dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Reference< css::lang::XMultiComponentFactory > smgr(
+ context_->getServiceManager(), css::uno::UNO_SET_THROW);
+ css::uno::Reference< css::awt::XMessageBox > box(
+ css::uno::Reference< css::awt::XMessageBoxFactory >(
+ smgr->createInstanceWithContext(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.awt.Toolkit")), context_),
+ css::uno::UNO_QUERY_THROW)->createMessageBox(
+ css::uno::Reference< css::awt::XWindowPeer >(
+ css::uno::Reference< css::frame::XFrame >(
+ css::uno::Reference< css::frame::XDesktop >(
+ smgr->createInstanceWithContext(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.frame.Desktop")),
+ context_),
+ css::uno::UNO_QUERY_THROW)->getCurrentFrame(),
+ css::uno::UNO_SET_THROW)->getComponentWindow(),
+ css::uno::UNO_QUERY_THROW),
+ css::awt::Rectangle(),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("infobox")),
+ css::awt::MessageBoxButtons::BUTTONS_OK,
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("active")),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("native"))),
+ css::uno::UNO_SET_THROW);
+ box->execute();
+ css::uno::Reference< css::lang::XComponent >(
+ box, css::uno::UNO_QUERY_THROW)->dispose();
+}
+
+static cppu::ImplementationEntry const services[] = {
+ { &Provider::static_create, &Provider::static_getImplementationName,
+ &Provider::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, 0, 0 },
+ { &Dispatch::static_create, &Dispatch::static_getImplementationName,
+ &Dispatch::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, 0, 0 },
+ { 0, 0, 0, 0, 0, 0 }
+};
+
+}
+
+extern "C" void * SAL_CALL component_getFactory(
+ char const * pImplName, void * pServiceManager, void * pRegistryKey)
+{
+ return cppu::component_getFactoryHelper(
+ pImplName, pServiceManager, pRegistryKey, services);
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+ char const ** ppEnvTypeName, uno_Environment **)
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+ void * pServiceManager, void * pRegistryKey)
+{
+ if (!component_writeInfoHelper(pServiceManager, pRegistryKey, services)) {
+ return false;
+ }
+ try {
+ css::uno::Reference< css::registry::XRegistryKey >(
+ (css::uno::Reference< css::registry::XRegistryKey >(
+ static_cast< css::registry::XRegistryKey * >(pRegistryKey))->
+ createKey(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/")) +
+ Dispatch::static_getImplementationName() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "/UNO/SINGLETONS/com.sun.star.test.deployment."
+ "active_native_singleton")))),
+ css::uno::UNO_SET_THROW)->
+ setStringValue(Dispatch::static_getImplementationName());
+ } catch (css::uno::Exception & e) {
+ (void) e;
+ OSL_TRACE(
+ "active_native component_writeInfo exception: %s",
+ rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_UTF8).getStr());
+ return false;
+ }
+ return true;
+}
diff --git a/desktop/test/deployment/active/active_python.py b/desktop/test/deployment/active/active_python.py
new file mode 100644
index 000000000000..8ba0947b6bf8
--- /dev/null
+++ b/desktop/test/deployment/active/active_python.py
@@ -0,0 +1,120 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+import uno
+import unohelper
+
+from com.sun.star.awt import Rectangle
+from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK
+from com.sun.star.frame import XDispatch, XDispatchProvider
+from com.sun.star.lang import XServiceInfo
+from com.sun.star.registry import InvalidRegistryException
+
+class Provider(unohelper.Base, XServiceInfo, XDispatchProvider):
+ implementationName = "com.sun.star.comp.test.deployment.active_python"
+
+ serviceNames = ("com.sun.star.test.deployment.active_python",)
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def queryDispatch(self, URL, TargetFrame, SearchFlags):
+ return self.context.getValueByName( \
+ "/singletons/com.sun.star.test.deployment.active_python_singleton")
+
+ def queryDispatches(self, Requests):
+ tuple( \
+ self.queryDispatch(i.FeatureURL, i.FrameName, i.SearchFlags) \
+ for i in Requests)
+
+class Dispatch(unohelper.Base, XServiceInfo, XDispatch):
+ implementationName = \
+ "com.sun.star.comp.test.deployment.active_python_singleton"
+
+ serviceNames = ()
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def dispatch(self, URL, Arguments):
+ smgr = self.context.getServiceManager()
+ box = smgr.createInstanceWithContext( \
+ "com.sun.star.awt.Toolkit", self.context).createMessageBox( \
+ smgr.createInstanceWithContext( \
+ "com.sun.star.frame.Desktop", self.context). \
+ getCurrentFrame().getComponentWindow(), \
+ Rectangle(), "infobox", BUTTONS_OK, "active", "python")
+ box.execute();
+ box.dispose();
+
+ def addStatusListener(self, Control, URL):
+ pass
+
+ def removeStatusListener(self, Control, URL):
+ pass
+
+def getComponentFactory(implementationName, smgr, regKey):
+ if implementationName == Provider.implementationName:
+ return unohelper.createSingleServiceFactory( \
+ Provider, Provider.implementationName, Provider.serviceNames)
+ elif implementationName == Dispatch.implementationName:
+ return unohelper.createSingleServiceFactory( \
+ Dispatch, Dispatch.implementationName, Dispatch.serviceNames)
+ else:
+ return None
+
+def writeRegistryInfo(smgr, regKey):
+ try:
+ for i in (Provider, Dispatch):
+ key = regKey.createKey("/" + i.implementationName + "/UNO")
+ for j in i.serviceNames:
+ key.createKey("/SERVICES/" + j);
+ regKey.createKey( \
+ "/" + Dispatch.implementationName + "/UNO/SINGLETONS/" \
+ "com.sun.star.test.deployment.active_python_singleton"). \
+ setStringValue(Dispatch.implementationName)
+ except InvalidRegistryException:
+ return False
+ return True
diff --git a/desktop/test/deployment/active/description.xml b/desktop/test/deployment/active/description.xml
new file mode 100644
index 000000000000..fd7049e0cc3d
--- /dev/null
+++ b/desktop/test/deployment/active/description.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:identifier
+ value="org.openoffice/framework/desktop/test/deployment/active"/>
+ <d:version value="1"/>
+ <d:dependencies>
+ <d:OpenOffice.org-minimal-version d:name="OpenOffice.org 3.4" value="3.4"/>
+ </d:dependencies>
+</d:description>
diff --git a/desktop/test/deployment/active/makefile.mk b/desktop/test/deployment/active/makefile.mk
new file mode 100644
index 000000000000..5511a39c8baf
--- /dev/null
+++ b/desktop/test/deployment/active/makefile.mk
@@ -0,0 +1,83 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+PRJ = ../../..
+PRJNAME = desktop
+TARGET = test_deployment_active
+
+ENABLE_EXCEPTIONS = TRUE
+
+PACKAGE = com/sun/star/comp/test/deployment/active_java
+JAVAFILES = Dispatch.java Provider.java Services.java
+JARFILES = juh.jar ridl.jar unoil.jar
+
+.INCLUDE: settings.mk
+
+DLLPRE =
+
+SLOFILES = $(SHL1OBJS)
+
+SHL1TARGET = active_native.uno
+SHL1OBJS = $(SLO)/active_native.obj
+SHL1RPATH = OXT
+SHL1STDLIBS = $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB)
+SHL1VERSIONMAP = $(SOLARENV)/src/reg-component.map
+DEF1NAME = $(SHL1TARGET)
+
+.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/active.oxt
+
+$(MISC)/active.oxt : manifest.xml description.xml Addons.xcu \
+ ProtocolHandler.xcu $(SHL1TARGETN) $(MISC)/$(TARGET)/active_java.jar \
+ active_python.py
+ $(RM) $@
+ $(RM) -r $(MISC)/$(TARGET)/active.oxt-zip
+ $(MKDIR) $(MISC)/$(TARGET)/active.oxt-zip
+ $(MKDIRHIER) $(MISC)/$(TARGET)/active.oxt-zip/META-INF
+ $(SED) -e 's|@PATH@|$(SHL1TARGETN:f)|g' \
+ -e 's|@PLATFORM@|$(RTL_OS:l)_$(RTL_ARCH:l)|g' < manifest.xml \
+ > $(MISC)/$(TARGET)/active.oxt-zip/META-INF/manifest.xml
+ $(COPY) description.xml Addons.xcu ProtocolHandler.xcu $(SHL1TARGETN) \
+ $(MISC)/$(TARGET)/active_java.jar active_python.py \
+ $(MISC)/$(TARGET)/active.oxt-zip/
+ cd $(MISC)/$(TARGET)/active.oxt-zip && zip ../../active.oxt \
+ META-INF/manifest.xml description.xml Addons.xcu ProtocolHandler.xcu \
+ $(SHL1TARGETN:f) active_java.jar active_python.py
+
+$(MISC)/$(TARGET)/active_java.jar : MANIFEST.MF $(JAVATARGET)
+ $(MKDIRHIER) $(@:d)
+ $(RM) $@
+ $(RM) -r $(MISC)/$(TARGET)/active_java.jar-zip
+ $(MKDIR) $(MISC)/$(TARGET)/active_java.jar-zip
+ $(MKDIRHIER) $(MISC)/$(TARGET)/active_java.jar-zip/META-INF \
+ $(MISC)/$(TARGET)/active_java.jar-zip/$(PACKAGE)
+ $(COPY) MANIFEST.MF $(MISC)/$(TARGET)/active_java.jar-zip/META-INF/
+ $(COPY) $(foreach,i,$(JAVAFILES:b) $(CLASSDIR)/$(PACKAGE)/$i.class) \
+ $(MISC)/$(TARGET)/active_java.jar-zip/$(PACKAGE)/
+ cd $(MISC)/$(TARGET)/active_java.jar-zip && zip ../active_java.jar \
+ META-INF/MANIFEST.MF $(foreach,i,$(JAVAFILES:b) $(PACKAGE)/$i.class)
diff --git a/desktop/test/deployment/active/manifest.xml b/desktop/test/deployment/active/manifest.xml
new file mode 100644
index 000000000000..4f076696663b
--- /dev/null
+++ b/desktop/test/deployment/active/manifest.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="Addons.xcu"/>
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="ProtocolHandler.xcu"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-component;type=native;platform=@PLATFORM@"
+ m:full-path="@PATH@"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-component;type=Java"
+ m:full-path="active_java.jar"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-component;type=Python"
+ m:full-path="active_python.py"/>
+</m:manifest>
diff --git a/desktop/test/deployment/boxt/boxt.cxx b/desktop/test/deployment/boxt/boxt.cxx
index dc82c0c004d6..245617a2ad12 100644
--- a/desktop/test/deployment/boxt/boxt.cxx
+++ b/desktop/test/deployment/boxt/boxt.cxx
@@ -35,8 +35,6 @@
#include "com/sun/star/frame/XDispatchProvider.hpp"
#include "com/sun/star/frame/XStatusListener.hpp"
#include "com/sun/star/lang/XServiceInfo.hpp"
-#include "com/sun/star/lang/XSingleComponentFactory.hpp"
-#include "com/sun/star/uno/Any.hxx"
#include "com/sun/star/uno/Exception.hpp"
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/RuntimeException.hpp"
@@ -45,7 +43,6 @@
#include "com/sun/star/uno/XInterface.hpp"
#include "com/sun/star/util/URL.hpp"
#include "cppuhelper/factory.hxx"
-#include "cppuhelper/implbase1.hxx"
#include "cppuhelper/implbase3.hxx"
#include "cppuhelper/implementationentry.hxx"
#include "cppuhelper/weak.hxx"
@@ -61,21 +58,6 @@ namespace {
namespace css = com::sun::star;
-namespace service {
-
-rtl::OUString getImplementationName() {
- return rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
-}
-
-css::uno::Sequence< rtl::OUString > getSupportedServiceNames() {
- rtl::OUString name(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
- return css::uno::Sequence< rtl::OUString >(&name, 1);
-}
-
-}
-
class Service:
public cppu::WeakImplHelper3<
css::lang::XServiceInfo, css::frame::XDispatchProvider,
@@ -83,14 +65,24 @@ class Service:
private boost::noncopyable
{
public:
- Service() {}
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const &)
+ SAL_THROW((css::uno::Exception))
+ { return static_cast< cppu::OWeakObject * >(new Service); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames();
private:
+ Service() {}
+
virtual ~Service() {}
virtual rtl::OUString SAL_CALL getImplementationName()
throw (css::uno::RuntimeException)
- { return service::getImplementationName(); }
+ { return static_getImplementationName(); }
virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
throw (css::uno::RuntimeException)
@@ -98,7 +90,7 @@ private:
virtual css::uno::Sequence< rtl::OUString > SAL_CALL
getSupportedServiceNames() throw (css::uno::RuntimeException)
- { return service::getSupportedServiceNames(); }
+ { return static_getSupportedServiceNames(); }
virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
css::util::URL const &, rtl::OUString const &, sal_Int32)
@@ -128,6 +120,17 @@ private:
{}
};
+rtl::OUString Service::static_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
+}
+
+css::uno::Sequence< rtl::OUString > Service::static_getSupportedServiceNames() {
+ rtl::OUString name(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
Service::queryDispatches(
css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
@@ -155,61 +158,10 @@ void Service::dispatch(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test")));
}
-class Factory:
- public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
- private boost::noncopyable
-{
-public:
- Factory() {}
-
-private:
- virtual ~Factory() {}
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
- createInstanceWithContext(
- css::uno::Reference< css::uno::XComponentContext > const &)
- throw (css::uno::Exception, css::uno::RuntimeException)
- { return static_cast< cppu::OWeakObject * >(new Service); }
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
- createInstanceWithArgumentsAndContext(
- css::uno::Sequence< css::uno::Any > const &,
- css::uno::Reference< css::uno::XComponentContext > const & Context)
- throw (css::uno::Exception, css::uno::RuntimeException)
- { return createInstanceWithContext(Context); }
-};
-
-css::uno::Reference< css::uno::XInterface > SAL_CALL dummy(
- css::uno::Reference< css::uno::XComponentContext > const &)
- SAL_THROW((css::uno::Exception))
-{
- OSL_ASSERT(false);
- return css::uno::Reference< css::uno::XInterface >();
-}
-
-rtl::OUString SAL_CALL getImplementationName() {
- return rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
-}
-
-css::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames() {
- rtl::OUString name(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
- return css::uno::Sequence< rtl::OUString >(&name, 1);
-}
-
-css::uno::Reference< css::lang::XSingleComponentFactory > SAL_CALL
-createFactory(
- cppu::ComponentFactoryFunc, rtl::OUString const &,
- css::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
- SAL_THROW(())
-{
- return new Factory;
-}
-
static cppu::ImplementationEntry const services[] = {
- { &dummy, &service::getImplementationName,
- &service::getSupportedServiceNames, &createFactory, 0, 0 },
+ { &Service::static_create, &Service::static_getImplementationName,
+ &Service::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, 0, 0 },
{ 0, 0, 0, 0, 0, 0 }
};
diff --git a/desktop/test/deployment/boxt/makefile.mk b/desktop/test/deployment/boxt/makefile.mk
index 11d736448d44..88e72aef4ab8 100644
--- a/desktop/test/deployment/boxt/makefile.mk
+++ b/desktop/test/deployment/boxt/makefile.mk
@@ -46,7 +46,7 @@ SHL1OBJS = $(SLO)/boxt.obj
SHL1RPATH = BOXT
SHL1STDLIBS = \
$(CPPUHELPERLIB) $(CPPULIB) $(MSFILTERLIB) $(SALLIB) $(TOOLSLIB) $(VCLLIB)
-SHL1VERSIONMAP = $(SOLARENV)/src/component.map
+SHL1VERSIONMAP = $(SOLARENV)/src/reg-component.map
DEF1NAME = $(SHL1TARGET)
.INCLUDE: target.mk
diff --git a/desktop/test/deployment/locationtest/makefile.mk b/desktop/test/deployment/locationtest/makefile.mk
index 8fe189791961..24be56c28d7e 100644
--- a/desktop/test/deployment/locationtest/makefile.mk
+++ b/desktop/test/deployment/locationtest/makefile.mk
@@ -80,5 +80,8 @@ $(MISC)$/$(TARGET)_resort : manifest.xml $(JARTARGETN) $(MISC)$/$(ZIP1TARGET).cr
$(COPY) description.xml $(MISC)$/$(TARGET)$/description.xml
$(TOUCH) $@
+.IF "$(ZIP1TARGETN)"!=""
$(ZIP1TARGETN) : $(MISC)$/$(TARGET)_resort $(MISC)$/$(ZIP1TARGET).createdir
+.ENDIF # "$(ZIP1TARGETN)"!=""
+
diff --git a/desktop/test/deployment/passive/Addons.xcu b/desktop/test/deployment/passive/Addons.xcu
new file mode 100644
index 000000000000..61578d7426e9
--- /dev/null
+++ b/desktop/test/deployment/passive/Addons.xcu
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="Addons">
+ <node o:name="AddonUI">
+ <node o:name="OfficeMenuBar">
+ <node o:name="org.openoffice.test.desktop.deployment.passive"
+ o:op="replace">
+ <prop o:name="Title" xml:lang="en-US">
+ <value>passive</value>
+ </prop>
+ <node o:name="Submenu">
+ <node o:name="1" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_native:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>native</value>
+ </prop>
+ </node>
+ <node o:name="2" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_java:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>java</value>
+ </prop>
+ </node>
+ <node o:name="3" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_python:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>python</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/passive/Dispatch.java b/desktop/test/deployment/passive/Dispatch.java
new file mode 100644
index 000000000000..295f34d599da
--- /dev/null
+++ b/desktop/test/deployment/passive/Dispatch.java
@@ -0,0 +1,101 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.passive_java;
+
+import com.sun.star.awt.MessageBoxButtons;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XMessageBox;
+import com.sun.star.awt.XMessageBoxFactory;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XStatusListener;
+import com.sun.star.lang.WrappedTargetRuntimeException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Dispatch extends WeakBase implements XServiceInfo, XDispatch
+{
+ public Dispatch(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return false; //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public void dispatch(URL URL, PropertyValue[] Arguments) {
+ try {
+ XMultiComponentFactory smgr = UnoRuntime.queryInterface(
+ XMultiComponentFactory.class, context.getServiceManager());
+ XMessageBox box = UnoRuntime.queryInterface(
+ XMessageBoxFactory.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.awt.Toolkit", context)).
+ createMessageBox(
+ UnoRuntime.queryInterface(
+ XWindowPeer.class,
+ (UnoRuntime.queryInterface(
+ XDesktop.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.frame.Desktop", context)).
+ getCurrentFrame().getComponentWindow())),
+ new Rectangle(), "infobox", MessageBoxButtons.BUTTONS_OK,
+ "passive", "java");
+ box.execute();
+ UnoRuntime.queryInterface(XComponent.class, box).dispose();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ throw e;
+ } catch (com.sun.star.uno.Exception e) {
+ throw new WrappedTargetRuntimeException(
+ "wrapped: " + e.getMessage(), this, e);
+ }
+ }
+
+ public void addStatusListener(XStatusListener Control, URL URL) {}
+
+ public void removeStatusListener(XStatusListener Control, URL URL) {}
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.passive_java_singleton";
+
+ static final String[] serviceNames = new String[0];
+}
diff --git a/desktop/test/deployment/passive/MANIFEST.MF b/desktop/test/deployment/passive/MANIFEST.MF
new file mode 100644
index 000000000000..45a04bf263dc
--- /dev/null
+++ b/desktop/test/deployment/passive/MANIFEST.MF
@@ -0,0 +1,3 @@
+Sealed: true
+RegistrationClassName: com.sun.star.comp.test.deployment.passive_java.Services
+UNO-Type-Path:
diff --git a/desktop/test/deployment/passive/ProtocolHandler.xcu b/desktop/test/deployment/passive/ProtocolHandler.xcu
new file mode 100644
index 000000000000..bc0355be41df
--- /dev/null
+++ b/desktop/test/deployment/passive/ProtocolHandler.xcu
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="ProtocolHandler">
+ <node o:name="HandlerSet">
+ <node o:name="com.sun.star.test.deployment.passive_native" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_native:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.passive_java" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_java:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.passive_python" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_python:*</value>
+ </prop>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/passive/Provider.java b/desktop/test/deployment/passive/Provider.java
new file mode 100644
index 000000000000..6f74ed9eb89e
--- /dev/null
+++ b/desktop/test/deployment/passive/Provider.java
@@ -0,0 +1,81 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.passive_java;
+
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Provider extends WeakBase
+ implements XServiceInfo, XDispatchProvider
+{
+ public Provider(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return ServiceName.equals(getSupportedServiceNames()[0]); //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public XDispatch queryDispatch(
+ URL URL, String TargetFrameName, int SearchFlags)
+ {
+ return UnoRuntime.queryInterface(
+ XDispatch.class,
+ context.getValueByName(
+ "/singletons/" +
+ "com.sun.star.test.deployment.passive_java_singleton"));
+ }
+
+ public XDispatch[] queryDispatches(DispatchDescriptor[] Requests) {
+ XDispatch[] s = new XDispatch[Requests.length];
+ for (int i = 0; i < s.length; ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+ }
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.passive_java";
+
+ static final String[] serviceNames = new String[] {
+ "com.sun.star.test.deployment.passive_java" };
+}
diff --git a/desktop/test/deployment/passive/Services.java b/desktop/test/deployment/passive/Services.java
new file mode 100644
index 000000000000..799df3e70222
--- /dev/null
+++ b/desktop/test/deployment/passive/Services.java
@@ -0,0 +1,49 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package com.sun.star.comp.test.deployment.passive_java;
+
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.lib.uno.helper.Factory;
+
+public final class Services {
+ private Services() {}
+
+ public static XSingleComponentFactory __getComponentFactory(
+ String implementation)
+ {
+ if (implementation.equals(Dispatch.implementationName)) {
+ return Factory.createComponentFactory(
+ Dispatch.class, Dispatch.implementationName,
+ Dispatch.serviceNames);
+ } else if (implementation.equals(Provider.implementationName)) {
+ return Factory.createComponentFactory(
+ Provider.class, Provider.implementationName,
+ Provider.serviceNames);
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/desktop/test/deployment/passive/description.xml b/desktop/test/deployment/passive/description.xml
new file mode 100644
index 000000000000..468dfa065fb1
--- /dev/null
+++ b/desktop/test/deployment/passive/description.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:identifier
+ value="org.openoffice/framework/desktop/test/deployment/passive"/>
+ <d:version value="1"/>
+ <d:dependencies>
+ <d:OpenOffice.org-minimal-version d:name="OpenOffice.org 3.4" value="3.4"/>
+ </d:dependencies>
+</d:description>
diff --git a/desktop/test/deployment/passive/makefile.mk b/desktop/test/deployment/passive/makefile.mk
new file mode 100644
index 000000000000..019e5dcab837
--- /dev/null
+++ b/desktop/test/deployment/passive/makefile.mk
@@ -0,0 +1,136 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+PRJ = ../../..
+PRJNAME = desktop
+TARGET = test_deployment_passive
+
+ENABLE_EXCEPTIONS = TRUE
+
+PACKAGE = com/sun/star/comp/test/deployment/passive_java
+JAVAFILES = Dispatch.java Provider.java Services.java
+JARFILES = juh.jar ridl.jar unoil.jar
+
+my_platform_components = passive_native
+my_generic_components = passive_java passive_python
+
+.INCLUDE: settings.mk
+
+DLLPRE =
+
+SLOFILES = $(SHL1OBJS)
+
+SHL1TARGET = passive_native.uno
+SHL1OBJS = $(SLO)/passive_native.obj
+SHL1RPATH = OXT
+SHL1STDLIBS = $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB)
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
+DEF1NAME = $(SHL1TARGET)
+
+.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/passive.oxt
+
+$(MISC)/passive.oxt : manifest.xml description.xml Addons.xcu \
+ ProtocolHandler.xcu $(MISC)/$(TARGET)/platform.components \
+ $(MISC)/$(TARGET)/generic.components $(SHL1TARGETN) \
+ $(MISC)/$(TARGET)/passive_java.jar passive_python.py
+ $(RM) $@
+ $(RM) -r $(MISC)/$(TARGET)/passive.oxt-zip
+ $(MKDIR) $(MISC)/$(TARGET)/passive.oxt-zip
+ $(MKDIRHIER) $(MISC)/$(TARGET)/passive.oxt-zip/META-INF
+ $(SED) -e 's|@PLATFORM@|$(RTL_OS:l)_$(RTL_ARCH:l)|g' < manifest.xml \
+ > $(MISC)/$(TARGET)/passive.oxt-zip/META-INF/manifest.xml
+ $(COPY) description.xml Addons.xcu ProtocolHandler.xcu \
+ $(MISC)/$(TARGET)/platform.components \
+ $(MISC)/$(TARGET)/generic.components $(SHL1TARGETN) \
+ $(MISC)/$(TARGET)/passive_java.jar passive_python.py \
+ $(MISC)/$(TARGET)/passive.oxt-zip/
+ cd $(MISC)/$(TARGET)/passive.oxt-zip && zip ../../passive.oxt \
+ META-INF/manifest.xml description.xml Addons.xcu ProtocolHandler.xcu \
+ platform.components generic.components $(SHL1TARGETN:f) \
+ passive_java.jar passive_python.py
+
+$(MISC)/$(TARGET)/platform.components : $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/$(TARGET)/platform.components.input \
+ $(my_platform_components:^"$(MISC)/$(TARGET)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/$(TARGET)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/$(TARGET)/platform.components.input
+
+$(MISC)/$(TARGET)/platform.components.input :
+ $(MKDIRHIER) $(@:d)
+ echo '<list>' \
+ '$(my_platform_components:^"<filename>":+".component</filename>")' \
+ '</list>' > $@
+
+$(MISC)/$(TARGET)/generic.components : $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/$(TARGET)/generic.components.input \
+ $(my_generic_components:^"$(MISC)/$(TARGET)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/$(TARGET)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/$(TARGET)/generic.components.input
+
+$(MISC)/$(TARGET)/generic.components.input :
+ $(MKDIRHIER) $(@:d)
+ echo '<list>' \
+ '$(my_generic_components:^"<filename>":+".component</filename>")' \
+ '</list>' > $@
+
+$(MISC)/$(TARGET)/passive_native.component : \
+ $(SOLARENV)/bin/createcomponent.xslt passive_native.component
+ $(MKDIRHIER) $(@:d)
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_EXTENSION)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt passive_native.component
+
+$(MISC)/$(TARGET)/passive_java.component : \
+ $(SOLARENV)/bin/createcomponent.xslt passive_java.component
+ $(MKDIRHIER) $(@:d)
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_EXTENSION)passive_java.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt passive_java.component
+
+$(MISC)/$(TARGET)/passive_python.component : \
+ $(SOLARENV)/bin/createcomponent.xslt passive_python.component
+ $(MKDIRHIER) $(@:d)
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_EXTENSION)passive_python.py' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt passive_python.component
+
+$(MISC)/$(TARGET)/passive_java.jar : MANIFEST.MF $(JAVATARGET)
+ $(MKDIRHIER) $(@:d)
+ $(RM) $@
+ $(RM) -r $(MISC)/$(TARGET)/passive_java.jar-zip
+ $(MKDIR) $(MISC)/$(TARGET)/passive_java.jar-zip
+ $(MKDIRHIER) $(MISC)/$(TARGET)/passive_java.jar-zip/META-INF \
+ $(MISC)/$(TARGET)/passive_java.jar-zip/$(PACKAGE)
+ $(COPY) MANIFEST.MF $(MISC)/$(TARGET)/passive_java.jar-zip/META-INF/
+ $(COPY) $(foreach,i,$(JAVAFILES:b) $(CLASSDIR)/$(PACKAGE)/$i.class) \
+ $(MISC)/$(TARGET)/passive_java.jar-zip/$(PACKAGE)/
+ cd $(MISC)/$(TARGET)/passive_java.jar-zip && zip ../passive_java.jar \
+ META-INF/MANIFEST.MF $(foreach,i,$(JAVAFILES:b) $(PACKAGE)/$i.class)
diff --git a/desktop/test/deployment/passive/manifest.xml b/desktop/test/deployment/passive/manifest.xml
new file mode 100644
index 000000000000..5b8ac8419bb9
--- /dev/null
+++ b/desktop/test/deployment/passive/manifest.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="Addons.xcu"/>
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="ProtocolHandler.xcu"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-components;platform=@PLATFORM@"
+ m:full-path="platform.components"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-components"
+ m:full-path="generic.components"/>
+</m:manifest>
diff --git a/desktop/test/deployment/passive/passive_java.component b/desktop/test/deployment/passive/passive_java.component
new file mode 100644
index 000000000000..74be57177dfe
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_java.component
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.test.deployment.passive_java">
+ <service name="com.sun.star.test.deployment.passive_java"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.test.deployment.passive_java_singleton">
+ <singleton name="com.sun.star.test.deployment.passive_java_singleton"/>
+ </implementation>
+</component>
diff --git a/desktop/test/deployment/passive/passive_native.component b/desktop/test/deployment/passive/passive_native.component
new file mode 100644
index 000000000000..c14fd7ff0062
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_native.component
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.test.deployment.passive_native">
+ <service name="com.sun.star.test.deployment.passive_native"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.test.deployment.passive_native_singleton">
+ <singleton name="com.sun.star.test.deployment.passive_native_singleton"/>
+ </implementation>
+</component>
diff --git a/desktop/test/deployment/passive/passive_native.cxx b/desktop/test/deployment/passive/passive_native.cxx
new file mode 100644
index 000000000000..39101257ad67
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_native.cxx
@@ -0,0 +1,289 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+#include "precompiled_desktop.hxx"
+#include "sal/config.h"
+
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/awt/MessageBoxButtons.hpp"
+#include "com/sun/star/awt/Rectangle.hpp"
+#include "com/sun/star/awt/XMessageBox.hpp"
+#include "com/sun/star/awt/XMessageBoxFactory.hpp"
+#include "com/sun/star/awt/XWindowPeer.hpp"
+#include "com/sun/star/beans/PropertyValue.hpp"
+#include "com/sun/star/frame/DispatchDescriptor.hpp"
+#include "com/sun/star/frame/XDesktop.hpp"
+#include "com/sun/star/frame/XDispatch.hpp"
+#include "com/sun/star/frame/XDispatchProvider.hpp"
+#include "com/sun/star/frame/XFrame.hpp"
+#include "com/sun/star/frame/XStatusListener.hpp"
+#include "com/sun/star/lang/XComponent.hpp"
+#include "com/sun/star/lang/XMultiComponentFactory.hpp"
+#include "com/sun/star/lang/XServiceInfo.hpp"
+#include "com/sun/star/uno/DeploymentException.hpp"
+#include "com/sun/star/uno/Exception.hpp"
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/RuntimeException.hpp"
+#include "com/sun/star/uno/Sequence.hxx"
+#include "com/sun/star/uno/XComponentContext.hpp"
+#include "com/sun/star/uno/XInterface.hpp"
+#include "com/sun/star/util/URL.hpp"
+#include "cppuhelper/factory.hxx"
+#include "cppuhelper/implbase2.hxx"
+#include "cppuhelper/implementationentry.hxx"
+#include "cppuhelper/weak.hxx"
+#include "osl/diagnose.h"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "sal/types.h"
+#include "uno/lbnames.h"
+
+namespace {
+
+namespace css = com::sun::star;
+
+class Provider:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatchProvider >,
+ private boost::noncopyable
+{
+public:
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ SAL_THROW((css::uno::Exception))
+ { return static_cast< cppu::OWeakObject * >(new Provider(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames();
+
+private:
+ Provider(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { OSL_ASSERT(context.is()); }
+
+ virtual ~Provider() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
+ throw (css::uno::RuntimeException)
+ { return ServiceName == getSupportedServiceNames()[0]; } //TODO
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return static_getSupportedServiceNames(); }
+
+ virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+ SAL_CALL queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+ throw (css::uno::RuntimeException);
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Provider::static_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.comp.test.deployment.passive_native"));
+}
+
+css::uno::Sequence< rtl::OUString > Provider::static_getSupportedServiceNames()
+{
+ rtl::OUString name(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.test.deployment.passive_native"));
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
+css::uno::Reference< css::frame::XDispatch > Provider::queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Reference< css::frame::XDispatch > dispatch;
+ if (!(context_->getValueByName(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "/singletons/com.sun.star.test.deployment."
+ "passive_native_singleton"))) >>=
+ dispatch) ||
+ !dispatch.is())
+ {
+ throw css::uno::DeploymentException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "component context fails to supply singleton"
+ " com.sun.star.test.deployment.passive_native_singleton of"
+ " type com.sun.star.frame.XDispatch")),
+ context_);
+ }
+ return dispatch;
+}
+
+css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+Provider::queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > s(
+ Requests.getLength());
+ for (sal_Int32 i = 0; i < s.getLength(); ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+}
+
+class Dispatch:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatch >,
+ private boost::noncopyable
+{
+public:
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ SAL_THROW((css::uno::Exception))
+ { return static_cast< cppu::OWeakObject * >(new Dispatch(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames()
+ { return css::uno::Sequence< rtl::OUString >(); }
+
+private:
+ Dispatch(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { OSL_ASSERT(context.is()); }
+
+ virtual ~Dispatch() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const &)
+ throw (css::uno::RuntimeException)
+ { return false; } //TODO
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return static_getSupportedServiceNames(); }
+
+ virtual void SAL_CALL dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL addStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &)
+ throw (css::uno::RuntimeException)
+ {}
+
+ virtual void SAL_CALL removeStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &)
+ throw (css::uno::RuntimeException)
+ {}
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Dispatch::static_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.comp.test.deployment.passive_native_singleton"));
+}
+
+void Dispatch::dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Reference< css::lang::XMultiComponentFactory > smgr(
+ context_->getServiceManager(), css::uno::UNO_SET_THROW);
+ css::uno::Reference< css::awt::XMessageBox > box(
+ css::uno::Reference< css::awt::XMessageBoxFactory >(
+ smgr->createInstanceWithContext(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.awt.Toolkit")), context_),
+ css::uno::UNO_QUERY_THROW)->createMessageBox(
+ css::uno::Reference< css::awt::XWindowPeer >(
+ css::uno::Reference< css::frame::XFrame >(
+ css::uno::Reference< css::frame::XDesktop >(
+ smgr->createInstanceWithContext(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.frame.Desktop")),
+ context_),
+ css::uno::UNO_QUERY_THROW)->getCurrentFrame(),
+ css::uno::UNO_SET_THROW)->getComponentWindow(),
+ css::uno::UNO_QUERY_THROW),
+ css::awt::Rectangle(),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("infobox")),
+ css::awt::MessageBoxButtons::BUTTONS_OK,
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("passive")),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("native"))),
+ css::uno::UNO_SET_THROW);
+ box->execute();
+ css::uno::Reference< css::lang::XComponent >(
+ box, css::uno::UNO_QUERY_THROW)->dispose();
+}
+
+static cppu::ImplementationEntry const services[] = {
+ { &Provider::static_create, &Provider::static_getImplementationName,
+ &Provider::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, 0, 0 },
+ { &Dispatch::static_create, &Dispatch::static_getImplementationName,
+ &Dispatch::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, 0, 0 },
+ { 0, 0, 0, 0, 0, 0 }
+};
+
+}
+
+extern "C" void * SAL_CALL component_getFactory(
+ char const * pImplName, void * pServiceManager, void * pRegistryKey)
+{
+ return cppu::component_getFactoryHelper(
+ pImplName, pServiceManager, pRegistryKey, services);
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+ char const ** ppEnvTypeName, uno_Environment **)
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
diff --git a/desktop/test/deployment/passive/passive_python.component b/desktop/test/deployment/passive/passive_python.component
new file mode 100644
index 000000000000..ea7a1992b534
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_python.component
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Python"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.test.deployment.passive_python">
+ <service name="com.sun.star.test.deployment.passive_python"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.test.deployment.passive_python_singleton">
+ <singleton name="com.sun.star.test.deployment.passive_python_singleton"/>
+ </implementation>
+</component>
diff --git a/desktop/test/deployment/passive/passive_python.py b/desktop/test/deployment/passive/passive_python.py
new file mode 100644
index 000000000000..dda68cccdb2f
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_python.py
@@ -0,0 +1,101 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+import uno
+import unohelper
+
+from com.sun.star.awt import Rectangle
+from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK
+from com.sun.star.frame import XDispatch, XDispatchProvider
+from com.sun.star.lang import XServiceInfo
+
+class Provider(unohelper.Base, XServiceInfo, XDispatchProvider):
+ implementationName = "com.sun.star.comp.test.deployment.passive_python"
+
+ serviceNames = ("com.sun.star.test.deployment.passive_python",)
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def queryDispatch(self, URL, TargetFrame, SearchFlags):
+ return self.context.getValueByName( \
+ "/singletons/com.sun.star.test.deployment.passive_python_singleton")
+
+ def queryDispatches(self, Requests):
+ tuple( \
+ self.queryDispatch(i.FeatureURL, i.FrameName, i.SearchFlags) \
+ for i in Requests)
+
+class Dispatch(unohelper.Base, XServiceInfo, XDispatch):
+ implementationName = \
+ "com.sun.star.comp.test.deployment.passive_python_singleton"
+
+ serviceNames = ()
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def dispatch(self, URL, Arguments):
+ smgr = self.context.getServiceManager()
+ box = smgr.createInstanceWithContext( \
+ "com.sun.star.awt.Toolkit", self.context).createMessageBox( \
+ smgr.createInstanceWithContext( \
+ "com.sun.star.frame.Desktop", self.context). \
+ getCurrentFrame().getComponentWindow(), \
+ Rectangle(), "infobox", BUTTONS_OK, "passive", "python")
+ box.execute();
+ box.dispose();
+
+ def addStatusListener(self, Control, URL):
+ pass
+
+ def removeStatusListener(self, Control, URL):
+ pass
+
+g_ImplementationHelper = unohelper.ImplementationHelper()
+g_ImplementationHelper.addImplementation( \
+ Provider, Provider.implementationName, Provider.serviceNames)
+g_ImplementationHelper.addImplementation( \
+ Dispatch, Dispatch.implementationName, Dispatch.serviceNames)
diff --git a/desktop/test/deployment/update/updateinfocreation/build/makefile.mk b/desktop/test/deployment/update/updateinfocreation/build/makefile.mk
index 6af3928279e0..b0479c942b4f 100755
--- a/desktop/test/deployment/update/updateinfocreation/build/makefile.mk
+++ b/desktop/test/deployment/update/updateinfocreation/build/makefile.mk
@@ -84,5 +84,8 @@ $(MISC)$/$(TARGET)_resort : manifest.xml $(JARTARGETN) $(MISC)$/$(ZIP1TARGET).cr
$(GNUCOPY) -u description.xml $(MISC)$/$(TARGET)$/description.xml
$(TOUCH) $@
+.IF "$(ZIP1TARGETN)"!=""
$(ZIP1TARGETN) : $(MISC)$/$(TARGET)_resort $(MISC)$/$(ZIP1TARGET).createdir
+.ENDIF # "$(ZIP1TARGETN)"!=""
+
diff --git a/desktop/util/ooverinfo2.rc b/desktop/util/ooverinfo2.rc
index 8bc39767f04a..17af6818551e 100644..100755
--- a/desktop/util/ooverinfo2.rc
+++ b/desktop/util/ooverinfo2.rc
@@ -25,21 +25,7 @@
*
*************************************************************************/
-#define VERSION 3
-#define SUBVERSION 3
-//#define VERVARIANT 0
-// .0 + VER_CONCEPT
-// .100 + VER_ALPHA
-// .200 + VER_BETA
-// .300 + VER_GAMMA
-// .500 + VER_FINAL
-//#define VER_CONCEPT 0
-//#define VER_BETA 6
-#define VER_FINAL 0
-
-#define VER_DAY 1
-#define VER_MONTH 1
-#define VER_YEAR 2010
+#include "version.hrc"
// -----------------------------------------------------------------------
diff --git a/drawinglayer/source/primitive2d/metafileprimitive2d.cxx b/drawinglayer/source/primitive2d/metafileprimitive2d.cxx
index 0d57e566ef8a..893c572a3086 100644
--- a/drawinglayer/source/primitive2d/metafileprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/metafileprimitive2d.cxx
@@ -248,9 +248,12 @@ namespace
if(nPushFlags)
{
OSL_ENSURE(maPropertyHolders.size(), "PropertyHolders: PUSH with no property holders (!)");
- PropertyHolder* pNew = new PropertyHolder(*maPropertyHolders.back());
- pNew->setPushFlags(nPushFlags);
- maPropertyHolders.push_back(pNew);
+ if ( !maPropertyHolders.empty() )
+ {
+ PropertyHolder* pNew = new PropertyHolder(*maPropertyHolders.back());
+ pNew->setPushFlags(nPushFlags);
+ maPropertyHolders.push_back(pNew);
+ }
}
}
@@ -354,8 +357,9 @@ namespace
PropertyHolder& Current()
{
+ static PropertyHolder aDummy;
OSL_ENSURE(maPropertyHolders.size(), "PropertyHolders: CURRENT with no property holders (!)");
- return *maPropertyHolders.back();
+ return maPropertyHolders.empty() ? aDummy : *maPropertyHolders.back();
}
~PropertyHolders()
@@ -2013,7 +2017,7 @@ namespace
if(nTextLength + nTextIndex > nStringLength)
{
- nTextLength = nStringLength - nTextIndex;
+ nTextLength = nTextIndex > nStringLength ? 0 : nStringLength - nTextIndex;
}
if(nTextLength && rPropertyHolders.Current().getTextColorActive())
diff --git a/editeng/inc/editeng/svxrtf.hxx b/editeng/inc/editeng/svxrtf.hxx
index f1214f1283a6..62bc6efcd4bf 100644
--- a/editeng/inc/editeng/svxrtf.hxx
+++ b/editeng/inc/editeng/svxrtf.hxx
@@ -38,7 +38,8 @@
#include <editeng/editengdllapi.h>
#include <deque>
-
+#include <utility>
+#include <vector>
class Font;
class Color;
class Graphic;
@@ -109,7 +110,7 @@ struct SvxRTFStyleType
// Bitmap - Mode
-
+typedef ::std::vector< ::std::pair< ::rtl::OUString, ::rtl::OUString > > PictPropertyNameValuePairs;
struct EDITENG_DLLPUBLIC SvxRTFPictureType
{
// Format der Bitmap
@@ -140,7 +141,7 @@ struct EDITENG_DLLPUBLIC SvxRTFPictureType
USHORT nWidthBytes;
USHORT nScalX, nScalY;
short nCropT, nCropB, nCropL, nCropR;
-
+ PictPropertyNameValuePairs aPropertyPairs;
SvxRTFPictureType() { ResetValues(); }
// alle Werte auf default; wird nach einlesen der Bitmap aufgerufen !
void ResetValues();
@@ -469,7 +470,7 @@ inline const Color& SvxRTFParser::GetColor( size_t nId ) const
inline SfxItemSet& SvxRTFParser::GetAttrSet()
{
SvxRTFItemStackTypePtr pTmp;
- if( bNewGroup || 0 == ( pTmp = aAttrStack.back()) )
+ if( bNewGroup || 0 == ( pTmp = aAttrStack.empty() ? 0 : aAttrStack.back()) )
pTmp = _GetAttrSet();
return pTmp->aAttrSet;
}
diff --git a/editeng/inc/pch/precompiled_editeng.hxx b/editeng/inc/pch/precompiled_editeng.hxx
index 9d432f73a731..d53bfcf1aaf2 100644
--- a/editeng/inc/pch/precompiled_editeng.hxx
+++ b/editeng/inc/pch/precompiled_editeng.hxx
@@ -694,7 +694,6 @@
#include "svtools/apearcfg.hxx"
#include "svl/brdcst.hxx"
#include "unotools/cacheoptions.hxx"
-#include "svl/cancel.hxx"
#include "svl/cjkoptions.hxx"
#include "unotools/cmdoptions.hxx"
#include "svl/cntwall.hxx"
diff --git a/editeng/source/editeng/eertfpar.cxx b/editeng/source/editeng/eertfpar.cxx
index 9f919afb39d6..817949294444 100644
--- a/editeng/source/editeng/eertfpar.cxx
+++ b/editeng/source/editeng/eertfpar.cxx
@@ -54,6 +54,7 @@ void SvxRTFPictureType::ResetValues()
nBitsPerPixel = nPlanes = 1;
nScalX = nScalY = 100; // Skalierung in Prozent
nCropT = nCropB = nCropL = nCropR = 0;
+ aPropertyPairs.clear();
}
ImportInfo::ImportInfo( ImportState eSt, SvParser* pPrsrs, const ESelection& rSel )
diff --git a/editeng/source/items/flditem.cxx b/editeng/source/items/flditem.cxx
index 5cb45144abab..132a6d0ee38c 100644
--- a/editeng/source/items/flditem.cxx
+++ b/editeng/source/items/flditem.cxx
@@ -377,83 +377,46 @@ int SvxURLField::operator==( const SvxFieldData& rOther ) const
// -----------------------------------------------------------------------
-void SvxURLField::Load( SvPersistStream & rStm )
+static void write_unicode( SvPersistStream & rStm, const String& rString )
{
- USHORT nFormat;
- sal_uInt32 nFrameMarker, nCharSetMarker;
- long nUlongSize = (long)sizeof(sal_uInt32);
- String aTmpURL;
-
- rStm >> nFormat;
-
- // UNICODE: rStm >> aTmpURL;
- rStm.ReadByteString(aTmpURL);
-
- // UNICODE: rStm >> aRepresentation;
- // read to a temp string first, read text encoding and
- // convert later to stay compatible to fileformat
- ByteString aTempString;
- rtl_TextEncoding aTempEncoding = RTL_TEXTENCODING_MS_1252; // #101493# Init for old documents
- rStm.ReadByteString(aTempString);
+ USHORT nL = rString.Len();
+ rStm << nL;
+ rStm.Write( rString.GetBuffer(), nL*sizeof(sal_Unicode) );
+}
- rStm >> nFrameMarker;
- if ( nFrameMarker == FRAME_MARKER )
+static void read_unicode( SvPersistStream & rStm, String& rString )
+{
+ USHORT nL = 0;
+ rStm >> nL;
+ if ( nL )
{
- // UNICODE: rStm >> aTargetFrame;
- rStm.ReadByteString(aTargetFrame);
-
- rStm >> nCharSetMarker;
- if ( nCharSetMarker == CHARSET_MARKER )
- {
- USHORT nCharSet;
- rStm >> nCharSet;
-
- // remember encoding
- aTempEncoding = (rtl_TextEncoding)nCharSet;
- }
- else
- rStm.SeekRel( -nUlongSize );
+ rString.AllocBuffer( nL );
+ rStm.Read( rString.GetBufferAccess(), nL*sizeof(sal_Unicode) );
+ rString.ReleaseBufferAccess( nL );
}
- else
- rStm.SeekRel( -nUlongSize );
+}
- // now build representation string due to known encoding
- aRepresentation = String(aTempString, aTempEncoding);
+void SvxURLField::Load( SvPersistStream & rStm )
+{
+ USHORT nFormat = 0;
+ rStm >> nFormat;
eFormat= (SvxURLFormat)nFormat;
- // Relatives Speichern => Beim laden absolut machen.
- DBG_ERROR("No BaseURL!");
- // TODO/MBA: no BaseURL
- aURL = INetURLObject::GetAbsURL( String(), aTmpURL );
+ read_unicode( rStm, aURL );
+ read_unicode( rStm, aRepresentation );
+ read_unicode( rStm, aTargetFrame );
}
// -----------------------------------------------------------------------
void SvxURLField::Save( SvPersistStream & rStm )
{
- // Relatives Speichern der URL
- DBG_ERROR("No BaseURL!");
- // TODO/MBA: no BaseURL
- String aTmpURL = INetURLObject::GetRelURL( String(), aURL );
-
rStm << (USHORT)eFormat;
- // UNICODE: rStm << aTmpURL;
- rStm.WriteByteString(aTmpURL);
-
- // UNICODE: rStm << aRepresentation;
- rStm.WriteByteString(aRepresentation);
-
- rStm << FRAME_MARKER;
-
- // UNICODE: rStm << aTargetFrame;
- rStm.WriteByteString(aTargetFrame);
-
- rStm << CHARSET_MARKER;
-
- // #90477# rStm << (USHORT)GetStoreCharSet(gsl_getSystemTextEncoding(), rStm.GetVersion());
- rStm << (USHORT)GetSOStoreTextEncoding(gsl_getSystemTextEncoding(), (sal_uInt16)rStm.GetVersion());
+ write_unicode( rStm, aURL );
+ write_unicode( rStm, aRepresentation );
+ write_unicode( rStm, aTargetFrame );
}
MetaAction* SvxURLField::createBeginComment() const
@@ -921,16 +884,11 @@ int SvxAuthorField::operator==( const SvxFieldData& rOther ) const
void SvxAuthorField::Load( SvPersistStream & rStm )
{
- USHORT nType, nFormat;
-
- // UNICODE: rStm >> aName;
- rStm.ReadByteString(aName);
+ USHORT nType = 0, nFormat = 0;
- // UNICODE: rStm >> aFirstName;
- rStm.ReadByteString(aFirstName);
-
- // UNICODE: rStm >> aShortName;
- rStm.ReadByteString(aShortName);
+ read_unicode( rStm, aName );
+ read_unicode( rStm, aFirstName );
+ read_unicode( rStm, aShortName );
rStm >> nType;
rStm >> nFormat;
@@ -943,14 +901,9 @@ void SvxAuthorField::Load( SvPersistStream & rStm )
void SvxAuthorField::Save( SvPersistStream & rStm )
{
- // UNICODE: rStm << aName;
- rStm.WriteByteString(aName);
-
- // UNICODE: rStm << aFirstName;
- rStm.WriteByteString(aFirstName);
-
- // UNICODE: rStm << aShortName;
- rStm.WriteByteString(aShortName);
+ write_unicode( rStm, aName );
+ write_unicode( rStm, aFirstName );
+ write_unicode( rStm, aShortName );
rStm << (USHORT) eType;
rStm << (USHORT) eFormat;
diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx
index ae977b2ed0d7..f2481e79eb22 100644
--- a/editeng/source/misc/svxacorr.cxx
+++ b/editeng/source/misc/svxacorr.cxx
@@ -701,7 +701,7 @@ BOOL SvxAutoCorrect::FnAddNonBrkSpace(
bRunNext = true;
}
}
- else if ( cChar == '/' )
+ else if ( cChar == '/' && nEndPos > 1 && rTxt.Len() > (nEndPos - 1) )
{
// Remove the hardspace right before to avoid formatting URLs
sal_Unicode cPrevChar = rTxt.GetChar( nEndPos - 1 );
diff --git a/editeng/source/rtf/makefile.mk b/editeng/source/rtf/makefile.mk
index 38b2ef7b45bc..081cd5b506cd 100644
--- a/editeng/source/rtf/makefile.mk
+++ b/editeng/source/rtf/makefile.mk
@@ -29,12 +29,11 @@ PRJ=..$/..
PRJNAME=editeng
TARGET=rtf
-
+ENABLE_EXCEPTIONS=TRUE
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
# --- Files --------------------------------------------------------
EXCEPTIONSFILES= \
diff --git a/editeng/source/rtf/rtfgrf.cxx b/editeng/source/rtf/rtfgrf.cxx
index 24fd4465b031..4b0051cd3c81 100644
--- a/editeng/source/rtf/rtfgrf.cxx
+++ b/editeng/source/rtf/rtfgrf.cxx
@@ -39,6 +39,7 @@
#include <editeng/svxrtf.hxx>
+using namespace ::rtl;
#ifndef DBG_UTIL
#undef DEBUG_JP
@@ -316,14 +317,26 @@ BOOL SvxRTFParser::ReadBmpData( Graphic& rGrf, SvxRTFPictureType& rPicType )
if( RTF_SHPPICT == GetStackPtr(0)->nTokenId )
++nValidDataBraket;
-
+ OUString sShapePropertyName, sShapePropertyValue;
+ int nShapePropertyBracket = -1;
while( _nOpenBrakets && IsParserWorking() && bValidBmp )
{
nToken = GetNextToken();
USHORT nVal = USHORT( nTokenValue );
switch( nToken )
{
- case '}': --_nOpenBrakets; break;
+ case '}':
+ --_nOpenBrakets;
+ if( nShapePropertyBracket > 0 && nShapePropertyBracket > _nOpenBrakets )
+ {
+ nShapePropertyBracket = -1;
+ if( sShapePropertyName.getLength() )
+ {
+ rPicType.aPropertyPairs.push_back( ::std::pair< OUString, OUString >( sShapePropertyName, sShapePropertyValue ) );
+ sShapePropertyName = sShapePropertyValue = ::rtl::OUString();
+ }
+ }
+ break;
case '{':
{
if( RTF_IGNOREFLAG != GetNextToken() )
@@ -439,7 +452,24 @@ BOOL SvxRTFParser::ReadBmpData( Graphic& rGrf, SvxRTFPictureType& rPicType )
case RTF_PICCROPB: rPicType.nCropB = (short)nTokenValue; break;
case RTF_PICCROPL: rPicType.nCropL = (short)nTokenValue; break;
case RTF_PICCROPR: rPicType.nCropR = (short)nTokenValue; break;
-
+ case RTF_SP:
+ //read pairs of {\sn Name}{\sv Value}
+ nShapePropertyBracket = _nOpenBrakets;
+ break;
+ case RTF_SN:
+ nToken = GetNextToken();
+ if( nToken != '}' )
+ sShapePropertyName = aToken;
+ else
+ nToken = SkipToken( -1 );
+ break;
+ case RTF_SV:
+ nToken = GetNextToken();
+ if( nToken != '}' )
+ sShapePropertyValue = aToken;
+ else
+ nToken = SkipToken( -1 );
+ break;
case RTF_TEXTTOKEN:
// JP 26.06.98: Bug #51719# - nur TextToken auf 1. Ebene
// auswerten. Alle anderen sind irgendwelche
diff --git a/editeng/source/rtf/rtfitem.cxx b/editeng/source/rtf/rtfitem.cxx
index 3141ab20afcd..58789fab2106 100644
--- a/editeng/source/rtf/rtfitem.cxx
+++ b/editeng/source/rtf/rtfitem.cxx
@@ -228,7 +228,7 @@ void SvxRTFParser::ReadAttr( int nToken, SfxItemSet* pSet )
RTF_CharTypeDef eCharType = NOTDEF_CHARTYPE;
USHORT nFontAlign;
- int bChkStkPos = !bNewGroup && aAttrStack.back();
+ int bChkStkPos = !bNewGroup && !aAttrStack.empty();
while( bWeiter && IsParserWorking() ) // solange bekannte Attribute erkannt werden
{
@@ -250,7 +250,7 @@ void SvxRTFParser::ReadAttr( int nToken, SfxItemSet* pSet )
if( !bChkStkPos )
break;
- SvxRTFItemStackType* pAkt = aAttrStack.back();
+ SvxRTFItemStackType* pAkt = aAttrStack.empty() ? 0 : aAttrStack.back();
if( !pAkt || (pAkt->pSttNd->GetIdx() == pInsPos->GetNodeIdx() &&
pAkt->nSttCnt == pInsPos->GetCntIdx() ))
break;
@@ -269,7 +269,7 @@ void SvxRTFParser::ReadAttr( int nToken, SfxItemSet* pSet )
// alle bis hierher gueltigen Attribute "setzen"
AttrGroupEnd();
- pAkt = aAttrStack.back(); // can be changed after AttrGroupEnd!
+ pAkt = aAttrStack.empty() ? 0 : aAttrStack.back(); // can be changed after AttrGroupEnd!
pNew->aAttrSet.SetParent( pAkt ? &pAkt->aAttrSet : 0 );
aAttrStack.push_back( pNew );
@@ -305,7 +305,7 @@ void SvxRTFParser::ReadAttr( int nToken, SfxItemSet* pSet )
nStyleNo = -1 == nTokenValue ? 0 : USHORT(nTokenValue);
// setze am akt. auf dem AttrStack stehenden Style die
// StyleNummer
- SvxRTFItemStackType* pAkt = aAttrStack.back();
+ SvxRTFItemStackType* pAkt = aAttrStack.empty() ? 0 : aAttrStack.back();
if( !pAkt )
break;
@@ -1869,7 +1869,7 @@ void SvxRTFParser::ReadBackgroundAttr( int nToken, SfxItemSet& rSet,
// pard / plain abarbeiten
void SvxRTFParser::RTFPardPlain( int bPard, SfxItemSet** ppSet )
{
- if( !bNewGroup && aAttrStack.back() ) // not at the beginning of a new group
+ if( !bNewGroup && !aAttrStack.empty() ) // not at the beginning of a new group
{
SvxRTFItemStackType* pAkt = aAttrStack.back();
@@ -1887,7 +1887,7 @@ void SvxRTFParser::RTFPardPlain( int bPard, SfxItemSet** ppSet )
// alle bis hierher gueltigen Attribute "setzen"
AttrGroupEnd();
- pAkt = aAttrStack.back(); // can be changed after AttrGroupEnd!
+ pAkt = aAttrStack.empty() ? 0 : aAttrStack.back(); // can be changed after AttrGroupEnd!
pNew->aAttrSet.SetParent( pAkt ? &pAkt->aAttrSet : 0 );
aAttrStack.push_back( pNew );
pAkt = pNew;
diff --git a/editeng/source/rtf/svxrtf.cxx b/editeng/source/rtf/svxrtf.cxx
index 14b17807a0ea..2788d2fd4b10 100644
--- a/editeng/source/rtf/svxrtf.cxx
+++ b/editeng/source/rtf/svxrtf.cxx
@@ -875,7 +875,7 @@ const Font& SvxRTFParser::GetFont( USHORT nId )
SvxRTFItemStackType* SvxRTFParser::_GetAttrSet( int bCopyAttr )
{
- SvxRTFItemStackType* pAkt = aAttrStack.back();
+ SvxRTFItemStackType* pAkt = aAttrStack.empty() ? 0 : aAttrStack.back();
SvxRTFItemStackType* pNew;
if( pAkt )
pNew = new SvxRTFItemStackType( *pAkt, *pInsPos, bCopyAttr );
@@ -941,9 +941,9 @@ void SvxRTFParser::AttrGroupEnd() // den akt. Bearbeiten, vom Stack loeschen
{
if( !aAttrStack.empty() )
{
- SvxRTFItemStackType *pOld = aAttrStack.back();
+ SvxRTFItemStackType *pOld = aAttrStack.empty() ? 0 : aAttrStack.back();
aAttrStack.pop_back();
- SvxRTFItemStackType *pAkt = aAttrStack.back();
+ SvxRTFItemStackType *pAkt = aAttrStack.empty() ? 0 : aAttrStack.back();
do { // middle check loop
ULONG nOldSttNdIdx = pOld->pSttNd->GetIdx();
@@ -1118,7 +1118,7 @@ void SvxRTFParser::AttrGroupEnd() // den akt. Bearbeiten, vom Stack loeschen
// alle bis hierher gueltigen Attribute "setzen"
AttrGroupEnd();
- pAkt = aAttrStack.back(); // can be changed after AttrGroupEnd!
+ pAkt = aAttrStack.empty() ? 0 : aAttrStack.back(); // can be changed after AttrGroupEnd!
pNew->aAttrSet.SetParent( pAkt ? &pAkt->aAttrSet : 0 );
aAttrStack.push_back( pNew );
pAkt = pNew;
@@ -1181,7 +1181,7 @@ void SvxRTFParser::SetAttrSet( SvxRTFItemStackType &rSet )
// Is text wasn't inserted? (Get SttPos from the top of stack!)
int SvxRTFParser::IsAttrSttPos()
{
- SvxRTFItemStackType* pAkt = aAttrStack.back();
+ SvxRTFItemStackType* pAkt = aAttrStack.empty() ? 0 : aAttrStack.back();
return !pAkt || (pAkt->pSttNd->GetIdx() == pInsPos->GetNodeIdx() &&
pAkt->nSttCnt == pInsPos->GetCntIdx());
}
diff --git a/embeddedobj/prj/build.lst b/embeddedobj/prj/build.lst
index a61305e19221..c2f366c4deec 100644
--- a/embeddedobj/prj/build.lst
+++ b/embeddedobj/prj/build.lst
@@ -1,4 +1,4 @@
-eo embeddedobj : offuh sal cppu cppuhelper comphelper tools unotools vos NULL
+eo embeddedobj : offuh sal cppu cppuhelper comphelper tools unotools vos LIBXSLT:libxslt NULL
eo embeddedobj usr1 - all eo_mkout NULL
eo embeddedobj\inc nmake - all eo_inc NULL
eo embeddedobj\source\commonembedding nmake - all eo_commonembed eo_inc NULL
diff --git a/embeddedobj/source/commonembedding/miscobj.cxx b/embeddedobj/source/commonembedding/miscobj.cxx
index 97cc5d2d499b..e0ff1266921a 100644
--- a/embeddedobj/source/commonembedding/miscobj.cxx
+++ b/embeddedobj/source/commonembedding/miscobj.cxx
@@ -39,6 +39,7 @@
#include <cppuhelper/typeprovider.hxx>
#include <cppuhelper/interfacecontainer.h>
+#include <comphelper/mimeconfighelper.hxx>
#include "closepreventer.hxx"
#include "intercept.hxx"
@@ -240,6 +241,14 @@ void OCommonEmbeddedObject::LinkInit_Impl(
OSL_ENSURE( m_aLinkURL.getLength() && m_aLinkFilterName.getLength(), "Filter and URL must be provided!\n" );
+ m_bReadOnly = sal_True;
+ if ( m_aLinkFilterName.getLength() )
+ {
+ ::comphelper::MimeConfigurationHelper aHelper( m_xFactory );
+ ::rtl::OUString aExportFilterName = aHelper.GetExportFilterFromImportFilter( m_aLinkFilterName );
+ m_bReadOnly = !( aExportFilterName.equals( m_aLinkFilterName ) );
+ }
+
m_aDocMediaDescriptor = GetValuableArgs_Impl( aMediaDescr, sal_False );
uno::Reference< frame::XDispatchProviderInterceptor > xDispatchInterceptor;
diff --git a/embeddedobj/source/commonembedding/persistence.cxx b/embeddedobj/source/commonembedding/persistence.cxx
index 0312d28315a6..6929f93d9c7b 100644
--- a/embeddedobj/source/commonembedding/persistence.cxx
+++ b/embeddedobj/source/commonembedding/persistence.cxx
@@ -229,11 +229,11 @@ static uno::Reference< util::XCloseable > CreateDocument( const uno::Reference<
}
catch( const uno::Exception& )
{
- // some of our embedded object implementations (in particular chart) do neither support
- // the EmbeddedObject, nor the EmbeddedScriptSupport argument. Also, they do not support
- // XInitialization, which means the default factory from cppuhelper will throw an
+ // if an embedded object implementation does not support XInitialization,
+ // the default factory from cppuhelper will throw an
// IllegalArgumentException when we try to create the instance with arguments.
// Okay, so we fall back to creating the instance without any arguments.
+ OSL_ASSERT("Consider implementing interface XInitialization to avoid duplicate construction");
xDocument = _rxFactory->createInstance( _rDocumentServiceName );
}
@@ -978,7 +978,21 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry(
if ( m_bWaitSaveCompleted )
{
if ( nEntryConnectionMode == embed::EntryInitModes::NO_INIT )
- saveCompleted( ( m_xParentStorage != xStorage || !m_aEntryName.equals( sEntName ) ) );
+ {
+ // saveCompleted is expected, handle it accordingly
+ if ( m_xNewParentStorage == xStorage && m_aNewEntryName.equals( sEntName ) )
+ {
+ saveCompleted( sal_True );
+ return;
+ }
+
+ // if a completely different entry is provided, switch first back to the old persistence in saveCompleted
+ // and then switch to the target persistence
+ sal_Bool bSwitchFurther = ( m_xParentStorage != xStorage || !m_aEntryName.equals( sEntName ) );
+ saveCompleted( sal_False );
+ if ( !bSwitchFurther )
+ return;
+ }
else
throw embed::WrongStateException(
::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
diff --git a/eventattacher/prj/build.lst b/eventattacher/prj/build.lst
index aa931705fd75..dda1cd7a4893 100644
--- a/eventattacher/prj/build.lst
+++ b/eventattacher/prj/build.lst
@@ -1,4 +1,4 @@
-ea eventattacher : offapi cppuhelper vos NULL
+ea eventattacher : offapi cppuhelper vos LIBXSLT:libxslt NULL
ea eventattacher usr1 - all ea_mkout NULL
ea eventattacher\prj get - all ea_prj NULL
ea eventattacher\source nmake - all ea_source NULL
diff --git a/fileaccess/prj/build.lst b/fileaccess/prj/build.lst
index a60a92e9c12b..0349810c3838 100644
--- a/fileaccess/prj/build.lst
+++ b/fileaccess/prj/build.lst
@@ -1,3 +1,3 @@
-fa fileaccess : unotools rdbmaker tools ucbhelper NULL
+fa fileaccess : unotools rdbmaker tools ucbhelper LIBXSLT:libxslt NULL
fa fileaccess usr1 - all fa_mkout NULL
fa fileaccess\source nmake - all fa_src NULL
diff --git a/formula/prj/build.lst b/formula/prj/build.lst
index f26377c4578d..109a798ea3eb 100644
--- a/formula/prj/build.lst
+++ b/formula/prj/build.lst
@@ -1,4 +1,4 @@
-fml formula : BOOST:boost comphelper svx NULL
+fml formula : BOOST:boost LIBXSLT:libxslt comphelper svx NULL
fml formula usr1 - all fml_mkout NULL
fml formula\inc nmake - all fml_inc NULL
fml formula\source\core\api nmake - all fml_api fml_inc NULL
diff --git a/formula/source/ui/dlg/structpg.cxx b/formula/source/ui/dlg/structpg.cxx
index 3c7da5a3f8b0..3f86b4ba21eb 100644
--- a/formula/source/ui/dlg/structpg.cxx
+++ b/formula/source/ui/dlg/structpg.cxx
@@ -112,7 +112,7 @@ StructPage::StructPage(Window* pParent):
maImgErrorHC ( ModuleRes( BMP_STR_ERROR_H ) ),
pSelectedToken ( NULL )
{
- aTlbStruct.SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|
+ aTlbStruct.SetStyle(aTlbStruct.GetStyle()|WB_HASLINES|WB_CLIPCHILDREN|
WB_HASBUTTONS|WB_HSCROLL|WB_NOINITIALSELECTION);
aTlbStruct.SetNodeDefaultImages();
diff --git a/fpicker/prj/build.lst b/fpicker/prj/build.lst
index 434f22660f33..52d99ec0759a 100644
--- a/fpicker/prj/build.lst
+++ b/fpicker/prj/build.lst
@@ -1,4 +1,4 @@
-fp fpicker : l10n rdbmaker svtools NULL
+fp fpicker : LIBXSLT:libxslt l10n rdbmaker svtools NULL
fp fpicker\inc nmake - all fp_inc NULL
fp fpicker\source\generic nmake - all fp_generic fp_inc NULL
fp fpicker\source\office nmake - all fp_office fp_inc NULL
diff --git a/framework/AllLangResTarget_fwe.mk b/framework/AllLangResTarget_fwe.mk
new file mode 100644
index 000000000000..031cb24117d7
--- /dev/null
+++ b/framework/AllLangResTarget_fwe.mk
@@ -0,0 +1,63 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_AllLangResTarget_AllLangResTarget,fwe))
+
+$(eval $(call gb_AllLangResTarget_set_reslocation,fwe,framework))
+
+$(eval $(call gb_AllLangResTarget_add_srs,fwe,\
+ fwe/fwk_classes \
+ fwe/fwk_services \
+))
+
+
+$(eval $(call gb_SrsTarget_SrsTarget,fwe/fwk_classes))
+
+$(eval $(call gb_SrsTarget_set_include,fwe/fwk_classes,\
+ $$(INCLUDE) \
+ -I$(SRCDIR)/framework/inc \
+ -I$(SRCDIR)/framework/inc/classes \
+ -I$(OUTDIR)/inc \
+))
+
+$(eval $(call gb_SrsTarget_add_files,fwe/fwk_classes,\
+ framework/source/classes/resource.src \
+))
+
+$(eval $(call gb_SrsTarget_SrsTarget,fwe/fwk_services))
+
+$(eval $(call gb_SrsTarget_set_include,fwe/fwk_services,\
+ $$(INCLUDE) \
+ -I$(SRCDIR)/framework/inc \
+ -I$(SRCDIR)/framework/inc/services \
+ -I$(OUTDIR)/inc \
+))
+
+$(eval $(call gb_SrsTarget_add_files,fwe/fwk_services,\
+ framework/source/services/fwk_services.src \
+))
+# vim: set noet sw=4 ts=4:
diff --git a/framework/Library_fwe.mk b/framework/Library_fwe.mk
new file mode 100644
index 000000000000..33d8959a474e
--- /dev/null
+++ b/framework/Library_fwe.mk
@@ -0,0 +1,115 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,fwe))
+
+$(eval $(call gb_Library_set_include,fwe,\
+ -I$(SRCDIR)/framework/inc/pch \
+ -I$(SRCDIR)/framework/source/inc \
+ -I$(SRCDIR)/framework/inc \
+ -I$(WORKDIR)/inc/framework/ \
+ $$(INCLUDE) \
+ -I$(OUTDIR)/inc/framework \
+ -I$(OUTDIR)/inc/offuh \
+))
+
+$(eval $(call gb_Library_set_defs,fwe,\
+ $$(DEFS) \
+ -DFWE_DLLIMPLEMENTATION\
+))
+
+$(eval $(call gb_Library_add_linked_libs,fwe,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ fwi \
+ sal \
+ stl \
+ svl \
+ svt \
+ tl \
+ utl \
+ vcl \
+ vos3 \
+))
+
+$(eval $(call gb_Library_add_exception_objects,fwe,\
+ framework/source/fwe/classes/actiontriggercontainer \
+ framework/source/fwe/classes/actiontriggerpropertyset \
+ framework/source/fwe/classes/actiontriggerseparatorpropertyset \
+ framework/source/fwe/classes/addonmenu \
+ framework/source/fwe/classes/addonsoptions \
+ framework/source/fwe/classes/bmkmenu \
+ framework/source/fwe/classes/framelistanalyzer \
+ framework/source/fwe/classes/fwkresid \
+ framework/source/fwe/classes/imagewrapper \
+ framework/source/fwe/classes/menuextensionsupplier \
+ framework/source/fwe/classes/rootactiontriggercontainer \
+ framework/source/fwe/classes/sfxhelperfunctions \
+ framework/source/fwe/dispatch/interaction \
+ framework/source/fwe/helper/acceleratorinfo \
+ framework/source/fwe/helper/actiontriggerhelper \
+ framework/source/fwe/helper/configimporter \
+ framework/source/fwe/helper/imageproducer \
+ framework/source/fwe/helper/propertysetcontainer \
+ framework/source/fwe/helper/titlehelper \
+ framework/source/fwe/helper/uiconfigelementwrapperbase \
+ framework/source/fwe/helper/uielementwrapperbase \
+ framework/source/fwe/interaction/preventduplicateinteraction \
+ framework/source/fwe/xml/eventsconfiguration \
+ framework/source/fwe/xml/eventsdocumenthandler \
+ framework/source/fwe/xml/imagesconfiguration \
+ framework/source/fwe/xml/imagesdocumenthandler \
+ framework/source/fwe/xml/menuconfiguration \
+ framework/source/fwe/xml/menudocumenthandler \
+ framework/source/fwe/xml/saxnamespacefilter \
+ framework/source/fwe/xml/statusbarconfiguration \
+ framework/source/fwe/xml/statusbardocumenthandler \
+ framework/source/fwe/xml/toolboxconfiguration \
+ framework/source/fwe/xml/toolboxdocumenthandler \
+ framework/source/fwe/xml/xmlnamespaces \
+))
+
+ifeq ($(OS),LINUX)
+
+$(eval $(call gb_Library_set_cxxflags,fwe,$$(filter-out -fvisibility=hidden,$$(CXXFLAGS))))
+
+$(eval $(call gb_Library_add_linked_libs,fwe,\
+ dl \
+ m \
+ pthread \
+))
+endif
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_linked_libs,fwe,\
+ kernel32 \
+ msvcrt \
+ uwinapi \
+))
+endif
+# TODO: visibility
+# vim: set noet sw=4 ts=4:
diff --git a/framework/Library_fwi.mk b/framework/Library_fwi.mk
new file mode 100644
index 000000000000..568f0a1eb22a
--- /dev/null
+++ b/framework/Library_fwi.mk
@@ -0,0 +1,97 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,fwi))
+
+$(eval $(call gb_Library_add_package_headers,fwi,framework_inc))
+
+$(eval $(call gb_Library_set_defs,fwi,\
+ $$(DEFS) \
+ -DFWI_DLLIMPLEMENTATION \
+))
+
+$(eval $(call gb_Library_set_include,fwi,\
+ -I$(SRCDIR)/framework/inc/pch \
+ -I$(SRCDIR)/framework/source/inc \
+ -I$(SRCDIR)/framework/inc \
+ -I$(WORKDIR)/inc/framework/ \
+ $$(INCLUDE) \
+ -I$(OUTDIR)/inc/framework \
+ -I$(OUTDIR)/inc/offuh \
+))
+
+$(eval $(call gb_Library_add_linked_libs,fwi,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ i18nisolang1 \
+ sal \
+ stl \
+ svl \
+ svt \
+ tk \
+ tl \
+ utl \
+ vcl \
+ vos3 \
+))
+
+$(eval $(call gb_Library_add_exception_objects,fwi,\
+ framework/source/fwi/classes/converter \
+ framework/source/fwi/classes/propertysethelper \
+ framework/source/fwi/classes/protocolhandlercache \
+ framework/source/fwi/helper/mischelper \
+ framework/source/fwi/helper/networkdomain \
+ framework/source/fwi/helper/shareablemutex \
+ framework/source/fwi/jobs/configaccess \
+ framework/source/fwi/jobs/jobconst \
+ framework/source/fwi/threadhelp/lockhelper \
+ framework/source/fwi/threadhelp/transactionmanager \
+ framework/source/fwi/uielement/constitemcontainer \
+ framework/source/fwi/uielement/itemcontainer \
+ framework/source/fwi/uielement/rootitemcontainer \
+))
+
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Library_add_linked_libs,fwi,\
+ dl \
+ m \
+ pthread \
+))
+endif
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_linked_libs,fwi,\
+ advapi32 \
+ kernel32 \
+ msvcrt \
+ stl \
+ unicows \
+ uwinapi \
+))
+endif
+# TODO: visibility
+# vim: set noet sw=4 ts=4:
diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk
new file mode 100644
index 000000000000..50c16b83b42a
--- /dev/null
+++ b/framework/Library_fwk.mk
@@ -0,0 +1,199 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,fwk))
+
+$(eval $(call gb_Library_add_precompiled_header,fwk,$(SRCDIR)/framework/inc/pch/precompiled_framework))
+
+$(eval $(call gb_Library_set_componentfile,fwk,framework/util/fwk))
+
+$(eval $(call gb_Library_set_include,fwk,\
+ -I$(SRCDIR)/framework/inc/pch \
+ -I$(SRCDIR)/framework/source/inc \
+ -I$(SRCDIR)/framework/inc \
+ -I$(WORKDIR)/inc/framework/ \
+ $$(INCLUDE) \
+ -I$(OUTDIR)/inc/framework \
+ -I$(OUTDIR)/inc/offuh \
+))
+
+$(eval $(call gb_Library_add_linked_libs,fwk,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ fwe \
+ fwi \
+ i18nisolang1 \
+ sal \
+ sot \
+ stl \
+ svl \
+ svt \
+ tk \
+ tl \
+ ucbhelper \
+ utl \
+ vcl \
+))
+
+$(eval $(call gb_Library_add_exception_objects,fwk,\
+ framework/source/accelerators/acceleratorcache \
+ framework/source/accelerators/acceleratorconfiguration \
+ framework/source/accelerators/documentacceleratorconfiguration \
+ framework/source/accelerators/globalacceleratorconfiguration \
+ framework/source/accelerators/keymapping \
+ framework/source/accelerators/moduleacceleratorconfiguration \
+ framework/source/accelerators/presethandler \
+ framework/source/accelerators/storageholder \
+ framework/source/classes/droptargetlistener \
+ framework/source/classes/framecontainer \
+ framework/source/classes/fwktabwindow \
+ framework/source/classes/menumanager \
+ framework/source/classes/taskcreator \
+ framework/source/constant/containerquery \
+ framework/source/constant/contenthandler \
+ framework/source/constant/frameloader \
+ framework/source/dispatch/closedispatcher \
+ framework/source/dispatch/dispatchinformationprovider \
+ framework/source/dispatch/dispatchprovider \
+ framework/source/dispatch/helpagentdispatcher \
+ framework/source/dispatch/interceptionhelper \
+ framework/source/dispatch/loaddispatcher \
+ framework/source/dispatch/menudispatcher \
+ framework/source/dispatch/startmoduledispatcher \
+ framework/source/dispatch/windowcommanddispatch \
+ framework/source/helper/dockingareadefaultacceptor \
+ framework/source/helper/ocomponentaccess \
+ framework/source/helper/ocomponentenumeration \
+ framework/source/helper/oframes \
+ framework/source/helper/persistentwindowstate \
+ framework/source/helper/statusindicator \
+ framework/source/helper/statusindicatorfactory \
+ framework/source/helper/tagwindowasmodified \
+ framework/source/helper/titlebarupdate \
+ framework/source/helper/vclstatusindicator \
+ framework/source/helper/wakeupthread \
+ framework/source/interaction/quietinteraction \
+ framework/source/jobs/job \
+ framework/source/jobs/jobdata \
+ framework/source/jobs/jobdispatch \
+ framework/source/jobs/jobexecutor \
+ framework/source/jobs/jobresult \
+ framework/source/jobs/joburl \
+ framework/source/layoutmanager/helpers \
+ framework/source/layoutmanager/layoutmanager \
+ framework/source/layoutmanager/panel \
+ framework/source/layoutmanager/panelmanager \
+ framework/source/layoutmanager/toolbarlayoutmanager \
+ framework/source/layoutmanager/uielement \
+ framework/source/loadenv/loadenv \
+ framework/source/loadenv/targethelper \
+ framework/source/register/registerservices \
+ framework/source/services/autorecovery \
+ framework/source/services/backingcomp \
+ framework/source/services/backingwindow \
+ framework/source/services/desktop \
+ framework/source/services/frame \
+ framework/source/services/modelwinservice \
+ framework/source/services/modulemanager \
+ framework/source/services/pathsettings \
+ framework/source/services/sessionlistener \
+ framework/source/services/substitutepathvars \
+ framework/source/services/tabwindowservice \
+ framework/source/services/taskcreatorsrv \
+ framework/source/services/uriabbreviation \
+ framework/source/services/urltransformer \
+ framework/source/uiconfiguration/globalsettings \
+ framework/source/uiconfiguration/graphicnameaccess \
+ framework/source/uiconfiguration/imagemanager \
+ framework/source/uiconfiguration/imagemanagerimpl \
+ framework/source/uiconfiguration/moduleimagemanager \
+ framework/source/uiconfiguration/moduleuicfgsupplier \
+ framework/source/uiconfiguration/moduleuiconfigurationmanager \
+ framework/source/uiconfiguration/uicategorydescription \
+ framework/source/uiconfiguration/uiconfigurationmanager \
+ framework/source/uiconfiguration/uiconfigurationmanagerimpl \
+ framework/source/uiconfiguration/windowstateconfiguration \
+ framework/source/uielement/addonstoolbarmanager \
+ framework/source/uielement/addonstoolbarwrapper \
+ framework/source/uielement/buttontoolbarcontroller \
+ framework/source/uielement/comboboxtoolbarcontroller \
+ framework/source/uielement/complextoolbarcontroller \
+ framework/source/uielement/controlmenucontroller \
+ framework/source/uielement/dropdownboxtoolbarcontroller \
+ framework/source/uielement/edittoolbarcontroller \
+ framework/source/uielement/generictoolbarcontroller \
+ framework/source/uielement/imagebuttontoolbarcontroller \
+ framework/source/uielement/langselectionstatusbarcontroller \
+ framework/source/uielement/menubarmanager \
+ framework/source/uielement/menubarmerger \
+ framework/source/uielement/menubarwrapper \
+ framework/source/uielement/objectmenucontroller \
+ framework/source/uielement/panelwindow \
+ framework/source/uielement/panelwrapper \
+ framework/source/uielement/progressbarwrapper \
+ framework/source/uielement/recentfilesmenucontroller \
+ framework/source/uielement/spinfieldtoolbarcontroller \
+ framework/source/uielement/statusbar \
+ framework/source/uielement/statusbarmanager \
+ framework/source/uielement/statusbarwrapper \
+ framework/source/uielement/statusindicatorinterfacewrapper \
+ framework/source/uielement/togglebuttontoolbarcontroller \
+ framework/source/uielement/toolbar \
+ framework/source/uielement/toolbarmanager \
+ framework/source/uielement/toolbarmerger \
+ framework/source/uielement/toolbarwrapper \
+ framework/source/uielement/uicommanddescription \
+ framework/source/uifactory/addonstoolboxfactory \
+ framework/source/uifactory/factoryconfiguration \
+ framework/source/uifactory/menubarfactory \
+ framework/source/uifactory/popupmenucontrollerfactory \
+ framework/source/uifactory/statusbarcontrollerfactory \
+ framework/source/uifactory/statusbarfactory \
+ framework/source/uifactory/toolbarcontrollerfactory \
+ framework/source/uifactory/toolboxfactory \
+ framework/source/uifactory/uielementfactorymanager \
+ framework/source/uifactory/windowcontentfactorymanager \
+ framework/source/xml/acceleratorconfigurationreader \
+ framework/source/xml/acceleratorconfigurationwriter \
+))
+
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Library_add_linked_libs,fwk,\
+ dl \
+ m \
+ pthread \
+))
+endif
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_linked_libs,fwk,\
+ kernel32 \
+ msvcrt \
+ uwinapi \
+))
+endif
+# vim: set noet sw=4 ts=4:
diff --git a/framework/Library_fwl.mk b/framework/Library_fwl.mk
new file mode 100644
index 000000000000..d2002115eaf0
--- /dev/null
+++ b/framework/Library_fwl.mk
@@ -0,0 +1,99 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,fwl))
+
+$(eval $(call gb_Library_set_componentfile,fwl,framework/util/fwl))
+
+$(eval $(call gb_Library_set_include,fwl,\
+ -I$(SRCDIR)/framework/inc \
+ -I$(SRCDIR)/framework/inc/pch \
+ -I$(SRCDIR)/framework/source/inc \
+ -I$(WORKDIR)/inc/framework/ \
+ $$(INCLUDE) \
+ -I$(OUTDIR)/inc/framework \
+ -I$(OUTDIR)/inc/offuh \
+))
+
+$(eval $(call gb_Library_add_linked_libs,fwl,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ fwe \
+ fwi \
+ i18nisolang1 \
+ sal \
+ stl \
+ svl \
+ svt \
+ tk \
+ tl \
+ utl \
+ vcl \
+))
+
+$(eval $(call gb_Library_add_exception_objects,fwl,\
+ framework/source/classes/fwlresid \
+ framework/source/dispatch/mailtodispatcher \
+ framework/source/dispatch/oxt_handler \
+ framework/source/dispatch/popupmenudispatcher \
+ framework/source/dispatch/servicehandler \
+ framework/source/recording/dispatchrecorder \
+ framework/source/recording/dispatchrecordersupplier \
+ framework/source/register/registertemp \
+ framework/source/services/dispatchhelper \
+ framework/source/services/license \
+ framework/source/services/mediatypedetectionhelper \
+ framework/source/services/uriabbreviation \
+ framework/source/uielement/fontmenucontroller \
+ framework/source/uielement/fontsizemenucontroller \
+ framework/source/uielement/footermenucontroller \
+ framework/source/uielement/headermenucontroller \
+ framework/source/uielement/langselectionmenucontroller \
+ framework/source/uielement/logoimagestatusbarcontroller \
+ framework/source/uielement/logotextstatusbarcontroller \
+ framework/source/uielement/macrosmenucontroller \
+ framework/source/uielement/newmenucontroller \
+ framework/source/uielement/popupmenucontroller \
+ framework/source/uielement/simpletextstatusbarcontroller \
+ framework/source/uielement/toolbarsmenucontroller \
+))
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Library_add_linked_libs,fwl,\
+ dl \
+ m \
+ pthread \
+))
+endif
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_linked_libs,fwl,\
+ kernel32 \
+ msvcrt \
+ uwinapi \
+))
+endif
+# vim: set noet sw=4 ts=4:
diff --git a/framework/Library_fwm.mk b/framework/Library_fwm.mk
new file mode 100644
index 000000000000..9ff49719148a
--- /dev/null
+++ b/framework/Library_fwm.mk
@@ -0,0 +1,81 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,fwm))
+
+$(eval $(call gb_Library_set_componentfile,fwm,framework/util/fwm))
+
+$(eval $(call gb_Library_set_include,fwm,\
+ -I$(SRCDIR)/framework/inc/pch \
+ -I$(SRCDIR)/framework/inc \
+ -I$(SRCDIR)/framework/source/inc \
+ -I$(WORKDIR)/inc/framework/ \
+ $$(INCLUDE) \
+ -I$(OUTDIR)/inc/framework \
+ -I$(OUTDIR)/inc/offuh \
+))
+
+$(eval $(call gb_Library_add_linked_libs,fwm,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ fwi \
+ sal \
+ stl \
+ svl \
+ svt \
+ tk \
+ tl \
+ utl \
+ vcl \
+ vos3 \
+))
+
+$(eval $(call gb_Library_add_exception_objects,fwm,\
+ framework/source/dispatch/systemexec \
+ framework/source/jobs/helponstartup \
+ framework/source/jobs/shelljob \
+ framework/source/register/register3rdcomponents \
+ framework/source/tabwin/tabwindow \
+ framework/source/tabwin/tabwinfactory \
+))
+
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Library_add_linked_libs,fwm,\
+ dl \
+ m \
+ pthread \
+))
+endif
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_linked_libs,fwm,\
+ kernel32 \
+ msvcrt \
+ uwinapi \
+))
+endif
+# vim: set noet sw=4 ts=4:
diff --git a/sfx2/source/explorer/makefile.mk b/framework/Makefile
index 75a15ebdb862..a79aff831024 100644
--- a/sfx2/source/explorer/makefile.mk
+++ b/framework/Makefile
@@ -25,23 +25,14 @@
#
#*************************************************************************
-PRJ=..$/..
+ifeq ($(strip $(SOLARENV)),)
+$(error No environment set!)
+endif
-PRJNAME=sfx2
-TARGET=explorer
-ENABLE_EXCEPTIONS=TRUE
+gb_PARTIALBUILD := T
+GBUILDDIR := $(SOLARENV)/gbuild
+include $(GBUILDDIR)/gbuild.mk
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/nochaos.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
+$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk)))
+# vim: set noet sw=4 ts=4:
diff --git a/framework/Module_framework.mk b/framework/Module_framework.mk
new file mode 100644
index 000000000000..28b2e087b60f
--- /dev/null
+++ b/framework/Module_framework.mk
@@ -0,0 +1,43 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Module_Module,framework))
+
+$(eval $(call gb_Module_add_targets,framework,\
+ AllLangResTarget_fwe \
+ Library_fwe \
+ Library_fwi \
+ Library_fwk \
+ Library_fwl \
+ Library_fwm \
+ Package_dtd \
+ Package_inc \
+ Package_uiconfig \
+ Package_unotypes \
+))
+
+# vim: set noet ts=4 sw=4:
diff --git a/framework/inc/makefile.mk b/framework/Package_dtd.mk
index e2f1bedf4e98..db23783c4ef9 100644
--- a/framework/inc/makefile.mk
+++ b/framework/Package_dtd.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
+# Copyright 2009 by Sun Microsystems, Inc.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,34 +14,22 @@
#
# OpenOffice.org is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License version 3 for more details
# (a copy is included in the LICENSE file that accompanied this code).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ=..
-
-PRJNAME=framework
-TARGET=inc
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
-.IF "$(ENABLE_PCH)"!=""
-ALLTAR : \
- $(SLO)$/precompiled.pch \
- $(SLO)$/precompiled_ex.pch
-
-.ENDIF # "$(ENABLE_PCH)"!=""
+$(eval $(call gb_Package_Package,framework_dtd,$(SRCDIR)/framework/dtd))
+$(eval $(call gb_Package_add_file,framework_dtd,bin/accelerator.dtd,accelerator.dtd))
+$(eval $(call gb_Package_add_file,framework_dtd,bin/event.dtd,event.dtd))
+$(eval $(call gb_Package_add_file,framework_dtd,bin/groupuinames.dtd,groupuinames.dtd))
+$(eval $(call gb_Package_add_file,framework_dtd,bin/image.dtd,image.dtd))
+$(eval $(call gb_Package_add_file,framework_dtd,bin/menubar.dtd,menubar.dtd))
+$(eval $(call gb_Package_add_file,framework_dtd,bin/statusbar.dtd,statusbar.dtd))
+$(eval $(call gb_Package_add_file,framework_dtd,bin/toolbar.dtd,toolbar.dtd))
diff --git a/framework/Package_inc.mk b/framework/Package_inc.mk
new file mode 100644
index 000000000000..adefc3ccbd56
--- /dev/null
+++ b/framework/Package_inc.mk
@@ -0,0 +1,48 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Package_Package,framework_inc,$(SRCDIR)/framework/inc))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/acceleratorinfo.hxx,framework/acceleratorinfo.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/actiontriggerhelper.hxx,framework/actiontriggerhelper.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/addonmenu.hxx,framework/addonmenu.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/addonsoptions.hxx,framework/addonsoptions.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/bmkmenu.hxx,framework/bmkmenu.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/configimporter.hxx,framework/configimporter.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/eventsconfiguration.hxx,framework/eventsconfiguration.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/framelistanalyzer.hxx,framework/framelistanalyzer.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/imageproducer.hxx,framework/imageproducer.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/imagesconfiguration.hxx,framework/imagesconfiguration.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/interaction.hxx,framework/interaction.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/menuconfiguration.hxx,framework/menuconfiguration.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/menuextensionsupplier.hxx,framework/menuextensionsupplier.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/preventduplicateinteraction.hxx,framework/preventduplicateinteraction.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/sfxhelperfunctions.hxx,framework/sfxhelperfunctions.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/titlehelper.hxx,framework/titlehelper.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/toolboxconfiguration.hxx,framework/toolboxconfiguration.hxx))
+$(eval $(call gb_Package_add_file,framework_inc,inc/framework/fwedllapi.h,framework/fwedllapi.h))
+$(eval $(call gb_Package_add_file,framework_inc,inc/fwkdllapi.h,fwkdllapi.h))
+$(eval $(call gb_Package_add_file,framework_inc,inc/fwidllapi.h,fwidllapi.h))
diff --git a/framework/qa/complex/dispatches/helper/makefile.mk b/framework/Package_uiconfig.mk
index 2b2ccab5ebef..295be6c87252 100644
--- a/framework/qa/complex/dispatches/helper/makefile.mk
+++ b/framework/Package_uiconfig.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
+# Copyright 2009 by Sun Microsystems, Inc.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,34 +14,18 @@
#
# OpenOffice.org is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License version 3 for more details
# (a copy is included in the LICENSE file that accompanied this code).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ = ../../../..
-TARGET = checkdispatchapi
-PRJNAME = framework
-PACKAGE = complex/dispatches/helper
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar Generator.jar
-JAVAFILES = Interceptor.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:b).class)
-
-MAXLINELENGTH = 100000
-
-.INCLUDE : target.mk
-
-
+$(eval $(call gb_Package_Package,framework_uiconfig,$(SRCDIR)/framework/uiconfig))
+$(eval $(call gb_Package_add_file,framework_uiconfig,xml/uiconfig/modules/StartModule/menubar/menubar.xml,startmodule/menubar/menubar.xml))
+$(eval $(call gb_Package_add_file,framework_uiconfig,xml/uiconfig/modules/StartModule/statusbar/statusbar.xml,startmodule/statusbar/statusbar.xml))
+$(eval $(call gb_Package_add_file,framework_uiconfig,xml/uiconfig/modules/StartModule/toolbar/standardbar.xml,startmodule/toolbar/standardbar.xml))
diff --git a/framework/Package_unotypes.mk b/framework/Package_unotypes.mk
new file mode 100644
index 000000000000..01069ae93dc4
--- /dev/null
+++ b/framework/Package_unotypes.mk
@@ -0,0 +1,30 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Package_Package,framework_unotypes,$(SRCDIR)/framework/source/unotypes))
+$(eval $(call gb_Package_add_file,framework_unotypes,xml/fwk.xml,fwk.xml))
+$(eval $(call gb_Package_add_file,framework_unotypes,xml/fwl.xml,fwl.xml))
diff --git a/framework/inc/classes/actiontriggercontainer.hxx b/framework/inc/classes/actiontriggercontainer.hxx
index 034252c2ae63..936f6cf0cdbb 100644
--- a/framework/inc/classes/actiontriggercontainer.hxx
+++ b/framework/inc/classes/actiontriggercontainer.hxx
@@ -32,14 +32,16 @@
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <framework/fwedllapi.h>
#define SERVICENAME_ACTIONTRIGGERCONTAINER "com.sun.star.ui.ActionTriggerContainer"
#define IMPLEMENTATIONNAME_ACTIONTRIGGERCONTAINER "com.sun.star.comp.ui.ActionTriggerContainer"
+
namespace framework
{
-class ActionTriggerContainer : public PropertySetContainer,
+class FWE_DLLPUBLIC ActionTriggerContainer : public PropertySetContainer,
public com::sun::star::lang::XMultiServiceFactory,
public com::sun::star::lang::XServiceInfo,
public com::sun::star::lang::XTypeProvider
diff --git a/framework/inc/classes/actiontriggerpropertyset.hxx b/framework/inc/classes/actiontriggerpropertyset.hxx
index 203fa6eb67eb..3f373f272afd 100644
--- a/framework/inc/classes/actiontriggerpropertyset.hxx
+++ b/framework/inc/classes/actiontriggerpropertyset.hxx
@@ -41,6 +41,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
+#include <framework/fwedllapi.h>
#define SERVICENAME_ACTIONTRIGGER "com.sun.star.ui.ActionTrigger"
#define IMPLEMENTATIONNAME_ACTIONTRIGGER "com.sun.star.comp.ui.ActionTrigger"
@@ -48,7 +49,7 @@
namespace framework
{
-class ActionTriggerPropertySet : public ThreadHelpBase , // Struct for right initalization of mutex member! Must be first of baseclasses.
+class ActionTriggerPropertySet : public ThreadHelpBase , // Struct for right initalization of mutex member! Must be first of baseclasses.
public ::com::sun::star::lang::XServiceInfo ,
public ::com::sun::star::lang::XTypeProvider,
public ::cppu::OBroadcastHelper ,
@@ -56,23 +57,23 @@ class ActionTriggerPropertySet : public ThreadHelpBase
public ::cppu::OWeakObject
{
public:
- ActionTriggerPropertySet( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
- virtual ~ActionTriggerPropertySet();
+ FWE_DLLPUBLIC ActionTriggerPropertySet( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
+ FWE_DLLPUBLIC virtual ~ActionTriggerPropertySet();
// XInterface
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType )
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType )
throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL acquire() throw ();
- virtual void SAL_CALL release() throw ();
+ virtual FWE_DLLPUBLIC void SAL_CALL acquire() throw ();
+ virtual FWE_DLLPUBLIC void SAL_CALL release() throw ();
// XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
// XTypeProvider
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw (::com::sun::star::uno::RuntimeException);
private:
//---------------------------------------------------------------------------------------------------------
diff --git a/framework/inc/classes/actiontriggerseparatorpropertyset.hxx b/framework/inc/classes/actiontriggerseparatorpropertyset.hxx
index 7cb1488c1112..f3579e98fcc1 100644
--- a/framework/inc/classes/actiontriggerseparatorpropertyset.hxx
+++ b/framework/inc/classes/actiontriggerseparatorpropertyset.hxx
@@ -37,10 +37,12 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
+#include <framework/fwedllapi.h>
#define SERVICENAME_ACTIONTRIGGERSEPARATOR "com.sun.star.ui.ActionTriggerSeparator"
#define IMPLEMENTATIONNAME_ACTIONTRIGGERSEPARATOR "com.sun.star.comp.ui.ActionTriggerSeparator"
+
namespace framework
{
diff --git a/framework/inc/classes/converter.hxx b/framework/inc/classes/converter.hxx
index bd53b127f800..43972eeefa1b 100644
--- a/framework/inc/classes/converter.hxx
+++ b/framework/inc/classes/converter.hxx
@@ -47,6 +47,7 @@
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
#include <tools/datetime.hxx>
+#include <fwidllapi.h>
//_________________________________________________________________________________________________________________
// namespace
@@ -62,7 +63,7 @@ namespace framework{
// exported definitions
//_________________________________________________________________________________________________________________
-class Converter
+class FWI_DLLPUBLIC Converter
{
public:
// Seq<Any> <=> Seq<beans.PropertyValue>
diff --git a/framework/inc/classes/fwkresid.hxx b/framework/inc/classes/fwkresid.hxx
index 33d8d9fa579a..e8a9da8d6d6c 100644
--- a/framework/inc/classes/fwkresid.hxx
+++ b/framework/inc/classes/fwkresid.hxx
@@ -29,11 +29,12 @@
#define __FRAMEWORK_CLASSES_FWKRESID_HXX_
#include <tools/resid.hxx>
+#include <framework/fwedllapi.h>
namespace framework
{
-class FwkResId : public ResId
+class FWE_DLLPUBLIC FwkResId : public ResId
{
public:
FwkResId( sal_uInt16 nId );
diff --git a/framework/inc/classes/imagewrapper.hxx b/framework/inc/classes/imagewrapper.hxx
index fe4c9f5c9641..2001314e9edb 100644
--- a/framework/inc/classes/imagewrapper.hxx
+++ b/framework/inc/classes/imagewrapper.hxx
@@ -34,11 +34,12 @@
#include <com/sun/star/lang/XTypeProvider.hpp>
#include <cppuhelper/implbase2.hxx>
#include <vcl/image.hxx>
+#include <framework/fwedllapi.h>
namespace framework
{
-class ImageWrapper : public ThreadHelpBase , // Struct for right initalization of mutex member! Must be first of baseclasses.
+class FWE_DLLPUBLIC ImageWrapper : public ThreadHelpBase , // Struct for right initalization of mutex member! Must be first of baseclasses.
public ::cppu::WeakImplHelper2< ::com::sun::star::awt::XBitmap,
::com::sun::star::lang::XUnoTunnel >
{
diff --git a/framework/inc/classes/propertysethelper.hxx b/framework/inc/classes/propertysethelper.hxx
index f1c5648470b9..d62debc5b2a2 100644
--- a/framework/inc/classes/propertysethelper.hxx
+++ b/framework/inc/classes/propertysethelper.hxx
@@ -49,6 +49,7 @@
// other includes
#include <cppuhelper/weakref.hxx>
+#include <fwidllapi.h>
//_________________________________________________________________________________________________________________
// namespace
@@ -66,7 +67,7 @@ namespace framework{
* Further the derived and this base class share the same lock.
* So it's possible to be threadsafe if it's needed.
*/
-class PropertySetHelper : public css::beans::XPropertySet
+class FWI_DLLPUBLIC PropertySetHelper : public css::beans::XPropertySet
, public css::beans::XPropertySetInfo
{
//-------------------------------------------------------------------------
diff --git a/framework/inc/classes/protocolhandlercache.hxx b/framework/inc/classes/protocolhandlercache.hxx
index 77c4ca6a7f93..ffdcaa1f253b 100644
--- a/framework/inc/classes/protocolhandlercache.hxx
+++ b/framework/inc/classes/protocolhandlercache.hxx
@@ -47,6 +47,7 @@
#include <unotools/configitem.hxx>
#include <rtl/ustring.hxx>
+#include <fwidllapi.h>
//_________________________________________________________________________________________________________________
// namespace
@@ -76,7 +77,7 @@ namespace framework{
This struct holds the information about one such registered protocol handler.
A list of handler objects is defined as ProtocolHandlerHash. see below
*/
-struct ProtocolHandler
+struct FWI_DLLPUBLIC ProtocolHandler
{
/* member */
public:
@@ -94,7 +95,7 @@ struct ProtocolHandler
uno implementation names as value. Overloading of the index operator makes it possible
to search for a key by using a full qualified URL on list of all possible pattern keys.
*/
-class PatternHash : public BaseHash< ::rtl::OUString >
+class FWI_DLLPUBLIC PatternHash : public BaseHash< ::rtl::OUString >
{
/* interface */
public:
@@ -133,7 +134,7 @@ typedef BaseHash< ProtocolHandler > HandlerHash;
*/
class HandlerCFGAccess;
-class HandlerCache
+class FWI_DLLPUBLIC HandlerCache
{
/* member */
private:
@@ -178,7 +179,7 @@ class HandlerCache
@modified 30.04.2002 09:58, as96863
*/
-class HandlerCFGAccess : public ::utl::ConfigItem
+class FWI_DLLPUBLIC HandlerCFGAccess : public ::utl::ConfigItem
{
private:
HandlerCache* m_pCache;
diff --git a/framework/inc/classes/rootactiontriggercontainer.hxx b/framework/inc/classes/rootactiontriggercontainer.hxx
index 5d7a820983f7..e3c26d190ce9 100644
--- a/framework/inc/classes/rootactiontriggercontainer.hxx
+++ b/framework/inc/classes/rootactiontriggercontainer.hxx
@@ -35,6 +35,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <framework/fwedllapi.h>
#define IMPLEMENTATIONNAME_ROOTACTIONTRIGGERCONTAINER "com.sun.star.comp.ui.RootActionTriggerContainer"
@@ -42,7 +43,7 @@
namespace framework
{
-class RootActionTriggerContainer : public PropertySetContainer,
+class FWE_DLLPUBLIC RootActionTriggerContainer : public PropertySetContainer,
public com::sun::star::lang::XMultiServiceFactory,
public com::sun::star::lang::XServiceInfo,
public com::sun::star::lang::XUnoTunnel,
diff --git a/framework/inc/dispatch/interaction.hxx b/framework/inc/dispatch/interaction.hxx
deleted file mode 100644
index 28b5d817251b..000000000000
--- a/framework/inc/dispatch/interaction.hxx
+++ /dev/null
@@ -1,325 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef __FRAMEWORK_DISPATCH_INTERACTION_HXX_
-#define __FRAMEWORK_DISPATCH_INTERACTION_HXX_
-
-//_________________________________________________________________________________________________________________
-// my own includes
-//_________________________________________________________________________________________________________________
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-
-#include <com/sun/star/task/XInteractionRequest.hpp>
-#include <com/sun/star/task/XInteractionContinuation.hpp>
-#include <com/sun/star/task/XInteractionAbort.hpp>
-#include <com/sun/star/task/XInteractionApprove.hpp>
-#include <com/sun/star/task/XInteractionDisapprove.hpp>
-#include <com/sun/star/task/XInteractionRetry.hpp>
-#include <com/sun/star/document/XInteractionFilterSelect.hpp>
-#include <com/sun/star/document/NoSuchFilterRequest.hpp>
-#include <com/sun/star/document/AmbigousFilterRequest.hpp>
-#include <com/sun/star/uno/RuntimeException.hpp>
-
-//_________________________________________________________________________________________________________________
-// includes of other projects
-//_________________________________________________________________________________________________________________
-#include <rtl/ustring.hxx>
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
-
-namespace framework{
-
-//_________________________________________________________________________________________________________________
-// non exported const
-//_________________________________________________________________________________________________________________
-
-//_________________________________________________________________________________________________________________
-// non exported definitions
-//_________________________________________________________________________________________________________________
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short base for continuation classes
- @descr An interaction continuation could be used on XInteractionHandler/XInteractionRequest
- to abort or react for it.
- Base functionality is everytime the same - handler mark right continuation by calling
- interface method "select()". User of interaction can detect it by testing c++ method "isSelected()"!
- Superclasses can add additional interfaces or methods to support additional features ...
- but selection of it is supported here!
-
- @implements XInterface
- XTypeProvider (supported by WeakImplHelper!)
- XInteractionContinuation
-
- @base WeakImplHelper1
-
- @devstatus ready to use
- @threadsafe no (used on once position only!)
-*//*-*************************************************************************************************************/
-template< class TContinuationType >
-class ContinuationBase : public ::cppu::WeakImplHelper1< TContinuationType >
-{
- // c++ interface
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // initialize continuation with right start values
- //---------------------------------------------------------------------------------------------------------
- ContinuationBase()
- : m_bSelected( sal_False )
- {
- }
-
- //---------------------------------------------------------------------------------------------------------
- // was continuation selected by handler?
- //---------------------------------------------------------------------------------------------------------
- sal_Bool isSelected() const
- {
- return m_bSelected;
- }
-
- //---------------------------------------------------------------------------------------------------------
- // make using more then once possible
- //---------------------------------------------------------------------------------------------------------
- void reset()
- {
- m_bSelected = sal_False;
- }
-
- // uno interface
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // called by handler to mark continuation as the only possible solution for started interaction
- //---------------------------------------------------------------------------------------------------------
- virtual void SAL_CALL select() throw( ::com::sun::star::uno::RuntimeException )
- {
- m_bSelected = sal_True;
- }
-
- // member
- private:
-
- sal_Bool m_bSelected;
-
-}; // class ContinuationBase
-
-/*-************************************************************************************************************//**
- @short declaration of some simple continuations
- @descr These derived classes implements some simple continuations, which doesnt need and additional
- interfaces or methods. Her selected state is the only neccessary feature. User of it can
- distinguish by type between different functionality!
-
- @implements -
-
- @base ContinuationBase
-
- @devstatus ready to use
- @threadsafe no (used on once position only!)
-*//*-*************************************************************************************************************/
-typedef ContinuationBase< ::com::sun::star::task::XInteractionAbort > ContinuationAbort;
-typedef ContinuationBase< ::com::sun::star::task::XInteractionApprove > ContinuationApprove;
-typedef ContinuationBase< ::com::sun::star::task::XInteractionDisapprove > ContinuationDisapprove;
-typedef ContinuationBase< ::com::sun::star::task::XInteractionRetry > ContinuationRetry;
-
-/*-************************************************************************************************************//**
- @short declaration of special continuation for filter selection
- @descr Sometimes filter detection during loading document failed. Then we need a possibility
- to ask user for his decision. These continuation transport selected filter by user to
- code user of interaction.
-
- @attention This implementation could be used one times only. We don't support a resetable continuation yet!
- Why? Normaly interaction should show a filter selection dialog and ask user for his decision.
- He can select any filter - then instances of these class will be called by handler ... or user
- close dialog without any selection. Then another continuation should be slected by handler to
- abort continuations ... Retrying isn't very usefull here ... I think.
-
- @implements XInteractionFilterSelect
-
- @base ImplInheritanceHelper1
- ContinuationBase
-
- @devstatus ready to use
- @threadsafe no (used on once position only!)
-*//*-*************************************************************************************************************/
-class ContinuationFilterSelect : public ContinuationBase< ::com::sun::star::document::XInteractionFilterSelect >
-{
- // c++ interface
- public:
- ContinuationFilterSelect();
-
- // uno interface
- public:
- virtual void SAL_CALL setFilter( const ::rtl::OUString& sFilter ) throw( ::com::sun::star::uno::RuntimeException );
- virtual ::rtl::OUString SAL_CALL getFilter( ) throw( ::com::sun::star::uno::RuntimeException );
-
- // member
- private:
- ::rtl::OUString m_sFilter;
-
-}; // class ContinuationFilterSelect
-
-/*-************************************************************************************************************//**
- @short special request for interaction to ask user for right filter
- @descr These helper can be used to ask user for right filter, if filter detection failed.
- It capsulate communication with any interaction handler and supports an easy
- access on interaction results for user of these class.
- Use it and forget complex mechanism of interaction ...
-
- @example RequestFilterSelect* pRequest = new RequestFilterSelect;
- Reference< XInteractionRequest > xRequest ( pRequest );
- xInteractionHandler->handle( xRequest );
- if( ! pRequest.isAbort() )
- {
- OUString sFilter = pRequest->getFilter();
- }
-
- @implements XInteractionRequest
-
- @base WeakImplHelper1
-
- @devstatus ready to use
- @threadsafe no (used on once position only!)
-*//*-*************************************************************************************************************/
-class RequestFilterSelect : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
-{
- // c++ interface
- public:
- RequestFilterSelect( const ::rtl::OUString& sURL );
- sal_Bool isAbort () const;
- ::rtl::OUString getFilter() const;
-
- // uno interface
- public:
- virtual ::com::sun::star::uno::Any SAL_CALL getRequest () throw( ::com::sun::star::uno::RuntimeException );
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException );
-
- // member
- private:
- ::com::sun::star::uno::Any m_aRequest ;
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations;
- ContinuationAbort* m_pAbort ;
- ContinuationFilterSelect* m_pFilter ;
-
-}; // class RequestFilterSelect
-
-/*-************************************************************************************************************//**
- @short special request for interaction
- @descr User must decide between a preselected and another detected filter.
- It capsulate communication with any interaction handler and supports an easy
- access on interaction results for user of these class.
-
- @implements XInteractionRequest
-
- @base WeakImplHelper1
-
- @devstatus ready to use
- @threadsafe no (used on once position only!)
-*//*-*************************************************************************************************************/
-class RequestAmbigousFilter : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
-{
- // c++ interface
- public:
- RequestAmbigousFilter( const ::rtl::OUString& sURL ,
- const ::rtl::OUString& sSelectedFilter ,
- const ::rtl::OUString& sDetectedFilter );
- sal_Bool isAbort () const;
- ::rtl::OUString getFilter() const;
-
- // uno interface
- public:
- virtual ::com::sun::star::uno::Any SAL_CALL getRequest () throw( ::com::sun::star::uno::RuntimeException );
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException );
-
- // member
- private:
- ::com::sun::star::uno::Any m_aRequest ;
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations;
- ContinuationAbort* m_pAbort ;
- ContinuationFilterSelect* m_pFilter ;
-
-}; // class RequestFilterSelect
-
-/*-************************************************************************************************************//**
- @short special request for interaction
- @descr User must decide between a preselected and another detected filter.
- It capsulate communication with any interaction handler and supports an easy
- access on interaction results for user of these class.
-
- @implements XInteractionRequest
-
- @base WeakImplHelper1
-
- @devstatus ready to use
- @threadsafe no (used on once position only!)
-*//*-*************************************************************************************************************/
-class InteractionRequest : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
-{
- // c++ interface
- public:
- InteractionRequest( const ::com::sun::star::uno::Any& aRequest ,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > lContinuations )
- {
- m_aRequest = aRequest ;
- m_lContinuations = lContinuations;
- }
-
- // uno interface
- public:
- virtual ::com::sun::star::uno::Any SAL_CALL getRequest()
- throw( ::com::sun::star::uno::RuntimeException )
- {
- return m_aRequest;
- }
-
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations()
- throw( ::com::sun::star::uno::RuntimeException )
- {
- return m_lContinuations;
- }
-
- // member
- private:
- ::com::sun::star::uno::Any m_aRequest ;
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations;
-
-}; // class RequestFilterSelect
-
-} // namespace framework
-
-#endif // #define __FRAMEWORK_DISPATCH_INTERACTION_HXX_
diff --git a/framework/inc/helper/acceleratorinfo.hxx b/framework/inc/framework/acceleratorinfo.hxx
index bb529303df89..6b0519ceed98 100644
--- a/framework/inc/helper/acceleratorinfo.hxx
+++ b/framework/inc/framework/acceleratorinfo.hxx
@@ -31,6 +31,7 @@
#include <com/sun/star/frame/XFrame.hpp>
#include <vcl/keycod.hxx>
#include <rtl/ustring.hxx>
+#include <framework/fwedllapi.h>
namespace framework
{
diff --git a/framework/inc/helper/actiontriggerhelper.hxx b/framework/inc/framework/actiontriggerhelper.hxx
index 4e387a42509a..67c4115a3621 100644
--- a/framework/inc/helper/actiontriggerhelper.hxx
+++ b/framework/inc/framework/actiontriggerhelper.hxx
@@ -33,11 +33,12 @@
// #110897#
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <vcl/menu.hxx>
+#include <framework/fwedllapi.h>
namespace framework
{
- class ActionTriggerHelper
+ class FWE_DLLPUBLIC ActionTriggerHelper
{
public:
// Fills the submitted menu with the structure contained in the second
diff --git a/framework/inc/classes/addonmenu.hxx b/framework/inc/framework/addonmenu.hxx
index 94075aa7b66b..27b97d70d822 100644
--- a/framework/inc/classes/addonmenu.hxx
+++ b/framework/inc/framework/addonmenu.hxx
@@ -40,6 +40,7 @@
//_________________________________________________________________________________________________________________
#include <vcl/menu.hxx>
+#include <framework/fwedllapi.h>
#define ADDONMENU_ITEMID_START 2000
#define ADDONMENU_ITEMID_END 3000
@@ -47,7 +48,7 @@
namespace framework
{
-class AddonMenu : public PopupMenu
+class FWE_DLLPUBLIC AddonMenu : public PopupMenu
{
public:
AddonMenu( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame );
@@ -58,7 +59,7 @@ class AddonMenu : public PopupMenu
};
class AddonMenuManager;
-class AddonPopupMenu : public AddonMenu
+class FWE_DLLPUBLIC AddonPopupMenu : public AddonMenu
{
public:
~AddonPopupMenu();
@@ -80,7 +81,7 @@ class AddonPopupMenu : public AddonMenu
friend class AddonMenuManager;
};
-class AddonMenuManager
+class FWE_DLLPUBLIC AddonMenuManager
{
public:
enum MenuType
@@ -114,14 +115,25 @@ class AddonMenuManager
MenuBar* pMergeMenuBar );
// Returns the next position to insert a menu item/sub menu
+<<<<<<< local
static sal_uInt16 GetNextPos( sal_uInt16 nPos );
+=======
+ static USHORT GetNextPos( USHORT nPos );
+
+>>>>>>> other
// Build up the menu item and sub menu into the provided pCurrentMenu. The sub menus should be of type nSubMenuType.
static void BuildMenu( PopupMenu* pCurrentMenu,
MenuType nSubMenuType,
+<<<<<<< local
sal_uInt16 nInsPos,
sal_uInt16& nUniqueMenuId,
com::sun::star::uno::Sequence< com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > > aAddonMenuDefinition,
+=======
+ USHORT nInsPos,
+ USHORT& nUniqueMenuId,
+ com::sun::star::uno::Sequence< com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > > aAddonMenuDefinition,
+>>>>>>> other
const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& rFrame,
const com::sun::star::uno::Reference< com::sun::star::frame::XModel >& rModel );
diff --git a/framework/inc/classes/addonsoptions.hxx b/framework/inc/framework/addonsoptions.hxx
index 1824dd7b3f45..6e41fcbafdd1 100644
--- a/framework/inc/classes/addonsoptions.hxx
+++ b/framework/inc/framework/addonsoptions.hxx
@@ -38,7 +38,7 @@
#include <vcl/svapp.hxx>
#include <com/sun/star/uno/Sequence.h>
#include <com/sun/star/beans/PropertyValue.hpp>
-
+#include <framework/fwedllapi.h>
//_________________________________________________________________________________________________________________
// types, enums, ...
//_________________________________________________________________________________________________________________
@@ -81,7 +81,7 @@ namespace framework
typedef ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > MergeMenuDefinition;
-struct MergeMenuInstruction
+struct FWE_DLLPUBLIC MergeMenuInstruction
{
::rtl::OUString aMergePoint;
::rtl::OUString aMergeCommand;
@@ -92,7 +92,7 @@ struct MergeMenuInstruction
};
typedef ::std::vector< MergeMenuInstruction > MergeMenuInstructionContainer;
-struct MergeToolbarInstruction
+struct FWE_DLLPUBLIC MergeToolbarInstruction
{
::rtl::OUString aMergeToolbar;
::rtl::OUString aMergePoint;
@@ -132,7 +132,7 @@ class AddonsOptions_Impl;
@devstatus ready to use
*//*-*************************************************************************************************************/
-class AddonsOptions
+class FWE_DLLPUBLIC AddonsOptions
{
//-------------------------------------------------------------------------------------------------------------
// public methods
diff --git a/framework/inc/classes/bmkmenu.hxx b/framework/inc/framework/bmkmenu.hxx
index dfd9332e3725..0ee25dea1ab2 100644
--- a/framework/inc/classes/bmkmenu.hxx
+++ b/framework/inc/framework/bmkmenu.hxx
@@ -27,13 +27,13 @@
#ifndef __FRAMEWORK_CLASSES_BMKMENU_HXX
#define __FRAMEWORK_CLASSES_BMKMENU_HXX
-#include "classes/addonmenu.hxx"
+#include "framework/addonmenu.hxx"
//_________________________________________________________________________________________________________________
// interface includes
//_________________________________________________________________________________________________________________
#include <com/sun/star/frame/XFrame.hpp>
-
+#include <framework/fwedllapi.h>
//_________________________________________________________________________________________________________________
// includes of other projects
//_________________________________________________________________________________________________________________
@@ -50,7 +50,7 @@ namespace framework
{
class BmkMenu_Impl;
-class BmkMenu : public AddonMenu
+class FWE_DLLPUBLIC BmkMenu : public AddonMenu
{
public:
enum BmkMenuType
diff --git a/framework/inc/helper/configimporter.hxx b/framework/inc/framework/configimporter.hxx
index bbe465d85692..6038f7bdd325 100644
--- a/framework/inc/helper/configimporter.hxx
+++ b/framework/inc/framework/configimporter.hxx
@@ -34,10 +34,11 @@
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <rtl/ustring.hxx>
+#include <framework/fwedllapi.h>
namespace framework
{
- class UIConfigurationImporterOOo1x
+ class FWE_DLLPUBLIC UIConfigurationImporterOOo1x
{
public:
static sal_Bool ImportCustomToolbars(
diff --git a/framework/inc/xml/eventsconfiguration.hxx b/framework/inc/framework/eventsconfiguration.hxx
index e5e1ab474a2a..4c07be58d1c7 100644
--- a/framework/inc/xml/eventsconfiguration.hxx
+++ b/framework/inc/framework/eventsconfiguration.hxx
@@ -28,6 +28,7 @@
#ifndef __FRAMEWORK_XML_EVENTSCONFIGURATION_HXX_
#define __FRAMEWORK_XML_EVENTSCONFIGURATION_HXX_
+#include <framework/fwedllapi.h>
#include <svl/svarray.hxx>
#include <tools/string.hxx>
#include <tools/stream.hxx>
@@ -40,13 +41,13 @@
namespace framework
{
-struct EventsConfig
+struct FWE_DLLPUBLIC EventsConfig
{
::com::sun::star::uno::Sequence< ::rtl::OUString > aEventNames;
::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > aEventsProperties;
};
-class EventsConfiguration
+class FWE_DLLPUBLIC EventsConfiguration
{
public:
// #110897#
diff --git a/framework/inc/classes/framelistanalyzer.hxx b/framework/inc/framework/framelistanalyzer.hxx
index e0b89ab32217..61fe08cc7018 100644
--- a/framework/inc/classes/framelistanalyzer.hxx
+++ b/framework/inc/framework/framelistanalyzer.hxx
@@ -34,6 +34,7 @@
//_______________________________________________
// other includes
+#include <framework/fwedllapi.h>
//_______________________________________________
// namespace
@@ -53,7 +54,7 @@ namespace framework{
to switch into the backing mode, close the current active frame only or
exit the whole application explicitly or implicitly.
*/
-class FrameListAnalyzer
+class FWE_DLLPUBLIC FrameListAnalyzer
{
//_______________________________________
// types
diff --git a/framework/inc/framework/fwedllapi.h b/framework/inc/framework/fwedllapi.h
new file mode 100644
index 000000000000..c3aa1bb81d1d
--- /dev/null
+++ b/framework/inc/framework/fwedllapi.h
@@ -0,0 +1,13 @@
+#ifndef INCLUDED_FWEDLLAPI_H
+#define INCLUDED_FWEDLLAPI_H
+
+#include "sal/types.h"
+
+#if defined(FWE_DLLIMPLEMENTATION)
+#define FWE_DLLPUBLIC SAL_DLLPUBLIC_EXPORT
+#else
+#define FWE_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
+#endif
+#define FWE_DLLPRIVATE SAL_DLLPRIVATE
+
+#endif /* INCLUDED_FWEDLLAPI_H */
diff --git a/framework/inc/helper/imageproducer.hxx b/framework/inc/framework/imageproducer.hxx
index c11ab44f26f4..02042e44a2e2 100644
--- a/framework/inc/helper/imageproducer.hxx
+++ b/framework/inc/framework/imageproducer.hxx
@@ -35,15 +35,16 @@
#include <com/sun/star/frame/XFrame.hpp>
#include <vcl/image.hxx>
#include <rtl/ustring.hxx>
+#include <framework/fwedllapi.h>
namespace framework
{
typedef Image ( *pfunc_getImage)( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, const ::rtl::OUString& aURL, sal_Bool bBig, sal_Bool bHiContrast );
-pfunc_getImage SAL_CALL SetImageProducer( pfunc_getImage pGetImageFunc );
+pfunc_getImage FWE_DLLPUBLIC SAL_CALL SetImageProducer( pfunc_getImage pGetImageFunc );
-Image SAL_CALL GetImageFromURL( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, const ::rtl::OUString& aURL, sal_Bool bBig, sal_Bool bHiContrast );
+Image FWE_DLLPUBLIC SAL_CALL GetImageFromURL( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, const ::rtl::OUString& aURL, sal_Bool bBig, sal_Bool bHiContrast );
}
diff --git a/framework/inc/xml/imagesconfiguration.hxx b/framework/inc/framework/imagesconfiguration.hxx
index 733822db8beb..0771e2d8f7f1 100644
--- a/framework/inc/xml/imagesconfiguration.hxx
+++ b/framework/inc/framework/imagesconfiguration.hxx
@@ -28,6 +28,7 @@
#ifndef __FRAMEWORK_XML_IMAGESCONFIGURATION_HXX_
#define __FRAMEWORK_XML_IMAGESCONFIGURATION_HXX_
+#include <framework/fwedllapi.h>
#include <svl/svarray.hxx>
#include <tools/string.hxx>
#include <tools/stream.hxx>
@@ -49,7 +50,7 @@ enum ImageMaskMode
ImageMaskMode_Bitmap
};
-struct ImageItemDescriptor
+struct FWE_DLLPUBLIC ImageItemDescriptor
{
ImageItemDescriptor() : nIndex( -1 ) {}
@@ -57,7 +58,7 @@ struct ImageItemDescriptor
long nIndex; // index of the bitmap inside the bitmaplist
};
-struct ExternalImageItemDescriptor
+struct FWE_DLLPUBLIC ExternalImageItemDescriptor
{
String aCommandURL; // URL command to dispatch
String aURL; // a URL to an external bitmap
@@ -69,7 +70,7 @@ SV_DECL_PTRARR_DEL( ImageItemListDescriptor, ImageItemDescriptorPtr, 10, 2)
typedef ExternalImageItemDescriptor* ExternalImageItemDescriptorPtr;
SV_DECL_PTRARR_DEL( ExternalImageItemListDescriptor, ExternalImageItemDescriptorPtr, 10, 2)
-struct ImageListItemDescriptor
+struct FWE_DLLPUBLIC ImageListItemDescriptor
{
ImageListItemDescriptor() : nMaskMode( ImageMaskMode_Color ),
pImageItemList( 0 ) {}
@@ -88,7 +89,7 @@ struct ImageListItemDescriptor
typedef ImageListItemDescriptor* ImageListItemDescriptorPtr;
SV_DECL_PTRARR_DEL( ImageListDescriptor, ImageListItemDescriptorPtr, 10, 2)
-struct ImageListsDescriptor
+struct FWE_DLLPUBLIC ImageListsDescriptor
{
ImageListsDescriptor() : pImageList( 0 ),
pExternalImageList( 0 ) {}
@@ -98,7 +99,7 @@ struct ImageListsDescriptor
ExternalImageItemListDescriptor* pExternalImageList;
};
-class ImagesConfiguration
+class FWE_DLLPUBLIC ImagesConfiguration
{
public:
// #110897#
diff --git a/framework/inc/framework/interaction.hxx b/framework/inc/framework/interaction.hxx
new file mode 100644
index 000000000000..03c8fde19736
--- /dev/null
+++ b/framework/inc/framework/interaction.hxx
@@ -0,0 +1,142 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FRAMEWORK_DISPATCH_INTERACTION_HXX_
+#define __FRAMEWORK_DISPATCH_INTERACTION_HXX_
+
+#include <com/sun/star/task/XInteractionRequest.hpp>
+#include <com/sun/star/task/XInteractionContinuation.hpp>
+#include <com/sun/star/task/XInteractionAbort.hpp>
+#include <com/sun/star/task/XInteractionApprove.hpp>
+#include <com/sun/star/task/XInteractionDisapprove.hpp>
+#include <com/sun/star/task/XInteractionRetry.hpp>
+#include <com/sun/star/document/XInteractionFilterSelect.hpp>
+#include <com/sun/star/document/NoSuchFilterRequest.hpp>
+#include <com/sun/star/document/AmbigousFilterRequest.hpp>
+#include <com/sun/star/uno/RuntimeException.hpp>
+
+//_________________________________________________________________________________________________________________
+// includes of other projects
+//_________________________________________________________________________________________________________________
+#include <rtl/ustring.hxx>
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <framework/fwedllapi.h>
+
+namespace framework{
+
+/*-************************************************************************************************************//**
+ @short special request for interaction to ask user for right filter
+ @descr These helper can be used to ask user for right filter, if filter detection failed.
+ It capsulate communication with any interaction handler and supports an easy
+ access on interaction results for user of these class.
+ Use it and forget complex mechanism of interaction ...
+
+ @example RequestFilterSelect* pRequest = new RequestFilterSelect;
+ Reference< XInteractionRequest > xRequest ( pRequest );
+ xInteractionHandler->handle( xRequest );
+ if( ! pRequest.isAbort() )
+ {
+ OUString sFilter = pRequest->getFilter();
+ }
+
+ @implements XInteractionRequest
+
+ @base WeakImplHelper1
+
+ @devstatus ready to use
+ @threadsafe no (used on once position only!)
+*//*-*************************************************************************************************************/
+class RequestFilterSelect_Impl;
+class FWE_DLLPUBLIC RequestFilterSelect
+{
+ RequestFilterSelect_Impl* pImp;
+
+ public:
+ RequestFilterSelect( const ::rtl::OUString& sURL );
+ ~RequestFilterSelect();
+ sal_Bool isAbort () const;
+ ::rtl::OUString getFilter() const;
+ com::sun::star::uno::Reference < ::com::sun::star::task::XInteractionRequest > GetRequest();
+};
+
+/*-************************************************************************************************************//**
+ @short special request for interaction
+ @descr User must decide between a preselected and another detected filter.
+ It capsulate communication with any interaction handler and supports an easy
+ access on interaction results for user of these class.
+
+ @implements XInteractionRequest
+
+ @base WeakImplHelper1
+
+ @devstatus ready to use
+ @threadsafe no (used on once position only!)
+*//*-*************************************************************************************************************/
+class FWE_DLLPUBLIC InteractionRequest
+{
+public:
+ static com::sun::star::uno::Reference < ::com::sun::star::task::XInteractionRequest >
+ CreateRequest( const ::com::sun::star::uno::Any& aRequest,
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > lContinuations );
+};
+
+/*-************************************************************************************************************//**
+ @short special request for interaction
+ @descr User must decide between a preselected and another detected filter.
+ It capsulate communication with any interaction handler and supports an easy
+ access on interaction results for user of these class.
+
+ @implements XInteractionRequest
+
+ @base WeakImplHelper1
+
+ @devstatus ready to use
+ @threadsafe no (used on once position only!)
+*//*-*************************************************************************************************************/
+/*
+class RequestAmbigousFilter_Impl;
+class RequestAmbigousFilter // seems to be unused currently
+{
+ RequestAmbigousFilter_Impl* pImp;
+
+ // c++ interface
+public:
+ RequestAmbigousFilter( const ::rtl::OUString& sURL,
+ const ::rtl::OUString& sSelectedFilter ,
+ const ::rtl::OUString& sDetectedFilter );
+ ~RequestAmbigousFilter();
+ sal_Bool isAbort () const;
+ ::rtl::OUString getFilter() const;
+ com::sun::star::uno::Reference < ::com::sun::star::task::XInteractionRequest > GetRequest();
+};
+ */
+
+} // namespace framework
+
+#endif // #define __FRAMEWORK_DISPATCH_INTERACTION_HXX_
diff --git a/framework/inc/xml/menuconfiguration.hxx b/framework/inc/framework/menuconfiguration.hxx
index 86f04bcf3d23..be3437c5e45c 100644
--- a/framework/inc/xml/menuconfiguration.hxx
+++ b/framework/inc/framework/menuconfiguration.hxx
@@ -40,6 +40,7 @@
#include <com/sun/star/container/XIndexContainer.hpp>
#include <com/sun/star/container/XIndexAccess.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
+#include <framework/fwedllapi.h>
//_________________________________________________________________________________________________________________
// includes of other projects
@@ -70,7 +71,7 @@ const sal_uInt16 ITEMID_ADDONHELP = FWK_SID_ADDONHELP;
namespace framework
{
-class MenuConfiguration
+class FWE_DLLPUBLIC MenuConfiguration
{
public:
struct Attributes
diff --git a/framework/inc/classes/menuextensionsupplier.hxx b/framework/inc/framework/menuextensionsupplier.hxx
index 04fe3352fa31..f6ca60d4fecc 100644
--- a/framework/inc/classes/menuextensionsupplier.hxx
+++ b/framework/inc/framework/menuextensionsupplier.hxx
@@ -29,8 +29,9 @@
#define __FRAMEWORK_CLASSES_MENUEXTENSIONSUPPLIER_HXX_
#include <rtl/ustring.hxx>
+#include <framework/fwedllapi.h>
-struct MenuExtensionItem
+struct FWE_DLLPUBLIC MenuExtensionItem
{
rtl::OUString aLabel;
rtl::OUString aURL;
@@ -41,9 +42,9 @@ typedef MenuExtensionItem ( *pfunc_setMenuExtensionSupplier)();
namespace framework
{
-pfunc_setMenuExtensionSupplier SAL_CALL SetMenuExtensionSupplier( pfunc_setMenuExtensionSupplier pSetMenuExtensionSupplier );
+FWE_DLLPUBLIC pfunc_setMenuExtensionSupplier SAL_CALL SetMenuExtensionSupplier( pfunc_setMenuExtensionSupplier pSetMenuExtensionSupplier );
-MenuExtensionItem SAL_CALL GetMenuExtension();
+FWE_DLLPUBLIC MenuExtensionItem SAL_CALL GetMenuExtension();
}
diff --git a/framework/inc/interaction/preventduplicateinteraction.hxx b/framework/inc/framework/preventduplicateinteraction.hxx
index 3a36f09641f1..0e24357fe71e 100644
--- a/framework/inc/interaction/preventduplicateinteraction.hxx
+++ b/framework/inc/framework/preventduplicateinteraction.hxx
@@ -28,6 +28,7 @@
#ifndef __FRAMEWORK_INTERACTION_PREVENTDUPLICATEINTERACTION_HXX_
#define __FRAMEWORK_INTERACTION_PREVENTDUPLICATEINTERACTION_HXX_
+#include <framework/fwedllapi.h>
//_________________________________________________________________________________________________________________
// my own includes
//_________________________________________________________________________________________________________________
@@ -82,7 +83,7 @@ struct ThreadHelpBase2
mutable ::osl::Mutex m_aLock;
};
-class PreventDuplicateInteraction : private ThreadHelpBase2
+class FWE_DLLPUBLIC PreventDuplicateInteraction : private ThreadHelpBase2
,public ::cppu::WeakImplHelper1< css::task::XInteractionHandler2 >
{
//_____________________________________
diff --git a/framework/inc/classes/sfxhelperfunctions.hxx b/framework/inc/framework/sfxhelperfunctions.hxx
index ac3fa472f249..fd4292fc340f 100644
--- a/framework/inc/classes/sfxhelperfunctions.hxx
+++ b/framework/inc/framework/sfxhelperfunctions.hxx
@@ -28,6 +28,7 @@
#ifndef __FRAMEWORK_CLASSES_SFXHELPERFUNCTIONS_HXX_
#define __FRAMEWORK_CLASSES_SFXHELPERFUNCTIONS_HXX_
+#include <framework/fwedllapi.h>
#include <com/sun/star/frame/XFrame.hpp>
#include <rtl/ustring.hxx>
#include <vcl/toolbox.hxx>
@@ -45,29 +46,29 @@ typedef void ( *pfunc_activateToolPanel)( const ::com::sun::star::uno::Reference
namespace framework
{
-pfunc_setToolBoxControllerCreator SAL_CALL SetToolBoxControllerCreator( pfunc_setToolBoxControllerCreator pSetToolBoxControllerCreator );
+FWE_DLLPUBLIC pfunc_setToolBoxControllerCreator SAL_CALL SetToolBoxControllerCreator( pfunc_setToolBoxControllerCreator pSetToolBoxControllerCreator );
-svt::ToolboxController* SAL_CALL CreateToolBoxController( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, ToolBox* pToolbox, unsigned short nID, const ::rtl::OUString& aCommandURL );
+FWE_DLLPUBLIC svt::ToolboxController* SAL_CALL CreateToolBoxController( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, ToolBox* pToolbox, unsigned short nID, const ::rtl::OUString& aCommandURL );
-pfunc_setStatusBarControllerCreator SAL_CALL SetStatusBarControllerCreator( pfunc_setStatusBarControllerCreator pSetStatusBarControllerCreator );
+FWE_DLLPUBLIC pfunc_setStatusBarControllerCreator SAL_CALL SetStatusBarControllerCreator( pfunc_setStatusBarControllerCreator pSetStatusBarControllerCreator );
-svt::StatusbarController* SAL_CALL CreateStatusBarController( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, StatusBar* pStatusBar, unsigned short nID, const ::rtl::OUString& aCommandURL );
+FWE_DLLPUBLIC svt::StatusbarController* SAL_CALL CreateStatusBarController( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, StatusBar* pStatusBar, unsigned short nID, const ::rtl::OUString& aCommandURL );
-pfunc_getRefreshToolbars SAL_CALL SetRefreshToolbars( pfunc_getRefreshToolbars pRefreshToolbarsFunc );
+FWE_DLLPUBLIC pfunc_getRefreshToolbars SAL_CALL SetRefreshToolbars( pfunc_getRefreshToolbars pRefreshToolbarsFunc );
-void SAL_CALL RefreshToolbars( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame );
+FWE_DLLPUBLIC void SAL_CALL RefreshToolbars( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame );
-pfunc_createDockingWindow SAL_CALL SetDockingWindowCreator( pfunc_createDockingWindow pCreateDockingWindow );
+FWE_DLLPUBLIC pfunc_createDockingWindow SAL_CALL SetDockingWindowCreator( pfunc_createDockingWindow pCreateDockingWindow );
-void SAL_CALL CreateDockingWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, const ::rtl::OUString& rResourceURL );
+FWE_DLLPUBLIC void SAL_CALL CreateDockingWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, const ::rtl::OUString& rResourceURL );
-pfunc_isDockingWindowVisible SAL_CALL SetIsDockingWindowVisible( pfunc_isDockingWindowVisible pIsDockingWindowVisible );
+FWE_DLLPUBLIC pfunc_isDockingWindowVisible SAL_CALL SetIsDockingWindowVisible( pfunc_isDockingWindowVisible pIsDockingWindowVisible );
-bool SAL_CALL IsDockingWindowVisible( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, const ::rtl::OUString& rResourceURL );
+FWE_DLLPUBLIC bool SAL_CALL IsDockingWindowVisible( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, const ::rtl::OUString& rResourceURL );
-pfunc_activateToolPanel SAL_CALL SetActivateToolPanel( pfunc_activateToolPanel i_pActivator );
+FWE_DLLPUBLIC pfunc_activateToolPanel SAL_CALL SetActivateToolPanel( pfunc_activateToolPanel i_pActivator );
-void SAL_CALL ActivateToolPanel( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& i_rFrame, const ::rtl::OUString& i_rPanelURL );
+FWE_DLLPUBLIC void SAL_CALL ActivateToolPanel( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& i_rFrame, const ::rtl::OUString& i_rPanelURL );
}
#endif // __FRAMEWORK_CLASSES_SFXHELPERFUNCTIONS_HXX_
diff --git a/framework/inc/xml/statusbarconfiguration.hxx b/framework/inc/framework/statusbarconfiguration.hxx
index 8619ae423622..bd93831cba7a 100644
--- a/framework/inc/xml/statusbarconfiguration.hxx
+++ b/framework/inc/framework/statusbarconfiguration.hxx
@@ -1,6 +1,33 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
#ifndef __FRAMEWORK_CLASSES_STATUSBARCONFIGURATION_HXX_
#define __FRAMEWORK_CLASSES_STATUSBARCONFIGURATION_HXX_
+#include <framework/fwedllapi.h>
#include <svl/svarray.hxx>
#include <tools/string.hxx>
#include <tools/stream.hxx>
@@ -14,7 +41,7 @@
namespace framework
{
-struct StatusBarItemDescriptor
+struct FWE_DLLPUBLIC StatusBarItemDescriptor
{
String aURL; // URL command to dispatch
long nItemBits; // properties for this statusbar item (WinBits)
@@ -31,7 +58,7 @@ struct StatusBarItemDescriptor
typedef StatusBarItemDescriptor* StatusBarItemDescriptorPtr;
SV_DECL_PTRARR_DEL( StatusBarDescriptor, StatusBarItemDescriptorPtr, 10, 2)
-class StatusBarConfiguration
+class FWE_DLLPUBLIC StatusBarConfiguration
{
public:
static sal_Bool LoadStatusBar(
diff --git a/framework/inc/helper/titlehelper.hxx b/framework/inc/framework/titlehelper.hxx
index 2be3e1325bb4..1b448cef13ac 100644
--- a/framework/inc/helper/titlehelper.hxx
+++ b/framework/inc/framework/titlehelper.hxx
@@ -51,6 +51,7 @@
#include <rtl/ustrbuf.hxx>
#include <hash_map>
+#include <framework/fwedllapi.h>
//_______________________________________________
// namespace
@@ -70,7 +71,7 @@ namespace framework{
@threadsafe
*/
-class TitleHelper : private ::cppu::BaseMutex
+class FWE_DLLPUBLIC TitleHelper : private ::cppu::BaseMutex
, public ::cppu::WeakImplHelper5< css::frame::XTitle ,
css::frame::XTitleChangeBroadcaster,
css::frame::XTitleChangeListener ,
diff --git a/framework/inc/xml/toolboxconfiguration.hxx b/framework/inc/framework/toolboxconfiguration.hxx
index 924c601ac689..453d94810fbc 100644
--- a/framework/inc/xml/toolboxconfiguration.hxx
+++ b/framework/inc/framework/toolboxconfiguration.hxx
@@ -1,6 +1,33 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
#ifndef __FRAMEWORK_XML_TOOLBOXCONFIGURATION_HXX_
#define __FRAMEWORK_XML_TOOLBOXCONFIGURATION_HXX_
+#include <framework/fwedllapi.h>
#include <svl/svarray.hxx>
#include <vcl/bitmap.hxx>
#include <tools/string.hxx>
@@ -17,7 +44,7 @@
namespace framework
{
-class ToolBoxConfiguration
+class FWE_DLLPUBLIC ToolBoxConfiguration
{
public:
// #110897#
diff --git a/framework/inc/fwidllapi.h b/framework/inc/fwidllapi.h
new file mode 100644
index 000000000000..8f4b50cf77e0
--- /dev/null
+++ b/framework/inc/fwidllapi.h
@@ -0,0 +1,13 @@
+#ifndef INCLUDED_FWIDLLAPI_H
+#define INCLUDED_FWIDLLAPI_H
+
+#include "sal/types.h"
+
+#if defined(FWI_DLLIMPLEMENTATION)
+#define FWI_DLLPUBLIC SAL_DLLPUBLIC_EXPORT
+#else
+#define FWI_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
+#endif
+#define FWI_DLLPRIVATE SAL_DLLPRIVATE
+
+#endif /* INCLUDED_FWIDLLAPI_H */
diff --git a/framework/inc/fwkdllapi.h b/framework/inc/fwkdllapi.h
new file mode 100644
index 000000000000..a22303386b68
--- /dev/null
+++ b/framework/inc/fwkdllapi.h
@@ -0,0 +1,8 @@
+#ifndef INCLUDED_FWKDLLAPI_H
+#define INCLUDED_FWKDLLAPI_H
+
+#include "sal/types.h"
+
+#include <fwidllapi.h>
+
+#endif /* INCLUDED_FWKDLLAPI_H */
diff --git a/svx/inc/srchitem.hxx b/framework/inc/helper/ilayoutnotifications.hxx
index fceb5f009953..db63ea15c7b4 100644..100755
--- a/svx/inc/srchitem.hxx
+++ b/framework/inc/helper/ilayoutnotifications.hxx
@@ -6,6 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -24,11 +27,26 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#ifndef _SVX_SRCHITEM_HXX
-#define _SVX_SRCHITEM_HXX
-#include <svl/srchitem.hxx>
+#ifndef __FRAMEWORK_LAYOUTMANAGER_ILAYOUTNOTIFICATIONS_HXX_
+#define __FRAMEWORK_LAYOUTMANAGER_ILAYOUTNOTIFICATIONS_HXX_
+
+namespace framework
+{
+
+class ILayoutNotifications
+{
+ public:
+ enum Hint
+ {
+ HINT_NOT_SPECIFIED,
+ HINT_TOOLBARSPACE_HAS_CHANGED,
+ HINT_COUNT
+ };
-#endif
+ virtual void requestLayout( Hint eHint = HINT_NOT_SPECIFIED ) = 0;
+};
+}
+#endif // __FRAMEWORK_LAYOUTMANAGER_ILAYOUTNOTIFICATIONS_HXX_
diff --git a/framework/inc/helper/mischelper.hxx b/framework/inc/helper/mischelper.hxx
index 6a1886244b54..5698974930ca 100755
--- a/framework/inc/helper/mischelper.hxx
+++ b/framework/inc/helper/mischelper.hxx
@@ -35,6 +35,7 @@
#include <i18npool/lang.h>
#include <svl/languageoptions.hxx>
#include <rtl/ustring.hxx>
+#include <fwidllapi.h>
#include <set>
@@ -90,7 +91,7 @@ inline bool IsScriptTypeMatchingToLanguage( sal_Int16 nScriptType, LanguageType
}
-class LanguageGuessingHelper
+class FWI_DLLPUBLIC LanguageGuessingHelper
{
mutable ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XLanguageGuessing > m_xLanguageGuesser;
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager;
@@ -101,7 +102,7 @@ public:
::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XLanguageGuessing > GetGuesser() const;
};
-::rtl::OUString RetrieveLabelFromCommand( const ::rtl::OUString& aCmdURL
+FWI_DLLPUBLIC ::rtl::OUString RetrieveLabelFromCommand( const ::rtl::OUString& aCmdURL
,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xServiceFactory
,::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& _xUICommandLabels
,const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _xFrame
@@ -109,7 +110,7 @@ public:
,sal_Bool& _rIni
,const sal_Char* _pName);
-void FillLangItems( std::set< ::rtl::OUString > &rLangItems,
+FWI_DLLPUBLIC void FillLangItems( std::set< ::rtl::OUString > &rLangItems,
const SvtLanguageTable &rLanguageTable,
const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > &rxFrame,
const LanguageGuessingHelper & rLangGuessHelper,
diff --git a/framework/inc/helper/networkdomain.hxx b/framework/inc/helper/networkdomain.hxx
index 577b8a2672ad..55db4bf708dc 100644
--- a/framework/inc/helper/networkdomain.hxx
+++ b/framework/inc/helper/networkdomain.hxx
@@ -29,11 +29,12 @@
#define __FRAMEWORK_HELPER_NETWORKDOMAIN_HXX_
#include <rtl/ustring.hxx>
+#include <fwidllapi.h>
namespace framework
{
-class NetworkDomain
+class FWI_DLLPUBLIC NetworkDomain
{
public:
static rtl::OUString GetNTDomainName();
diff --git a/framework/inc/helper/propertysetcontainer.hxx b/framework/inc/helper/propertysetcontainer.hxx
index 3420aa58b9c3..d1c50d3d9a14 100644
--- a/framework/inc/helper/propertysetcontainer.hxx
+++ b/framework/inc/helper/propertysetcontainer.hxx
@@ -37,11 +37,12 @@
#include <com/sun/star/container/XIndexContainer.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <threadhelp/threadhelpbase.hxx>
+#include <framework/fwedllapi.h>
namespace framework
{
-class PropertySetContainer : public com::sun::star::container::XIndexContainer ,
+class FWE_DLLPUBLIC PropertySetContainer : public com::sun::star::container::XIndexContainer ,
public ThreadHelpBase , // Struct for right initalization of mutex member! Must be first of baseclasses.
public ::cppu::OWeakObject
{
diff --git a/framework/inc/helper/shareablemutex.hxx b/framework/inc/helper/shareablemutex.hxx
index c591bb54d5c9..1d323551b841 100644
--- a/framework/inc/helper/shareablemutex.hxx
+++ b/framework/inc/helper/shareablemutex.hxx
@@ -30,11 +30,12 @@
#include <osl/interlck.h>
#include <osl/mutex.hxx>
+#include <fwidllapi.h>
namespace framework
{
-class ShareableMutex
+class FWI_DLLPUBLIC ShareableMutex
{
public:
ShareableMutex();
diff --git a/framework/inc/helper/uiconfigelementwrapperbase.hxx b/framework/inc/helper/uiconfigelementwrapperbase.hxx
index 05ab216d6f06..a815e7ac544d 100644
--- a/framework/inc/helper/uiconfigelementwrapperbase.hxx
+++ b/framework/inc/helper/uiconfigelementwrapperbase.hxx
@@ -58,6 +58,7 @@
#include <cppuhelper/propshlp.hxx>
#include <cppuhelper/interfacecontainer.hxx>
#include <cppuhelper/weak.hxx>
+#include <framework/fwedllapi.h>
namespace framework
{
@@ -78,45 +79,48 @@ class UIConfigElementWrapperBase : public ::com::sun::star::lang::XTypeProvider
// public methods
//-------------------------------------------------------------------------------------------------------------
public:
- UIConfigElementWrapperBase( sal_Int16 nType,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xServiceFactory );
- virtual ~UIConfigElementWrapperBase();
+ FWE_DLLPUBLIC UIConfigElementWrapperBase( sal_Int16 nType,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xServiceFactory );
+ virtual FWE_DLLPUBLIC ~UIConfigElementWrapperBase();
- //---------------------------------------------------------------------------------------------------------
- // XInterface, XTypeProvider
- //---------------------------------------------------------------------------------------------------------
- FWK_DECLARE_XINTERFACE
- FWK_DECLARE_XTYPEPROVIDER
+ // XInterface
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw( ::com::sun::star::uno::RuntimeException );
+ virtual FWE_DLLPUBLIC void SAL_CALL acquire() throw();
+ virtual FWE_DLLPUBLIC void SAL_CALL release() throw();
+
+ // XTypeProvider
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw( ::com::sun::star::uno::RuntimeException );
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw( ::com::sun::star::uno::RuntimeException );
// XComponent
- virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException) = 0;
- virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException) = 0;
+ virtual FWE_DLLPUBLIC void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
// XInitialization
- virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
// XUIElementSettings
- virtual void SAL_CALL updateSettings() throw (::com::sun::star::uno::RuntimeException) = 0;
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL getSettings( sal_Bool bWriteable ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setSettings( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& UISettings ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL updateSettings() throw (::com::sun::star::uno::RuntimeException) = 0;
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL getSettings( sal_Bool bWriteable ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL setSettings( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& UISettings ) throw (::com::sun::star::uno::RuntimeException);
// XUIElement
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > SAL_CALL getFrame() throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getResourceURL() throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Int16 SAL_CALL getType() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getRealInterface() throw (::com::sun::star::uno::RuntimeException) = 0;
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > SAL_CALL getFrame() throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::rtl::OUString SAL_CALL getResourceURL() throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::sal_Int16 SAL_CALL getType() throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getRealInterface() throw (::com::sun::star::uno::RuntimeException) = 0;
// XUpdatable
- virtual void SAL_CALL update() throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL update() throw (::com::sun::star::uno::RuntimeException);
// XUIConfigurationListener
- virtual void SAL_CALL elementInserted( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL elementRemoved( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL elementReplaced( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL elementInserted( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL elementRemoved( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL elementReplaced( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
// XEventListener
using cppu::OPropertySetHelper::disposing;
- virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent ) throw(::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent ) throw(::com::sun::star::uno::RuntimeException);
//-------------------------------------------------------------------------------------------------------------
// protected methods
@@ -124,21 +128,21 @@ class UIConfigElementWrapperBase : public ::com::sun::star::lang::XTypeProvider
protected:
// OPropertySetHelper
- virtual sal_Bool SAL_CALL convertFastPropertyValue ( com::sun::star::uno::Any& aConvertedValue ,
+ virtual FWE_DLLPUBLIC sal_Bool SAL_CALL convertFastPropertyValue ( com::sun::star::uno::Any& aConvertedValue ,
com::sun::star::uno::Any& aOldValue ,
sal_Int32 nHandle ,
const com::sun::star::uno::Any& aValue ) throw( com::sun::star::lang::IllegalArgumentException );
- virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle ,
+ virtual FWE_DLLPUBLIC void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle ,
const com::sun::star::uno::Any& aValue ) throw( com::sun::star::uno::Exception );
using cppu::OPropertySetHelper::getFastPropertyValue;
- virtual void SAL_CALL getFastPropertyValue( com::sun::star::uno::Any& aValue ,
+ virtual FWE_DLLPUBLIC void SAL_CALL getFastPropertyValue( com::sun::star::uno::Any& aValue ,
sal_Int32 nHandle ) const;
- virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
- virtual ::com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw (::com::sun::star::uno::RuntimeException);
- virtual void impl_fillNewData();
+ virtual FWE_DLLPUBLIC void impl_fillNewData();
- static const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > impl_getStaticPropertyDescriptor();
+ static FWE_DLLPUBLIC const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > impl_getStaticPropertyDescriptor();
sal_Int16 m_nType;
bool m_bPersistent : 1,
diff --git a/framework/inc/helper/uielementwrapperbase.hxx b/framework/inc/helper/uielementwrapperbase.hxx
index bc83765b09fe..daa574c9411e 100644
--- a/framework/inc/helper/uielementwrapperbase.hxx
+++ b/framework/inc/helper/uielementwrapperbase.hxx
@@ -53,6 +53,7 @@
#include <cppuhelper/propshlp.hxx>
#include <cppuhelper/interfacecontainer.hxx>
#include <cppuhelper/weak.hxx>
+#include <framework/fwedllapi.h>
namespace framework
{
@@ -71,31 +72,34 @@ class UIElementWrapperBase : public ::com::sun::star::lang::XTypeProvider
// public methods
//-------------------------------------------------------------------------------------------------------------
public:
- UIElementWrapperBase( sal_Int16 nType );
- virtual ~UIElementWrapperBase();
+ FWE_DLLPUBLIC UIElementWrapperBase( sal_Int16 nType );
+ virtual FWE_DLLPUBLIC ~UIElementWrapperBase();
- //---------------------------------------------------------------------------------------------------------
- // XInterface, XTypeProvider
- //---------------------------------------------------------------------------------------------------------
- FWK_DECLARE_XINTERFACE
- FWK_DECLARE_XTYPEPROVIDER
+ // XInterface
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw( ::com::sun::star::uno::RuntimeException );
+ virtual FWE_DLLPUBLIC void SAL_CALL acquire() throw();
+ virtual FWE_DLLPUBLIC void SAL_CALL release() throw();
+
+ // XTypeProvider
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw( ::com::sun::star::uno::RuntimeException );
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw( ::com::sun::star::uno::RuntimeException );
// XComponent
- virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException) = 0;
- virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException) = 0;
+ virtual FWE_DLLPUBLIC void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
// XInitialization
- virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
// XUpdatable
- virtual void SAL_CALL update() throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC void SAL_CALL update() throw (::com::sun::star::uno::RuntimeException);
// XUIElement
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > SAL_CALL getFrame() throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getResourceURL() throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Int16 SAL_CALL getType() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getRealInterface() throw (::com::sun::star::uno::RuntimeException) = 0;
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > SAL_CALL getFrame() throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::rtl::OUString SAL_CALL getResourceURL() throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::sal_Int16 SAL_CALL getType() throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getRealInterface() throw (::com::sun::star::uno::RuntimeException) = 0;
//-------------------------------------------------------------------------------------------------------------
// protected methods
@@ -103,19 +107,19 @@ class UIElementWrapperBase : public ::com::sun::star::lang::XTypeProvider
protected:
// OPropertySetHelper
- virtual sal_Bool SAL_CALL convertFastPropertyValue ( com::sun::star::uno::Any& aConvertedValue ,
+ virtual FWE_DLLPUBLIC sal_Bool SAL_CALL convertFastPropertyValue ( com::sun::star::uno::Any& aConvertedValue ,
com::sun::star::uno::Any& aOldValue ,
sal_Int32 nHandle ,
const com::sun::star::uno::Any& aValue ) throw( com::sun::star::lang::IllegalArgumentException );
- virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle ,
+ virtual FWE_DLLPUBLIC void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle ,
const com::sun::star::uno::Any& aValue ) throw( com::sun::star::uno::Exception );
using cppu::OPropertySetHelper::getFastPropertyValue;
- virtual void SAL_CALL getFastPropertyValue( com::sun::star::uno::Any& aValue ,
+ virtual FWE_DLLPUBLIC void SAL_CALL getFastPropertyValue( com::sun::star::uno::Any& aValue ,
sal_Int32 nHandle ) const;
- virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
- virtual ::com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw (::com::sun::star::uno::RuntimeException);
+ virtual FWE_DLLPUBLIC ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
+ virtual FWE_DLLPUBLIC ::com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw (::com::sun::star::uno::RuntimeException);
- static const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > impl_getStaticPropertyDescriptor();
+ static FWE_DLLPUBLIC const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > impl_getStaticPropertyDescriptor();
::cppu::OMultiTypeInterfaceContainerHelper m_aListenerContainer; /// container for ALL Listener
rtl::OUString m_aResourceURL;
diff --git a/framework/inc/jobs/configaccess.hxx b/framework/inc/jobs/configaccess.hxx
index 4a634f0192e4..31fb5d757656 100644
--- a/framework/inc/jobs/configaccess.hxx
+++ b/framework/inc/jobs/configaccess.hxx
@@ -42,6 +42,7 @@
//_______________________________________
// other includes
#include <rtl/ustring.hxx>
+#include <fwidllapi.h>
//_______________________________________
// namespace
@@ -58,7 +59,7 @@ namespace framework{
instead of using soecialize config items of the svtools
project. This class can wrapp such configuration access.
*/
-class ConfigAccess : public ThreadHelpBase
+class FWI_DLLPUBLIC ConfigAccess : public ThreadHelpBase
{
//___________________________________
// const
diff --git a/framework/inc/jobs/jobconst.hxx b/framework/inc/jobs/jobconst.hxx
index 56acbb6f182f..3222479af82f 100644
--- a/framework/inc/jobs/jobconst.hxx
+++ b/framework/inc/jobs/jobconst.hxx
@@ -41,6 +41,7 @@
// other includes
#include <rtl/ustring.hxx>
+#include <fwidllapi.h>
//_______________________________________
// namespace
@@ -59,10 +60,9 @@ namespace framework{
it's code. Typos can occure or code will be changed by new developers ...
Shared set of constant values can help to improve the mentainance of this code.
*/
-class JobConst
+class FWI_DLLPUBLIC JobConst
{
public:
-
static const ::rtl::OUString ANSWER_DEACTIVATE_JOB();
static const ::rtl::OUString ANSWER_SAVE_ARGUMENTS();
static const ::rtl::OUString ANSWER_SEND_DISPATCHRESULT();
diff --git a/framework/inc/jobs/jobdata.hxx b/framework/inc/jobs/jobdata.hxx
index 21aa027cc874..e9cc79030770 100644
--- a/framework/inc/jobs/jobdata.hxx
+++ b/framework/inc/jobs/jobdata.hxx
@@ -80,6 +80,8 @@ class JobData : private ThreadHelpBase
static const sal_Char* JOBCFG_PROP_ARGUMENTS;
/// define the cfg key "Service" of a job relativ to JOBCFG_ROOT/<job alias>
static const sal_Char* JOBCFG_PROP_SERVICE;
+ /// define the cfg key "Context" of a job relativ to JOBCFG_ROOT/<job alias>
+ static const sal_Char* JOBCFG_PROP_CONTEXT;
/// specifies the root package and key to find event registrations
static const sal_Char* EVENTCFG_ROOT;
@@ -105,6 +107,7 @@ class JobData : private ThreadHelpBase
static const sal_Char* PROP_FRAME;
static const sal_Char* PROP_MODEL;
static const sal_Char* PROP_SERVICE;
+ static const sal_Char* PROP_CONTEXT;
//___________________________________
// structs
@@ -210,6 +213,12 @@ class JobData : private ThreadHelpBase
::rtl::OUString m_sService;
/**
+ the module context list of this job.
+ It's readed from the configuration. Don't set it from outside!
+ */
+ ::rtl::OUString m_sContext;
+
+ /**
a job can be registered for an event.
It can be an empty value! But it will be set from outside any times.
Because it's not clear which job this instance should represent if an event
@@ -255,6 +264,7 @@ class JobData : private ThreadHelpBase
css::uno::Sequence< css::beans::NamedValue > getJobConfig () const;
sal_Bool hasConfig () const;
+ sal_Bool hasCorrectContext ( const ::rtl::OUString& rModuleIdent ) const;
void setEnvironment ( EEnvironment eEnvironment );
void setAlias ( const ::rtl::OUString& sAlias );
diff --git a/framework/inc/jobs/jobdispatch.hxx b/framework/inc/jobs/jobdispatch.hxx
index 85e501e866e1..49b6b31b8cac 100644
--- a/framework/inc/jobs/jobdispatch.hxx
+++ b/framework/inc/jobs/jobdispatch.hxx
@@ -101,6 +101,9 @@ class JobDispatch : public css::lang::XTypeProvider
/** reference to the frame, inside which this dispatch is used */
css::uno::Reference< css::frame::XFrame > m_xFrame;
+ /** name of module (writer, impress etc.) the frame is for */
+ ::rtl::OUString m_sModuleIdentifier;
+
//___________________________________
// native interface methods
diff --git a/framework/inc/jobs/jobexecutor.hxx b/framework/inc/jobs/jobexecutor.hxx
index ead1022df2ec..955b2978f791 100644
--- a/framework/inc/jobs/jobexecutor.hxx
+++ b/framework/inc/jobs/jobexecutor.hxx
@@ -48,6 +48,7 @@
#include <com/sun/star/container/XContainerListener.hpp>
#include <com/sun/star/lang/XEventListener.hpp>
#include <com/sun/star/document/XEventListener.hpp>
+#include <com/sun/star/frame/XModuleManager.hpp>
//_______________________________________
// other includes
@@ -85,6 +86,9 @@ class JobExecutor : public css::lang::XTypeProvider
/** reference to the uno service manager */
css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+ /** reference to the module info service */
+ css::uno::Reference< css::frame::XModuleManager > m_xModuleManager;
+
/** cached list of all registered event names of cfg for call optimization. */
OUStringList m_lEvents;
diff --git a/framework/inc/services.h b/framework/inc/services.h
index 9c19f8b6251e..bdd6221eff9c 100644
--- a/framework/inc/services.h
+++ b/framework/inc/services.h
@@ -125,6 +125,8 @@ namespace framework{
#define SERVICENAME_TABWINDOWSERVICE DECLARE_ASCII("com.sun.star.ui.dialogs.TabContainerWindow" )
#define SERVICENAME_WINDOWCONTENTFACTORYMANAGER DECLARE_ASCII("com.sun.star.ui.WindowContentFactoryManager" )
#define SERVICENAME_DISPLAYACCESS DECLARE_ASCII("com.sun.star.awt.DisplayAccess" )
+#define SERVICENAME_PANELFACTORY DECLARE_ASCII("com.sun.star.ui.PanelFactory" )
+#define SERVICENAME_MODELWINSERVICE DECLARE_ASCII("com.sun.star.ui.ModelWinService" )
//_________________________________________________________________________________________________________________
// used implementationnames by framework
@@ -211,6 +213,8 @@ namespace framework{
#define IMPLEMENTATIONNAME_IMAGEMANAGER DECLARE_ASCII("com.sun.star.comp.framework.ImageManager" )
#define IMPLEMENTATIONNAME_TABWINDOWSERVICE DECLARE_ASCII("com.sun.star.comp.framework.TabWindowService" )
#define IMPLEMENTATIONNAME_WINDOWCONTENTFACTORYMANAGER DECLARE_ASCII("com.sun.star.comp.framework.WindowContentFactoryManager" )
+#define IMPLEMENTATIONNAME_PANELFACTORY DECLARE_ASCII("com.sun.star.comp.framework.PanelFactory" )
+#define IMPLEMENTATIONNAME_MODELWINSERVICE DECLARE_ASCII("com.sun.star.comp.framework.ModelWinService" )
} // namespace framework
diff --git a/framework/inc/services/layoutmanager.hxx b/framework/inc/services/layoutmanager.hxx
index 2ccba9e7ffde..0110a0b40b9e 100644
--- a/framework/inc/services/layoutmanager.hxx
+++ b/framework/inc/services/layoutmanager.hxx
@@ -6,6 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -49,7 +52,10 @@
#include <stdtypes.h>
#include <uielement/menubarmanager.hxx>
#include <uiconfiguration/windowstateconfiguration.hxx>
-#include <classes/addonsoptions.hxx>
+#include <framework/addonsoptions.hxx>
+#include <uielement/panelwindow.hxx>
+#include <uielement/uielement.hxx>
+#include <helper/ilayoutnotifications.hxx>
//_________________________________________________________________________________________________________________
// interface includes
@@ -76,7 +82,7 @@
// other includes
//_________________________________________________________________________________________________________________
#include <cppuhelper/propshlp.hxx>
-#include <cppuhelper/implbase9.hxx>
+#include <cppuhelper/implbase8.hxx>
#include <cppuhelper/interfacecontainer.hxx>
#include <comphelper/propertycontainer.hxx>
#include <vcl/wintypes.hxx>
@@ -87,14 +93,15 @@
class MenuBar;
namespace framework
{
+ class ToolbarLayoutManager;
+ class PanelManager;
class GlobalSettings;
- typedef ::cppu::WeakImplHelper9 < ::com::sun::star::lang::XServiceInfo
+ typedef ::cppu::WeakImplHelper8 < ::com::sun::star::lang::XServiceInfo
, ::com::sun::star::frame::XLayoutManager
, ::com::sun::star::awt::XWindowListener
, ::com::sun::star::frame::XFrameActionListener
, ::com::sun::star::ui::XUIConfigurationListener
, ::com::sun::star::frame::XInplaceLayout
- , ::com::sun::star::awt::XDockableWindowListener
, ::com::sun::star::frame::XMenuBarMergingAcceptor
, ::com::sun::star::frame::XLayoutManagerEventBroadcaster
> LayoutManager_Base;
@@ -104,6 +111,7 @@ namespace framework
// Order is neccessary for right initialization!
private ThreadHelpBase , // Struct for right initalization of mutex member! Must be first of baseclasses.
public ::cppu::OBroadcastHelper ,
+ public ILayoutNotifications ,
public LayoutManager_PBase
{
public:
@@ -121,7 +129,7 @@ namespace framework
// XLayoutManager
//---------------------------------------------------------------------------------------------------------
virtual void SAL_CALL attachFrame( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& Frame ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL reset( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL reset() throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::awt::Rectangle SAL_CALL getCurrentDockingArea( ) throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Reference< ::com::sun::star::ui::XDockingAreaAcceptor > SAL_CALL getDockingAreaAcceptor() throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL setDockingAreaAcceptor( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XDockingAreaAcceptor >& xDockingAreaAcceptor ) throw (::com::sun::star::uno::RuntimeException);
@@ -192,17 +200,6 @@ namespace framework
virtual void SAL_CALL elementReplaced( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
//---------------------------------------------------------------------------------------------------------
- // XDockableWindowListener
- //---------------------------------------------------------------------------------------------------------
- virtual void SAL_CALL startDocking( const ::com::sun::star::awt::DockingEvent& e ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::DockingData SAL_CALL docking( const ::com::sun::star::awt::DockingEvent& e ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL endDocking( const ::com::sun::star::awt::EndDockingEvent& e ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL prepareToggleFloatingMode( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL toggleFloatingMode( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL closed( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL endPopupMode( const ::com::sun::star::awt::EndPopupModeEvent& e ) throw (::com::sun::star::uno::RuntimeException);
-
- //---------------------------------------------------------------------------------------------------------
// XLayoutManagerEventBroadcaster
//---------------------------------------------------------------------------------------------------------
virtual void SAL_CALL addLayoutManagerEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XLayoutManagerListener >& aLayoutManagerListener ) throw (::com::sun::star::uno::RuntimeException);
@@ -211,196 +208,64 @@ namespace framework
DECL_LINK( MenuBarClose, MenuBar * );
DECL_LINK( WindowEventListener, VclSimpleEvent* );
- struct DockedData
- {
- DockedData() : m_aPos( LONG_MAX, LONG_MAX ),
- m_nDockedArea( ::com::sun::star::ui::DockingArea_DOCKINGAREA_TOP ),
- m_bLocked( sal_False ) {}
-
- Point m_aPos;
- Size m_aSize;
- sal_Int16 m_nDockedArea;
- sal_Bool m_bLocked;
- };
- struct FloatingData
- {
- FloatingData() : m_aPos( LONG_MAX, LONG_MAX ),
- m_nLines( 1 ),
- m_bIsHorizontal( sal_True ) {}
-
- Point m_aPos;
- Size m_aSize;
- sal_Int16 m_nLines;
- sal_Bool m_bIsHorizontal;
- };
- struct SingleRowColumnWindowData
- {
- SingleRowColumnWindowData() : nVarSize( 0 ), nStaticSize( 0 ), nSpace( 0 ) {}
-
- std::vector< rtl::OUString > aUIElementNames;
- std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > > aRowColumnWindows;
- std::vector< ::com::sun::star::awt::Rectangle > aRowColumnWindowSizes;
- std::vector< sal_Int32 > aRowColumnSpace;
- ::com::sun::star::awt::Rectangle aRowColumnRect;
- sal_Int32 nVarSize;
- sal_Int32 nStaticSize;
- sal_Int32 nSpace;
- sal_Int32 nRowColumn;
- };
+ //---------------------------------------------------------------------------------------------------------
+ // ILayoutNotifications
+ //---------------------------------------------------------------------------------------------------------
+ virtual void requestLayout( Hint eHint );
protected:
DECL_LINK( AsyncLayoutHdl, Timer * );
private:
- enum DockingOperation
- {
- DOCKOP_BEFORE_COLROW,
- DOCKOP_ON_COLROW,
- DOCKOP_AFTER_COLROW
- };
- struct UIElement
- {
- UIElement() : m_bFloating( sal_False ),
- m_bVisible( sal_True ),
- m_bUserActive( sal_False ),
- m_bCreateNewRowCol0( sal_False ),
- m_bDeactiveHide( sal_False ),
- m_bMasterHide( sal_False ),
- m_bContextSensitive( sal_False ),
- m_bContextActive( sal_True ),
- m_bNoClose( sal_False ),
- m_bSoftClose( sal_False ),
- m_bStateRead( sal_False ),
- m_nStyle( BUTTON_SYMBOL )
- {}
-
- UIElement( const rtl::OUString& rName,
- const rtl::OUString& rType,
- const com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement >& rUIElement,
- sal_Bool bFloating = sal_False
- ) : m_aType( rType ),
- m_aName( rName ),
- m_xUIElement( rUIElement ),
- m_bFloating( bFloating ),
- m_bVisible( sal_True ),
- m_bUserActive( sal_False ),
- m_bCreateNewRowCol0( sal_False ),
- m_bDeactiveHide( sal_False ),
- m_bMasterHide( sal_False ),
- m_bContextSensitive( sal_False ),
- m_bContextActive( sal_True ),
- m_bNoClose( sal_False ),
- m_bSoftClose( sal_False ),
- m_bStateRead( sal_False ),
- m_nStyle( BUTTON_SYMBOL ) {}
-
- bool operator< ( const UIElement& aUIElement ) const;
- UIElement& operator=( const UIElement& rUIElement );
-
- rtl::OUString m_aType;
- rtl::OUString m_aName;
- rtl::OUString m_aUIName;
- com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement > m_xUIElement;
- sal_Bool m_bFloating,
- m_bVisible,
- m_bUserActive,
- m_bCreateNewRowCol0,
- m_bDeactiveHide,
- m_bMasterHide,
- m_bContextSensitive,
- m_bContextActive;
- sal_Bool m_bNoClose,
- m_bSoftClose,
- m_bStateRead;
- sal_Int16 m_nStyle;
- DockedData m_aDockedData;
- FloatingData m_aFloatingData;
- };
-
- typedef std::vector< UIElement > UIElementVector;
-
//---------------------------------------------------------------------------------------------------------
// helper
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
- // helper
+ // menu bar
//---------------------------------------------------------------------------------------------------------
void impl_clearUpMenuBar();
void implts_reset( sal_Bool bAttach );
+ void implts_setMenuBarCloser(sal_Bool bCloserState);
void implts_updateMenuBarClose();
sal_Bool implts_resetMenuBar();
+ //---------------------------------------------------------------------------------------------------------
+ // locking
+ //---------------------------------------------------------------------------------------------------------
void implts_lock();
sal_Bool implts_unlock();
- sal_Bool implts_findElement( const rtl::OUString& aName, rtl::OUString& aElementType, rtl::OUString& aElementName, ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement >& xSettings );
- sal_Bool implts_findElement( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xUIElement, UIElement& aElementData );
- sal_Bool implts_findElement( const rtl::OUString& aName, UIElement& aElementData );
+ //---------------------------------------------------------------------------------------------------------
+ // query
+ //---------------------------------------------------------------------------------------------------------
+ ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement > implts_findElement( const rtl::OUString& aName );
UIElement& impl_findElement( const rtl::OUString& aName );
- sal_Bool implts_insertUIElement( const UIElement& rUIElement );
- void implts_refreshContextToolbarsVisibility();
void implts_writeNewStateData( const rtl::OUString aName, const ::com::sun::star::uno::Reference< com::sun::star::awt::XWindow >& xWindow );
sal_Bool implts_readWindowStateData( const rtl::OUString& rName, UIElement& rElementData );
void implts_writeWindowStateData( const rtl::OUString& rName, const UIElement& rElementData );
void implts_setElementData( UIElement& rUIElement, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDockableWindow >& rDockWindow );
void implts_sortUIElements();
void implts_destroyElements();
- void implts_destroyDockingAreaWindows();
- void implts_createAddonsToolBars();
- void implts_createCustomToolBars();
- void implts_createNonContextSensitiveToolBars();
- void implts_createCustomToolBars( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& aCustomTbxSeq );
- void implts_createCustomToolBar( const rtl::OUString& aTbxResName, const rtl::OUString& aTitle );
void implts_toggleFloatingUIElementsVisibility( sal_Bool bActive );
void implts_reparentChildWindows();
+ ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement > implts_createDockingWindow( const ::rtl::OUString& aElementName );
sal_Bool implts_isEmbeddedLayoutManager() const;
sal_Int16 implts_getCurrentSymbolsSize();
sal_Int16 implts_getCurrentSymbolsStyle();
- ::com::sun::star::uno::Reference< com::sun::star::awt::XWindowPeer > implts_createToolkitWindow( const ::com::sun::star::uno::Reference< com::sun::star::awt::XWindowPeer >& rParent );
::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement > implts_createElement( const rtl::OUString& aName );
- rtl::OUString implts_generateGenericAddonToolbarTitle( sal_Int32 nNumber ) const;
-
- // docking methods
- ::Rectangle implts_calcHotZoneRect( const ::Rectangle& rRect, sal_Int32 nHotZoneOffset );
- void implts_calcDockingPosSize( UIElement& aUIElement, DockingOperation& eDockOperation, ::Rectangle& rTrackingRect, const Point& rMousePos );
- DockingOperation implts_determineDockingOperation( ::com::sun::star::ui::DockingArea DockingArea, const ::Rectangle& rRowColRect, const Point& rMousePos );
- ::Rectangle implts_getWindowRectFromRowColumn( ::com::sun::star::ui::DockingArea DockingArea, const SingleRowColumnWindowData& rRowColumnWindowData, const ::Point& rMousePos, const rtl::OUString& rExcludeElementName );
- ::Rectangle implts_determineFrontDockingRect( ::com::sun::star::ui::DockingArea eDockingArea,
- sal_Int32 nRowCol,
- const ::Rectangle& rDockedElementRect,
- const ::rtl::OUString& rMovedElementName,
- const ::Rectangle& rMovedElementRect );
- void implts_calcWindowPosSizeOnSingleRowColumn( sal_Int32 nDockingArea,
- sal_Int32 nOffset,
- SingleRowColumnWindowData& rRowColumnWindowData,
- const ::Size& rContainerSize );
- ::Rectangle implts_calcTrackingAndElementRect( ::com::sun::star::ui::DockingArea eDockingArea,
- sal_Int32 nRowCol,
- UIElement& rUIElement,
- const ::Rectangle& rTrackingRect,
- const ::Rectangle& rRowColumnRect,
- const ::Size& rContainerWinSize );
- void implts_renumberRowColumnData( ::com::sun::star::ui::DockingArea eDockingArea, DockingOperation eDockingOperation, const UIElement& rUIElement );
// layouting methods
- sal_Bool implts_compareRectangles( const ::com::sun::star::awt::Rectangle& rRect1, const ::com::sun::star::awt::Rectangle& rRect2 );
sal_Bool implts_resizeContainerWindow( const ::com::sun::star::awt::Size& rContainerSize, const ::com::sun::star::awt::Point& rComponentPos );
::Size implts_getTopBottomDockingAreaSizes();
::Size implts_getContainerWindowOutputSize();
- ::com::sun::star::awt::Rectangle implts_getDockingAreaWindowSizes();
- void implts_getDockingAreaElementInfos( ::com::sun::star::ui::DockingArea DockingArea, std::vector< SingleRowColumnWindowData >& rRowColumnsWindowData );
- void implts_getDockingAreaElementInfoOnSingleRowCol( ::com::sun::star::ui::DockingArea,
- sal_Int32 nRowCol,
- SingleRowColumnWindowData& rRowColumnWindowData );
- ::Point implts_findNextCascadeFloatingPos();
- void implts_findNextDockingPos( ::com::sun::star::ui::DockingArea DockingArea, const ::Size& aUIElementSize, ::Point& rVirtualPos, ::Point& rPixelPos );
+
+ void implts_setDockingAreaWindowSizes( const css::awt::Rectangle& rBorderSpace );
::com::sun::star::awt::Rectangle implts_calcDockingAreaSizes();
- void implts_setDockingAreaWindowSizes( const com::sun::star::awt::Rectangle& rBorderSpace );
sal_Bool implts_doLayout( sal_Bool bForceRequestBorderSpace, sal_Bool bOuterResize );
- void implts_doLayout_notify( sal_Bool bOuterResize );
+ void implts_doLayout_notify( sal_Bool bOuterResize );
// internal methods to control status/progress bar
::Size implts_getStatusBarSize();
@@ -415,6 +280,7 @@ namespace framework
sal_Bool implts_showProgressBar();
sal_Bool implts_hideProgressBar();
void implts_backupProgressBarWrapper();
+ void implts_setOffset( const sal_Int32 nBottomOffset );
void implts_setInplaceMenuBar(
const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& xMergedMenuBar )
@@ -425,12 +291,7 @@ namespace framework
void implts_setVisibleState( sal_Bool bShow );
void implts_updateUIElementsVisibleState( sal_Bool bShow );
void implts_setCurrentUIVisibility( sal_Bool bShow );
- sal_Bool impl_parseResourceURL( const rtl::OUString aResourceURL, rtl::OUString& aElementType, rtl::OUString& aElementName );
-
void implts_notifyListeners( short nEvent, ::com::sun::star::uno::Any aInfoParam );
-#ifdef DBG_UTIL
- void implts_checkElementContainer();
-#endif
DECL_LINK( OptionsChanged, void* );
DECL_LINK( SettingsChanged, void* );
@@ -459,9 +320,7 @@ namespace framework
css::uno::WeakReference< css::frame::XModel > m_xModel;
css::uno::Reference< css::awt::XWindow > m_xContainerWindow;
css::uno::Reference< css::awt::XTopWindow2 > m_xContainerTopWindow;
- css::uno::Reference< css::awt::XWindow > m_xDockAreaWindows[DOCKINGAREAS_COUNT];
sal_Int32 m_nLockCount;
- UIElementVector m_aUIElements;
bool m_bActive;
bool m_bInplaceMenuSet;
bool m_bDockingInProgress;
@@ -476,11 +335,9 @@ namespace framework
bool m_bHideCurrentUI;
bool m_bGlobalSettings;
bool m_bPreserveContentSize;
- DockingOperation m_eDockOperation;
- UIElement m_aDockUIElement;
+ bool m_bMenuBarCloser;
css::awt::Rectangle m_aDockingArea;
css::uno::Reference< ::com::sun::star::ui::XDockingAreaAcceptor > m_xDockingAreaAcceptor;
- Point m_aStartDockMousePos;
css::uno::Reference< ::com::sun::star::lang::XComponent > m_xInplaceMenuBar;
MenuBarManager* m_pInplaceMenuBar;
css::uno::Reference< ::com::sun::star::ui::XUIElement > m_xMenuBar;
@@ -489,14 +346,10 @@ namespace framework
com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement > m_xProgressBarBackup;
css::uno::Reference< ::com::sun::star::frame::XModuleManager > m_xModuleManager;
css::uno::Reference< ::com::sun::star::ui::XUIElementFactory > m_xUIElementFactoryManager;
- bool m_bMenuBarCloser;
css::uno::Reference< ::com::sun::star::container::XNameAccess > m_xPersistentWindowState;
css::uno::Reference< ::com::sun::star::container::XNameAccess > m_xPersistentWindowStateSupplier;
GlobalSettings* m_pGlobalSettings;
rtl::OUString m_aModuleIdentifier;
- rtl::OUString m_aCustomTbxPrefix;
- rtl::OUString m_aFullCustomTbxPrefix;
- rtl::OUString m_aFullAddonTbxPrefix;
rtl::OUString m_aStatusBarAlias;
rtl::OUString m_aProgressBarAlias;
rtl::OUString m_aPropDocked;
@@ -509,12 +362,13 @@ namespace framework
rtl::OUString m_aPropStyle;
rtl::OUString m_aPropLocked;
rtl::OUString m_aCustomizeCmd;
- AddonsOptions* m_pAddonOptions;
- SvtMiscOptions* m_pMiscOptions;
sal_Int16 m_eSymbolsSize;
sal_Int16 m_eSymbolsStyle;
- Timer m_aAsyncLayoutTimer;
+ Timer m_aAsyncLayoutTimer;
::cppu::OMultiTypeInterfaceContainerHelper m_aListenerContainer; // container for ALL Listener
+ PanelManager* m_pPanelManager;
+ ToolbarLayoutManager* m_pToolbarManager;
+ css::uno::Reference< ::com::sun::star::ui::XUIConfigurationListener > m_xToolbarManager;
};
} // namespace framework
diff --git a/framework/inc/services/modelwinservice.hxx b/framework/inc/services/modelwinservice.hxx
new file mode 100755
index 000000000000..7e07fcb0cd37
--- /dev/null
+++ b/framework/inc/services/modelwinservice.hxx
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: urltransformer.hxx,v $
+ * $Revision: 1.8 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FRAMEWORK_SERVICES_MODELWINSERVICE_HXX_
+#define __FRAMEWORK_SERVICES_MODELWINSERVICE_HXX_
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include <threadhelp/threadhelpbase.hxx>
+#include <macros/generic.hxx>
+#include <macros/debug.hxx>
+#include <macros/xinterface.hxx>
+#include <macros/xtypeprovider.hxx>
+#include <macros/xserviceinfo.hxx>
+#include <general.h>
+#include <stdtypes.h>
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/awt/XControlModel.hpp>
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+
+#include <cppuhelper/weak.hxx>
+#include <vcl/window.hxx>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework{
+
+class IModelWin
+{
+ public:
+ virtual void registerModelForXWindow( const css::uno::Reference< css::awt::XWindow >& rWindow, const css::uno::Reference< css::awt::XControlModel >& rModel ) = 0;
+ virtual void deregisterModelForXWindow( const css::uno::Reference< css::awt::XWindow >& rWindow ) = 0;
+};
+
+class ModelWinService : public css::lang::XTypeProvider
+ , public css::lang::XServiceInfo
+ , public css::container::XNameAccess
+ , public IModelWin
+ , public ::cppu::OWeakObject
+{
+ public:
+ ModelWinService(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rServiceManager );
+ virtual ~ModelWinService();
+
+ //---------------------------------------------------------------------------------------------------------
+ // XInterface, XTypeProvider, XServiceInfo
+ //---------------------------------------------------------------------------------------------------------
+
+ FWK_DECLARE_XINTERFACE
+ FWK_DECLARE_XTYPEPROVIDER
+ DECLARE_XSERVICEINFO
+
+ //---------------------------------------------------------------------------------------------------------
+ // IModelWin
+ //---------------------------------------------------------------------------------------------------------
+ virtual void registerModelForXWindow( const css::uno::Reference< css::awt::XWindow >& rWindow, const css::uno::Reference< css::awt::XControlModel >& rModel );
+ virtual void deregisterModelForXWindow( const css::uno::Reference< css::awt::XWindow >& rWindow );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XNameAccess
+ //---------------------------------------------------------------------------------------------------------
+ virtual css::uno::Any SAL_CALL getByName( const ::rtl::OUString& sName ) throw( css::container::NoSuchElementException ,
+ css::lang::WrappedTargetException ,
+ css::uno::RuntimeException );
+ virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw( css::uno::RuntimeException );
+ virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& sName ) throw( css::uno::RuntimeException );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XElementAccess
+ //---------------------------------------------------------------------------------------------------------
+ virtual css::uno::Type SAL_CALL getElementType() throw( css::uno::RuntimeException );
+ virtual sal_Bool SAL_CALL hasElements() throw( css::uno::RuntimeException );
+
+ private:
+ css::uno::Reference< css::lang::XMultiServiceFactory > m_xServiceManager;
+};
+
+}
+
+#endif // __FRAMEWORK_SERVICES_MODELWINSERVICE_HXX_
diff --git a/framework/inc/threadhelp/lockhelper.hxx b/framework/inc/threadhelp/lockhelper.hxx
index 5677350b5349..d6ebae6d4b9c 100644
--- a/framework/inc/threadhelp/lockhelper.hxx
+++ b/framework/inc/threadhelp/lockhelper.hxx
@@ -46,6 +46,7 @@
//_________________________________________________________________________________________________________________
#include <osl/mutex.hxx>
#include <vos/mutex.hxx>
+#include <fwidllapi.h>
//_________________________________________________________________________________________________________________
// namespace
@@ -104,7 +105,7 @@ enum ELockType
@devstatus draft
*//*-*************************************************************************************************************/
-class LockHelper : public IMutex
+class FWI_DLLPUBLIC LockHelper : public IMutex
, public IRWLock
, private INonCopyable
{
diff --git a/framework/inc/threadhelp/transactionmanager.hxx b/framework/inc/threadhelp/transactionmanager.hxx
index eca13d63103c..a9608de0164d 100644
--- a/framework/inc/threadhelp/transactionmanager.hxx
+++ b/framework/inc/threadhelp/transactionmanager.hxx
@@ -49,6 +49,7 @@
// other includes
//_________________________________________________________________________________________________________________
#include <osl/mutex.hxx>
+#include <fwidllapi.h>
//_________________________________________________________________________________________________________________
// namespace
@@ -78,7 +79,7 @@ namespace framework{
@devstatus draft
*//*-*************************************************************************************************************/
-class TransactionManager : public ITransactionManager
+class FWI_DLLPUBLIC TransactionManager : public ITransactionManager
, private INonCopyable
{
//-------------------------------------------------------------------------------------------------------------
diff --git a/framework/inc/uielement/constitemcontainer.hxx b/framework/inc/uielement/constitemcontainer.hxx
index c2eeea0e3c28..04db0513fd86 100644
--- a/framework/inc/uielement/constitemcontainer.hxx
+++ b/framework/inc/uielement/constitemcontainer.hxx
@@ -56,13 +56,14 @@
#include <cppuhelper/propshlp.hxx>
#include <vector>
+#include <fwidllapi.h>
namespace framework
{
class RootItemContainer;
class ItemContainer;
-class ConstItemContainer : public ::com::sun::star::lang::XTypeProvider ,
+class FWI_DLLPUBLIC ConstItemContainer : public ::com::sun::star::lang::XTypeProvider ,
public com::sun::star::container::XIndexAccess ,
public ::com::sun::star::lang::XUnoTunnel ,
public ::com::sun::star::beans::XFastPropertySet,
diff --git a/framework/inc/uielement/itemcontainer.hxx b/framework/inc/uielement/itemcontainer.hxx
index ab45d039e636..91e5429f4e82 100644
--- a/framework/inc/uielement/itemcontainer.hxx
+++ b/framework/inc/uielement/itemcontainer.hxx
@@ -52,12 +52,12 @@
#include <cppuhelper/implbase1.hxx>
#include <vector>
+#include <fwidllapi.h>
namespace framework
{
-
class ConstItemContainer;
-class ItemContainer : public ::cppu::WeakImplHelper1< ::com::sun::star::container::XIndexContainer>
+class FWI_DLLPUBLIC ItemContainer : public ::cppu::WeakImplHelper1< ::com::sun::star::container::XIndexContainer>
{
friend class ConstItemContainer;
diff --git a/framework/inc/uielement/menubarmanager.hxx b/framework/inc/uielement/menubarmanager.hxx
index 364a730f1fac..64f8667924d7 100644
--- a/framework/inc/uielement/menubarmanager.hxx
+++ b/framework/inc/uielement/menubarmanager.hxx
@@ -72,7 +72,7 @@
#include <toolkit/awt/vclxmenu.hxx>
#include <cppuhelper/weak.hxx>
#include <cppuhelper/interfacecontainer.hxx>
-#include <classes/addonsoptions.hxx>
+#include <framework/addonsoptions.hxx>
namespace framework
{
diff --git a/framework/inc/uielement/panelwindow.hxx b/framework/inc/uielement/panelwindow.hxx
new file mode 100755
index 000000000000..e1b8ae2abcc7
--- /dev/null
+++ b/framework/inc/uielement/panelwindow.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FRAMEWORK_LAYOUTMANAGER_PANELWINDOW_HXX_
+#define __FRAMEWORK_LAYOUTMANAGER_PANELWINDOW_HXX_
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include <vcl/dockwin.hxx>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework
+{
+
+class PanelWindow : public DockingWindow
+{
+ public:
+ PanelWindow( Window* pParent, WinBits nWinBits =0);
+ virtual ~PanelWindow();
+
+ const ::rtl::OUString& getResourceURL() const;
+ void setResourceURL(const ::rtl::OUString& rResourceURL);
+ Window* getContentWindow() const;
+ void setContentWindow( Window* pContentWindow );
+
+ virtual void Command ( const CommandEvent& rCEvt );
+ virtual void StateChanged( StateChangedType nType );
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+ virtual void Resize();
+
+ // Provide additional handlers to support external implementations
+ void SetCommandHdl( const Link& aLink ) { m_aCommandHandler = aLink; }
+ const Link& GetCommandHdl() const { return m_aCommandHandler; }
+ void SetStateChangedHdl( const Link& aLink ) { m_aStateChangedHandler = aLink; }
+ const Link& GetStateChangedHdl() const { return m_aStateChangedHandler; }
+ void SetDataChangedHdl( const Link& aLink ) { m_aDataChangedHandler = aLink; }
+ const Link& GetDataChangedHdl() { return m_aDataChangedHandler; }
+
+ private:
+ ::rtl::OUString m_aResourceURL;
+ Link m_aCommandHandler;
+ Link m_aStateChangedHandler;
+ Link m_aDataChangedHandler;
+ Window* m_pContentWindow;
+};
+
+}
+
+#endif // __FRAMEWORK_UIELEMENT_PANELWINDOW_HXX_
diff --git a/framework/inc/uielement/panelwrapper.hxx b/framework/inc/uielement/panelwrapper.hxx
new file mode 100755
index 000000000000..348fd679db9f
--- /dev/null
+++ b/framework/inc/uielement/panelwrapper.hxx
@@ -0,0 +1,68 @@
+
+
+#ifndef __FRAMEWORK_UIELEMENT_PANELWRAPPER_HXX_
+#define __FRAMEWORK_UIELEMENT_PANELWRAPPER_HXX_
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include <helper/uielementwrapperbase.hxx>
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+
+namespace framework
+{
+
+class PanelWrapper : public UIElementWrapperBase
+{
+ public:
+ PanelWrapper( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
+ virtual ~PanelWrapper();
+
+ // XInterface
+ virtual void SAL_CALL acquire() throw();
+ virtual void SAL_CALL release() throw();
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw( ::com::sun::star::uno::RuntimeException );
+
+ // XComponent
+ virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException);
+
+ // XInitialization
+ virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+
+ // XUIElement
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getRealInterface() throw (::com::sun::star::uno::RuntimeException);
+
+ // XUpdatable
+ virtual void SAL_CALL update() throw (::com::sun::star::uno::RuntimeException);
+
+ // XEventListener
+ using cppu::OPropertySetHelper::disposing;
+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+ //-------------------------------------------------------------------------------------------------------------
+ // protected methods
+ //-------------------------------------------------------------------------------------------------------------
+ protected:
+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const com::sun::star::uno::Any& aValue ) throw( com::sun::star::uno::Exception );
+
+ private:
+ com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > m_xServiceManager;
+ com::sun::star::uno::Reference< com::sun::star::awt::XWindow > m_xPanelWindow;
+ bool m_bNoClose;
+};
+
+}
+
+#endif // __FRAMEWORK_UIELEMENT_PANELWRAPPER_HXX_
diff --git a/framework/inc/uielement/rootitemcontainer.hxx b/framework/inc/uielement/rootitemcontainer.hxx
index 9ec0955c3ffe..df2920983c3d 100644
--- a/framework/inc/uielement/rootitemcontainer.hxx
+++ b/framework/inc/uielement/rootitemcontainer.hxx
@@ -57,13 +57,12 @@
#include <cppuhelper/interfacecontainer.hxx>
#include <vector>
+#include <fwidllapi.h>
namespace framework
{
-
class ConstItemContainer;
-class ItemContainer;
-class RootItemContainer : public ::com::sun::star::lang::XTypeProvider ,
+class RootItemContainer : public ::com::sun::star::lang::XTypeProvider ,
public ::com::sun::star::container::XIndexContainer ,
public ::com::sun::star::lang::XSingleComponentFactory ,
public ::com::sun::star::lang::XUnoTunnel ,
@@ -75,10 +74,10 @@ class RootItemContainer : public ::com::sun::star::lang::XTypeProvider
friend class ConstItemContainer;
public:
- RootItemContainer();
- RootItemContainer( const ConstItemContainer& rConstItemContainer );
- RootItemContainer( const com::sun::star::uno::Reference< com::sun::star::container::XIndexAccess >& rItemAccessContainer );
- virtual ~RootItemContainer();
+ FWI_DLLPUBLIC RootItemContainer();
+ FWI_DLLPUBLIC RootItemContainer( const ConstItemContainer& rConstItemContainer );
+ FWI_DLLPUBLIC RootItemContainer( const com::sun::star::uno::Reference< com::sun::star::container::XIndexAccess >& rItemAccessContainer );
+ virtual FWI_DLLPUBLIC ~RootItemContainer();
//---------------------------------------------------------------------------------------------------------
// XInterface, XTypeProvider
@@ -87,8 +86,8 @@ class RootItemContainer : public ::com::sun::star::lang::XTypeProvider
FWK_DECLARE_XTYPEPROVIDER
// XUnoTunnel
- static const ::com::sun::star::uno::Sequence< sal_Int8 >& GetUnoTunnelId() throw();
- static RootItemContainer* GetImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxIFace ) throw();
+ static FWI_DLLPUBLIC const ::com::sun::star::uno::Sequence< sal_Int8 >& GetUnoTunnelId() throw();
+ static FWI_DLLPUBLIC RootItemContainer* GetImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxIFace ) throw();
sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rIdentifier ) throw(::com::sun::star::uno::RuntimeException);
// XIndexContainer
diff --git a/framework/inc/uielement/uielement.hxx b/framework/inc/uielement/uielement.hxx
new file mode 100755
index 000000000000..b4ad9e2cbb6d
--- /dev/null
+++ b/framework/inc/uielement/uielement.hxx
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FRAMEWORK_LAYOUTMANAGER_UIELEMENT_HXX_
+#define __FRAMEWORK_LAYOUTMANAGER_UIELEMENT_HXX_
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#include <com/sun/star/ui/XUIElement.hpp>
+#include <com/sun/star/ui/DockingArea.hpp>
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+
+#include <rtl/ustring.hxx>
+#include <vcl/toolbox.hxx>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework
+{
+
+struct DockedData
+{
+ DockedData() : m_aPos( LONG_MAX, LONG_MAX ),
+ m_nDockedArea( ::com::sun::star::ui::DockingArea_DOCKINGAREA_TOP ),
+ m_bLocked( false ) {}
+
+ Point m_aPos;
+ Size m_aSize;
+ sal_Int16 m_nDockedArea;
+ bool m_bLocked;
+};
+
+struct FloatingData
+{
+ FloatingData() : m_aPos( LONG_MAX, LONG_MAX ),
+ m_nLines( 1 ),
+ m_bIsHorizontal( true ) {}
+
+ Point m_aPos;
+ Size m_aSize;
+ sal_Int16 m_nLines;
+ bool m_bIsHorizontal;
+};
+
+struct UIElement
+{
+ UIElement() : m_bFloating( false ),
+ m_bVisible( true ),
+ m_bUserActive( false ),
+ m_bCreateNewRowCol0( false ),
+ m_bDeactiveHide( false ),
+ m_bMasterHide( false ),
+ m_bContextSensitive( false ),
+ m_bContextActive( true ),
+ m_bNoClose( false ),
+ m_bSoftClose( false ),
+ m_bStateRead( false ),
+ m_nStyle( BUTTON_SYMBOL )
+ {}
+
+ UIElement( const rtl::OUString& rName,
+ const rtl::OUString& rType,
+ const com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement >& rUIElement,
+ bool bFloating = false
+ ) : m_aType( rType ),
+ m_aName( rName ),
+ m_xUIElement( rUIElement ),
+ m_bFloating( bFloating ),
+ m_bVisible( true ),
+ m_bUserActive( false ),
+ m_bCreateNewRowCol0( false ),
+ m_bDeactiveHide( false ),
+ m_bMasterHide( false ),
+ m_bContextSensitive( false ),
+ m_bContextActive( true ),
+ m_bNoClose( false ),
+ m_bSoftClose( false ),
+ m_bStateRead( false ),
+ m_nStyle( BUTTON_SYMBOL ) {}
+
+ bool operator< ( const UIElement& aUIElement ) const;
+ UIElement& operator=( const UIElement& rUIElement );
+
+ rtl::OUString m_aType;
+ rtl::OUString m_aName;
+ rtl::OUString m_aUIName;
+ com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement > m_xUIElement;
+ bool m_bFloating,
+ m_bVisible,
+ m_bUserActive,
+ m_bCreateNewRowCol0,
+ m_bDeactiveHide,
+ m_bMasterHide,
+ m_bContextSensitive,
+ m_bContextActive;
+ bool m_bNoClose,
+ m_bSoftClose,
+ m_bStateRead;
+ sal_Int16 m_nStyle;
+ DockedData m_aDockedData;
+ FloatingData m_aFloatingData;
+};
+
+typedef std::vector< UIElement > UIElementVector;
+
+} // namespace framework
+
+#endif // __FRAMEWORK_LAYOUTMANAGER_UIELEMENT_HXX_
diff --git a/framework/inc/xml/eventsdocumenthandler.hxx b/framework/inc/xml/eventsdocumenthandler.hxx
index aa5d5ec52e1f..ffce5c1a348b 100644
--- a/framework/inc/xml/eventsdocumenthandler.hxx
+++ b/framework/inc/xml/eventsdocumenthandler.hxx
@@ -29,7 +29,7 @@
#define __FRAMEWORK_XML_EVENTSDOCUMENTHANDLER_HXX_
#ifndef __FRAMEWORK_XML_TOOLBOXCONFIGURATION_HXX_
-#include <xml/eventsconfiguration.hxx>
+#include <framework/eventsconfiguration.hxx>
#endif
//_________________________________________________________________________________________________________________
@@ -50,6 +50,7 @@
#include <hash_map>
#include <stdtypes.h>
+#include <framework/fwedllapi.h>
//_________________________________________________________________________________________________________________
// namespace
//_________________________________________________________________________________________________________________
@@ -59,7 +60,7 @@ namespace framework{
//*****************************************************************************************************************
// Hash code function for using in all hash maps of follow implementation.
-class OReadEventsDocumentHandler : private ThreadHelpBase, // Struct for right initalization of lock member! Must be first of baseclasses.
+class FWE_DLLPUBLIC OReadEventsDocumentHandler : private ThreadHelpBase, // Struct for right initalization of lock member! Must be first of baseclasses.
public ::cppu::WeakImplHelper1< ::com::sun::star::xml::sax::XDocumentHandler >
{
public:
@@ -149,7 +150,7 @@ class OReadEventsDocumentHandler : private ThreadHelpBase, // Struct for right
::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
};
-class OWriteEventsDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
+class FWE_DLLPUBLIC OWriteEventsDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
{
public:
OWriteEventsDocumentHandler(
diff --git a/framework/inc/xml/imagesdocumenthandler.hxx b/framework/inc/xml/imagesdocumenthandler.hxx
index 2ecb63ed1609..59d1e4abdb3a 100644
--- a/framework/inc/xml/imagesdocumenthandler.hxx
+++ b/framework/inc/xml/imagesdocumenthandler.hxx
@@ -28,6 +28,8 @@
#ifndef __FRAMEWORK_XML_IMAGEDOCUMENTHANDLER_HXX_
#define __FRAMEWORK_XML_IMAGEDOCUMENTHANDLER_HXX_
+#include <framework/fwedllapi.h>
+
//_________________________________________________________________________________________________________________
// interface includes
//_________________________________________________________________________________________________________________
@@ -39,7 +41,7 @@
//_________________________________________________________________________________________________________________
// other includes
//_________________________________________________________________________________________________________________
-#include <xml/imagesconfiguration.hxx>
+#include <framework/imagesconfiguration.hxx>
#include <threadhelp/threadhelpbase.hxx>
#include <rtl/ustring.hxx>
#include <cppuhelper/implbase1.hxx>
@@ -47,6 +49,7 @@
#include <hash_map>
#include <stdtypes.h>
+
//_________________________________________________________________________________________________________________
// namespace
//_________________________________________________________________________________________________________________
@@ -56,7 +59,7 @@ namespace framework{
//*****************************************************************************************************************
// Hash code function for using in all hash maps of follow implementation.
-class OReadImagesDocumentHandler : private ThreadHelpBase, // Struct for right initalization of lock member! Must be first of baseclasses.
+class FWE_DLLPUBLIC OReadImagesDocumentHandler : private ThreadHelpBase, // Struct for right initalization of lock member! Must be first of baseclasses.
public ::cppu::WeakImplHelper1< ::com::sun::star::xml::sax::XDocumentHandler >
{
public:
@@ -157,7 +160,7 @@ class OReadImagesDocumentHandler : private ThreadHelpBase, // Struct for right
::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
};
-class OWriteImagesDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
+class FWE_DLLPUBLIC OWriteImagesDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
{
public:
OWriteImagesDocumentHandler(
diff --git a/framework/inc/xml/menudocumenthandler.hxx b/framework/inc/xml/menudocumenthandler.hxx
index fbf1dce837e3..5c6064cdd4f1 100644
--- a/framework/inc/xml/menudocumenthandler.hxx
+++ b/framework/inc/xml/menudocumenthandler.hxx
@@ -48,6 +48,7 @@
#include <rtl/ustring.hxx>
#include <cppuhelper/implbase1.hxx>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <framework/fwedllapi.h>
//_________________________________________________________________________________________________________________
// namespace
@@ -55,7 +56,7 @@
namespace framework{
-class ReadMenuDocumentHandlerBase : public ThreadHelpBase, // Struct for right initalization of mutex member! Must be first of baseclasses.
+class FWE_DLLPUBLIC ReadMenuDocumentHandlerBase : public ThreadHelpBase, // Struct for right initalization of mutex member! Must be first of baseclasses.
public ::cppu::WeakImplHelper1< ::com::sun::star::xml::sax::XDocumentHandler >
{
public:
@@ -118,7 +119,7 @@ class ReadMenuDocumentHandlerBase : public ThreadHelpBase, // Struct for right
};
-class OReadMenuDocumentHandler : public ReadMenuDocumentHandlerBase
+class FWE_DLLPUBLIC OReadMenuDocumentHandler : public ReadMenuDocumentHandlerBase
{
public:
// #110897#
@@ -162,7 +163,7 @@ class OReadMenuDocumentHandler : public ReadMenuDocumentHandlerBase
}; // OReadMenuDocumentHandler
-class OReadMenuBarHandler : public ReadMenuDocumentHandlerBase
+class FWE_DLLPUBLIC OReadMenuBarHandler : public ReadMenuDocumentHandlerBase
{
public:
// #110897#
@@ -209,7 +210,7 @@ class OReadMenuBarHandler : public ReadMenuDocumentHandlerBase
}; // OReadMenuBarHandler
-class OReadMenuHandler : public ReadMenuDocumentHandlerBase
+class FWE_DLLPUBLIC OReadMenuHandler : public ReadMenuDocumentHandlerBase
{
public:
OReadMenuHandler( const com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& rMenuContainer,
@@ -247,7 +248,7 @@ class OReadMenuHandler : public ReadMenuDocumentHandlerBase
}; // OReadMenuHandler
-class OReadMenuPopupHandler : public ReadMenuDocumentHandlerBase
+class FWE_DLLPUBLIC OReadMenuPopupHandler : public ReadMenuDocumentHandlerBase
{
public:
OReadMenuPopupHandler( const com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& rMenuContainer,
@@ -290,7 +291,7 @@ class OReadMenuPopupHandler : public ReadMenuDocumentHandlerBase
}; // OReadMenuPopupHandler
-class OWriteMenuDocumentHandler
+class FWE_DLLPUBLIC OWriteMenuDocumentHandler
{
public:
OWriteMenuDocumentHandler(
diff --git a/framework/inc/xml/saxnamespacefilter.hxx b/framework/inc/xml/saxnamespacefilter.hxx
index 7d04dd434441..f4bdfcf677e9 100644
--- a/framework/inc/xml/saxnamespacefilter.hxx
+++ b/framework/inc/xml/saxnamespacefilter.hxx
@@ -36,6 +36,7 @@
#include <cppuhelper/implbase1.hxx>
#include <stack>
+#include <framework/fwedllapi.h>
//_________________________________________________________________________________________________________________
// namespace
@@ -44,7 +45,7 @@
namespace framework
{
-class SaxNamespaceFilter : public ThreadHelpBase, // Struct for right initalization of mutex member! Must be first of baseclasses.
+class FWE_DLLPUBLIC SaxNamespaceFilter : public ThreadHelpBase, // Struct for right initalization of mutex member! Must be first of baseclasses.
public ::cppu::WeakImplHelper1< ::com::sun::star::xml::sax::XDocumentHandler >
{
public:
diff --git a/framework/inc/xml/statusbardocumenthandler.hxx b/framework/inc/xml/statusbardocumenthandler.hxx
index 3ce94a872344..82c2d0c55111 100644
--- a/framework/inc/xml/statusbardocumenthandler.hxx
+++ b/framework/inc/xml/statusbardocumenthandler.hxx
@@ -29,7 +29,7 @@
#define __FRAMEWORK_XML_STATUSBARDOCUMENTHANDLER_HXX_
#ifndef __FRAMEWORK_XML_STATUSBARCONFIGURATION_HXX_
-#include <xml/statusbarconfiguration.hxx>
+#include <framework/statusbarconfiguration.hxx>
#endif
//_________________________________________________________________________________________________________________
@@ -49,6 +49,7 @@
#include <hash_map>
#include <stdtypes.h>
+#include <framework/fwedllapi.h>
//_________________________________________________________________________________________________________________
// namespace
@@ -59,7 +60,7 @@ namespace framework{
//*****************************************************************************************************************
// Hash code function for using in all hash maps of follow implementation.
-class OReadStatusBarDocumentHandler : private ThreadHelpBase, // Struct for right initalization of lock member! Must be first of baseclasses.
+class FWE_DLLPUBLIC OReadStatusBarDocumentHandler : private ThreadHelpBase, // Struct for right initalization of lock member! Must be first of baseclasses.
public ::cppu::WeakImplHelper1< ::com::sun::star::xml::sax::XDocumentHandler >
{
public:
@@ -148,7 +149,7 @@ class OReadStatusBarDocumentHandler : private ThreadHelpBase, // Struct for ri
::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
};
-class OWriteStatusBarDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
+class FWE_DLLPUBLIC OWriteStatusBarDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
{
public:
OWriteStatusBarDocumentHandler(
diff --git a/framework/inc/xml/toolboxconfigurationdefines.hxx b/framework/inc/xml/toolboxconfigurationdefines.hxx
index c3cd030f6213..0b514b927bc1 100644
--- a/framework/inc/xml/toolboxconfigurationdefines.hxx
+++ b/framework/inc/xml/toolboxconfigurationdefines.hxx
@@ -1,3 +1,29 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
#ifndef __FRAMEWORK_XML_TOOLBOXCONFIGURATIONDEFINES_HXX_
#define __FRAMEWORK_XML_TOOLBOXCONFIGURATIONDEFINES_HXX_
diff --git a/framework/inc/xml/toolboxdocumenthandler.hxx b/framework/inc/xml/toolboxdocumenthandler.hxx
index 5cb634b2bdc9..d90d91cee036 100644
--- a/framework/inc/xml/toolboxdocumenthandler.hxx
+++ b/framework/inc/xml/toolboxdocumenthandler.hxx
@@ -28,7 +28,7 @@
#ifndef __FRAMEWORK_XML_TOOLBOXDOCUMENTHANDLER_HXX_
#define __FRAMEWORK_XML_TOOLBOXDOCUMENTHANDLER_HXX_
-#include <xml/toolboxconfiguration.hxx>
+#include <framework/toolboxconfiguration.hxx>
//_________________________________________________________________________________________________________________
// interface includes
@@ -43,6 +43,7 @@
#include <rtl/ustring.hxx>
#include <cppuhelper/implbase1.hxx>
#include <stdtypes.h>
+#include <framework/fwedllapi.h>
//_________________________________________________________________________________________________________________
// namespace
@@ -53,7 +54,7 @@ namespace framework{
//*****************************************************************************************************************
// Hash code function for using in all hash maps of follow implementation.
-class OReadToolBoxDocumentHandler : private ThreadHelpBase, // Struct for right initalization of lock member! Must be first of baseclasses.
+class FWE_DLLPUBLIC OReadToolBoxDocumentHandler : private ThreadHelpBase, // Struct for right initalization of lock member! Must be first of baseclasses.
public ::cppu::WeakImplHelper1< ::com::sun::star::xml::sax::XDocumentHandler >
{
public:
@@ -169,7 +170,7 @@ class OReadToolBoxDocumentHandler : private ThreadHelpBase, // Struct for right
};
-class OWriteToolBoxDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
+class FWE_DLLPUBLIC OWriteToolBoxDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
{
public:
OWriteToolBoxDocumentHandler(
diff --git a/framework/inc/xml/xmlnamespaces.hxx b/framework/inc/xml/xmlnamespaces.hxx
index 81b6bb305ee0..bcb9ec4cb5e3 100644
--- a/framework/inc/xml/xmlnamespaces.hxx
+++ b/framework/inc/xml/xmlnamespaces.hxx
@@ -31,11 +31,12 @@
#include <com/sun/star/xml/sax/SAXException.hpp>
#include <map>
+#include <framework/fwedllapi.h>
namespace framework
{
-class XMLNamespaces
+class FWE_DLLPUBLIC XMLNamespaces
{
public:
XMLNamespaces();
diff --git a/framework/prj/build.lst b/framework/prj/build.lst
index cf994604699a..2c847918fee4 100644
--- a/framework/prj/build.lst
+++ b/framework/prj/build.lst
@@ -1,57 +1,2 @@
-fr framework : l10n svtools NULL
-fr framework usr1 - all fr_mkout NULL
-fr framework\inc nmake - all fr_inc NULL
-fr framework\source\constant nmake - all fr_constant fr_inc NULL
-fr framework\source\threadhelp nmake - all fr_threadhelp fr_constant fr_inc NULL
-fr framework\source\loadenv nmake - all fr_loadenv fr_threadhelp fr_constant fr_inc NULL
-fr framework\source\classes nmake - all fr_classes fr_threadhelp fr_constant fr_inc NULL
-fr framework\source\jobs nmake - all fr_jobs fr_threadhelp fr_constant fr_inc NULL
-fr framework\source\interaction nmake - all fr_interaction fr_threadhelp fr_constant fr_inc NULL
-fr framework\source\helper nmake - all fr_helper fr_threadhelp fr_constant fr_inc NULL
-fr framework\source\dispatch nmake - all fr_dispatch fr_threadhelp fr_constant fr_inc NULL
-fr framework\source\services nmake - all fr_services fr_threadhelp fr_constant fr_inc NULL
-fr framework\source\register nmake - all fr_register fr_threadhelp fr_constant fr_inc NULL
-fr framework\source\recording nmake - all fr_recording fr_threadhelp fr_constant fr_inc NULL
-fr framework\source\xml nmake - all fr_xml fr_threadhelp fr_inc NULL
-fr framework\source\layoutmanager nmake - all fr_layoutmanager fr_threadhelp fr_inc NULL
-fr framework\source\uielement nmake - all fr_uielement fr_threadhelp fr_inc NULL
-fr framework\source\uifactory nmake - all fr_uifactory fr_threadhelp fr_inc NULL
-fr framework\source\uiconfiguration nmake - all fr_uiconfiguration fr_threadhelp fr_inc NULL
-fr framework\source\accelerators nmake - all fr_accelerators fr_threadhelp fr_inc NULL
-fr framework\source\tabwin nmake - all fr_tabwin fr_threadhelp fr_inc NULL
-fr framework\util nmake - all fr_util fr_constant fr_threadhelp fr_classes fr_loadenv fr_jobs fr_interaction fr_helper fr_dispatch fr_services fr_register fr_recording fr_layoutmanager fr_uielement fr_uifactory fr_xml fr_uiconfiguration fr_accelerators fr_tabwin NULL
-fr framework\qa\unoapi nmake - all fr_qa_unoapi NULL
-
-# complex tests
-# fails on unxsoli4
-# fr framework\qa\complex\ModuleManager nmake - all fr_qa_complex_modulemanager NULL
-# fr framework\qa\complex\XUserInputInterception nmake - all fr_qa_complex_xuserinputinterception NULL
-
-# fr framework\qa\complex\accelerators nmake - all fr_qa_complex_accel fr_qa_complex_accel_helper NULL
-
-# unclear should be remove
-# fr framework\qa\complex\api_internal nmake - all fr_qa_complex_api_internal NULL
-
-# BUG! opens an error box
-# fr framework\qa\complex\broken_document nmake - all fr_qa_complex_broken_doc NULL
-
-# failed:
-# fr framework\qa\complex\desktop nmake - all fr_qa_complex_desktop NULL
-
-# fr framework\qa\complex\dispatches nmake - all fr_qa_complex_dispatches fr_qa_complex_dispatches_helper NULL
-# fr framework\qa\complex\disposing nmake - all fr_qa_complex_disposing NULL
-
-# GPF
-# fr framework\qa\complex\framework\autosave nmake - all fr_qa_complex_framework_autosave NULL
-
-# much too complex, will not change to new junit
-# fr framework\qa\complex\framework\recovery nmake - all fr_qa_complex_framework_recovery NULL
-
-# fr framework\qa\complex\imageManager nmake - all fr_qa_complex_imageManager fr_qa_complex_imageManager_interfaces NULL
-
-# fr framework\qa\complex\loadAllDocuments nmake - all fr_qa_complex_loadAllDocuments fr_qa_complex_loadAllDocuments_helper NULL
-
-# need cleanups
-# fr framework\qa\complex\path_settings nmake - all fr_qa_complex_path_settings NULL
-# fr framework\qa\complex\path_substitution nmake - all fr_qa_complex_path_substitution NULL
-
+fr framework : LIBXSLT:libxslt l10n svtools NULL
+fr framework\prj nmake - all fr_all NULL
diff --git a/framework/prj/d.lst b/framework/prj/d.lst
index d3a3d6dd153c..e69de29bb2d1 100644
--- a/framework/prj/d.lst
+++ b/framework/prj/d.lst
@@ -1,55 +0,0 @@
-mkdir: %COMMON_DEST%\bin%_EXT%\hid
-mkdir: %_DEST%\inc%_EXT%\framework
-mkdir: %_DEST%\xml%_EXT%\uiconfig
-mkdir: %_DEST%\xml%_EXT%\uiconfig\modules
-mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\StartModule
-mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\StartModule\menubar
-mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\StartModule\toolbar
-mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\StartModule\statusbar
-
-..\%COMMON_OUTDIR%\misc\*.hid %COMMON_DEST%\bin%_EXT%\hid\*.hid
-..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*
-..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*
-..\%__SRC%\bin\*.exe %_DEST%\bin%_EXT%\*
-..\%__SRC%\bin\login %_DEST%\bin%_EXT%\login.bin
-..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
-..\%__SRC%\lib\lib*.dylib %_DEST%\lib%_EXT%
-
-..\dtd\menubar.dtd %_DEST%\bin%_EXT%\menubar.dtd
-..\dtd\toolbar.dtd %_DEST%\bin%_EXT%\toolbar.dtd
-..\dtd\statusbar.dtd %_DEST%\bin%_EXT%\statusbar.dtd
-..\dtd\event.dtd %_DEST%\bin%_EXT%\event.dtd
-..\dtd\accelerator.dtd %_DEST%\bin%_EXT%\accelerator.dtd
-..\dtd\image.dtd %_DEST%\bin%_EXT%\image.dtd
-..\dtd\groupuinames.dtd %_DEST%\bin%_EXT%\groupuinames.dtd
-
-..\%__SRC%\lib\ifwe.lib %_DEST%\lib%_EXT%\ifwe.lib
-..\%__SRC%\lib\ifwi.lib %_DEST%\lib%_EXT%\ifwi.lib
-..\inc\helper\imageproducer.hxx %_DEST%\inc%_EXT%\framework\imageproducer.hxx
-..\inc\helper\acceleratorinfo.hxx %_DEST%\inc%_EXT%\framework\acceleratorinfo.hxx
-..\inc\helper\actiontriggerhelper.hxx %_DEST%\inc%_EXT%\framework\actiontriggerhelper.hxx
-..\inc\xml\menuconfiguration.hxx %_DEST%\inc%_EXT%\framework\menuconfiguration.hxx
-..\inc\classes\bmkmenu.hxx %_DEST%\inc%_EXT%\framework\bmkmenu.hxx
-..\inc\xml\toolboxconfiguration.hxx %_DEST%\inc%_EXT%\framework\toolboxconfiguration.hxx
-..\inc\xml\statusbarconfiguration.hxx %_DEST%\inc%_EXT%\framework\statusbarconfiguration.hxx
-..\inc\xml\eventsconfiguration.hxx %_DEST%\inc%_EXT%\framework\eventsconfiguration.hxx
-..\inc\xml\imagesconfiguration.hxx %_DEST%\inc%_EXT%\framework\imagesconfiguration.hxx
-..\inc\classes\addonsoptions.hxx %_DEST%\inc%_EXT%\framework\addonsoptions.hxx
-..\inc\dispatch\interaction.hxx %_DEST%\inc%_EXT%\framework\interaction.hxx
-..\inc\classes\addonmenu.hxx %_DEST%\inc%_EXT%\framework\addonmenu.hxx
-..\inc\classes\sfxhelperfunctions.hxx %_DEST%\inc%_EXT%\framework\sfxhelperfunctions.hxx
-..\inc\helper\configimporter.hxx %_DEST%\inc%_EXT%\framework\configimporter.hxx
-..\inc\classes\menuextensionsupplier.hxx %_DEST%\inc%_EXT%\framework\menuextensionsupplier.hxx
-..\inc\interaction\preventduplicateinteraction.hxx %_DEST%\inc%_EXT%\framework\preventduplicateinteraction.hxx
-..\inc\helper\titlehelper.hxx %_DEST%\inc%_EXT%\framework\titlehelper.hxx
-..\inc\classes\framelistanalyzer.hxx %_DEST%\inc%_EXT%\framework\framelistanalyzer.hxx
-
-..\uiconfig\startmodule\menubar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\StartModule\menubar\*.xml
-..\uiconfig\startmodule\toolbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\StartModule\toolbar\*.xml
-..\uiconfig\startmodule\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\StartModule\statusbar\*.xml
-
-..\source\unotypes\fw?.xml %_DEST%\xml%_EXT%\*.xml
-
-..\%__SRC%\misc\fwk.component %_DEST%\xml%_EXT%\fwk.component
-..\%__SRC%\misc\fwl.component %_DEST%\xml%_EXT%\fwl.component
-..\%__SRC%\misc\fwm.component %_DEST%\xml%_EXT%\fwm.component
diff --git a/framework/source/application/makefile.mk b/framework/prj/makefile.mk
index 96bd84de2373..c73a3d944bbf 100644
--- a/framework/source/application/makefile.mk
+++ b/framework/prj/makefile.mk
@@ -24,22 +24,17 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ=..$/..
-PRJNAME= framework
-TARGET= framework
-LIBTARGET= NO
-ENABLE_EXCEPTIONS= TRUE
+PRJ=..
+TARGET=prj
-# --- Settings -----------------------------------------------------
+.INCLUDE : settings.mk
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES= $(SLO)$/login.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
+.IF "$(VERBOSE)"!=""
+VERBOSEFLAG :=
+.ELSE
+VERBOSEFLAG := -s
+.ENDIF
+all:
+ cd $(PRJ) && $(GNUMAKE) $(VERBOSEFLAG) -r -j$(MAXPROCESS) $(gb_MAKETARGET)
diff --git a/framework/qa/complex/ModuleManager/makefile.mk b/framework/qa/complex/ModuleManager/makefile.mk
deleted file mode 100644
index 4ad6d8929030..000000000000
--- a/framework/qa/complex/ModuleManager/makefile.mk
+++ /dev/null
@@ -1,60 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_ModuleManager
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/ModuleManager
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- CheckXModuleManager.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES)
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
diff --git a/framework/qa/complex/XUserInputInterception/makefile.mk b/framework/qa/complex/XUserInputInterception/makefile.mk
deleted file mode 100644
index 8b08bec171ee..000000000000
--- a/framework/qa/complex/XUserInputInterception/makefile.mk
+++ /dev/null
@@ -1,133 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-# we don't want something like this.
-# .IF "$(OS)"=="LINUX"
-# nothing .PHONY:
-# @echo "Test marked as failed on this platform"
-# .END
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_xuserinputinterception
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/XUserInputInterception
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- EventTest.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES)
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
-#
-#
-#
-# PRJ = ..$/..$/..
-# TARGET = EventTest
-# PRJNAME = framework
-# PACKAGE = complex$/XUserInputInterception
-#
-# # --- Settings -----------------------------------------------------
-# .INCLUDE: settings.mk
-#
-#
-# #----- compile .java files -----------------------------------------
-#
-# JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
-# OOoRunner.jar mysql.jar
-# JAVAFILES = EventTest.java
-# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-#
-# #----- make a jar from compiled files ------------------------------
-#
-# MAXLINELENGTH = 100000
-#
-# JARCLASSDIRS = $(PACKAGE)
-# JARTARGET = $(TARGET).jar
-# JARCOMPRESS = TRUE
-#
-# # --- Parameters for the test --------------------------------------
-#
-# # start an office if the parameter is set for the makefile
-# .IF "$(OFFICE)" == ""
-# CT_APPEXECCOMMAND =
-# .ELSE
-# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-# .ENDIF
-#
-# # test base is java complex
-# CT_TESTBASE = -TestBase java_complex
-#
-# # test looks something like the.full.package.TestName
-# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
-#
-# # start the runner application
-# CT_APP = org.openoffice.Runner
-#
-# # --- Targets ------------------------------------------------------
-#
-# .IF "$(depend)" == ""
-# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-# .ELSE
-# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-# .ENDIF
-#
-# .INCLUDE : target.mk
-#
-# #$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
-# # cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
-# # jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
-#
-# RUN: run
-#
-# run:
-# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
-#
-#
-#
diff --git a/framework/qa/complex/accelerators/helper/makefile.mk b/framework/qa/complex/accelerators/helper/makefile.mk
deleted file mode 100644
index 189a5fddba77..000000000000
--- a/framework/qa/complex/accelerators/helper/makefile.mk
+++ /dev/null
@@ -1,46 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ../../../..
-TARGET = AcceleratorsConfigurationTest
-PRJNAME = framework
-PACKAGE = complex/accelerators/helper
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
- Generator.jar OOoRunner.jar
-JAVAFILES = KeyMapping.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-MAXLINELENGTH = 100000
-
-.INCLUDE : target.mk
diff --git a/framework/qa/complex/accelerators/makefile.mk b/framework/qa/complex/accelerators/makefile.mk
deleted file mode 100644
index 7d5460324849..000000000000
--- a/framework/qa/complex/accelerators/makefile.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_accelerators
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/accelerators
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- AcceleratorsConfigurationTest.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES) \
- KeyMapping.java
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-#JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
-# OOoRunner.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
-
-
-
-
diff --git a/framework/qa/complex/api_internal/makefile.mk b/framework/qa/complex/api_internal/makefile.mk
deleted file mode 100755
index f1a22011a8e7..000000000000
--- a/framework/qa/complex/api_internal/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_api_internal
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/api_internal
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- CheckAPI.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES)
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-#JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
-# OOoRunner.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
diff --git a/framework/qa/complex/broken_document/makefile.mk b/framework/qa/complex/broken_document/makefile.mk
deleted file mode 100755
index 8b1cf2ac3bfd..000000000000
--- a/framework/qa/complex/broken_document/makefile.mk
+++ /dev/null
@@ -1,65 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_broken_document
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/broken_document
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- LoadDocument.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES) \
- TestDocument.java
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-#JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
-# OOoRunner.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
diff --git a/framework/qa/complex/contextMenuInterceptor/makefile.mk b/framework/qa/complex/contextMenuInterceptor/makefile.mk
deleted file mode 100644
index 574d98641468..000000000000
--- a/framework/qa/complex/contextMenuInterceptor/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_contextMenuInterceptor
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/contextMenuInterceptor
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- CheckContextMenuInterceptor.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES) \
- ContextMenuInterceptor.java
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-#JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
-# OOoRunner.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
diff --git a/framework/qa/complex/desktop/makefile.mk b/framework/qa/complex/desktop/makefile.mk
deleted file mode 100755
index 74db8d34e160..000000000000
--- a/framework/qa/complex/desktop/makefile.mk
+++ /dev/null
@@ -1,62 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_desktop
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/desktop
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- DesktopTerminate.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES)
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-#JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
-# OOoRunner.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
diff --git a/framework/qa/complex/dispatches/makefile.mk b/framework/qa/complex/dispatches/makefile.mk
deleted file mode 100644
index 6a5ff79dd793..000000000000
--- a/framework/qa/complex/dispatches/makefile.mk
+++ /dev/null
@@ -1,131 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_dispatches
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/dispatches
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- checkdispatchapi.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES) \
- Interceptor.java
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar ConnectivityTools.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
-
-
-
-# PRJ = ..$/..$/..
-# TARGET = checkdispatchapi
-# PRJNAME = framework
-# PACKAGE = complex$/dispatches
-#
-# # --- Settings -----------------------------------------------------
-# .INCLUDE: settings.mk
-#
-#
-# #----- compile .java files -----------------------------------------
-#
-# JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
-# OOoRunner.jar mysql.jar ConnectivityTools.jar
-# JAVAFILES = checkdispatchapi.java
-#
-# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-#
-# SUBDIRS=helper
-#
-# #----- make a jar from compiled files ------------------------------
-#
-# MAXLINELENGTH = 100000
-#
-# JARCLASSDIRS = $(PACKAGE)
-# JARTARGET = $(TARGET).jar
-# JARCOMPRESS = TRUE
-#
-# # --- Parameters for the test --------------------------------------
-#
-# # start an office if the parameter is set for the makefile
-# .IF "$(OFFICE)" == ""
-# CT_APPEXECCOMMAND =
-# .ELSE
-# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-# .ENDIF
-#
-# # test base is java complex
-# CT_TESTBASE = -TestBase java_complex
-#
-# # test looks something like the.full.package.TestName
-# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
-#
-# # start the runner application
-# CT_APP = org.openoffice.Runner
-#
-# # --- Targets ------------------------------------------------------
-#
-# .IF "$(depend)" == ""
-# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-# .ELSE
-# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-# .ENDIF
-#
-# .INCLUDE : target.mk
-#
-# #$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
-# # cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
-# # jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
-#
-# RUN: run
-#
-# run:
-# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
-#
-#
-#
diff --git a/framework/qa/complex/disposing/makefile.mk b/framework/qa/complex/disposing/makefile.mk
deleted file mode 100755
index f24960421f21..000000000000
--- a/framework/qa/complex/disposing/makefile.mk
+++ /dev/null
@@ -1,61 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_disposing
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/disposing
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- GetServiceWhileDisposingOffice.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES)
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
diff --git a/framework/qa/complex/framework/autosave/makefile.mk b/framework/qa/complex/framework/autosave/makefile.mk
deleted file mode 100644
index 2e8e3dca1f76..000000000000
--- a/framework/qa/complex/framework/autosave/makefile.mk
+++ /dev/null
@@ -1,127 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../../..
-PRJNAME = framework
-TARGET = qa_complex_framework_autosave
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/framework/autosave
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- AutoSave.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES) \
- ConfigHelper.java \
- Protocol.java
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
-#
-# PRJ = ..$/..$/..$/..
-# TARGET = AutoSave
-# PRJNAME = framework
-# PACKAGE = complex$/framework$/autosave
-#
-# # --- Settings -----------------------------------------------------
-# .INCLUDE: settings.mk
-#
-#
-# #----- compile .java files -----------------------------------------
-#
-# JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
-# OOoRunner.jar mysql.jar
-# JAVAFILES = AutoSave.java ConfigHelper.java Protocol.java
-# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-#
-# #----- make a jar from compiled files ------------------------------
-#
-# MAXLINELENGTH = 100000
-#
-# JARCLASSDIRS = $(PACKAGE)
-# JARTARGET = $(TARGET).jar
-# JARCOMPRESS = TRUE
-#
-# # --- Parameters for the test --------------------------------------
-#
-# # start an office if the parameter is set for the makefile
-# .IF "$(OFFICE)" == ""
-# CT_APPEXECCOMMAND =
-# .ELSE
-# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-# .ENDIF
-#
-# # test base is java complex
-# CT_TESTBASE = -TestBase java_complex
-#
-# # test looks something like the.full.package.TestName
-# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
-#
-# # start the runner application
-# CT_APP = org.openoffice.Runner
-#
-# # --- Targets ------------------------------------------------------
-#
-# .IF "$(depend)" == ""
-# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-# .ELSE
-# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-# .ENDIF
-#
-# .INCLUDE : target.mk
-#
-# #$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
-# # cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
-# # jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
-#
-# RUN: run
-#
-# run:
-# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
-#
-#
-#
diff --git a/framework/qa/complex/framework/recovery/makefile.mk b/framework/qa/complex/framework/recovery/makefile.mk
deleted file mode 100755
index 4a9f80b4b2a5..000000000000
--- a/framework/qa/complex/framework/recovery/makefile.mk
+++ /dev/null
@@ -1,103 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ..$/..$/..$/..
-TARGET = RecoveryTest
-PRJNAME = framework
-PACKAGE = complex$/framework$/recovery
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = RecoveryTest.java RecoveryTools.java CrashThread.java TimeoutThread.java KlickButtonThread.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-
-#------ some information how to run the test -----------------------
-
-MYTAR: ALLTAR
- @echo
- @echo ########################### N O T E ######################################
- @echo
- @echo To run the test successfully you have to extend your LD_LIBRARY_PATH
- @echo to your office program directory!
- @echo Example:
- @echo setenv LD_LIBRARY_PATH /myOffice/program:\$$LD_LIBRARY_PATH
- @echo
- @echo To run the you have to use the parameter cmd:
- @echo cmd="PATH_TO_OFFICE_BINARY -accept=socket,host=localhost,port=8100;urp;"
- @echo
- @echo Example:
- @echo dmake run cmd="/myOffice/program/soffice -accept=socket,host=localhost,port=8100;urp;"
- @echo
-
-
-# --- Parameters for the test --------------------------------------
-
-# start an office if the parameter is set for the makefile
-.IF "$(cmd)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -cmd "$(cmd)"
-#CT_APPEXECCOMMAND = -AppExecutionCommand \
-# "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
-
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
-
-# replace $/ with . in package name
-CT_PACKAGE = -o $(PACKAGE:s\$/\.\)
-
-# start the runner application
-CT_APP = org.openoffice.Runner
-
-CT_NOOFFICE = -NoOffice true
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-RUN: run
-# muss noch angepasst werden: es soll auf -AppExecutionCommand und -NoOffice gepr??ft werden
-#.IF "$(OFFICE)" == ""
-#run:
-# @echo Exit
-#.ELSE
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_NOOFFICE) $(CT_PACKAGE).RecoveryTest
-
diff --git a/framework/qa/complex/imageManager/interfaces/makefile.mk b/framework/qa/complex/imageManager/interfaces/makefile.mk
deleted file mode 100755
index f7b6f5ebf035..000000000000
--- a/framework/qa/complex/imageManager/interfaces/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ../../../..
-TARGET = ImageManager
-PRJNAME = framework
-PACKAGE = complex/imageManager/interfaces
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-
-JAVAFILES = \
-_XComponent.java \
-_XUIConfiguration.java \
-_XImageManager.java \
-_XUIConfigurationPersistence.java \
-_XInitialization.java \
-_XTypeProvider.java
-
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-
diff --git a/framework/qa/complex/imageManager/makefile.mk b/framework/qa/complex/imageManager/makefile.mk
deleted file mode 100755
index 133e522b13b4..000000000000
--- a/framework/qa/complex/imageManager/makefile.mk
+++ /dev/null
@@ -1,123 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_imageManager
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/imageManager
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- CheckImageManager.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES) \
- _XComponent.java \
- _XImageManager.java \
- _XInitialization.java \
- _XTypeProvider.java \
- _XUIConfiguration.java \
- _XUIConfigurationPersistence.java
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
-
-
-#
-#
-# PRJ = ..$/..$/..
-# TARGET = ImageManager
-# PRJNAME = framework
-# PACKAGE = imageManager
-#
-# # --- Settings -----------------------------------------------------
-# .INCLUDE: settings.mk
-#
-#
-# #----- compile .java files -----------------------------------------
-#
-# JARFILES = mysql.jar mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-# JAVAFILES = CheckImageManager.java
-# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-#
-# #----- make a jar from compiled files ------------------------------
-#
-# MAXLINELENGTH = 100000
-#
-# JARCLASSDIRS = $(PACKAGE)
-# JARTARGET = $(TARGET).jar
-# JARCOMPRESS = TRUE
-#
-# # --- Parameters for the test --------------------------------------
-#
-# # start an office if the parameter is set for the makefile
-# .IF "$(OFFICE)" == ""
-# CT_APPEXECCOMMAND =
-# .ELSE
-# CT_APPEXECCOMMAND = -AppExecutionCommand \
-# "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-# .ENDIF
-#
-# # test base is java complex
-# CT_TESTBASE = -TestBase java_complex
-#
-# # replace $/ with . in package name
-# CT_PACKAGE = -o $(PACKAGE:s\$/\.\)
-#
-# # start the runner application
-# CT_APP = org.openoffice.Runner
-#
-# # --- Targets ------------------------------------------------------
-#
-# .INCLUDE : target.mk
-#
-# RUN: run
-#
-# run:
-# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_PACKAGE).CheckImageManager
-#
-#
diff --git a/framework/qa/complex/loadAllDocuments/makefile.mk b/framework/qa/complex/loadAllDocuments/makefile.mk
deleted file mode 100644
index ebf0265620bf..000000000000
--- a/framework/qa/complex/loadAllDocuments/makefile.mk
+++ /dev/null
@@ -1,134 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_loadAllDocuments
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/loadAllDocuments
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- CheckXComponentLoader.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES) \
- InteractionHandler.java \
- StatusIndicator.java \
- StreamSimulator.java \
- TestDocument.java
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
-
-
-#
-#
-# PRJ = ..$/..$/..
-# TARGET = CheckXComponentLoader
-# PRJNAME = framework
-# PACKAGE = complex$/loadAllDocuments
-#
-# # --- Settings -----------------------------------------------------
-# .INCLUDE: settings.mk
-#
-#
-# #----- compile .java files -----------------------------------------
-#
-# JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
-# OOoRunner.jar mysql.jar
-# JAVAFILES =
-# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-#
-# SUBDIRS = helper
-#
-# #----- make a jar from compiled files ------------------------------
-#
-# MAXLINELENGTH = 100000
-#
-# JARCLASSDIRS = $(PACKAGE)
-# JARTARGET = $(TARGET).jar
-# JARCOMPRESS = TRUE
-#
-# # --- Parameters for the test --------------------------------------
-#
-# # start an office if the parameter is set for the makefile
-# .IF "$(OFFICE)" == ""
-# CT_APPEXECCOMMAND =
-# .ELSE
-# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-# .ENDIF
-#
-# # test base is java complex
-# CT_TESTBASE = -TestBase java_complex
-#
-# # test looks something like the.full.package.TestName
-# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
-#
-# # start the runner application
-# CT_APP = org.openoffice.Runner
-#
-# # --- Targets ------------------------------------------------------
-#
-# .IF "$(depend)" == ""
-# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-# .ELSE
-# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-# .ENDIF
-#
-# .INCLUDE : target.mk
-#
-# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
-# cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
-# jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
-#
-# RUN: run
-#
-# run:
-# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST) -tdoc $(PWD)$/testdocuments
-#
-#
-#
diff --git a/framework/qa/complex/path_settings/makefile.mk b/framework/qa/complex/path_settings/makefile.mk
deleted file mode 100755
index 05900d46e190..000000000000
--- a/framework/qa/complex/path_settings/makefile.mk
+++ /dev/null
@@ -1,62 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-# @echo "OOO_SUBSEQUENT_TESTS not set, do nothing."
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_path_settings
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/path_settings
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- PathSettingsTest.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES)
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
diff --git a/framework/qa/complex/path_substitution/makefile.mk b/framework/qa/complex/path_substitution/makefile.mk
deleted file mode 100755
index 338affbf70d7..000000000000
--- a/framework/qa/complex/path_substitution/makefile.mk
+++ /dev/null
@@ -1,122 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = framework
-TARGET = qa_complex_path_substitution
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/path_substitution
-
-# here store only Files which contain a @Test
-JAVATESTFILES = \
- PathSubstitutionTest.java
-
-# put here all other files
-JAVAFILES = $(JAVATESTFILES)
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
-
-#
-#
-#
-#
-# PRJ = ..$/..$/..
-# TARGET = PathSubstitution
-# PRJNAME = $(TARGET)
-# PACKAGE = complex$/path_substitution
-#
-# # --- Settings -----------------------------------------------------
-# .INCLUDE: settings.mk
-#
-#
-# #----- compile .java files -----------------------------------------
-#
-# JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar mysql.jar
-# JAVAFILES = PathSubstitutionTest.java
-# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-#
-# #----- make a jar from compiled files ------------------------------
-#
-# MAXLINELENGTH = 100000
-#
-# JARCLASSDIRS = $(PACKAGE)
-# JARTARGET = $(TARGET).jar
-# JARCOMPRESS = TRUE
-#
-# # --- Parameters for the test --------------------------------------
-#
-# # start an office if the parameter is set for the makefile
-# .IF "$(OFFICE)" == ""
-# CT_APPEXECCOMMAND =
-# .ELSE
-# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-# .ENDIF
-#
-# # test base is java complex
-# CT_TESTBASE = -TestBase java_complex
-#
-# # test looks something like the.full.package.TestName
-# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
-#
-# # start the runner application
-# CT_APP = org.openoffice.Runner
-#
-# # --- Targets ------------------------------------------------------
-#
-# .IF "$(depend)" == ""
-# ALL : ALLTAR
-# .ELSE
-# ALL: ALLDEP
-# .ENDIF
-#
-# .INCLUDE : target.mk
-#
-# RUN: run
-#
-# run:
-# +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_TEST)
-#
diff --git a/framework/qa/unoapi/makefile.mk b/framework/qa/unoapi/makefile.mk
deleted file mode 100755
index 38a6cf7cced8..000000000000
--- a/framework/qa/unoapi/makefile.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#*************************************************************************
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#***********************************************************************/
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../..
-PRJNAME = framework
-TARGET = qa_unoapi
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = org/openoffice/framework/qa/unoapi
-JAVATESTFILES = Test.java
-JAVAFILES = $(JAVATESTFILES)
-JARFILES = OOoRunner.jar ridl.jar test.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
diff --git a/framework/source/accelerators/makefile.mk b/framework/source/accelerators/makefile.mk
deleted file mode 100644
index 23a60dd1870e..000000000000
--- a/framework/source/accelerators/makefile.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_accelerators
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/keymapping.obj \
- $(SLO)$/storageholder.obj \
- $(SLO)$/presethandler.obj \
- $(SLO)$/acceleratorcache.obj \
- $(SLO)$/acceleratorconfiguration.obj \
- $(SLO)$/globalacceleratorconfiguration.obj \
- $(SLO)$/moduleacceleratorconfiguration.obj \
- $(SLO)$/documentacceleratorconfiguration.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/source/classes/fwktabwindow.cxx b/framework/source/classes/fwktabwindow.cxx
index a73d87d50fce..58a2b1a00aa3 100644
--- a/framework/source/classes/fwktabwindow.cxx
+++ b/framework/source/classes/fwktabwindow.cxx
@@ -30,7 +30,7 @@
#include <classes/fwktabwindow.hxx>
#include "framework.hrc"
-#include <classes/fwlresid.hxx>
+#include <classes/fwkresid.hxx>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/awt/XContainerWindowEventHandler.hpp>
@@ -205,9 +205,9 @@ void FwkTabPage::Resize()
FwkTabWindow::FwkTabWindow( Window* pParent ) :
- Window( pParent, FwlResId( WIN_TABWINDOW ) ),
+ Window( pParent, FwkResId( WIN_TABWINDOW ) ),
- m_aTabCtrl ( this, FwlResId( TC_TABCONTROL ) )
+ m_aTabCtrl ( this, FwkResId( TC_TABCONTROL ) )
{
uno::Reference < lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
m_xWinProvider = uno::Reference < awt::XContainerWindowProvider >(
diff --git a/framework/source/classes/makefile.mk b/framework/source/classes/makefile.mk
deleted file mode 100644
index 22e8a6d540f0..000000000000
--- a/framework/source/classes/makefile.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_classes
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/propertysethelper.obj \
- $(SLO)$/framecontainer.obj \
- $(SLO)$/taskcreator.obj \
- $(SLO)$/menumanager.obj \
- $(SLO)$/bmkmenu.obj \
- $(SLO)$/droptargetlistener.obj \
- $(SLO)$/converter.obj \
- $(SLO)$/actiontriggerpropertyset.obj \
- $(SLO)$/actiontriggerseparatorpropertyset.obj \
- $(SLO)$/actiontriggercontainer.obj \
- $(SLO)$/imagewrapper.obj \
- $(SLO)$/rootactiontriggercontainer.obj \
- $(SLO)$/protocolhandlercache.obj \
- $(SLO)$/addonmenu.obj \
- $(SLO)$/addonsoptions.obj \
- $(SLO)$/fwkresid.obj \
- $(SLO)$/fwlresid.obj \
- $(SLO)$/framelistanalyzer.obj \
- $(SLO)$/sfxhelperfunctions.obj \
- $(SLO)$/menuextensionsupplier.obj \
- $(SLO)$/fwktabwindow.obj
-
-SRS1NAME=$(TARGET)
-SRC1FILES =\
- resource.src
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/source/classes/menumanager.cxx b/framework/source/classes/menumanager.cxx
index c67e8b47a735..cf4d772f6044 100644
--- a/framework/source/classes/menumanager.cxx
+++ b/framework/source/classes/menumanager.cxx
@@ -33,12 +33,12 @@
// my own includes
//_________________________________________________________________________________________________________________
#include <classes/menumanager.hxx>
-#include <xml/menuconfiguration.hxx>
-#include <classes/bmkmenu.hxx>
-#include <classes/addonmenu.hxx>
-#include <helper/imageproducer.hxx>
+#include <framework/menuconfiguration.hxx>
+#include <framework/bmkmenu.hxx>
+#include <framework/addonmenu.hxx>
+#include <framework/imageproducer.hxx>
#include <threadhelp/resetableguard.hxx>
-#include "classes/addonsoptions.hxx"
+#include "framework/addonsoptions.hxx"
#include <classes/fwkresid.hxx>
#include <services.h>
#include "classes/resource.hrc"
diff --git a/framework/source/constant/makefile.mk b/framework/source/constant/makefile.mk
deleted file mode 100644
index 05fc28870d0a..000000000000
--- a/framework/source/constant/makefile.mk
+++ /dev/null
@@ -1,45 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-PRJNAME= framework
-TARGET= fwk_constant
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= $(SLO)$/frameloader.obj \
- $(SLO)$/contenthandler.obj \
- $(SLO)$/containerquery.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx
index ee84de9d7dd4..57355eaa6398 100644
--- a/framework/source/dispatch/closedispatcher.cxx
+++ b/framework/source/dispatch/closedispatcher.cxx
@@ -34,7 +34,7 @@
#include <pattern/frame.hxx>
#include <threadhelp/readguard.hxx>
#include <threadhelp/writeguard.hxx>
-#include <classes/framelistanalyzer.hxx>
+#include <framework/framelistanalyzer.hxx>
#include <services.h>
#include <general.h>
diff --git a/framework/source/dispatch/makefile.mk b/framework/source/dispatch/makefile.mk
deleted file mode 100644
index b969d71ea9fc..000000000000
--- a/framework/source/dispatch/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_dispatch
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- defines ------------------------------------------------------
-
-CDEFS+=-DCOMPMOD_NAMESPACE=framework
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES=\
- $(SLO)$/closedispatcher.obj \
- $(SLO)$/dispatchinformationprovider.obj \
- $(SLO)$/dispatchprovider.obj \
- $(SLO)$/helpagentdispatcher.obj \
- $(SLO)$/interaction.obj \
- $(SLO)$/interceptionhelper.obj \
- $(SLO)$/loaddispatcher.obj \
- $(SLO)$/mailtodispatcher.obj \
- $(SLO)$/menudispatcher.obj \
- $(SLO)$/oxt_handler.obj \
- $(SLO)$/popupmenudispatcher.obj \
- $(SLO)$/servicehandler.obj \
- $(SLO)$/systemexec.obj \
- $(SLO)$/windowcommanddispatch.obj \
- $(SLO)$/startmoduledispatcher.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/framework/source/dispatch/menudispatcher.cxx b/framework/source/dispatch/menudispatcher.cxx
index d14fd707d57d..5c71eade3814 100644
--- a/framework/source/dispatch/menudispatcher.cxx
+++ b/framework/source/dispatch/menudispatcher.cxx
@@ -33,8 +33,8 @@
//_________________________________________________________________________________________________________________
#include <dispatch/menudispatcher.hxx>
#include <general.h>
-#include <xml/menuconfiguration.hxx>
-#include <classes/addonmenu.hxx>
+#include <framework/menuconfiguration.hxx>
+#include <framework/addonmenu.hxx>
#include <services.h>
//_________________________________________________________________________________________________________________
diff --git a/framework/source/dispatch/popupmenudispatcher.cxx b/framework/source/dispatch/popupmenudispatcher.cxx
index 834d11017ec8..8437b82961ea 100644
--- a/framework/source/dispatch/popupmenudispatcher.cxx
+++ b/framework/source/dispatch/popupmenudispatcher.cxx
@@ -34,8 +34,8 @@
#include <dispatch/popupmenudispatcher.hxx>
#include <general.h>
-#include <xml/menuconfiguration.hxx>
-#include <classes/addonmenu.hxx>
+#include <framework/menuconfiguration.hxx>
+#include <framework/addonmenu.hxx>
#include <services.h>
#include <properties.h>
diff --git a/framework/source/dispatch/startmoduledispatcher.cxx b/framework/source/dispatch/startmoduledispatcher.cxx
index 40def3f98488..0e49b2818e56 100644
--- a/framework/source/dispatch/startmoduledispatcher.cxx
+++ b/framework/source/dispatch/startmoduledispatcher.cxx
@@ -36,7 +36,7 @@
#include <pattern/frame.hxx>
#include <threadhelp/readguard.hxx>
#include <threadhelp/writeguard.hxx>
-#include <classes/framelistanalyzer.hxx>
+#include <framework/framelistanalyzer.hxx>
#include <dispatchcommands.h>
#include <targets.h>
#include <services.h>
diff --git a/framework/source/classes/actiontriggercontainer.cxx b/framework/source/fwe/classes/actiontriggercontainer.cxx
index ea549fd3fda8..ea549fd3fda8 100644
--- a/framework/source/classes/actiontriggercontainer.cxx
+++ b/framework/source/fwe/classes/actiontriggercontainer.cxx
diff --git a/framework/source/classes/actiontriggerpropertyset.cxx b/framework/source/fwe/classes/actiontriggerpropertyset.cxx
index d37ca884de81..9b881448202f 100644
--- a/framework/source/classes/actiontriggerpropertyset.cxx
+++ b/framework/source/fwe/classes/actiontriggerpropertyset.cxx
@@ -41,6 +41,8 @@ using namespace com::sun::star::beans;
using namespace com::sun::star::lang;
using namespace com::sun::star::awt;
+//struct SAL_DLLPUBLIC_IMPORT ::cppu::OBroadcastHelperVar< OMultiTypeInterfaceContainerHelper, OMultiTypeInterfaceContainerHelper::keyType >;
+
// Handles for properties
// (PLEASE SORT THIS FIELD, IF YOU ADD NEW PROPERTIES!)
// We use an enum to define these handles, to use all numbers from 0 to nn and
diff --git a/framework/source/classes/actiontriggerseparatorpropertyset.cxx b/framework/source/fwe/classes/actiontriggerseparatorpropertyset.cxx
index ce6aaef12dac..ce6aaef12dac 100644
--- a/framework/source/classes/actiontriggerseparatorpropertyset.cxx
+++ b/framework/source/fwe/classes/actiontriggerseparatorpropertyset.cxx
diff --git a/framework/source/classes/addonmenu.cxx b/framework/source/fwe/classes/addonmenu.cxx
index c1b9ebb13bdc..811a4bdfc383 100644
--- a/framework/source/classes/addonmenu.cxx
+++ b/framework/source/fwe/classes/addonmenu.cxx
@@ -31,12 +31,12 @@
//_________________________________________________________________________________________________________________
// my own includes
//_________________________________________________________________________________________________________________
-#include "classes/addonmenu.hxx"
-#include "classes/addonsoptions.hxx"
+#include "framework/addonmenu.hxx"
+#include "framework/addonsoptions.hxx"
#include <general.h>
#include <macros/debug/assertion.hxx>
-#include <helper/imageproducer.hxx>
-#include <xml/menuconfiguration.hxx>
+#include <framework/imageproducer.hxx>
+#include <framework/menuconfiguration.hxx>
//_________________________________________________________________________________________________________________
// interface includes
diff --git a/framework/source/classes/addonsoptions.cxx b/framework/source/fwe/classes/addonsoptions.cxx
index 9bdaeb7dfda3..1d947c651a67 100644
--- a/framework/source/classes/addonsoptions.cxx
+++ b/framework/source/fwe/classes/addonsoptions.cxx
@@ -31,7 +31,7 @@
//_________________________________________________________________________________________________________________
// includes
//_________________________________________________________________________________________________________________
-#include <classes/addonsoptions.hxx>
+#include <framework/addonsoptions.hxx>
#include <unotools/configmgr.hxx>
#include <unotools/configitem.hxx>
#include <unotools/ucbstreamhelper.hxx>
diff --git a/framework/source/classes/bmkmenu.cxx b/framework/source/fwe/classes/bmkmenu.cxx
index 293780293305..ac588be9a881 100644
--- a/framework/source/classes/bmkmenu.cxx
+++ b/framework/source/fwe/classes/bmkmenu.cxx
@@ -34,11 +34,11 @@
#include <limits.h>
-#include "classes/bmkmenu.hxx"
+#include "framework/bmkmenu.hxx"
#include <general.h>
#include <macros/debug/assertion.hxx>
-#include <helper/imageproducer.hxx>
-#include <xml/menuconfiguration.hxx>
+#include <framework/imageproducer.hxx>
+#include <framework/menuconfiguration.hxx>
//_________________________________________________________________________________________________________________
// interface includes
diff --git a/framework/source/classes/framelistanalyzer.cxx b/framework/source/fwe/classes/framelistanalyzer.cxx
index 22f019e78df5..1a33ebf91d7e 100644
--- a/framework/source/classes/framelistanalyzer.cxx
+++ b/framework/source/fwe/classes/framelistanalyzer.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include "classes/framelistanalyzer.hxx"
+#include "framework/framelistanalyzer.hxx"
//_______________________________________________
// my own includes
diff --git a/framework/source/classes/fwkresid.cxx b/framework/source/fwe/classes/fwkresid.cxx
index 47e6ddb49fea..47e6ddb49fea 100644
--- a/framework/source/classes/fwkresid.cxx
+++ b/framework/source/fwe/classes/fwkresid.cxx
diff --git a/framework/source/classes/imagewrapper.cxx b/framework/source/fwe/classes/imagewrapper.cxx
index 82a7f684413c..82a7f684413c 100644
--- a/framework/source/classes/imagewrapper.cxx
+++ b/framework/source/fwe/classes/imagewrapper.cxx
diff --git a/framework/source/classes/menuextensionsupplier.cxx b/framework/source/fwe/classes/menuextensionsupplier.cxx
index 07991c61f90f..3849a34d5425 100644
--- a/framework/source/classes/menuextensionsupplier.cxx
+++ b/framework/source/fwe/classes/menuextensionsupplier.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include <classes/menuextensionsupplier.hxx>
+#include <framework/menuextensionsupplier.hxx>
#include <osl/mutex.hxx>
static pfunc_setMenuExtensionSupplier pMenuExtensionSupplierFunc = NULL;
diff --git a/framework/source/classes/rootactiontriggercontainer.cxx b/framework/source/fwe/classes/rootactiontriggercontainer.cxx
index c78d398b39a7..cdcc9aea5e1f 100644
--- a/framework/source/classes/rootactiontriggercontainer.cxx
+++ b/framework/source/fwe/classes/rootactiontriggercontainer.cxx
@@ -32,7 +32,7 @@
#include <classes/actiontriggercontainer.hxx>
#include <classes/actiontriggerpropertyset.hxx>
#include <classes/actiontriggerseparatorpropertyset.hxx>
-#include <helper/actiontriggerhelper.hxx>
+#include <framework/actiontriggerhelper.hxx>
#include <threadhelp/resetableguard.hxx>
#include <osl/mutex.hxx>
#include <vcl/svapp.hxx>
diff --git a/framework/source/classes/sfxhelperfunctions.cxx b/framework/source/fwe/classes/sfxhelperfunctions.cxx
index c6953b1ea2b9..ba3db729817d 100644
--- a/framework/source/classes/sfxhelperfunctions.cxx
+++ b/framework/source/fwe/classes/sfxhelperfunctions.cxx
@@ -28,9 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#ifndef __FRAMEWORK_CLASSES_SFXHELPERFUNCTIONS_CXX_
-#include <classes/sfxhelperfunctions.hxx>
-#endif
+#include <framework/sfxhelperfunctions.hxx>
#include <tools/diagnose_ex.h>
diff --git a/framework/source/dispatch/interaction.cxx b/framework/source/fwe/dispatch/interaction.cxx
index d1d14740956b..9b3d4f4c69d8 100644
--- a/framework/source/dispatch/interaction.cxx
+++ b/framework/source/fwe/dispatch/interaction.cxx
@@ -31,34 +31,51 @@
//_________________________________________________________________________________________________________________
// my own includes
//_________________________________________________________________________________________________________________
-#include <dispatch/interaction.hxx>
+#include <comphelper/interaction.hxx>
+#include <framework/interaction.hxx>
#include <general.h>
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
+using namespace ::com::sun::star;
-//_________________________________________________________________________________________________________________
-// includes of other projects
-//_________________________________________________________________________________________________________________
+namespace framework{
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
+/*-************************************************************************************************************//**
+ @short declaration of special continuation for filter selection
+ @descr Sometimes filter detection during loading document failed. Then we need a possibility
+ to ask user for his decision. These continuation transport selected filter by user to
+ code user of interaction.
-namespace framework{
+ @attention This implementation could be used one times only. We don't support a resetable continuation yet!
+ Why? Normaly interaction should show a filter selection dialog and ask user for his decision.
+ He can select any filter - then instances of these class will be called by handler ... or user
+ close dialog without any selection. Then another continuation should be slected by handler to
+ abort continuations ... Retrying isn't very usefull here ... I think.
-//_________________________________________________________________________________________________________________
-// non exported const
-//_________________________________________________________________________________________________________________
+ @implements XInteractionFilterSelect
-//_________________________________________________________________________________________________________________
-// non exported definitions
-//_________________________________________________________________________________________________________________
+ @base ImplInheritanceHelper1
+ ContinuationBase
+
+ @devstatus ready to use
+ @threadsafe no (used on once position only!)
+*//*-*************************************************************************************************************/
+class ContinuationFilterSelect : public comphelper::OInteraction< ::com::sun::star::document::XInteractionFilterSelect >
+{
+ // c++ interface
+ public:
+ ContinuationFilterSelect();
+
+ // uno interface
+ public:
+ virtual void SAL_CALL setFilter( const ::rtl::OUString& sFilter ) throw( ::com::sun::star::uno::RuntimeException );
+ virtual ::rtl::OUString SAL_CALL getFilter( ) throw( ::com::sun::star::uno::RuntimeException );
+
+ // member
+ private:
+ ::rtl::OUString m_sFilter;
+
+}; // class ContinuationFilterSelect
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
//---------------------------------------------------------------------------------------------------------
// initialize continuation with right start values
@@ -84,11 +101,29 @@ void SAL_CALL ContinuationFilterSelect::setFilter( const ::rtl::OUString& sFilte
return m_sFilter;
}
+class RequestFilterSelect_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
+{
+public:
+ RequestFilterSelect_Impl( const ::rtl::OUString& sURL );
+ sal_Bool isAbort () const;
+ ::rtl::OUString getFilter() const;
+
+public:
+ virtual ::com::sun::star::uno::Any SAL_CALL getRequest() throw( ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException );
+
+private:
+ ::com::sun::star::uno::Any m_aRequest ;
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations;
+ comphelper::OInteractionAbort* m_pAbort;
+ ContinuationFilterSelect* m_pFilter;
+};
+
//---------------------------------------------------------------------------------------------------------
// initialize instance with all neccessary informations
// We use it without any further checks on our member then ...!
//---------------------------------------------------------------------------------------------------------
-RequestFilterSelect::RequestFilterSelect( const ::rtl::OUString& sURL )
+RequestFilterSelect_Impl::RequestFilterSelect_Impl( const ::rtl::OUString& sURL )
{
::rtl::OUString temp;
css::uno::Reference< css::uno::XInterface > temp2;
@@ -97,7 +132,7 @@ RequestFilterSelect::RequestFilterSelect( const ::rtl::OUString& sURL )
sURL );
m_aRequest <<= aFilterRequest;
- m_pAbort = new ContinuationAbort ;
+ m_pAbort = new comphelper::OInteractionAbort;
m_pFilter = new ContinuationFilterSelect;
m_lContinuations.realloc( 2 );
@@ -109,16 +144,16 @@ RequestFilterSelect::RequestFilterSelect( const ::rtl::OUString& sURL )
// return abort state of interaction
// If it is true, return value of method "getFilter()" will be unspecified then!
//---------------------------------------------------------------------------------------------------------
-sal_Bool RequestFilterSelect::isAbort() const
+sal_Bool RequestFilterSelect_Impl::isAbort() const
{
- return m_pAbort->isSelected();
+ return m_pAbort->wasSelected();
}
//---------------------------------------------------------------------------------------------------------
// return user selected filter
// Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony!
//---------------------------------------------------------------------------------------------------------
-::rtl::OUString RequestFilterSelect::getFilter() const
+::rtl::OUString RequestFilterSelect_Impl::getFilter() const
{
return m_pFilter->getFilter();
}
@@ -127,7 +162,7 @@ sal_Bool RequestFilterSelect::isAbort() const
// handler call it to get type of request
// Is hard coded to "please select filter" here. see ctor for further informations.
//---------------------------------------------------------------------------------------------------------
-css::uno::Any SAL_CALL RequestFilterSelect::getRequest() throw( css::uno::RuntimeException )
+css::uno::Any SAL_CALL RequestFilterSelect_Impl::getRequest() throw( css::uno::RuntimeException )
{
return m_aRequest;
}
@@ -138,16 +173,102 @@ css::uno::Any SAL_CALL RequestFilterSelect::getRequest() throw( css::uno::Runtim
// After interaction we support read access on these continuations on our c++ interface to
// return user decision.
//---------------------------------------------------------------------------------------------------------
-css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > SAL_CALL RequestFilterSelect::getContinuations() throw( css::uno::RuntimeException )
+css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > SAL_CALL RequestFilterSelect_Impl::getContinuations() throw( css::uno::RuntimeException )
{
return m_lContinuations;
}
+
+RequestFilterSelect::RequestFilterSelect( const ::rtl::OUString& sURL )
+{
+ pImp = new RequestFilterSelect_Impl( sURL );
+ pImp->acquire();
+}
+
+RequestFilterSelect::~RequestFilterSelect()
+{
+ pImp->release();
+}
+
+
+//---------------------------------------------------------------------------------------------------------
+// return abort state of interaction
+// If it is true, return value of method "getFilter()" will be unspecified then!
+//---------------------------------------------------------------------------------------------------------
+sal_Bool RequestFilterSelect::isAbort() const
+{
+ return pImp->isAbort();
+}
+
+//---------------------------------------------------------------------------------------------------------
+// return user selected filter
+// Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony!
+//---------------------------------------------------------------------------------------------------------
+::rtl::OUString RequestFilterSelect::getFilter() const
+{
+ return pImp->getFilter();
+}
+
+uno::Reference < task::XInteractionRequest > RequestFilterSelect::GetRequest()
+{
+ return uno::Reference < task::XInteractionRequest > (pImp);
+}
+
+/*
+class RequestAmbigousFilter_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
+{
+public:
+ RequestAmbigousFilter_Impl( const ::rtl::OUString& sURL ,
+ const ::rtl::OUString& sSelectedFilter ,
+ const ::rtl::OUString& sDetectedFilter );
+ sal_Bool isAbort () const;
+ ::rtl::OUString getFilter() const;
+
+ virtual ::com::sun::star::uno::Any SAL_CALL getRequest () throw( ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException );
+
+ ::com::sun::star::uno::Any m_aRequest ;
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations;
+ ContinuationAbort* m_pAbort ;
+ ContinuationFilterSelect* m_pFilter ;
+};
+
+RequestAmbigousFilter::RequestAmbigousFilter( const ::rtl::OUString& sURL, const ::rtl::OUString& sSelectedFilter,
+ const ::rtl::OUString& sDetectedFilter )
+{
+ pImp = new RequestAmbigousFilter_Impl( sURL, sSelectedFilter, sDetectedFilter );
+ pImp->acquire();
+}
+
+RequestAmbigousFilter::~RequestAmbigousFilter()
+{
+ pImp->release();
+}
+
+sal_Bool RequestAmbigousFilter::isAbort() const
+{
+ return pImp->isAbort();
+}
+
+//---------------------------------------------------------------------------------------------------------
+// return user selected filter
+// Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony!
+//---------------------------------------------------------------------------------------------------------
+::rtl::OUString RequestAmbigousFilter::getFilter() const
+{
+ return pImp->getFilter();
+}
+
+uno::Reference < task::XInteractionRequest > RequestAmbigousFilter::GetRequest()
+{
+ return uno::Reference < task::XInteractionRequest > (pImp);
+}
+
//---------------------------------------------------------------------------------------------------------
// initialize instance with all neccessary informations
// We use it without any further checks on our member then ...!
//---------------------------------------------------------------------------------------------------------
-RequestAmbigousFilter::RequestAmbigousFilter( const ::rtl::OUString& sURL ,
+RequestAmbigousFilter_Impl::RequestAmbigousFilter_Impl( const ::rtl::OUString& sURL ,
const ::rtl::OUString& sSelectedFilter ,
const ::rtl::OUString& sDetectedFilter )
{
@@ -172,7 +293,7 @@ RequestAmbigousFilter::RequestAmbigousFilter( const ::rtl::OUString& sURL
// return abort state of interaction
// If it is true, return value of method "getFilter()" will be unspecified then!
//---------------------------------------------------------------------------------------------------------
-sal_Bool RequestAmbigousFilter::isAbort() const
+sal_Bool RequestAmbigousFilter_Impl::isAbort() const
{
return m_pAbort->isSelected();
}
@@ -181,7 +302,7 @@ sal_Bool RequestAmbigousFilter::isAbort() const
// return user selected filter
// Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony!
//---------------------------------------------------------------------------------------------------------
-::rtl::OUString RequestAmbigousFilter::getFilter() const
+::rtl::OUString RequestAmbigousFilter_Impl::getFilter() const
{
return m_pFilter->getFilter();
}
@@ -190,7 +311,7 @@ sal_Bool RequestAmbigousFilter::isAbort() const
// handler call it to get type of request
// Is hard coded to "please select filter" here. see ctor for further informations.
//---------------------------------------------------------------------------------------------------------
-css::uno::Any SAL_CALL RequestAmbigousFilter::getRequest() throw( css::uno::RuntimeException )
+css::uno::Any SAL_CALL RequestAmbigousFilter_Impl::getRequest() throw( css::uno::RuntimeException )
{
return m_aRequest;
}
@@ -201,9 +322,45 @@ css::uno::Any SAL_CALL RequestAmbigousFilter::getRequest() throw( css::uno::Runt
// After interaction we support read access on these continuations on our c++ interface to
// return user decision.
//---------------------------------------------------------------------------------------------------------
-css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > SAL_CALL RequestAmbigousFilter::getContinuations() throw( css::uno::RuntimeException )
+css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > SAL_CALL RequestAmbigousFilter_Impl::getContinuations() throw( css::uno::RuntimeException )
+{
+ return m_lContinuations;
+}
+*/
+
+class InteractionRequest_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
+{
+ uno::Any m_aRequest;
+ uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations;
+
+public:
+ InteractionRequest_Impl( const ::com::sun::star::uno::Any& aRequest,
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > lContinuations )
+ {
+ m_aRequest = aRequest;
+ m_lContinuations = lContinuations;
+ }
+
+ virtual uno::Any SAL_CALL getRequest() throw( uno::RuntimeException );
+ virtual uno::Sequence< uno::Reference< task::XInteractionContinuation > > SAL_CALL getContinuations()
+ throw( uno::RuntimeException );
+};
+
+uno::Any SAL_CALL InteractionRequest_Impl::getRequest() throw( uno::RuntimeException )
+{
+ return m_aRequest;
+}
+
+uno::Sequence< uno::Reference< task::XInteractionContinuation > > SAL_CALL InteractionRequest_Impl::getContinuations()
+ throw( uno::RuntimeException )
{
return m_lContinuations;
}
+uno::Reference < task::XInteractionRequest > InteractionRequest::CreateRequest(
+ const uno::Any& aRequest, const uno::Sequence< uno::Reference< task::XInteractionContinuation > > lContinuations )
+{
+ return new InteractionRequest_Impl( aRequest, lContinuations );
+}
+
} // namespace framework
diff --git a/framework/source/helper/acceleratorinfo.cxx b/framework/source/fwe/helper/acceleratorinfo.cxx
index 3db17cf1db89..5774bc35a253 100644
--- a/framework/source/helper/acceleratorinfo.cxx
+++ b/framework/source/fwe/helper/acceleratorinfo.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include <helper/acceleratorinfo.hxx>
+#include <framework/acceleratorinfo.hxx>
namespace framework
{
diff --git a/framework/source/helper/actiontriggerhelper.cxx b/framework/source/fwe/helper/actiontriggerhelper.cxx
index 7524150655eb..7c008687ec7d 100644
--- a/framework/source/helper/actiontriggerhelper.cxx
+++ b/framework/source/fwe/helper/actiontriggerhelper.cxx
@@ -27,11 +27,11 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include <helper/actiontriggerhelper.hxx>
+#include <framework/actiontriggerhelper.hxx>
#include <classes/actiontriggerseparatorpropertyset.hxx>
#include <classes/rootactiontriggercontainer.hxx>
#include <classes/imagewrapper.hxx>
-#include <classes/addonsoptions.hxx>
+#include <framework/addonsoptions.hxx>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/awt/XBitmap.hpp>
diff --git a/framework/source/helper/configimporter.cxx b/framework/source/fwe/helper/configimporter.cxx
index 6f2c402da1e8..0b7571416c9d 100644
--- a/framework/source/helper/configimporter.cxx
+++ b/framework/source/fwe/helper/configimporter.cxx
@@ -28,8 +28,8 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include <helper/configimporter.hxx>
-#include <xml/toolboxconfiguration.hxx>
+#include <framework/configimporter.hxx>
+#include <framework/toolboxconfiguration.hxx>
#include <com/sun/star/embed/ElementModes.hpp>
#include <rtl/ustrbuf.hxx>
diff --git a/framework/source/helper/imageproducer.cxx b/framework/source/fwe/helper/imageproducer.cxx
index 062ccc52bce1..ab13b2caef6c 100644
--- a/framework/source/helper/imageproducer.cxx
+++ b/framework/source/fwe/helper/imageproducer.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include <helper/imageproducer.hxx>
+#include <framework/imageproducer.hxx>
namespace framework
{
diff --git a/framework/source/helper/propertysetcontainer.cxx b/framework/source/fwe/helper/propertysetcontainer.cxx
index 0fe750f92fd9..0fe750f92fd9 100644
--- a/framework/source/helper/propertysetcontainer.cxx
+++ b/framework/source/fwe/helper/propertysetcontainer.cxx
diff --git a/framework/source/helper/titlehelper.cxx b/framework/source/fwe/helper/titlehelper.cxx
index 1ca884c27ca7..d9191da2be2e 100644
--- a/framework/source/helper/titlehelper.cxx
+++ b/framework/source/fwe/helper/titlehelper.cxx
@@ -31,7 +31,7 @@
//_______________________________________________
// includes
-#include <helper/titlehelper.hxx>
+#include <framework/titlehelper.hxx>
#include <services.h>
#include <properties.h>
diff --git a/framework/source/helper/uiconfigelementwrapperbase.cxx b/framework/source/fwe/helper/uiconfigelementwrapperbase.cxx
index 7c1a8c905588..7c1a8c905588 100644
--- a/framework/source/helper/uiconfigelementwrapperbase.cxx
+++ b/framework/source/fwe/helper/uiconfigelementwrapperbase.cxx
diff --git a/framework/source/helper/uielementwrapperbase.cxx b/framework/source/fwe/helper/uielementwrapperbase.cxx
index ef5d01eb85b8..ef5d01eb85b8 100644
--- a/framework/source/helper/uielementwrapperbase.cxx
+++ b/framework/source/fwe/helper/uielementwrapperbase.cxx
diff --git a/framework/source/interaction/preventduplicateinteraction.cxx b/framework/source/fwe/interaction/preventduplicateinteraction.cxx
index 6d0185a48080..7bc2201a3a27 100644
--- a/framework/source/interaction/preventduplicateinteraction.cxx
+++ b/framework/source/fwe/interaction/preventduplicateinteraction.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include "interaction/preventduplicateinteraction.hxx"
+#include "framework/preventduplicateinteraction.hxx"
//_________________________________________________________________________________________________________________
// my own includes
diff --git a/framework/source/xml/eventsconfiguration.cxx b/framework/source/fwe/xml/eventsconfiguration.cxx
index 75a024eb8405..873682f60345 100644
--- a/framework/source/xml/eventsconfiguration.cxx
+++ b/framework/source/fwe/xml/eventsconfiguration.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include <xml/eventsconfiguration.hxx>
+#include <framework/eventsconfiguration.hxx>
#include <xml/eventsdocumenthandler.hxx>
#include <services.h>
diff --git a/framework/source/xml/eventsdocumenthandler.cxx b/framework/source/fwe/xml/eventsdocumenthandler.cxx
index a1cc33b02dad..ad21937fcc5d 100644
--- a/framework/source/xml/eventsdocumenthandler.cxx
+++ b/framework/source/fwe/xml/eventsdocumenthandler.cxx
@@ -28,6 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
+#include <framework/fwedllapi.h>
#include <stdio.h>
//_________________________________________________________________________________________________________________
diff --git a/framework/source/xml/imagesconfiguration.cxx b/framework/source/fwe/xml/imagesconfiguration.cxx
index 75517d2766dd..d561a76d5995 100644
--- a/framework/source/xml/imagesconfiguration.cxx
+++ b/framework/source/fwe/xml/imagesconfiguration.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include <xml/imagesconfiguration.hxx>
+#include <framework/imagesconfiguration.hxx>
#include <services.h>
#ifndef __FRAMEWORK_CLASSES_IMAGESDOCUMENTHANDLER_HXX_
diff --git a/framework/source/xml/imagesdocumenthandler.cxx b/framework/source/fwe/xml/imagesdocumenthandler.cxx
index cdf20958332a..cdf20958332a 100644
--- a/framework/source/xml/imagesdocumenthandler.cxx
+++ b/framework/source/fwe/xml/imagesdocumenthandler.cxx
diff --git a/framework/source/xml/menuconfiguration.cxx b/framework/source/fwe/xml/menuconfiguration.cxx
index 5e5370d78d23..8a6d2cd1bafd 100644
--- a/framework/source/xml/menuconfiguration.cxx
+++ b/framework/source/fwe/xml/menuconfiguration.cxx
@@ -31,12 +31,12 @@
//_________________________________________________________________________________________________________________
// my own includes
//_________________________________________________________________________________________________________________
-#include <xml/menuconfiguration.hxx>
+#include <framework/menuconfiguration.hxx>
#ifndef __FRAMEWORK_CLASSES_BMKMENU_HXX_
-#include <classes/bmkmenu.hxx>
+#include <framework/bmkmenu.hxx>
#endif
-#include <classes/addonmenu.hxx>
+#include <framework/addonmenu.hxx>
#include <xml/menudocumenthandler.hxx>
#include <xml/saxnamespacefilter.hxx>
#include <services.h>
diff --git a/framework/source/xml/menudocumenthandler.cxx b/framework/source/fwe/xml/menudocumenthandler.cxx
index 7aa16761f75c..26ec3bf09372 100644
--- a/framework/source/xml/menudocumenthandler.cxx
+++ b/framework/source/fwe/xml/menudocumenthandler.cxx
@@ -34,8 +34,8 @@
// my own includes
//_________________________________________________________________________________________________________________
#include <xml/menudocumenthandler.hxx>
-#include <xml/menuconfiguration.hxx>
-#include <classes/addonmenu.hxx>
+#include <framework/menuconfiguration.hxx>
+#include <framework/addonmenu.hxx>
//_________________________________________________________________________________________________________________
// interface includes
diff --git a/framework/source/xml/saxnamespacefilter.cxx b/framework/source/fwe/xml/saxnamespacefilter.cxx
index a92c58547e06..a92c58547e06 100644
--- a/framework/source/xml/saxnamespacefilter.cxx
+++ b/framework/source/fwe/xml/saxnamespacefilter.cxx
diff --git a/framework/source/xml/statusbarconfiguration.cxx b/framework/source/fwe/xml/statusbarconfiguration.cxx
index 2b9d3e5baa58..0d79ef8fd461 100644
--- a/framework/source/xml/statusbarconfiguration.cxx
+++ b/framework/source/fwe/xml/statusbarconfiguration.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include <xml/statusbarconfiguration.hxx>
+#include <framework/statusbarconfiguration.hxx>
#include <xml/statusbardocumenthandler.hxx>
#include <xml/saxnamespacefilter.hxx>
#include <services.h>
diff --git a/framework/source/xml/statusbardocumenthandler.cxx b/framework/source/fwe/xml/statusbardocumenthandler.cxx
index 3d8d4bfc7c9a..3d8d4bfc7c9a 100644
--- a/framework/source/xml/statusbardocumenthandler.cxx
+++ b/framework/source/fwe/xml/statusbardocumenthandler.cxx
diff --git a/framework/source/xml/toolboxconfiguration.cxx b/framework/source/fwe/xml/toolboxconfiguration.cxx
index 9d1c91aa6849..994354a7e1a8 100644
--- a/framework/source/xml/toolboxconfiguration.cxx
+++ b/framework/source/fwe/xml/toolboxconfiguration.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-#include <xml/toolboxconfiguration.hxx>
+#include <framework/toolboxconfiguration.hxx>
#include <xml/toolboxdocumenthandler.hxx>
#include <xml/saxnamespacefilter.hxx>
#include <services.h>
diff --git a/framework/source/xml/toolboxdocumenthandler.cxx b/framework/source/fwe/xml/toolboxdocumenthandler.cxx
index b41f50339343..b41f50339343 100644
--- a/framework/source/xml/toolboxdocumenthandler.cxx
+++ b/framework/source/fwe/xml/toolboxdocumenthandler.cxx
diff --git a/framework/source/fwe/xml/toolboxlayoutdocumenthandler.cxx b/framework/source/fwe/xml/toolboxlayoutdocumenthandler.cxx
new file mode 100644
index 000000000000..645750dc3f51
--- /dev/null
+++ b/framework/source/fwe/xml/toolboxlayoutdocumenthandler.cxx
@@ -0,0 +1,58 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_framework.hxx"
+
+#include <stdio.h>
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include <threadhelp/resetableguard.hxx>
+#include <xml/toolboxlayoutdocumenthandler.hxx>
+#include <macros/debug.hxx>
+#include <xml/toolboxconfigurationdefines.hxx>
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#ifndef __COM_SUN_STAR_XML_SAX_XEXTENDEDDOCUMENTHANDLER_HPP_
+#include <com/sun/star/xml/sax/XExtendedDocumentHandler.hpp>
+#endif
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+#include <vcl/svapp.hxx>
+#include <vcl/toolbox.hxx>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
diff --git a/framework/source/xml/xmlnamespaces.cxx b/framework/source/fwe/xml/xmlnamespaces.cxx
index fbaf51613d15..fbaf51613d15 100644
--- a/framework/source/xml/xmlnamespaces.cxx
+++ b/framework/source/fwe/xml/xmlnamespaces.cxx
diff --git a/framework/source/classes/converter.cxx b/framework/source/fwi/classes/converter.cxx
index d70b099c9e03..d70b099c9e03 100644
--- a/framework/source/classes/converter.cxx
+++ b/framework/source/fwi/classes/converter.cxx
diff --git a/framework/source/classes/propertysethelper.cxx b/framework/source/fwi/classes/propertysethelper.cxx
index 2e41106a9ceb..2e41106a9ceb 100644
--- a/framework/source/classes/propertysethelper.cxx
+++ b/framework/source/fwi/classes/propertysethelper.cxx
diff --git a/framework/source/classes/protocolhandlercache.cxx b/framework/source/fwi/classes/protocolhandlercache.cxx
index 266100ce4f43..89412e9c6c65 100644
--- a/framework/source/classes/protocolhandlercache.cxx
+++ b/framework/source/fwi/classes/protocolhandlercache.cxx
@@ -332,7 +332,7 @@ void HandlerCFGAccess::read( HandlerHash** ppHandler ,
(**ppPattern)[*pItem] = lNames[nSource];
}
- // �nsert the handler info into the normal handler cache
+ // ï¿œnsert the handler info into the normal handler cache
(**ppHandler)[lNames[nSource]] = aHandler;
++nSource;
}
diff --git a/framework/source/helper/mischelper.cxx b/framework/source/fwi/helper/mischelper.cxx
index c7155edca7c6..641200069dfc 100644
--- a/framework/source/helper/mischelper.cxx
+++ b/framework/source/fwi/helper/mischelper.cxx
@@ -127,14 +127,17 @@ uno::Reference< linguistic2::XLanguageGuessing > LanguageGuessingHelper::GetGues
{
rtl::OUString aStr;
Sequence< PropertyValue > aPropSeq;
- if ( _xUICommandLabels->getByName( aCmdURL ) >>= aPropSeq )
+ if( _xUICommandLabels->hasByName( aCmdURL ) )
{
- for ( sal_Int32 i = 0; i < aPropSeq.getLength(); i++ )
+ if ( _xUICommandLabels->getByName( aCmdURL ) >>= aPropSeq )
{
- if ( aPropSeq[i].Name.equalsAscii( _pName/*"Label"*/ ))
+ for ( sal_Int32 i = 0; i < aPropSeq.getLength(); i++ )
{
- aPropSeq[i].Value >>= aStr;
- break;
+ if ( aPropSeq[i].Name.equalsAscii( _pName/*"Label"*/ ))
+ {
+ aPropSeq[i].Value >>= aStr;
+ break;
+ }
}
}
}
diff --git a/framework/source/helper/networkdomain.cxx b/framework/source/fwi/helper/networkdomain.cxx
index fcc966402944..fcc966402944 100644
--- a/framework/source/helper/networkdomain.cxx
+++ b/framework/source/fwi/helper/networkdomain.cxx
diff --git a/framework/source/helper/shareablemutex.cxx b/framework/source/fwi/helper/shareablemutex.cxx
index b173c6c34a4f..b173c6c34a4f 100644
--- a/framework/source/helper/shareablemutex.cxx
+++ b/framework/source/fwi/helper/shareablemutex.cxx
diff --git a/framework/source/jobs/configaccess.cxx b/framework/source/fwi/jobs/configaccess.cxx
index 95226268ce2b..95226268ce2b 100644
--- a/framework/source/jobs/configaccess.cxx
+++ b/framework/source/fwi/jobs/configaccess.cxx
diff --git a/framework/source/jobs/jobconst.cxx b/framework/source/fwi/jobs/jobconst.cxx
index b71a68342a69..b71a68342a69 100644
--- a/framework/source/jobs/jobconst.cxx
+++ b/framework/source/fwi/jobs/jobconst.cxx
diff --git a/framework/source/threadhelp/lockhelper.cxx b/framework/source/fwi/threadhelp/lockhelper.cxx
index 4c5ebb7a5d91..4c5ebb7a5d91 100644
--- a/framework/source/threadhelp/lockhelper.cxx
+++ b/framework/source/fwi/threadhelp/lockhelper.cxx
diff --git a/framework/source/threadhelp/transactionmanager.cxx b/framework/source/fwi/threadhelp/transactionmanager.cxx
index a42c871c176e..3523ddbbd128 100644
--- a/framework/source/threadhelp/transactionmanager.cxx
+++ b/framework/source/fwi/threadhelp/transactionmanager.cxx
@@ -36,6 +36,7 @@
#include <macros/debug.hxx>
#include <macros/generic.hxx>
+#include <fwidllapi.h>
//_________________________________________________________________________________________________________________
// interface includes
@@ -180,7 +181,7 @@ void TransactionManager::setWorkingMode( EWorkingMode eMode )
// Make member access threadsafe!
ResetableGuard aGuard( m_aMutex );
- // Check working mode again .. because anoz�ther instance could be faster.
+ // Check working mode again .. because anozï¿œther instance could be faster.
// (It's possible to set this guard at first of this method too!)
if( m_aTransactionManager.getWorkingMode() == E_INIT )
{
diff --git a/framework/source/uielement/constitemcontainer.cxx b/framework/source/fwi/uielement/constitemcontainer.cxx
index 9ef9a72e5093..9ef9a72e5093 100644
--- a/framework/source/uielement/constitemcontainer.cxx
+++ b/framework/source/fwi/uielement/constitemcontainer.cxx
diff --git a/framework/source/uielement/itemcontainer.cxx b/framework/source/fwi/uielement/itemcontainer.cxx
index 943a5abe2f03..943a5abe2f03 100644
--- a/framework/source/uielement/itemcontainer.cxx
+++ b/framework/source/fwi/uielement/itemcontainer.cxx
diff --git a/framework/source/uielement/rootitemcontainer.cxx b/framework/source/fwi/uielement/rootitemcontainer.cxx
index 02a040a05bc1..02a040a05bc1 100644
--- a/framework/source/uielement/rootitemcontainer.cxx
+++ b/framework/source/fwi/uielement/rootitemcontainer.cxx
diff --git a/framework/source/helper/dockingareadefaultacceptor.cxx b/framework/source/helper/dockingareadefaultacceptor.cxx
index 91cfc451fadd..2b199c03ba83 100644..100755
--- a/framework/source/helper/dockingareadefaultacceptor.cxx
+++ b/framework/source/helper/dockingareadefaultacceptor.cxx
@@ -76,7 +76,7 @@ using namespace ::rtl ;
//*****************************************************************************************************************
// constructor
//*****************************************************************************************************************
-DockingAreaDefaultAcceptor::DockingAreaDefaultAcceptor( const Reference< XFrame >& xOwner )
+DockingAreaDefaultAcceptor::DockingAreaDefaultAcceptor( const css::uno::Reference< XFrame >& xOwner )
// Init baseclasses first
: ThreadHelpBase ( &Application::GetSolarMutex() )
// Init member
@@ -100,8 +100,8 @@ css::uno::Reference< css::awt::XWindow > SAL_CALL DockingAreaDefaultAcceptor::ge
ResetableGuard aGuard( m_aLock );
// Try to "lock" the frame for access to taskscontainer.
- Reference< XFrame > xFrame( m_xOwner.get(), UNO_QUERY );
- Reference< css::awt::XWindow > xContainerWindow( xFrame->getContainerWindow() );
+ css::uno::Reference< XFrame > xFrame( m_xOwner.get(), UNO_QUERY );
+ css::uno::Reference< css::awt::XWindow > xContainerWindow( xFrame->getContainerWindow() );
return xContainerWindow;
}
@@ -112,13 +112,13 @@ sal_Bool SAL_CALL DockingAreaDefaultAcceptor::requestDockingAreaSpace( const css
ResetableGuard aGuard( m_aLock );
// Try to "lock" the frame for access to taskscontainer.
- Reference< XFrame > xFrame( m_xOwner.get(), UNO_QUERY );
+ css::uno::Reference< XFrame > xFrame( m_xOwner.get(), UNO_QUERY );
aGuard.unlock();
if ( xFrame.is() == sal_True )
{
- Reference< css::awt::XWindow > xContainerWindow( xFrame->getContainerWindow() );
- Reference< css::awt::XWindow > xComponentWindow( xFrame->getComponentWindow() );
+ css::uno::Reference< css::awt::XWindow > xContainerWindow( xFrame->getContainerWindow() );
+ css::uno::Reference< css::awt::XWindow > xComponentWindow( xFrame->getComponentWindow() );
if (( xContainerWindow.is() == sal_True ) &&
( xComponentWindow.is() == sal_True ) )
@@ -152,11 +152,11 @@ void SAL_CALL DockingAreaDefaultAcceptor::setDockingAreaSpace( const css::awt::R
ResetableGuard aGuard( m_aLock );
// Try to "lock" the frame for access to taskscontainer.
- Reference< XFrame > xFrame( m_xOwner.get(), UNO_QUERY );
+ css::uno::Reference< XFrame > xFrame( m_xOwner.get(), UNO_QUERY );
if ( xFrame.is() == sal_True )
{
- Reference< css::awt::XWindow > xContainerWindow( xFrame->getContainerWindow() );
- Reference< css::awt::XWindow > xComponentWindow( xFrame->getComponentWindow() );
+ css::uno::Reference< css::awt::XWindow > xContainerWindow( xFrame->getContainerWindow() );
+ css::uno::Reference< css::awt::XWindow > xComponentWindow( xFrame->getComponentWindow() );
if (( xContainerWindow.is() == sal_True ) &&
( xComponentWindow.is() == sal_True ) )
diff --git a/framework/source/helper/makefile.mk b/framework/source/helper/makefile.mk
deleted file mode 100644
index ed54c381160c..000000000000
--- a/framework/source/helper/makefile.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_helper
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- defines ------------------------------------------------------
-
-CDEFS+=-DCOMPMOD_NAMESPACE=framework
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= $(SLO)$/ocomponentaccess.obj \
- $(SLO)$/ocomponentenumeration.obj \
- $(SLO)$/oframes.obj \
- $(SLO)$/statusindicatorfactory.obj \
- $(SLO)$/statusindicator.obj \
- $(SLO)$/imageproducer.obj \
- $(SLO)$/propertysetcontainer.obj \
- $(SLO)$/actiontriggerhelper.obj \
- $(SLO)$/persistentwindowstate.obj \
- $(SLO)$/networkdomain.obj \
- $(SLO)$/acceleratorinfo.obj \
- $(SLO)$/uielementwrapperbase.obj \
- $(SLO)$/dockingareadefaultacceptor.obj \
- $(SLO)$/uiconfigelementwrapperbase.obj \
- $(SLO)$/shareablemutex.obj \
- $(SLO)$/vclstatusindicator.obj \
- $(SLO)$/wakeupthread.obj \
- $(SLO)$/configimporter.obj \
- $(SLO)$/tagwindowasmodified.obj \
- $(SLO)$/titlebarupdate.obj \
- $(SLO)$/titlehelper.obj \
- $(SLO)$/mischelper.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/framework/source/helper/ocomponentaccess.cxx b/framework/source/helper/ocomponentaccess.cxx
index ce25ac0796fc..4e64a38d6ca3 100644..100755
--- a/framework/source/helper/ocomponentaccess.cxx
+++ b/framework/source/helper/ocomponentaccess.cxx
@@ -77,7 +77,7 @@ using namespace ::rtl ;
//*****************************************************************************************************************
// constructor
//*****************************************************************************************************************
-OComponentAccess::OComponentAccess( const Reference< XDesktop >& xOwner )
+OComponentAccess::OComponentAccess( const css::uno::Reference< XDesktop >& xOwner )
// Init baseclasses first
: ThreadHelpBase ( &Application::GetSolarMutex() )
// Init member
@@ -97,27 +97,27 @@ OComponentAccess::~OComponentAccess()
//*****************************************************************************************************************
// XEnumerationAccess
//*****************************************************************************************************************
-Reference< XEnumeration > SAL_CALL OComponentAccess::createEnumeration() throw( RuntimeException )
+css::uno::Reference< XEnumeration > SAL_CALL OComponentAccess::createEnumeration() throw( RuntimeException )
{
// Ready for multithreading
ResetableGuard aGuard( m_aLock );
// Set default return value, if method failed.
// If no desktop exist and there is no task container - return an empty enumeration!
- Reference< XEnumeration > xReturn = Reference< XEnumeration >();
+ css::uno::Reference< XEnumeration > xReturn = css::uno::Reference< XEnumeration >();
// Try to "lock" the desktop for access to task container.
- Reference< XInterface > xLock = m_xOwner.get();
+ css::uno::Reference< XInterface > xLock = m_xOwner.get();
if ( xLock.is() == sal_True )
{
// Desktop exist => pointer to task container must be valid.
// Initialize a new enumeration ... if some tasks and his components exist!
// (OTasksEnumeration will make an assert, if we initialize the new instance without valid values!)
- Sequence< Reference< XComponent > > seqComponents;
- impl_collectAllChildComponents( Reference< XFramesSupplier >( xLock, UNO_QUERY ), seqComponents );
+ Sequence< css::uno::Reference< XComponent > > seqComponents;
+ impl_collectAllChildComponents( css::uno::Reference< XFramesSupplier >( xLock, UNO_QUERY ), seqComponents );
OComponentEnumeration* pEnumeration = new OComponentEnumeration( seqComponents );
- xReturn = Reference< XEnumeration >( (OWeakObject*)pEnumeration, UNO_QUERY );
+ xReturn = css::uno::Reference< XEnumeration >( (OWeakObject*)pEnumeration, UNO_QUERY );
}
// Return result of this operation.
@@ -131,7 +131,7 @@ Type SAL_CALL OComponentAccess::getElementType() throw( RuntimeException )
{
// Elements in list an enumeration are components!
// Return the uno-type of XComponent.
- return ::getCppuType((const Reference< XComponent >*)NULL);
+ return ::getCppuType((const css::uno::Reference< XComponent >*)NULL);
}
//*****************************************************************************************************************
@@ -146,7 +146,7 @@ sal_Bool SAL_CALL OComponentAccess::hasElements() throw( RuntimeException )
sal_Bool bReturn = sal_False;
// Try to "lock" the desktop for access to task container.
- Reference< XFramesSupplier > xLock( m_xOwner.get(), UNO_QUERY );
+ css::uno::Reference< XFramesSupplier > xLock( m_xOwner.get(), UNO_QUERY );
if ( xLock.is() == sal_True )
{
// Ask container of owner for existing elements.
@@ -160,8 +160,8 @@ sal_Bool SAL_CALL OComponentAccess::hasElements() throw( RuntimeException )
//*****************************************************************************************************************
// private method
//*****************************************************************************************************************
-void OComponentAccess::impl_collectAllChildComponents( const Reference< XFramesSupplier >& xNode ,
- Sequence< Reference< XComponent > >& seqComponents )
+void OComponentAccess::impl_collectAllChildComponents( const css::uno::Reference< XFramesSupplier >& xNode ,
+ Sequence< css::uno::Reference< XComponent > >& seqComponents )
{
// If valid node was given ...
if( xNode.is() == sal_True )
@@ -173,13 +173,13 @@ void OComponentAccess::impl_collectAllChildComponents( const Reference< XFram
sal_Int32 nComponentCount = seqComponents.getLength();
- const Reference< XFrames > xContainer = xNode->getFrames();
- const Sequence< Reference< XFrame > > seqFrames = xContainer->queryFrames( FrameSearchFlag::CHILDREN );
+ const css::uno::Reference< XFrames > xContainer = xNode->getFrames();
+ const Sequence< css::uno::Reference< XFrame > > seqFrames = xContainer->queryFrames( FrameSearchFlag::CHILDREN );
const sal_Int32 nFrameCount = seqFrames.getLength();
for( sal_Int32 nFrame=0; nFrame<nFrameCount; ++nFrame )
{
- Reference< XComponent > xComponent = impl_getFrameComponent( seqFrames[nFrame] );
+ css::uno::Reference< XComponent > xComponent = impl_getFrameComponent( seqFrames[nFrame] );
if( xComponent.is() == sal_True )
{
nComponentCount++;
@@ -194,30 +194,30 @@ void OComponentAccess::impl_collectAllChildComponents( const Reference< XFram
//*****************************************************************************************************************
// private method
//*****************************************************************************************************************
-Reference< XComponent > OComponentAccess::impl_getFrameComponent( const Reference< XFrame >& xFrame ) const
+css::uno::Reference< XComponent > OComponentAccess::impl_getFrameComponent( const css::uno::Reference< XFrame >& xFrame ) const
{
// Set default return value, if method failed.
- Reference< XComponent > xComponent = Reference< XComponent >();
+ css::uno::Reference< XComponent > xComponent = css::uno::Reference< XComponent >();
// Does no controller exists?
- Reference< XController > xController = xFrame->getController();
+ css::uno::Reference< XController > xController = xFrame->getController();
if ( xController.is() == sal_False )
{
// Controller not exist - use the VCL-component.
- xComponent = Reference< XComponent >( xFrame->getComponentWindow(), UNO_QUERY );
+ xComponent = css::uno::Reference< XComponent >( xFrame->getComponentWindow(), UNO_QUERY );
}
else
{
// Does no model exists?
- Reference< XModel > xModel( xController->getModel(), UNO_QUERY );
+ css::uno::Reference< XModel > xModel( xController->getModel(), UNO_QUERY );
if ( xModel.is() == sal_True )
{
// Model exist - use the model as component.
- xComponent = Reference< XComponent >( xModel, UNO_QUERY );
+ xComponent = css::uno::Reference< XComponent >( xModel, UNO_QUERY );
}
else
{
// Model not exist - use the controller as component.
- xComponent = Reference< XComponent >( xController, UNO_QUERY );
+ xComponent = css::uno::Reference< XComponent >( xController, UNO_QUERY );
}
}
@@ -241,7 +241,7 @@ Reference< XComponent > OComponentAccess::impl_getFrameComponent( const Referenc
#ifdef ENABLE_ASSERTIONS
//*****************************************************************************************************************
-sal_Bool OComponentAccess::impldbg_checkParameter_OComponentAccessCtor( const Reference< XDesktop >& xOwner )
+sal_Bool OComponentAccess::impldbg_checkParameter_OComponentAccessCtor( const css::uno::Reference< XDesktop >& xOwner )
{
// Set default return value.
sal_Bool bOK = sal_True;
diff --git a/framework/source/helper/ocomponentenumeration.cxx b/framework/source/helper/ocomponentenumeration.cxx
index 68237179d70d..9df43625a5a8 100644..100755
--- a/framework/source/helper/ocomponentenumeration.cxx
+++ b/framework/source/helper/ocomponentenumeration.cxx
@@ -74,7 +74,7 @@ using namespace ::rtl ;
//*****************************************************************************************************************
// constructor
//*****************************************************************************************************************
-OComponentEnumeration::OComponentEnumeration( const Sequence< Reference< XComponent > >& seqComponents )
+OComponentEnumeration::OComponentEnumeration( const Sequence< css::uno::Reference< XComponent > >& seqComponents )
// Init baseclasses first
// Attention:
// Don't change order of initialization!
@@ -200,7 +200,7 @@ void OComponentEnumeration::impl_resetObject()
//*****************************************************************************************************************
// An empty list is allowed ... hasMoreElements() will return false then!
-sal_Bool OComponentEnumeration::impldbg_checkParameter_OComponentEnumerationCtor( const Sequence< Reference< XComponent > >& seqComponents )
+sal_Bool OComponentEnumeration::impldbg_checkParameter_OComponentEnumerationCtor( const Sequence< css::uno::Reference< XComponent > >& seqComponents )
{
// Set default return value.
sal_Bool bOK = sal_True;
diff --git a/framework/source/helper/oframes.cxx b/framework/source/helper/oframes.cxx
index 62f4b30de749..3034f7438cf6 100644..100755
--- a/framework/source/helper/oframes.cxx
+++ b/framework/source/helper/oframes.cxx
@@ -79,8 +79,8 @@ using namespace ::vos ;
//*****************************************************************************************************************
// constructor
//*****************************************************************************************************************
-OFrames::OFrames( const Reference< XMultiServiceFactory >& xFactory ,
- const Reference< XFrame >& xOwner ,
+OFrames::OFrames( const css::uno::Reference< XMultiServiceFactory >& xFactory ,
+ const css::uno::Reference< XFrame >& xOwner ,
FrameContainer* pFrameContainer )
// Init baseclasses first
: ThreadHelpBase ( &Application::GetSolarMutex() )
@@ -107,7 +107,7 @@ OFrames::~OFrames()
//*****************************************************************************************************************
// XFrames
//*****************************************************************************************************************
-void SAL_CALL OFrames::append( const Reference< XFrame >& xFrame ) throw( RuntimeException )
+void SAL_CALL OFrames::append( const css::uno::Reference< XFrame >& xFrame ) throw( RuntimeException )
{
// Ready for multithreading
ResetableGuard aGuard( m_aLock );
@@ -118,7 +118,7 @@ void SAL_CALL OFrames::append( const Reference< XFrame >& xFrame ) throw( Runtim
// Do the follow only, if owner instance valid!
// Lock owner for follow operations - make a "hard reference"!
- Reference< XFramesSupplier > xOwner( m_xOwner.get(), UNO_QUERY );
+ css::uno::Reference< XFramesSupplier > xOwner( m_xOwner.get(), UNO_QUERY );
if ( xOwner.is() == sal_True )
{
// Append frame to the end of the container ...
@@ -133,7 +133,7 @@ void SAL_CALL OFrames::append( const Reference< XFrame >& xFrame ) throw( Runtim
//*****************************************************************************************************************
// XFrames
//*****************************************************************************************************************
-void SAL_CALL OFrames::remove( const Reference< XFrame >& xFrame ) throw( RuntimeException )
+void SAL_CALL OFrames::remove( const css::uno::Reference< XFrame >& xFrame ) throw( RuntimeException )
{
// Ready for multithreading
ResetableGuard aGuard( m_aLock );
@@ -144,7 +144,7 @@ void SAL_CALL OFrames::remove( const Reference< XFrame >& xFrame ) throw( Runtim
// Do the follow only, if owner instance valid!
// Lock owner for follow operations - make a "hard reference"!
- Reference< XFramesSupplier > xOwner( m_xOwner.get(), UNO_QUERY );
+ css::uno::Reference< XFramesSupplier > xOwner( m_xOwner.get(), UNO_QUERY );
if ( xOwner.is() == sal_True )
{
// Search frame and remove it from container ...
@@ -160,7 +160,7 @@ void SAL_CALL OFrames::remove( const Reference< XFrame >& xFrame ) throw( Runtim
//*****************************************************************************************************************
// XFrames
//*****************************************************************************************************************
-Sequence< Reference< XFrame > > SAL_CALL OFrames::queryFrames( sal_Int32 nSearchFlags ) throw( RuntimeException )
+Sequence< css::uno::Reference< XFrame > > SAL_CALL OFrames::queryFrames( sal_Int32 nSearchFlags ) throw( RuntimeException )
{
// Ready for multithreading
ResetableGuard aGuard( m_aLock );
@@ -170,11 +170,11 @@ Sequence< Reference< XFrame > > SAL_CALL OFrames::queryFrames( sal_Int32 nSearch
LOG_ASSERT( impldbg_checkParameter_queryFrames( nSearchFlags ), "OFrames::queryFrames()\nInvalid parameter detected!\n" )
// Set default return value. (empty sequence)
- Sequence< Reference< XFrame > > seqFrames;
+ Sequence< css::uno::Reference< XFrame > > seqFrames;
// Do the follow only, if owner instance valid.
// Lock owner for follow operations - make a "hard reference"!
- Reference< XFrame > xOwner( m_xOwner.get(), UNO_QUERY );
+ css::uno::Reference< XFrame > xOwner( m_xOwner.get(), UNO_QUERY );
if ( xOwner.is() == sal_True )
{
// Work only, if search was not started here ...!
@@ -203,10 +203,10 @@ Sequence< Reference< XFrame > > SAL_CALL OFrames::queryFrames( sal_Int32 nSearch
// Add parent to list ... if any exist!
if( nSearchFlags & FrameSearchFlag::PARENT )
{
- Reference< XFrame > xParent( xOwner->getCreator(), UNO_QUERY );
+ css::uno::Reference< XFrame > xParent( xOwner->getCreator(), UNO_QUERY );
if( xParent.is() == sal_True )
{
- Sequence< Reference< XFrame > > seqParent( 1 );
+ Sequence< css::uno::Reference< XFrame > > seqParent( 1 );
seqParent[0] = xParent;
impl_appendSequence( seqFrames, seqParent );
}
@@ -216,7 +216,7 @@ Sequence< Reference< XFrame > > SAL_CALL OFrames::queryFrames( sal_Int32 nSearch
// Add owner to list if SELF is searched.
if( nSearchFlags & FrameSearchFlag::SELF )
{
- Sequence< Reference< XFrame > > seqSelf( 1 );
+ Sequence< css::uno::Reference< XFrame > > seqSelf( 1 );
seqSelf[0] = xOwner;
impl_appendSequence( seqFrames, seqSelf );
}
@@ -229,7 +229,7 @@ Sequence< Reference< XFrame > > SAL_CALL OFrames::queryFrames( sal_Int32 nSearch
// Protect this instance against recursive calls from parents.
m_bRecursiveSearchProtection = sal_True;
// Ask parent of my owner for frames and append results to return list.
- Reference< XFramesSupplier > xParent( xOwner->getCreator(), UNO_QUERY );
+ css::uno::Reference< XFramesSupplier > xParent( xOwner->getCreator(), UNO_QUERY );
// If a parent exist ...
if ( xParent.is() == sal_True )
{
@@ -254,7 +254,7 @@ Sequence< Reference< XFrame > > SAL_CALL OFrames::queryFrames( sal_Int32 nSearch
{
// We don't must control this conversion.
// We have done this at append()!
- Reference< XFramesSupplier > xItem( (*m_pFrameContainer)[nIndex], UNO_QUERY );
+ css::uno::Reference< XFramesSupplier > xItem( (*m_pFrameContainer)[nIndex], UNO_QUERY );
impl_appendSequence( seqFrames, xItem->getFrames()->queryFrames( nChildSearchFlags ) );
}
}
@@ -280,7 +280,7 @@ sal_Int32 SAL_CALL OFrames::getCount() throw( RuntimeException )
// Do the follow only, if owner instance valid.
// Lock owner for follow operations - make a "hard reference"!
- Reference< XFrame > xOwner( m_xOwner.get(), UNO_QUERY );
+ css::uno::Reference< XFrame > xOwner( m_xOwner.get(), UNO_QUERY );
if ( xOwner.is() == sal_True )
{
// Set CURRENT size of container for return.
@@ -311,7 +311,7 @@ Any SAL_CALL OFrames::getByIndex( sal_Int32 nIndex ) throw( IndexOutOfBoundsExce
// Do the follow only, if owner instance valid.
// Lock owner for follow operations - make a "hard reference"!
- Reference< XFrame > xOwner( m_xOwner.get(), UNO_QUERY );
+ css::uno::Reference< XFrame > xOwner( m_xOwner.get(), UNO_QUERY );
if ( xOwner.is() == sal_True )
{
// Get element form container.
@@ -329,7 +329,7 @@ Any SAL_CALL OFrames::getByIndex( sal_Int32 nIndex ) throw( IndexOutOfBoundsExce
Type SAL_CALL OFrames::getElementType() throw( RuntimeException )
{
// This "container" support XFrame-interfaces only!
- return ::getCppuType( (const Reference< XFrame >*)NULL );
+ return ::getCppuType( (const css::uno::Reference< XFrame >*)NULL );
}
//*****************************************************************************************************************
@@ -344,7 +344,7 @@ sal_Bool SAL_CALL OFrames::hasElements() throw( RuntimeException )
sal_Bool bHasElements = sal_False;
// Do the follow only, if owner instance valid.
// Lock owner for follow operations - make a "hard reference"!
- Reference< XFrame > xOwner( m_xOwner.get(), UNO_QUERY );
+ css::uno::Reference< XFrame > xOwner( m_xOwner.get(), UNO_QUERY );
if ( xOwner.is() == sal_True )
{
// If some elements exist ...
@@ -378,18 +378,18 @@ void OFrames::impl_resetObject()
//*****************************************************************************************************************
// private method
//*****************************************************************************************************************
-void OFrames::impl_appendSequence( Sequence< Reference< XFrame > >& seqDestination ,
- const Sequence< Reference< XFrame > >& seqSource )
+void OFrames::impl_appendSequence( Sequence< css::uno::Reference< XFrame > >& seqDestination ,
+ const Sequence< css::uno::Reference< XFrame > >& seqSource )
{
// Get some informations about the sequences.
sal_Int32 nSourceCount = seqSource.getLength();
sal_Int32 nDestinationCount = seqDestination.getLength();
- const Reference< XFrame >* pSourceAccess = seqSource.getConstArray();
- Reference< XFrame >* pDestinationAccess = seqDestination.getArray();
+ const css::uno::Reference< XFrame >* pSourceAccess = seqSource.getConstArray();
+ css::uno::Reference< XFrame >* pDestinationAccess = seqDestination.getArray();
// Get memory for result list.
- Sequence< Reference< XFrame > > seqResult ( nSourceCount + nDestinationCount );
- Reference< XFrame >* pResultAccess = seqResult.getArray();
+ Sequence< css::uno::Reference< XFrame > > seqResult ( nSourceCount + nDestinationCount );
+ css::uno::Reference< XFrame >* pResultAccess = seqResult.getArray();
sal_Int32 nResultPosition = 0;
// Copy all items from first sequence.
@@ -434,8 +434,8 @@ void OFrames::impl_appendSequence( Sequence< Reference< XFrame > >&
// An instance of this class can only work with valid initialization.
// We share the mutex with ouer owner class, need a valid factory to instanciate new services and
// use the access to ouer owner for some operations.
-sal_Bool OFrames::impldbg_checkParameter_OFramesCtor( const Reference< XMultiServiceFactory >& xFactory ,
- const Reference< XFrame >& xOwner ,
+sal_Bool OFrames::impldbg_checkParameter_OFramesCtor( const css::uno::Reference< XMultiServiceFactory >& xFactory ,
+ const css::uno::Reference< XFrame >& xOwner ,
FrameContainer* pFrameContainer )
{
// Set default return value.
@@ -458,7 +458,7 @@ sal_Bool OFrames::impldbg_checkParameter_OFramesCtor( const Reference< XMult
//*****************************************************************************************************************
// Its only allowed to add valid references to container.
// AND - alle frames must support XFrames-interface!
-sal_Bool OFrames::impldbg_checkParameter_append( const Reference< XFrame >& xFrame )
+sal_Bool OFrames::impldbg_checkParameter_append( const css::uno::Reference< XFrame >& xFrame )
{
// Set default return value.
sal_Bool bOK = sal_True;
@@ -477,7 +477,7 @@ sal_Bool OFrames::impldbg_checkParameter_append( const Reference< XFrame >& xFra
//*****************************************************************************************************************
// Its only allowed to add valid references to container...
// ... => You can only delete valid references!
-sal_Bool OFrames::impldbg_checkParameter_remove( const Reference< XFrame >& xFrame )
+sal_Bool OFrames::impldbg_checkParameter_remove( const css::uno::Reference< XFrame >& xFrame )
{
// Set default return value.
sal_Bool bOK = sal_True;
diff --git a/framework/source/interaction/makefile.mk b/framework/source/interaction/makefile.mk
deleted file mode 100644
index 0767cb6b3389..000000000000
--- a/framework/source/interaction/makefile.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_interaction
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- defines ------------------------------------------------------
-
-CDEFS+=-DCOMPMOD_NAMESPACE=framework
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= $(SLO)$/quietinteraction.obj \
- $(SLO)$/preventduplicateinteraction.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/framework/source/jobs/jobdata.cxx b/framework/source/jobs/jobdata.cxx
index 0657954c83fe..0a6f27393330 100644
--- a/framework/source/jobs/jobdata.cxx
+++ b/framework/source/jobs/jobdata.cxx
@@ -1,4 +1,4 @@
- /*************************************************************************
+/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -61,6 +61,7 @@ namespace framework{
const sal_Char* JobData::JOBCFG_ROOT = "/org.openoffice.Office.Jobs/Jobs/" ;
const sal_Char* JobData::JOBCFG_PROP_SERVICE = "Service" ;
+const sal_Char* JobData::JOBCFG_PROP_CONTEXT = "Context" ;
const sal_Char* JobData::JOBCFG_PROP_ARGUMENTS = "Arguments" ;
const sal_Char* JobData::EVENTCFG_ROOT = "/org.openoffice.Office.Jobs/Events/" ;
@@ -79,6 +80,7 @@ const sal_Char* JobData::PROP_ENVTYPE = "EnvType"
const sal_Char* JobData::PROP_FRAME = "Frame" ;
const sal_Char* JobData::PROP_MODEL = "Model" ;
const sal_Char* JobData::PROP_SERVICE = "Service" ;
+const sal_Char* JobData::PROP_CONTEXT = "Context" ;
//________________________________
// non exported definitions
@@ -139,6 +141,7 @@ void JobData::operator=( const JobData& rCopy )
m_eEnvironment = rCopy.m_eEnvironment ;
m_sAlias = rCopy.m_sAlias ;
m_sService = rCopy.m_sService ;
+ m_sContext = rCopy.m_sContext ;
m_sEvent = rCopy.m_sEvent ;
m_lArguments = rCopy.m_lArguments ;
m_aLastExecutionResult = rCopy.m_aLastExecutionResult;
@@ -201,6 +204,10 @@ void JobData::setAlias( const ::rtl::OUString& sAlias )
aValue = xJobProperties->getPropertyValue(::rtl::OUString::createFromAscii(JOBCFG_PROP_SERVICE));
aValue >>= m_sService;
+ // read module context list
+ aValue = xJobProperties->getPropertyValue(::rtl::OUString::createFromAscii(JOBCFG_PROP_CONTEXT));
+ aValue >>= m_sContext;
+
// read whole argument list
aValue = xJobProperties->getPropertyValue(::rtl::OUString::createFromAscii(JOBCFG_PROP_ARGUMENTS));
css::uno::Reference< css::container::XNameAccess > xArgumentList;
@@ -477,7 +484,7 @@ css::uno::Sequence< css::beans::NamedValue > JobData::getConfig() const
css::uno::Sequence< css::beans::NamedValue > lConfig;
if (m_eMode==E_ALIAS)
{
- lConfig.realloc(2);
+ lConfig.realloc(3);
sal_Int32 i = 0;
lConfig[i].Name = ::rtl::OUString::createFromAscii(PROP_ALIAS);
@@ -487,6 +494,10 @@ css::uno::Sequence< css::beans::NamedValue > JobData::getConfig() const
lConfig[i].Name = ::rtl::OUString::createFromAscii(PROP_SERVICE);
lConfig[i].Value <<= m_sService;
++i;
+
+ lConfig[i].Name = ::rtl::OUString::createFromAscii(PROP_CONTEXT);
+ lConfig[i].Value <<= m_sContext;
+ ++i;
}
aReadLock.unlock();
/* } SAFE */
@@ -610,6 +621,30 @@ void JobData::appendEnabledJobsForEvent( const css::uno::Reference< css::lang::X
//________________________________
/**
*/
+sal_Bool JobData::hasCorrectContext(const ::rtl::OUString& rModuleIdent) const
+{
+ sal_Int32 nContextLen = m_sContext.getLength();
+ sal_Int32 nModuleIdLen = rModuleIdent.getLength();
+
+ if ( nContextLen == 0 )
+ return sal_True;
+
+ if ( nModuleIdLen > 0 )
+ {
+ sal_Int32 nIndex = m_sContext.indexOf( rModuleIdent );
+ if ( nIndex >= 0 && ( nIndex+nModuleIdLen <= nContextLen ))
+ {
+ ::rtl::OUString sContextModule = m_sContext.copy( nIndex, nModuleIdLen );
+ return sContextModule.equals( rModuleIdent );
+ }
+ }
+
+ return sal_False;
+}
+
+//________________________________
+/**
+ */
css::uno::Sequence< ::rtl::OUString > JobData::getEnabledJobsForEvent( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ,
const ::rtl::OUString& sEvent )
{
@@ -705,6 +740,7 @@ void JobData::impl_reset()
m_eEnvironment = E_UNKNOWN_ENVIRONMENT;
m_sAlias = ::rtl::OUString();
m_sService = ::rtl::OUString();
+ m_sContext = ::rtl::OUString();
m_sEvent = ::rtl::OUString();
m_lArguments = css::uno::Sequence< css::beans::NamedValue >();
aWriteLock.unlock();
diff --git a/framework/source/jobs/jobdispatch.cxx b/framework/source/jobs/jobdispatch.cxx
index b2c5399d0216..afc0abada7c1 100644
--- a/framework/source/jobs/jobdispatch.cxx
+++ b/framework/source/jobs/jobdispatch.cxx
@@ -44,6 +44,7 @@
// interface includes
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/frame/DispatchResultState.hpp>
+#include <com/sun/star/frame/XModuleManager.hpp>
//________________________________
// includes of other projects
@@ -145,7 +146,20 @@ void SAL_CALL JobDispatch::initialize( const css::uno::Sequence< css::uno::Any >
for (int a=0; a<lArguments.getLength(); ++a)
{
if (a==0)
+ {
lArguments[a] >>= m_xFrame;
+
+ css::uno::Reference< css::frame::XModuleManager > xModuleManager(
+ m_xSMGR->createInstance(
+ SERVICENAME_MODULEMANAGER ),
+ css::uno::UNO_QUERY_THROW );
+ try
+ {
+ m_sModuleIdentifier = xModuleManager->identify( m_xFrame );
+ }
+ catch( css::uno::Exception& )
+ {}
+ }
}
aWriteLock.unlock();
@@ -289,16 +303,8 @@ void JobDispatch::impl_dispatchEvent( /*IN*/ const ::rtl::OUString&
// But a may given listener will know something ...
// I think this operaton was finished successfully.
// It's not realy an error, if no registered jobs could be located.
- if (lJobs.getLength()<1 && xListener.is())
- {
- css::frame::DispatchResultEvent aEvent;
- aEvent.Source = xThis;
- aEvent.State = css::frame::DispatchResultState::SUCCESS;
- xListener->dispatchFinished(aEvent);
- return;
- }
-
// Step over all found jobs and execute it
+ int nExecutedJobs=0;
for (int j=0; j<lJobs.getLength(); ++j)
{
/* SAFE { */
@@ -307,6 +313,7 @@ void JobDispatch::impl_dispatchEvent( /*IN*/ const ::rtl::OUString&
JobData aCfg(m_xSMGR);
aCfg.setEvent(sEvent, lJobs[j]);
aCfg.setEnvironment(JobData::E_DISPATCH);
+ const bool bIsEnabled=aCfg.hasCorrectContext(m_sModuleIdentifier);
/*Attention!
Jobs implements interfaces and dies by ref count!
@@ -320,6 +327,9 @@ void JobDispatch::impl_dispatchEvent( /*IN*/ const ::rtl::OUString&
aReadLock.unlock();
/* } SAFE */
+ if (!bIsEnabled)
+ continue;
+
// Special mode for listener.
// We dont notify it directly here. We delegate that
// to the job implementation. But we must set ourself there too.
@@ -328,6 +338,15 @@ void JobDispatch::impl_dispatchEvent( /*IN*/ const ::rtl::OUString&
if (xListener.is())
pJob->setDispatchResultFake(xListener, xThis);
pJob->execute(Converter::convert_seqPropVal2seqNamedVal(lArgs));
+ ++nExecutedJobs;
+ }
+
+ if (nExecutedJobs<1 && xListener.is())
+ {
+ css::frame::DispatchResultEvent aEvent;
+ aEvent.Source = xThis;
+ aEvent.State = css::frame::DispatchResultState::SUCCESS;
+ xListener->dispatchFinished(aEvent);
}
}
diff --git a/framework/source/jobs/jobexecutor.cxx b/framework/source/jobs/jobexecutor.cxx
index e3a6122d4938..f33d88216566 100644
--- a/framework/source/jobs/jobexecutor.cxx
+++ b/framework/source/jobs/jobexecutor.cxx
@@ -98,6 +98,11 @@ DEFINE_XSERVICEINFO_ONEINSTANCESERVICE( JobExecutor ,
DEFINE_INIT_SERVICE( JobExecutor,
{
+ m_xModuleManager = css::uno::Reference< css::frame::XModuleManager >(
+ m_xSMGR->createInstance(
+ SERVICENAME_MODULEMANAGER ),
+ css::uno::UNO_QUERY_THROW );
+
/*Attention
I think we don't need any mutex or lock here ... because we are called by our own static method impl_createInstance()
to create a new instance of this class by our own supported service factory.
@@ -142,6 +147,7 @@ JobExecutor::JobExecutor( /*IN*/ const css::uno::Reference< css::lang::XMultiSer
: ThreadHelpBase (&Application::GetSolarMutex() )
, ::cppu::OWeakObject ( )
, m_xSMGR (xSMGR )
+ , m_xModuleManager ( )
, m_aConfig (xSMGR, ::rtl::OUString::createFromAscii(JobData::EVENTCFG_ROOT) )
{
// Don't do any reference related code here! Do it inside special
@@ -233,6 +239,15 @@ void SAL_CALL JobExecutor::notifyEvent( const css::document::EventObject& aEvent
// This optimization supress using of the cfg api for getting event and job descriptions.
// see using of m_lEvents.find() below ...
+ // retrieve event context from event source
+ rtl::OUString aModuleIdentifier;
+ try
+ {
+ aModuleIdentifier = m_xModuleManager->identify( aEvent.Source );
+ }
+ catch( css::uno::Exception& )
+ {}
+
// Special feature: If the events "OnNew" or "OnLoad" occures - we generate our own event "onDocumentOpened".
if (
(aEvent.EventName.equals(EVENT_ON_NEW )) ||
@@ -275,6 +290,9 @@ void SAL_CALL JobExecutor::notifyEvent( const css::document::EventObject& aEvent
aCfg.setEvent(rBinding.m_sDocEvent, rBinding.m_sJobName);
aCfg.setEnvironment(JobData::E_DOCUMENTEVENT);
+ if (!aCfg.hasCorrectContext(aModuleIdentifier))
+ continue;
+
/*Attention!
Jobs implements interfaces and dies by ref count!
And freeing of such uno object is done by uno itself.
diff --git a/framework/source/jobs/makefile.mk b/framework/source/jobs/makefile.mk
deleted file mode 100644
index ee5cc637664a..000000000000
--- a/framework/source/jobs/makefile.mk
+++ /dev/null
@@ -1,53 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_jobs
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= $(SLO)$/jobexecutor.obj \
- $(SLO)$/jobdispatch.obj \
- $(SLO)$/job.obj \
- $(SLO)$/jobdata.obj \
- $(SLO)$/jobresult.obj \
- $(SLO)$/joburl.obj \
- $(SLO)$/jobconst.obj \
- $(SLO)$/helponstartup.obj \
- $(SLO)$/shelljob.obj \
- $(SLO)$/configaccess.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/source/layoutmanager/helpers.cxx b/framework/source/layoutmanager/helpers.cxx
new file mode 100755
index 000000000000..0e6dff554daa
--- /dev/null
+++ b/framework/source/layoutmanager/helpers.cxx
@@ -0,0 +1,415 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_framework.hxx"
+
+// my own includes
+#include "helpers.hxx"
+#include <threadhelp/resetableguard.hxx>
+#include <services.h>
+
+// interface includes
+#include <com/sun/star/ui/DockingArea.hpp>
+#include <com/sun/star/awt/XTopWindow.hpp>
+#include <com/sun/star/frame/XDispatchHelper.hpp>
+#include <com/sun/star/awt/XDockableWindow.hpp>
+#include <com/sun/star/awt/XDockableWindowListener.hpp>
+#include <com/sun/star/awt/XWindowListener.hpp>
+#include <com/sun/star/ui/XUIElement.hpp>
+
+// other includes
+#include <comphelper/mediadescriptor.hxx>
+#include <vcl/svapp.hxx>
+#include <vos/mutex.hxx>
+#include <toolkit/unohlp.hxx>
+
+// namespace
+using namespace com::sun::star;
+
+namespace framework
+{
+
+bool hasEmptySize( const:: Size& aSize )
+{
+ return ( aSize.Width() == 0 ) && ( aSize.Height() == 0 );
+}
+
+bool hasDefaultPosValue( const ::Point& aPos )
+{
+ return (( aPos.X() == SAL_MAX_INT32 ) || ( aPos.Y() == SAL_MAX_INT32 ));
+}
+
+bool isDefaultPos( const ::com::sun::star::awt::Point& aPos )
+{
+ return (( aPos.X == SAL_MAX_INT32 ) && ( aPos.Y == SAL_MAX_INT32 ));
+}
+
+bool isDefaultPos( const ::Point& aPos )
+{
+ return (( aPos.X() == SAL_MAX_INT32 ) && ( aPos.Y() == SAL_MAX_INT32 ));
+}
+
+bool isReverseOrderDockingArea( const sal_Int32 nDockArea )
+{
+ ui::DockingArea eDockArea = static_cast< ui::DockingArea >( nDockArea );
+ return (( eDockArea == ui::DockingArea_DOCKINGAREA_BOTTOM ) ||
+ ( eDockArea == ui::DockingArea_DOCKINGAREA_RIGHT ));
+}
+
+bool isToolboxHorizontalAligned( ToolBox* pToolBox )
+{
+ if ( pToolBox )
+ return (( pToolBox->GetAlign() == WINDOWALIGN_TOP ) || ( pToolBox->GetAlign() == WINDOWALIGN_BOTTOM ));
+ return false;
+}
+
+bool isHorizontalDockingArea( const ui::DockingArea& nDockingArea )
+{
+ return (( nDockingArea == ui::DockingArea_DOCKINGAREA_TOP ) ||
+ ( nDockingArea == ui::DockingArea_DOCKINGAREA_BOTTOM ));
+}
+
+bool isHorizontalDockingArea( const sal_Int32 nDockArea )
+{
+ return isHorizontalDockingArea(static_cast< ui::DockingArea >( nDockArea ));
+}
+
+::rtl::OUString retrieveToolbarNameFromHelpURL( Window* pWindow )
+{
+ ::rtl::OUString aToolbarName;
+
+ if ( pWindow->GetType() == WINDOW_TOOLBOX )
+ {
+ ToolBox* pToolBox = dynamic_cast<ToolBox *>( pWindow );
+ if ( pToolBox )
+ {
+ aToolbarName = rtl::OStringToOUString( pToolBox->GetHelpId(), RTL_TEXTENCODING_UTF8 );
+ sal_Int32 i = aToolbarName.lastIndexOf( ':' );
+ if (( aToolbarName.getLength() > 0 ) && ( i > 0 ) && (( i+ 1 ) < aToolbarName.getLength() ))
+ aToolbarName = aToolbarName.copy( i+1 ); // Remove ".HelpId:" protocol from toolbar name
+ else
+ aToolbarName = ::rtl::OUString();
+ }
+ }
+ return aToolbarName;
+}
+
+ToolBox* getToolboxPtr( Window* pWindow )
+{
+ ToolBox* pToolbox(NULL);
+ if ( pWindow->GetType() == WINDOW_TOOLBOX )
+ pToolbox = dynamic_cast<ToolBox*>( pWindow );
+ return pToolbox;
+}
+
+Window* getWindowFromXUIElement( const uno::Reference< ui::XUIElement >& xUIElement )
+{
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ uno::Reference< awt::XWindow > xWindow;
+ if ( xUIElement.is() )
+ xWindow = uno::Reference< awt::XWindow >( xUIElement->getRealInterface(), uno::UNO_QUERY );
+ return VCLUnoHelper::GetWindow( xWindow );
+}
+
+SystemWindow* getTopSystemWindow( const uno::Reference< awt::XWindow >& xWindow )
+{
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ while ( pWindow && !pWindow->IsSystemWindow() )
+ pWindow = pWindow->GetParent();
+
+ if ( pWindow )
+ return (SystemWindow *)pWindow;
+ else
+ return 0;
+}
+
+void setZeroRectangle( ::Rectangle& rRect )
+{
+ rRect.setX(0);
+ rRect.setY(0);
+ rRect.setWidth(0);
+ rRect.setHeight(0);
+}
+
+// ATTENTION!
+// This value is directly copied from the sfx2 project.
+// You have to change BOTH values, see sfx2/inc/sfx2/sfxsids.hrc (SID_DOCKWIN_START)
+static const sal_Int32 DOCKWIN_ID_BASE = 9800;
+
+bool lcl_checkUIElement(const uno::Reference< ui::XUIElement >& xUIElement, awt::Rectangle& _rPosSize, uno::Reference< awt::XWindow >& _xWindow)
+{
+ bool bRet = xUIElement.is();
+ if ( bRet )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ _xWindow.set( xUIElement->getRealInterface(), uno::UNO_QUERY );
+ _rPosSize = _xWindow->getPosSize();
+
+ Window* pWindow = VCLUnoHelper::GetWindow( _xWindow );
+ if ( pWindow->GetType() == WINDOW_TOOLBOX )
+ {
+ ::Size aSize = ((ToolBox*)pWindow)->CalcWindowSizePixel( 1 );
+ _rPosSize.Width = aSize.Width();
+ _rPosSize.Height = aSize.Height();
+ }
+ } // if ( xUIElement.is() )
+ return bRet;
+}
+
+uno::Reference< awt::XWindowPeer > createToolkitWindow( const uno::Reference< lang::XMultiServiceFactory >& rFactory, const uno::Reference< awt::XWindowPeer >& rParent, const char* pService )
+{
+ const rtl::OUString aAWTToolkit( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.Toolkit" ));
+
+ uno::Reference< awt::XWindowPeer > xPeer;
+ if ( rFactory.is() )
+ {
+ uno::Reference< awt::XToolkit > xToolkit( rFactory->createInstance( aAWTToolkit ), uno::UNO_QUERY_THROW );
+ if ( xToolkit.is() )
+ {
+ // describe window properties.
+ css::awt::WindowDescriptor aDescriptor;
+ aDescriptor.Type = awt::WindowClass_SIMPLE;
+ aDescriptor.WindowServiceName = ::rtl::OUString::createFromAscii( pService );
+ aDescriptor.ParentIndex = -1;
+ aDescriptor.Parent = uno::Reference< awt::XWindowPeer >( rParent, uno::UNO_QUERY );
+ aDescriptor.Bounds = awt::Rectangle(0,0,0,0);
+ aDescriptor.WindowAttributes = 0;
+
+ // create a awt window
+ xPeer = xToolkit->createWindow( aDescriptor );
+ }
+ }
+
+ return xPeer;
+}
+
+// convert alignment constant to vcl's WindowAlign type
+WindowAlign ImplConvertAlignment( sal_Int16 aAlignment )
+{
+ if ( aAlignment == ui::DockingArea_DOCKINGAREA_LEFT )
+ return WINDOWALIGN_LEFT;
+ else if ( aAlignment == ui::DockingArea_DOCKINGAREA_RIGHT )
+ return WINDOWALIGN_RIGHT;
+ else if ( aAlignment == ui::DockingArea_DOCKINGAREA_TOP )
+ return WINDOWALIGN_TOP;
+ else
+ return WINDOWALIGN_BOTTOM;
+}
+
+::rtl::OUString getElementTypeFromResourceURL( const ::rtl::OUString& aResourceURL )
+{
+ ::rtl::OUString aType;
+
+ ::rtl::OUString aUIResourceURL( UIRESOURCE_URL );
+ if ( aResourceURL.indexOf( aUIResourceURL ) == 0 )
+ {
+ sal_Int32 nIndex = 0;
+ ::rtl::OUString aPathPart = aResourceURL.copy( aUIResourceURL.getLength() );
+ ::rtl::OUString aUIResource = aPathPart.getToken( 0, (sal_Unicode)'/', nIndex );
+
+ return aPathPart.getToken( 0, (sal_Unicode)'/', nIndex );
+ }
+
+ return aType;
+}
+
+void parseResourceURL( const rtl::OUString& aResourceURL, rtl::OUString& aElementType, rtl::OUString& aElementName )
+{
+ ::rtl::OUString aUIResourceURL( UIRESOURCE_URL );
+ if ( aResourceURL.indexOf( aUIResourceURL ) == 0 )
+ {
+ sal_Int32 nIndex = 0;
+ ::rtl::OUString aPathPart = aResourceURL.copy( aUIResourceURL.getLength() );
+ ::rtl::OUString aUIResource = aPathPart.getToken( 0, (sal_Unicode)'/', nIndex );
+
+ aElementType = aPathPart.getToken( 0, (sal_Unicode)'/', nIndex );
+ aElementName = aPathPart.getToken( 0, (sal_Unicode)'/', nIndex );
+ }
+}
+
+::com::sun::star::awt::Rectangle putRectangleValueToAWT( const ::Rectangle& rRect )
+{
+ css::awt::Rectangle aRect;
+ aRect.X = rRect.Left();
+ aRect.Y = rRect.Top();
+ aRect.Width = rRect.Right();
+ aRect.Height = rRect.Bottom();
+
+ return aRect;
+}
+
+::Rectangle putAWTToRectangle( const ::com::sun::star::awt::Rectangle& rRect )
+{
+ ::Rectangle aRect;
+ aRect.Left() = rRect.X;
+ aRect.Top() = rRect.Y;
+ aRect.Right() = rRect.Width;
+ aRect.Bottom() = rRect.Height;
+
+ return aRect;
+}
+
+css::awt::Rectangle convertRectangleToAWT( const ::Rectangle& rRect )
+{
+ css::awt::Rectangle aRect;
+ aRect.X = rRect.Left();
+ aRect.Y = rRect.Top();
+ aRect.Width = rRect.GetWidth();
+ aRect.Height = rRect.GetHeight();
+ return aRect;
+}
+
+::Rectangle convertAWTToRectangle( const ::com::sun::star::awt::Rectangle& rRect )
+{
+ ::Rectangle aRect;
+ aRect.Left() = rRect.X;
+ aRect.Top() = rRect.Y;
+ aRect.Right() = rRect.X + rRect.Width;
+ aRect.Bottom() = rRect.Y + rRect.Height;
+
+ return aRect;
+}
+
+bool equalRectangles( const css::awt::Rectangle& rRect1,
+ const css::awt::Rectangle& rRect2 )
+{
+ return (( rRect1.X == rRect2.X ) &&
+ ( rRect1.Y == rRect2.Y ) &&
+ ( rRect1.Width == rRect2.Width ) &&
+ ( rRect1.Height == rRect2.Height ));
+}
+
+uno::Reference< frame::XModel > impl_getModelFromFrame( const uno::Reference< frame::XFrame >& rFrame )
+{
+ // Query for the model to get check the context information
+ uno::Reference< frame::XModel > xModel;
+ if ( rFrame.is() )
+ {
+ uno::Reference< frame::XController > xController( rFrame->getController(), uno::UNO_QUERY );
+ if ( xController.is() )
+ xModel = xController->getModel();
+ }
+
+ return xModel;
+}
+
+sal_Bool implts_isPreviewModel( const uno::Reference< frame::XModel >& xModel )
+{
+ if ( xModel.is() )
+ {
+ ::comphelper::MediaDescriptor aDesc( xModel->getArgs() );
+ return aDesc.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_PREVIEW(), (sal_Bool)sal_False);
+ }
+ else
+ return sal_False;
+}
+
+sal_Bool implts_isFrameOrWindowTop( const uno::Reference< frame::XFrame >& xFrame )
+{
+ if (xFrame->isTop())
+ return sal_True;
+
+ uno::Reference< awt::XTopWindow > xWindowCheck(xFrame->getContainerWindow(), uno::UNO_QUERY); // dont use _THROW here ... its a check only
+ if (xWindowCheck.is())
+ {
+ // --> PB 2007-06-18 #i76867# top and system window is required.
+ ::vos::OGuard aSolarLock(&Application::GetSolarMutex());
+ uno::Reference< awt::XWindow > xWindow( xWindowCheck, uno::UNO_QUERY );
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ return ( pWindow && pWindow->IsSystemWindow() );
+ // <--
+ }
+
+ return sal_False;
+}
+
+void impl_setDockingWindowVisibility( const css::uno::Reference< css::lang::XMultiServiceFactory>& rSMGR, const css::uno::Reference< css::frame::XFrame >& rFrame, const ::rtl::OUString& rDockingWindowName, bool bVisible )
+{
+ const ::rtl::OUString aDockWinPrefixCommand( RTL_CONSTASCII_USTRINGPARAM( "DockingWindow" ));
+ css::uno::WeakReference< css::frame::XDispatchHelper > xDispatchHelper;
+
+ sal_Int32 nID = rDockingWindowName.toInt32();
+ sal_Int32 nIndex = nID - DOCKWIN_ID_BASE;
+
+ css::uno::Reference< css::frame::XDispatchProvider > xProvider(rFrame, css::uno::UNO_QUERY);
+ if ( nIndex >= 0 && xProvider.is() )
+ {
+ ::rtl::OUString aDockWinCommand( RTL_CONSTASCII_USTRINGPARAM( ".uno:" ));
+ ::rtl::OUString aDockWinArgName( aDockWinPrefixCommand );
+
+ aDockWinArgName += ::rtl::OUString::valueOf( nIndex );
+
+ css::uno::Sequence< css::beans::PropertyValue > aArgs(1);
+ aArgs[0].Name = aDockWinArgName;
+ aArgs[0].Value = css::uno::makeAny( bVisible );
+
+ css::uno::Reference< css::frame::XDispatchHelper > xDispatcher( xDispatchHelper );
+ if ( !xDispatcher.is())
+ {
+ xDispatcher = css::uno::Reference< css::frame::XDispatchHelper >(
+ rSMGR->createInstance(SERVICENAME_DISPATCHHELPER), css::uno::UNO_QUERY_THROW);
+ }
+
+ aDockWinCommand = aDockWinCommand + aDockWinArgName;
+ xDispatcher->executeDispatch(
+ xProvider,
+ aDockWinCommand,
+ ::rtl::OUString::createFromAscii("_self"),
+ 0,
+ aArgs);
+ }
+}
+
+void impl_addWindowListeners(
+ const css::uno::Reference< css::uno::XInterface >& xThis,
+ const css::uno::Reference< css::ui::XUIElement >& xUIElement )
+{
+ css::uno::Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), css::uno::UNO_QUERY );
+ css::uno::Reference< css::awt::XDockableWindow > xDockWindow( xUIElement->getRealInterface(), css::uno::UNO_QUERY );
+ if ( xDockWindow.is() && xWindow.is() )
+ {
+ try
+ {
+ xDockWindow->addDockableWindowListener(
+ css::uno::Reference< css::awt::XDockableWindowListener >(
+ xThis, css::uno::UNO_QUERY ));
+ xWindow->addWindowListener(
+ css::uno::Reference< css::awt::XWindowListener >(
+ xThis, css::uno::UNO_QUERY ));
+ xDockWindow->enableDocking( sal_True );
+ }
+ catch ( css::uno::Exception& )
+ {
+ }
+ }
+}
+
+} // namespace framework
diff --git a/framework/source/layoutmanager/helpers.hxx b/framework/source/layoutmanager/helpers.hxx
new file mode 100755
index 000000000000..d4e9ce313d0e
--- /dev/null
+++ b/framework/source/layoutmanager/helpers.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FRAMEWORK_LAYOUTMANAGER_HELPERS_HXX_
+#define __FRAMEWORK_LAYOUTMANAGER_HELPERS_HXX_
+
+// my own includes
+#include <macros/generic.hxx>
+#include <stdtypes.h>
+#include <properties.h>
+
+// interface includes
+#include <com/sun/star/awt/XWindowPeer.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/ui/XUIElement.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/ui/DockingArea.hpp>
+#include <com/sun/star/awt/Point.hpp>
+
+// other includes
+#include <vcl/window.hxx>
+#include <vcl/toolbox.hxx>
+
+#define UIRESOURCE_PROTOCO_ASCII "private:"
+#define UIRESOURCE_RESOURCE_ASCII "resource"
+#define UIRESOURCE_URL_ASCII "private:resource"
+#define UIRESOURCE_URL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( UIRESOURCE_URL_ASCII ))
+#define UIRESOURCETYPE_TOOLBAR "toolbar"
+#define UIRESOURCETYPE_STATUSBAR "statusbar"
+#define UIRESOURCETYPE_MENUBAR "menubar"
+
+namespace framework
+{
+
+bool hasEmptySize( const:: Size& aSize );
+bool hasDefaultPosValue( const ::Point& aPos );
+bool isDefaultPos( const ::com::sun::star::awt::Point& aPos );
+bool isDefaultPos( const ::Point& aPos );
+bool isToolboxHorizontalAligned( ToolBox* pToolBox );
+bool isReverseOrderDockingArea( const sal_Int32 nDockArea );
+bool isHorizontalDockingArea( const sal_Int32 nDockArea );
+bool isHorizontalDockingArea( const ::com::sun::star::ui::DockingArea& nDockArea );
+::rtl::OUString retrieveToolbarNameFromHelpURL( Window* pWindow );
+ToolBox* getToolboxPtr( Window* pWindow );
+Window* getWindowFromXUIElement( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement >& xUIElement );
+SystemWindow* getTopSystemWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& xWindow );
+bool equalRectangles( const css::awt::Rectangle& rRect1, const css::awt::Rectangle& rRect2 );
+void setZeroRectangle( ::Rectangle& rRect );
+bool lcl_checkUIElement(const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement >& xUIElement,::com::sun::star::awt::Rectangle& _rPosSize, ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xWindow);
+::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > createToolkitWindow( const css::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rFactory, const css::uno::Reference< ::com::sun::star::awt::XWindowPeer >& rParent, const char* pService );
+WindowAlign ImplConvertAlignment( sal_Int16 aAlignment );
+::rtl::OUString getElementTypeFromResourceURL( const ::rtl::OUString& aResourceURL );
+void parseResourceURL( const rtl::OUString& aResourceURL, rtl::OUString& aElementType, rtl::OUString& aElementName );
+::Rectangle putAWTToRectangle( const ::com::sun::star::awt::Rectangle& rRect );
+::com::sun::star::awt::Rectangle putRectangleValueToAWT( const ::Rectangle& rRect );
+::com::sun::star::awt::Rectangle convertRectangleToAWT( const ::Rectangle& rRect );
+::Rectangle convertAWTToRectangle( const ::com::sun::star::awt::Rectangle& rRect );
+::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > impl_getModelFromFrame( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame );
+sal_Bool implts_isPreviewModel( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel );
+sal_Bool implts_isFrameOrWindowTop( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame );
+void impl_setDockingWindowVisibility( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& rSMGR, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, const ::rtl::OUString& rDockingWindowName, bool bVisible );
+void impl_addWindowListeners( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xThis, const ::com::sun::star::uno::Reference< css::ui::XUIElement >& xUIElement );
+::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > implts_createToolkitWindow( const css::uno::Reference< ::com::sun::star::awt::XToolkit >& rToolkit, const css::uno::Reference< ::com::sun::star::awt::XWindowPeer >& rParent );
+
+}
+
+#endif // __FRAMEWORK_LAYOUTMANAGER_HELPERS_HXX_
diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx
index a5fea232abea..43176fe82b72 100644..100755
--- a/framework/source/layoutmanager/layoutmanager.cxx
+++ b/framework/source/layoutmanager/layoutmanager.cxx
@@ -6,6 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
+ * $RCSfile: layoutmanager.cxx,v $
+ * $Revision: 1.72 $
+ *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -28,34 +31,26 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
-//_________________________________________________________________________________________________________________
-// my own includes
-//_________________________________________________________________________________________________________________
-
-// #include <math.h>
-
-#ifndef _FRAMEWORK_SERVICES_LAYOUTMANAGER_HXX_
+// my own includes
#include <services/layoutmanager.hxx>
-#endif
+#include <helpers.hxx>
+#include <panelmanager.hxx>
#include <threadhelp/resetableguard.hxx>
#include <services.h>
-#include <classes/sfxhelperfunctions.hxx>
+#include <framework/sfxhelperfunctions.hxx>
+#include <framework/sfxhelperfunctions.hxx>
#include <uielement/menubarwrapper.hxx>
-#include <classes/addonsoptions.hxx>
+#include <framework/addonsoptions.hxx>
#include <uiconfiguration/windowstateconfiguration.hxx>
#include <classes/fwkresid.hxx>
-
-#ifndef __FRAMEWORK_CLASSES_RESOURCE_HRC_
#include <classes/resource.hrc>
-#endif
#include <toolkit/helper/convert.hxx>
#include <uielement/progressbarwrapper.hxx>
#include <uiconfiguration/globalsettings.hxx>
+#include <toolbarlayoutmanager.hxx>
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
+// interface includes
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/frame/XModel.hpp>
@@ -69,21 +64,17 @@
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/awt/XDevice.hpp>
#include <com/sun/star/awt/XSystemDependentWindowPeer.hpp>
-#include <com/sun/star/awt/XTopWindow.hpp>
#include <com/sun/star/ui/XModuleUIConfigurationManagerSupplier.hpp>
#include <com/sun/star/ui/XUIConfigurationManagerSupplier.hpp>
#include <com/sun/star/ui/UIElementType.hpp>
#include <com/sun/star/container/XNameReplace.hpp>
#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/ui/XUIFunctionListener.hpp>
#include <com/sun/star/frame/LayoutManagerEvents.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XDispatchHelper.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
-//_________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________
+// other includes
#include <svtools/imgdef.hxx>
#include <tools/diagnose_ex.h>
#include <vcl/window.hxx>
@@ -102,348 +93,101 @@
#include <algorithm>
#include <boost/bind.hpp>
-// ______________________________________________
-// using namespace
+// using namespace
using namespace ::com::sun::star;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::util;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::container;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
using namespace ::com::sun::star::ui;
-using namespace com::sun::star::frame;
using namespace ::com::sun::star::frame;
-#define UIRESOURCE_PROTOCO_ASCII "private:"
-#define UIRESOURCE_RESOURCE_ASCII "resource"
-#define UIRESOURCE_URL_ASCII "private:resource"
-#define UIRESOURCE_URL rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( UIRESOURCE_URL_ASCII ))
// ATTENTION!
// This value is directly copied from the sfx2 project.
// You have to change BOTH values, see sfx2/inc/sfx2/sfxsids.hrc (SID_DOCKWIN_START)
static const sal_Int32 DOCKWIN_ID_BASE = 9800;
-bool lcl_checkUIElement(const Reference< XUIElement >& xUIElement,css::awt::Rectangle& _rPosSize,Reference< css::awt::XWindow >& _xWindow)
-{
- bool bRet = xUIElement.is();
- if ( bRet )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- _xWindow.set( xUIElement->getRealInterface(), UNO_QUERY );
- _rPosSize = _xWindow->getPosSize();
-
- Window* pWindow = VCLUnoHelper::GetWindow( _xWindow );
- if ( pWindow->GetType() == WINDOW_TOOLBOX )
- {
- ::Size aSize = ((ToolBox*)pWindow)->CalcWindowSizePixel( 1 );
- _rPosSize.Width = aSize.Width();
- _rPosSize.Height = aSize.Height();
- }
- } // if ( xUIElement.is() )
- return bRet;
-}
-
-// convert alignment constant to vcl's WindowAlign type
-static WindowAlign ImplConvertAlignment( sal_Int16 aAlignment )
-{
- if ( aAlignment == DockingArea_DOCKINGAREA_LEFT )
- return WINDOWALIGN_LEFT;
- else if ( aAlignment == DockingArea_DOCKINGAREA_RIGHT )
- return WINDOWALIGN_RIGHT;
- else if ( aAlignment == DockingArea_DOCKINGAREA_TOP )
- return WINDOWALIGN_TOP;
- else
- return WINDOWALIGN_BOTTOM;
-}
-
-//_________________________________________________________________________________________________________________
-// Namespace
-//_________________________________________________________________________________________________________________
-//
-
namespace framework
{
-struct UIElementVisibility
-{
- rtl::OUString aName;
- bool bVisible;
-};
-
-bool LayoutManager::UIElement::operator< ( const LayoutManager::UIElement& aUIElement ) const
-{
- if ( !m_xUIElement.is() && aUIElement.m_xUIElement.is() )
- return false;
- else if ( m_xUIElement.is() && !aUIElement.m_xUIElement.is() )
- return true;
- else if ( !m_bVisible && aUIElement.m_bVisible )
- return false;
- else if ( m_bVisible && !aUIElement.m_bVisible )
- return true;
- else if ( !m_bFloating && aUIElement.m_bFloating )
- return true;
- else if ( m_bFloating && !aUIElement.m_bFloating )
- return false;
- else
- {
- if ( m_bFloating )
- {
- bool bEqual = ( m_aFloatingData.m_aPos.Y() == aUIElement.m_aFloatingData.m_aPos.Y() );
- if ( bEqual )
- return ( m_aFloatingData.m_aPos.X() < aUIElement.m_aFloatingData.m_aPos.X() );
- else
- return ( m_aFloatingData.m_aPos.Y() < aUIElement.m_aFloatingData.m_aPos.Y() );
- }
- else
- {
- if ( m_aDockedData.m_nDockedArea < aUIElement.m_aDockedData.m_nDockedArea )
- return true;
- else if ( m_aDockedData.m_nDockedArea > aUIElement.m_aDockedData.m_nDockedArea )
- return false;
- else
- {
- if ( m_aDockedData.m_nDockedArea == DockingArea_DOCKINGAREA_TOP ||
- m_aDockedData.m_nDockedArea == DockingArea_DOCKINGAREA_BOTTOM )
- {
- if ( !( m_aDockedData.m_aPos.Y() == aUIElement.m_aDockedData.m_aPos.Y() ) )
- return ( m_aDockedData.m_aPos.Y() < aUIElement.m_aDockedData.m_aPos.Y() );
- else
- {
- bool bEqual = ( m_aDockedData.m_aPos.X() == aUIElement.m_aDockedData.m_aPos.X() );
- if ( bEqual )
- {
- return m_bUserActive && !aUIElement.m_bUserActive;
- }
- else
- return ( m_aDockedData.m_aPos.X() < aUIElement.m_aDockedData.m_aPos.X() );
- }
- }
- else
- {
- if ( !( m_aDockedData.m_aPos.X() == aUIElement.m_aDockedData.m_aPos.X() ) )
- return ( m_aDockedData.m_aPos.X() < aUIElement.m_aDockedData.m_aPos.X() );
- else
- {
- bool bEqual = ( m_aDockedData.m_aPos.Y() == aUIElement.m_aDockedData.m_aPos.Y() );
- if ( bEqual )
- {
- return m_bUserActive && !aUIElement.m_bUserActive;
- }
- else
- return ( m_aDockedData.m_aPos.Y() < aUIElement.m_aDockedData.m_aPos.Y() );
- }
- }
- }
- }
- }
-}
-
-LayoutManager::UIElement& LayoutManager::UIElement::operator= ( const LayoutManager::UIElement& rUIElement )
-{
- if (this == &rUIElement) { return *this; }
- m_aType = rUIElement.m_aType;
- m_aName = rUIElement.m_aName;
- m_aUIName = rUIElement.m_aUIName;
- m_xUIElement = rUIElement.m_xUIElement;
- m_bFloating = rUIElement.m_bFloating;
- m_bVisible = rUIElement.m_bVisible;
- m_bUserActive = rUIElement.m_bUserActive;
- m_bCreateNewRowCol0 = rUIElement.m_bCreateNewRowCol0;
- m_bDeactiveHide = rUIElement.m_bDeactiveHide;
- m_bMasterHide = rUIElement.m_bMasterHide;
- m_bContextSensitive = rUIElement.m_bContextSensitive;
- m_bContextActive = rUIElement.m_bContextActive;
- m_bNoClose = rUIElement.m_bNoClose;
- m_bSoftClose = rUIElement.m_bSoftClose;
- m_bStateRead = rUIElement.m_bStateRead;
- m_nStyle = rUIElement.m_nStyle;
- m_aDockedData = rUIElement.m_aDockedData;
- m_aFloatingData = rUIElement.m_aFloatingData;
- return *this;
-}
-
-static Reference< XModel > impl_getModelFromFrame( const Reference< XFrame >& rFrame )
-{
- // Query for the model to get check the context information
- Reference< XModel > xModel;
- if ( rFrame.is() )
- {
- Reference< XController > xController( rFrame->getController(), UNO_QUERY );
- if ( xController.is() )
- xModel = xController->getModel();
- }
-
- return xModel;
-}
-
-static sal_Bool implts_isPreviewModel( const Reference< XModel >& xModel )
-{
- if ( xModel.is() )
- {
- ::comphelper::MediaDescriptor aDesc( xModel->getArgs() );
- return aDesc.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_PREVIEW(), (sal_Bool)sal_False);
- }
- else
- return sal_False;
-}
-
-static sal_Bool implts_isFrameOrWindowTop( const css::uno::Reference< css::frame::XFrame >& xFrame )
-{
- if (xFrame->isTop())
- return sal_True;
-
- css::uno::Reference< css::awt::XTopWindow > xWindowCheck(xFrame->getContainerWindow(), css::uno::UNO_QUERY); // dont use _THROW here ... its a check only
- if (xWindowCheck.is())
- {
- // --> PB 2007-06-18 #i76867# top and system window is required.
- ::vos::OGuard aSolarLock(&Application::GetSolarMutex());
- css::uno::Reference< css::awt::XWindow > xWindow( xWindowCheck, UNO_QUERY );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- return ( pWindow && pWindow->IsSystemWindow() );
- // <--
- }
-
- return sal_False;
-}
-
-static void impl_setDockingWindowVisibility( const css::uno::Reference< css::lang::XMultiServiceFactory>& rSMGR, const css::uno::Reference< css::frame::XFrame >& rFrame, const ::rtl::OUString& rDockingWindowName, bool bVisible )
-{
- const ::rtl::OUString aDockWinPrefixCommand( RTL_CONSTASCII_USTRINGPARAM( "DockingWindow" ));
- css::uno::WeakReference< css::frame::XDispatchHelper > xDispatchHelper;
-
- sal_Int32 nID = rDockingWindowName.toInt32();
- sal_Int32 nIndex = nID - DOCKWIN_ID_BASE;
-
- css::uno::Reference< css::frame::XDispatchProvider > xProvider(rFrame, css::uno::UNO_QUERY);
- if ( nIndex >= 0 && xProvider.is() )
- {
- ::rtl::OUString aDockWinCommand( RTL_CONSTASCII_USTRINGPARAM( ".uno:" ));
- ::rtl::OUString aDockWinArgName( aDockWinPrefixCommand );
-
- aDockWinArgName += ::rtl::OUString::valueOf( nIndex );
-
- css::uno::Sequence< css::beans::PropertyValue > aArgs(1);
- aArgs[0].Name = aDockWinArgName;
- aArgs[0].Value = css::uno::makeAny( bVisible );
-
- css::uno::Reference< css::frame::XDispatchHelper > xDispatcher( xDispatchHelper );
- if ( !xDispatcher.is())
- {
- xDispatcher = css::uno::Reference< css::frame::XDispatchHelper >(
- rSMGR->createInstance(SERVICENAME_DISPATCHHELPER), css::uno::UNO_QUERY_THROW);
- }
-
- aDockWinCommand = aDockWinCommand + aDockWinArgName;
- xDispatcher->executeDispatch(
- xProvider,
- aDockWinCommand,
- ::rtl::OUString::createFromAscii("_self"),
- 0,
- aArgs);
- }
-}
-
-//*****************************************************************************************************************
-// XInterface, XTypeProvider, XServiceInfo
-//*****************************************************************************************************************
IMPLEMENT_FORWARD_XTYPEPROVIDER2( LayoutManager, LayoutManager_Base, LayoutManager_PBase )
IMPLEMENT_FORWARD_XINTERFACE2( LayoutManager, LayoutManager_Base, LayoutManager_PBase )
-
-DEFINE_XSERVICEINFO_MULTISERVICE ( LayoutManager ,
- ::cppu::OWeakObject ,
- SERVICENAME_LAYOUTMANAGER ,
- IMPLEMENTATIONNAME_LAYOUTMANAGER
- )
-
-DEFINE_INIT_SERVICE ( LayoutManager, {} )
-
-
-LayoutManager::LayoutManager( const Reference< XMultiServiceFactory >& xServiceManager )
- : LayoutManager_Base ( )
- , ThreadHelpBase ( &Application::GetSolarMutex() )
- , ::cppu::OBroadcastHelperVar< ::cppu::OMultiTypeInterfaceContainerHelper, ::cppu::OMultiTypeInterfaceContainerHelper::keyType >( m_aLock.getShareableOslMutex() )
- , LayoutManager_PBase ( *(static_cast< ::cppu::OBroadcastHelper* >(this)) )
- , m_xSMGR( xServiceManager )
- , m_xURLTransformer( xServiceManager->createInstance( SERVICENAME_URLTRANSFORMER ), UNO_QUERY )
- , m_xDisplayAccess( xServiceManager->createInstance( SERVICENAME_DISPLAYACCESS ), UNO_QUERY )
- , m_nLockCount( 0 )
- , m_bActive( sal_False )
- , m_bInplaceMenuSet( sal_False )
- , m_bDockingInProgress( sal_False )
- , m_bMenuVisible( sal_True )
- , m_bComponentAttached( sal_False )
- , m_bDoLayout( sal_False )
- , m_bVisible( sal_True )
- , m_bParentWindowVisible( sal_False )
- , m_bMustDoLayout( sal_True )
- , m_bAutomaticToolbars( sal_True )
- , m_bStoreWindowState( sal_False )
- , m_bHideCurrentUI( false )
- , m_bGlobalSettings( sal_False )
- , m_bPreserveContentSize( false )
- , m_eDockOperation( DOCKOP_ON_COLROW )
- , m_pInplaceMenuBar( NULL )
- , m_xModuleManager( Reference< XModuleManager >(
- xServiceManager->createInstance( SERVICENAME_MODULEMANAGER ), UNO_QUERY ))
- , m_xUIElementFactoryManager( Reference< ::com::sun::star::ui::XUIElementFactory >(
+DEFINE_XSERVICEINFO_MULTISERVICE( LayoutManager, ::cppu::OWeakObject, SERVICENAME_LAYOUTMANAGER, IMPLEMENTATIONNAME_LAYOUTMANAGER)
+DEFINE_INIT_SERVICE( LayoutManager, {} )
+
+LayoutManager::LayoutManager( const Reference< XMultiServiceFactory >& xServiceManager ) : LayoutManager_Base()
+ , ThreadHelpBase( &Application::GetSolarMutex())
+ , ::cppu::OBroadcastHelperVar< ::cppu::OMultiTypeInterfaceContainerHelper, ::cppu::OMultiTypeInterfaceContainerHelper::keyType >( m_aLock.getShareableOslMutex())
+ , LayoutManager_PBase( *(static_cast< ::cppu::OBroadcastHelper* >(this)) )
+ , m_xSMGR( xServiceManager )
+ , m_xURLTransformer( xServiceManager->createInstance( SERVICENAME_URLTRANSFORMER ), UNO_QUERY )
+ , m_xDisplayAccess( xServiceManager->createInstance( SERVICENAME_DISPLAYACCESS ), UNO_QUERY )
+ , m_nLockCount( 0 )
+ , m_bActive( false )
+ , m_bInplaceMenuSet( false )
+ , m_bDockingInProgress( false )
+ , m_bMenuVisible( true )
+ , m_bComponentAttached( false )
+ , m_bDoLayout( false )
+ , m_bVisible( true )
+ , m_bParentWindowVisible( false )
+ , m_bMustDoLayout( true )
+ , m_bAutomaticToolbars( true )
+ , m_bStoreWindowState( false )
+ , m_bHideCurrentUI( false )
+ , m_bGlobalSettings( false )
+ , m_bPreserveContentSize( false )
+ , m_bMenuBarCloser( false )
+ , m_pInplaceMenuBar( NULL )
+ , m_xModuleManager( Reference< XModuleManager >( xServiceManager->createInstance( SERVICENAME_MODULEMANAGER ), UNO_QUERY ))
+ , m_xUIElementFactoryManager( Reference< ui::XUIElementFactory >(
xServiceManager->createInstance( SERVICENAME_UIELEMENTFACTORYMANAGER ), UNO_QUERY ))
- , m_bMenuBarCloser( sal_False )
- , m_xPersistentWindowStateSupplier( Reference< XNameAccess >(
+ , m_xPersistentWindowStateSupplier( Reference< XNameAccess >(
xServiceManager->createInstance( SERVICENAME_WINDOWSTATECONFIGURATION ), UNO_QUERY ))
- , m_pGlobalSettings( 0 )
- , m_aCustomTbxPrefix( RTL_CONSTASCII_USTRINGPARAM( "custom_" ))
- , m_aFullCustomTbxPrefix( RTL_CONSTASCII_USTRINGPARAM( "private:resource/toolbar/custom_" ))
- , m_aFullAddonTbxPrefix( RTL_CONSTASCII_USTRINGPARAM( "private:resource/toolbar/addon_" ))
- , m_aStatusBarAlias( RTL_CONSTASCII_USTRINGPARAM( "private:resource/statusbar/statusbar" ))
- , m_aProgressBarAlias( RTL_CONSTASCII_USTRINGPARAM( "private:resource/progressbar/progressbar" ))
- , m_aPropDocked( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_DOCKED ))
- , m_aPropVisible( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_VISIBLE ))
- , m_aPropDockingArea( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_DOCKINGAREA ))
- , m_aPropDockPos( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_DOCKPOS ))
- , m_aPropPos( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_POS ))
- , m_aPropSize( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_SIZE ))
- , m_aPropUIName( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_UINAME ))
- , m_aPropStyle( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_STYLE ))
- , m_aPropLocked( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_LOCKED ))
- , m_aCustomizeCmd( RTL_CONSTASCII_USTRINGPARAM( "ConfigureDialog" ))
- , m_pAddonOptions( 0 )
- , m_aListenerContainer( m_aLock.getShareableOslMutex() )
+ , m_pGlobalSettings( 0 )
+ , m_aStatusBarAlias( RTL_CONSTASCII_USTRINGPARAM( "private:resource/statusbar/statusbar" ))
+ , m_aProgressBarAlias( RTL_CONSTASCII_USTRINGPARAM( "private:resource/progressbar/progressbar" ))
+ , m_aPropDocked( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_DOCKED ))
+ , m_aPropVisible( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_VISIBLE ))
+ , m_aPropDockingArea( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_DOCKINGAREA ))
+ , m_aPropDockPos( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_DOCKPOS ))
+ , m_aPropPos( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_POS ))
+ , m_aPropSize( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_SIZE ))
+ , m_aPropUIName( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_UINAME ))
+ , m_aPropStyle( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_STYLE ))
+ , m_aPropLocked( RTL_CONSTASCII_USTRINGPARAM( WINDOWSTATE_PROPERTY_LOCKED ))
+ , m_aCustomizeCmd( RTL_CONSTASCII_USTRINGPARAM( "ConfigureDialog" ))
+ , m_aListenerContainer( m_aLock.getShareableOslMutex() )
+ , m_pPanelManager( 0 )
+ , m_pToolbarManager( 0 )
{
// Initialize statusbar member
+ const sal_Bool bRefreshVisibility = sal_False;
m_aStatusBarElement.m_aType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "statusbar" ));
m_aStatusBarElement.m_aName = m_aStatusBarAlias;
- m_pMiscOptions = new SvtMiscOptions();
+ m_pToolbarManager = new ToolbarLayoutManager( xServiceManager, m_xUIElementFactoryManager, this );
+ m_xToolbarManager = uno::Reference< ui::XUIConfigurationListener >( static_cast< OWeakObject* >( m_pToolbarManager ), uno::UNO_QUERY );
- m_pMiscOptions->AddListenerLink( LINK( this, LayoutManager, OptionsChanged ) );
Application::AddEventListener( LINK( this, LayoutManager, SettingsChanged ) );
- m_eSymbolsSize = m_pMiscOptions->GetSymbolsSize();
- m_eSymbolsStyle = m_pMiscOptions->GetCurrentSymbolsStyle();
m_aAsyncLayoutTimer.SetTimeout( 50 );
m_aAsyncLayoutTimer.SetTimeoutHdl( LINK( this, LayoutManager, AsyncLayoutHdl ) );
-
registerProperty( LAYOUTMANAGER_PROPNAME_AUTOMATICTOOLBARS, LAYOUTMANAGER_PROPHANDLE_AUTOMATICTOOLBARS, css::beans::PropertyAttribute::TRANSIENT, &m_bAutomaticToolbars, ::getCppuType( &m_bAutomaticToolbars ) );
- registerProperty( LAYOUTMANAGER_PROPNAME_HIDECURRENTUI, LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI, css::beans::PropertyAttribute::TRANSIENT, &m_bHideCurrentUI, ::getCppuType( &m_bHideCurrentUI ) );
- registerProperty( LAYOUTMANAGER_PROPNAME_LOCKCOUNT, LAYOUTMANAGER_PROPHANDLE_LOCKCOUNT, css::beans::PropertyAttribute::TRANSIENT | css::beans::PropertyAttribute::READONLY, &m_nLockCount, getCppuType( &m_nLockCount ) );
- registerProperty( LAYOUTMANAGER_PROPNAME_MENUBARCLOSER, LAYOUTMANAGER_PROPHANDLE_MENUBARCLOSER, css::beans::PropertyAttribute::TRANSIENT, &m_bMenuBarCloser, ::getCppuType( &m_bMenuBarCloser ) );
- const sal_Bool bRefreshVisibility = sal_False;
- registerPropertyNoMember( LAYOUTMANAGER_PROPNAME_REFRESHVISIBILITY, LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY, css::beans::PropertyAttribute::TRANSIENT, ::getCppuType( &bRefreshVisibility ), &bRefreshVisibility );
- registerProperty( LAYOUTMANAGER_PROPNAME_PRESERVE_CONTENT_SIZE, LAYOUTMANAGER_PROPHANDLE_PRESERVE_CONTENT_SIZE, css::beans::PropertyAttribute::TRANSIENT, &m_bPreserveContentSize, ::getCppuType( &m_bPreserveContentSize ) );
+ registerProperty( LAYOUTMANAGER_PROPNAME_HIDECURRENTUI, LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI, beans::PropertyAttribute::TRANSIENT, &m_bHideCurrentUI, ::getCppuType( &m_bHideCurrentUI ) );
+ registerProperty( LAYOUTMANAGER_PROPNAME_LOCKCOUNT, LAYOUTMANAGER_PROPHANDLE_LOCKCOUNT, beans::PropertyAttribute::TRANSIENT | beans::PropertyAttribute::READONLY, &m_nLockCount, getCppuType( &m_nLockCount ) );
+ registerProperty( LAYOUTMANAGER_PROPNAME_MENUBARCLOSER, LAYOUTMANAGER_PROPHANDLE_MENUBARCLOSER, beans::PropertyAttribute::TRANSIENT, &m_bMenuBarCloser, ::getCppuType( &m_bMenuBarCloser ) );
+ registerPropertyNoMember( LAYOUTMANAGER_PROPNAME_REFRESHVISIBILITY, LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY, beans::PropertyAttribute::TRANSIENT, ::getCppuType( &bRefreshVisibility ), &bRefreshVisibility );
+ registerProperty( LAYOUTMANAGER_PROPNAME_PRESERVE_CONTENT_SIZE, LAYOUTMANAGER_PROPHANDLE_PRESERVE_CONTENT_SIZE, beans::PropertyAttribute::TRANSIENT, &m_bPreserveContentSize, ::getCppuType( &m_bPreserveContentSize ) );
}
LayoutManager::~LayoutManager()
{
Application::RemoveEventListener( LINK( this, LayoutManager, SettingsChanged ) );
- if ( m_pMiscOptions )
- {
- m_pMiscOptions->RemoveListenerLink( LINK( this, LayoutManager, OptionsChanged ) );
- delete m_pMiscOptions;
- m_pMiscOptions = 0;
- }
m_aAsyncLayoutTimer.Stop();
}
@@ -457,18 +201,15 @@ void LayoutManager::impl_clearUpMenuBar()
{
vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
- while ( pWindow && !pWindow->IsSystemWindow() )
- pWindow = pWindow->GetParent();
-
- if ( pWindow )
+ SystemWindow* pSysWindow = getTopSystemWindow( m_xContainerWindow );
+ if ( pSysWindow )
{
MenuBar* pSetMenuBar = 0;
if ( m_xInplaceMenuBar.is() )
pSetMenuBar = (MenuBar *)m_pInplaceMenuBar->GetMenuBar();
else
{
- Reference< css::awt::XMenuBar > xMenuBar;
+ Reference< awt::XMenuBar > xMenuBar;
Reference< XPropertySet > xPropSet( m_xMenuBar, UNO_QUERY );
if ( xPropSet.is() )
@@ -477,12 +218,8 @@ void LayoutManager::impl_clearUpMenuBar()
{
xPropSet->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "XMenuBar" ))) >>= xMenuBar;
}
- catch ( com::sun::star::beans::UnknownPropertyException )
- {
- }
- catch ( com::sun::star::lang::WrappedTargetException )
- {
- }
+ catch ( beans::UnknownPropertyException ) {}
+ catch ( lang::WrappedTargetException ) {}
}
VCLXMenu* pAwtMenuBar = VCLXMenu::GetImplementation( xMenuBar );
@@ -490,9 +227,9 @@ void LayoutManager::impl_clearUpMenuBar()
pSetMenuBar = (MenuBar*)pAwtMenuBar->GetMenu();
}
- MenuBar* pTopMenuBar = ((SystemWindow *)pWindow)->GetMenuBar();
+ MenuBar* pTopMenuBar = pSysWindow->GetMenuBar();
if ( pSetMenuBar == pTopMenuBar )
- ((SystemWindow *)pWindow)->SetMenuBar( 0 );
+ pSysWindow->SetMenuBar( 0 );
}
}
@@ -511,45 +248,17 @@ void LayoutManager::impl_clearUpMenuBar()
implts_unlock();
}
-sal_Bool LayoutManager::impl_parseResourceURL( const rtl::OUString aResourceURL, rtl::OUString& aElementType, rtl::OUString& aElementName )
-{
- URL aURL;
- sal_Int32 nIndex = 0;
-
- aURL.Complete = aResourceURL;
- m_xURLTransformer->parseStrict( aURL );
-
- ::rtl::OUString aUIResource = aURL.Path.getToken( 0, (sal_Unicode)'/', nIndex );
-
- if (( aURL.Protocol.equalsIgnoreAsciiCaseAscii( UIRESOURCE_PROTOCO_ASCII )) &&
- ( aUIResource.equalsIgnoreAsciiCaseAscii( UIRESOURCE_RESOURCE_ASCII )))
- {
- aElementType = aURL.Path.getToken( 0, (sal_Unicode)'/', nIndex );
- aElementName = aURL.Path.getToken( 0, (sal_Unicode)'/', nIndex );
- return sal_True;
- }
-
- return sal_False;
-}
-
void LayoutManager::implts_lock()
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
++m_nLockCount;
- aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
}
sal_Bool LayoutManager::implts_unlock()
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
- --m_nLockCount;
- if ( m_nLockCount < 0 )
- m_nLockCount = 0;
+ m_nLockCount = std::max( --m_nLockCount, static_cast<sal_Int32>(0) );
return ( m_nLockCount == 0 );
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
}
void LayoutManager::implts_reset( sal_Bool bAttached )
@@ -557,18 +266,16 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
Reference< XFrame > xFrame = m_xFrame;
- Reference< css::awt::XWindow > xContainerWindow( m_xContainerWindow );
- Reference< css::awt::XWindow > xTopDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP];
- Reference< css::awt::XWindow > xLeftDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT];
- Reference< css::awt::XWindow > xRightDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_RIGHT];
- Reference< css::awt::XWindow > xBottomDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM];
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
Reference< XUIConfiguration > xModuleCfgMgr( m_xModuleCfgMgr, UNO_QUERY );
Reference< XUIConfiguration > xDocCfgMgr( m_xDocCfgMgr, UNO_QUERY );
Reference< XNameAccess > xPersistentWindowState( m_xPersistentWindowState );
Reference< XMultiServiceFactory > xServiceManager( m_xSMGR );
Reference< XNameAccess > xPersistentWindowStateSupplier( m_xPersistentWindowStateSupplier );
+ Reference< awt::XWindowListener > xToolbarManager( m_xToolbarManager, uno::UNO_QUERY );
+ ToolbarLayoutManager* pToolbarManager( m_pToolbarManager );
::rtl::OUString aModuleIdentifier( m_aModuleIdentifier );
- sal_Bool bAutomaticToolbars( m_bAutomaticToolbars );
+ bool bAutomaticToolbars( m_bAutomaticToolbars );
aReadLock.unlock();
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
@@ -584,9 +291,7 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
{
aModuleIdentifier = m_xModuleManager->identify( Reference< XInterface >( xFrame, UNO_QUERY ) );
}
- catch( Exception& )
- {
- }
+ catch( Exception& ) {}
if ( aModuleIdentifier.getLength() && aOldModuleIdentifier != aModuleIdentifier )
{
@@ -602,9 +307,7 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
// Remove listener to old module ui configuration manager
xModuleCfgMgr->removeConfigurationListener( Reference< XUIConfigurationListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
}
- catch ( Exception& )
- {
- }
+ catch ( Exception& ) {}
}
try
@@ -614,9 +317,7 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
if ( xModuleCfgMgr.is() )
xModuleCfgMgr->addConfigurationListener( Reference< XUIConfigurationListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
}
- catch ( Exception& )
- {
- }
+ catch ( Exception& ) {}
try
{
@@ -624,12 +325,8 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
if ( xPersistentWindowStateSupplier.is() )
xPersistentWindowStateSupplier->getByName( aModuleIdentifier ) >>= xPersistentWindowState;
}
- catch ( NoSuchElementException& )
- {
- }
- catch ( WrappedTargetException& )
- {
- }
+ catch ( NoSuchElementException& ) {}
+ catch ( WrappedTargetException& ) {}
}
xModel = impl_getModelFromFrame( xFrame );
@@ -645,9 +342,7 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
// Remove listener to old ui configuration manager
xDocCfgMgr->removeConfigurationListener( Reference< XUIConfigurationListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
}
- catch ( Exception& )
- {
- }
+ catch ( Exception& ) {}
}
try
@@ -656,9 +351,7 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
if ( xDocCfgMgr.is() )
xDocCfgMgr->addConfigurationListener( Reference< XUIConfigurationListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
}
- catch ( Exception& )
- {
- }
+ catch ( Exception& ) {}
}
}
}
@@ -672,9 +365,7 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
xModuleCfgMgr->removeConfigurationListener(
Reference< XUIConfigurationListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
}
- catch ( Exception& )
- {
- }
+ catch ( Exception& ) {}
}
if ( xDocCfgMgr.is() )
@@ -684,9 +375,7 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
xDocCfgMgr->removeConfigurationListener(
Reference< XUIConfigurationListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
}
- catch ( Exception& )
- {
- }
+ catch ( Exception& ) {}
}
// Release references to our configuration managers as we currently don't have
@@ -697,47 +386,39 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
aModuleIdentifier = ::rtl::OUString();
}
+ Reference< XUIConfigurationManager > xModCfgMgr( xModuleCfgMgr, UNO_QUERY );
+ Reference< XUIConfigurationManager > xDokCfgMgr( xDocCfgMgr, UNO_QUERY );
+
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
m_xModel = xModel;
- m_aDockingArea = css::awt::Rectangle();
+ m_aDockingArea = awt::Rectangle();
m_bComponentAttached = bAttached;
m_aModuleIdentifier = aModuleIdentifier;
- m_xModuleCfgMgr = Reference< XUIConfigurationManager >( xModuleCfgMgr, UNO_QUERY );
- m_xDocCfgMgr = Reference< XUIConfigurationManager >( xDocCfgMgr, UNO_QUERY );
+ m_xModuleCfgMgr = xModCfgMgr;
+ m_xDocCfgMgr = xDokCfgMgr;
m_xPersistentWindowState = xPersistentWindowState;
m_aStatusBarElement.m_bStateRead = sal_False; // reset state to read data again!
aWriteLock.unlock();
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
- if ( bAttached )
+ // reset/notify toolbar layout manager
+ if ( pToolbarManager )
{
- // reset docking area windows back to zero size
- try
- {
- if ( xTopDockingWindow.is() )
- xTopDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
- if ( xLeftDockingWindow.is() )
- xLeftDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
- if ( xRightDockingWindow.is() )
- xRightDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
- if ( xBottomDockingWindow.is() )
- xBottomDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
- }
- catch ( Exception& )
+ if ( bAttached )
{
+ pToolbarManager->attach( xFrame, xModCfgMgr, xDokCfgMgr, xPersistentWindowState );
+ uno::Reference< awt::XWindowPeer > xParent( xContainerWindow, UNO_QUERY );
+ pToolbarManager->setParentWindow( xParent );
+ if ( bAutomaticToolbars )
+ pToolbarManager->createStaticToolbars();
}
-
- if ( bAutomaticToolbars )
+ else
{
- implts_createCustomToolBars();
- implts_createAddonsToolBars();
- implts_createNonContextSensitiveToolBars();
+ pToolbarManager->reset();
+ implts_destroyElements();
}
- implts_sortUIElements();
}
- else
- implts_destroyElements();
}
implts_unlock();
@@ -745,15 +426,12 @@ void LayoutManager::implts_reset( sal_Bool bAttached )
sal_Bool LayoutManager::implts_isEmbeddedLayoutManager() const
{
- // check if this layout manager is currently using the embedded feature
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
Reference< XFrame > xFrame = m_xFrame;
- Reference< css::awt::XWindow > xContainerWindow( m_xContainerWindow );
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
aReadLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- Reference< css::awt::XWindow > xFrameContainerWindow = xFrame->getContainerWindow();
+ Reference< awt::XWindow > xFrameContainerWindow = xFrame->getContainerWindow();
if ( xFrameContainerWindow == xContainerWindow )
return sal_False;
else
@@ -762,20 +440,13 @@ sal_Bool LayoutManager::implts_isEmbeddedLayoutManager() const
void LayoutManager::implts_destroyElements()
{
- UIElementVector aUIElementVector;
-
WriteGuard aWriteLock( m_aLock );
- aUIElementVector = m_aUIElements;
- m_aUIElements.clear();
+ uno::Reference< ui::XUIConfigurationListener > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
aWriteLock.unlock();
- UIElementVector::iterator pIter;
- for ( pIter = aUIElementVector.begin(); pIter != aUIElementVector.end(); pIter++ )
- {
- Reference< XComponent > xComponent( pIter->m_xUIElement, UNO_QUERY );
- if ( xComponent.is() )
- xComponent->dispose();
- }
+ if ( pToolbarManager )
+ pToolbarManager->destroyToolbars();
implts_destroyStatusBar();
@@ -784,592 +455,49 @@ void LayoutManager::implts_destroyElements()
aWriteLock.unlock();
}
-void LayoutManager::implts_destroyDockingAreaWindows()
-{
- std::vector< Reference< css::awt::XWindow > > oldDockingAreaWindows;
-
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- WriteGuard aWriteLock( m_aLock );
- oldDockingAreaWindows.push_back( m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP] );
- oldDockingAreaWindows.push_back( m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM] );
- oldDockingAreaWindows.push_back( m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT] );
- oldDockingAreaWindows.push_back( m_xDockAreaWindows[DockingArea_DOCKINGAREA_RIGHT] );
-
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP].clear();
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM].clear();
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT].clear();
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_RIGHT].clear();
- aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
-
- const sal_uInt32 nCount = oldDockingAreaWindows.size();
- for ( sal_uInt32 i=0; i < nCount; i++ )
- {
- if ( oldDockingAreaWindows[i].is() )
- {
- try
- {
- oldDockingAreaWindows[i]->dispose();
- }
- catch ( Exception& )
- {
- }
- }
- }
-}
-
-void LayoutManager::implts_createCustomToolBar( const rtl::OUString& aTbxResName, const rtl::OUString& aTitle )
-{
- if ( aTbxResName.getLength() > 0 )
- {
- createElement( aTbxResName );
- if ( aTitle )
- {
- Reference< XUIElement > xUIElement = getElement( aTbxResName );
- if ( xUIElement.is() )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
-
- Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow )
- pWindow->SetText( aTitle );
- }
- }
- }
-}
-
-void LayoutManager::implts_createCustomToolBars(
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& aTbxSeqSeq )
-{
- const Sequence< PropertyValue >* pTbxSeq = aTbxSeqSeq.getConstArray();
- for ( sal_Int32 i = 0; i < aTbxSeqSeq.getLength(); i++ )
- {
- const Sequence< PropertyValue >& rTbxSeq = pTbxSeq[i];
- ::rtl::OUString aTbxResName;
- ::rtl::OUString aTbxTitle;
- for ( sal_Int32 j = 0; j < rTbxSeq.getLength(); j++ )
- {
- if ( rTbxSeq[j].Name.equalsAscii( "ResourceURL" ))
- rTbxSeq[j].Value >>= aTbxResName;
- else if ( rTbxSeq[j].Name.equalsAscii( "UIName" ))
- rTbxSeq[j].Value >>= aTbxTitle;
- }
-
- // Only create custom toolbars. Their name have to start with "custom_"!
- if ( aTbxResName.getLength() > 0 && aTbxResName.indexOf( m_aCustomTbxPrefix ) != -1 )
- implts_createCustomToolBar( aTbxResName, aTbxTitle );
- }
-}
-
-void LayoutManager::implts_createCustomToolBars()
-{
- ReadGuard aReadLock( m_aLock );
- if ( !m_bComponentAttached )
- return;
-
- Reference< XUIElementFactory > xUIElementFactory( m_xUIElementFactoryManager );
- Reference< XFrame > xFrame( m_xFrame );
- Reference< XModel > xModel;
- Reference< XUIConfigurationManager > xModuleCfgMgr( m_xModuleCfgMgr, UNO_QUERY );
- Reference< XUIConfigurationManager > xDocCfgMgr( m_xDocCfgMgr, UNO_QUERY );
- aReadLock.unlock();
-
- if ( xFrame.is() )
- {
- xModel = impl_getModelFromFrame( xFrame );
- if ( implts_isPreviewModel( xModel ))
- return; // no custom toolbars for preview frame!
-
- Sequence< Sequence< PropertyValue > > aTbxSeq;
- if ( xDocCfgMgr.is() )
- {
- aTbxSeq = xDocCfgMgr->getUIElementsInfo( UIElementType::TOOLBAR );
- implts_createCustomToolBars( aTbxSeq ); // first create all document based toolbars
- }
- if ( xModuleCfgMgr.is() )
- {
- aTbxSeq = xModuleCfgMgr->getUIElementsInfo( UIElementType::TOOLBAR );
- implts_createCustomToolBars( aTbxSeq ); // second create module based toolbars
- }
- }
-}
-
-rtl::OUString LayoutManager::implts_generateGenericAddonToolbarTitle( sal_Int32 nNumber ) const
-{
- String aAddonGenericTitle;
-
- aAddonGenericTitle = String( FwkResId( STR_TOOLBAR_TITLE_ADDON ));
- const vcl::I18nHelper& rI18nHelper = Application::GetSettings().GetUILocaleI18nHelper();
-
- String aNumStr = rI18nHelper.GetNum( nNumber, 0, sal_False, sal_False );
- aAddonGenericTitle.SearchAndReplaceAscii( "%num%", aNumStr );
-
- return rtl::OUString( aAddonGenericTitle );
-}
-
-void LayoutManager::implts_createAddonsToolBars()
-{
- WriteGuard aWriteLock( m_aLock );
- if ( !m_bComponentAttached )
- return;
-
- Reference< XModel > xModel;
- Reference< XFrame > xFrame( m_xFrame );
- if ( !xFrame.is() )
- return;
-
- if ( !m_pAddonOptions )
- m_pAddonOptions = new AddonsOptions;
-
- Reference< XUIElementFactory > xUIElementFactory( m_xUIElementFactoryManager );
- aWriteLock.unlock();
-
- xModel = impl_getModelFromFrame( xFrame );
- if ( implts_isPreviewModel( xModel ))
- return; // no addon toolbars for preview frame!
-
- UIElementVector aUIElementVector;
- Sequence< Sequence< PropertyValue > > aAddonToolBarData;
- Reference< XUIElement > xUIElement;
-
- sal_uInt32 nCount = m_pAddonOptions->GetAddonsToolBarCount();
- ::rtl::OUString aAddonsToolBarStaticName( m_aFullAddonTbxPrefix );
- ::rtl::OUString aElementType( RTL_CONSTASCII_USTRINGPARAM( "toolbar" ));
-
- Sequence< PropertyValue > aPropSeq( 2 );
- aPropSeq[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Frame" ));
- aPropSeq[0].Value <<= xFrame;
- aPropSeq[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationData" ));
- for ( sal_uInt32 i = 0; i < nCount; i++ )
- {
- ::rtl::OUString aAddonToolBarName( aAddonsToolBarStaticName + m_pAddonOptions->GetAddonsToolbarResourceName(i) );
- aAddonToolBarData = m_pAddonOptions->GetAddonsToolBarPart( i );
- aPropSeq[1].Value <<= aAddonToolBarData;
-
- aWriteLock.lock();
- UIElement aElement = impl_findElement( aAddonToolBarName );
- aWriteLock.unlock();
-
- // #i79828
- // It's now possible that we are called more than once. Be sure to not create
- // add-on toolbars more than once!
- if ( aElement.m_xUIElement.is() )
- continue;
-
- try
- {
- xUIElement = xUIElementFactory->createUIElement( aAddonToolBarName, aPropSeq );
- if ( xUIElement.is() )
- {
- Reference< css::awt::XDockableWindow > xDockWindow( xUIElement->getRealInterface(), UNO_QUERY );
- if ( xDockWindow.is() )
- {
- try
- {
- xDockWindow->addDockableWindowListener( Reference< css::awt::XDockableWindowListener >( static_cast< OWeakObject * >( this ), UNO_QUERY ));
- xDockWindow->enableDocking( sal_True );
- Reference< css::awt::XWindow > xWindow( xDockWindow, UNO_QUERY );
- if ( xWindow.is() )
- xWindow->addWindowListener( Reference< css::awt::XWindowListener >( static_cast< OWeakObject * >( this ), UNO_QUERY ));
- }
- catch ( Exception& )
- {
- }
- }
-
- ::rtl::OUString aGenericAddonTitle = implts_generateGenericAddonToolbarTitle( i+1 );
-
- if ( aElement.m_aName.getLength() > 0 )
- {
- // Reuse a local entry so we are able to use the latest
- // UI changes for this document.
- implts_setElementData( aElement, xDockWindow );
- aElement.m_xUIElement = xUIElement;
- if ( aElement.m_aUIName.getLength() == 0 )
- {
- aElement.m_aUIName = aGenericAddonTitle;
- implts_writeWindowStateData( aElement.m_aName, aElement );
- }
- }
- else
- {
- // Create new UI element and try to read its state data
- UIElement aNewToolbar( aAddonToolBarName, aElementType, xUIElement );
- aNewToolbar.m_bFloating = sal_True;
- implts_readWindowStateData( aAddonToolBarName, aNewToolbar );
- implts_setElementData( aNewToolbar, xDockWindow );
- if ( aNewToolbar.m_aUIName.getLength() == 0 )
- {
- aNewToolbar.m_aUIName = aGenericAddonTitle;
- implts_writeWindowStateData( aNewToolbar.m_aName, aNewToolbar );
- }
- implts_insertUIElement( aNewToolbar );
- }
-
- Reference< css::awt::XWindow > xWindow( xDockWindow, UNO_QUERY );
- if ( xWindow.is() )
- {
- // Set generic title for add-on toolbar
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow->GetText().Len() == 0 )
- pWindow->SetText( aGenericAddonTitle );
- if ( pWindow->GetType() == WINDOW_TOOLBOX )
- {
- ToolBox* pToolbar = (ToolBox *)pWindow;
- pToolbar->SetMenuType();
- }
- }
- }
- }
- catch ( NoSuchElementException& )
- {
- }
- catch ( IllegalArgumentException& )
- {
- }
- }
-}
-
-void LayoutManager::implts_createNonContextSensitiveToolBars()
-{
- ReadGuard aReadLock( m_aLock );
-
- if ( !m_xPersistentWindowState.is() ||
- !m_xFrame.is() ||
- !m_bComponentAttached )
- return;
-
- Reference< XFrame > xFrame( m_xFrame );
-
- Reference< XUIElementFactory > xUIElementFactory( m_xUIElementFactoryManager );
- Reference< XNameAccess > xPersistentWindowState( m_xPersistentWindowState );
- aReadLock.unlock();
-
- if ( implts_isPreviewModel( impl_getModelFromFrame( xFrame )))
- return;
-
- std::vector< rtl::OUString > aMakeVisibleToolbars;
-
- try
- {
- Sequence< rtl::OUString > aToolbarNames = xPersistentWindowState->getElementNames();
-
- if ( aToolbarNames.getLength() > 0 )
- {
- rtl::OUString aElementType;
- rtl::OUString aElementName;
- rtl::OUString aName;
-
- Reference< ::com::sun::star::ui::XUIElement > xUIElement;
- aMakeVisibleToolbars.reserve(aToolbarNames.getLength());
- WriteGuard aWriteLock( m_aLock );
-
- const rtl::OUString* pTbNames = aToolbarNames.getConstArray();
- for ( sal_Int32 i = 0; i < aToolbarNames.getLength(); i++ )
- {
- aName = pTbNames[i];
- if ( impl_parseResourceURL( aName, aElementType, aElementName ))
- {
- // Check that we only create:
- // - Toolbars (the statusbar is also member of the persistent window state)
- // - Not custom toolbars, there are created with their own method (implts_createCustomToolbars)
- if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ) &&
- aElementName.indexOf( m_aCustomTbxPrefix ) == -1 )
- {
- UIElement aNewToolbar( aName, aElementType, xUIElement );
- bool bFound = implts_findElement( aName, aNewToolbar );
- if ( !bFound )
- implts_readWindowStateData( aName, aNewToolbar );
-
- if ( aNewToolbar.m_bVisible &&
- !aNewToolbar.m_bContextSensitive )
- {
- if ( !bFound )
- implts_insertUIElement( aNewToolbar );
- aMakeVisibleToolbars.push_back( aName );
- }
- }
- }
- }
- }
- }
- catch ( RuntimeException& e )
- {
- throw e;
- }
- catch ( Exception& )
- {
- }
-
- if ( !aMakeVisibleToolbars.empty() )
- {
- implts_lock();
- ::std::for_each( aMakeVisibleToolbars.begin(), aMakeVisibleToolbars.end(),::boost::bind( &LayoutManager::requestElement, this,_1 ));
- implts_unlock();
- }
-}
-
void LayoutManager::implts_toggleFloatingUIElementsVisibility( sal_Bool bActive )
{
- WriteGuard aWriteLock( m_aLock );
- UIElementVector::iterator pIter;
-
- ReadGuard aReadLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_xUIElement.is() )
- {
- Reference< css::awt::XDockableWindow > xDockWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XWindow > xWindow( xDockWindow, UNO_QUERY );
- if ( xDockWindow.is() && xWindow.is() )
- {
- sal_Bool bVisible( sal_True );
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow )
- bVisible = pWindow->IsVisible();
-
- if ( xDockWindow->isFloating() )
- {
- if ( bActive )
- {
- if ( !bVisible && pIter->m_bDeactiveHide )
- {
- pIter->m_bDeactiveHide = sal_False;
- // we need VCL here to pass special flags to Show()
- if( pWindow )
- pWindow->Show( sal_True, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
- //xWindow->setVisible( sal_True );
- }
- }
- else
- {
- if ( bVisible )
- {
- pIter->m_bDeactiveHide = sal_True;
- xWindow->setVisible( sal_False );
- }
- }
- }
- }
- }
- }
-}
-
-sal_Bool LayoutManager::implts_findElement( const rtl::OUString& aName, rtl::OUString& aElementType, rtl::OUString& aElementName, Reference< XUIElement >& xUIElement )
-{
- if ( impl_parseResourceURL( aName, aElementType, aElementName ))
- {
- if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
- {
- ReadGuard aReadLock( m_aLock );
- xUIElement = m_xMenuBar;
- return sal_True;
- }
- else if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) ||
- ( m_aStatusBarElement.m_aName == aName ))
- {
- ReadGuard aReadLock( m_aLock );
- xUIElement = m_aStatusBarElement.m_xUIElement;
- return sal_True;
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ))
- {
- ReadGuard aReadLock( m_aLock );
- xUIElement = m_aProgressBarElement.m_xUIElement;
- return sal_True;
- }
- else
- {
- UIElementVector::const_iterator pIter;
-
- ReadGuard aReadLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aName == aName )
- {
- xUIElement = pIter->m_xUIElement;
- return sal_True;
- }
- }
- }
- }
-
- return sal_False;
-}
-
-sal_Bool LayoutManager::implts_findElement( const Reference< XInterface >& xUIElement, UIElement& aElementData )
-{
- UIElementVector::const_iterator pIter;
-
ReadGuard aReadLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_xUIElement.is() )
- {
- Reference< XInterface > xIfac( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- if ( xIfac == xUIElement )
- {
- aElementData = *pIter;
- return sal_True;
- }
- }
- }
+ uno::Reference< ui::XUIConfigurationListener > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- return sal_False;
+ if ( pToolbarManager )
+ pToolbarManager->setFloatingToolbarsVisibility( bActive );
}
-sal_Bool LayoutManager::implts_findElement( const rtl::OUString& aName, UIElement& aElementData )
+uno::Reference< ui::XUIElement > LayoutManager::implts_findElement( const rtl::OUString& aName )
{
- UIElementVector::const_iterator pIter;
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
- ReadGuard aReadLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aName == aName )
- {
- aElementData = *pIter;
- return sal_True;
- }
- }
+ parseResourceURL( aName, aElementType, aElementName );
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
+ return m_xMenuBar;
+ else if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) || ( m_aStatusBarElement.m_aName == aName ))
+ return m_aStatusBarElement.m_xUIElement;
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ))
+ return m_aProgressBarElement.m_xUIElement;
- return sal_False;
+ return uno::Reference< ui::XUIElement >();
}
-LayoutManager::UIElement& LayoutManager::impl_findElement( const rtl::OUString& aName )
+UIElement& LayoutManager::impl_findElement( const rtl::OUString& aName )
{
static UIElement aEmptyElement;
- UIElementVector::iterator pIter;
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
- ReadGuard aReadLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aName == aName )
- return *pIter;
- }
+ parseResourceURL( aName, aElementType, aElementName );
+ if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) || ( m_aStatusBarElement.m_aName == aName ))
+ return m_aStatusBarElement;
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ))
+ return m_aProgressBarElement;
return aEmptyElement;
}
-sal_Bool LayoutManager::implts_insertUIElement( const UIElement& rUIElement )
-{
- UIElement aTempData;
- bool bFound = implts_findElement( rUIElement.m_aName, aTempData );
-
-#ifdef DBG_UTIL
- if ( bFound )
- {
- char aBuffer[256];
- const sal_Int32 MAX_NAME_LENGTH = 128;
- ::rtl::OString aName = ::rtl::OUStringToOString( rUIElement.m_aName, RTL_TEXTENCODING_ASCII_US );
- aName = aName.copy( ::std::min( MAX_NAME_LENGTH, aName.getLength() ));
- sprintf( aBuffer, "Try to insert an already existing user interface element (%s) into the list\n", aName.getStr() );
- DBG_ASSERT( bFound, aBuffer );
- }
-#endif
-
- bool bResult( false );
- if ( !bFound )
- {
- WriteGuard aWriteLock( m_aLock );
- m_aUIElements.push_back( rUIElement );
- bResult = true;
- }
- return bResult;
-}
-
-void LayoutManager::implts_writeNewStateData( const rtl::OUString aName, const Reference< css::awt::XWindow >& xWindow )
-{
- css::awt::Rectangle aPos;
- css::awt::Size aSize;
- sal_Bool bVisible( sal_False );
- sal_Bool bFloating( sal_True );
-
- if ( xWindow.is() )
- {
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- if ( xDockWindow.is() )
- bFloating = xDockWindow->isFloating();
-
- Reference< css::awt::XWindow2 > xWindow2( xWindow, UNO_QUERY );
- if( xWindow2.is() )
- {
- aPos = xWindow2->getPosSize();
- aSize = xWindow2->getOutputSize(); // always use output size for consistency
- bVisible = xWindow2->isVisible();
- }
- }
-
- WriteGuard aWriteLock( m_aLock );
- UIElement& rUIElement = impl_findElement( aName );
- if ( rUIElement.m_xUIElement.is() && xWindow.is() )
- {
- rUIElement.m_bVisible = bVisible;
- rUIElement.m_bFloating = bFloating;
- if ( bFloating )
- {
- rUIElement.m_aFloatingData.m_aPos = ::Point( aPos.X, aPos.Y );
- rUIElement.m_aFloatingData.m_aSize = ::Size( aSize.Width, aSize.Height );
- }
- }
-
- implts_writeWindowStateData( aName, rUIElement );
-
- aWriteLock.unlock();
-}
-
-void LayoutManager::implts_refreshContextToolbarsVisibility()
-{
- std::vector< UIElementVisibility > aToolbarVisibleVector;
-
- ReadGuard aReadLock( m_aLock );
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- if ( !m_bVisible || !m_bAutomaticToolbars )
- return;
-
- UIElementVisibility aUIElementVisible;
-
- UIElementVector::iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aType.equalsAsciiL( "toolbar", 7 ))
- {
- aUIElementVisible.aName = pIter->m_aName;
- aUIElementVisible.bVisible = pIter->m_bVisible;
- aToolbarVisibleVector.push_back( aUIElementVisible );
- }
- }
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- aReadLock.unlock();
-
- UIElement aUIElement;
- const sal_uInt32 nCount = aToolbarVisibleVector.size();
- for ( sal_uInt32 i = 0; i < nCount; i++ )
- {
- UIElementVisibility& rToolbar = aToolbarVisibleVector[i];
-
- sal_Bool bVisible = rToolbar.bVisible;
- if ( implts_readWindowStateData( rToolbar.aName, aUIElement ) &&
- aUIElement.m_bVisible != bVisible )
- {
- WriteGuard aWriteLock( m_aLock );
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- UIElement& rUIElement = impl_findElement( rToolbar.aName );
-
- if ( rUIElement.m_aName == rToolbar.aName )
- rUIElement.m_bVisible = aUIElement.m_bVisible;
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- aWriteLock.unlock();
- }
- }
-}
-
sal_Bool LayoutManager::implts_readWindowStateData( const rtl::OUString& aName, UIElement& rElementData )
{
sal_Bool bGetSettingsState( sal_False );
@@ -1394,7 +522,7 @@ sal_Bool LayoutManager::implts_readWindowStateData( const rtl::OUString& aName,
try
{
Sequence< PropertyValue > aWindowState;
- if ( xPersistentWindowState->getByName( aName ) >>= aWindowState )
+ if ( xPersistentWindowState->hasByName( aName ) && (xPersistentWindowState->getByName( aName ) >>= aWindowState) )
{
sal_Bool bValue( sal_False );
for ( sal_Int32 n = 0; n < aWindowState.getLength(); n++ )
@@ -1411,13 +539,13 @@ sal_Bool LayoutManager::implts_readWindowStateData( const rtl::OUString& aName,
}
else if ( aWindowState[n].Name == m_aPropDockingArea )
{
- ::com::sun::star::ui::DockingArea eDockingArea;
+ ui::DockingArea eDockingArea;
if ( aWindowState[n].Value >>= eDockingArea )
rElementData.m_aDockedData.m_nDockedArea = sal_Int16( eDockingArea );
}
else if ( aWindowState[n].Name == m_aPropDockPos )
{
- css::awt::Point aPoint;
+ awt::Point aPoint;
if ( aWindowState[n].Value >>= aPoint )
{
rElementData.m_aDockedData.m_aPos.X() = aPoint.X;
@@ -1426,7 +554,7 @@ sal_Bool LayoutManager::implts_readWindowStateData( const rtl::OUString& aName,
}
else if ( aWindowState[n].Name == m_aPropPos )
{
- css::awt::Point aPoint;
+ awt::Point aPoint;
if ( aWindowState[n].Value >>= aPoint )
{
rElementData.m_aFloatingData.m_aPos.X() = aPoint.X;
@@ -1435,7 +563,7 @@ sal_Bool LayoutManager::implts_readWindowStateData( const rtl::OUString& aName,
}
else if ( aWindowState[n].Name == m_aPropSize )
{
- css::awt::Size aSize;
+ awt::Size aSize;
if ( aWindowState[n].Value >>= aSize )
{
rElementData.m_aFloatingData.m_aSize.Width() = aSize.Width;
@@ -1487,7 +615,7 @@ sal_Bool LayoutManager::implts_readWindowStateData( const rtl::OUString& aName,
m_bGlobalSettings = sal_True;
aWriteLock2.unlock();
- css::uno::Any aValue;
+ uno::Any aValue;
sal_Bool bValue = sal_Bool();
if ( pGlobalSettings->GetStateInfo( GlobalSettings::UIELEMENT_TYPE_TOOLBAR,
GlobalSettings::STATEINFO_LOCKED,
@@ -1505,9 +633,7 @@ sal_Bool LayoutManager::implts_readWindowStateData( const rtl::OUString& aName,
return sal_True;
}
- catch ( NoSuchElementException& )
- {
- }
+ catch ( NoSuchElementException& ) {}
}
return sal_False;
@@ -1531,14 +657,12 @@ void LayoutManager::implts_writeWindowStateData( const rtl::OUString& aName, con
// Check persistent flag of the user interface element
xPropSet->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Persistent" ))) >>= bPersistent;
}
- catch ( com::sun::star::beans::UnknownPropertyException )
+ catch ( beans::UnknownPropertyException )
{
// Non-configurable elements should at least store their dimension/position
bPersistent = sal_True;
}
- catch ( com::sun::star::lang::WrappedTargetException )
- {
- }
+ catch ( lang::WrappedTargetException ) {}
}
if ( bPersistent && xPersistentWindowState.is() )
@@ -1547,49 +671,47 @@ void LayoutManager::implts_writeWindowStateData( const rtl::OUString& aName, con
{
Sequence< PropertyValue > aWindowState( 8 );
- aWindowState[0].Name = m_aPropDocked;
- aWindowState[0].Value = makeAny( sal_Bool( !rElementData.m_bFloating ));
- aWindowState[1].Name = m_aPropVisible;
- aWindowState[1].Value = makeAny( sal_Bool( rElementData.m_bVisible ));
+ aWindowState[0].Name = m_aPropDocked;
+ aWindowState[0].Value = makeAny( sal_Bool( !rElementData.m_bFloating ));
+ aWindowState[1].Name = m_aPropVisible;
+ aWindowState[1].Value = makeAny( sal_Bool( rElementData.m_bVisible ));
- aWindowState[2].Name = m_aPropDockingArea;
- aWindowState[2].Value = makeAny( static_cast< DockingArea >( rElementData.m_aDockedData.m_nDockedArea ) );
+ aWindowState[2].Name = m_aPropDockingArea;
+ aWindowState[2].Value = makeAny( static_cast< DockingArea >( rElementData.m_aDockedData.m_nDockedArea ) );
- css::awt::Point aPos;
+ awt::Point aPos;
aPos.X = rElementData.m_aDockedData.m_aPos.X();
aPos.Y = rElementData.m_aDockedData.m_aPos.Y();
- aWindowState[3].Name = m_aPropDockPos;
- aWindowState[3].Value <<= aPos;
+ aWindowState[3].Name = m_aPropDockPos;
+ aWindowState[3].Value <<= aPos;
aPos.X = rElementData.m_aFloatingData.m_aPos.X();
aPos.Y = rElementData.m_aFloatingData.m_aPos.Y();
- aWindowState[4].Name = m_aPropPos;
- aWindowState[4].Value <<= aPos;
+ aWindowState[4].Name = m_aPropPos;
+ aWindowState[4].Value <<= aPos;
- css::awt::Size aSize;
+ awt::Size aSize;
aSize.Width = rElementData.m_aFloatingData.m_aSize.Width();
aSize.Height = rElementData.m_aFloatingData.m_aSize.Height();
- aWindowState[5].Name = m_aPropSize;
- aWindowState[5].Value <<= aSize;
- aWindowState[6].Name = m_aPropUIName;
- aWindowState[6].Value = makeAny( rElementData.m_aUIName );
- aWindowState[7].Name = m_aPropLocked;
- aWindowState[7].Value = makeAny( rElementData.m_aDockedData.m_bLocked );
+ aWindowState[5].Name = m_aPropSize;
+ aWindowState[5].Value <<= aSize;
+ aWindowState[6].Name = m_aPropUIName;
+ aWindowState[6].Value = makeAny( rElementData.m_aUIName );
+ aWindowState[7].Name = m_aPropLocked;
+ aWindowState[7].Value = makeAny( rElementData.m_aDockedData.m_bLocked );
if ( xPersistentWindowState->hasByName( aName ))
{
- Reference< XNameReplace > xReplace( xPersistentWindowState, UNO_QUERY );
+ Reference< XNameReplace > xReplace( xPersistentWindowState, uno::UNO_QUERY );
xReplace->replaceByName( aName, makeAny( aWindowState ));
}
else
{
- Reference< XNameContainer > xInsert( xPersistentWindowState, UNO_QUERY );
+ Reference< XNameContainer > xInsert( xPersistentWindowState, uno::UNO_QUERY );
xInsert->insertByName( aName, makeAny( aWindowState ));
}
}
- catch ( Exception& )
- {
- }
+ catch ( Exception& ) {}
}
// Reset flag
@@ -1598,1450 +720,23 @@ void LayoutManager::implts_writeWindowStateData( const rtl::OUString& aName, con
aWriteLock.unlock();
}
-void LayoutManager::implts_setElementData( UIElement& rElement, const Reference< css::awt::XDockableWindow >& rDockWindow )
-{
- ReadGuard aReadLock( m_aLock );
- sal_Bool bShowElement( rElement.m_bVisible && !rElement.m_bMasterHide && m_bParentWindowVisible );
- aReadLock.unlock();
-
- Reference< css::awt::XDockableWindow > xDockWindow( rDockWindow );
- Reference< css::awt::XWindow2 > xWindow( xDockWindow, UNO_QUERY );
-
- Window* pWindow( 0 );
- ToolBox* pToolBox( 0 );
-
- if ( xDockWindow.is() && xWindow.is() )
- {
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow )
- {
- String aText = pWindow->GetText();
- if ( aText.Len() == 0 )
- pWindow->SetText( rElement.m_aUIName );
- if ( rElement.m_bNoClose )
- pWindow->SetStyle( pWindow->GetStyle() & ~WB_CLOSEABLE );
- if ( pWindow->GetType() == WINDOW_TOOLBOX )
- pToolBox = (ToolBox *)pWindow;
- }
- if ( pToolBox )
- {
- if (( rElement.m_nStyle < 0 ) ||
- ( rElement.m_nStyle > BUTTON_SYMBOLTEXT ))
- rElement.m_nStyle = BUTTON_SYMBOL;
- pToolBox->SetButtonType( (ButtonType)rElement.m_nStyle );
- if ( rElement.m_bNoClose )
- pToolBox->SetFloatStyle( pToolBox->GetFloatStyle() & ~WB_CLOSEABLE );
- }
- }
-
- if ( rElement.m_bFloating )
- {
- if ( pWindow )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- String aText = pWindow->GetText();
- if ( aText.Len() == 0 )
- pWindow->SetText( rElement.m_aUIName );
- }
-
- ::Point aPos( rElement.m_aFloatingData.m_aPos.X(),
- rElement.m_aFloatingData.m_aPos.Y() );
- sal_Bool bWriteData( sal_False );
- sal_Bool bUndefPos = ( rElement.m_aFloatingData.m_aPos.X() == SAL_MAX_INT32 ||
- rElement.m_aFloatingData.m_aPos.Y() == SAL_MAX_INT32 );
- sal_Bool bSetSize = ( rElement.m_aFloatingData.m_aSize.Width() != 0 &&
- rElement.m_aFloatingData.m_aSize.Height() != 0 );
- xDockWindow->setFloatingMode( sal_True );
- if ( bUndefPos )
- {
- aPos = implts_findNextCascadeFloatingPos();
- rElement.m_aFloatingData.m_aPos = aPos; // set new cascaded position
- bWriteData = sal_True;
- }
-
- if( bSetSize )
- xWindow->setOutputSize( AWTSize( rElement.m_aFloatingData.m_aSize ) );
- else
- {
- if( pToolBox )
- {
- // set an optimal initial floating size
- vos::OGuard aGuard( Application::GetSolarMutex() );
- ::Size aSize( pToolBox->CalcFloatingWindowSizePixel() );
- pToolBox->SetOutputSizePixel( aSize );
- }
- }
-
- // #i60882# IMPORTANT: Set position after size as it is
- // possible that we position some part of the toolbar
- // outside of the desktop. A default constructed toolbar
- // always has one line. Now VCL automatically
- // position the toolbar back into the desktop. Therefore
- // we resize the toolbar with the new (wrong) position.
- // To fix this problem we have to set the size BEFORE the
- // position.
- xWindow->setPosSize( aPos.X(), aPos.Y(), 0, 0,
- css::awt::PosSize::POS );
-
- if ( bWriteData )
- implts_writeWindowStateData( rElement.m_aName, rElement );
- if ( bShowElement && pWindow )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pWindow->Show( sal_True, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
- }
- }
- else
- {
- ::Point aDockPos;
- ::Point aPixelPos;
- sal_Bool bSetSize( sal_False );
- ::Size aSize;
-
- if ( pToolBox )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pToolBox->SetAlign( ImplConvertAlignment(rElement.m_aDockedData.m_nDockedArea ) );
- pToolBox->SetLineCount( 1 );
- if ( rElement.m_aDockedData.m_bLocked )
- xDockWindow->lock();
- aSize = pToolBox->CalcWindowSizePixel();
- bSetSize = sal_True;
-
- if (( rElement.m_aDockedData.m_aPos.X() == SAL_MAX_INT32 ) &&
- ( rElement.m_aDockedData.m_aPos.Y() == SAL_MAX_INT32 ))
- {
- implts_findNextDockingPos( (DockingArea)rElement.m_aDockedData.m_nDockedArea,
- aSize,
- aDockPos,
- aPixelPos );
- rElement.m_aDockedData.m_aPos = aDockPos;
- }
- }
-
- xWindow->setPosSize( aPixelPos.X(),
- aPixelPos.Y(),
- 0, 0,
- css::awt::PosSize::POS );
- if( bSetSize )
- xWindow->setOutputSize( AWTSize( aSize) );
-
- if ( bShowElement && pWindow )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pWindow->Show( sal_True );
- }
- }
- }
-}
-
-::Point LayoutManager::implts_findNextCascadeFloatingPos()
-{
- const sal_Int32 nHotZoneX = 50;
- const sal_Int32 nHotZoneY = 50;
- const sal_Int32 nCascadeIndentX = 15;
- const sal_Int32 nCascadeIndentY = 15;
-
- ReadGuard aReadLock( m_aLock );
- Reference< css::awt::XWindow > xContainerWindow = m_xContainerWindow;
- Reference< css::awt::XWindow > xTopDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP];
- Reference< css::awt::XWindow > xLeftDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT];
- aReadLock.unlock();
-
- ::Point aStartPos( nCascadeIndentX, nCascadeIndentY );
- ::Point aCurrPos( aStartPos );
- css::awt::Rectangle aRect;
-
- Window* pContainerWindow( 0 );
- if ( xContainerWindow.is() )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
- if ( pContainerWindow )
- aStartPos = pContainerWindow->OutputToScreenPixel( aStartPos );
- }
-
- // Determine size of top and left docking area
- css::awt::Rectangle aTopRect = xTopDockingWindow->getPosSize();
- css::awt::Rectangle aLeftRect = xLeftDockingWindow->getPosSize();
-
- aStartPos.X() += aLeftRect.Width + nCascadeIndentX;
- aStartPos.Y() += aTopRect.Height + nCascadeIndentY;
- aCurrPos = aStartPos;
-
- // Try to find a cascaded position for the new floating window
- UIElementVector::const_iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_xUIElement.is() )
- {
- Reference< css::awt::XDockableWindow > xDockWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XWindow > xWindow( xDockWindow, UNO_QUERY );
- if ( xDockWindow.is() && xDockWindow->isFloating() )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow && pWindow->IsVisible() )
- {
- css::awt::Rectangle aFloatRect = xWindow->getPosSize();
- if ((( aFloatRect.X - nHotZoneX ) <= aCurrPos.X() ) &&
- ( aFloatRect.X >= aCurrPos.X() ) &&
- (( aFloatRect.Y - nHotZoneY ) <= aCurrPos.Y() ) &&
- ( aFloatRect.Y >= aCurrPos.Y() ))
- {
- aCurrPos.X() = aFloatRect.X + nCascadeIndentX;
- aCurrPos.Y() = aFloatRect.Y + nCascadeIndentY;
- }
- }
- }
- }
- }
-
- return aCurrPos;
-}
-
-void LayoutManager::implts_findNextDockingPos( DockingArea DockingArea, const ::Size& aUIElementSize, ::Point& rVirtualPos, ::Point& rPixelPos )
-{
- ReadGuard aReadLock( m_aLock );
- Reference< css::awt::XWindow > xDockingWindow = m_xDockAreaWindows[DockingArea];
- ::Size aDockingWinSize;
- Window* pDockingWindow( 0 );
- aReadLock.unlock();
-
- if (( DockingArea < DockingArea_DOCKINGAREA_TOP ) ||
- ( DockingArea > DockingArea_DOCKINGAREA_RIGHT ))
- DockingArea = DockingArea_DOCKINGAREA_TOP;
-
- {
- // Retrieve output size from container Window
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pDockingWindow = VCLUnoHelper::GetWindow( xDockingWindow );
- if ( pDockingWindow )
- aDockingWinSize = pDockingWindow->GetOutputSizePixel();
- }
-
- sal_Int32 nFreeRowColPixelPos( 0 );
- sal_Int32 nMaxSpace( 0 );
- sal_Int32 nNeededSpace( 0 );
- sal_Int32 nTopDockingAreaSize( 0 );
-
- if (( DockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( DockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- nMaxSpace = aDockingWinSize.Width();
- nNeededSpace = aUIElementSize.Width();
- }
- else
- {
- nMaxSpace = aDockingWinSize.Height();
- nNeededSpace = aUIElementSize.Height();
- nTopDockingAreaSize = implts_getTopBottomDockingAreaSizes().Width();
- }
-
- std::vector< SingleRowColumnWindowData > aRowColumnsWindowData;
-
- implts_getDockingAreaElementInfos( DockingArea, aRowColumnsWindowData );
- sal_Int32 nPixelPos( 0 );
- const sal_uInt32 nCount = aRowColumnsWindowData.size();
- for ( sal_uInt32 i = 0; i < nCount; i++ )
- {
- SingleRowColumnWindowData& rRowColumnWindowData = aRowColumnsWindowData[i];
-
- if (( DockingArea == DockingArea_DOCKINGAREA_BOTTOM ) ||
- ( DockingArea == DockingArea_DOCKINGAREA_RIGHT ))
- nPixelPos += rRowColumnWindowData.nStaticSize;
-
- if ((( nMaxSpace - rRowColumnWindowData.nVarSize ) >= nNeededSpace ) ||
- ( rRowColumnWindowData.nSpace >= nNeededSpace ))
- {
- // Check current row where we can find the needed space
- sal_Int32 nCurrPos( 0 );
- const sal_uInt32 nWindowSizesCount = rRowColumnWindowData.aRowColumnWindowSizes.size();
- for ( sal_uInt32 j = 0; j < nWindowSizesCount; j++ )
- {
- css::awt::Rectangle rRect = rRowColumnWindowData.aRowColumnWindowSizes[j];
- sal_Int32& rSpace = rRowColumnWindowData.aRowColumnSpace[j];
- if (( DockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( DockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- if ( rSpace >= nNeededSpace )
- {
- rVirtualPos = ::Point( nCurrPos, rRowColumnWindowData.nRowColumn );
- if ( DockingArea == DockingArea_DOCKINGAREA_TOP )
- rPixelPos = ::Point( nCurrPos, nPixelPos );
- else
- rPixelPos = ::Point( nCurrPos, aDockingWinSize.Height() - nPixelPos );
- return;
- }
- nCurrPos = rRect.X + rRect.Width;
- }
- else
- {
- if ( rSpace >= nNeededSpace )
- {
- rVirtualPos = ::Point( rRowColumnWindowData.nRowColumn, nCurrPos );
- if ( DockingArea == DockingArea_DOCKINGAREA_LEFT )
- rPixelPos = ::Point( nPixelPos, nTopDockingAreaSize + nCurrPos );
- else
- rPixelPos = ::Point( aDockingWinSize.Width() - nPixelPos , nTopDockingAreaSize + nCurrPos );
- return;
- }
- nCurrPos = rRect.Y + rRect.Height;
- }
- }
-
- if (( nCurrPos + nNeededSpace ) <= nMaxSpace )
- {
- if (( DockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( DockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- rVirtualPos = ::Point( nCurrPos, rRowColumnWindowData.nRowColumn );
- if ( DockingArea == DockingArea_DOCKINGAREA_TOP )
- rPixelPos = ::Point( nCurrPos, nPixelPos );
- else
- rPixelPos = ::Point( nCurrPos, aDockingWinSize.Height() - nPixelPos );
- return;
- }
- else
- {
- rVirtualPos = ::Point( rRowColumnWindowData.nRowColumn, nCurrPos );
- if ( DockingArea == DockingArea_DOCKINGAREA_LEFT )
- rPixelPos = ::Point( nPixelPos, nTopDockingAreaSize + nCurrPos );
- else
- rPixelPos = ::Point( aDockingWinSize.Width() - nPixelPos , nTopDockingAreaSize + nCurrPos );
- return;
- }
- }
- }
-
- if (( DockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( DockingArea == DockingArea_DOCKINGAREA_LEFT ))
- nPixelPos += rRowColumnWindowData.nStaticSize;
- }
-
- sal_Int32 nNextFreeRowCol( 0 );
- sal_Int32 nRowColumnsCount = aRowColumnsWindowData.size();
- if ( nRowColumnsCount > 0 )
- nNextFreeRowCol = aRowColumnsWindowData[nRowColumnsCount-1].nRowColumn+1;
- else
- nNextFreeRowCol = 0;
-
- if ( nNextFreeRowCol == 0 )
- {
- if ( DockingArea == DockingArea_DOCKINGAREA_BOTTOM )
- nFreeRowColPixelPos = aDockingWinSize.Height() - aUIElementSize.Height();
- else if ( DockingArea == DockingArea_DOCKINGAREA_RIGHT )
- nFreeRowColPixelPos = aDockingWinSize.Width() - aUIElementSize.Width();
- }
-
- if (( DockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( DockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- rVirtualPos = ::Point( 0, nNextFreeRowCol );
- if ( DockingArea == DockingArea_DOCKINGAREA_TOP )
- rPixelPos = ::Point( 0, nFreeRowColPixelPos );
- else
- rPixelPos = ::Point( 0, aDockingWinSize.Height() - nFreeRowColPixelPos );
- }
- else
- {
- rVirtualPos = ::Point( nNextFreeRowCol, 0 );
- rPixelPos = ::Point( aDockingWinSize.Width() - nFreeRowColPixelPos, 0 );
- }
-}
-
::Size LayoutManager::implts_getContainerWindowOutputSize()
{
- ReadGuard aReadLock( m_aLock );
- Reference< css::awt::XWindow > xContainerWindow = m_xContainerWindow;
- ::Size aContainerWinSize;
+ ::Size aContainerWinSize;
Window* pContainerWindow( 0 );
- aReadLock.unlock();
// Retrieve output size from container Window
vos::OGuard aGuard( Application::GetSolarMutex() );
- pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+ pContainerWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
if ( pContainerWindow )
- return pContainerWindow->GetOutputSizePixel();
- else
- return ::Size();
-}
-
-void LayoutManager::implts_sortUIElements()
-{
- WriteGuard aWriteLock( m_aLock );
- UIElementVector::iterator pIterStart = m_aUIElements.begin();
- UIElementVector::iterator pIterEnd = m_aUIElements.end();
-
- std::stable_sort( pIterStart, pIterEnd ); // first created element should first
-
- // We have to reset our temporary flags.
- UIElementVector::iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- // why check, just set it to false
- //if ( pIter->m_bUserActive )
- pIter->m_bUserActive = sal_False;
- }
-
-#ifdef DBG_UTIL
- implts_checkElementContainer();
-#endif
- aWriteLock.unlock();
-}
-
-void LayoutManager::implts_getDockingAreaElementInfos( DockingArea eDockingArea, std::vector< SingleRowColumnWindowData >& rRowColumnsWindowData )
-{
- std::vector< UIElement > aWindowVector;
-
- if (( eDockingArea < DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockingArea > DockingArea_DOCKINGAREA_RIGHT ))
- eDockingArea = DockingArea_DOCKINGAREA_TOP;
-
- Reference< css::awt::XWindow > xDockAreaWindow;
-
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- ReadGuard aReadLock( m_aLock );
- aWindowVector.reserve(m_aUIElements.size());
- xDockAreaWindow = m_xDockAreaWindows[eDockingArea];
- UIElementVector::iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aDockedData.m_nDockedArea == eDockingArea && pIter->m_bVisible && !pIter->m_bFloating )
- {
- Reference< XUIElement > xUIElement( pIter->m_xUIElement );
- if ( xUIElement.is() )
- {
- Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- if ( xDockWindow.is() )
- {
- // docked windows
- aWindowVector.push_back( *pIter );
- }
- }
- }
- }
- aReadLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
-
- rRowColumnsWindowData.clear();
-
- // Collect data from windows that are on the same row/column
- sal_Int32 j;
- sal_Int32 nIndex( 0 );
- sal_Int32 nLastPos( 0 );
- sal_Int32 nCurrPos( -1 );
- sal_Int32 nLastRowColPixelPos( 0 );
- css::awt::Rectangle aDockAreaRect;
-
- if ( xDockAreaWindow.is() )
- aDockAreaRect = xDockAreaWindow->getPosSize();
-
- if ( eDockingArea == DockingArea_DOCKINGAREA_TOP )
- nLastRowColPixelPos = 0;
- else if ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM )
- nLastRowColPixelPos = aDockAreaRect.Height;
- else if ( eDockingArea == DockingArea_DOCKINGAREA_LEFT )
- nLastRowColPixelPos = 0;
- else
- nLastRowColPixelPos = aDockAreaRect.Width;
-
- const sal_uInt32 nCount = aWindowVector.size();
- for ( j = 0; j < sal_Int32( nCount); j++ )
- {
- const UIElement& rElement = aWindowVector[j];
- Reference< css::awt::XWindow > xWindow;
- Reference< XUIElement > xUIElement( rElement.m_xUIElement );
- css::awt::Rectangle aPosSize;
- if ( !lcl_checkUIElement(xUIElement,aPosSize,xWindow) )
- continue;
- if (( eDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- if ( nCurrPos == -1 )
- {
- nCurrPos = rElement.m_aDockedData.m_aPos.Y();
- nLastPos = 0;
-
- SingleRowColumnWindowData aRowColumnWindowData;
- aRowColumnWindowData.nRowColumn = nCurrPos;
- rRowColumnsWindowData.push_back( aRowColumnWindowData );
- }
-
- sal_Int32 nSpace( 0 );
- if ( rElement.m_aDockedData.m_aPos.Y() != nCurrPos )
- {
- if ( eDockingArea == DockingArea_DOCKINGAREA_TOP )
- nLastRowColPixelPos += rRowColumnsWindowData[nIndex].nStaticSize;
- else
- nLastRowColPixelPos -= rRowColumnsWindowData[nIndex].nStaticSize;
- ++nIndex;
- nLastPos = 0;
- nCurrPos = rElement.m_aDockedData.m_aPos.Y();
- SingleRowColumnWindowData aRowColumnWindowData;
- aRowColumnWindowData.nRowColumn = nCurrPos;
- rRowColumnsWindowData.push_back( aRowColumnWindowData );
- }
-
- // Calc space before an element and store it
- nSpace = ( rElement.m_aDockedData.m_aPos.X() - nLastPos );
- if ( rElement.m_aDockedData.m_aPos.X() >= nLastPos )
- {
- rRowColumnsWindowData[nIndex].nSpace += nSpace;
- nLastPos = rElement.m_aDockedData.m_aPos.X() + aPosSize.Width;
- }
- else
- {
- nSpace = 0;
- nLastPos += aPosSize.Width;
- }
- rRowColumnsWindowData[nIndex].aRowColumnSpace.push_back( nSpace );
-
- rRowColumnsWindowData[nIndex].aRowColumnWindows.push_back( xWindow );
- rRowColumnsWindowData[nIndex].aUIElementNames.push_back( rElement.m_aName );
- rRowColumnsWindowData[nIndex].aRowColumnWindowSizes.push_back(
- css::awt::Rectangle( rElement.m_aDockedData.m_aPos.X(),
- rElement.m_aDockedData.m_aPos.Y(),
- aPosSize.Width,
- aPosSize.Height ));
- if ( rRowColumnsWindowData[nIndex].nStaticSize < aPosSize.Height )
- rRowColumnsWindowData[nIndex].nStaticSize = aPosSize.Height;
- if ( eDockingArea == DockingArea_DOCKINGAREA_TOP )
- rRowColumnsWindowData[nIndex].aRowColumnRect = css::awt::Rectangle( 0, nLastRowColPixelPos,
- aDockAreaRect.Width, aPosSize.Height );
- else
- rRowColumnsWindowData[nIndex].aRowColumnRect = css::awt::Rectangle( 0, ( nLastRowColPixelPos - aPosSize.Height ),
- aDockAreaRect.Width, aPosSize.Height );
- rRowColumnsWindowData[nIndex].nVarSize += aPosSize.Width + nSpace;
- }
- else
- {
- if ( nCurrPos == -1 )
- {
- nCurrPos = rElement.m_aDockedData.m_aPos.X();
- nLastPos = 0;
-
- SingleRowColumnWindowData aRowColumnWindowData;
- aRowColumnWindowData.nRowColumn = nCurrPos;
- rRowColumnsWindowData.push_back( aRowColumnWindowData );
- }
-
- sal_Int32 nSpace( 0 );
- if ( rElement.m_aDockedData.m_aPos.X() != nCurrPos )
- {
- if ( eDockingArea == DockingArea_DOCKINGAREA_LEFT )
- nLastRowColPixelPos += rRowColumnsWindowData[nIndex].nStaticSize;
- else
- nLastRowColPixelPos -= rRowColumnsWindowData[nIndex].nStaticSize;
- ++nIndex;
- nLastPos = 0;
- nCurrPos = rElement.m_aDockedData.m_aPos.X();
- SingleRowColumnWindowData aRowColumnWindowData;
- aRowColumnWindowData.nRowColumn = nCurrPos;
- rRowColumnsWindowData.push_back( aRowColumnWindowData );
- }
-
- // Calc space before an element and store it
- nSpace = ( rElement.m_aDockedData.m_aPos.Y() - nLastPos );
- if ( rElement.m_aDockedData.m_aPos.Y() > nLastPos )
- {
- rRowColumnsWindowData[nIndex].nSpace += nSpace;
- nLastPos = rElement.m_aDockedData.m_aPos.Y() + aPosSize.Height;
- }
- else
- {
- nSpace = 0;
- nLastPos += aPosSize.Height;
- }
- rRowColumnsWindowData[nIndex].aRowColumnSpace.push_back( nSpace );
-
- rRowColumnsWindowData[nIndex].aRowColumnWindows.push_back( xWindow );
- rRowColumnsWindowData[nIndex].aUIElementNames.push_back( rElement.m_aName );
- rRowColumnsWindowData[nIndex].aRowColumnWindowSizes.push_back(
- css::awt::Rectangle( rElement.m_aDockedData.m_aPos.X(),
- rElement.m_aDockedData.m_aPos.Y(),
- aPosSize.Width,
- aPosSize.Height ));
- if ( rRowColumnsWindowData[nIndex].nStaticSize < aPosSize.Width )
- rRowColumnsWindowData[nIndex].nStaticSize = aPosSize.Width;
- if ( eDockingArea == DockingArea_DOCKINGAREA_LEFT )
- rRowColumnsWindowData[nIndex].aRowColumnRect = css::awt::Rectangle( nLastRowColPixelPos, 0,
- aPosSize.Width, aDockAreaRect.Height );
- else
- rRowColumnsWindowData[nIndex].aRowColumnRect = css::awt::Rectangle( ( nLastRowColPixelPos - aPosSize.Width ), 0,
- aPosSize.Width, aDockAreaRect.Height );
- rRowColumnsWindowData[nIndex].nVarSize += aPosSize.Height + nSpace;
- }
- }
-}
-
-void LayoutManager::implts_getDockingAreaElementInfoOnSingleRowCol( DockingArea eDockingArea, sal_Int32 nRowCol, SingleRowColumnWindowData& rRowColumnWindowData )
-{
- std::vector< UIElement > aWindowVector;
-
- if (( eDockingArea < DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockingArea > DockingArea_DOCKINGAREA_RIGHT ))
- eDockingArea = DockingArea_DOCKINGAREA_TOP;
-
- sal_Bool bHorzDockArea = (( eDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM ));
-
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- ReadGuard aReadLock( m_aLock );
- UIElementVector::iterator pIter;
- UIElementVector::iterator pEnd = m_aUIElements.end();
- for ( pIter = m_aUIElements.begin(); pIter != pEnd; pIter++ )
- {
- if ( pIter->m_aDockedData.m_nDockedArea == eDockingArea )
- {
- sal_Bool bSameRowCol = bHorzDockArea ?
- ( pIter->m_aDockedData.m_aPos.Y() == nRowCol ) :
- ( pIter->m_aDockedData.m_aPos.X() == nRowCol );
- Reference< XUIElement > xUIElement( pIter->m_xUIElement );
-
- if ( bSameRowCol && xUIElement.is() )
- {
- Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
- if ( xWindow.is() )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- if ( pWindow && pIter->m_bVisible && xDockWindow.is() && !pIter->m_bFloating )
- {
- // docked windows
- aWindowVector.push_back( *pIter );
- }
- }
- }
- }
- }
- aReadLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
-
- // Initialize structure
- rRowColumnWindowData.aUIElementNames.clear();
- rRowColumnWindowData.aRowColumnWindows.clear();
- rRowColumnWindowData.aRowColumnWindowSizes.clear();
- rRowColumnWindowData.aRowColumnSpace.clear();
- rRowColumnWindowData.nVarSize = 0;
- rRowColumnWindowData.nStaticSize = 0;
- rRowColumnWindowData.nSpace = 0;
- rRowColumnWindowData.nRowColumn = nRowCol;
-
- // Collect data from windows that are on the same row/column
- sal_Int32 j;
- sal_Int32 nLastPos( 0 );
-
- const sal_uInt32 nCount = aWindowVector.size();
- for ( j = 0; j < sal_Int32( nCount); j++ )
- {
- const UIElement& rElement = aWindowVector[j];
- Reference< css::awt::XWindow > xWindow;
- Reference< XUIElement > xUIElement( rElement.m_xUIElement );
- css::awt::Rectangle aPosSize;
- if ( !lcl_checkUIElement(xUIElement,aPosSize,xWindow) )
- continue;
-
- sal_Int32 nSpace;
- if (( eDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- nSpace = ( rElement.m_aDockedData.m_aPos.X() - nLastPos );
-
- // Calc space before an element and store it
- if ( rElement.m_aDockedData.m_aPos.X() > nLastPos )
- rRowColumnWindowData.nSpace += nSpace;
- else
- nSpace = 0;
-
- nLastPos = rElement.m_aDockedData.m_aPos.X() + aPosSize.Width;
-
-
- rRowColumnWindowData.aRowColumnWindowSizes.push_back(
- css::awt::Rectangle( rElement.m_aDockedData.m_aPos.X(),
- rElement.m_aDockedData.m_aPos.Y(),
- aPosSize.Width,
- aPosSize.Height ));
- if ( rRowColumnWindowData.nStaticSize < aPosSize.Height )
- rRowColumnWindowData.nStaticSize = aPosSize.Height;
- rRowColumnWindowData.nVarSize += aPosSize.Width;
- }
- else
- {
- // Calc space before an element and store it
- nSpace = ( rElement.m_aDockedData.m_aPos.Y() - nLastPos );
- if ( rElement.m_aDockedData.m_aPos.Y() > nLastPos )
- rRowColumnWindowData.nSpace += nSpace;
- else
- nSpace = 0;
-
- nLastPos = rElement.m_aDockedData.m_aPos.Y() + aPosSize.Height;
-
- rRowColumnWindowData.aRowColumnWindowSizes.push_back(
- css::awt::Rectangle( rElement.m_aDockedData.m_aPos.X(),
- rElement.m_aDockedData.m_aPos.Y(),
- aPosSize.Width,
- aPosSize.Height ));
- if ( rRowColumnWindowData.nStaticSize < aPosSize.Width )
- rRowColumnWindowData.nStaticSize = aPosSize.Width;
- rRowColumnWindowData.nVarSize += aPosSize.Height;
- }
-
- rRowColumnWindowData.aUIElementNames.push_back( rElement.m_aName );
- rRowColumnWindowData.aRowColumnWindows.push_back( xWindow );
- rRowColumnWindowData.aRowColumnSpace.push_back( nSpace );
- rRowColumnWindowData.nVarSize += nSpace;
- }
-}
-
-::Rectangle LayoutManager::implts_determineFrontDockingRect(
- DockingArea eDockingArea,
- sal_Int32 nRowCol,
- const ::Rectangle& rDockedElementRect,
- const ::rtl::OUString& rMovedElementName,
- const ::Rectangle& rMovedElementRect )
-{
- SingleRowColumnWindowData aRowColumnWindowData;
-
- sal_Bool bHorzDockArea = (( eDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM ));
-
- implts_getDockingAreaElementInfoOnSingleRowCol( eDockingArea, nRowCol, aRowColumnWindowData );
- if ( aRowColumnWindowData.aRowColumnWindows.empty() )
- return rMovedElementRect;
- else
- {
- sal_Int32 nSpace( 0 );
- ::Rectangle aFrontDockingRect( rMovedElementRect );
- const sal_uInt32 nCount = aRowColumnWindowData.aRowColumnWindows.size();
- for ( sal_uInt32 i = 0; i < nCount; i++ )
- {
- if ( bHorzDockArea )
- {
- if ( aRowColumnWindowData.aRowColumnWindowSizes[i].X >= rDockedElementRect.Left() )
- {
- nSpace += aRowColumnWindowData.aRowColumnSpace[i];
- break;
- }
- else if ( aRowColumnWindowData.aUIElementNames[i] == rMovedElementName )
- nSpace += aRowColumnWindowData.aRowColumnWindowSizes[i].Width +
- aRowColumnWindowData.aRowColumnSpace[i];
- else
- nSpace = 0;
- }
- else
- {
- if ( aRowColumnWindowData.aRowColumnWindowSizes[i].Y >= rDockedElementRect.Top() )
- {
- nSpace += aRowColumnWindowData.aRowColumnSpace[i];
- break;
- }
- else if ( aRowColumnWindowData.aUIElementNames[i] == rMovedElementName )
- nSpace += aRowColumnWindowData.aRowColumnWindowSizes[i].Height +
- aRowColumnWindowData.aRowColumnSpace[i];
- else
- nSpace = 0;
- }
- }
-
- if ( nSpace > 0 )
- {
- sal_Int32 nMove = std::min( nSpace, static_cast<sal_Int32>(aFrontDockingRect.getWidth()) );
- if ( bHorzDockArea )
- aFrontDockingRect.Move( -nMove, 0 );
- else
- aFrontDockingRect.Move( 0, -nMove );
- }
-
- return aFrontDockingRect;
- }
-}
-
-::Rectangle LayoutManager::implts_getWindowRectFromRowColumn(
- ::com::sun::star::ui::DockingArea DockingArea,
- const SingleRowColumnWindowData& rRowColumnWindowData,
- const ::Point& rMousePos,
- const rtl::OUString& rExcludeElementName )
-{
- ::Rectangle aWinRect;
-
- if (( DockingArea < DockingArea_DOCKINGAREA_TOP ) ||
- ( DockingArea > DockingArea_DOCKINGAREA_RIGHT ))
- DockingArea = DockingArea_DOCKINGAREA_TOP;
-
- if ( rRowColumnWindowData.aRowColumnWindows.empty() )
- return aWinRect;
- else
- {
- ReadGuard aReadLock( m_aLock );
- Reference< css::awt::XWindow > xContainerWindow = m_xContainerWindow;
- Reference< css::awt::XWindow > xDockingAreaWindow = m_xDockAreaWindows[DockingArea];
- aReadLock.unlock();
-
- // Calc correct position of the column/row rectangle to be able to compare it with mouse pos/tracking rect
- vos::OGuard aGuard( Application::GetSolarMutex() );
-
- // Retrieve output size from container Window
- Window* pContainerWindow( VCLUnoHelper::GetWindow( xContainerWindow ));
- Window* pDockingAreaWindow( VCLUnoHelper::GetWindow( xDockingAreaWindow ));
- if ( pDockingAreaWindow && pContainerWindow )
- {
- const sal_uInt32 nCount = rRowColumnWindowData.aRowColumnWindows.size();
- for ( sal_uInt32 i = 0; i < nCount; i++ )
- {
- css::awt::Rectangle aWindowRect = rRowColumnWindowData.aRowColumnWindows[i]->getPosSize();
- ::Rectangle aRect( aWindowRect.X, aWindowRect.Y, aWindowRect.X+aWindowRect.Width, aWindowRect.Y+aWindowRect.Height );
- aRect.SetPos( pContainerWindow->ScreenToOutputPixel( pDockingAreaWindow->OutputToScreenPixel( aRect.TopLeft() )));
- if ( aRect.IsInside( rMousePos ))
- {
- // Check if we have found the excluded element. If yes, we have to provide an empty rectangle.
- // We prevent that a toolbar cannot be moved when the mouse pointer is inside its own rectangle!
- if ( rExcludeElementName != rRowColumnWindowData.aUIElementNames[i] )
- return aRect;
- else
- break;
- }
- }
- }
- }
-
- return aWinRect;
-}
-
-framework::LayoutManager::DockingOperation
-LayoutManager::implts_determineDockingOperation(
- ::com::sun::star::ui::DockingArea DockingArea,
- const ::Rectangle& rRowColRect,
- const Point& rMousePos )
-{
- const sal_Int32 nHorzVerticalRegionSize = 6;
- const sal_Int32 nHorzVerticalMoveRegion = 4;
-
- if ( rRowColRect.IsInside( rMousePos ))
- {
- if (( DockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( DockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- sal_Int32 nRegion = rRowColRect.getHeight() / nHorzVerticalRegionSize;
- sal_Int32 nPosY = rRowColRect.Top() + nRegion;
-
- if ( rMousePos.Y() < nPosY )
- return ( DockingArea == DockingArea_DOCKINGAREA_TOP ) ? DOCKOP_BEFORE_COLROW : DOCKOP_AFTER_COLROW;
- else if ( rMousePos.Y() < ( nPosY + nRegion*nHorzVerticalMoveRegion ))
- return DOCKOP_ON_COLROW;
- else
- return ( DockingArea == DockingArea_DOCKINGAREA_TOP ) ? DOCKOP_AFTER_COLROW : DOCKOP_BEFORE_COLROW;
- }
- else
- {
- sal_Int32 nRegion = rRowColRect.getWidth() / nHorzVerticalRegionSize;
- sal_Int32 nPosX = rRowColRect.Left() + nRegion;
-
- if ( rMousePos.X() < nPosX )
- return ( DockingArea == DockingArea_DOCKINGAREA_LEFT ) ? DOCKOP_BEFORE_COLROW : DOCKOP_AFTER_COLROW;
- else if ( rMousePos.X() < ( nPosX + nRegion*nHorzVerticalMoveRegion ))
- return DOCKOP_ON_COLROW;
- else
- return ( DockingArea == DockingArea_DOCKINGAREA_LEFT ) ? DOCKOP_AFTER_COLROW : DOCKOP_BEFORE_COLROW;
- }
- }
- else
- return DOCKOP_ON_COLROW;
-}
-
-::Rectangle LayoutManager::implts_calcTrackingAndElementRect(
- ::com::sun::star::ui::DockingArea eDockingArea,
- sal_Int32 nRowCol,
- UIElement& rUIElement,
- const ::Rectangle& rTrackingRect,
- const ::Rectangle& rRowColumnRect,
- const ::Size& rContainerWinSize )
-{
- sal_Bool bHorizontalDockArea( ( eDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM ));
-
- sal_Int32 nTopDockingAreaSize( implts_getTopBottomDockingAreaSizes().Width() );
- sal_Int32 nBottomDockingAreaSize( implts_getTopBottomDockingAreaSizes().Height() );
-
- ::Size aStatusBarSize( implts_getStatusBarSize() );
- sal_Int32 nMaxLeftRightDockAreaSize = rContainerWinSize.Height() -
- nTopDockingAreaSize -
- nBottomDockingAreaSize -
- aStatusBarSize.Height();
-
- ::Rectangle aTrackingRect( rTrackingRect );
- if ( bHorizontalDockArea )
- {
- sal_Int32 nPosX( std::max( sal_Int32( rTrackingRect.Left()), sal_Int32( 0 )));
- if (( nPosX + rTrackingRect.getWidth()) > rContainerWinSize.Width() )
- nPosX = std::min( nPosX,
- std::max( sal_Int32( rContainerWinSize.Width() - rTrackingRect.getWidth() ),
- sal_Int32( 0 )));
-
- sal_Int32 nSize = std::min( rContainerWinSize.Width(), rTrackingRect.getWidth() );
-
- aTrackingRect.SetPos( ::Point( nPosX, rRowColumnRect.Top() ));
- aTrackingRect.setWidth( nSize );
- aTrackingRect.setHeight( rRowColumnRect.getHeight() );
-
- // Set virtual position
- rUIElement.m_aDockedData.m_aPos.X() = nPosX;
- rUIElement.m_aDockedData.m_aPos.Y() = nRowCol;
- }
- else
- {
- sal_Int32 nMaxDockingAreaHeight = std::max( sal_Int32( 0 ),
- sal_Int32( nMaxLeftRightDockAreaSize ));
-
- sal_Int32 nPosY( std::max( sal_Int32( aTrackingRect.Top()), sal_Int32( nTopDockingAreaSize )));
- if (( nPosY + aTrackingRect.getHeight()) > ( nTopDockingAreaSize + nMaxDockingAreaHeight ))
- nPosY = std::min( nPosY,
- std::max( sal_Int32( nTopDockingAreaSize + ( nMaxDockingAreaHeight - aTrackingRect.getHeight() )),
- sal_Int32( nTopDockingAreaSize )));
-
- sal_Int32 nSize = std::min( nMaxDockingAreaHeight, static_cast<sal_Int32>(aTrackingRect.getHeight()) );
-
- aTrackingRect.SetPos( ::Point( rRowColumnRect.Left(), nPosY ));
- aTrackingRect.setWidth( rRowColumnRect.getWidth() );
- aTrackingRect.setHeight( nSize );
-
- ReadGuard aReadLock( m_aLock );
- Reference< css::awt::XWindow > xDockingAreaWindow = m_xDockAreaWindows[eDockingArea];
- Reference< css::awt::XWindow > xContainerWindow = m_xContainerWindow;
- aReadLock.unlock();
-
- sal_Int32 nDockPosY( 0 );
- Window* pDockingAreaWindow( 0 );
- Window* pContainerWindow( 0 );
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pDockingAreaWindow = VCLUnoHelper::GetWindow( xDockingAreaWindow );
- pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
- nDockPosY = pDockingAreaWindow->ScreenToOutputPixel(
- pContainerWindow->OutputToScreenPixel( ::Point( 0, nPosY ))).Y();
- }
-
- // Set virtual position
- rUIElement.m_aDockedData.m_aPos.X() = nRowCol;
- rUIElement.m_aDockedData.m_aPos.Y() = nDockPosY;
- }
-
- return aTrackingRect;
-}
-
-void implts_setTrackingRect( DockingArea eDockingArea, const Point& rMousePos, ::Rectangle& rTrackingRect )
-{
- sal_Bool bHorizontalDockArea( ( eDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM ));
-
- ::Point aPoint = rTrackingRect.TopLeft();
- if ( bHorizontalDockArea )
- aPoint.X() = rMousePos.X();
- else
- aPoint.Y() = rMousePos.Y();
- rTrackingRect.SetPos( aPoint );
-}
-
-void LayoutManager::implts_calcDockingPosSize(
- UIElement& rUIElement,
- DockingOperation& rDockingOperation,
- ::Rectangle& rTrackingRect,
- const Point& rMousePos )
-{
- ReadGuard aReadLock( m_aLock );
- Reference< css::awt::XWindow > xContainerWindow = m_xContainerWindow;
- ::Size aContainerWinSize;
- Window* pContainerWindow( 0 );
- aReadLock.unlock();
-
- {
- // Retrieve output size from container Window
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
aContainerWinSize = pContainerWindow->GetOutputSizePixel();
- }
-
- if ( !rUIElement.m_xUIElement.is() )
- {
- rTrackingRect = ::Rectangle();
- return;
- }
-
- Window* pDockWindow( 0 );
- Window* pDockingAreaWindow( 0 );
- ToolBox* pToolBox( 0 );
- Reference< css::awt::XWindow > xWindow( rUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XWindow > xDockingAreaWindow;
- ::Rectangle aTrackingRect( rTrackingRect );
- ::com::sun::star::ui::DockingArea eDockedArea( (::com::sun::star::ui::DockingArea)rUIElement.m_aDockedData.m_nDockedArea );
- sal_Int32 nTopDockingAreaSize( implts_getTopBottomDockingAreaSizes().Width() );
- sal_Int32 nBottomDockingAreaSize( implts_getTopBottomDockingAreaSizes().Height() );
- sal_Bool bHorizontalDockArea( ( eDockedArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockedArea == DockingArea_DOCKINGAREA_BOTTOM ));
- ::Size aStatusBarSize( implts_getStatusBarSize() );
- sal_Int32 nMaxLeftRightDockAreaSize = aContainerWinSize.Height() -
- nTopDockingAreaSize -
- nBottomDockingAreaSize -
- aStatusBarSize.Height();
- ::Rectangle aDockingAreaRect;
-
- aReadLock.lock();
- xDockingAreaWindow = m_xDockAreaWindows[eDockedArea];
- aReadLock.unlock();
-
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pDockingAreaWindow = VCLUnoHelper::GetWindow( xDockingAreaWindow );
- pDockWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pDockWindow && pDockWindow->GetType() == WINDOW_TOOLBOX )
- pToolBox = (ToolBox *)pDockWindow;
-
- aDockingAreaRect = ::Rectangle( pDockingAreaWindow->GetPosPixel(), pDockingAreaWindow->GetSizePixel() );
- if ( pToolBox )
- {
- // docked toolbars always have one line
- ::Size aSize = pToolBox->CalcWindowSizePixel( 1, ImplConvertAlignment( sal_Int16( eDockedArea )) );
- aTrackingRect.SetSize( ::Size( aSize.Width(), aSize.Height() ));
- }
- }
-
- // default docking operation, dock on the given row/column
- sal_Bool bOpOutsideOfDockingArea( !aDockingAreaRect.IsInside( rMousePos ));
- std::vector< SingleRowColumnWindowData > aRowColumnsWindowData;
-
- rDockingOperation = DOCKOP_ON_COLROW;
- implts_getDockingAreaElementInfos( eDockedArea, aRowColumnsWindowData );
-
- // determine current first row/column and last row/column
- sal_Int32 nMaxRowCol( -1 );
- sal_Int32 nMinRowCol( SAL_MAX_INT32 );
- const sal_uInt32 nCount = aRowColumnsWindowData.size();
- for ( sal_uInt32 i = 0; i < nCount; i++ )
- {
- if ( aRowColumnsWindowData[i].nRowColumn > nMaxRowCol )
- nMaxRowCol = aRowColumnsWindowData[i].nRowColumn;
- if ( aRowColumnsWindowData[i].nRowColumn < nMinRowCol )
- nMinRowCol = aRowColumnsWindowData[i].nRowColumn;
- }
-
- if ( !bOpOutsideOfDockingArea )
- {
- // docking inside our docking area
- sal_Int32 nIndex( -1 );
- sal_Int32 nRowCol( -1 );
- ::Rectangle aWindowRect;
- ::Rectangle aRowColumnRect;
-
- const sal_uInt32 nWindowDataCount = aRowColumnsWindowData.size();
- for ( sal_uInt32 i = 0; i < nWindowDataCount; i++ )
- {
- ::Rectangle aRect( aRowColumnsWindowData[i].aRowColumnRect.X,
- aRowColumnsWindowData[i].aRowColumnRect.Y,
- aRowColumnsWindowData[i].aRowColumnRect.X + aRowColumnsWindowData[i].aRowColumnRect.Width,
- aRowColumnsWindowData[i].aRowColumnRect.Y + aRowColumnsWindowData[i].aRowColumnRect.Height );
-
- {
- // Calc correct position of the column/row rectangle to be able to compare it with mouse pos/tracking rect
- vos::OGuard aGuard( Application::GetSolarMutex() );
- aRect.SetPos( pContainerWindow->ScreenToOutputPixel( pDockingAreaWindow->OutputToScreenPixel( aRect.TopLeft() )));
- }
-
- sal_Bool bIsInsideRowCol( aRect.IsInside( rMousePos ) );
- if ( bIsInsideRowCol )
- {
- nIndex = i;
- nRowCol = aRowColumnsWindowData[i].nRowColumn;
- rDockingOperation = implts_determineDockingOperation( eDockedArea, aRect, rMousePos );
- aWindowRect = implts_getWindowRectFromRowColumn( eDockedArea, aRowColumnsWindowData[i], rMousePos, rUIElement.m_aName );
- aRowColumnRect = aRect;
- break;
- }
- }
-
- OSL_ENSURE( ( nIndex >= 0 ) && ( nRowCol >= 0 ), "Impossible case - no row/column found but mouse pointer is inside our docking area" );
- if (( nIndex >= 0 ) && ( nRowCol >= 0 ))
- {
- if ( rDockingOperation == DOCKOP_ON_COLROW )
- {
- if ( !aWindowRect.IsEmpty())
- {
- // Tracking rect is on a row/column and mouse is over a docked toolbar.
- // Determine if the tracking rect must be located before/after the docked toolbar.
-
- ::Rectangle aUIElementRect( aWindowRect );
- sal_Int32 nMiddle( bHorizontalDockArea ? ( aWindowRect.Left() + aWindowRect.getWidth() / 2 ) :
- ( aWindowRect.Top() + aWindowRect.getHeight() / 2 ));
- sal_Bool bInsertBefore( bHorizontalDockArea ? ( rMousePos.X() < nMiddle ) : ( rMousePos.Y() < nMiddle ));
- if ( bInsertBefore )
- {
- if ( bHorizontalDockArea )
- {
- sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32( aContainerWinSize.Width() - aWindowRect.Left() ),
- sal_Int32( aTrackingRect.getWidth() )));
- if ( nSize == 0 )
- nSize = aWindowRect.getWidth();
-
- aUIElementRect.SetSize( ::Size( nSize, aWindowRect.getHeight() ));
- aWindowRect = implts_determineFrontDockingRect( eDockedArea, nRowCol, aWindowRect,rUIElement.m_aName, aUIElementRect );
-
- // Set virtual position
- rUIElement.m_aDockedData.m_aPos.X() = aWindowRect.Left();
- rUIElement.m_aDockedData.m_aPos.Y() = nRowCol;
- }
- else
- {
- sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32(
- nTopDockingAreaSize + nMaxLeftRightDockAreaSize - aWindowRect.Top() ),
- sal_Int32( aTrackingRect.getHeight() )));
- if ( nSize == 0 )
- nSize = aWindowRect.getHeight();
-
- aUIElementRect.SetSize( ::Size( aWindowRect.getWidth(), nSize ));
- aWindowRect = implts_determineFrontDockingRect( eDockedArea, nRowCol, aWindowRect, rUIElement.m_aName, aUIElementRect );
-
- // Set virtual position
- sal_Int32 nPosY = pDockingAreaWindow->ScreenToOutputPixel(
- pContainerWindow->OutputToScreenPixel( aWindowRect.TopLeft() )).Y();
- rUIElement.m_aDockedData.m_aPos.X() = nRowCol;
- rUIElement.m_aDockedData.m_aPos.Y() = nPosY;
- }
-
- rTrackingRect = aWindowRect;
- return;
- }
- else
- {
- if ( bHorizontalDockArea )
- {
- sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32(( aContainerWinSize.Width() ) - aWindowRect.Right() ),
- sal_Int32( aTrackingRect.getWidth() )));
- if ( nSize == 0 )
- {
- aUIElementRect.SetPos( ::Point( aContainerWinSize.Width() - aTrackingRect.getWidth(), aWindowRect.Top() ));
- aUIElementRect.SetSize( ::Size( aTrackingRect.getWidth(), aWindowRect.getHeight() ));
- rUIElement.m_aDockedData.m_aPos.X() = aUIElementRect.Left();
- }
- else
- {
- aUIElementRect.SetPos( ::Point( aWindowRect.Right(), aWindowRect.Top() ));
- aUIElementRect.SetSize( ::Size( nSize, aWindowRect.getHeight() ));
- rUIElement.m_aDockedData.m_aPos.X() = aWindowRect.Right();
- }
-
- // Set virtual position
- rUIElement.m_aDockedData.m_aPos.Y() = nRowCol;
- }
- else
- {
- sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32( nTopDockingAreaSize + nMaxLeftRightDockAreaSize - aWindowRect.Bottom() ),
- sal_Int32( aTrackingRect.getHeight() )));
- aUIElementRect.SetPos( ::Point( aWindowRect.Left(), aWindowRect.Bottom() ));
- aUIElementRect.SetSize( ::Size( aWindowRect.getWidth(), nSize ));
- // Set virtual position
- sal_Int32 nPosY( 0 );
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- nPosY = pDockingAreaWindow->ScreenToOutputPixel(
- pContainerWindow->OutputToScreenPixel( aWindowRect.BottomRight() )).Y();
- }
- rUIElement.m_aDockedData.m_aPos.X() = nRowCol;
- rUIElement.m_aDockedData.m_aPos.Y() = nPosY;
- }
-
- rTrackingRect = aUIElementRect;
- return;
- }
- }
- else
- {
- implts_setTrackingRect( eDockedArea, rMousePos, aTrackingRect );
- rTrackingRect = implts_calcTrackingAndElementRect(
- eDockedArea, nRowCol, rUIElement,
- aTrackingRect, aRowColumnRect, aContainerWinSize );
- return;
- }
- }
- else
- {
- if ((( nRowCol == nMinRowCol ) && ( rDockingOperation == DOCKOP_BEFORE_COLROW )) ||
- (( nRowCol == nMaxRowCol ) && ( rDockingOperation == DOCKOP_AFTER_COLROW )))
- bOpOutsideOfDockingArea = sal_True;
- else
- {
- // handle docking before/after a row
- implts_setTrackingRect( eDockedArea, rMousePos, aTrackingRect );
- rTrackingRect = implts_calcTrackingAndElementRect(
- eDockedArea, nRowCol, rUIElement,
- aTrackingRect, aRowColumnRect, aContainerWinSize );
-
- sal_Int32 nOffsetX( 0 );
- sal_Int32 nOffsetY( 0 );
- if ( bHorizontalDockArea )
- nOffsetY = sal_Int32( floor( aRowColumnRect.getHeight() / 2 + 0.5 ));
- else
- nOffsetX = sal_Int32( floor( aRowColumnRect.getWidth() / 2 + 0.5 ));
-
- if ( rDockingOperation == DOCKOP_BEFORE_COLROW )
- {
- if (( eDockedArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockedArea == DockingArea_DOCKINGAREA_LEFT ))
- {
- // Docking before/after means move track rectangle half column/row.
- // As left and top are ordered 0...n instead of right and bottom
- // which uses n...0, we have to use negative values for top/left.
- nOffsetX *= -1;
- nOffsetY *= -1;
- }
- }
- else
- {
- if (( eDockedArea == DockingArea_DOCKINGAREA_BOTTOM ) ||
- ( eDockedArea == DockingArea_DOCKINGAREA_RIGHT ))
- {
- // Docking before/after means move track rectangle half column/row.
- // As left and top are ordered 0...n instead of right and bottom
- // which uses n...0, we have to use negative values for top/left.
- nOffsetX *= -1;
- nOffsetY *= -1;
- }
- nRowCol++;
- }
-
- if ( bHorizontalDockArea )
- rUIElement.m_aDockedData.m_aPos.Y() = nRowCol;
- else
- rUIElement.m_aDockedData.m_aPos.X() = nRowCol;
-
- rTrackingRect.Move( nOffsetX, nOffsetY );
- rTrackingRect.SetSize( aTrackingRect.GetSize() );
- }
- }
- }
- }
-
- // Docking outside of our docking window area =>
- // Users want to dock before/after first/last docked element or to an empty docking area
- if ( bOpOutsideOfDockingArea )
- {
- // set correct size for docking
- implts_setTrackingRect( eDockedArea, rMousePos, aTrackingRect );
- rTrackingRect = aTrackingRect;
-
- if ( bHorizontalDockArea )
- {
- sal_Int32 nPosX( std::max( sal_Int32( rTrackingRect.Left()), sal_Int32( 0 )));
- if (( nPosX + rTrackingRect.getWidth()) > aContainerWinSize.Width() )
- nPosX = std::min( nPosX,
- std::max( sal_Int32( aContainerWinSize.Width() - rTrackingRect.getWidth() ),
- sal_Int32( 0 )));
-
- sal_Int32 nSize = std::min( aContainerWinSize.Width(), rTrackingRect.getWidth() );
- sal_Int32 nDockHeight = std::max( static_cast<sal_Int32>(aDockingAreaRect.getHeight()), sal_Int32( 0 ));
- if ( nDockHeight == 0 )
- {
- sal_Int32 nPosY( std::max( aDockingAreaRect.Top(), aDockingAreaRect.Bottom() ));
- if ( eDockedArea == DockingArea_DOCKINGAREA_BOTTOM )
- nPosY -= rTrackingRect.getHeight();
- rTrackingRect.SetPos( Point( nPosX, nPosY ));
- rUIElement.m_aDockedData.m_aPos.Y() = 0;
- }
- else if ( rMousePos.Y() < ( aDockingAreaRect.Top() + ( nDockHeight / 2 )))
- {
- rTrackingRect.SetPos( Point( nPosX, aDockingAreaRect.Top() - rTrackingRect.getHeight() ));
- if ( eDockedArea == DockingArea_DOCKINGAREA_TOP )
- rUIElement.m_aDockedData.m_aPos.Y() = 0;
- else
- rUIElement.m_aDockedData.m_aPos.Y() = ( nMaxRowCol >= 0 ) ? nMaxRowCol+1 : 0;
- rDockingOperation = DOCKOP_BEFORE_COLROW;
- }
- else
- {
- rTrackingRect.SetPos( Point( nPosX, aDockingAreaRect.Bottom() ));
- if ( eDockedArea == DockingArea_DOCKINGAREA_TOP )
- rUIElement.m_aDockedData.m_aPos.Y() = ( nMaxRowCol >= 0 ) ? nMaxRowCol+1 : 0;
- else
- rUIElement.m_aDockedData.m_aPos.Y() = 0;
- rDockingOperation = DOCKOP_AFTER_COLROW;
- }
- rTrackingRect.setWidth( nSize );
-
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- nPosX = pDockingAreaWindow->ScreenToOutputPixel(
- pContainerWindow->OutputToScreenPixel( rTrackingRect.TopLeft() )).X();
- }
- rUIElement.m_aDockedData.m_aPos.X() = nPosX;
- }
- else
- {
- sal_Int32 nMaxDockingAreaHeight = std::max( sal_Int32( 0 ),
- sal_Int32( nMaxLeftRightDockAreaSize ));
-
- sal_Int32 nPosY( std::max( sal_Int32( aTrackingRect.Top()), sal_Int32( nTopDockingAreaSize )));
- if (( nPosY + aTrackingRect.getHeight()) > ( nTopDockingAreaSize + nMaxDockingAreaHeight ))
- nPosY = std::min( nPosY,
- std::max( sal_Int32( nTopDockingAreaSize + ( nMaxDockingAreaHeight - aTrackingRect.getHeight() )),
- sal_Int32( nTopDockingAreaSize )));
-
- sal_Int32 nSize = std::min( nMaxDockingAreaHeight, static_cast<sal_Int32>(aTrackingRect.getHeight()) );
- sal_Int32 nDockWidth = std::max( static_cast<sal_Int32>(aDockingAreaRect.getWidth()), sal_Int32( 0 ));
- if ( nDockWidth == 0 )
- {
- sal_Int32 nPosX( std::max( aDockingAreaRect.Left(), aDockingAreaRect.Right() ));
- if ( eDockedArea == DockingArea_DOCKINGAREA_RIGHT )
- nPosX -= rTrackingRect.getWidth();
- rTrackingRect.SetPos( Point( nPosX, nPosY ));
- rUIElement.m_aDockedData.m_aPos.X() = 0;
- }
- else if ( rMousePos.X() < ( aDockingAreaRect.Left() + ( nDockWidth / 2 )))
- {
- rTrackingRect.SetPos( Point( aDockingAreaRect.Left() - rTrackingRect.getWidth(), nPosY ));
- if ( eDockedArea == DockingArea_DOCKINGAREA_LEFT )
- rUIElement.m_aDockedData.m_aPos.X() = 0;
- else
- rUIElement.m_aDockedData.m_aPos.X() = ( nMaxRowCol >= 0 ) ? nMaxRowCol+1 : 0;
- rDockingOperation = DOCKOP_BEFORE_COLROW;
- }
- else
- {
- rTrackingRect.SetPos( Point( aDockingAreaRect.Right(), nPosY ));
- if ( eDockedArea == DockingArea_DOCKINGAREA_LEFT )
- rUIElement.m_aDockedData.m_aPos.X() = ( nMaxRowCol >= 0 ) ? nMaxRowCol+1 : 0;
- else
- rUIElement.m_aDockedData.m_aPos.X() = 0;
- rDockingOperation = DOCKOP_AFTER_COLROW;
- }
- rTrackingRect.setHeight( nSize );
-
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- nPosY = pDockingAreaWindow->ScreenToOutputPixel(
- pContainerWindow->OutputToScreenPixel( rTrackingRect.TopLeft() )).Y();
- }
- rUIElement.m_aDockedData.m_aPos.Y() = nPosY;
- }
- }
-}
-
-void LayoutManager::implts_renumberRowColumnData(
- ::com::sun::star::ui::DockingArea eDockingArea,
- DockingOperation /*eDockingOperation*/,
- const UIElement& rUIElement )
-{
- ReadGuard aReadLock( m_aLock );
- Reference< XNameAccess > xPersistentWindowState( m_xPersistentWindowState );
- aReadLock.unlock();
-
- sal_Bool bHorzDockingArea(( eDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM ));
- sal_Int32 nRowCol( bHorzDockingArea ? rUIElement.m_aDockedData.m_aPos.Y() :
- rUIElement.m_aDockedData.m_aPos.X() );
-
- WriteGuard aWriteLock( m_aLock );
- UIElementVector::iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if (( pIter->m_aDockedData.m_nDockedArea == sal_Int16( eDockingArea )) &&
- ( pIter->m_aName != rUIElement.m_aName ))
- {
- // Don't change toolbars without a valid docking position!
- if (( pIter->m_aDockedData.m_aPos.X() == SAL_MAX_INT32 ) &&
- ( pIter->m_aDockedData.m_aPos.Y() == SAL_MAX_INT32 ))
- continue;
-
- sal_Int32 nWindowRowCol = ( bHorzDockingArea ) ?
- pIter->m_aDockedData.m_aPos.Y() : pIter->m_aDockedData.m_aPos.X();
- if ( nWindowRowCol >= nRowCol )
- {
- if ( bHorzDockingArea )
- pIter->m_aDockedData.m_aPos.Y() += 1;
- else
- pIter->m_aDockedData.m_aPos.X() += 1;
- }
- }
- }
- aWriteLock.unlock();
-
- // We have to change the persistent window state part
- if ( xPersistentWindowState.is() )
- {
- try
- {
- Sequence< rtl::OUString > aWindowElements = xPersistentWindowState->getElementNames();
- for ( sal_Int32 i = 0; i < aWindowElements.getLength(); i++ )
- {
- if ( rUIElement.m_aName != aWindowElements[i] )
- {
- try
- {
- Sequence< PropertyValue > aPropValueSeq;
- css::awt::Point aDockedPos;
- DockingArea nDockedArea( DockingArea_DOCKINGAREA_DEFAULT );
-
- xPersistentWindowState->getByName( aWindowElements[i] ) >>= aPropValueSeq;
- for ( sal_Int32 j = 0; j < aPropValueSeq.getLength(); j++ )
- {
- if ( aPropValueSeq[j].Name == m_aPropDockingArea )
- aPropValueSeq[j].Value >>= nDockedArea;
- else if ( aPropValueSeq[j].Name == m_aPropDockPos )
- aPropValueSeq[j].Value >>= aDockedPos;
- }
-
- // Don't change toolbars without a valid docking position!
- if (( aDockedPos.X == SAL_MAX_INT32 ) && ( aDockedPos.Y == SAL_MAX_INT32 ))
- continue;
-
- sal_Int32 nWindowRowCol = ( bHorzDockingArea ) ? aDockedPos.Y : aDockedPos.X;
- if (( nDockedArea == eDockingArea ) && ( nWindowRowCol >= nRowCol ))
- {
- if ( bHorzDockingArea )
- aDockedPos.Y += 1;
- else
- aDockedPos.X += 1;
-
- Reference< XNameReplace > xReplace( xPersistentWindowState, UNO_QUERY );
- xReplace->replaceByName( aWindowElements[i], makeAny( aPropValueSeq ));
- }
- }
- catch ( Exception& )
- {
- }
- }
- }
- }
- catch ( Exception& )
- {
- }
- }
-}
-
-::Size LayoutManager::implts_getTopBottomDockingAreaSizes()
-{
- ::Size aSize;
- Reference< css::awt::XWindow > xTopDockingAreaWindow;
- Reference< css::awt::XWindow > xBottomDockingAreaWindow;
-
- ReadGuard aReadLock( m_aLock );
- xTopDockingAreaWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP];
- xBottomDockingAreaWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM];
- aReadLock.unlock();
-
- if ( xTopDockingAreaWindow.is() )
- aSize.Width() = xTopDockingAreaWindow->getPosSize().Height;
- if ( xBottomDockingAreaWindow.is() )
- aSize.Height() = xBottomDockingAreaWindow->getPosSize().Height;
-
- return aSize;
+ return aContainerWinSize;
}
Reference< XUIElement > LayoutManager::implts_createElement( const rtl::OUString& aName )
{
- Reference< ::com::sun::star::ui::XUIElement > xUIElement;
+ Reference< ui::XUIElement > xUIElement;
ReadGuard aReadLock( m_aLock );
Sequence< PropertyValue > aPropSeq( 2 );
@@ -3054,121 +749,39 @@ Reference< XUIElement > LayoutManager::implts_createElement( const rtl::OUString
{
xUIElement = m_xUIElementFactoryManager->createUIElement( aName, aPropSeq );
}
- catch ( NoSuchElementException& )
- {
- }
- catch ( IllegalArgumentException& )
- {
- }
+ catch ( NoSuchElementException& ) {}
+ catch ( IllegalArgumentException& ) {}
return xUIElement;
}
-Reference< css::awt::XWindowPeer > LayoutManager::implts_createToolkitWindow( const Reference< css::awt::XWindowPeer >& rParent )
-{
- Reference< css::awt::XWindowPeer > xPeer;
- css::uno::Reference< css::awt::XToolkit > xToolkit( m_xSMGR->createInstance( SERVICENAME_VCLTOOLKIT ), css::uno::UNO_QUERY );
- if ( xToolkit.is() )
- {
- // describe window properties.
- css::awt::WindowDescriptor aDescriptor;
- aDescriptor.Type = css::awt::WindowClass_SIMPLE ;
- aDescriptor.WindowServiceName = DECLARE_ASCII("dockingarea") ;
- aDescriptor.ParentIndex = -1 ;
- aDescriptor.Parent = css::uno::Reference< css::awt::XWindowPeer >( rParent, UNO_QUERY ) ;
- aDescriptor.Bounds = css::awt::Rectangle(0,0,0,0) ;
- aDescriptor.WindowAttributes = 0 ;
-
- // create a docking area window
- xPeer = xToolkit->createWindow( aDescriptor );
- }
-
- return xPeer;
-}
-
void LayoutManager::implts_setVisibleState( sal_Bool bShow )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
- UIElementVector::iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- pIter->m_bMasterHide = !bShow;
m_aStatusBarElement.m_bMasterHide = !bShow;
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
implts_updateUIElementsVisibleState( bShow );
- //implts_doLayout( sal_False );
}
void LayoutManager::implts_updateUIElementsVisibleState( sal_Bool bSetVisible )
{
// notify listeners
- css::uno::Any a;
+ uno::Any a;
if ( bSetVisible )
- implts_notifyListeners( css::frame::LayoutManagerEvents::VISIBLE, a );
+ implts_notifyListeners( frame::LayoutManagerEvents::VISIBLE, a );
else
- implts_notifyListeners( css::frame::LayoutManagerEvents::INVISIBLE, a );
- std::vector< Reference< css::awt::XWindow > > aWinVector;
- sal_Bool bOld;
-
- {
- WriteGuard aWriteLock( m_aLock );
- m_bDoLayout = sal_True;
- bOld = m_bDoLayout;
- }
-
- ReadGuard aReadLock( m_aLock );
- aWinVector.reserve(m_aUIElements.size());
- UIElementVector::iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_xUIElement.is() )
- {
- Reference< css::awt::XWindow > xWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- if ( xWindow.is() )
- {
- if ( bSetVisible )
- {
- if ( pIter->m_bVisible && !pIter->m_bMasterHide )
- aWinVector.push_back( xWindow );
- }
- else
- aWinVector.push_back( xWindow );
- }
- }
- }
-
- aReadLock.unlock();
-
- try
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- const sal_uInt32 nCount = aWinVector.size();
- for ( sal_uInt32 i = 0; i < nCount; i++ )
- {
- Reference< css::awt::XWindow > xWindow( aWinVector[i] );
- if ( xWindow.is() )
- {
- // we need VCL here to pass special flags to Show()
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if( pWindow )
- pWindow->Show( bSetVisible, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
- }
- }
- }
- catch ( DisposedException& )
- {
- }
+ implts_notifyListeners( frame::LayoutManagerEvents::INVISIBLE, a );
+ std::vector< Reference< awt::XWindow > > aWinVector;
- // Hide/show menubar according to bSetVisible
- aReadLock.lock();
- Reference< XUIElement > xMenuBar( m_xMenuBar, UNO_QUERY );
- Reference< css::awt::XWindow > xContainerWindow( m_xContainerWindow );
- Reference< XComponent > xInplaceMenuBar( m_xInplaceMenuBar );
- MenuBarManager* pInplaceMenuBar( m_pInplaceMenuBar );
- aReadLock.unlock();
+ WriteGuard aWriteLock( m_aLock );
+ Reference< XUIElement > xMenuBar( m_xMenuBar, UNO_QUERY );
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
+ Reference< XComponent > xInplaceMenuBar( m_xInplaceMenuBar );
+ MenuBarManager* pInplaceMenuBar( m_pInplaceMenuBar );
+ aWriteLock.unlock();
+ bool bMustDoLayout(false);
if (( xMenuBar.is() || xInplaceMenuBar.is() ) && xContainerWindow.is() )
{
vos::OGuard aGuard( Application::GetSolarMutex() );
@@ -3182,103 +795,59 @@ void LayoutManager::implts_updateUIElementsVisibleState( sal_Bool bSetVisible )
pMenuBar = (MenuBar *)pMenuBarWrapper->GetMenuBarManager()->GetMenuBar();
}
- Window* pWindow = VCLUnoHelper::GetWindow( xContainerWindow );
- while ( pWindow && !pWindow->IsSystemWindow() )
- pWindow = pWindow->GetParent();
-
- if ( pWindow )
+ SystemWindow* pSysWindow = getTopSystemWindow( xContainerWindow );
+ if ( pSysWindow )
{
- SystemWindow* pSysWindow = (SystemWindow *)pWindow;
if ( bSetVisible )
pSysWindow->SetMenuBar( pMenuBar );
else
pSysWindow->SetMenuBar( 0 );
+ bMustDoLayout = true;
}
}
// Hide/show the statusbar according to bSetVisible
if ( bSetVisible )
- implts_showStatusBar();
+ bMustDoLayout = !implts_showStatusBar();
else
- implts_hideStatusBar();
+ bMustDoLayout = !implts_hideStatusBar();
- if ( !bOld )
- {
- WriteGuard aWriteLock( m_aLock );
- m_bDoLayout = sal_False;
- }
+ aWriteLock.lock();
+ uno::Reference< ui::XUIConfigurationListener > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager( m_pToolbarManager );
+ aWriteLock.unlock();
- if ( bSetVisible )
+ if ( pToolbarManager )
{
- implts_createNonContextSensitiveToolBars();
- implts_doLayout_notify( sal_False );
+ pToolbarManager->setVisible( bSetVisible );
+ bMustDoLayout = pToolbarManager->isLayoutDirty();
}
- else
- {
- // Set docking area window size to zero
- ReadGuard aReadLock2( m_aLock );
- Reference< css::awt::XWindow > xTopDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP];
- Reference< css::awt::XWindow > xLeftDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT];
- Reference< css::awt::XWindow > xRightDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_RIGHT];
- Reference< css::awt::XWindow > xBottomDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM];
- aReadLock2.unlock();
- try
- {
- if ( xTopDockingWindow.is() )
- xTopDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
- if ( xLeftDockingWindow.is() )
- xLeftDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
- if ( xRightDockingWindow.is() )
- xRightDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
- if ( xBottomDockingWindow.is() )
- xBottomDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
-
- WriteGuard aWriteLock( m_aLock );
- m_aDockingArea = css::awt::Rectangle();
- m_bMustDoLayout = sal_True;
- aWriteLock.unlock();
- }
- catch ( Exception& )
- {
- }
- }
+ if ( bMustDoLayout )
+ implts_doLayout_notify( sal_False );
}
void LayoutManager::implts_setCurrentUIVisibility( sal_Bool bShow )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
- UIElementVector::iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( !bShow && pIter->m_bVisible && pIter->m_xUIElement.is() )
- pIter->m_bMasterHide = true;
- else if ( bShow && pIter->m_bMasterHide )
- pIter->m_bMasterHide = false;
- }
-
if ( !bShow && m_aStatusBarElement.m_bVisible && m_aStatusBarElement.m_xUIElement.is() )
m_aStatusBarElement.m_bMasterHide = true;
else if ( bShow && m_aStatusBarElement.m_bVisible )
m_aStatusBarElement.m_bMasterHide = false;
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
implts_updateUIElementsVisibleState( bShow );
}
void LayoutManager::implts_destroyStatusBar()
{
- Reference< XComponent > xCompStatusBar;
+ Reference< XComponent > xCompStatusBar;
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
m_aStatusBarElement.m_aName = rtl::OUString();
xCompStatusBar = Reference< XComponent >( m_aStatusBarElement.m_xUIElement, UNO_QUERY );
m_aStatusBarElement.m_xUIElement.clear();
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
if ( xCompStatusBar.is() )
xCompStatusBar->dispose();
@@ -3288,7 +857,6 @@ void LayoutManager::implts_destroyStatusBar()
void LayoutManager::implts_createStatusBar( const rtl::OUString& aStatusBarName )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
if ( !m_aStatusBarElement.m_xUIElement.is() )
{
@@ -3296,14 +864,13 @@ void LayoutManager::implts_createStatusBar( const rtl::OUString& aStatusBarName
m_aStatusBarElement.m_aName = aStatusBarName;
m_aStatusBarElement.m_xUIElement = implts_createElement( aStatusBarName );
}
+ aWriteLock.unlock();
implts_createProgressBar();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
}
void LayoutManager::implts_readStatusBarState( const rtl::OUString& rStatusBarName )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
if ( !m_aStatusBarElement.m_bStateRead )
{
@@ -3311,17 +878,15 @@ void LayoutManager::implts_readStatusBarState( const rtl::OUString& rStatusBarNa
if ( implts_readWindowStateData( rStatusBarName, m_aStatusBarElement ))
m_aStatusBarElement.m_bStateRead = sal_True;
}
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
}
void LayoutManager::implts_createProgressBar()
{
- Reference< XUIElement > xStatusBar;
+ Reference< XUIElement > xStatusBar;
Reference< XUIElement > xProgressBar;
Reference< XUIElement > xProgressBarBackup;
- Reference< css::awt::XWindow > xContainerWindow;
+ Reference< awt::XWindow > xContainerWindow;
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
xStatusBar = Reference< XUIElement >( m_aStatusBarElement.m_xUIElement, UNO_QUERY );
xProgressBar = Reference< XUIElement >( m_aProgressBarElement.m_xUIElement, UNO_QUERY );
@@ -3329,7 +894,6 @@ void LayoutManager::implts_createProgressBar()
m_xProgressBarBackup.clear();
xContainerWindow = m_xContainerWindow;
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
sal_Bool bRecycled = xProgressBarBackup.is();
ProgressBarWrapper* pWrapper = 0;
@@ -3342,14 +906,14 @@ void LayoutManager::implts_createProgressBar()
if ( xStatusBar.is() )
{
- Reference< css::awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
+ Reference< awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
pWrapper->setStatusBar( xWindow );
}
else
{
- Reference< css::awt::XWindow > xStatusBarWindow = pWrapper->getStatusBar();
+ Reference< awt::XWindow > xStatusBarWindow = pWrapper->getStatusBar();
- vos::OGuard aGuard( Application::GetSolarMutex() );
+ vos::OGuard aGuard( Application::GetSolarMutex() );
Window* pStatusBarWnd = VCLUnoHelper::GetWindow( xStatusBarWindow );
if ( !pStatusBarWnd )
{
@@ -3357,7 +921,7 @@ void LayoutManager::implts_createProgressBar()
if ( pWindow )
{
StatusBar* pStatusBar = new StatusBar( pWindow, WinBits( WB_LEFT | WB_3DLOOK ) );
- Reference< css::awt::XWindow > xStatusBarWindow2( VCLUnoHelper::GetInterface( pStatusBar ));
+ Reference< awt::XWindow > xStatusBarWindow2( VCLUnoHelper::GetInterface( pStatusBar ));
pWrapper->setStatusBar( xStatusBarWindow2, sal_True );
}
}
@@ -3394,7 +958,7 @@ void LayoutManager::implts_backupProgressBarWrapper()
{
ProgressBarWrapper* pWrapper = (ProgressBarWrapper*)m_xProgressBarBackup.get();
if ( pWrapper )
- pWrapper->setStatusBar( Reference< css::awt::XWindow >(), sal_False );
+ pWrapper->setStatusBar( Reference< awt::XWindow >(), sal_False );
}
// prevent us from dispose() the m_aProgressBarElement.m_xUIElement inside implts_reset()
@@ -3415,9 +979,9 @@ void LayoutManager::implts_destroyProgressBar()
void LayoutManager::implts_setStatusBarPosSize( const ::Point& rPos, const ::Size& rSize )
{
- Reference< XUIElement > xStatusBar;
+ Reference< XUIElement > xStatusBar;
Reference< XUIElement > xProgressBar;
- Reference< css::awt::XWindow > xContainerWindow;
+ Reference< awt::XWindow > xContainerWindow;
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
@@ -3425,9 +989,9 @@ void LayoutManager::implts_setStatusBarPosSize( const ::Point& rPos, const ::Siz
xProgressBar = Reference< XUIElement >( m_aProgressBarElement.m_xUIElement, UNO_QUERY );
xContainerWindow = m_xContainerWindow;
- Reference< css::awt::XWindow > xWindow;
+ Reference< awt::XWindow > xWindow;
if ( xStatusBar.is() )
- xWindow = Reference< css::awt::XWindow >( xStatusBar->getRealInterface(), UNO_QUERY );
+ xWindow = Reference< awt::XWindow >( xStatusBar->getRealInterface(), UNO_QUERY );
else if ( xProgressBar.is() )
{
ProgressBarWrapper* pWrapper = (ProgressBarWrapper*)xProgressBar.get();
@@ -3439,7 +1003,7 @@ void LayoutManager::implts_setStatusBarPosSize( const ::Point& rPos, const ::Siz
if ( xWindow.is() )
{
- vos::OGuard aGuard( Application::GetSolarMutex() );
+ vos::OGuard aGuard( Application::GetSolarMutex() );
Window* pParentWindow = VCLUnoHelper::GetWindow( xContainerWindow );
Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
if ( pParentWindow && ( pWindow && pWindow->GetType() == WINDOW_STATUSBAR ))
@@ -3454,9 +1018,9 @@ void LayoutManager::implts_setStatusBarPosSize( const ::Point& rPos, const ::Siz
sal_Bool LayoutManager::implts_showProgressBar()
{
- Reference< XUIElement > xStatusBar;
+ Reference< XUIElement > xStatusBar;
Reference< XUIElement > xProgressBar;
- Reference< css::awt::XWindow > xWindow;
+ Reference< awt::XWindow > xWindow;
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
@@ -3469,7 +1033,7 @@ sal_Bool LayoutManager::implts_showProgressBar()
{
if ( xStatusBar.is() && !m_aStatusBarElement.m_bMasterHide )
{
- xWindow = Reference< css::awt::XWindow >( xStatusBar->getRealInterface(), UNO_QUERY );
+ xWindow = Reference< awt::XWindow >( xStatusBar->getRealInterface(), UNO_QUERY );
}
else if ( xProgressBar.is() )
{
@@ -3479,6 +1043,7 @@ sal_Bool LayoutManager::implts_showProgressBar()
}
}
aWriteLock.unlock();
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
vos::OGuard aGuard( Application::GetSolarMutex() );
Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
@@ -3486,6 +1051,7 @@ sal_Bool LayoutManager::implts_showProgressBar()
{
if ( !pWindow->IsVisible() )
{
+ implts_setOffset( pWindow->GetSizePixel().Height() );
pWindow->Show();
implts_doLayout_notify( sal_False );
}
@@ -3498,7 +1064,7 @@ sal_Bool LayoutManager::implts_showProgressBar()
sal_Bool LayoutManager::implts_hideProgressBar()
{
Reference< XUIElement > xProgressBar;
- Reference< css::awt::XWindow > xWindow;
+ Reference< awt::XWindow > xWindow;
sal_Bool bHideStatusBar( sal_False );
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
@@ -3508,25 +1074,26 @@ sal_Bool LayoutManager::implts_hideProgressBar()
sal_Bool bInternalStatusBar( sal_False );
if ( xProgressBar.is() )
{
- Reference< css::awt::XWindow > xStatusBar;
+ Reference< awt::XWindow > xStatusBar;
ProgressBarWrapper* pWrapper = (ProgressBarWrapper*)xProgressBar.get();
if ( pWrapper )
xWindow = pWrapper->getStatusBar();
- Reference< css::ui::XUIElement > xStatusBarElement = m_aStatusBarElement.m_xUIElement;
+ Reference< ui::XUIElement > xStatusBarElement = m_aStatusBarElement.m_xUIElement;
if ( xStatusBarElement.is() )
- xStatusBar = Reference< css::awt::XWindow >( xStatusBarElement->getRealInterface(), UNO_QUERY );
+ xStatusBar = Reference< awt::XWindow >( xStatusBarElement->getRealInterface(), UNO_QUERY );
bInternalStatusBar = xStatusBar != xWindow;
}
m_aProgressBarElement.m_bVisible = sal_False;
implts_readStatusBarState( m_aStatusBarAlias );
bHideStatusBar = !m_aStatusBarElement.m_bVisible;
aWriteLock.unlock();
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
vos::OGuard aGuard( Application::GetSolarMutex() );
Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow && pWindow->IsVisible() &&
- ( bHideStatusBar || bInternalStatusBar ))
+ if ( pWindow && pWindow->IsVisible() && ( bHideStatusBar || bInternalStatusBar ))
{
+ implts_setOffset( 0 );
pWindow->Hide();
implts_doLayout_notify( sal_False );
return sal_True;
@@ -3537,23 +1104,23 @@ sal_Bool LayoutManager::implts_hideProgressBar()
sal_Bool LayoutManager::implts_showStatusBar( sal_Bool bStoreState )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
- Reference< css::ui::XUIElement > xStatusBar = m_aStatusBarElement.m_xUIElement;
+ Reference< ui::XUIElement > xStatusBar = m_aStatusBarElement.m_xUIElement;
if ( bStoreState )
m_aStatusBarElement.m_bVisible = sal_True;
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
if ( xStatusBar.is() )
{
- Reference< css::awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
+ Reference< awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
- vos::OGuard aGuard( Application::GetSolarMutex() );
+ vos::OGuard aGuard( Application::GetSolarMutex() );
Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
if ( pWindow && !pWindow->IsVisible() )
{
+ implts_setOffset( pWindow->GetSizePixel().Height() );
pWindow->Show();
+ implts_doLayout_notify( sal_False );
return sal_True;
}
}
@@ -3563,23 +1130,23 @@ sal_Bool LayoutManager::implts_showStatusBar( sal_Bool bStoreState )
sal_Bool LayoutManager::implts_hideStatusBar( sal_Bool bStoreState )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
- Reference< css::ui::XUIElement > xStatusBar = m_aStatusBarElement.m_xUIElement;
+ Reference< ui::XUIElement > xStatusBar = m_aStatusBarElement.m_xUIElement;
if ( bStoreState )
m_aStatusBarElement.m_bVisible = sal_False;
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
if ( xStatusBar.is() )
{
- Reference< css::awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
+ Reference< awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
- vos::OGuard aGuard( Application::GetSolarMutex() );
+ vos::OGuard aGuard( Application::GetSolarMutex() );
Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
if ( pWindow && pWindow->IsVisible() )
{
+ implts_setOffset( 0 );
pWindow->Hide();
+ implts_doLayout_notify( sal_False );
return sal_True;
}
}
@@ -3587,14 +1154,26 @@ sal_Bool LayoutManager::implts_hideStatusBar( sal_Bool bStoreState )
return sal_False;
}
+void LayoutManager::implts_setOffset( const sal_Int32 nBottomOffset )
+{
+ ::Rectangle aOffsetRect;
+ setZeroRectangle( aOffsetRect );
+ aOffsetRect.setHeight( nBottomOffset );
+
+ // make sure that the toolbar manager refernence/pointer is valid
+ uno::Reference< ui::XUIConfigurationListener > xThis( m_xToolbarManager );
+ if ( xThis.is() )
+ m_pToolbarManager->setDockingAreaOffsets( aOffsetRect );
+}
+
void LayoutManager::implts_setInplaceMenuBar( const Reference< XIndexAccess >& xMergedMenuBar )
-throw (::com::sun::star::uno::RuntimeException)
+throw (uno::RuntimeException)
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
- if ( !m_bInplaceMenuSet )
- {
+ if ( !m_bInplaceMenuSet )
+ {
vos::OGuard aGuard( Application::GetSolarMutex() );
// Reset old inplace menubar!
@@ -3604,8 +1183,7 @@ throw (::com::sun::star::uno::RuntimeException)
m_xInplaceMenuBar.clear();
m_bInplaceMenuSet = sal_False;
- if ( m_xFrame.is() &&
- m_xContainerWindow.is() )
+ if ( m_xFrame.is() && m_xContainerWindow.is() )
{
rtl::OUString aModuleIdentifier;
Reference< XDispatchProvider > xDispatchProvider;
@@ -3614,50 +1192,40 @@ throw (::com::sun::star::uno::RuntimeException)
m_pInplaceMenuBar = new MenuBarManager( m_xSMGR, m_xFrame, m_xURLTransformer,xDispatchProvider, aModuleIdentifier, pMenuBar, sal_True, sal_True );
m_pInplaceMenuBar->SetItemContainer( xMergedMenuBar );
- Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
- while ( pWindow && !pWindow->IsSystemWindow() )
- pWindow = pWindow->GetParent();
+ SystemWindow* pSysWindow = getTopSystemWindow( m_xContainerWindow );
+ if ( pSysWindow )
+ pSysWindow->SetMenuBar( pMenuBar );
- if ( pWindow )
- {
- SystemWindow* pSysWindow = (SystemWindow *)pWindow;
- pSysWindow->SetMenuBar( pMenuBar );
- }
-
- m_bInplaceMenuSet = sal_True;
+ m_bInplaceMenuSet = sal_True;
m_xInplaceMenuBar = Reference< XComponent >( (OWeakObject *)m_pInplaceMenuBar, UNO_QUERY );
}
aWriteLock.unlock();
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
+
implts_updateMenuBarClose();
}
-
}
void LayoutManager::implts_resetInplaceMenuBar()
-throw (::com::sun::star::uno::RuntimeException)
+throw (uno::RuntimeException)
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
m_bInplaceMenuSet = sal_False;
// if ( m_xMenuBar.is() &&
if ( m_xContainerWindow.is() )
{
- vos::OGuard aGuard( Application::GetSolarMutex() );
+ vos::OGuard aGuard( Application::GetSolarMutex() );
MenuBarWrapper* pMenuBarWrapper = SAL_STATIC_CAST( MenuBarWrapper*, m_xMenuBar.get() );
- Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
- while ( pWindow && !pWindow->IsSystemWindow() )
- pWindow = pWindow->GetParent();
-
- if ( pWindow )
+ SystemWindow* pSysWindow = getTopSystemWindow( m_xContainerWindow );
+ if ( pSysWindow )
{
- SystemWindow* pSysWindow = (SystemWindow *)pWindow;
if ( pMenuBarWrapper )
- pSysWindow->SetMenuBar( (MenuBar *)pMenuBarWrapper->GetMenuBarManager()->GetMenuBar() );
- else
- pSysWindow->SetMenuBar( 0 );
+ pSysWindow->SetMenuBar( (MenuBar *)pMenuBarWrapper->GetMenuBarManager()->GetMenuBar() );
+ else
+ pSysWindow->SetMenuBar( 0 );
}
}
@@ -3666,21 +1234,14 @@ throw (::com::sun::star::uno::RuntimeException)
if ( m_xInplaceMenuBar.is() )
m_xInplaceMenuBar->dispose();
m_xInplaceMenuBar.clear();
-
- aWriteLock.unlock();
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
}
void SAL_CALL LayoutManager::attachFrame( const Reference< XFrame >& xFrame )
-throw (::com::sun::star::uno::RuntimeException)
+throw (uno::RuntimeException)
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
m_xFrame = xFrame;
- aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- // if ( xFrame.is() )
- // xFrame->getContainerWindow()->addWindowListener( Reference< css::awt::XWindowListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
}
void SAL_CALL LayoutManager::reset()
@@ -3688,7 +1249,6 @@ throw (RuntimeException)
{
sal_Bool bComponentAttached( sal_False );
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
bComponentAttached = m_bComponentAttached;
aReadLock.unlock();
@@ -3697,13 +1257,13 @@ throw (RuntimeException)
}
void SAL_CALL LayoutManager::setInplaceMenuBar( sal_Int64 )
-throw (::com::sun::star::uno::RuntimeException)
+throw (uno::RuntimeException)
{
OSL_ENSURE( sal_False, "This method is obsolete and should not be used!\n" );
}
void SAL_CALL LayoutManager::resetInplaceMenuBar()
-throw (::com::sun::star::uno::RuntimeException)
+throw (uno::RuntimeException)
{
OSL_ENSURE( sal_False, "This method is obsolete and should not be used!\n" );
}
@@ -3713,45 +1273,42 @@ throw (::com::sun::star::uno::RuntimeException)
//---------------------------------------------------------------------------------------------------------
sal_Bool SAL_CALL LayoutManager::setMergedMenuBar(
const Reference< XIndexAccess >& xMergedMenuBar )
-throw (::com::sun::star::uno::RuntimeException)
+throw (uno::RuntimeException)
{
implts_setInplaceMenuBar( xMergedMenuBar );
- css::uno::Any a;
- implts_notifyListeners( css::frame::LayoutManagerEvents::MERGEDMENUBAR, a );
+ uno::Any a;
+ implts_notifyListeners( frame::LayoutManagerEvents::MERGEDMENUBAR, a );
return sal_True;
}
void SAL_CALL LayoutManager::removeMergedMenuBar()
-throw (::com::sun::star::uno::RuntimeException)
+throw (uno::RuntimeException)
{
implts_resetInplaceMenuBar();
}
-::com::sun::star::awt::Rectangle SAL_CALL LayoutManager::getCurrentDockingArea()
+awt::Rectangle SAL_CALL LayoutManager::getCurrentDockingArea()
throw ( RuntimeException )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
return m_aDockingArea;
}
Reference< XDockingAreaAcceptor > SAL_CALL LayoutManager::getDockingAreaAcceptor()
-throw (::com::sun::star::uno::RuntimeException)
+throw (uno::RuntimeException)
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
return m_xDockingAreaAcceptor;
}
-void SAL_CALL LayoutManager::setDockingAreaAcceptor( const Reference< ::com::sun::star::ui::XDockingAreaAcceptor >& xDockingAreaAcceptor )
+void SAL_CALL LayoutManager::setDockingAreaAcceptor( const Reference< ui::XDockingAreaAcceptor >& xDockingAreaAcceptor )
throw ( RuntimeException )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
- if (( m_xDockingAreaAcceptor == xDockingAreaAcceptor ) ||
- !m_xFrame.is() )
+ if (( m_xDockingAreaAcceptor == xDockingAreaAcceptor ) || !m_xFrame.is() )
return;
// IMPORTANT: Be sure to stop layout timer if don't have a docking area acceptor!
@@ -3759,7 +1316,10 @@ throw ( RuntimeException )
m_aAsyncLayoutTimer.Stop();
sal_Bool bAutomaticToolbars( m_bAutomaticToolbars );
- std::vector< Reference< css::awt::XWindow > > oldDockingAreaWindows;
+ std::vector< Reference< awt::XWindow > > oldDockingAreaWindows;
+
+ uno::Reference< ui::XUIConfigurationListener > xToolbarManager( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
if ( !xDockingAreaAcceptor.is() )
m_aAsyncLayoutTimer.Stop();
@@ -3767,45 +1327,31 @@ throw ( RuntimeException )
// Remove listener from old docking area acceptor
if ( m_xDockingAreaAcceptor.is() )
{
- Reference< css::awt::XWindow > xWindow( m_xDockingAreaAcceptor->getContainerWindow() );
+ Reference< awt::XWindow > xWindow( m_xDockingAreaAcceptor->getContainerWindow() );
if ( xWindow.is() && ( m_xFrame->getContainerWindow() != m_xContainerWindow || !xDockingAreaAcceptor.is() ) )
- xWindow->removeWindowListener( Reference< css::awt::XWindowListener >( static_cast< OWeakObject * >( this ), UNO_QUERY ));
+ xWindow->removeWindowListener( Reference< awt::XWindowListener >( static_cast< OWeakObject * >( this ), UNO_QUERY ));
- oldDockingAreaWindows.push_back( m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP] );
- oldDockingAreaWindows.push_back( m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM] );
- oldDockingAreaWindows.push_back( m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT] );
- oldDockingAreaWindows.push_back( m_xDockAreaWindows[DockingArea_DOCKINGAREA_RIGHT] );
-
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP].clear();
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM].clear();
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT].clear();
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_RIGHT].clear();
- m_aDockingArea = css::awt::Rectangle();
+ m_aDockingArea = awt::Rectangle();
+ if ( pToolbarManager )
+ pToolbarManager->resetDockingArea();
Window* pContainerWindow = VCLUnoHelper::GetWindow( xWindow );
if ( pContainerWindow )
pContainerWindow->RemoveChildEventListener( LINK( this, LayoutManager, WindowEventListener ) );
}
- // Set new docking area acceptor and add ourself as window listener on the container window.
- // Create our docking area windows which are parents for all docked windows.
- css::uno::Reference< css::awt::XWindow > xTopDockWindow;
- css::uno::Reference< css::awt::XWindow > xBottomDockWindow;
- css::uno::Reference< css::awt::XWindow > xLeftDockWindow;
- css::uno::Reference< css::awt::XWindow > xRightDockWindow;
-
- Reference< ::com::sun::star::ui::XDockingAreaAcceptor > xOldDockingAreaAcceptor( m_xDockingAreaAcceptor );
+ Reference< ui::XDockingAreaAcceptor > xOldDockingAreaAcceptor( m_xDockingAreaAcceptor );
m_xDockingAreaAcceptor = xDockingAreaAcceptor;
if ( m_xDockingAreaAcceptor.is() )
{
- m_aDockingArea = css::awt::Rectangle();
+ m_aDockingArea = awt::Rectangle();
m_xContainerWindow = m_xDockingAreaAcceptor->getContainerWindow();
m_xContainerTopWindow.set( m_xContainerWindow, UNO_QUERY );
- m_xContainerWindow->addWindowListener( Reference< css::awt::XWindowListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
+ m_xContainerWindow->addWindowListener( Reference< awt::XWindowListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
// we always must keep a connection to the window of our frame for resize events
if ( m_xContainerWindow != m_xFrame->getContainerWindow() )
- m_xFrame->getContainerWindow()->addWindowListener( Reference< css::awt::XWindowListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
+ m_xFrame->getContainerWindow()->addWindowListener( Reference< awt::XWindowListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
// #i37884# set initial visibility state - in the plugin case the container window is already shown
// and we get no notification anymore
@@ -3816,32 +1362,15 @@ throw ( RuntimeException )
m_bParentWindowVisible = pContainerWindow->IsVisible();
}
- css::uno::Reference< css::awt::XWindowPeer > xParent( m_xContainerWindow, UNO_QUERY );
- xTopDockWindow = Reference< css::awt::XWindow >( implts_createToolkitWindow( xParent ), UNO_QUERY );
- xBottomDockWindow = Reference< css::awt::XWindow >( implts_createToolkitWindow( xParent ), UNO_QUERY );
- xLeftDockWindow = Reference< css::awt::XWindow >( implts_createToolkitWindow( xParent ), UNO_QUERY );
- xRightDockWindow = Reference< css::awt::XWindow >( implts_createToolkitWindow( xParent ), UNO_QUERY );
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP] = xTopDockWindow;
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM] = xBottomDockWindow;
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT] = xLeftDockWindow;
- m_xDockAreaWindows[DockingArea_DOCKINGAREA_RIGHT] = xRightDockWindow;
+ uno::Reference< awt::XWindowPeer > xParent( m_xContainerWindow, UNO_QUERY );
}
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
if ( xDockingAreaAcceptor.is() )
{
vos::OGuard aGuard( Application::GetSolarMutex() );
- ::DockingAreaWindow* pWindow;
- pWindow = dynamic_cast< ::DockingAreaWindow* >(VCLUnoHelper::GetWindow( xTopDockWindow ) );
- if( pWindow ) pWindow->SetAlign( WINDOWALIGN_TOP );
- pWindow = dynamic_cast< ::DockingAreaWindow* >(VCLUnoHelper::GetWindow( xBottomDockWindow ) );
- if( pWindow ) pWindow->SetAlign( WINDOWALIGN_BOTTOM );
- pWindow = dynamic_cast< ::DockingAreaWindow* >(VCLUnoHelper::GetWindow( xLeftDockWindow ) );
- if( pWindow ) pWindow->SetAlign( WINDOWALIGN_LEFT );
- pWindow = dynamic_cast< ::DockingAreaWindow* >(VCLUnoHelper::GetWindow( xRightDockWindow ) );
- if( pWindow ) pWindow->SetAlign( WINDOWALIGN_RIGHT );
// Add layout manager as listener to get notifications about toolbar button activties
Window* pContainerWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
@@ -3856,23 +1385,8 @@ throw ( RuntimeException )
if ( !oldDockingAreaWindows.empty() )
{
- const sal_uInt32 nCount = oldDockingAreaWindows.size();
- for ( sal_uInt32 i = 0; i < nCount; ++i )
- {
- if ( oldDockingAreaWindows[i].is() )
- {
- try
- {
- oldDockingAreaWindows[i]->dispose();
- }
- catch ( Exception& )
- {
- }
- }
- }
-
// Reset docking area size for our old docking area acceptor
- css::awt::Rectangle aEmptyRect;
+ awt::Rectangle aEmptyRect;
xOldDockingAreaAcceptor->setDockingAreaSpace( aEmptyRect );
}
@@ -3880,201 +1394,77 @@ throw ( RuntimeException )
{
if ( bAutomaticToolbars )
{
- implts_createAddonsToolBars(); // create addon toolbars
- implts_createCustomToolBars(); // create custom toolbars
- implts_createNonContextSensitiveToolBars();
+ lock();
+ pToolbarManager->createStaticToolbars();
+ unlock();
}
- implts_sortUIElements();
implts_doLayout( sal_True, sal_False );
}
}
void LayoutManager::implts_reparentChildWindows()
{
- UIElementVector aUIElementVector;
- UIElement aStatusBarElement;
- css::uno::Reference< css::awt::XWindow > xTopDockWindow;
- css::uno::Reference< css::awt::XWindow > xBottomDockWindow;
- css::uno::Reference< css::awt::XWindow > xLeftDockWindow;
- css::uno::Reference< css::awt::XWindow > xRightDockWindow;
- css::uno::Reference< css::awt::XWindow > xContainerWindow;
- css::uno::Reference< css::awt::XWindow > xStatusBarWindow;
-
WriteGuard aWriteLock( m_aLock );
- aUIElementVector = m_aUIElements;
- xTopDockWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP];
- xBottomDockWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM];
- xLeftDockWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT];
- xRightDockWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_RIGHT];
- xContainerWindow = m_xContainerWindow;
- aStatusBarElement = m_aStatusBarElement;
+ UIElement aStatusBarElement = m_aStatusBarElement;
+ uno::Reference< awt::XWindow > xContainerWindow = m_xContainerWindow;
aWriteLock.unlock();
+ uno::Reference< awt::XWindow > xStatusBarWindow;
if ( aStatusBarElement.m_xUIElement.is() )
{
try
{
- xStatusBarWindow = Reference< css::awt::XWindow >(
- aStatusBarElement.m_xUIElement->getRealInterface(),
- UNO_QUERY );
- }
- catch ( RuntimeException& )
- {
- throw;
- }
- catch ( Exception& )
- {
+ xStatusBarWindow = Reference< awt::XWindow >( aStatusBarElement.m_xUIElement->getRealInterface(), UNO_QUERY );
}
+ catch ( RuntimeException& ) { throw; }
+ catch ( Exception& ) {}
}
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
- Window* pTopDockWindow = VCLUnoHelper::GetWindow( xTopDockWindow );
- Window* pBottomDockWindow = VCLUnoHelper::GetWindow( xBottomDockWindow );
- Window* pLeftDockWindow = VCLUnoHelper::GetWindow( xLeftDockWindow );
- Window* pRightDockWindow = VCLUnoHelper::GetWindow( xRightDockWindow );
- if ( pContainerWindow )
+ if ( xStatusBarWindow.is() )
{
- UIElementVector::iterator pIter;
- for ( pIter = aUIElementVector.begin(); pIter != aUIElementVector.end(); pIter++ )
- {
- Reference< XUIElement > xUIElement( pIter->m_xUIElement );
- if ( xUIElement.is() )
- {
- Reference< css::awt::XWindow > xWindow;
- try
- {
- // We have to retreive the window reference with try/catch as it is
- // possible that all elements has been disposed!
- xWindow = Reference< css::awt::XWindow >( xUIElement->getRealInterface(), UNO_QUERY );
- }
- catch ( RuntimeException& )
- {
- throw;
- }
- catch ( Exception& )
- {
- }
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Window* pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+ Window* pWindow = VCLUnoHelper::GetWindow( xStatusBarWindow );
+ if ( pWindow && pContainerWindow )
+ pWindow->SetParent( pContainerWindow );
+ }
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow )
- {
- // Reparent our child windows acording to their current state.
- if ( pIter->m_bFloating )
- pWindow->SetParent( pContainerWindow );
- else
- {
- if ( pIter->m_aDockedData.m_nDockedArea == DockingArea_DOCKINGAREA_TOP )
- pWindow->SetParent( pTopDockWindow );
- else if ( pIter->m_aDockedData.m_nDockedArea == DockingArea_DOCKINGAREA_BOTTOM )
- pWindow->SetParent( pBottomDockWindow );
- else if ( pIter->m_aDockedData.m_nDockedArea == DockingArea_DOCKINGAREA_LEFT )
- pWindow->SetParent( pLeftDockWindow );
- else
- pWindow->SetParent( pRightDockWindow );
- }
- }
- }
- }
+ implts_resetMenuBar();
- if ( xStatusBarWindow.is() )
- {
- Window* pWindow = VCLUnoHelper::GetWindow( xStatusBarWindow );
- if ( pWindow )
- pWindow->SetParent( pContainerWindow );
- }
+ aWriteLock.lock();
+ uno::Reference< ui::XUIConfigurationListener > xToolbarManager( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ if ( pToolbarManager )
+ pToolbarManager->setParentWindow( uno::Reference< awt::XWindowPeer >( xContainerWindow, uno::UNO_QUERY ));
+ aWriteLock.unlock();
+}
- implts_resetMenuBar();
- }
+uno::Reference< ui::XUIElement > LayoutManager::implts_createDockingWindow( const ::rtl::OUString& aElementName )
+{
+ Reference< XUIElement > xUIElement = implts_createElement( aElementName );
+ return xUIElement;
}
IMPL_LINK( LayoutManager, WindowEventListener, VclSimpleEvent*, pEvent )
{
- // To enable toolbar controllers to change their image when a sub-toolbar function
- // is activated, we need this mechanism. We have NO connection between these toolbars
- // anymore!
+ long nResult( 1 );
+
if ( pEvent && pEvent->ISA( VclWindowEvent ))
{
- if ( pEvent->GetId() == VCLEVENT_TOOLBOX_SELECT )
- {
- Window* pWindow( ((VclWindowEvent*)pEvent)->GetWindow() );
- ToolBox* pToolBox( 0 );
- rtl::OUString aToolbarName;
- rtl::OUString aCommand;
-
- if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
- {
- pToolBox = (ToolBox *)pWindow;
- aToolbarName = rtl::OStringToOUString( pToolBox->GetHelpId(), RTL_TEXTENCODING_UTF8 );
- sal_Int32 i = aToolbarName.lastIndexOf( ':' );
- if (( aToolbarName.getLength() > 0 ) &&
- ( i > 0 ) && (( i+ 1 ) < aToolbarName.getLength() ))
- {
- // Remove ".HelpId:" protocol from toolbar name
- aToolbarName = aToolbarName.copy( i+1 );
-
- sal_uInt16 nId = pToolBox->GetCurItemId();
- if ( nId > 0 )
- aCommand = pToolBox->GetItemCommand( nId );
- }
- }
-
- if (( aToolbarName.getLength() > 0 ) && ( aCommand.getLength() > 0 ))
- {
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- ReadGuard aReadLock( m_aLock );
- std::vector< css::uno::Reference< css::ui::XUIFunctionListener > > aListenerArray;
- UIElementVector::iterator pIter;
-
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aType.equalsAscii( "toolbar" ) &&
- pIter->m_xUIElement.is() )
- {
- css::uno::Reference< css::ui::XUIFunctionListener > xListener( pIter->m_xUIElement, UNO_QUERY );
- if ( xListener.is() )
- aListenerArray.push_back( xListener );
- }
- }
- aReadLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
-
- const sal_uInt32 nCount = aListenerArray.size();
- for ( sal_uInt32 i = 0; i < nCount; ++i )
- {
- try
- {
- aListenerArray[i]->functionExecute( aToolbarName, aCommand );
- }
- catch ( RuntimeException& e )
- {
- throw e;
- }
- catch ( Exception& ) {}
- }
- }
- }
- else if ( pEvent->GetId() == VCLEVENT_TOOLBOX_FORMATCHANGED )
+ Window* pWindow = static_cast< VclWindowEvent* >(pEvent)->GetWindow();
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
+ uno::Reference< ui::XUIConfigurationListener > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager( m_pToolbarManager );
+ aReadLock.unlock();
- Window* pWindow( ((VclWindowEvent*)pEvent)->GetWindow() );
- ToolBox* pToolBox( 0 );
- rtl::OUString aToolbarName;
-
- if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
- {
- pToolBox = (ToolBox *)pWindow;
- aToolbarName = rtl::OStringToOUString( pToolBox->GetHelpId(), RTL_TEXTENCODING_UTF8 );
- if (( aToolbarName.getLength() > 0 ) && ( m_nLockCount == 0 ))
- m_aAsyncLayoutTimer.Start();
- }
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ if ( pToolbarManager )
+ nResult = pToolbarManager->childWindowEvent( pEvent );
}
}
- return 1;
+ return nResult;
}
void SAL_CALL LayoutManager::createElement( const ::rtl::OUString& aName )
@@ -4082,13 +1472,11 @@ throw (RuntimeException)
{
RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::LayoutManager::createElement" );
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
Reference< XFrame > xFrame = m_xFrame;
Reference< XURLTransformer > xURLTransformer = m_xURLTransformer;
sal_Bool bInPlaceMenu = m_bInplaceMenuSet;
aReadLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
if ( !xFrame.is() )
return;
@@ -4098,105 +1486,35 @@ throw (RuntimeException)
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
- sal_Bool bFound( sal_False );
- sal_Bool bNotify( sal_False );
- ::rtl::OUString aElementType;
- ::rtl::OUString aElementName;
- Reference< ::com::sun::star::ui::XUIElement > xUIElement;
+ bool bMustBeLayouted( false );
+ bool bNotify( false );
- implts_findElement( aName, aElementType, aElementName, xUIElement );
- bFound = xUIElement.is();
-
- if ( /*xFrame.is() && */m_xContainerWindow.is() && !implts_isPreviewModel( xModel ) ) // no bars on preview mode
+ if ( m_xContainerWindow.is() && !implts_isPreviewModel( xModel ) ) // no UI elements on preview frames
{
- if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ))
- {
- if ( !bFound )
- {
- SvtCommandOptions aCmdOptions;
-
- xUIElement = implts_createElement( aName );
- sal_Bool bVisible( sal_False );
- if ( xUIElement.is() )
- {
- Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xUIElement->getRealInterface(), UNO_QUERY );
- if ( xDockWindow.is() && xWindow.is() )
- {
- try
- {
- xDockWindow->addDockableWindowListener( Reference< css::awt::XDockableWindowListener >(
- static_cast< OWeakObject * >( this ), UNO_QUERY ));
- xWindow->addWindowListener( Reference< css::awt::XWindowListener >(
- static_cast< OWeakObject * >( this ), UNO_QUERY ));
- xDockWindow->enableDocking( sal_True );
- }
- catch ( Exception& )
- {
- }
- }
-
- UIElement& rElement = impl_findElement( aName );
- if ( rElement.m_aName.getLength() > 0 )
- {
- // Reuse a local entry so we are able to use the latest
- // UI changes for this document.
- implts_setElementData( rElement, xDockWindow );
- rElement.m_xUIElement = xUIElement;
- bVisible = rElement.m_bVisible;
- }
- else
- {
- // Create new UI element and try to read its state data
- UIElement aNewToolbar( aName, aElementType, xUIElement );
- implts_readWindowStateData( aName, aNewToolbar );
- implts_setElementData( aNewToolbar, xDockWindow );
- implts_insertUIElement( aNewToolbar );
- bVisible = aNewToolbar.m_bVisible;
- }
-
- // set toolbar menu style according to customize command state
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
- {
- ToolBox* pToolbar = (ToolBox *)pWindow;
- sal_uInt16 nMenuType = pToolbar->GetMenuType();
- if ( aCmdOptions.Lookup( SvtCommandOptions::CMDOPTION_DISABLED, m_aCustomizeCmd ))
- pToolbar->SetMenuType( nMenuType & ~TOOLBOX_MENUTYPE_CUSTOMIZE );
- else
- pToolbar->SetMenuType( nMenuType | TOOLBOX_MENUTYPE_CUSTOMIZE );
- }
- }
- aWriteLock.unlock();
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
- implts_sortUIElements();
+ parseResourceURL( aName, aElementType, aElementName );
- if ( bVisible )
- {
- doLayout();
- bNotify = sal_True;
- }
- }
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ) && m_pToolbarManager != NULL )
+ {
+ bNotify = m_pToolbarManager->createToolbar( aName );
+ bMustBeLayouted = m_pToolbarManager->isLayoutDirty();
}
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ))
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
{
- if ( aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ) && !bInPlaceMenu )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- // PB 2004-12-15 #i38743# don't create a menubar if frame isn't top
- if ( !m_xMenuBar.is() && implts_isFrameOrWindowTop(xFrame) )
- m_xMenuBar = implts_createElement( aName );
-
- if ( m_xMenuBar.is() && implts_isFrameOrWindowTop(xFrame) )
+ // PB 2004-12-15 #i38743# don't create a menubar if frame isn't top
+ if ( !bInPlaceMenu && !m_xMenuBar.is() && implts_isFrameOrWindowTop( xFrame ))
+ {
+ m_xMenuBar = implts_createElement( aName );
+ if ( m_xMenuBar.is() )
{
- Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
- while ( pWindow && !pWindow->IsSystemWindow() )
- pWindow = pWindow->GetParent();
+ vos::OGuard aGuard( Application::GetSolarMutex() );
- if ( pWindow )
+ SystemWindow* pSysWindow = getTopSystemWindow( m_xContainerWindow );
+ if ( pSysWindow )
{
- SystemWindow* pSysWindow = (SystemWindow *)pWindow;
- Reference< css::awt::XMenuBar > xMenuBar;
+ Reference< awt::XMenuBar > xMenuBar;
Reference< XPropertySet > xPropSet( m_xMenuBar, UNO_QUERY );
if ( xPropSet.is() )
@@ -4205,12 +1523,8 @@ throw (RuntimeException)
{
xPropSet->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "XMenuBar" ))) >>= xMenuBar;
}
- catch ( com::sun::star::beans::UnknownPropertyException )
- {
- }
- catch ( com::sun::star::lang::WrappedTargetException )
- {
- }
+ catch ( beans::UnknownPropertyException ) {}
+ catch ( lang::WrappedTargetException ) {}
}
if ( xMenuBar.is() )
@@ -4224,9 +1538,7 @@ throw (RuntimeException)
pSysWindow->SetMenuBar( pMenuBar );
pMenuBar->SetDisplayable( m_bMenuVisible );
if ( m_bMenuVisible )
- {
bNotify = sal_True;
- }
implts_updateMenuBarClose();
}
}
@@ -4241,27 +1553,35 @@ throw (RuntimeException)
implts_createStatusBar( aName );
bNotify = sal_True;
}
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ) &&
- implts_isFrameOrWindowTop(xFrame) )
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ) && implts_isFrameOrWindowTop(xFrame) )
{
implts_createProgressBar();
bNotify = sal_True;
}
else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
{
- aWriteLock.unlock();
+ // Add layout manager as listener for docking and other window events
+ uno::Reference< uno::XInterface > xThis( static_cast< OWeakObject* >(this), uno::UNO_QUERY );
+ uno::Reference< ui::XUIElement > xUIElement( implts_createDockingWindow( aName ));
+
+ if ( xUIElement.is() )
+ {
+ impl_addWindowListeners( xThis, xUIElement );
+ m_pPanelManager->addDockingWindow( aName, xUIElement );
+ }
// The docking window is created by a factory method located in the sfx2 library.
- CreateDockingWindow( xFrame, aElementName );
+// CreateDockingWindow( xFrame, aElementName );
}
}
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ if ( bMustBeLayouted )
+ implts_doLayout_notify( sal_True );
+
if ( bNotify )
{
// UI element is invisible - provide information to listeners
- implts_notifyListeners( css::frame::LayoutManagerEvents::UIELEMENT_VISIBLE, uno::makeAny( aName ) );
+ implts_notifyListeners( frame::LayoutManagerEvents::UIELEMENT_VISIBLE, uno::makeAny( aName ) );
}
}
@@ -4273,112 +1593,54 @@ throw (RuntimeException)
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
- sal_Bool bMustLayouted( sal_False );
- sal_Bool bMustBeDestroyed( sal_False );
- sal_Bool bMustBeSorted( sal_False );
- sal_Bool bNotify( sal_False );
- ::rtl::OUString aElementType;
- ::rtl::OUString aElementName;
+ bool bMustBeLayouted( sal_False );
+ bool bMustBeDestroyed( sal_False );
+ bool bNotify( sal_False );
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
Reference< XComponent > xComponent;
- if ( impl_parseResourceURL( aName, aElementType, aElementName ))
+ parseResourceURL( aName, aElementType, aElementName );
+
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
{
- if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
- {
- if ( !m_bInplaceMenuSet )
- {
- impl_clearUpMenuBar();
- m_xMenuBar.clear();
- bNotify = sal_True;
- }
- }
- else if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) ||
- ( m_aStatusBarElement.m_aName == aName ))
- {
- aWriteLock.unlock();
- implts_destroyStatusBar();
- bMustLayouted = sal_True;
- bNotify = sal_True;
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ) )
- {
- aWriteLock.unlock();
- implts_createProgressBar();
- bMustLayouted = sal_True;
- bNotify = sal_True;
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ))
+ if ( !m_bInplaceMenuSet )
{
- UIElementVector::iterator pIter;
-
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aName == aName )
- {
- xComponent.set( pIter->m_xUIElement, UNO_QUERY );
- Reference< XUIElement > xUIElement( pIter->m_xUIElement );
- if ( xUIElement.is() )
- {
- Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
-
- rtl::OUString aAddonTbResourceName( RTL_CONSTASCII_USTRINGPARAM( "private:resource/toolbar/addon_" ));
- if ( aName.indexOf( aAddonTbResourceName ) != 0 )
- {
- try
- {
- if ( xWindow.is() )
- xWindow->removeWindowListener( Reference< css::awt::XWindowListener >(
- static_cast< OWeakObject * >( this ), UNO_QUERY ));
- }
- catch( Exception& )
- {
- }
-
- try
- {
- if ( xDockWindow.is() )
- xDockWindow->removeDockableWindowListener( Reference< css::awt::XDockableWindowListener >(
- static_cast< OWeakObject * >( this ), UNO_QUERY ));
- }
- catch ( Exception& )
- {
- }
-
- bMustBeDestroyed = sal_True;
- }
- else
- {
- pIter->m_bVisible = sal_False;
- xWindow->setVisible( sal_False );
- bNotify = sal_True;
- }
-
- if ( !xDockWindow->isFloating() )
- bMustLayouted = sal_True;
- if ( bMustBeDestroyed )
- pIter->m_xUIElement.clear();
-
- bMustBeSorted = sal_True;
- }
-
- break;
- }
- }
+ impl_clearUpMenuBar();
+ m_xMenuBar.clear();
+ bNotify = true;
}
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
- {
- css::uno::Reference< css::frame::XFrame > xFrame( m_xFrame );
- css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR( m_xSMGR );
- aWriteLock.unlock();
+ }
+ else if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) ||
+ ( m_aStatusBarElement.m_aName == aName ))
+ {
+ aWriteLock.unlock();
+ implts_destroyStatusBar();
+ bMustBeLayouted = true;
+ bNotify = true;
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ))
+ {
+ aWriteLock.unlock();
+ implts_createProgressBar();
+ bMustBeLayouted = true;
+ bNotify = sal_True;
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ) && m_pToolbarManager != NULL )
+ {
+ aWriteLock.unlock();
+ bNotify = m_pToolbarManager->destroyToolbar( aName );
+ bMustBeLayouted = m_pToolbarManager->isLayoutDirty();
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
+ {
+ uno::Reference< frame::XFrame > xFrame( m_xFrame );
+ uno::Reference< lang::XMultiServiceFactory > xSMGR( m_xSMGR );
+ aWriteLock.unlock();
- impl_setDockingWindowVisibility( xSMGR, xFrame, aElementName, false );
- bMustLayouted = sal_False;
- bNotify = sal_False;
- }
+ impl_setDockingWindowVisibility( xSMGR, xFrame, aElementName, false );
+ bMustBeLayouted = false;
+ bNotify = false;
}
aWriteLock.unlock();
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
@@ -4387,173 +1649,91 @@ throw (RuntimeException)
{
if ( xComponent.is() )
xComponent->dispose();
- bNotify = sal_True;
+ bNotify = true;
}
- if ( bMustBeSorted )
- {
- implts_sortUIElements();
- if ( bMustLayouted )
- doLayout();
- }
+ if ( bMustBeLayouted )
+ doLayout();
if ( bNotify )
- {
- // UI element is invisible - provide information to listeners
- implts_notifyListeners( css::frame::LayoutManagerEvents::UIELEMENT_INVISIBLE, uno::makeAny( aName ) );
- }
+ implts_notifyListeners( frame::LayoutManagerEvents::UIELEMENT_INVISIBLE, uno::makeAny( aName ) );
}
-::sal_Bool SAL_CALL LayoutManager::requestElement( const ::rtl::OUString& ResourceURL )
-throw (::com::sun::star::uno::RuntimeException)
+::sal_Bool SAL_CALL LayoutManager::requestElement( const ::rtl::OUString& rResourceURL )
+throw (uno::RuntimeException)
{
- RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::LayoutManager::requestElement" );
+ bool bResult( false );
+ bool bNotify( false );
+ bool bDoLayout( false );
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
- ::rtl::OUString aElementType;
- ::rtl::OUString aElementName;
- UIElementVector::iterator pIter;
- sal_Bool bResult( sal_False );
- sal_Bool bNotify( sal_False );
+ parseResourceURL( rResourceURL, aElementType, aElementName );
WriteGuard aWriteLock( m_aLock );
- if ( impl_parseResourceURL( ResourceURL, aElementType, aElementName ))
- {
- ::rtl::OString aResName = rtl::OUStringToOString( aElementName, RTL_TEXTENCODING_ASCII_US );
- RTL_LOGFILE_CONTEXT_TRACE1( aLog, "framework (cd100003) Element %s", aResName.getStr() );
- if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) ||
- ( m_aStatusBarElement.m_aName == ResourceURL ))
- {
- implts_readStatusBarState( ResourceURL );
- if ( m_aStatusBarElement.m_bVisible && !m_aStatusBarElement.m_bMasterHide )
- {
- createElement( ResourceURL );
+ ::rtl::OString aResName = rtl::OUStringToOString( aElementName, RTL_TEXTENCODING_ASCII_US );
+ RTL_LOGFILE_CONTEXT_TRACE1( aLog, "framework (cd100003) Element %s requested.", aResName.getStr() );
- // There are some situation where we are not able to create an element.
- // Therefore we have to check the reference before further action.
- // See #i70019#
- css::uno::Reference< css::ui::XUIElement > xUIElement( m_aStatusBarElement.m_xUIElement );
- if ( xUIElement.is() )
- {
- // we need VCL here to pass special flags to Show()
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow )
- {
- pWindow->Show( sal_True, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
- doLayout();
- bResult = sal_True;
- bNotify = sal_True;
- }
- }
- }
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ) )
+ if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) || ( m_aStatusBarElement.m_aName == rResourceURL ))
+ {
+ implts_readStatusBarState( rResourceURL );
+ if ( m_aStatusBarElement.m_bVisible && !m_aStatusBarElement.m_bMasterHide )
{
aWriteLock.unlock();
- implts_showProgressBar();
- doLayout();
- bResult = sal_True;
- bNotify = sal_True;
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ))
- {
- if ( m_bVisible )
- {
- bool bFound( false );
- bool bShowElement( false );
-
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aName == ResourceURL )
- {
- bFound = sal_True;
- bShowElement = ( pIter->m_bVisible && !pIter->m_bMasterHide && m_bParentWindowVisible );
-
- Reference< css::awt::XWindow2 > xContainerWindow( m_xContainerWindow, UNO_QUERY );
- if ( xContainerWindow.is() && pIter->m_bFloating )
- bShowElement = ( bShowElement && xContainerWindow->isActive() );
-
- if ( pIter->m_xUIElement.is() )
- {
- Reference< css::awt::XWindow > xWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
-
- if ( xDockWindow.is() && xDockWindow->isFloating() )
- bShowElement = ( bShowElement && xContainerWindow->isActive() );
+ createElement( rResourceURL );
- if ( xDockWindow.is() && bShowElement )
- {
- pIter->m_bVisible = sal_True;
- aWriteLock.unlock();
-
- // we need VCL here to pass special flags to Show()
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if( pWindow && !pWindow->IsReallyVisible() )
- {
- pWindow->Show( sal_True, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
- implts_writeNewStateData( ResourceURL, xWindow );
-
- if ( xDockWindow.is() && !xDockWindow->isFloating() )
- doLayout();
- bResult = sal_True;
- bNotify = sal_True;
- }
-
- bResult = sal_False;
- }
- } // if ( pIter->m_xUIElement.is() )
- break;
- }
- }
-
- // Create toolbar on demand when it's visible
- if ( !bResult )
+ // There are some situation where we are not able to create an element.
+ // Therefore we have to check the reference before further action.
+ // See #i70019#
+ uno::Reference< ui::XUIElement > xUIElement( m_aStatusBarElement.m_xUIElement );
+ if ( xUIElement.is() )
+ {
+ // we need VCL here to pass special flags to Show()
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Reference< awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow )
{
- Reference< ::com::sun::star::ui::XUIElement > xUIElement;
- if ( !bFound )
- {
- UIElement aNewToolbar( aElementName, aElementType, xUIElement );
- aNewToolbar.m_aName = ResourceURL;
- implts_readWindowStateData( ResourceURL, aNewToolbar );
- implts_insertUIElement( aNewToolbar );
- aWriteLock.unlock();
-
- implts_sortUIElements();
- if ( aNewToolbar.m_bVisible )
- createElement( ResourceURL );
- bResult = sal_True;
- bNotify = sal_True;
- }
- else if ( bShowElement )
- {
- aWriteLock.unlock();
-
- createElement( ResourceURL );
- bResult = sal_True;
- bNotify = sal_True;
- }
+ pWindow->Show( sal_True, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ bResult = true;
+ bNotify = true;
+ bDoLayout = true;
}
}
}
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ) )
+ {
+ aWriteLock.unlock();
+ implts_showProgressBar();
+ bResult = true;
+ bNotify = true;
+ bDoLayout = true;
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ) && m_bVisible )
+ {
+ bool bComponentAttached( m_aModuleIdentifier.getLength() > 0 );
+ uno::Reference< uno::XInterface > xThis( m_xToolbarManager, uno::UNO_QUERY );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aWriteLock.unlock();
+
+ if ( pToolbarManager && bComponentAttached )
{
- css::uno::Reference< css::frame::XFrame > xFrame( m_xFrame );
- aWriteLock.unlock();
+ bNotify = pToolbarManager->requestToolbar( rResourceURL );
+ bDoLayout = true;
+ }
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
+ {
+ uno::Reference< frame::XFrame > xFrame( m_xFrame );
+ aWriteLock.unlock();
- CreateDockingWindow( xFrame, aElementName );
- }
+ CreateDockingWindow( xFrame, aElementName );
}
if ( bNotify )
- {
- // UI element is visible - provide information to listeners
- implts_notifyListeners( css::frame::LayoutManagerEvents::UIELEMENT_VISIBLE, uno::makeAny( ResourceURL ) );
- }
+ implts_notifyListeners( frame::LayoutManagerEvents::UIELEMENT_VISIBLE, uno::makeAny( rResourceURL ) );
return bResult;
}
@@ -4561,50 +1741,54 @@ throw (::com::sun::star::uno::RuntimeException)
Reference< XUIElement > SAL_CALL LayoutManager::getElement( const ::rtl::OUString& aName )
throw (RuntimeException)
{
- ::rtl::OUString aElementType;
- ::rtl::OUString aElementName;
- Reference< XUIElement > xElement;
+ Reference< XUIElement > xUIElement = implts_findElement( aName );
+ if ( !xUIElement.is() )
+ {
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager( m_pToolbarManager );
+ aReadLock.unlock();
- implts_findElement( aName, aElementType, aElementName, xElement );
- return xElement;
+ if ( pToolbarManager )
+ xUIElement = pToolbarManager->getToolbar( aName );
+ }
+
+ return xUIElement;
}
-Sequence< Reference< ::com::sun::star::ui::XUIElement > > SAL_CALL LayoutManager::getElements()
-throw (::com::sun::star::uno::RuntimeException)
+Sequence< Reference< ui::XUIElement > > SAL_CALL LayoutManager::getElements()
+throw (uno::RuntimeException)
{
- ReadGuard aReadLock( m_aLock );
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< ui::XUIElement > xMenuBar( m_xMenuBar );
+ uno::Reference< ui::XUIElement > xStatusBar( m_aStatusBarElement.m_xUIElement );
+ uno::Reference< uno::XInterface > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager( m_pToolbarManager );
+ aReadLock.unlock();
- sal_Bool bMenuBar( sal_False );
- sal_Bool bStatusBar( sal_False );
- sal_Int32 nSize = m_aUIElements.size();
+ Sequence< Reference< ui::XUIElement > > aSeq;
+ if ( pToolbarManager )
+ aSeq = pToolbarManager->getToolbars();
- if ( m_xMenuBar.is() )
+ sal_Int32 nSize = aSeq.getLength();
+ sal_Int32 nMenuBarIndex(-1);
+ sal_Int32 nStatusBarIndex(-1);
+ if ( xMenuBar.is() )
{
+ nMenuBarIndex = nSize;
++nSize;
- bMenuBar = sal_True;
}
- if ( m_aStatusBarElement.m_xUIElement.is() )
+ if ( xStatusBar.is() )
{
+ nStatusBarIndex = nSize;
++nSize;
- bStatusBar = sal_True;
}
- Sequence< Reference< ::com::sun::star::ui::XUIElement > > aSeq( nSize );
-
- sal_Int32 nIndex = 0;
- UIElementVector::const_iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_xUIElement.is() )
- aSeq[nIndex++] = pIter->m_xUIElement;
- }
- if ( bMenuBar )
- aSeq[nIndex++] = m_xMenuBar;
- if ( bStatusBar )
- aSeq[nIndex++] = m_aStatusBarElement.m_xUIElement;
-
- // Resize sequence as we now know our correct size
- aSeq.realloc( nIndex );
+ aSeq.realloc(nSize);
+ if ( nMenuBarIndex >= 0 )
+ aSeq[nMenuBarIndex] = xMenuBar;
+ if ( nStatusBarIndex >= 0 )
+ aSeq[nStatusBarIndex] = xStatusBar;
return aSeq;
}
@@ -4614,115 +1798,80 @@ throw (RuntimeException)
{
RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::LayoutManager::showElement" );
- sal_Bool bResult( sal_False );
- sal_Bool bNotify( sal_False );
- ::rtl::OUString aElementType;
- ::rtl::OUString aElementName;
+ bool bResult( false );
+ bool bNotify( false );
+ bool bMustLayout( false );
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
+
+ parseResourceURL( aName, aElementType, aElementName );
- if ( impl_parseResourceURL( aName, aElementType, aElementName ))
+ ::rtl::OString aResName = rtl::OUStringToOString( aElementName, RTL_TEXTENCODING_ASCII_US );
+ RTL_LOGFILE_CONTEXT_TRACE1( aLog, "framework (cd100003) Element %s", aResName.getStr() );
+
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
{
- ::rtl::OString aResName = rtl::OUStringToOString( aElementName, RTL_TEXTENCODING_ASCII_US );
- RTL_LOGFILE_CONTEXT_TRACE1( aLog, "framework (cd100003) Element %s", aResName.getStr() );
+ WriteGuard aWriteLock( m_aLock );
+ m_bMenuVisible = sal_True;
+ aWriteLock.unlock();
- if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
+ bResult = implts_resetMenuBar();
+ bNotify = bResult;
+ }
+ else if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) || ( m_aStatusBarElement.m_aName == aName ))
+ {
+ WriteGuard aWriteLock( m_aLock );
+ if ( m_aStatusBarElement.m_xUIElement.is() && !m_aStatusBarElement.m_bMasterHide &&
+ implts_showStatusBar( sal_True ))
{
- WriteGuard aWriteLock( m_aLock );
- m_bMenuVisible = sal_True;
aWriteLock.unlock();
- bResult = implts_resetMenuBar();
- bNotify = bResult;
- }
- else if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) ||
- ( m_aStatusBarElement.m_aName == aName ))
- {
- WriteGuard aWriteLock( m_aLock );
- if ( m_aStatusBarElement.m_xUIElement.is() &&
- !m_aStatusBarElement.m_bMasterHide )
- {
- if ( implts_showStatusBar( sal_True ))
- {
- implts_writeWindowStateData( m_aStatusBarAlias, m_aStatusBarElement );
- doLayout();
- bResult = sal_True;
- bNotify = sal_True;
- }
- }
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ))
- {
- bNotify = bResult = implts_showProgressBar();
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ))
- {
- UIElementVector::iterator pIter;
-
- WriteGuard aWriteLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aName == aName && pIter->m_xUIElement.is() )
- {
- UIElement aUIElement = *pIter;
- Reference< css::awt::XWindow > xWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
-
- sal_Bool bShowElement( !pIter->m_bMasterHide && m_bParentWindowVisible );
-
- pIter->m_bVisible = sal_True;
- aWriteLock.unlock();
-
- implts_writeWindowStateData( aUIElement.m_aName, aUIElement );
- implts_sortUIElements();
-
- if ( xDockWindow.is() && bShowElement )
- {
- // we need VCL here to pass special flags to Show()
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if( pWindow )
- {
- pWindow->Show( sal_True, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
- bNotify = sal_True;
- }
- implts_writeNewStateData( aName, xWindow );
-
- if ( xDockWindow.is() && !xDockWindow->isFloating() )
- doLayout();
-
- bResult = sal_True;
- } // if ( xDockWindow.is() && bShowElement )
- break;
- }
- }
+ implts_writeWindowStateData( m_aStatusBarAlias, m_aStatusBarElement );
+ bMustLayout = true;
+ bResult = true;
+ bNotify = true;
}
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
- {
- ReadGuard aReadGuard( m_aLock );
- css::uno::Reference< css::frame::XFrame > xFrame( m_xFrame );
- css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR( m_xSMGR );
- aReadGuard.unlock();
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ))
+ {
+ bNotify = bResult = implts_showProgressBar();
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
+ {
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< awt::XWindowListener > xToolbarManager( m_xToolbarManager, uno::UNO_QUERY );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- impl_setDockingWindowVisibility( xSMGR, xFrame, aElementName, true );
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolpanel" ))
+ if ( pToolbarManager )
{
- ReadGuard aReadGuard( m_aLock );
- css::uno::Reference< css::frame::XFrame > xFrame( m_xFrame );
- aReadGuard.unlock();
-
- ActivateToolPanel( m_xFrame, aName );
+ bNotify = pToolbarManager->showToolbar( aName );
+ bMustLayout = pToolbarManager->isLayoutDirty();
}
}
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
+ {
+ ReadGuard aReadGuard( m_aLock );
+ uno::Reference< frame::XFrame > xFrame( m_xFrame );
+ uno::Reference< lang::XMultiServiceFactory > xSMGR( m_xSMGR );
+ aReadGuard.unlock();
- if ( bNotify )
+ impl_setDockingWindowVisibility( xSMGR, xFrame, aElementName, true );
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolpanel" ))
{
- // UI element is visible - provide information to listeners
- implts_notifyListeners( css::frame::LayoutManagerEvents::UIELEMENT_VISIBLE, uno::makeAny( aName ) );
+ ReadGuard aReadGuard( m_aLock );
+ uno::Reference< frame::XFrame > xFrame( m_xFrame );
+ aReadGuard.unlock();
+ ActivateToolPanel( m_xFrame, aName );
}
+ if ( bMustLayout )
+ doLayout();
+
+ if ( bNotify )
+ implts_notifyListeners( frame::LayoutManagerEvents::UIELEMENT_VISIBLE, uno::makeAny( aName ) );
+
return bResult;
}
@@ -4731,479 +1880,240 @@ throw (RuntimeException)
{
RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::LayoutManager::hideElement" );
+ bool bResult( false );
+ bool bNotify( false );
+ bool bMustLayout( false );
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
- sal_Bool bResult( sal_False );
- sal_Bool bNotify( sal_False );
- ::rtl::OUString aElementType;
- ::rtl::OUString aElementName;
+ parseResourceURL( aName, aElementType, aElementName );
+ ::rtl::OString aResName = rtl::OUStringToOString( aElementName, RTL_TEXTENCODING_ASCII_US );
+ RTL_LOGFILE_CONTEXT_TRACE1( aLog, "framework (cd100003) Element %s", aResName.getStr() );
- if ( impl_parseResourceURL( aName, aElementType, aElementName ))
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
{
- ::rtl::OString aResName = rtl::OUStringToOString( aElementName, RTL_TEXTENCODING_ASCII_US );
- RTL_LOGFILE_CONTEXT_TRACE1( aLog, "framework (cd100003) Element %s", aResName.getStr() );
+ WriteGuard aWriteLock( m_aLock );
- if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
+ if ( m_xContainerWindow.is() )
{
- WriteGuard aWriteLock( m_aLock );
+ m_bMenuVisible = sal_False;
- if ( m_xContainerWindow.is() )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
- while ( pWindow && !pWindow->IsSystemWindow() )
- pWindow = pWindow->GetParent();
-
- m_bMenuVisible = sal_False;
- if ( pWindow )
- {
- MenuBar* pMenuBar = ((SystemWindow *)pWindow)->GetMenuBar();
- if ( pMenuBar )
- {
- pMenuBar->SetDisplayable( sal_False );
- bResult = sal_True;
- bNotify = sal_True;
- }
- }
- }
- }
- else if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) ||
- ( m_aStatusBarElement.m_aName == aName ))
- {
- WriteGuard aWriteLock( m_aLock );
- if ( m_aStatusBarElement.m_xUIElement.is() &&
- !m_aStatusBarElement.m_bMasterHide )
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ SystemWindow* pSysWindow = getTopSystemWindow( m_xContainerWindow );
+ if ( pSysWindow )
{
- if ( implts_hideStatusBar( sal_True ))
+ MenuBar* pMenuBar = pSysWindow->GetMenuBar();
+ if ( pMenuBar )
{
- implts_writeWindowStateData( m_aStatusBarAlias, m_aStatusBarElement );
- doLayout();
- bNotify = sal_True;
- bResult = sal_True;
+ pMenuBar->SetDisplayable( sal_False );
+ bResult = true;
+ bNotify = true;
}
}
}
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ))
+ }
+ else if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) || ( m_aStatusBarElement.m_aName == aName ))
+ {
+ WriteGuard aWriteLock( m_aLock );
+ if ( m_aStatusBarElement.m_xUIElement.is() && !m_aStatusBarElement.m_bMasterHide &&
+ implts_hideStatusBar( sal_True ))
{
- bResult = bNotify = implts_hideProgressBar();
+ implts_writeWindowStateData( m_aStatusBarAlias, m_aStatusBarElement );
+ bMustLayout = sal_True;
+ bNotify = sal_True;
+ bResult = sal_True;
}
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ))
- {
- UIElementVector::iterator pIter;
-
- WriteGuard aWriteLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aName == aName && pIter->m_xUIElement.is() )
- {
- Reference< css::awt::XWindow > xWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
-
- if ( xDockWindow.is() )
- {
- pIter->m_bVisible = sal_False;
- aWriteLock.unlock();
-
- xWindow->setVisible( sal_False );
- implts_writeNewStateData( aName, xWindow );
-
- if ( xDockWindow.is() && !xDockWindow->isFloating() )
- doLayout();
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" ))
+ {
+ bResult = bNotify = implts_hideProgressBar();
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
+ {
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xToolbarManager( m_xToolbarManager, uno::UNO_QUERY );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- bResult = sal_True;
- bNotify = sal_True;
- } // if ( xDockWindow.is() )
- break;
- }
- }
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
- {
- ReadGuard aReadGuard( m_aLock );
- css::uno::Reference< css::frame::XFrame > xFrame( m_xFrame );
- css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR( m_xSMGR );
- aReadGuard.unlock();
+ bNotify = pToolbarManager->hideToolbar( aName );
+ bMustLayout = pToolbarManager->isLayoutDirty();
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
+ {
+ ReadGuard aReadGuard( m_aLock );
+ uno::Reference< frame::XFrame > xFrame( m_xFrame );
+ uno::Reference< lang::XMultiServiceFactory > xSMGR( m_xSMGR );
+ aReadGuard.unlock();
- impl_setDockingWindowVisibility( xSMGR, xFrame, aElementName, false );
- }
+ impl_setDockingWindowVisibility( xSMGR, xFrame, aElementName, false );
}
+ if ( bMustLayout )
+ doLayout();
+
if ( bNotify )
- {
- // UI element is visible - provide information to listeners
- implts_notifyListeners( css::frame::LayoutManagerEvents::UIELEMENT_INVISIBLE, uno::makeAny( aName ) );
- }
+ implts_notifyListeners( frame::LayoutManagerEvents::UIELEMENT_INVISIBLE, uno::makeAny( aName ) );
return sal_False;
}
-sal_Bool SAL_CALL LayoutManager::dockWindow( const ::rtl::OUString& aName, DockingArea DockingArea, const css::awt::Point& Pos )
+sal_Bool SAL_CALL LayoutManager::dockWindow( const ::rtl::OUString& aName, DockingArea DockingArea, const awt::Point& Pos )
throw (RuntimeException)
{
- UIElement aUIElement;
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
- if ( implts_findElement( aName, aUIElement ) && aUIElement.m_xUIElement.is() )
+ parseResourceURL( aName, aElementType, aElementName );
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- try
- {
- Reference< css::awt::XWindow > xWindow( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- if ( xDockWindow.is() )
- {
- if ( DockingArea != DockingArea_DOCKINGAREA_DEFAULT )
- aUIElement.m_aDockedData.m_nDockedArea = sal_Int16( DockingArea );
-
- if (( Pos.X != SAL_MAX_INT32 ) && ( Pos.Y != SAL_MAX_INT32 ))
- aUIElement.m_aDockedData.m_aPos = ::Point( Pos.X, Pos.Y );
-
- if ( !xDockWindow->isFloating() )
- {
- Window* pWindow( 0 );
- ToolBox* pToolBox( 0 );
-
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
- {
- pToolBox = (ToolBox *)pWindow;
-
- // We have to set the alignment of the toolbox. It's possible that the toolbox is moved from a
- // horizontal to a vertical docking area!
- pToolBox->SetAlign( ImplConvertAlignment( aUIElement.m_aDockedData.m_nDockedArea ));
- }
- }
-
- if (( aUIElement.m_aDockedData.m_aPos.X() == SAL_MAX_INT32 ) ||
- ( aUIElement.m_aDockedData.m_aPos.Y() == SAL_MAX_INT32 ))
- {
- // Docking on its default position without a preset position -
- // we have to find a good place for it.
- ::Size aSize;
-
- vos::OGuard aGuard( Application::GetSolarMutex() );
- {
- if ( pToolBox )
- aSize = pToolBox->CalcWindowSizePixel( 1, ImplConvertAlignment( aUIElement.m_aDockedData.m_nDockedArea ) );
- else
- aSize = pWindow->GetSizePixel();
- }
-
- ::Point aPixelPos;
- ::Point aDockPos;
- implts_findNextDockingPos( (::com::sun::star::ui::DockingArea)aUIElement.m_aDockedData.m_nDockedArea,
- aSize,
- aDockPos,
- aPixelPos );
- aUIElement.m_aDockedData.m_aPos = aDockPos;
- }
- }
-
- WriteGuard aWriteLock( m_aLock );
- UIElement& rUIElement = LayoutManager::impl_findElement( aUIElement.m_aName );
- if ( rUIElement.m_aName == aName )
- {
- rUIElement.m_aDockedData.m_nDockedArea = aUIElement.m_aDockedData.m_nDockedArea;
- rUIElement.m_aDockedData.m_aPos = aUIElement.m_aDockedData.m_aPos;
- }
- aWriteLock.unlock();
-
- if ( xDockWindow->isFloating() )
- {
- // Will call toggle floating mode which will do the rest!
- xWindow->setVisible( sal_False );
- xDockWindow->setFloatingMode( sal_False );
- xWindow->setVisible( sal_True );
- }
- else
- {
- implts_writeWindowStateData( aName, aUIElement );
- implts_sortUIElements();
-
- if ( aUIElement.m_bVisible )
- doLayout();
- }
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- return sal_True;
- }
- }
- catch ( DisposedException& )
+ if ( pToolbarManager )
{
+ pToolbarManager->dockToolbar( aName, DockingArea, Pos );
+ if ( pToolbarManager->isLayoutDirty() )
+ doLayout();
}
}
-
return sal_False;
}
-::sal_Bool SAL_CALL LayoutManager::dockAllWindows( ::sal_Int16 nElementType ) throw (::com::sun::star::uno::RuntimeException)
+::sal_Bool SAL_CALL LayoutManager::dockAllWindows( ::sal_Int16 /*nElementType*/ ) throw (uno::RuntimeException)
{
- if ( nElementType == UIElementType::TOOLBAR )
- {
- std::vector< rtl::OUString > aToolBarNameVector;
-
- ::rtl::OUString aElementType;
- ::rtl::OUString aElementName;
-
- {
- ReadGuard aReadLock( m_aLock );
- UIElementVector::iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_aType.equalsAscii( "toolbar" ) &&
- pIter->m_xUIElement.is() &&
- pIter->m_bFloating &&
- pIter->m_bVisible )
- aToolBarNameVector.push_back( pIter->m_aName );
- }
- }
+ ReadGuard aReadLock( m_aLock );
+ bool bResult( false );
+ uno::Reference< uno::XInterface > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- const sal_uInt32 nCount = aToolBarNameVector.size();
- for ( sal_uInt32 i = 0; i < nCount; ++i )
- {
- ::com::sun::star::awt::Point aPoint;
- aPoint.X = aPoint.Y = SAL_MAX_INT32;
- dockWindow( aToolBarNameVector[i], DockingArea_DOCKINGAREA_DEFAULT, aPoint );
- }
+ if ( pToolbarManager )
+ {
+ bResult = pToolbarManager->dockAllToolbars();
+ if ( pToolbarManager->isLayoutDirty() )
+ doLayout();
}
-
- return sal_False;
+ return bResult;
}
sal_Bool SAL_CALL LayoutManager::floatWindow( const ::rtl::OUString& aName )
throw (RuntimeException)
{
- UIElement aUIElement;
-
- if ( implts_findElement( aName, aUIElement ))
+ bool bResult( false );
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- if ( aUIElement.m_xUIElement.is() )
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
+
+ if ( pToolbarManager )
{
- try
- {
- Reference< css::awt::XWindow > xWindow( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- if ( xWindow.is() && xDockWindow.is() )
- {
- if ( !xDockWindow->isFloating() )
- {
- xDockWindow->setFloatingMode( sal_True );
- return sal_True;
- }
- }
- }
- catch ( DisposedException& )
- {
- }
+ bResult = pToolbarManager->floatToolbar( aName );
+ if ( pToolbarManager->isLayoutDirty() )
+ doLayout();
}
}
-
- return sal_False;
+ return bResult;
}
-::sal_Bool SAL_CALL LayoutManager::lockWindow( const ::rtl::OUString& ResourceURL )
-throw (::com::sun::star::uno::RuntimeException)
+::sal_Bool SAL_CALL LayoutManager::lockWindow( const ::rtl::OUString& aName )
+throw (uno::RuntimeException)
{
- UIElement aUIElement;
-
- if ( implts_findElement( ResourceURL, aUIElement ))
+ bool bResult( false );
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- if ( aUIElement.m_xUIElement.is() )
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
+
+ if ( pToolbarManager )
{
- try
- {
- Reference< css::awt::XWindow > xWindow( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow &&
- pWindow->IsVisible() &&
- xDockWindow.is() &&
- !xDockWindow->isFloating() )
- {
- aUIElement.m_aDockedData.m_bLocked = sal_True;
- implts_writeWindowStateData( ResourceURL, aUIElement );
- xDockWindow->lock();
-
- // Write back lock state
- WriteGuard aWriteLock( m_aLock );
- UIElement& rUIElement = LayoutManager::impl_findElement( aUIElement.m_aName );
- if ( rUIElement.m_aName == aUIElement.m_aName )
- rUIElement.m_aDockedData.m_bLocked = aUIElement.m_aDockedData.m_bLocked;
- aWriteLock.unlock();
-
- doLayout();
- return sal_True;
- }
- }
- catch ( DisposedException& )
- {
- }
+ bResult = pToolbarManager->lockToolbar( aName );
+ if ( pToolbarManager->isLayoutDirty() )
+ doLayout();
}
}
-
- return sal_False;
+ return bResult;
}
-::sal_Bool SAL_CALL LayoutManager::unlockWindow( const ::rtl::OUString& ResourceURL )
-throw (::com::sun::star::uno::RuntimeException)
+::sal_Bool SAL_CALL LayoutManager::unlockWindow( const ::rtl::OUString& aName )
+throw (uno::RuntimeException)
{
- UIElement aUIElement;
-
- if ( implts_findElement( ResourceURL, aUIElement ))
+ bool bResult( false );
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- if ( aUIElement.m_xUIElement.is() )
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
+
+ if ( pToolbarManager )
{
- try
- {
- Reference< css::awt::XWindow > xWindow( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow &&
- pWindow->IsVisible() &&
- xDockWindow.is() &&
- !xDockWindow->isFloating() )
- {
- aUIElement.m_aDockedData.m_bLocked = sal_False;
- implts_writeWindowStateData( ResourceURL, aUIElement );
- xDockWindow->unlock();
-
- // Write back lock state
- WriteGuard aWriteLock( m_aLock );
- UIElement& rUIElement = LayoutManager::impl_findElement( aUIElement.m_aName );
- if ( rUIElement.m_aName == aUIElement.m_aName )
- rUIElement.m_aDockedData.m_bLocked = aUIElement.m_aDockedData.m_bLocked;
- aWriteLock.unlock();
-
- doLayout();
- return sal_True;
- }
- }
- catch ( DisposedException& )
- {
- }
+ bResult = pToolbarManager->unlockToolbar( aName );
+ if ( pToolbarManager->isLayoutDirty() )
+ doLayout();
}
}
-
- return sal_False;
+ return bResult;
}
-void SAL_CALL LayoutManager::setElementSize( const ::rtl::OUString& aName, const css::awt::Size& aSize )
+void SAL_CALL LayoutManager::setElementSize( const ::rtl::OUString& aName, const awt::Size& aSize )
throw (RuntimeException)
{
- UIElement aUIElement;
-
- if ( implts_findElement( aName, aUIElement ))
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- if ( aUIElement.m_xUIElement.is() )
- {
- try
- {
- Reference< css::awt::XWindow > xWindow( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XWindow2 > xWindow2( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xThis( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- if ( xWindow.is() && xWindow2.is() && xDockWindow.is() )
- {
- if ( aUIElement.m_bFloating )
- {
- xWindow2->setOutputSize( aSize );
- implts_writeNewStateData( aName, xWindow );
- }
- }
- }
- catch ( DisposedException& )
- {
- }
+ if ( pToolbarManager )
+ {
+ pToolbarManager->setToolbarSize( aName, aSize );
+ if ( pToolbarManager->isLayoutDirty() )
+ doLayout();
}
}
}
-void SAL_CALL LayoutManager::setElementPos( const ::rtl::OUString& aName, const css::awt::Point& aPos )
+void SAL_CALL LayoutManager::setElementPos( const ::rtl::OUString& aName, const awt::Point& aPos )
throw (RuntimeException)
{
- UIElement aUIElement;
-
- if ( implts_findElement( aName, aUIElement ) && aUIElement.m_xUIElement.is() )
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- try
- {
- Reference< css::awt::XWindow > xWindow( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< ui::XUIConfigurationListener > xToolbarManager( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager( m_pToolbarManager );
+ aReadLock.unlock();
- if ( xWindow.is() && xDockWindow.is() )
- {
- if ( aUIElement.m_bFloating )
- {
- xWindow->setPosSize( aPos.X, aPos.Y, 0, 0, css::awt::PosSize::POS );
- implts_writeNewStateData( aName, xWindow );
- }
- else
- {
- WriteGuard aWriteLock( m_aLock );
- UIElement& rUIElement = LayoutManager::impl_findElement( aUIElement.m_aName );
- if ( rUIElement.m_aName == aName )
- rUIElement.m_aDockedData.m_aPos = ::Point( aPos.X, aPos.Y );
- aWriteLock.unlock();
-
- aUIElement.m_aDockedData.m_aPos = ::Point( aPos.X, aPos.Y );
- implts_writeWindowStateData( aName, aUIElement );
- implts_sortUIElements();
-
- if ( aUIElement.m_bVisible )
- doLayout();
- }
- }
- }
- catch ( DisposedException& )
+ if ( pToolbarManager )
{
+ pToolbarManager->setToolbarPos( aName, aPos );
+ if ( pToolbarManager->isLayoutDirty() )
+ doLayout();
}
}
}
-void SAL_CALL LayoutManager::setElementPosSize( const ::rtl::OUString& aName, const css::awt::Point& aPos, const css::awt::Size& aSize )
+void SAL_CALL LayoutManager::setElementPosSize( const ::rtl::OUString& aName, const awt::Point& aPos, const awt::Size& aSize )
throw (RuntimeException)
{
- UIElement aUIElement;
-
- if ( implts_findElement( aName, aUIElement ))
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- if ( aUIElement.m_xUIElement.is() )
- {
- try
- {
- Reference< css::awt::XWindow > xWindow( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XWindow2 > xWindow2( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
-
- if ( xWindow.is() && xWindow2.is() && xDockWindow.is() )
- {
- if ( aUIElement.m_bFloating )
- {
- xWindow2->setPosSize( aPos.X, aPos.Y, 0, 0, css::awt::PosSize::POS );
- xWindow2->setOutputSize( aSize );
- implts_writeNewStateData( aName, xWindow );
- }
- else
- {
- WriteGuard aWriteLock( m_aLock );
- UIElement& rUIElement = LayoutManager::impl_findElement( aUIElement.m_aName );
- if ( rUIElement.m_aName == aName )
- rUIElement.m_aDockedData.m_aPos = ::Point( aPos.X, aPos.Y );
- aWriteLock.unlock();
-
- aUIElement.m_aDockedData.m_aPos = ::Point( aPos.X, aPos.Y );
- implts_writeWindowStateData( aName, rUIElement );
- implts_sortUIElements();
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< ui::XUIConfigurationListener > xToolbarManager( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager( m_pToolbarManager );
+ aReadLock.unlock();
- if ( aUIElement.m_bVisible )
- doLayout();
- }
- }
- }
- catch ( DisposedException& )
- {
- }
+ if ( pToolbarManager )
+ {
+ pToolbarManager->setToolbarPosSize( aName, aPos, aSize );
+ if ( pToolbarManager->isLayoutDirty() )
+ doLayout();
}
}
}
@@ -5214,84 +2124,66 @@ throw (RuntimeException)
::rtl::OUString aElementType;
::rtl::OUString aElementName;
- if ( impl_parseResourceURL( aName, aElementType, aElementName ))
+ parseResourceURL( aName, aElementType, aElementName );
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
{
- if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
+ ReadGuard aReadLock( m_aLock );
+ if ( m_xContainerWindow.is() )
{
- ReadGuard aReadLock( m_aLock );
- if ( m_xContainerWindow.is() )
- {
- aReadLock.unlock();
-
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
- while ( pWindow && !pWindow->IsSystemWindow() )
- pWindow = pWindow->GetParent();
+ aReadLock.unlock();
- if ( pWindow )
- {
- MenuBar* pMenuBar = ((SystemWindow *)pWindow)->GetMenuBar();
- if ( pMenuBar && pMenuBar->IsDisplayable() )
- return sal_True;
- }
- else
- {
- aReadLock.lock();
- return m_bMenuVisible;
- }
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ SystemWindow* pSysWindow = getTopSystemWindow( m_xContainerWindow );
+ if ( pSysWindow )
+ {
+ MenuBar* pMenuBar = pSysWindow->GetMenuBar();
+ if ( pMenuBar && pMenuBar->IsDisplayable() )
+ return sal_True;
}
- }
- else if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) ||
- ( m_aStatusBarElement.m_aName == aName ))
- {
- if ( m_aStatusBarElement.m_xUIElement.is() )
+ else
{
- Reference< css::awt::XWindow > xWindow(
- m_aStatusBarElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- if ( xWindow.is() )
- {
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow && pWindow->IsVisible() )
- return sal_True;
- else
- return sal_False;
- }
+ aReadLock.lock();
+ return m_bMenuVisible;
}
}
- else if (( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" )))
- {
- if ( m_aProgressBarElement.m_xUIElement.is() )
- return m_aProgressBarElement.m_bVisible;
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ))
+ }
+ else if (( aElementType.equalsIgnoreAsciiCaseAscii( "statusbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "statusbar" )) || ( m_aStatusBarElement.m_aName == aName ))
+ {
+ if ( m_aStatusBarElement.m_xUIElement.is() )
{
- UIElementVector::const_iterator pIter;
-
- ReadGuard aReadLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ Reference< awt::XWindow > xWindow( m_aStatusBarElement.m_xUIElement->getRealInterface(), UNO_QUERY );
+ if ( xWindow.is() )
{
- if ( pIter->m_aName == aName && pIter->m_xUIElement.is() )
- {
- Reference< css::awt::XWindow > xWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- if ( xWindow.is() )
- {
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- return pWindow && pWindow->IsVisible();
- }
- }
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow && pWindow->IsVisible() )
+ return sal_True;
+ else
+ return sal_False;
}
}
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
- {
- ReadGuard aReadGuard( m_aLock );
- css::uno::Reference< css::frame::XFrame > xFrame( m_xFrame );
- aReadGuard.unlock();
+ }
+ else if (( aElementType.equalsIgnoreAsciiCaseAscii( "progressbar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "progressbar" )))
+ {
+ if ( m_aProgressBarElement.m_xUIElement.is() )
+ return m_aProgressBarElement.m_bVisible;
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
+ {
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< frame::XLayoutManager > xToolbarManager( m_xToolbarManager, uno::UNO_QUERY );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- return IsDockingWindowVisible( xFrame, aElementName );
- }
+ if ( pToolbarManager )
+ return pToolbarManager->isToolbarVisible( aName );
+ }
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( "dockingwindow" ))
+ {
+ ReadGuard aReadGuard( m_aLock );
+ uno::Reference< frame::XFrame > xFrame( m_xFrame );
+ aReadGuard.unlock();
+
+ return IsDockingWindowVisible( xFrame, aElementName );
}
return sal_False;
@@ -5300,16 +2192,15 @@ throw (RuntimeException)
sal_Bool SAL_CALL LayoutManager::isElementFloating( const ::rtl::OUString& aName )
throw (RuntimeException)
{
- UIElementVector::const_iterator pIter;
-
- ReadGuard aReadLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- if ( pIter->m_aName == aName && pIter->m_xUIElement.is() )
- {
- Reference< css::awt::XDockableWindow > xDockWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- return xDockWindow.is() && xDockWindow->isFloating();
- }
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xToolbarManager( m_xToolbarManager, uno::UNO_QUERY );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
+
+ if ( pToolbarManager )
+ return pToolbarManager->isToolbarFloating( aName );
}
return sal_False;
@@ -5318,93 +2209,69 @@ throw (RuntimeException)
sal_Bool SAL_CALL LayoutManager::isElementDocked( const ::rtl::OUString& aName )
throw (RuntimeException)
{
- UIElementVector::const_iterator pIter;
-
- ReadGuard aReadLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- if ( pIter->m_aName == aName && pIter->m_xUIElement.is() )
- {
- Reference< css::awt::XDockableWindow > xDockWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- return xDockWindow.is() && !xDockWindow->isFloating();
- }
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xToolbarManager( m_xToolbarManager, uno::UNO_QUERY );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
+
+ if ( pToolbarManager )
+ return pToolbarManager->isToolbarDocked( aName );
}
return sal_False;
}
-::sal_Bool SAL_CALL LayoutManager::isElementLocked( const ::rtl::OUString& ResourceURL )
-throw (::com::sun::star::uno::RuntimeException)
+::sal_Bool SAL_CALL LayoutManager::isElementLocked( const ::rtl::OUString& aName )
+throw (uno::RuntimeException)
{
- UIElementVector::const_iterator pIter;
-
- ReadGuard aReadLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- if (( pIter->m_aName == ResourceURL ) && ( pIter->m_xUIElement.is() ))
- {
- Reference< css::awt::XDockableWindow > xDockWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
- return xDockWindow.is() && !xDockWindow->isLocked();
- }
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xToolbarManager( m_xToolbarManager, uno::UNO_QUERY );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
+
+ if ( pToolbarManager )
+ return pToolbarManager->isToolbarLocked( aName );
}
return sal_False;
}
-css::awt::Size SAL_CALL LayoutManager::getElementSize( const ::rtl::OUString& aName )
+awt::Size SAL_CALL LayoutManager::getElementSize( const ::rtl::OUString& aName )
throw (RuntimeException)
{
- ReadGuard aReadLock( m_aLock );
- UIElement aElementData;
- if ( implts_findElement( aName,aElementData ) && aElementData.m_xUIElement.is() )
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- Reference< css::awt::XWindow > xWindow( aElementData.m_xUIElement->getRealInterface(), UNO_QUERY );
- if ( xWindow.is() )
- {
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow )
- {
- ::Size aSize = pWindow->GetSizePixel();
- css::awt::Size aElementSize;
- aElementSize.Width = aSize.Width();
- aElementSize.Height = aSize.Height();
- return aElementSize;
- } // if ( pWindow )
- }
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xToolbarManager( m_xToolbarManager, uno::UNO_QUERY );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
+
+ if ( pToolbarManager )
+ return pToolbarManager->getToolbarSize( aName );
}
- return css::awt::Size();
+
+ return awt::Size();
}
-css::awt::Point SAL_CALL LayoutManager::getElementPos( const ::rtl::OUString& aName )
+awt::Point SAL_CALL LayoutManager::getElementPos( const ::rtl::OUString& aName )
throw (RuntimeException)
{
- ReadGuard aReadLock( m_aLock );
- UIElement aElementData;
- if ( implts_findElement( aName,aElementData ) && aElementData.m_xUIElement.is() )
+ if ( getElementTypeFromResourceURL( aName ).equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- Reference< css::awt::XWindow > xWindow( aElementData.m_xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- if ( xDockWindow.is() )
- {
- css::awt::Point aPos;
- if ( aElementData.m_bFloating )
- {
- css::awt::Rectangle aRect = xWindow->getPosSize();
- aPos.X = aRect.X;
- aPos.Y = aRect.Y;
- }
- else
- {
- ::Point aVirtualPos = aElementData.m_aDockedData.m_aPos;
- aPos.X = aVirtualPos.X();
- aPos.Y = aVirtualPos.Y();
- }
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< uno::XInterface > xToolbarManager( m_xToolbarManager, uno::UNO_QUERY );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- return aPos;
- }
+ if ( pToolbarManager )
+ return pToolbarManager->getToolbarPos( aName );
}
- return css::awt::Point();
+ return awt::Point();
}
void SAL_CALL LayoutManager::lock()
@@ -5426,7 +2293,7 @@ throw (RuntimeException)
#endif
Any a( nLockCount );
- implts_notifyListeners( css::frame::LayoutManagerEvents::LOCK, a );
+ implts_notifyListeners( frame::LayoutManagerEvents::LOCK, a );
}
void SAL_CALL LayoutManager::unlock()
@@ -5449,15 +2316,15 @@ throw (RuntimeException)
// conform to documentation: unlock with lock count == 0 means force a layout
WriteGuard aWriteLock( m_aLock );
- if ( bDoLayout )
- m_aAsyncLayoutTimer.Stop();
- aWriteLock.unlock();
+ if ( bDoLayout )
+ m_aAsyncLayoutTimer.Stop();
+ aWriteLock.unlock();
Any a( nLockCount );
- implts_notifyListeners( css::frame::LayoutManagerEvents::UNLOCK, a );
+ implts_notifyListeners( frame::LayoutManagerEvents::UNLOCK, a );
if ( bDoLayout )
- implts_doLayout_notify( sal_True );
+ implts_doLayout_notify( sal_True );
}
void SAL_CALL LayoutManager::doLayout()
@@ -5466,62 +2333,61 @@ throw (RuntimeException)
implts_doLayout_notify( sal_True );
}
+//---------------------------------------------------------------------------------------------------------
+// ILayoutNotifications
+//---------------------------------------------------------------------------------------------------------
+void LayoutManager::requestLayout( Hint eHint )
+{
+ if ( eHint == HINT_TOOLBARSPACE_HAS_CHANGED )
+ doLayout();
+}
+
void LayoutManager::implts_doLayout_notify( sal_Bool bOuterResize )
{
- sal_Bool bLayouted = implts_doLayout( sal_False, bOuterResize );
+ bool bLayouted = implts_doLayout( false, bOuterResize );
if ( bLayouted )
- implts_notifyListeners( css::frame::LayoutManagerEvents::LAYOUT, Any() );
+ implts_notifyListeners( frame::LayoutManagerEvents::LAYOUT, Any() );
}
sal_Bool LayoutManager::implts_doLayout( sal_Bool bForceRequestBorderSpace, sal_Bool bOuterResize )
{
RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::LayoutManager::implts_doLayout" );
- sal_Bool bNoLock( sal_False );
- css::awt::Rectangle aCurrBorderSpace;
- Reference< css::awt::XWindow > xContainerWindow;
- Reference< css::awt::XTopWindow2 > xContainerTopWindow;
- Reference< css::awt::XWindow > xComponentWindow;
- Reference< XDockingAreaAcceptor > xDockingAreaAcceptor;
- bool bPreserveContentSize( false );
-
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
- sal_Bool bMustDoLayout( m_bMustDoLayout );
- if ( !m_bParentWindowVisible )
+ if ( !m_xFrame.is() || !m_bParentWindowVisible )
return sal_False;
- bNoLock = ( m_nLockCount == 0 );
- xContainerWindow = m_xContainerWindow;
- xContainerTopWindow = m_xContainerTopWindow;
- xComponentWindow = m_xFrame->getComponentWindow();
- xDockingAreaAcceptor = m_xDockingAreaAcceptor;
- aCurrBorderSpace = m_aDockingArea;
- bPreserveContentSize = m_bPreserveContentSize;
+ bool bPreserveContentSize( m_bPreserveContentSize );
+ bool bMustDoLayout( m_bMustDoLayout );
+ bool bNoLock = ( m_nLockCount == 0 );
+ awt::Rectangle aCurrBorderSpace( m_aDockingArea );
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
+ Reference< awt::XTopWindow2 > xContainerTopWindow( m_xContainerTopWindow );
+ Reference< awt::XWindow > xComponentWindow( m_xFrame->getComponentWindow() );
+ Reference< XDockingAreaAcceptor > xDockingAreaAcceptor( m_xDockingAreaAcceptor );
aReadLock.unlock();
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
sal_Bool bLayouted( sal_False );
- if ( bNoLock &&
- xDockingAreaAcceptor.is() &&
- xContainerWindow.is() &&
- xComponentWindow.is() )
+ if ( bNoLock && xDockingAreaAcceptor.is() && xContainerWindow.is() && xComponentWindow.is() )
{
bLayouted = sal_True;
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteGuard( m_aLock );
m_bDoLayout = sal_True;
aWriteGuard.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- css::awt::Rectangle aBorderSpace = implts_calcDockingAreaSizes();
- sal_Bool bGotRequestedBorderSpace( sal_True );
- sal_Bool bEqual = implts_compareRectangles( aBorderSpace, aCurrBorderSpace );
+ awt::Rectangle aDockSpace( implts_calcDockingAreaSizes() );
+ awt::Rectangle aBorderSpace( aDockSpace );
+ sal_Bool bGotRequestedBorderSpace( sal_True );
+
+ // We have to add the height of a possible status bar
+ aBorderSpace.Height += implts_getStatusBarSize().Height();
- if ( !bEqual || bForceRequestBorderSpace || bMustDoLayout )
+ if ( !equalRectangles( aBorderSpace, aCurrBorderSpace ) || bForceRequestBorderSpace || bMustDoLayout )
{
// we always resize the content window (instead of the complete container window) if we're not set up
// to (attempt to) preserve the content window's size
@@ -5534,7 +2400,7 @@ sal_Bool LayoutManager::implts_doLayout( sal_Bool bForceRequestBorderSpace, sal_
// if the component window does not have a size (yet), then we can't use it to calc the container
// window size
- css::awt::Rectangle aComponentRect = xComponentWindow->getPosSize();
+ awt::Rectangle aComponentRect = xComponentWindow->getPosSize();
if ( bOuterResize && ( aComponentRect.Width == 0 ) && ( aComponentRect.Height == 0 ) )
bOuterResize = sal_False;
@@ -5553,52 +2419,34 @@ sal_Bool LayoutManager::implts_doLayout( sal_Bool bForceRequestBorderSpace, sal_
// if we did not do an container window resize, or it failed, then use the DockingAcceptor as usual
if ( !bGotRequestedBorderSpace )
- {
bGotRequestedBorderSpace = xDockingAreaAcceptor->requestDockingAreaSpace( aBorderSpace );
- if ( bGotRequestedBorderSpace )
- xDockingAreaAcceptor->setDockingAreaSpace( aBorderSpace );
- }
if ( bGotRequestedBorderSpace )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
aWriteGuard.lock();
m_aDockingArea = aBorderSpace;
m_bMustDoLayout = sal_False;
aWriteGuard.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
}
}
if ( bGotRequestedBorderSpace )
{
- ::Size aContainerSize;
- ::Size aStatusBarSize;
+ ::Size aContainerSize;
+ ::Size aStatusBarSize;
- aStatusBarSize = implts_getStatusBarSize();
- aBorderSpace.Height -= aStatusBarSize.Height();
- implts_setDockingAreaWindowSizes( aBorderSpace );
+ // Interim solution to let the layout method within the
+ // toolbar layout manager.
+ implts_setOffset( implts_getStatusBarSize().Height() );
+ m_pToolbarManager->setDockingArea( aDockSpace );
// Subtract status bar size from our container output size. Docking area windows
// don't contain the status bar!
+ aStatusBarSize = implts_getStatusBarSize();
aContainerSize = implts_getContainerWindowOutputSize();
aContainerSize.Height() -= aStatusBarSize.Height();
- // Retrieve row/column dependent data from all docked user-interface elements
- for ( sal_Int32 i = 0; i < DOCKINGAREAS_COUNT; i++ )
- {
- std::vector< SingleRowColumnWindowData > aRowColumnsWindowData;
-
- implts_getDockingAreaElementInfos( (DockingArea)i, aRowColumnsWindowData );
-
- sal_Int32 nOffset( 0 );
- const sal_uInt32 nCount = aRowColumnsWindowData.size();
- for ( sal_uInt32 j = 0; j < nCount; ++j )
- {
- implts_calcWindowPosSizeOnSingleRowColumn( i, nOffset, aRowColumnsWindowData[j], aContainerSize );
- nOffset += aRowColumnsWindowData[j].nStaticSize;
- }
- }
+ m_pToolbarManager->doLayout(aContainerSize);
// Position the status bar
if ( aStatusBarSize.Height() > 0 )
@@ -5607,37 +2455,26 @@ sal_Bool LayoutManager::implts_doLayout( sal_Bool bForceRequestBorderSpace, sal_
::Size( aContainerSize.Width(),aStatusBarSize.Height() ));
}
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ xDockingAreaAcceptor->setDockingAreaSpace( aBorderSpace );
+
aWriteGuard.lock();
m_bDoLayout = sal_False;
aWriteGuard.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
}
}
return bLayouted;
}
-sal_Bool LayoutManager::implts_compareRectangles( const css::awt::Rectangle& rRect1,
- const css::awt::Rectangle& rRect2 )
-{
- return (( rRect1.X == rRect2.X ) &&
- ( rRect1.Y == rRect2.Y ) &&
- ( rRect1.Width == rRect2.Width ) &&
- ( rRect1.Height == rRect2.Height ));
-}
-
sal_Bool LayoutManager::implts_resizeContainerWindow( const awt::Size& rContainerSize,
const awt::Point& rComponentPos )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
Reference< awt::XWindow > xContainerWindow = m_xContainerWindow;
Reference< awt::XTopWindow2 > xContainerTopWindow = m_xContainerTopWindow;
Reference< awt::XWindow > xComponentWindow = m_xFrame->getComponentWindow();
Reference< container::XIndexAccess > xDisplayAccess = m_xDisplayAccess;
aReadLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
// calculate the maximum size we have for the container window
awt::Rectangle aWorkArea;
@@ -5652,34 +2489,30 @@ sal_Bool LayoutManager::implts_resizeContainerWindow( const awt::Size& rContaine
DBG_UNHANDLED_EXCEPTION();
}
- if ( ( aWorkArea.Width > 0 ) && ( aWorkArea.Height > 0 ) )
+ if (( aWorkArea.Width > 0 ) && ( aWorkArea.Height > 0 ))
{
- if ( ( rContainerSize.Width > aWorkArea.Width )
- || ( rContainerSize.Height > aWorkArea.Height )
- )
+ if (( rContainerSize.Width > aWorkArea.Width ) || ( rContainerSize.Height > aWorkArea.Height ))
return sal_False;
// Strictly, this is not correct. If we have a multi-screen display (css.awt.DisplayAccess.MultiDisplay == true),
// the the "effective work area" would be much larger than the work area of a single display, since we could in theory
// position the container window across multiple screens.
- // However, this should suffice as a heuristics here ... (nobody really wants to check whethere the different screens are
+ // However, this should suffice as a heuristics here ... (nobody really wants to check whether the different screens are
// stacked horizontally or vertically, whether their work areas can really be combined, or are separated by non-work-areas,
// and the like ... right?)
}
// resize our container window
- xContainerWindow->setPosSize( 0, 0, rContainerSize.Width, rContainerSize.Height, css::awt::PosSize::SIZE );
+ xContainerWindow->setPosSize( 0, 0, rContainerSize.Width, rContainerSize.Height, awt::PosSize::SIZE );
// position the component window
- xComponentWindow->setPosSize( rComponentPos.X, rComponentPos.Y, 0, 0, css::awt::PosSize::POS );
+ xComponentWindow->setPosSize( rComponentPos.X, rComponentPos.Y, 0, 0, awt::PosSize::POS );
return sal_True;
}
void SAL_CALL LayoutManager::setVisible( sal_Bool bVisible )
-throw (::com::sun::star::uno::RuntimeException)
+throw (uno::RuntimeException)
{
- sal_Bool bWasVisible( sal_True );
-
WriteGuard aWriteLock( m_aLock );
- bWasVisible = m_bVisible;
+ sal_Bool bWasVisible( m_bVisible );
m_bVisible = bVisible;
aWriteLock.unlock();
@@ -5688,226 +2521,24 @@ throw (::com::sun::star::uno::RuntimeException)
}
sal_Bool SAL_CALL LayoutManager::isVisible()
-throw (::com::sun::star::uno::RuntimeException)
+throw (uno::RuntimeException)
{
ReadGuard aReadLock( m_aLock );
return m_bVisible;
}
-void LayoutManager::implts_calcWindowPosSizeOnSingleRowColumn( sal_Int32 nDockingArea,
- sal_Int32 nOffset,
- SingleRowColumnWindowData& rRowColumnWindowData,
- const ::Size& rContainerSize )
-{
- sal_Int32 nDiff( 0 );
- sal_Int32 nRCSpace( rRowColumnWindowData.nSpace );
- sal_Int32 nTopDockingAreaSize;
- sal_Int32 nBottomDockingAreaSize;
- sal_Int32 nContainerClientSize;
-
- if ( rRowColumnWindowData.aRowColumnWindows.empty() )
- return;
-
- if (( nDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( nDockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- nContainerClientSize = rContainerSize.Width();
- nDiff = nContainerClientSize - rRowColumnWindowData.nVarSize;
- }
- else
- {
- nTopDockingAreaSize = implts_getTopBottomDockingAreaSizes().Width();
- nBottomDockingAreaSize = implts_getTopBottomDockingAreaSizes().Height();
- nContainerClientSize = ( rContainerSize.Height() - nTopDockingAreaSize - nBottomDockingAreaSize );
- nDiff = nContainerClientSize - rRowColumnWindowData.nVarSize;
- }
-
- const sal_uInt32 nCount = rRowColumnWindowData.aRowColumnWindowSizes.size();
- if (( nDiff < 0 ) && ( nRCSpace > 0 ))
- {
- // First we try to reduce the size of blank space before/behind docked windows
- sal_Int32 i = nCount - 1;
- while ( i >= 0 )
- {
- sal_Int32 nSpace = rRowColumnWindowData.aRowColumnSpace[i];
- if ( nSpace >= -nDiff )
- {
-
- if (( nDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( nDockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- // Try to move this and all user elements behind with the calculated difference
- for ( sal_uInt32 j = i; j < nCount ; j++ )
- rRowColumnWindowData.aRowColumnWindowSizes[j].X += nDiff;
- }
- else
- {
- // Try to move this and all user elements behind with the calculated difference
- for ( sal_uInt32 j = i; j < nCount ; j++ )
- rRowColumnWindowData.aRowColumnWindowSizes[j].Y += nDiff;
- }
- nDiff = 0;
-
- break;
- }
- else if ( nSpace > 0 )
- {
- if (( nDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( nDockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- // Try to move this and all user elements behind with the calculated difference
- for ( sal_uInt32 j = i; j < nCount; j++ )
- rRowColumnWindowData.aRowColumnWindowSizes[j].X -= nSpace;
- }
- else
- {
- // Try to move this and all user elements behind with the calculated difference
- for ( sal_uInt32 j = i; j < nCount; j++ )
- rRowColumnWindowData.aRowColumnWindowSizes[j].Y -= nSpace;
- }
- nDiff += nSpace;
- }
- --i;
- }
- }
-
- // Check if we have to reduce further
- if ( nDiff < 0 )
- {
- // Now we have to reduce the size of certain docked windows
- sal_Int32 i = sal_Int32( nCount - 1 );
- while ( i >= 0 )
- {
- css::awt::Rectangle& rWinRect = rRowColumnWindowData.aRowColumnWindowSizes[i];
- ::Size aMinSize;
-
- vos::OGuard aGuard( Application::GetSolarMutex() );
- {
- Reference< css::awt::XWindow > xWindow = rRowColumnWindowData.aRowColumnWindows[i];
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
- aMinSize = ((ToolBox *)pWindow)->CalcMinimumWindowSizePixel();
- }
-
- if (( aMinSize.Width() > 0 ) && ( aMinSize.Height() > 0 ))
- {
- if (( nDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( nDockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- sal_Int32 nMaxReducation = ( rWinRect.Width - aMinSize.Width() );
- if ( nMaxReducation >= -nDiff )
- {
- rWinRect.Width = rWinRect.Width + nDiff;
- nDiff = 0;
- }
- else
- {
- rWinRect.Width = aMinSize.Width();
- nDiff += nMaxReducation;
- }
-
- // Try to move this and all user elements behind with the calculated difference
- for ( sal_uInt32 j = i; j < nCount; j++ )
- rRowColumnWindowData.aRowColumnWindowSizes[j].X += nDiff;
- }
- else
- {
- sal_Int32 nMaxReducation = ( rWinRect.Height - aMinSize.Height() );
- if ( nMaxReducation >= -nDiff )
- {
- rWinRect.Height = rWinRect.Height + nDiff;
- nDiff = 0;
- }
- else
- {
- rWinRect.Height = aMinSize.Height();
- nDiff += nMaxReducation;
- }
-
- // Try to move this and all user elements behind with the calculated difference
- for ( sal_uInt32 j = i; j < nCount; j++ )
- rRowColumnWindowData.aRowColumnWindowSizes[j].Y += nDiff;
- }
- }
-
- if ( nDiff >= 0 )
- break;
-
- --i;
- }
- }
-
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- ReadGuard aReadLock( m_aLock );
- Window* pDockAreaWindow = VCLUnoHelper::GetWindow( m_xDockAreaWindows[nDockingArea] );
- aReadLock.unlock();
-
- sal_Int32 nCurrPos( 0 );
- sal_Int32 nStartOffset( 0 );
-
- if ( nDockingArea == DockingArea_DOCKINGAREA_RIGHT )
- nStartOffset = pDockAreaWindow->GetSizePixel().Width() - rRowColumnWindowData.nStaticSize;
- else if ( nDockingArea == DockingArea_DOCKINGAREA_BOTTOM )
- nStartOffset = pDockAreaWindow->GetSizePixel().Height() - rRowColumnWindowData.nStaticSize;
-
- vos::OGuard aGuard( Application::GetSolarMutex() );
- for ( sal_uInt32 i = 0; i < nCount; i++ )
- {
- Reference< css::awt::XWindow > xWindow = rRowColumnWindowData.aRowColumnWindows[i];
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- Window* pOldParentWindow = pWindow->GetParent();
-
- if ( pDockAreaWindow != pOldParentWindow )
- pWindow->SetParent( pDockAreaWindow );
-
- css::awt::Rectangle aWinRect = rRowColumnWindowData.aRowColumnWindowSizes[i];
- if ( nDockingArea == DockingArea_DOCKINGAREA_TOP )
- {
- if ( aWinRect.X < nCurrPos )
- aWinRect.X = nCurrPos;
- pWindow->SetPosSizePixel( ::Point( aWinRect.X, nOffset ),
- ::Size( aWinRect.Width, rRowColumnWindowData.nStaticSize ));
- nCurrPos += ( aWinRect.X - nCurrPos ) + aWinRect.Width;
- }
- else if ( nDockingArea == DockingArea_DOCKINGAREA_BOTTOM )
- {
- if ( aWinRect.X < nCurrPos )
- aWinRect.X = nCurrPos;
- pWindow->SetPosSizePixel( ::Point( aWinRect.X, nStartOffset - nOffset ),
- ::Size( aWinRect.Width, rRowColumnWindowData.nStaticSize ));
- nCurrPos += ( aWinRect.X - nCurrPos ) + aWinRect.Width;
- }
- else if ( nDockingArea == DockingArea_DOCKINGAREA_LEFT )
- {
- if ( aWinRect.Y < nCurrPos )
- aWinRect.Y = nCurrPos;
- pWindow->SetPosSizePixel( ::Point( nOffset, aWinRect.Y ),
- ::Size( rRowColumnWindowData.nStaticSize, aWinRect.Height ));
- nCurrPos += ( aWinRect.Y - nCurrPos ) + aWinRect.Height;
- }
- else if ( nDockingArea == DockingArea_DOCKINGAREA_RIGHT )
- {
- if ( aWinRect.Y < nCurrPos )
- aWinRect.Y = nCurrPos;
- pWindow->SetPosSizePixel( ::Point( nStartOffset - nOffset, aWinRect.Y ),
- ::Size( rRowColumnWindowData.nStaticSize, aWinRect.Height ));
- nCurrPos += ( aWinRect.Y - nCurrPos ) + aWinRect.Height;
- }
- }
-}
-
::Size LayoutManager::implts_getStatusBarSize()
{
ReadGuard aReadLock( m_aLock );
- sal_Bool bStatusBarVisible( isElementVisible( m_aStatusBarAlias ));
- sal_Bool bProgressBarVisible( isElementVisible( m_aProgressBarAlias ));
- sal_Bool bVisible = m_bVisible;
- Reference< XUIElement > xStatusBar = m_aStatusBarElement.m_xUIElement;
- Reference< XUIElement > xProgressBar = m_aProgressBarElement.m_xUIElement;
+ bool bStatusBarVisible( isElementVisible( m_aStatusBarAlias ));
+ bool bProgressBarVisible( isElementVisible( m_aProgressBarAlias ));
+ bool bVisible( m_bVisible );
+ Reference< XUIElement > xStatusBar( m_aStatusBarElement.m_xUIElement );
+ Reference< XUIElement > xProgressBar( m_aProgressBarElement.m_xUIElement );
- Reference< css::awt::XWindow > xWindow;
+ Reference< awt::XWindow > xWindow;
if ( bStatusBarVisible && bVisible && xStatusBar.is() )
- xWindow = Reference< css::awt::XWindow >( xStatusBar->getRealInterface(), UNO_QUERY );
+ xWindow = Reference< awt::XWindow >( xStatusBar->getRealInterface(), UNO_QUERY );
else if ( xProgressBar.is() && !xStatusBar.is() && bProgressBarVisible )
{
ProgressBarWrapper* pWrapper = (ProgressBarWrapper*)xProgressBar.get();
@@ -5918,194 +2549,40 @@ void LayoutManager::implts_calcWindowPosSizeOnSingleRowColumn( sal_Int32 nDockin
if ( xWindow.is() )
{
- css::awt::Rectangle aPosSize = xWindow->getPosSize();
+ awt::Rectangle aPosSize = xWindow->getPosSize();
return ::Size( aPosSize.Width, aPosSize.Height );
}
else
return ::Size();
}
-css::awt::Rectangle LayoutManager::implts_calcDockingAreaSizes()
+awt::Rectangle LayoutManager::implts_calcDockingAreaSizes()
{
- Reference< css::awt::XWindow > xContainerWindow;
- Reference< XDockingAreaAcceptor > xDockingAreaAcceptor;
-
ReadGuard aReadLock( m_aLock );
- xContainerWindow = m_xContainerWindow;
- xDockingAreaAcceptor = m_xDockingAreaAcceptor;
- UIElementVector aWindowVector( m_aUIElements );
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
+ Reference< XDockingAreaAcceptor > xDockingAreaAcceptor( m_xDockingAreaAcceptor );
aReadLock.unlock();
- css::awt::Rectangle aBorderSpace;
+ awt::Rectangle aBorderSpace;
if ( xDockingAreaAcceptor.is() && xContainerWindow.is() )
- {
- sal_Int32 nCurrRowColumn( 0 );
- sal_Int32 nCurrPos( 0 );
- sal_Int32 nCurrDockingArea( DockingArea_DOCKINGAREA_TOP );
- std::vector< sal_Int32 > aRowColumnSizes[DOCKINGAREAS_COUNT];
- UIElementVector::const_iterator pConstIter;
-
- aRowColumnSizes[nCurrDockingArea].clear();
- aRowColumnSizes[nCurrDockingArea].push_back( 0 );
-
- for ( pConstIter = aWindowVector.begin(); pConstIter != aWindowVector.end(); pConstIter++ )
- {
- Reference< XUIElement > xUIElement( pConstIter->m_xUIElement, UNO_QUERY );
- if ( xUIElement.is() )
- {
- Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- if ( xWindow.is() && xDockWindow.is() )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
-
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow && pWindow->IsVisible() && !xDockWindow->isFloating() )
- {
- css::awt::Rectangle aPosSize = xWindow->getPosSize();
- if ( pConstIter->m_aDockedData.m_nDockedArea != nCurrDockingArea )
- {
- nCurrDockingArea = pConstIter->m_aDockedData.m_nDockedArea;
- nCurrRowColumn = 0;
- nCurrPos = 0;
- aRowColumnSizes[nCurrDockingArea].clear();
- aRowColumnSizes[nCurrDockingArea].push_back( 0 );
- }
-
- if ( pConstIter->m_aDockedData.m_nDockedArea == nCurrDockingArea )
- {
- if (( pConstIter->m_aDockedData.m_nDockedArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( pConstIter->m_aDockedData.m_nDockedArea == DockingArea_DOCKINGAREA_BOTTOM ))
- {
- if ( pConstIter->m_aDockedData.m_aPos.Y() > nCurrPos )
- {
- ++nCurrRowColumn;
- nCurrPos = pConstIter->m_aDockedData.m_aPos.Y();
- aRowColumnSizes[nCurrDockingArea].push_back( 0 );
- }
-
- if ( aPosSize.Height > aRowColumnSizes[nCurrDockingArea][nCurrRowColumn] )
- aRowColumnSizes[nCurrDockingArea][nCurrRowColumn] = aPosSize.Height;
- }
- else
- {
- if ( pConstIter->m_aDockedData.m_aPos.X() > nCurrPos )
- {
- ++nCurrRowColumn;
- nCurrPos = pConstIter->m_aDockedData.m_aPos.X();
- aRowColumnSizes[nCurrDockingArea].push_back( 0 );
- }
-
- if ( aPosSize.Width > aRowColumnSizes[nCurrDockingArea][nCurrRowColumn] )
- aRowColumnSizes[nCurrDockingArea][nCurrRowColumn] = aPosSize.Width;
- }
- }
- }
- }
- }
- }
-
- // Sum up max heights from every row/column
- if ( !aWindowVector.empty() )
- {
- for ( sal_Int32 i = 0; i <= DockingArea_DOCKINGAREA_RIGHT; i++ )
- {
- sal_Int32 nSize( 0 );
- const sal_uInt32 nCount = aRowColumnSizes[i].size();
- for ( sal_uInt32 j = 0; j < nCount; j++ )
- nSize += aRowColumnSizes[i][j];
-
- if ( i == DockingArea_DOCKINGAREA_TOP )
- aBorderSpace.Y = nSize;
- else if ( i == DockingArea_DOCKINGAREA_BOTTOM )
- aBorderSpace.Height = nSize;
- else if ( i == DockingArea_DOCKINGAREA_LEFT )
- aBorderSpace.X = nSize;
- else
- aBorderSpace.Width = nSize;
- }
- }
-
- // We have to add the height of a possible status bar
- aBorderSpace.Height += implts_getStatusBarSize().Height();
- }
+ aBorderSpace = m_pToolbarManager->getDockingArea();
return aBorderSpace;
}
-void LayoutManager::implts_setDockingAreaWindowSizes( const css::awt::Rectangle& rBorderSpace )
+void LayoutManager::implts_setDockingAreaWindowSizes( const awt::Rectangle& /*rBorderSpace*/ )
{
- Reference< css::awt::XWindow > xContainerWindow;
-
ReadGuard aReadLock( m_aLock );
- xContainerWindow = m_xContainerWindow;
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
aReadLock.unlock();
- css::uno::Reference< css::awt::XDevice > xDevice( xContainerWindow, css::uno::UNO_QUERY );
+ uno::Reference< awt::XDevice > xDevice( xContainerWindow, uno::UNO_QUERY );
// Convert relativ size to output size.
- css::awt::Rectangle aRectangle = xContainerWindow->getPosSize();
- css::awt::DeviceInfo aInfo = xDevice->getInfo();
- css::awt::Size aContainerClientSize = css::awt::Size( aRectangle.Width - aInfo.LeftInset - aInfo.RightInset ,
- aRectangle.Height - aInfo.TopInset - aInfo.BottomInset );
- ::Size aStatusBarSize = implts_getStatusBarSize();
-
- sal_Int32 nLeftRightDockingAreaHeight( aContainerClientSize.Height );
- if ( rBorderSpace.Y >= 0 )
- {
- // Top docking area window
- aReadLock.lock();
- Reference< css::awt::XWindow > xDockAreaWindow( m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP] );
- aReadLock.unlock();
-
- xDockAreaWindow->setPosSize( 0, 0, aContainerClientSize.Width, rBorderSpace.Y, css::awt::PosSize::POSSIZE );
- xDockAreaWindow->setVisible( sal_True );
- nLeftRightDockingAreaHeight -= rBorderSpace.Y;
- }
-
- if ( rBorderSpace.Height >= 0 )
- {
- // Bottom docking area window
- sal_Int32 nBottomPos = std::max( sal_Int32( aContainerClientSize.Height - rBorderSpace.Height - aStatusBarSize.Height() ), sal_Int32( 0 ));
- sal_Int32 nHeight = ( nBottomPos == 0 ) ? 0 : rBorderSpace.Height;
-
- aReadLock.lock();
- Reference< css::awt::XWindow > xDockAreaWindow( m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM] );
- aReadLock.unlock();
-
- xDockAreaWindow->setPosSize( 0, nBottomPos, aContainerClientSize.Width, nHeight, css::awt::PosSize::POSSIZE );
- xDockAreaWindow->setVisible( sal_True );
- nLeftRightDockingAreaHeight -= nHeight;
- }
-
- nLeftRightDockingAreaHeight -= aStatusBarSize.Height();
- if ( rBorderSpace.X >= 0 || nLeftRightDockingAreaHeight > 0 )
- {
- // Left docking area window
- aReadLock.lock();
- Reference< css::awt::XWindow > xDockAreaWindow( m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT] );
- aReadLock.unlock();
-
- // We also have to change our right docking area window if the top or bottom area has changed. They have a higher priority!
- sal_Int32 nHeight = std::max( sal_Int32( 0 ), sal_Int32( nLeftRightDockingAreaHeight ));
-
- xDockAreaWindow->setPosSize( 0, rBorderSpace.Y, rBorderSpace.X, nHeight, css::awt::PosSize::POSSIZE );
- xDockAreaWindow->setVisible( sal_True );
- }
- if ( rBorderSpace.Width >= 0 || nLeftRightDockingAreaHeight > 0 )
- {
- // Right docking area window
- aReadLock.lock();
- Reference< css::awt::XWindow > xDockAreaWindow( m_xDockAreaWindows[DockingArea_DOCKINGAREA_RIGHT] );
- aReadLock.unlock();
-
- // We also have to change our right docking area window if the top or bottom area has changed. They have a higher priority!
- sal_Int32 nLeftPos = std::max( sal_Int32( 0 ), sal_Int32( aContainerClientSize.Width - rBorderSpace.Width ));
- sal_Int32 nHeight = std::max( sal_Int32( 0 ), sal_Int32( nLeftRightDockingAreaHeight ));
- sal_Int32 nWidth = ( nLeftPos == 0 ) ? 0 : rBorderSpace.Width;
-
- xDockAreaWindow->setPosSize( nLeftPos, rBorderSpace.Y, nWidth, nHeight, css::awt::PosSize::POSSIZE );
- xDockAreaWindow->setVisible( sal_True );
- }
+ awt::Rectangle aRectangle = xContainerWindow->getPosSize();
+ awt::DeviceInfo aInfo = xDevice->getInfo();
+ awt::Size aContainerClientSize = awt::Size( aRectangle.Width - aInfo.LeftInset - aInfo.RightInset,
+ aRectangle.Height - aInfo.TopInset - aInfo.BottomInset );
+ ::Size aStatusBarSize = implts_getStatusBarSize();
// Position the status bar
if ( aStatusBarSize.Height() > 0 )
@@ -6116,41 +2593,28 @@ void LayoutManager::implts_setDockingAreaWindowSizes( const css::awt::Rectangle&
}
//---------------------------------------------------------------------------------------------------------
-// XMenuCloser
+// XMenuCloser
//---------------------------------------------------------------------------------------------------------
void LayoutManager::implts_updateMenuBarClose()
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
- sal_Bool bShowCloser = m_bMenuBarCloser;
- Reference< css::awt::XWindow > xContainerWindow( m_xContainerWindow );
+ bool bShowCloser( m_bMenuBarCloser );
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
aWriteLock.unlock();
if ( xContainerWindow.is() )
{
- vos::OGuard aGuard( Application::GetSolarMutex() );
-
- Window* pWindow = VCLUnoHelper::GetWindow( xContainerWindow );
- while ( pWindow && !pWindow->IsSystemWindow() )
- pWindow = pWindow->GetParent();
+ vos::OGuard aGuard( Application::GetSolarMutex() );
- if ( pWindow )
+ SystemWindow* pSysWindow = getTopSystemWindow( xContainerWindow );
+ if ( pSysWindow )
{
- SystemWindow* pSysWindow = (SystemWindow *)pWindow;
MenuBar* pMenuBar = pSysWindow->GetMenuBar();
if ( pMenuBar )
{
// TODO remove link on sal_False ?!
- if ( bShowCloser )
- {
- pMenuBar->ShowCloser( sal_True );
- pMenuBar->SetCloserHdl( LINK( this, LayoutManager, MenuBarClose ));
- }
- else
- {
- pMenuBar->ShowCloser( sal_False );
- pMenuBar->SetCloserHdl( LINK( this, LayoutManager, MenuBarClose ));
- }
+ pMenuBar->ShowCloser( bShowCloser );
+ pMenuBar->SetCloserHdl( LINK( this, LayoutManager, MenuBarClose ));
}
}
}
@@ -6161,14 +2625,14 @@ sal_Bool LayoutManager::implts_resetMenuBar()
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
sal_Bool bMenuVisible( m_bMenuVisible );
- Reference< css::awt::XWindow > xContainerWindow( m_xContainerWindow );
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
MenuBar* pSetMenuBar = 0;
if ( m_xInplaceMenuBar.is() )
pSetMenuBar = (MenuBar *)m_pInplaceMenuBar->GetMenuBar();
else
{
- MenuBarWrapper* pMenuBarWrapper = SAL_STATIC_CAST( MenuBarWrapper*, m_xMenuBar.get() );
+ MenuBarWrapper* pMenuBarWrapper = static_cast< MenuBarWrapper* >( m_xMenuBar.get() );
if ( pMenuBarWrapper )
pSetMenuBar = (MenuBar *)pMenuBarWrapper->GetMenuBarManager()->GetMenuBar();
}
@@ -6176,13 +2640,10 @@ sal_Bool LayoutManager::implts_resetMenuBar()
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
- while ( pWindow && !pWindow->IsSystemWindow() )
- pWindow = pWindow->GetParent();
-
- if ( pWindow && bMenuVisible && pSetMenuBar )
+ SystemWindow* pSysWindow = getTopSystemWindow( xContainerWindow );
+ if ( pSysWindow && bMenuVisible && pSetMenuBar )
{
- ((SystemWindow *)pWindow)->SetMenuBar( pSetMenuBar );
+ pSysWindow->SetMenuBar( pSetMenuBar );
pSetMenuBar->SetDisplayable( sal_True );
return sal_True;
}
@@ -6190,726 +2651,62 @@ sal_Bool LayoutManager::implts_resetMenuBar()
return sal_False;
}
-sal_Int16 LayoutManager::implts_getCurrentSymbolsSize()
-{
- sal_Int16 eOptSymbolsSize( 0 );
-
- {
- ReadGuard aReadLock( m_aLock );
- vos::OGuard aGuard( Application::GetSolarMutex() );
- if ( m_pMiscOptions )
- eOptSymbolsSize = m_pMiscOptions->GetCurrentSymbolsSize();
- }
-
- return eOptSymbolsSize;
-}
-
-sal_Int16 LayoutManager::implts_getCurrentSymbolsStyle()
+void LayoutManager::implts_setMenuBarCloser(sal_Bool bCloserState)
{
- sal_Int16 eOptSymbolsStyle( 0 );
-
- {
- ReadGuard aReadLock( m_aLock );
- vos::OGuard aGuard( Application::GetSolarMutex() );
- if ( m_pMiscOptions )
- eOptSymbolsStyle = m_pMiscOptions->GetCurrentSymbolsStyle();
- }
+ WriteGuard aWriteLock( m_aLock );
+ m_bMenuBarCloser = bCloserState;
+ aWriteLock.unlock();
- return eOptSymbolsStyle;
+ implts_updateMenuBarClose();
}
IMPL_LINK( LayoutManager, MenuBarClose, MenuBar *, EMPTYARG )
{
ReadGuard aReadLock( m_aLock );
- css::uno::Reference< css::frame::XDispatchProvider > xProvider(m_xFrame, css::uno::UNO_QUERY);
- css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR;
+ uno::Reference< frame::XDispatchProvider > xProvider(m_xFrame, uno::UNO_QUERY);
+ uno::Reference< lang::XMultiServiceFactory > xSMGR = m_xSMGR;
aReadLock.unlock();
- if (! xProvider.is())
+ if ( !xProvider.is())
return 0;
- css::uno::Reference< css::frame::XDispatchHelper > xDispatcher(
- xSMGR->createInstance(SERVICENAME_DISPATCHHELPER), css::uno::UNO_QUERY_THROW);
+ uno::Reference< frame::XDispatchHelper > xDispatcher(
+ xSMGR->createInstance(SERVICENAME_DISPATCHHELPER), uno::UNO_QUERY_THROW);
xDispatcher->executeDispatch(
xProvider,
::rtl::OUString::createFromAscii(".uno:CloseWin"),
::rtl::OUString::createFromAscii("_self"),
0,
- css::uno::Sequence< css::beans::PropertyValue >());
+ uno::Sequence< beans::PropertyValue >());
return 0;
}
-IMPL_LINK( LayoutManager, OptionsChanged, void*, EMPTYARG )
-{
- sal_Int16 eSymbolsSize( implts_getCurrentSymbolsSize() );
- sal_Int16 eSymbolsStyle( implts_getCurrentSymbolsStyle() );
-
- ReadGuard aReadLock( m_aLock );
- sal_Int16 eOldSymbolsSize = m_eSymbolsSize;
- sal_Int16 eOldSymbolsStyle = m_eSymbolsStyle;
- aReadLock.unlock();
-
- if ( eSymbolsSize != eOldSymbolsSize || eSymbolsStyle != eOldSymbolsStyle )
- {
- WriteGuard aWriteLock( m_aLock );
- m_eSymbolsSize = eSymbolsSize;
- m_eSymbolsStyle = eSymbolsStyle;
- aWriteLock.unlock();
-
- std::vector< Reference< XUpdatable > > aToolBarVector;
-
- aReadLock.lock();
- {
- UIElementVector::iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- if ( pIter->m_xUIElement.is() )
- aToolBarVector.push_back( Reference< XUpdatable >( pIter->m_xUIElement, UNO_QUERY ));
- }
- }
- aReadLock.unlock();
-
- lock();
- {
- std::vector< Reference< XUpdatable > >::iterator pIter;
- for ( pIter = aToolBarVector.begin(); pIter != aToolBarVector.end(); pIter++ )
- {
- if ( (*pIter).is() )
- (*pIter)->update();
- }
- }
- unlock();
- doLayout();
- }
-
- return 1;
-}
-
IMPL_LINK( LayoutManager, SettingsChanged, void*, EMPTYARG )
{
return 1;
}
//---------------------------------------------------------------------------------------------------------
-// XDockableWindowListener
-//---------------------------------------------------------------------------------------------------------
-void SAL_CALL LayoutManager::startDocking( const ::com::sun::star::awt::DockingEvent& e ) throw (::com::sun::star::uno::RuntimeException)
-{
- sal_Bool bWinFound( sal_False );
- UIElement aUIElement;
-
- ReadGuard aReadGuard( m_aLock );
- Reference< css::awt::XWindow > xContainerWindow( m_xContainerWindow );
- Reference< css::awt::XWindow2 > xWindow( e.Source, UNO_QUERY );
- aReadGuard.unlock();
-
- Window* pContainerWindow( 0 );
- Window* pWindow( 0 );
- ::Point aMousePos;
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
- aMousePos = pContainerWindow->ScreenToOutputPixel( ::Point( e.MousePos.X, e.MousePos.Y ));
- }
-
- bWinFound = implts_findElement( e.Source, aUIElement );
-
- if ( bWinFound && xWindow.is() )
- {
- css::awt::Rectangle aRect;
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- if ( xDockWindow->isFloating() )
- {
- css::awt::Rectangle aPos = xWindow->getPosSize();
- css::awt::Size aSize = xWindow->getOutputSize();
-
- aUIElement.m_aFloatingData.m_aPos = ::Point( aPos.X, aPos.Y );
- aUIElement.m_aFloatingData.m_aSize = ::Size( aSize.Width, aSize.Height );
-
- vos::OGuard aGuard( Application::GetSolarMutex() );
- pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
- {
- ToolBox* pToolBox = (ToolBox *)pWindow;
- aUIElement.m_aFloatingData.m_nLines = pToolBox->GetFloatingLines();
- aUIElement.m_aFloatingData.m_bIsHorizontal = (( pToolBox->GetAlign() == WINDOWALIGN_TOP ) ||
- ( pToolBox->GetAlign() == WINDOWALIGN_BOTTOM ));
- }
- }
- }
-
- WriteGuard aWriteLock( m_aLock );
- m_bDockingInProgress = bWinFound;
- m_aDockUIElement = aUIElement;
- m_aDockUIElement.m_bUserActive = sal_True;
- m_aStartDockMousePos = aMousePos;
- aWriteLock.unlock();
-}
-
-::Rectangle LayoutManager::implts_calcHotZoneRect( const ::Rectangle& rRect, sal_Int32 nHotZoneOffset )
-{
- ::Rectangle aRect( rRect );
-
- aRect.Left() -= nHotZoneOffset;
- aRect.Top() -= nHotZoneOffset;
- aRect.Right() += nHotZoneOffset;
- aRect.Bottom() += nHotZoneOffset;
- return aRect;
-}
-
-css::awt::DockingData SAL_CALL LayoutManager::docking( const ::com::sun::star::awt::DockingEvent& e )
-throw (::com::sun::star::uno::RuntimeException)
-{
- const sal_Int32 MAGNETIC_DISTANCE_UNDOCK = 25;
- const sal_Int32 MAGNETIC_DISTANCE_DOCK = 20;
-
- css::awt::DockingData aDockingData;
- Reference< css::awt::XDockableWindow > xDockWindow( e.Source, UNO_QUERY );
- Reference< css::awt::XWindow > xWindow( e.Source, UNO_QUERY );
- Reference< css::awt::XWindow > xTopDockingWindow;
- Reference< css::awt::XWindow > xLeftDockingWindow;
- Reference< css::awt::XWindow > xRightDockingWindow;
- Reference< css::awt::XWindow > xBottomDockingWindow;
- Reference< css::awt::XWindow > xContainerWindow;
- UIElement aUIDockingElement;
- DockingOperation eDockingOperation( DOCKOP_ON_COLROW );
- ::Size aStatusBarSize;
-
- aDockingData.TrackingRectangle = e.TrackingRectangle;
- sal_Bool bDockingInProgress;
-
- {
- ReadGuard aReadLock( m_aLock );
- bDockingInProgress = m_bDockingInProgress;
- if ( bDockingInProgress )
- {
- xContainerWindow = m_xContainerWindow;
- xTopDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_TOP];
- xLeftDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_LEFT];
- xRightDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_RIGHT];
- xBottomDockingWindow = m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM];
- aUIDockingElement = m_aDockUIElement;
- aStatusBarSize = implts_getStatusBarSize();
- }
- }
-
- if ( bDockingInProgress &&
- xDockWindow.is() &&
- xWindow.is() )
- {
- try
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
-
- sal_Int16 eDockingArea( -1 ); // none
- sal_Int32 nMagneticZone( aUIDockingElement.m_bFloating ? MAGNETIC_DISTANCE_DOCK : MAGNETIC_DISTANCE_UNDOCK );
- css::awt::Rectangle aNewTrackingRect;
- ::Rectangle aTrackingRect( e.TrackingRectangle.X,
- e.TrackingRectangle.Y,
- ( e.TrackingRectangle.X + e.TrackingRectangle.Width ),
- ( e.TrackingRectangle.Y + e.TrackingRectangle.Height ));
-
- css::awt::Rectangle aTmpRect = xTopDockingWindow->getPosSize();
- ::Rectangle aTopDockRect( aTmpRect.X, aTmpRect.Y, aTmpRect.Width, aTmpRect.Height );
- ::Rectangle aHotZoneTopDockRect( implts_calcHotZoneRect( aTopDockRect, nMagneticZone ));
-
- aTmpRect = xBottomDockingWindow->getPosSize();
- ::Rectangle aBottomDockRect( aTmpRect.X, aTmpRect.Y, ( aTmpRect.X + aTmpRect.Width), ( aTmpRect.Y + aTmpRect.Height ));
- ::Rectangle aHotZoneBottomDockRect( implts_calcHotZoneRect( aBottomDockRect, nMagneticZone ));
-
- aTmpRect = xLeftDockingWindow->getPosSize();
- ::Rectangle aLeftDockRect( aTmpRect.X, aTmpRect.Y, ( aTmpRect.X + aTmpRect.Width ), ( aTmpRect.Y + aTmpRect.Height ));
- ::Rectangle aHotZoneLeftDockRect( implts_calcHotZoneRect( aLeftDockRect, nMagneticZone ));
-
- aTmpRect = xRightDockingWindow->getPosSize();
- ::Rectangle aRightDockRect( aTmpRect.X, aTmpRect.Y, ( aTmpRect.X + aTmpRect.Width ), ( aTmpRect.Y + aTmpRect.Height ));
- ::Rectangle aHotZoneRightDockRect( implts_calcHotZoneRect( aRightDockRect, nMagneticZone ));
-
- Window* pContainerWindow( VCLUnoHelper::GetWindow( xContainerWindow ) );
- Window* pDockingAreaWindow( 0 );
- ::Point aMousePos( pContainerWindow->ScreenToOutputPixel( ::Point( e.MousePos.X, e.MousePos.Y )));
-
- if ( aHotZoneTopDockRect.IsInside( aMousePos ))
- eDockingArea = DockingArea_DOCKINGAREA_TOP;
- else if ( aHotZoneBottomDockRect.IsInside( aMousePos ))
- eDockingArea = DockingArea_DOCKINGAREA_BOTTOM;
- else if ( aHotZoneLeftDockRect.IsInside( aMousePos ))
- eDockingArea = DockingArea_DOCKINGAREA_LEFT;
- else if ( aHotZoneRightDockRect.IsInside( aMousePos ))
- eDockingArea = DockingArea_DOCKINGAREA_RIGHT;
-
- // Higher priority for movements inside the real docking area
- if ( aTopDockRect.IsInside( aMousePos ))
- eDockingArea = DockingArea_DOCKINGAREA_TOP;
- else if ( aBottomDockRect.IsInside( aMousePos ))
- eDockingArea = DockingArea_DOCKINGAREA_BOTTOM;
- else if ( aLeftDockRect.IsInside( aMousePos ))
- eDockingArea = DockingArea_DOCKINGAREA_LEFT;
- else if ( aRightDockRect.IsInside( aMousePos ))
- eDockingArea = DockingArea_DOCKINGAREA_RIGHT;
-
- // Determine if we have a toolbar and set alignment according to the docking area!
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- ToolBox* pToolBox = 0;
- if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
- pToolBox = (ToolBox *)pWindow;
-
- if ( eDockingArea != -1 )
- {
- if ( eDockingArea == DockingArea_DOCKINGAREA_TOP )
- {
- aUIDockingElement.m_aDockedData.m_nDockedArea = DockingArea_DOCKINGAREA_TOP;
- aUIDockingElement.m_bFloating = sal_False;
- pDockingAreaWindow = VCLUnoHelper::GetWindow( xTopDockingWindow );
- }
- else if ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM )
- {
- aUIDockingElement.m_aDockedData.m_nDockedArea = DockingArea_DOCKINGAREA_BOTTOM;
- aUIDockingElement.m_bFloating = sal_False;
- pDockingAreaWindow = VCLUnoHelper::GetWindow( xBottomDockingWindow );
- }
- else if ( eDockingArea == DockingArea_DOCKINGAREA_LEFT )
- {
- aUIDockingElement.m_aDockedData.m_nDockedArea = DockingArea_DOCKINGAREA_LEFT;
- aUIDockingElement.m_bFloating = sal_False;
- pDockingAreaWindow = VCLUnoHelper::GetWindow( xLeftDockingWindow );
- }
- else if ( eDockingArea == DockingArea_DOCKINGAREA_RIGHT )
- {
- aUIDockingElement.m_aDockedData.m_nDockedArea = DockingArea_DOCKINGAREA_RIGHT;
- aUIDockingElement.m_bFloating = sal_False;
- pDockingAreaWindow = VCLUnoHelper::GetWindow( xRightDockingWindow );
- }
-
- ::Point aOutputPos = pContainerWindow->ScreenToOutputPixel( aTrackingRect.TopLeft() );
- aTrackingRect.SetPos( aOutputPos );
-
- ::Rectangle aNewDockingRect( aTrackingRect );
- implts_calcDockingPosSize( aUIDockingElement, eDockingOperation, aNewDockingRect, aMousePos );
-
- ::Point aScreenPos = pContainerWindow->OutputToScreenPixel( aNewDockingRect.TopLeft() );
- aNewTrackingRect = css::awt::Rectangle( aScreenPos.X(),
- aScreenPos.Y(),
- aNewDockingRect.getWidth(),
- aNewDockingRect.getHeight() );
- aDockingData.TrackingRectangle = aNewTrackingRect;
- }
- else if ( pToolBox && bDockingInProgress )
- {
- sal_Bool bIsHorizontal = (( pToolBox->GetAlign() == WINDOWALIGN_TOP ) ||
- ( pToolBox->GetAlign() == WINDOWALIGN_BOTTOM ));
- ::Size aFloatSize = aUIDockingElement.m_aFloatingData.m_aSize;
- if ( aFloatSize.Width() > 0 && aFloatSize.Height() > 0 )
- {
- aUIDockingElement.m_aFloatingData.m_aPos = pContainerWindow->ScreenToOutputPixel(
- ::Point( e.MousePos.X, e.MousePos.Y ));
- aDockingData.TrackingRectangle.Height = aFloatSize.Height();
- aDockingData.TrackingRectangle.Width = aFloatSize.Width();
- }
- else
- {
- aFloatSize = pToolBox->CalcWindowSizePixel();
- if ( !bIsHorizontal )
- {
- // Floating toolbars are always horizontal aligned! We have to swap
- // width/height if we have a vertical aligned toolbar.
- sal_Int32 nTemp = aFloatSize.Height();
- aFloatSize.Height() = aFloatSize.Width();
- aFloatSize.Width() = nTemp;
- }
-
- aDockingData.TrackingRectangle.Height = aFloatSize.Height();
- aDockingData.TrackingRectangle.Width = aFloatSize.Width();
-
- // For the first time we don't have any data about the floating size of a toolbar.
- // We calculate it and store it for later use.
- aUIDockingElement.m_aFloatingData.m_aPos = pContainerWindow->ScreenToOutputPixel(
- ::Point( e.MousePos.X, e.MousePos.Y ));
- aUIDockingElement.m_aFloatingData.m_aSize = aFloatSize;
- aUIDockingElement.m_aFloatingData.m_nLines = pToolBox->GetFloatingLines();
- aUIDockingElement.m_aFloatingData.m_bIsHorizontal = (( pToolBox->GetAlign() == WINDOWALIGN_TOP ) ||
- ( pToolBox->GetAlign() == WINDOWALIGN_BOTTOM ));
- }
- aDockingData.TrackingRectangle.X = e.MousePos.X;
- aDockingData.TrackingRectangle.Y = e.MousePos.Y;
- }
-
- aDockingData.bFloating = ( eDockingArea == -1 );
-
- // Write current data to the member docking progress data
- WriteGuard aWriteLock( m_aLock );
- m_aDockUIElement.m_bFloating = aDockingData.bFloating;
- if ( !aDockingData.bFloating )
- {
- m_aDockUIElement.m_aDockedData = aUIDockingElement.m_aDockedData;
- m_eDockOperation = eDockingOperation;
- }
- else
- m_aDockUIElement.m_aFloatingData = aUIDockingElement.m_aFloatingData;
- aWriteLock.unlock();
- }
- catch ( Exception& )
- {
- }
- }
-
- return aDockingData;
-}
-
-void SAL_CALL LayoutManager::endDocking( const ::com::sun::star::awt::EndDockingEvent& e )
-throw (::com::sun::star::uno::RuntimeException)
-{
- sal_Bool bDockingInProgress( sal_False );
- sal_Bool bStartDockFloated( sal_False );
- sal_Bool bFloating( sal_False );
- UIElement aUIDockingElement;
-
- WriteGuard aWriteLock( m_aLock );
- bDockingInProgress = m_bDockingInProgress;
- aUIDockingElement = m_aDockUIElement;
- bFloating = aUIDockingElement.m_bFloating;
-
- UIElement& rUIElement = impl_findElement( aUIDockingElement.m_aName );
- if ( rUIElement.m_aName == aUIDockingElement.m_aName )
- {
- if ( aUIDockingElement.m_bFloating )
- {
- // Write last position into position data
- Reference< css::awt::XWindow > xWindow( aUIDockingElement.m_xUIElement->getRealInterface(), UNO_QUERY );
- rUIElement.m_aFloatingData = aUIDockingElement.m_aFloatingData;
- css::awt::Rectangle aTmpRect = xWindow->getPosSize();
- rUIElement.m_aFloatingData.m_aPos = ::Point( aTmpRect.X, aTmpRect.Y );
- // make changes also for our local data as we use it to make data persistent
- aUIDockingElement.m_aFloatingData = rUIElement.m_aFloatingData;
- }
- else
- {
- rUIElement.m_aDockedData = aUIDockingElement.m_aDockedData;
- rUIElement.m_aFloatingData.m_aSize = aUIDockingElement.m_aFloatingData.m_aSize;
-
- if ( m_eDockOperation != DOCKOP_ON_COLROW )
- {
- // we have to renumber our row/column data to insert a new row/column
- implts_renumberRowColumnData( (::com::sun::star::ui::DockingArea)aUIDockingElement.m_aDockedData.m_nDockedArea,
- m_eDockOperation,
- aUIDockingElement );
- }
- }
-
- bStartDockFloated = rUIElement.m_bFloating;
- rUIElement.m_bFloating = m_aDockUIElement.m_bFloating;
- rUIElement.m_bUserActive = sal_True;
- }
-
- // reset member for next docking operation
- m_aDockUIElement.m_xUIElement.clear();
- m_eDockOperation = DOCKOP_ON_COLROW;
- aWriteLock.unlock();
-
- implts_writeWindowStateData( aUIDockingElement.m_aName, aUIDockingElement );
-
- if ( bDockingInProgress )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( Reference< css::awt::XWindow >( e.Source, UNO_QUERY ));
- ToolBox* pToolBox = 0;
- if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
- pToolBox = (ToolBox *)pWindow;
-
- if ( pToolBox )
- {
- if( e.bFloating )
- {
- if ( aUIDockingElement.m_aFloatingData.m_bIsHorizontal )
- pToolBox->SetAlign( WINDOWALIGN_TOP );
- else
- pToolBox->SetAlign( WINDOWALIGN_LEFT );
- }
- else
- {
- ::Size aSize;
-
- pToolBox->SetAlign( ImplConvertAlignment( aUIDockingElement.m_aDockedData.m_nDockedArea) );
-
- // Docked toolbars have always one line
- aSize = pToolBox->CalcWindowSizePixel( 1 );
-
- // Lock layouting updates as our listener would be called due to SetSizePixel
- pToolBox->SetOutputSizePixel( aSize );
- }
- }
- }
-
- aWriteLock.lock();
- m_bDockingInProgress = sal_False;
- aWriteLock.unlock();
-
- implts_sortUIElements();
- if ( !bStartDockFloated || !bFloating )
- {
- // Optimization: Don't layout if we started floating and now floating again.
- // This would not change anything for the docked user-interface elements.
- doLayout();
- }
-}
-
-sal_Bool SAL_CALL LayoutManager::prepareToggleFloatingMode( const ::com::sun::star::lang::EventObject& e )
-throw (::com::sun::star::uno::RuntimeException)
-{
- sal_Bool bDockingInProgress( sal_False );
-
- ReadGuard aReadLock( m_aLock );
- bDockingInProgress = m_bDockingInProgress;
- aReadLock.unlock();
-
- UIElement aUIDockingElement;
- sal_Bool bWinFound( implts_findElement( e.Source, aUIDockingElement ) );
- Reference< css::awt::XWindow > xWindow( e.Source, UNO_QUERY );
-
- if ( bWinFound && xWindow.is() )
- {
- if ( !bDockingInProgress )
- {
- css::awt::Rectangle aRect;
- Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
- if ( xDockWindow->isFloating() )
- {
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow )
- {
- if ( pWindow->GetType() == WINDOW_TOOLBOX )
- {
- ToolBox* pToolBox = (ToolBox *)pWindow;
- aUIDockingElement.m_aFloatingData.m_aPos = pToolBox->GetPosPixel();
- aUIDockingElement.m_aFloatingData.m_aSize = pToolBox->GetOutputSizePixel();
- aUIDockingElement.m_aFloatingData.m_nLines = pToolBox->GetFloatingLines();
- aUIDockingElement.m_aFloatingData.m_bIsHorizontal = (( pToolBox->GetAlign() == WINDOWALIGN_TOP ) ||
- ( pToolBox->GetAlign() == WINDOWALIGN_BOTTOM ));
- }
- }
- }
-
- WriteGuard aWriteLock( m_aLock );
- UIElement& rUIElement = LayoutManager::impl_findElement( aUIDockingElement.m_aName );
- if ( rUIElement.m_aName == aUIDockingElement.m_aName )
- rUIElement = aUIDockingElement;
- aWriteLock.unlock();
- }
- }
- }
-
- return sal_True;
-}
-
-void SAL_CALL LayoutManager::toggleFloatingMode( const ::com::sun::star::lang::EventObject& e )
-throw (::com::sun::star::uno::RuntimeException)
-{
- sal_Bool bDockingInProgress( sal_False );
- UIElement aUIDockingElement;
-
- ReadGuard aReadLock( m_aLock );
- bDockingInProgress = m_bDockingInProgress;
- if ( bDockingInProgress )
- aUIDockingElement = m_aDockUIElement;
- aReadLock.unlock();
-
- Window* pWindow( 0 );
- ToolBox* pToolBox( 0 );
- Reference< css::awt::XWindow2 > xWindow;
-
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- xWindow = Reference< css::awt::XWindow2 >( e.Source, UNO_QUERY );
- pWindow = VCLUnoHelper::GetWindow( xWindow );
-
- if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
- pToolBox = (ToolBox *)pWindow;
- }
-
- if ( !bDockingInProgress )
- {
- sal_Bool bWinFound( implts_findElement( e.Source, aUIDockingElement ) );
- if ( bWinFound && xWindow.is() )
- {
- aUIDockingElement.m_bFloating = !aUIDockingElement.m_bFloating;
- aUIDockingElement.m_bUserActive = sal_True;
-
- WriteGuard aWriteLock( m_aLock );
- m_bDoLayout = sal_True;
- aWriteLock.unlock();
-
- if ( aUIDockingElement.m_bFloating )
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- if ( pToolBox )
- {
- pToolBox->SetLineCount( aUIDockingElement.m_aFloatingData.m_nLines );
- if ( aUIDockingElement.m_aFloatingData.m_bIsHorizontal )
- pToolBox->SetAlign( WINDOWALIGN_TOP );
- else
- pToolBox->SetAlign( WINDOWALIGN_LEFT );
- }
-
- sal_Bool bUndefPos = ( aUIDockingElement.m_aFloatingData.m_aPos.X() == SAL_MAX_INT32 ||
- aUIDockingElement.m_aFloatingData.m_aPos.Y() == SAL_MAX_INT32 );
- sal_Bool bSetSize = ( aUIDockingElement.m_aFloatingData.m_aSize.Width() != 0 &&
- aUIDockingElement.m_aFloatingData.m_aSize.Height() != 0 );
-
- if ( bUndefPos )
- aUIDockingElement.m_aFloatingData.m_aPos = implts_findNextCascadeFloatingPos();
-
- if ( !bSetSize )
- {
- if ( pToolBox )
- aUIDockingElement.m_aFloatingData.m_aSize = pToolBox->CalcFloatingWindowSizePixel();
- else
- aUIDockingElement.m_aFloatingData.m_aSize = pWindow->GetOutputSizePixel();
- }
-
- xWindow->setPosSize( aUIDockingElement.m_aFloatingData.m_aPos.X(),
- aUIDockingElement.m_aFloatingData.m_aPos.Y(),
- 0, 0, css::awt::PosSize::POS );
- xWindow->setOutputSize( AWTSize( aUIDockingElement.m_aFloatingData.m_aSize ) );
- }
- else
- {
- if (( aUIDockingElement.m_aDockedData.m_aPos.X() == SAL_MAX_INT32 ) &&
- ( aUIDockingElement.m_aDockedData.m_aPos.Y() == SAL_MAX_INT32 ))
- {
- // Docking on its default position without a preset position -
- // we have to find a good place for it.
- ::Point aPixelPos;
- ::Point aDockPos;
- ::Size aSize;
-
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- if ( pToolBox )
- aSize = pToolBox->CalcWindowSizePixel( 1, ImplConvertAlignment( aUIDockingElement.m_aDockedData.m_nDockedArea ) );
- else
- aSize = pWindow->GetSizePixel();
- }
-
- implts_findNextDockingPos( (::com::sun::star::ui::DockingArea)aUIDockingElement.m_aDockedData.m_nDockedArea,
- aSize,
- aDockPos,
- aPixelPos );
- aUIDockingElement.m_aDockedData.m_aPos = aDockPos;
- }
-
- vos::OGuard aGuard( Application::GetSolarMutex() );
- if ( pToolBox )
- {
- pToolBox->SetAlign( ImplConvertAlignment( aUIDockingElement.m_aDockedData.m_nDockedArea) );
- ::Size aSize = pToolBox->CalcWindowSizePixel( 1 );
- css::awt::Rectangle aRect = xWindow->getPosSize();
- xWindow->setPosSize( aRect.X, aRect.Y, 0, 0, css::awt::PosSize::POS );
- xWindow->setOutputSize( AWTSize( aSize ) );
- }
- }
-
- aWriteLock.lock();
- m_bDoLayout = sal_False;
- UIElement& rUIElement = LayoutManager::impl_findElement( aUIDockingElement.m_aName );
- if ( rUIElement.m_aName == aUIDockingElement.m_aName )
- rUIElement = aUIDockingElement;
- aWriteLock.unlock();
-
- implts_writeWindowStateData( aUIDockingElement.m_aName, aUIDockingElement );
-
- implts_sortUIElements();
- doLayout();
- }
- }
- else
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- if ( pToolBox )
- {
- if ( aUIDockingElement.m_bFloating )
- {
- if ( aUIDockingElement.m_aFloatingData.m_bIsHorizontal )
- pToolBox->SetAlign( WINDOWALIGN_TOP );
- else
- pToolBox->SetAlign( WINDOWALIGN_LEFT );
- }
- else
- {
- pToolBox->SetAlign( ImplConvertAlignment( aUIDockingElement.m_aDockedData.m_nDockedArea) );
- }
- }
- }
-}
-
-void SAL_CALL LayoutManager::closed( const ::com::sun::star::lang::EventObject& e )
-throw (::com::sun::star::uno::RuntimeException)
-{
- rtl::OUString aName;
- UIElement aUIElement;
- UIElementVector::iterator pIter;
-
- WriteGuard aWriteLock( m_aLock );
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- {
- Reference< XUIElement > xUIElement( pIter->m_xUIElement );
- if ( xUIElement.is() )
- {
- Reference< XInterface > xIfac( xUIElement->getRealInterface(), UNO_QUERY );
- if ( xIfac == e.Source )
- {
- aName = pIter->m_aName;
-
- // user closes a toolbar =>
- // context sensitive toolbar: only destroy toolbar and store state.
- // context sensitive toolbar: make it invisible, store state and destroy it.
- if ( !pIter->m_bContextSensitive )
- pIter->m_bVisible = sal_False;
-
- aUIElement = *pIter;
- break;
- }
- }
- }
- aWriteLock.unlock();
-
-
- // destroy element
- if ( aName.getLength() > 0 )
- {
- implts_writeWindowStateData( aName, aUIElement );
- destroyElement( aName );
- }
-}
-
-void SAL_CALL LayoutManager::endPopupMode( const ::com::sun::star::awt::EndPopupModeEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-
-}
-
-//---------------------------------------------------------------------------------------------------------
// XLayoutManagerEventBroadcaster
//---------------------------------------------------------------------------------------------------------
-void SAL_CALL LayoutManager::addLayoutManagerEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XLayoutManagerListener >& xListener )
-throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL LayoutManager::addLayoutManagerEventListener( const uno::Reference< frame::XLayoutManagerListener >& xListener )
+throw (uno::RuntimeException)
{
- m_aListenerContainer.addInterface( ::getCppuType( (const css::uno::Reference< css::frame::XLayoutManagerListener >*)NULL ), xListener );
+ m_aListenerContainer.addInterface( ::getCppuType( (const uno::Reference< frame::XLayoutManagerListener >*)NULL ), xListener );
}
-void SAL_CALL LayoutManager::removeLayoutManagerEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XLayoutManagerListener >& xListener )
-throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL LayoutManager::removeLayoutManagerEventListener( const uno::Reference< frame::XLayoutManagerListener >& xListener )
+throw (uno::RuntimeException)
{
- m_aListenerContainer.removeInterface( ::getCppuType( (const css::uno::Reference< css::frame::XLayoutManagerListener >*)NULL ), xListener );
+ m_aListenerContainer.removeInterface( ::getCppuType( (const uno::Reference< frame::XLayoutManagerListener >*)NULL ), xListener );
}
-void LayoutManager::implts_notifyListeners( short nEvent, ::com::sun::star::uno::Any aInfoParam )
+void LayoutManager::implts_notifyListeners( short nEvent, uno::Any aInfoParam )
{
- css::lang::EventObject aSource (static_cast< ::cppu::OWeakObject*>(this));
- ::cppu::OInterfaceContainerHelper* pContainer = m_aListenerContainer.getContainer( ::getCppuType( ( const css::uno::Reference< css::frame::XLayoutManagerListener >*) NULL ) );
+ lang::EventObject aSource( static_cast< ::cppu::OWeakObject*>(this) );
+ ::cppu::OInterfaceContainerHelper* pContainer = m_aListenerContainer.getContainer( ::getCppuType( ( const uno::Reference< frame::XLayoutManagerListener >*) NULL ) );
if (pContainer!=NULL)
{
::cppu::OInterfaceIteratorHelper pIterator(*pContainer);
@@ -6917,9 +2714,9 @@ void LayoutManager::implts_notifyListeners( short nEvent, ::com::sun::star::uno:
{
try
{
- ((css::frame::XLayoutManagerListener*)pIterator.next())->layoutEvent( aSource, nEvent, aInfoParam );
+ ((frame::XLayoutManagerListener*)pIterator.next())->layoutEvent( aSource, nEvent, aInfoParam );
}
- catch( css::uno::RuntimeException& )
+ catch( uno::RuntimeException& )
{
pIterator.remove();
}
@@ -6928,10 +2725,10 @@ void LayoutManager::implts_notifyListeners( short nEvent, ::com::sun::star::uno:
}
//---------------------------------------------------------------------------------------------------------
-// XWindowListener
+// XWindowListener
//---------------------------------------------------------------------------------------------------------
-void SAL_CALL LayoutManager::windowResized( const css::awt::WindowEvent& aEvent )
-throw( css::uno::RuntimeException )
+void SAL_CALL LayoutManager::windowResized( const awt::WindowEvent& aEvent )
+throw( uno::RuntimeException )
{
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
@@ -6940,9 +2737,9 @@ throw( css::uno::RuntimeException )
return;
// Request to set docking area space again.
- css::awt::Rectangle aDockingArea( m_aDockingArea );
+ awt::Rectangle aDockingArea( m_aDockingArea );
Reference< XDockingAreaAcceptor > xDockingAreaAcceptor( m_xDockingAreaAcceptor );
- Reference< css::awt::XWindow > xContainerWindow( m_xContainerWindow );
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
Reference< XInterface > xIfac( xContainerWindow, UNO_QUERY );
if ( xIfac == aEvent.Source && m_bVisible )
@@ -6964,105 +2761,65 @@ throw( css::uno::RuntimeException )
{
// the container window of my DockingAreaAcceptor is not the same as of my frame
// I still have to resize my frames' window as nobody else will do it
- Reference< css::awt::XWindow > xComponentWindow( m_xFrame->getComponentWindow() );
+ Reference< awt::XWindow > xComponentWindow( m_xFrame->getComponentWindow() );
if( xComponentWindow.is() == sal_True )
{
- css::uno::Reference< css::awt::XDevice > xDevice( m_xFrame->getContainerWindow(), css::uno::UNO_QUERY );
+ uno::Reference< awt::XDevice > xDevice( m_xFrame->getContainerWindow(), uno::UNO_QUERY );
// Convert relativ size to output size.
- css::awt::Rectangle aRectangle = m_xFrame->getContainerWindow()->getPosSize();
- css::awt::DeviceInfo aInfo = xDevice->getInfo();
- css::awt::Size aSize ( aRectangle.Width - aInfo.LeftInset - aInfo.RightInset ,
- aRectangle.Height - aInfo.TopInset - aInfo.BottomInset );
+ awt::Rectangle aRectangle = m_xFrame->getContainerWindow()->getPosSize();
+ awt::DeviceInfo aInfo = xDevice->getInfo();
+ awt::Size aSize( aRectangle.Width - aInfo.LeftInset - aInfo.RightInset ,
+ aRectangle.Height - aInfo.TopInset - aInfo.BottomInset );
// Resize our component window.
- xComponentWindow->setPosSize( 0, 0, aSize.Width, aSize.Height, css::awt::PosSize::POSSIZE );
- }
- }
- else
- {
- // resize event for one of the UIElements
- sal_Bool bLocked( m_bDockingInProgress );
- sal_Bool bDoLayout( m_bDoLayout );
- aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
-
- if ( !bLocked && !bDoLayout )
- {
- // Do not do anything if we are in the middle of a docking process. This would interfere all other
- // operations. We will store the new position and size in the docking handlers.
- // Do not do anything if we are in the middle of our layouting process. We will adapt the position
- // and size of the user interface elements.
- UIElement aUIElement;
- if ( implts_findElement( aEvent.Source, aUIElement ))
- {
- if ( aUIElement.m_bFloating )
- implts_writeNewStateData( aUIElement.m_aName,
- Reference< css::awt::XWindow >( aEvent.Source, UNO_QUERY ));
- else
- doLayout();
- }
+ xComponentWindow->setPosSize( 0, 0, aSize.Width, aSize.Height, awt::PosSize::POSSIZE );
}
}
}
-void SAL_CALL LayoutManager::windowMoved( const css::awt::WindowEvent& ) throw( css::uno::RuntimeException )
+void SAL_CALL LayoutManager::windowMoved( const awt::WindowEvent& ) throw( uno::RuntimeException )
{
}
-void SAL_CALL LayoutManager::windowShown( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException )
+void SAL_CALL LayoutManager::windowShown( const lang::EventObject& aEvent ) throw( uno::RuntimeException )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
-
- // Request to set docking area space again.
- Reference< css::awt::XWindow > xContainerWindow( m_xContainerWindow );
- bool bParentWindowVisible( m_bParentWindowVisible );
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
+ bool bParentWindowVisible( m_bParentWindowVisible );
aReadLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
Reference< XInterface > xIfac( xContainerWindow, UNO_QUERY );
if ( xIfac == aEvent.Source )
{
bool bSetVisible = false;
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
m_bParentWindowVisible = true;
bSetVisible = ( m_bParentWindowVisible != bParentWindowVisible );
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
if ( bSetVisible )
- {
implts_updateUIElementsVisibleState( sal_True );
- //implts_doLayout( sal_False );
- }
}
}
-void SAL_CALL LayoutManager::windowHidden( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException )
+void SAL_CALL LayoutManager::windowHidden( const lang::EventObject& aEvent ) throw( uno::RuntimeException )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
-
- // Request to set docking area space again.
- Reference< css::awt::XWindow > xContainerWindow( m_xContainerWindow );
- bool bParentWindowVisible( m_bParentWindowVisible );
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
+ bool bParentWindowVisible( m_bParentWindowVisible );
aReadLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
Reference< XInterface > xIfac( xContainerWindow, UNO_QUERY );
if ( xIfac == aEvent.Source )
{
bool bSetInvisible = false;
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
m_bParentWindowVisible = false;
bSetInvisible = ( m_bParentWindowVisible != bParentWindowVisible );
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
if ( bSetInvisible )
implts_updateUIElementsVisibleState( sal_False );
@@ -7071,17 +2828,14 @@ void SAL_CALL LayoutManager::windowHidden( const css::lang::EventObject& aEvent
IMPL_LINK( LayoutManager, AsyncLayoutHdl, Timer *, EMPTYARG )
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
-
- // Request to set docking area space again.
m_aAsyncLayoutTimer.Stop();
if( !m_xContainerWindow.is() )
return 0;
- css::awt::Rectangle aDockingArea( m_aDockingArea );
- ::Size aStatusBarSize( implts_getStatusBarSize() );
+ awt::Rectangle aDockingArea( m_aDockingArea );
+ ::Size aStatusBarSize( implts_getStatusBarSize() );
// Subtract status bar height
aDockingArea.Height -= aStatusBarSize.Height();
@@ -7093,78 +2847,42 @@ IMPL_LINK( LayoutManager, AsyncLayoutHdl, Timer *, EMPTYARG )
return 0;
}
-#ifdef DBG_UTIL
-void LayoutManager::implts_checkElementContainer()
-{
-#ifdef DBG_UTIL
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- ReadGuard aReadLock( m_aLock );
-
- BaseHash< sal_Int32 > aUIElementHash;
-
- UIElementVector::iterator pIter;
- for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
- aUIElementHash[pIter->m_aName]++;
-
-
- BaseHash< sal_Int32 >::const_iterator pCheckIter = aUIElementHash.begin();
- for ( ; pCheckIter != aUIElementHash.end(); pCheckIter++ )
- {
- if ( pCheckIter->second > 1 )
- {
- ::rtl::OString aName = ::rtl::OUStringToOString( pCheckIter->first, RTL_TEXTENCODING_ASCII_US );
- DBG_ASSERT( "More than one element (%s) with the same name found!", aName.getStr() );
- }
- } // for ( ; pCheckIter != aUIElementHash.end(); pCheckIter++ )
-#endif
-}
-#endif
-
//---------------------------------------------------------------------------------------------------------
-// XFrameActionListener
+// XFrameActionListener
//---------------------------------------------------------------------------------------------------------
void SAL_CALL LayoutManager::frameAction( const FrameActionEvent& aEvent )
throw ( RuntimeException )
{
- if (( aEvent.Action == FrameAction_COMPONENT_ATTACHED ) ||
- ( aEvent.Action == FrameAction_COMPONENT_REATTACHED ))
+ if (( aEvent.Action == FrameAction_COMPONENT_ATTACHED ) || ( aEvent.Action == FrameAction_COMPONENT_REATTACHED ))
{
RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::LayoutManager::frameAction (COMPONENT_ATTACHED|REATTACHED)" );
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
m_bComponentAttached = sal_True;
m_bMustDoLayout = sal_True;
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
implts_reset( sal_True );
implts_doLayout( sal_True, sal_False );
implts_doLayout( sal_True, sal_True );
}
- else if (( aEvent.Action == FrameAction_FRAME_UI_ACTIVATED ) ||
- ( aEvent.Action == FrameAction_FRAME_UI_DEACTIVATING ))
+ else if (( aEvent.Action == FrameAction_FRAME_UI_ACTIVATED ) || ( aEvent.Action == FrameAction_FRAME_UI_DEACTIVATING ))
{
RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::LayoutManager::frameAction (FRAME_UI_ACTIVATED|DEACTIVATING)" );
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
WriteGuard aWriteLock( m_aLock );
m_bActive = ( aEvent.Action == FrameAction_FRAME_UI_ACTIVATED );
aWriteLock.unlock();
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
implts_toggleFloatingUIElementsVisibility( aEvent.Action == FrameAction_FRAME_UI_ACTIVATED );
-// doLayout();
}
else if ( aEvent.Action == FrameAction_COMPONENT_DETACHING )
{
RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::LayoutManager::frameAction (COMPONENT_DETACHING)" );
- // SAFE AREA -----------------------------------------------------------------------------------------------
WriteGuard aWriteLock( m_aLock );
m_bComponentAttached = sal_False;
aWriteLock.unlock();
- // SAFE AREA -----------------------------------------------------------------------------------------------
implts_reset( sal_False );
}
@@ -7172,7 +2890,7 @@ throw ( RuntimeException )
// ______________________________________________
-void SAL_CALL LayoutManager::disposing( const css::lang::EventObject& rEvent )
+void SAL_CALL LayoutManager::disposing( const lang::EventObject& rEvent )
throw( RuntimeException )
{
sal_Bool bDisposeAndClear( sal_False );
@@ -7182,23 +2900,11 @@ throw( RuntimeException )
if ( rEvent.Source == Reference< XInterface >( m_xFrame, UNO_QUERY ))
{
- // Our frame gets disposed, release all our references that depends on a working
- // frame reference.
+ // Our frame gets disposed, release all our references that depends on a working frame reference.
Application::RemoveEventListener( LINK( this, LayoutManager, SettingsChanged ) );
- if ( m_pMiscOptions )
- {
- m_pMiscOptions->RemoveListenerLink( LINK( this, LayoutManager, OptionsChanged ) );
- delete m_pMiscOptions;
- m_pMiscOptions = 0;
- }
-
- delete m_pAddonOptions;
- m_pAddonOptions = 0;
// destroy all elements, it's possible that dettaching is NOT called!
implts_destroyElements();
-
- m_aUIElements.clear();
impl_clearUpMenuBar();
m_xMenuBar.clear();
if ( m_xInplaceMenuBar.is() )
@@ -7209,7 +2915,10 @@ throw( RuntimeException )
m_xInplaceMenuBar.clear();
m_xContainerWindow.clear();
m_xContainerTopWindow.clear();
- implts_destroyDockingAreaWindows();
+
+ // forward disposing call to toolbar manager
+ if ( m_pToolbarManager != NULL )
+ m_pToolbarManager->disposing(rEvent);
if ( m_xModuleCfgMgr.is() )
{
@@ -7219,9 +2928,7 @@ throw( RuntimeException )
xModuleCfgMgr->removeConfigurationListener(
Reference< XUIConfigurationListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
}
- catch ( Exception& )
- {
- }
+ catch ( Exception& ) {}
}
if ( m_xDocCfgMgr.is() )
@@ -7232,9 +2939,7 @@ throw( RuntimeException )
xDocCfgMgr->removeConfigurationListener(
Reference< XUIConfigurationListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
}
- catch ( Exception& )
- {
- }
+ catch ( Exception& ) {}
}
m_xDocCfgMgr.clear();
@@ -7242,14 +2947,20 @@ throw( RuntimeException )
m_xFrame.clear();
delete m_pGlobalSettings;
m_pGlobalSettings = 0;
- m_xDockingAreaAcceptor = Reference< ::com::sun::star::ui::XDockingAreaAcceptor >();
+ m_xDockingAreaAcceptor = Reference< ui::XDockingAreaAcceptor >();
bDisposeAndClear = sal_True;
}
else if ( rEvent.Source == Reference< XInterface >( m_xContainerWindow, UNO_QUERY ))
{
// Our container window gets disposed. Remove all user interface elements.
- m_aUIElements.clear();
+ uno::Reference< ui::XUIConfigurationListener > xToolbarManager( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ if ( pToolbarManager )
+ {
+ uno::Reference< awt::XWindowPeer > aEmptyWindowPeer;
+ pToolbarManager->setParentWindow( aEmptyWindowPeer );
+ }
impl_clearUpMenuBar();
m_xMenuBar.clear();
if ( m_xInplaceMenuBar.is() )
@@ -7262,13 +2973,9 @@ throw( RuntimeException )
m_xContainerTopWindow.clear();
}
else if ( rEvent.Source == Reference< XInterface >( m_xDocCfgMgr, UNO_QUERY ))
- {
m_xDocCfgMgr.clear();
- }
else if ( rEvent.Source == Reference< XInterface >( m_xModuleCfgMgr , UNO_QUERY ))
- {
m_xModuleCfgMgr.clear();
- }
aWriteLock.unlock();
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
@@ -7277,208 +2984,207 @@ throw( RuntimeException )
if ( bDisposeAndClear )
{
// Send message to all listener and forget her references.
- css::uno::Reference< css::frame::XLayoutManager > xThis( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY );
- css::lang::EventObject aEvent( xThis );
+ uno::Reference< frame::XLayoutManager > xThis( static_cast< ::cppu::OWeakObject* >(this), uno::UNO_QUERY );
+ lang::EventObject aEvent( xThis );
m_aListenerContainer.disposeAndClear( aEvent );
}
}
-void SAL_CALL LayoutManager::elementInserted( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL LayoutManager::elementInserted( const ui::ConfigurationEvent& Event ) throw (uno::RuntimeException)
{
ReadGuard aReadLock( m_aLock );
+ Reference< XFrame > xFrame( m_xFrame );
+ Reference< ui::XUIConfigurationListener > xUICfgListener( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- ::rtl::OUString aElementType;
- ::rtl::OUString aElementName;
- Reference< XUIElement > xElement;
- Reference< XFrame > xFrame( m_xFrame );
-
- if ( m_xFrame.is() )
+ if ( xFrame.is() )
{
- implts_findElement( Event.ResourceURL, aElementType, aElementName, xElement );
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
+ bool bRefreshLayout(false);
- Reference< XUIElementSettings > xElementSettings( xElement, UNO_QUERY );
- if ( xElementSettings.is() )
+ parseResourceURL( Event.ResourceURL, aElementType, aElementName );
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- ::rtl::OUString aConfigSourcePropName( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
- Reference< XPropertySet > xPropSet( xElementSettings, UNO_QUERY );
- if ( xPropSet.is() )
+ if ( xUICfgListener.is() )
{
- if ( Event.Source == Reference< XInterface >( m_xDocCfgMgr, UNO_QUERY ))
- xPropSet->setPropertyValue( aConfigSourcePropName, makeAny( m_xDocCfgMgr ));
+ xUICfgListener->elementInserted( Event );
+ bRefreshLayout = pToolbarManager->isLayoutDirty();
}
- xElementSettings->updateSettings();
}
- else
+ else if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_MENUBAR ))
{
- if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ) &&
- ( aElementName.indexOf( m_aCustomTbxPrefix ) != -1 ))
+ Reference< XUIElement > xUIElement = implts_findElement( Event.ResourceURL );
+ Reference< XUIElementSettings > xElementSettings( xUIElement, UNO_QUERY );
+ if ( xElementSettings.is() )
{
- // custom toolbar must be directly created, shown and layouted!
- createElement( Event.ResourceURL );
- Reference< XUIElement > xUIElement = getElement( Event.ResourceURL );
- if ( xUIElement.is() )
+ ::rtl::OUString aConfigSourcePropName( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
+ uno::Reference< XPropertySet > xPropSet( xElementSettings, uno::UNO_QUERY );
+ if ( xPropSet.is() )
{
- Reference< XUIConfigurationManager > xCfgMgr;
- Reference< XPropertySet > xPropSet;
- ::rtl::OUString aUIName;
-
- try
- {
- xCfgMgr = Reference< XUIConfigurationManager >( Event.Source, UNO_QUERY );
- xPropSet = Reference< XPropertySet >( xCfgMgr->getSettings( Event.ResourceURL, sal_False ), UNO_QUERY );
-
- if ( xPropSet.is() )
- xPropSet->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "UIName" ))) >>= aUIName;
- }
- catch ( com::sun::star::container::NoSuchElementException& )
- {
- }
- catch ( com::sun::star::beans::UnknownPropertyException& )
- {
- }
- catch ( com::sun::star::lang::WrappedTargetException& )
- {
- }
-
- {
- vos::OGuard aGuard( Application::GetSolarMutex() );
- Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
- Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow )
- pWindow->SetText( aUIName );
- }
-
- showElement( Event.ResourceURL );
+ if ( Event.Source == uno::Reference< uno::XInterface >( m_xDocCfgMgr, uno::UNO_QUERY ))
+ xPropSet->setPropertyValue( aConfigSourcePropName, makeAny( m_xDocCfgMgr ));
}
+ xElementSettings->updateSettings();
}
}
+
+ if ( bRefreshLayout )
+ doLayout();
}
}
-void SAL_CALL LayoutManager::elementRemoved( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL LayoutManager::elementRemoved( const ui::ConfigurationEvent& Event ) throw (uno::RuntimeException)
{
- /* SAFE AREA ----------------------------------------------------------------------------------------------- */
- WriteGuard aWriteLock( m_aLock );
-
- ::rtl::OUString aElementType;
- ::rtl::OUString aElementName;
- Reference< XUIElement > xUIElement;
- Reference< XFrame > xFrame( m_xFrame );
+ ReadGuard aReadLock( m_aLock );
+ Reference< frame::XFrame > xFrame( m_xFrame );
+ Reference< ui::XUIConfigurationListener > xToolbarManager( m_xToolbarManager );
+ Reference< awt::XWindow > xContainerWindow( m_xContainerWindow );
+ Reference< ui::XUIElement > xMenuBar( m_xMenuBar );
+ Reference< ui::XUIConfigurationManager > xModuleCfgMgr( m_xModuleCfgMgr );
+ Reference< ui::XUIConfigurationManager > xDocCfgMgr( m_xDocCfgMgr );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- if ( m_xFrame.is() )
+ if ( xFrame.is() )
{
- implts_findElement( Event.ResourceURL, aElementType, aElementName, xUIElement );
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
+ bool bRefreshLayout(false);
- Reference< XUIElementSettings > xElementSettings( xUIElement, UNO_QUERY );
- if ( xElementSettings.is() )
+ parseResourceURL( Event.ResourceURL, aElementType, aElementName );
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- bool bNoSettings( false );
- ::rtl::OUString aConfigSourcePropName( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
- Reference< XInterface > xElementCfgMgr;
- Reference< XPropertySet > xPropSet( xElementSettings, UNO_QUERY );
+ if ( xToolbarManager.is() )
+ {
+ xToolbarManager->elementRemoved( Event );
+ bRefreshLayout = pToolbarManager->isLayoutDirty();
+ }
+ }
+ else
+ {
+ Reference< XUIElement > xUIElement = implts_findElement( Event.ResourceURL );
+ Reference< XUIElementSettings > xElementSettings( xUIElement, UNO_QUERY );
+ if ( xElementSettings.is() )
+ {
+ bool bNoSettings( false );
+ ::rtl::OUString aConfigSourcePropName( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
+ Reference< XInterface > xElementCfgMgr;
+ Reference< XPropertySet > xPropSet( xElementSettings, UNO_QUERY );
- if ( xPropSet.is() )
- xPropSet->getPropertyValue( aConfigSourcePropName ) >>= xElementCfgMgr;
+ if ( xPropSet.is() )
+ xPropSet->getPropertyValue( aConfigSourcePropName ) >>= xElementCfgMgr;
- if ( !xElementCfgMgr.is() )
- return;
+ if ( !xElementCfgMgr.is() )
+ return;
- // Check if the same UI configuration manager has changed => check further
- if ( Event.Source == xElementCfgMgr )
- {
- // Same UI configuration manager where our element has its settings
- if ( Event.Source == Reference< XInterface >( m_xDocCfgMgr, UNO_QUERY ))
+ // Check if the same UI configuration manager has changed => check further
+ if ( Event.Source == xElementCfgMgr )
{
- // document settings removed
- if ( m_xModuleCfgMgr->hasSettings( Event.ResourceURL ))
+ // Same UI configuration manager where our element has its settings
+ if ( Event.Source == Reference< XInterface >( xDocCfgMgr, UNO_QUERY ))
{
- xPropSet->setPropertyValue( aConfigSourcePropName, makeAny( m_xModuleCfgMgr ));
- xElementSettings->updateSettings();
- return;
+ // document settings removed
+ if ( xModuleCfgMgr->hasSettings( Event.ResourceURL ))
+ {
+ xPropSet->setPropertyValue( aConfigSourcePropName, makeAny( m_xModuleCfgMgr ));
+ xElementSettings->updateSettings();
+ return;
+ }
}
- }
- bNoSettings = true;
- }
+ bNoSettings = true;
+ }
- // No settings anymore, element must be destroyed
- if ( m_xContainerWindow.is() && bNoSettings )
- {
- if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) &&
- aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
+ // No settings anymore, element must be destroyed
+ if ( xContainerWindow.is() && bNoSettings )
{
- Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
- while ( pWindow && !pWindow->IsSystemWindow() )
- pWindow = pWindow->GetParent();
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( "menubar" ) && aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ))
+ {
+ SystemWindow* pSysWindow = getTopSystemWindow( xContainerWindow );
+ if ( pSysWindow && !m_bInplaceMenuSet )
+ pSysWindow->SetMenuBar( 0 );
- if ( pWindow && !m_bInplaceMenuSet )
- ((SystemWindow *)pWindow)->SetMenuBar( 0 );
+ Reference< XComponent > xComp( xMenuBar, UNO_QUERY );
+ if ( xComp.is() )
+ xComp->dispose();
- Reference< XComponent > xComp( m_xMenuBar, UNO_QUERY );
- if ( xComp.is() )
- xComp->dispose();
- m_xMenuBar.clear();
- }
- else if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ))
- {
- destroyElement( Event.ResourceURL );
+ WriteGuard aWriteLock( m_aLock );
+ m_xMenuBar.clear();
+ }
}
}
}
+
+ if ( bRefreshLayout )
+ doLayout();
}
}
-void SAL_CALL LayoutManager::elementReplaced( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL LayoutManager::elementReplaced( const ui::ConfigurationEvent& Event ) throw (uno::RuntimeException)
{
ReadGuard aReadLock( m_aLock );
+ Reference< XFrame > xFrame( m_xFrame );
+ Reference< ui::XUIConfigurationListener > xToolbarManager( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ aReadLock.unlock();
- ::rtl::OUString aElementType;
- ::rtl::OUString aElementName;
- Reference< XUIElement > xUIElement;
- Reference< XFrame > xFrame( m_xFrame );
-
- if ( m_xFrame.is() )
+ if ( xFrame.is() )
{
- implts_findElement( Event.ResourceURL, aElementType, aElementName, xUIElement );
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
+ bool bRefreshLayout(false);
- Reference< XUIElementSettings > xElementSettings( xUIElement, UNO_QUERY );
- if ( xElementSettings.is() )
+ parseResourceURL( Event.ResourceURL, aElementType, aElementName );
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( UIRESOURCETYPE_TOOLBAR ))
{
- ::rtl::OUString aConfigSourcePropName( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
- Reference< XInterface > xElementCfgMgr;
- Reference< XPropertySet > xPropSet( xElementSettings, UNO_QUERY );
+ if ( xToolbarManager.is() )
+ {
+ xToolbarManager->elementReplaced( Event );
+ bRefreshLayout = pToolbarManager->isLayoutDirty();
+ }
+ }
+ else
+ {
+ Reference< XUIElement > xUIElement = implts_findElement( Event.ResourceURL );
+ Reference< XUIElementSettings > xElementSettings( xUIElement, UNO_QUERY );
+ if ( xElementSettings.is() )
+ {
+ ::rtl::OUString aConfigSourcePropName( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
+ Reference< XInterface > xElementCfgMgr;
+ Reference< XPropertySet > xPropSet( xElementSettings, UNO_QUERY );
- if ( xPropSet.is() )
- xPropSet->getPropertyValue( aConfigSourcePropName ) >>= xElementCfgMgr;
+ if ( xPropSet.is() )
+ xPropSet->getPropertyValue( aConfigSourcePropName ) >>= xElementCfgMgr;
- if ( !xElementCfgMgr.is() )
- return;
+ if ( !xElementCfgMgr.is() )
+ return;
- // Check if the same UI configuration manager has changed => update settings
- if ( Event.Source == xElementCfgMgr )
- {
- xElementSettings->updateSettings();
- if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ))
- doLayout();
+ // Check if the same UI configuration manager has changed => update settings
+ if ( Event.Source == xElementCfgMgr )
+ xElementSettings->updateSettings();
}
}
+
+ if ( bRefreshLayout )
+ doLayout();
}
}
//---------------------------------------------------------------------------------------------------------
-// OPropertySetHelper
+// OPropertySetHelper
//---------------------------------------------------------------------------------------------------------
-// XPropertySet helper
-sal_Bool SAL_CALL LayoutManager::convertFastPropertyValue( Any& aConvertedValue ,
- Any& aOldValue ,
- sal_Int32 nHandle ,
- const Any& aValue ) throw( com::sun::star::lang::IllegalArgumentException )
+sal_Bool SAL_CALL LayoutManager::convertFastPropertyValue( Any& aConvertedValue,
+ Any& aOldValue,
+ sal_Int32 nHandle,
+ const Any& aValue ) throw( lang::IllegalArgumentException )
{
return LayoutManager_PBase::convertFastPropertyValue( aConvertedValue, aOldValue, nHandle, aValue );
}
-void SAL_CALL LayoutManager::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle ,
- const com::sun::star::uno::Any& aValue ) throw( com::sun::star::uno::Exception )
+void SAL_CALL LayoutManager::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle,
+ const uno::Any& aValue ) throw( uno::Exception )
{
if ( nHandle != LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY )
LayoutManager_PBase::setFastPropertyValue_NoBroadcast( nHandle, aValue );
@@ -7491,40 +3197,43 @@ void SAL_CALL LayoutManager::setFastPropertyValue_NoBroadcast( sal_Int32
case LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY:
{
- sal_Bool bValue = sal_Bool();
+ sal_Bool bValue(sal_False);
if (( aValue >>= bValue ) && bValue )
- implts_refreshContextToolbarsVisibility();
+ {
+ ReadGuard aReadLock( m_aLock );
+ Reference< ui::XUIConfigurationListener > xToolbarManager( m_xToolbarManager );
+ ToolbarLayoutManager* pToolbarManager = m_pToolbarManager;
+ bool bAutomaticToolbars( m_bAutomaticToolbars );
+ aReadLock.unlock();
+
+ if ( pToolbarManager )
+ pToolbarManager->refreshToolbarsVisibility( bAutomaticToolbars );
+ }
break;
}
case LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI:
implts_setCurrentUIVisibility( !m_bHideCurrentUI );
break;
+ default: break;
}
}
-void SAL_CALL LayoutManager::getFastPropertyValue( com::sun::star::uno::Any& aValue ,
- sal_Int32 nHandle ) const
+void SAL_CALL LayoutManager::getFastPropertyValue( uno::Any& aValue, sal_Int32 nHandle ) const
{
LayoutManager_PBase::getFastPropertyValue( aValue, nHandle );
}
::cppu::IPropertyArrayHelper& SAL_CALL LayoutManager::getInfoHelper()
{
- // Optimize this method !
- // We initialize a static variable only one time. And we don't must use a mutex at every call!
- // For the first call; pInfoHelper is NULL - for the second call pInfoHelper is different from NULL!
static ::cppu::OPropertyArrayHelper* pInfoHelper = NULL;
if( pInfoHelper == NULL )
{
- // Ready for multithreading
osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
- // Control this pointer again, another instance can be faster then these!
if( pInfoHelper == NULL )
{
- // Define static member to give structure of properties to baseclass "OPropertySetHelper".
uno::Sequence< beans::Property > aProperties;
describeProperties( aProperties );
static ::cppu::OPropertyArrayHelper aInfoHelper( aProperties, sal_True );
@@ -7535,23 +3244,17 @@ void SAL_CALL LayoutManager::getFastPropertyValue( com::sun::star::uno::Any& aVa
return(*pInfoHelper);
}
-com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CALL LayoutManager::getPropertySetInfo() throw (::com::sun::star::uno::RuntimeException)
+uno::Reference< beans::XPropertySetInfo > SAL_CALL LayoutManager::getPropertySetInfo() throw (uno::RuntimeException)
{
- // Optimize this method !
- // We initialize a static variable only one time. And we don't must use a mutex at every call!
- // For the first call; pInfo is NULL - for the second call pInfo is different from NULL!
- static com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo >* pInfo = NULL;
+ static uno::Reference< beans::XPropertySetInfo >* pInfo = NULL;
if( pInfo == NULL )
{
- // Ready for multithreading
osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
- // Control this pointer again, another instance can be faster then these!
+
if( pInfo == NULL )
{
- // Create structure of propertysetinfo for baseclass "OPropertySetHelper".
- // (Use method "getInfoHelper()".)
- static com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
+ static uno::Reference< beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
pInfo = &xInfo;
}
}
@@ -7560,4 +3263,3 @@ com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CA
}
} // namespace framework
-
diff --git a/framework/source/layoutmanager/makefile.mk b/framework/source/layoutmanager/makefile.mk
deleted file mode 100644
index 70215a36578d..000000000000
--- a/framework/source/layoutmanager/makefile.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_layout
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-VISIBILITY_HIDDEN = TRUE
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/layoutmanager.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/framework/source/layoutmanager/panel.cxx b/framework/source/layoutmanager/panel.cxx
new file mode 100755
index 000000000000..69f6ad0f51d9
--- /dev/null
+++ b/framework/source/layoutmanager/panel.cxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_framework.hxx"
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include "panel.hxx"
+#include "helpers.hxx"
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+
+#include <vos/mutex.hxx>
+#include <vcl/svapp.hxx>
+#include <toolkit/unohlp.hxx>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+using namespace ::com::sun::star;
+
+namespace framework
+{
+
+Panel::Panel(
+ const uno::Reference< lang::XMultiServiceFactory >& rSMGR,
+ const uno::Reference< awt::XWindow >& rParent,
+ PanelPosition nPanel ) :
+ m_xSMGR(rSMGR), m_nPanelPosition(nPanel)
+{
+ uno::Reference< awt::XWindowPeer > xWindowPeer( rParent, uno::UNO_QUERY );
+ m_xPanelWindow = uno::Reference< awt::XWindow >( createToolkitWindow( rSMGR, xWindowPeer, "splitwindow" ), uno::UNO_QUERY );
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ SplitWindow* pSplitWindow = dynamic_cast< SplitWindow* >( VCLUnoHelper::GetWindow( m_xPanelWindow ));
+
+ if ( pSplitWindow )
+ {
+ // Set alignment
+ if (nPanel == PANEL_TOP)
+ pSplitWindow->SetAlign( WINDOWALIGN_TOP );
+ else if (nPanel == PANEL_BOTTOM)
+ pSplitWindow->SetAlign( WINDOWALIGN_BOTTOM );
+ else if (nPanel == PANEL_LEFT)
+ pSplitWindow->SetAlign( WINDOWALIGN_LEFT );
+ else
+ pSplitWindow->SetAlign( WINDOWALIGN_RIGHT );
+ }
+}
+
+Panel::~Panel()
+{
+}
+
+} // namespace framework
diff --git a/framework/source/layoutmanager/panel.hxx b/framework/source/layoutmanager/panel.hxx
new file mode 100755
index 000000000000..e183c97ed5da
--- /dev/null
+++ b/framework/source/layoutmanager/panel.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FRAMEWORK_LAYOUTMANAGER_PANEL_HXX_
+#define __FRAMEWORK_LAYOUTMANAGER_PANEL_HXX_
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include <macros/generic.hxx>
+#include <stdtypes.h>
+#include <properties.h>
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+
+#include <vcl/window.hxx>
+#include <vcl/splitwin.hxx>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework
+{
+
+enum PanelPosition
+{
+ PANEL_TOP,
+ PANEL_LEFT,
+ PANEL_RIGHT,
+ PANEL_BOTTOM,
+ PANEL_COUNT
+};
+
+class Panel
+{
+ public:
+ Panel( const css::uno::Reference< css::lang::XMultiServiceFactory >& rSMGR,
+ const css::uno::Reference< css::awt::XWindow >& rParent,
+ PanelPosition nPanel );
+ virtual ~Panel();
+
+ private:
+ css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+ css::uno::Reference< css::awt::XWindow > m_xPanelWindow;
+ PanelPosition m_nPanelPosition;
+};
+
+}
+
+#endif // __FRAMEWORK_LAYOUTMANAGER_PANEL_HXX_
diff --git a/framework/source/layoutmanager/panelmanager.cxx b/framework/source/layoutmanager/panelmanager.cxx
new file mode 100755
index 000000000000..4fd0a733b5a7
--- /dev/null
+++ b/framework/source/layoutmanager/panelmanager.cxx
@@ -0,0 +1,183 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_framework.hxx"
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include "panelmanager.hxx"
+#include "services.h"
+#include "services/modelwinservice.hxx"
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+
+#include <vcl/svapp.hxx>
+#include <toolkit/unohlp.hxx>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+using namespace ::com::sun::star;
+
+namespace framework
+{
+
+//_________________________________________________________________________________________________________________
+// non exported definitions
+//_________________________________________________________________________________________________________________
+
+//_________________________________________________________________________________________________________________
+// declarations
+//_________________________________________________________________________________________________________________
+
+
+PanelManager::PanelManager(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rSMGR,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame ) :
+ m_xSMGR( rSMGR ),
+ m_xFrame( rFrame )
+{
+ m_aPanels[PANEL_TOP] = 0;
+ m_aPanels[PANEL_BOTTOM] = 0;
+ m_aPanels[PANEL_LEFT] = 0;
+ m_aPanels[PANEL_RIGHT] = 0;
+}
+
+PanelManager::~PanelManager()
+{
+}
+
+//---------------------------------------------------------------------------------------------------------
+// Creation and layouting
+//---------------------------------------------------------------------------------------------------------
+bool PanelManager::createPanels()
+{
+ if ( m_xFrame.is() )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ uno::Reference< awt::XWindow > xWindow( m_xFrame->getContainerWindow(), uno::UNO_QUERY );
+ if ( xWindow.is() )
+ {
+ // destroy old panel windows
+ delete m_aPanels[PANEL_TOP ];
+ delete m_aPanels[PANEL_BOTTOM];
+ delete m_aPanels[PANEL_LEFT ];
+ delete m_aPanels[PANEL_RIGHT ];
+
+ m_aPanels[PANEL_TOP ] = new Panel( m_xSMGR, xWindow, PANEL_TOP );
+ m_aPanels[PANEL_BOTTOM] = new Panel( m_xSMGR, xWindow, PANEL_BOTTOM );
+ m_aPanels[PANEL_LEFT ] = new Panel( m_xSMGR, xWindow, PANEL_LEFT );
+ m_aPanels[PANEL_RIGHT ] = new Panel( m_xSMGR, xWindow, PANEL_RIGHT );
+ return true;
+ }
+ }
+
+ return false;
+}
+
+awt::Rectangle PanelManager::getPreferredSize() const
+{
+ return awt::Rectangle();
+}
+
+void PanelManager::layoutPanels( const awt::Rectangle /*newSize*/ )
+{
+}
+
+//---------------------------------------------------------------------------------------------------------
+// Panel functions
+//---------------------------------------------------------------------------------------------------------
+UIElement* PanelManager::findDockingWindow( const ::rtl::OUString& /*rResourceName*/ )
+{
+ return NULL;
+}
+
+bool PanelManager::addDockingWindow( const ::rtl::OUString& /*rResourceName*/, const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement >& /*xUIElement*/ )
+{
+ return false;
+}
+
+bool PanelManager::destroyDockingWindow( const ::rtl::OUString& /*rResourceName*/ )
+{
+ return false;
+}
+
+//---------------------------------------------------------------------------------------------------------
+// XDockableWindowListener
+//---------------------------------------------------------------------------------------------------------
+void SAL_CALL PanelManager::startDocking( const awt::DockingEvent& )
+throw (uno::RuntimeException)
+{
+}
+
+awt::DockingData SAL_CALL PanelManager::docking( const awt::DockingEvent& )
+throw (uno::RuntimeException)
+{
+ return awt::DockingData();
+}
+
+void SAL_CALL PanelManager::endDocking( const awt::EndDockingEvent& )
+throw (uno::RuntimeException)
+{
+}
+
+sal_Bool SAL_CALL PanelManager::prepareToggleFloatingMode( const lang::EventObject& )
+throw (uno::RuntimeException)
+{
+ return false;
+}
+
+void SAL_CALL PanelManager::toggleFloatingMode( const lang::EventObject& )
+throw (uno::RuntimeException)
+{
+}
+
+void SAL_CALL PanelManager::closed( const lang::EventObject& )
+throw (uno::RuntimeException)
+{
+}
+
+void SAL_CALL PanelManager::endPopupMode( const awt::EndPopupModeEvent& )
+throw (uno::RuntimeException)
+{
+}
+
+} // namespace framework
diff --git a/framework/source/layoutmanager/panelmanager.hxx b/framework/source/layoutmanager/panelmanager.hxx
new file mode 100755
index 000000000000..fd3e892414fa
--- /dev/null
+++ b/framework/source/layoutmanager/panelmanager.hxx
@@ -0,0 +1,109 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FRAMEWORK_LAYOUTMANAGER_PANELMANAGER_HXX_
+#define __FRAMEWORK_LAYOUTMANAGER_PANELMANAGER_HXX_
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include <threadhelp/threadhelpbase.hxx>
+#include <macros/generic.hxx>
+#include <macros/debug.hxx>
+#include <macros/xinterface.hxx>
+#include <macros/xtypeprovider.hxx>
+#include <macros/xserviceinfo.hxx>
+#include <general.h>
+#include <stdtypes.h>
+#include "panel.hxx"
+#include <uielement/uielement.hxx>
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/awt/XDockableWindowListener.hpp>
+#include <com/sun/star/frame/XFrame.hpp>
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+
+#include <cppuhelper/weak.hxx>
+#include <vcl/window.hxx>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework
+{
+
+class PanelManager : private ThreadHelpBase // Struct for right initalization of mutex member! Must be first of baseclasses.
+{
+ public:
+ PanelManager(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rSMGR,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame );
+ virtual ~PanelManager();
+
+ bool createPanels();
+ ::com::sun::star::awt::Rectangle getPreferredSize() const;
+ void layoutPanels( const ::com::sun::star::awt::Rectangle newSize );
+
+ UIElement* findDockingWindow( const ::rtl::OUString& rResourceName );
+ bool addDockingWindow( const ::rtl::OUString& rResourceName, const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement >& xUIElement );
+ bool destroyDockingWindow( const ::rtl::OUString& rResourceName );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XDockableWindowListener
+ //---------------------------------------------------------------------------------------------------------
+ virtual void SAL_CALL startDocking( const ::com::sun::star::awt::DockingEvent& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::DockingData SAL_CALL docking( const ::com::sun::star::awt::DockingEvent& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL endDocking( const ::com::sun::star::awt::EndDockingEvent& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL prepareToggleFloatingMode( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL toggleFloatingMode( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL closed( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL endPopupMode( const ::com::sun::star::awt::EndPopupModeEvent& e ) throw (::com::sun::star::uno::RuntimeException);
+
+ private:
+ Panel* m_aPanels[PANEL_COUNT];
+ css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+ css::uno::Reference< css::frame::XFrame > m_xFrame;
+};
+
+} // namespace framework
+
+#endif // __FRAMEWORK_LAYOUTMANAGER_PANELMANAGER_HXX_
diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.cxx b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
new file mode 100755
index 000000000000..559e7707ac36
--- /dev/null
+++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
@@ -0,0 +1,4305 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.cxx,v $
+ * $Revision: 1.72 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_framework.hxx"
+
+// my own includes
+#include <toolbarlayoutmanager.hxx>
+#include <helpers.hxx>
+#include <services.h>
+#include <classes/resource.hrc>
+#include <classes/fwkresid.hxx>
+#include <uiconfiguration/windowstateconfiguration.hxx>
+
+// interface includes
+#include <com/sun/star/awt/PosSize.hpp>
+#include <com/sun/star/ui/UIElementType.hpp>
+#include <com/sun/star/container/XNameReplace.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/ui/XUIElementSettings.hpp>
+#include <com/sun/star/ui/XUIFunctionListener.hpp>
+
+// other includes
+#include <unotools/cmdoptions.hxx>
+#include <toolkit/unohlp.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <vcl/i18nhelp.hxx>
+#include <vcl/dockingarea.hxx>
+#include <boost/bind.hpp>
+
+using namespace ::com::sun::star;
+
+namespace framework
+{
+
+ToolbarLayoutManager::ToolbarLayoutManager(
+ const uno::Reference< lang::XMultiServiceFactory >& xSMGR,
+ const uno::Reference< ui::XUIElementFactory >& xUIElementFactory,
+ ILayoutNotifications* pParentLayouter )
+ : ThreadHelpBase( &Application::GetSolarMutex() ),
+ m_xSMGR( xSMGR ),
+ m_xUIElementFactoryManager( xUIElementFactory ),
+ m_pParentLayouter( pParentLayouter ),
+ m_eDockOperation( DOCKOP_ON_COLROW ),
+ m_pAddonOptions( 0 ),
+ m_pGlobalSettings( 0 ),
+ m_bComponentAttached( false ),
+ m_bMustLayout( false ),
+ m_bLayoutDirty( false ),
+ m_bStoreWindowState( false ),
+ m_bGlobalSettings( false ),
+ m_bDockingInProgress( false ),
+ m_bVisible( true ),
+ m_bLayoutInProgress( false ),
+ m_bToolbarCreation( false ),
+ m_aFullAddonTbxPrefix( RTL_CONSTASCII_USTRINGPARAM( "private:resource/toolbar/addon_" )),
+ m_aCustomTbxPrefix( RTL_CONSTASCII_USTRINGPARAM( "custom_" )),
+ m_aCustomizeCmd( RTL_CONSTASCII_USTRINGPARAM( "ConfigureDialog" )),
+ m_aToolbarTypeString( RTL_CONSTASCII_USTRINGPARAM( UIRESOURCETYPE_TOOLBAR ))
+{
+ // initialize rectangles to zero values
+ setZeroRectangle( m_aDockingAreaOffsets );
+ setZeroRectangle( m_aDockingArea );
+
+ // create toolkit object
+ m_xToolkit = uno::Reference< awt::XToolkit >( m_xSMGR->createInstance( SERVICENAME_VCLTOOLKIT ), uno::UNO_QUERY );
+}
+
+ToolbarLayoutManager::~ToolbarLayoutManager()
+{
+}
+
+//---------------------------------------------------------------------------------------------------------
+// XInterface
+//---------------------------------------------------------------------------------------------------------
+void SAL_CALL ToolbarLayoutManager::acquire() throw()
+{
+ OWeakObject::acquire();
+}
+
+void SAL_CALL ToolbarLayoutManager::release() throw()
+{
+ OWeakObject::release();
+}
+
+uno::Any SAL_CALL ToolbarLayoutManager::queryInterface( const uno::Type & rType ) throw( uno::RuntimeException )
+{
+ uno::Any a = ::cppu::queryInterface( rType,
+ SAL_STATIC_CAST( awt::XDockableWindowListener*, this ),
+ SAL_STATIC_CAST( ui::XUIConfigurationListener*, this ),
+ SAL_STATIC_CAST( awt::XWindowListener*, this ));
+
+ if ( a.hasValue() )
+ return a;
+
+ return OWeakObject::queryInterface( rType );
+}
+
+void SAL_CALL ToolbarLayoutManager::disposing( const lang::EventObject& aEvent ) throw( uno::RuntimeException )
+{
+ if ( aEvent.Source == m_xFrame )
+ {
+ // Reset all internal references
+ reset();
+ implts_destroyDockingAreaWindows();
+ }
+}
+
+awt::Rectangle ToolbarLayoutManager::getDockingArea()
+{
+ WriteGuard aWriteLock( m_aLock );
+ Rectangle aNewDockingArea( m_aDockingArea );
+ aWriteLock.unlock();
+
+ if ( isLayoutDirty() )
+ aNewDockingArea = implts_calcDockingArea();
+
+ aWriteLock.lock();
+ m_aDockingArea = aNewDockingArea;
+ aWriteLock.unlock();
+
+ return putRectangleValueToAWT(aNewDockingArea);
+}
+
+void ToolbarLayoutManager::setDockingArea( const awt::Rectangle& rDockingArea )
+{
+ WriteGuard aWriteLock( m_aLock );
+ m_aDockingArea = putAWTToRectangle( rDockingArea );
+ m_bLayoutDirty = true;
+ aWriteLock.unlock();
+}
+
+void ToolbarLayoutManager::implts_setDockingAreaWindowSizes( const awt::Rectangle& rBorderSpace )
+{
+ ReadGuard aReadLock( m_aLock );
+ Rectangle aDockOffsets = m_aDockingAreaOffsets;
+ uno::Reference< awt::XWindow2 > xContainerWindow( m_xContainerWindow );
+ uno::Reference< awt::XWindow > xTopDockAreaWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_TOP] );
+ uno::Reference< awt::XWindow > xBottomDockAreaWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_BOTTOM] );
+ uno::Reference< awt::XWindow > xLeftDockAreaWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_LEFT] );
+ uno::Reference< awt::XWindow > xRightDockAreaWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_RIGHT] );
+ aReadLock.unlock();
+
+ uno::Reference< awt::XDevice > xDevice( xContainerWindow, uno::UNO_QUERY );
+
+ // Convert relativ size to output size.
+ awt::Rectangle aRectangle = xContainerWindow->getPosSize();
+ awt::DeviceInfo aInfo = xDevice->getInfo();
+ awt::Size aContainerClientSize = awt::Size( aRectangle.Width - aInfo.LeftInset - aInfo.RightInset ,
+ aRectangle.Height - aInfo.TopInset - aInfo.BottomInset );
+ long aStatusBarHeight = aDockOffsets.GetHeight();
+
+ sal_Int32 nLeftRightDockingAreaHeight( aContainerClientSize.Height );
+ if ( rBorderSpace.Y >= 0 )
+ {
+ // Top docking area window
+ xTopDockAreaWindow->setPosSize( 0, 0, aContainerClientSize.Width, rBorderSpace.Y, awt::PosSize::POSSIZE );
+ xTopDockAreaWindow->setVisible( sal_True );
+ nLeftRightDockingAreaHeight -= rBorderSpace.Y;
+ }
+
+ if ( rBorderSpace.Height >= 0 )
+ {
+ // Bottom docking area window
+ sal_Int32 nBottomPos = std::max( sal_Int32( aContainerClientSize.Height - rBorderSpace.Height - aStatusBarHeight ), sal_Int32( 0 ));
+ sal_Int32 nHeight = ( nBottomPos == 0 ) ? 0 : rBorderSpace.Height;
+
+ xBottomDockAreaWindow->setPosSize( 0, nBottomPos, aContainerClientSize.Width, nHeight, awt::PosSize::POSSIZE );
+ xBottomDockAreaWindow->setVisible( sal_True );
+ nLeftRightDockingAreaHeight -= nHeight;
+ }
+
+ nLeftRightDockingAreaHeight -= aStatusBarHeight;
+ if ( rBorderSpace.X >= 0 || nLeftRightDockingAreaHeight > 0 )
+ {
+ // Left docking area window
+ // We also have to change our right docking area window if the top or bottom area has changed. They have a higher priority!
+ sal_Int32 nHeight = std::max( sal_Int32( 0 ), sal_Int32( nLeftRightDockingAreaHeight ));
+
+ xLeftDockAreaWindow->setPosSize( 0, rBorderSpace.Y, rBorderSpace.X, nHeight, awt::PosSize::POSSIZE );
+ xLeftDockAreaWindow->setVisible( sal_True );
+ }
+ if ( rBorderSpace.Width >= 0 || nLeftRightDockingAreaHeight > 0 )
+ {
+ // Right docking area window
+ // We also have to change our right docking area window if the top or bottom area has changed. They have a higher priority!
+ sal_Int32 nLeftPos = std::max( sal_Int32( 0 ), sal_Int32( aContainerClientSize.Width - rBorderSpace.Width ));
+ sal_Int32 nHeight = std::max( sal_Int32( 0 ), sal_Int32( nLeftRightDockingAreaHeight ));
+ sal_Int32 nWidth = ( nLeftPos == 0 ) ? 0 : rBorderSpace.Width;
+
+ xRightDockAreaWindow->setPosSize( nLeftPos, rBorderSpace.Y, nWidth, nHeight, awt::PosSize::POSSIZE );
+ xRightDockAreaWindow->setVisible( sal_True );
+ }
+}
+
+bool ToolbarLayoutManager::isLayoutDirty()
+{
+ return m_bLayoutDirty;
+}
+
+void ToolbarLayoutManager::doLayout(const ::Size& aContainerSize)
+{
+ WriteGuard aWriteLock( m_aLock );
+ bool bLayoutInProgress( m_bLayoutInProgress );
+ m_bLayoutInProgress = true;
+ awt::Rectangle aDockingArea = putRectangleValueToAWT( m_aDockingArea );
+ aWriteLock.unlock();
+
+ if ( bLayoutInProgress )
+ return;
+
+ // Retrieve row/column dependent data from all docked user-interface elements
+ for ( sal_Int32 i = 0; i < DOCKINGAREAS_COUNT; i++ )
+ {
+ bool bReverse( isReverseOrderDockingArea( i ));
+ std::vector< SingleRowColumnWindowData > aRowColumnsWindowData;
+
+ implts_getDockingAreaElementInfos( (ui::DockingArea)i, aRowColumnsWindowData );
+
+ sal_Int32 nOffset( 0 );
+ const sal_uInt32 nCount = aRowColumnsWindowData.size();
+ for ( sal_uInt32 j = 0; j < nCount; ++j )
+ {
+ sal_uInt32 nIndex = bReverse ? nCount-j-1 : j;
+ implts_calcWindowPosSizeOnSingleRowColumn( i, nOffset, aRowColumnsWindowData[nIndex], aContainerSize );
+ nOffset += aRowColumnsWindowData[j].nStaticSize;
+ }
+ }
+
+ implts_setDockingAreaWindowSizes( aDockingArea );
+
+ aWriteLock.lock();
+ m_bLayoutDirty = false;
+ m_bLayoutInProgress = false;
+ aWriteLock.unlock();
+}
+
+bool ToolbarLayoutManager::implts_isParentWindowVisible() const
+{
+ ReadGuard aReadLock( m_aLock );
+ bool bVisible( false );
+ if ( m_xContainerWindow.is() )
+ bVisible = m_xContainerWindow->isVisible();
+
+ return bVisible;
+}
+
+Rectangle ToolbarLayoutManager::implts_calcDockingArea()
+{
+ ReadGuard aReadLock( m_aLock );
+ UIElementVector aWindowVector( m_aUIElements );
+ aReadLock.unlock();
+
+ Rectangle aBorderSpace;
+ sal_Int32 nCurrRowColumn( 0 );
+ sal_Int32 nCurrPos( 0 );
+ sal_Int32 nCurrDockingArea( ui::DockingArea_DOCKINGAREA_TOP );
+ std::vector< sal_Int32 > aRowColumnSizes[DOCKINGAREAS_COUNT];
+ UIElementVector::const_iterator pConstIter;
+
+ // initialize rectangle with zero values!
+ aBorderSpace.setWidth(0);
+ aBorderSpace.setHeight(0);
+
+ aRowColumnSizes[nCurrDockingArea].clear();
+ aRowColumnSizes[nCurrDockingArea].push_back( 0 );
+
+ for ( pConstIter = aWindowVector.begin(); pConstIter != aWindowVector.end(); pConstIter++ )
+ {
+ uno::Reference< ui::XUIElement > xUIElement( pConstIter->m_xUIElement, uno::UNO_QUERY );
+ if ( xUIElement.is() )
+ {
+ uno::Reference< awt::XWindow > xWindow( xUIElement->getRealInterface(), uno::UNO_QUERY );
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+ if ( xWindow.is() && xDockWindow.is() )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow && !xDockWindow->isFloating() && pConstIter->m_bVisible )
+ {
+ awt::Rectangle aPosSize = xWindow->getPosSize();
+ if ( pConstIter->m_aDockedData.m_nDockedArea != nCurrDockingArea )
+ {
+ nCurrDockingArea = pConstIter->m_aDockedData.m_nDockedArea;
+ nCurrRowColumn = 0;
+ nCurrPos = 0;
+ aRowColumnSizes[nCurrDockingArea].clear();
+ aRowColumnSizes[nCurrDockingArea].push_back( 0 );
+ }
+
+ if ( pConstIter->m_aDockedData.m_nDockedArea == nCurrDockingArea )
+ {
+ if ( isHorizontalDockingArea( pConstIter->m_aDockedData.m_nDockedArea ))
+ {
+ if ( pConstIter->m_aDockedData.m_aPos.Y() > nCurrPos )
+ {
+ ++nCurrRowColumn;
+ nCurrPos = pConstIter->m_aDockedData.m_aPos.Y();
+ aRowColumnSizes[nCurrDockingArea].push_back( 0 );
+ }
+
+ if ( aPosSize.Height > aRowColumnSizes[nCurrDockingArea][nCurrRowColumn] )
+ aRowColumnSizes[nCurrDockingArea][nCurrRowColumn] = aPosSize.Height;
+ }
+ else
+ {
+ if ( pConstIter->m_aDockedData.m_aPos.X() > nCurrPos )
+ {
+ ++nCurrRowColumn;
+ nCurrPos = pConstIter->m_aDockedData.m_aPos.X();
+ aRowColumnSizes[nCurrDockingArea].push_back( 0 );
+ }
+
+ if ( aPosSize.Width > aRowColumnSizes[nCurrDockingArea][nCurrRowColumn] )
+ aRowColumnSizes[nCurrDockingArea][nCurrRowColumn] = aPosSize.Width;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // Sum up max heights from every row/column
+ if ( !aWindowVector.empty() )
+ {
+ for ( sal_Int32 i = 0; i <= ui::DockingArea_DOCKINGAREA_RIGHT; i++ )
+ {
+ sal_Int32 nSize( 0 );
+ const sal_uInt32 nCount = aRowColumnSizes[i].size();
+ for ( sal_uInt32 j = 0; j < nCount; j++ )
+ nSize += aRowColumnSizes[i][j];
+
+ if ( i == ui::DockingArea_DOCKINGAREA_TOP )
+ aBorderSpace.Top() = nSize;
+ else if ( i == ui::DockingArea_DOCKINGAREA_BOTTOM )
+ aBorderSpace.Bottom() = nSize;
+ else if ( i == ui::DockingArea_DOCKINGAREA_LEFT )
+ aBorderSpace.Left() = nSize;
+ else
+ aBorderSpace.Right() = nSize;
+ }
+ }
+
+ return aBorderSpace;
+}
+
+void ToolbarLayoutManager::reset()
+{
+ WriteGuard aWriteLock( m_aLock );
+ uno::Reference< ui::XUIConfigurationManager > xModuleCfgMgr( m_xModuleCfgMgr );
+ uno::Reference< ui::XUIConfigurationManager > xDocCfgMgr( m_xDocCfgMgr );
+ m_xModuleCfgMgr.clear();
+ m_xDocCfgMgr.clear();
+ m_bComponentAttached = false;
+ aWriteLock.unlock();
+
+ destroyToolbars();
+ resetDockingArea();
+}
+
+void ToolbarLayoutManager::attach(
+ const uno::Reference< frame::XFrame >& xFrame,
+ const uno::Reference< ui::XUIConfigurationManager >& xModuleCfgMgr,
+ const uno::Reference< ui::XUIConfigurationManager >& xDocCfgMgr,
+ const uno::Reference< container::XNameAccess >& xPersistentWindowState )
+{
+ // reset toolbar manager if we lose our current frame
+ if ( m_xFrame.is() && m_xFrame != xFrame )
+ reset();
+
+ WriteGuard aWriteLock( m_aLock );
+ m_xFrame = xFrame;
+ m_xModuleCfgMgr = xModuleCfgMgr;
+ m_xDocCfgMgr = xDocCfgMgr;
+ m_xPersistentWindowState = xPersistentWindowState;
+ m_bComponentAttached = true;
+}
+
+void ToolbarLayoutManager::createStaticToolbars()
+{
+ resetDockingArea();
+ implts_createCustomToolBars();
+ implts_createAddonsToolBars();
+ implts_createNonContextSensitiveToolBars();
+ implts_sortUIElements();
+}
+
+bool ToolbarLayoutManager::requestToolbar( const ::rtl::OUString& rResourceURL )
+{
+ bool bNotify( false );
+ bool bMustCallCreate( false );
+ uno::Reference< ui::XUIElement > xUIElement;
+
+ UIElement aRequestedToolbar = impl_findToolbar( rResourceURL );
+ if ( aRequestedToolbar.m_aName != rResourceURL )
+ {
+ bMustCallCreate = true;
+ aRequestedToolbar.m_aName = rResourceURL;
+ aRequestedToolbar.m_aType = m_aToolbarTypeString;
+ aRequestedToolbar.m_xUIElement = xUIElement;
+ implts_readWindowStateData( rResourceURL, aRequestedToolbar );
+ }
+
+ xUIElement = aRequestedToolbar.m_xUIElement;
+ if ( !xUIElement.is() )
+ bMustCallCreate = true;
+
+ bool bCreateOrShowToolbar( aRequestedToolbar.m_bVisible & !aRequestedToolbar.m_bMasterHide );
+ uno::Reference< awt::XWindow2 > xContainerWindow( m_xContainerWindow, uno::UNO_QUERY );
+ if ( xContainerWindow.is() && aRequestedToolbar.m_bFloating )
+ bCreateOrShowToolbar &= bool( xContainerWindow->isActive());
+
+ if ( bCreateOrShowToolbar )
+ bNotify = ( bMustCallCreate ) ? createToolbar( rResourceURL ) : showToolbar( rResourceURL );
+
+ return bNotify;
+}
+
+bool ToolbarLayoutManager::createToolbar( const ::rtl::OUString& rResourceURL )
+{
+ bool bNotify( false );
+ uno::Reference< ui::XUIElement > xUITempElement;
+
+ implts_createToolBar( rResourceURL, bNotify, xUITempElement );
+ return bNotify;
+}
+
+bool ToolbarLayoutManager::destroyToolbar( const ::rtl::OUString& rResourceURL )
+{
+ const rtl::OUString aAddonTbResourceName( RTL_CONSTASCII_USTRINGPARAM( "private:resource/toolbar/addon_" ));
+
+ UIElementVector::iterator pIter;
+ uno::Reference< lang::XComponent > xComponent;
+
+ bool bNotify( false );
+ bool bMustBeSorted( false );
+ bool bMustLayouted( false );
+ bool bMustBeDestroyed( rResourceURL.indexOf( aAddonTbResourceName ) != 0 );
+
+ WriteGuard aWriteLock( m_aLock );
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ if ( pIter->m_aName == rResourceURL )
+ {
+ xComponent.set( pIter->m_xUIElement, uno::UNO_QUERY );
+ if ( bMustBeDestroyed )
+ pIter->m_xUIElement.clear();
+ else
+ pIter->m_bVisible = false;
+ break;
+ }
+ }
+ aWriteLock.unlock();
+
+ uno::Reference< ui::XUIElement > xUIElement( xComponent, uno::UNO_QUERY );
+ if ( xUIElement.is() )
+ {
+ uno::Reference< awt::XWindow > xWindow( xUIElement->getRealInterface(), uno::UNO_QUERY );
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+
+ if ( bMustBeDestroyed )
+ {
+ try
+ {
+ if ( xWindow.is() )
+ xWindow->removeWindowListener( uno::Reference< awt::XWindowListener >(
+ static_cast< OWeakObject * >( this ), uno::UNO_QUERY ));
+ }
+ catch( uno::Exception& ) {}
+
+ try
+ {
+ if ( xDockWindow.is() )
+ xDockWindow->removeDockableWindowListener( uno::Reference< awt::XDockableWindowListener >(
+ static_cast< OWeakObject * >( this ), uno::UNO_QUERY ));
+ }
+ catch ( uno::Exception& ) {}
+ }
+ else
+ {
+ if ( xWindow.is() )
+ xWindow->setVisible( sal_False );
+ bNotify = true;
+ }
+
+ if ( !xDockWindow->isFloating() )
+ bMustLayouted = true;
+ bMustBeSorted = true;
+ }
+
+ if ( bMustBeDestroyed )
+ {
+ if ( xComponent.is() )
+ xComponent->dispose();
+ bNotify = true;
+ }
+
+ if ( bMustLayouted )
+ implts_setLayoutDirty();
+
+ if ( bMustBeSorted )
+ implts_sortUIElements();
+
+ return bNotify;
+}
+
+void ToolbarLayoutManager::destroyToolbars()
+{
+ UIElementVector aUIElementVector;
+ implts_getUIElementVectorCopy( aUIElementVector );
+
+ WriteGuard aWriteLock( m_aLock );
+ m_aUIElements.clear();
+ m_bLayoutDirty = true;
+ aWriteLock.unlock();
+
+ UIElementVector::iterator pIter;
+ for ( pIter = aUIElementVector.begin(); pIter != aUIElementVector.end(); pIter++ )
+ {
+ uno::Reference< lang::XComponent > xComponent( pIter->m_xUIElement, uno::UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+}
+
+bool ToolbarLayoutManager::showToolbar( const ::rtl::OUString& rResourceURL )
+{
+ UIElement aUIElement = implts_findToolbar( rResourceURL );
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Window* pWindow = getWindowFromXUIElement( aUIElement.m_xUIElement );
+ if ( pWindow )
+ {
+ if ( !aUIElement.m_bFloating )
+ implts_setLayoutDirty();
+ else
+ pWindow->Show( TRUE, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+
+ aUIElement.m_bVisible = true;
+ implts_writeWindowStateData( aUIElement );
+ implts_setToolbar( aUIElement );
+ return true;
+ }
+
+ return false;
+}
+
+bool ToolbarLayoutManager::hideToolbar( const ::rtl::OUString& rResourceURL )
+{
+ UIElement aUIElement = implts_findToolbar( rResourceURL );
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Window* pWindow = getWindowFromXUIElement( aUIElement.m_xUIElement );
+ if ( pWindow )
+ {
+ pWindow->Show( FALSE );
+ if ( !aUIElement.m_bFloating )
+ implts_setLayoutDirty();
+
+ aUIElement.m_bVisible = false;
+ implts_writeWindowStateData( aUIElement );
+ implts_setToolbar( aUIElement );
+ return true;
+ }
+
+ return false;
+}
+
+void ToolbarLayoutManager::refreshToolbarsVisibility( bool bAutomaticToolbars )
+{
+ UIElementVector aUIElementVector;
+
+ ReadGuard aReadLock( m_aLock );
+ bool bVisible( m_bVisible );
+ aReadLock.unlock();
+
+ if ( !bVisible || !bAutomaticToolbars )
+ return;
+
+ implts_getUIElementVectorCopy( aUIElementVector );
+
+ UIElement aUIElement;
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ UIElementVector::iterator pIter;
+ for ( pIter = aUIElementVector.begin(); pIter != aUIElementVector.end(); pIter++ )
+ {
+ if ( implts_readWindowStateData( pIter->m_aName, aUIElement ) &&
+ ( pIter->m_bVisible != aUIElement.m_bVisible ) && !pIter->m_bMasterHide )
+ {
+ WriteGuard aWriteLock( m_aLock );
+ UIElement& rUIElement = impl_findToolbar( pIter->m_aName );
+ if ( rUIElement.m_aName == pIter->m_aName )
+ {
+ rUIElement.m_bVisible = aUIElement.m_bVisible;
+ implts_setLayoutDirty();
+ }
+ }
+ }
+}
+
+void ToolbarLayoutManager::setFloatingToolbarsVisibility( bool bVisible )
+{
+ UIElementVector aUIElementVector;
+ implts_getUIElementVectorCopy( aUIElementVector );
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ UIElementVector::iterator pIter;
+ for ( pIter = aUIElementVector.begin(); pIter != aUIElementVector.end(); pIter++ )
+ {
+ Window* pWindow = getWindowFromXUIElement( pIter->m_xUIElement );
+ if ( pWindow && pIter->m_bFloating )
+ {
+ if ( bVisible )
+ {
+ if ( pIter->m_bVisible && !pIter->m_bMasterHide )
+ pWindow->Show( TRUE, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ }
+ else
+ pWindow->Show( FALSE );
+ }
+ }
+}
+
+void ToolbarLayoutManager::setVisible( bool bVisible )
+{
+ UIElementVector aUIElementVector;
+ implts_getUIElementVectorCopy( aUIElementVector );
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ UIElementVector::iterator pIter;
+ for ( pIter = aUIElementVector.begin(); pIter != aUIElementVector.end(); pIter++ )
+ {
+ pIter->m_bMasterHide = !bVisible;
+ Window* pWindow = getWindowFromXUIElement( pIter->m_xUIElement );
+ if ( pWindow )
+ {
+ bool bSetVisible( pIter->m_bVisible & bVisible );
+ if ( !bSetVisible )
+ pWindow->Hide();
+ else
+ {
+ if ( pIter->m_bFloating )
+ pWindow->Show(true, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ else
+ implts_setLayoutDirty();
+ }
+ }
+ }
+
+ if ( !bVisible )
+ resetDockingArea();
+}
+
+bool ToolbarLayoutManager::dockToolbar( const ::rtl::OUString& rResourceURL, ui::DockingArea eDockingArea, const awt::Point& aPos )
+{
+ UIElement aUIElement = implts_findToolbar( rResourceURL );
+
+ if ( aUIElement.m_xUIElement.is() )
+ {
+ try
+ {
+ uno::Reference< awt::XWindow > xWindow( aUIElement.m_xUIElement->getRealInterface(), uno::UNO_QUERY );
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+ if ( xDockWindow.is() )
+ {
+ if ( eDockingArea != ui::DockingArea_DOCKINGAREA_DEFAULT )
+ aUIElement.m_aDockedData.m_nDockedArea = sal_Int16( eDockingArea );
+
+ if ( !isDefaultPos( aPos ))
+ aUIElement.m_aDockedData.m_aPos = ::Point( aPos.X, aPos.Y );
+
+ if ( !xDockWindow->isFloating() )
+ {
+ Window* pWindow( 0 );
+ ToolBox* pToolBox( 0 );
+
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+ {
+ pToolBox = (ToolBox *)pWindow;
+
+ // We have to set the alignment of the toolbox. It's possible that the toolbox is moved from a
+ // horizontal to a vertical docking area!
+ pToolBox->SetAlign( ImplConvertAlignment( aUIElement.m_aDockedData.m_nDockedArea ));
+ }
+ }
+
+ if ( hasDefaultPosValue( aUIElement.m_aDockedData.m_aPos ))
+ {
+ // Docking on its default position without a preset position -
+ // we have to find a good place for it.
+ ::Size aSize;
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ {
+ if ( pToolBox )
+ aSize = pToolBox->CalcWindowSizePixel( 1, ImplConvertAlignment( aUIElement.m_aDockedData.m_nDockedArea ) );
+ else
+ aSize = pWindow->GetSizePixel();
+ }
+
+ ::Point aPixelPos;
+ ::Point aDockPos;
+ implts_findNextDockingPos((ui::DockingArea)aUIElement.m_aDockedData.m_nDockedArea, aSize, aDockPos, aPixelPos );
+ aUIElement.m_aDockedData.m_aPos = aDockPos;
+ }
+ }
+
+ implts_setToolbar( aUIElement );
+
+ if ( xDockWindow->isFloating() )
+ {
+ // ATTENTION: This will call toggleFloatingMode() via notifications which
+ // sets the floating member of the UIElement correctly!
+ xDockWindow->setFloatingMode( sal_False );
+ }
+ else
+ {
+ implts_writeWindowStateData( aUIElement );
+ implts_sortUIElements();
+
+ if ( aUIElement.m_bVisible )
+ implts_setLayoutDirty();
+ }
+ return true;
+ }
+ }
+ catch ( lang::DisposedException& ) {}
+ }
+
+ return false;
+}
+
+bool ToolbarLayoutManager::dockAllToolbars()
+{
+ std::vector< ::rtl::OUString > aToolBarNameVector;
+
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
+
+ ReadGuard aReadLock( m_aLock );
+ UIElementVector::iterator pIter;
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ if ( pIter->m_aType.equalsAscii( "toolbar" ) && pIter->m_xUIElement.is() &&
+ pIter->m_bFloating && pIter->m_bVisible )
+ aToolBarNameVector.push_back( pIter->m_aName );
+ }
+ aReadLock.unlock();
+
+ bool bResult(true);
+ const sal_uInt32 nCount = aToolBarNameVector.size();
+ for ( sal_uInt32 i = 0; i < nCount; ++i )
+ {
+ awt::Point aPoint;
+ aPoint.X = aPoint.Y = SAL_MAX_INT32;
+ bResult &= dockToolbar( aToolBarNameVector[i], ui::DockingArea_DOCKINGAREA_DEFAULT, aPoint );
+ }
+
+ return bResult;
+}
+
+long ToolbarLayoutManager::childWindowEvent( VclSimpleEvent* pEvent )
+{
+ // To enable toolbar controllers to change their image when a sub-toolbar function
+ // is activated, we need this mechanism. We have NO connection between these toolbars
+ // anymore!
+ if ( pEvent && pEvent->ISA( VclWindowEvent ))
+ {
+ if ( pEvent->GetId() == VCLEVENT_TOOLBOX_SELECT )
+ {
+ ::rtl::OUString aToolbarName;
+ ::rtl::OUString aCommand;
+ ToolBox* pToolBox = getToolboxPtr( ((VclWindowEvent*)pEvent)->GetWindow() );
+
+ if ( pToolBox )
+ {
+ aToolbarName = retrieveToolbarNameFromHelpURL( pToolBox );
+ USHORT nId = pToolBox->GetCurItemId();
+ if ( nId > 0 )
+ aCommand = pToolBox->GetItemCommand( nId );
+ }
+
+ if (( aToolbarName.getLength() > 0 ) && ( aCommand.getLength() > 0 ))
+ {
+ ReadGuard aReadLock( m_aLock );
+ ::std::vector< uno::Reference< ui::XUIFunctionListener > > aListenerArray;
+ UIElementVector::iterator pIter;
+
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ if ( pIter->m_xUIElement.is() )
+ {
+ uno::Reference< ui::XUIFunctionListener > xListener( pIter->m_xUIElement, uno::UNO_QUERY );
+ if ( xListener.is() )
+ aListenerArray.push_back( xListener );
+ }
+ }
+ aReadLock.unlock();
+
+ const sal_uInt32 nCount = aListenerArray.size();
+ for ( sal_uInt32 i = 0; i < nCount; ++i )
+ {
+ try { aListenerArray[i]->functionExecute( aToolbarName, aCommand ); }
+ catch ( uno::RuntimeException& ) { throw; }
+ catch ( uno::Exception& ) {}
+ }
+ }
+ }
+ else if ( pEvent->GetId() == VCLEVENT_TOOLBOX_FORMATCHANGED )
+ {
+ if ( !implts_isToolbarCreationActive() )
+ {
+ ToolBox* pToolBox = getToolboxPtr( ((VclWindowEvent*)pEvent)->GetWindow() );
+ if ( pToolBox )
+ {
+ ::rtl::OUString aToolbarName = retrieveToolbarNameFromHelpURL( pToolBox );
+ if ( aToolbarName.getLength() > 0 )
+ {
+ ::rtl::OUStringBuffer aBuf(100);
+ aBuf.appendAscii( "private:resource/toolbar/" );
+ aBuf.append( aToolbarName );
+
+ UIElement aToolbar = implts_findToolbar( aBuf.makeStringAndClear() );
+ if ( aToolbar.m_xUIElement.is() && !aToolbar.m_bFloating )
+ {
+ implts_setLayoutDirty();
+ m_pParentLayouter->requestLayout( ILayoutNotifications::HINT_TOOLBARSPACE_HAS_CHANGED );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return 1;
+}
+
+void ToolbarLayoutManager::resetDockingArea()
+{
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< awt::XWindow > xTopDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_TOP] );
+ uno::Reference< awt::XWindow > xLeftDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_LEFT] );
+ uno::Reference< awt::XWindow > xRightDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_RIGHT] );
+ uno::Reference< awt::XWindow > xBottomDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_BOTTOM] );
+ aReadLock.unlock();
+
+ if ( xTopDockingWindow.is() )
+ xTopDockingWindow->setPosSize( 0, 0, 0, 0, awt::PosSize::POSSIZE );
+ if ( xLeftDockingWindow.is() )
+ xLeftDockingWindow->setPosSize( 0, 0, 0, 0, awt::PosSize::POSSIZE );
+ if ( xRightDockingWindow.is() )
+ xRightDockingWindow->setPosSize( 0, 0, 0, 0, awt::PosSize::POSSIZE );
+ if ( xBottomDockingWindow.is() )
+ xBottomDockingWindow->setPosSize( 0, 0, 0, 0, awt::PosSize::POSSIZE );
+}
+
+void ToolbarLayoutManager::setParentWindow(
+ const uno::Reference< awt::XWindowPeer >& xParentWindow )
+{
+ static const char DOCKINGAREASTRING[] = "dockingarea";
+
+ uno::Reference< awt::XWindow > xTopDockWindow = uno::Reference< awt::XWindow >( createToolkitWindow( m_xSMGR, xParentWindow, DOCKINGAREASTRING ), uno::UNO_QUERY );
+ uno::Reference< awt::XWindow > xLeftDockWindow = uno::Reference< awt::XWindow >( createToolkitWindow( m_xSMGR, xParentWindow, DOCKINGAREASTRING ), uno::UNO_QUERY );
+ uno::Reference< awt::XWindow > xRightDockWindow = uno::Reference< awt::XWindow >( createToolkitWindow( m_xSMGR, xParentWindow, DOCKINGAREASTRING ), uno::UNO_QUERY );
+ uno::Reference< awt::XWindow > xBottomDockWindow = uno::Reference< awt::XWindow >( createToolkitWindow( m_xSMGR, xParentWindow, DOCKINGAREASTRING ), uno::UNO_QUERY );
+
+ WriteGuard aWriteLock( m_aLock );
+ m_xContainerWindow = uno::Reference< awt::XWindow2 >( xParentWindow, uno::UNO_QUERY );
+ m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_TOP] = xTopDockWindow;
+ m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_LEFT] = xLeftDockWindow;
+ m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_RIGHT] = xRightDockWindow;
+ m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_BOTTOM] = xBottomDockWindow;
+ aWriteLock.unlock();
+
+ if ( xParentWindow.is() )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ ::DockingAreaWindow* pWindow = dynamic_cast< ::DockingAreaWindow* >(VCLUnoHelper::GetWindow( xTopDockWindow ) );
+ if( pWindow ) pWindow->SetAlign( WINDOWALIGN_TOP );
+ pWindow = dynamic_cast< ::DockingAreaWindow* >(VCLUnoHelper::GetWindow( xBottomDockWindow ) );
+ if( pWindow ) pWindow->SetAlign( WINDOWALIGN_BOTTOM );
+ pWindow = dynamic_cast< ::DockingAreaWindow* >(VCLUnoHelper::GetWindow( xLeftDockWindow ) );
+ if( pWindow ) pWindow->SetAlign( WINDOWALIGN_LEFT );
+ pWindow = dynamic_cast< ::DockingAreaWindow* >(VCLUnoHelper::GetWindow( xRightDockWindow ) );
+ if( pWindow ) pWindow->SetAlign( WINDOWALIGN_RIGHT );
+ implts_reparentToolbars();
+ }
+ else
+ {
+ destroyToolbars();
+ resetDockingArea();
+ }
+}
+
+void ToolbarLayoutManager::setDockingAreaOffsets( const ::Rectangle aOffsets )
+{
+ WriteGuard aWriteLock( m_aLock );
+ m_aDockingAreaOffsets = aOffsets;
+ m_bLayoutDirty = true;
+}
+
+rtl::OUString ToolbarLayoutManager::implts_generateGenericAddonToolbarTitle( sal_Int32 nNumber ) const
+{
+ String aAddonGenericTitle;
+
+ aAddonGenericTitle = String( FwkResId( STR_TOOLBAR_TITLE_ADDON ));
+ const vcl::I18nHelper& rI18nHelper = Application::GetSettings().GetUILocaleI18nHelper();
+
+ String aNumStr = rI18nHelper.GetNum( nNumber, 0, FALSE, FALSE );
+ aAddonGenericTitle.SearchAndReplaceAscii( "%num%", aNumStr );
+
+ return rtl::OUString( aAddonGenericTitle );
+}
+
+void ToolbarLayoutManager::implts_createAddonsToolBars()
+{
+ WriteGuard aWriteLock( m_aLock );
+ if ( !m_pAddonOptions )
+ m_pAddonOptions = new AddonsOptions;
+
+ uno::Reference< ui::XUIElementFactory > xUIElementFactory( m_xUIElementFactoryManager );
+ uno::Reference< frame::XFrame > xFrame( m_xFrame );
+ aWriteLock.unlock();
+
+ uno::Reference< frame::XModel > xModel( impl_getModelFromFrame( xFrame ));
+ if ( implts_isPreviewModel( xModel ))
+ return; // no addon toolbars for preview frame!
+
+ UIElementVector aUIElementVector;
+ uno::Sequence< uno::Sequence< beans::PropertyValue > > aAddonToolBarData;
+ uno::Reference< ui::XUIElement > xUIElement;
+
+ sal_uInt32 nCount = m_pAddonOptions->GetAddonsToolBarCount();
+ ::rtl::OUString aAddonsToolBarStaticName( m_aFullAddonTbxPrefix );
+ ::rtl::OUString aElementType( RTL_CONSTASCII_USTRINGPARAM( "toolbar" ));
+
+ uno::Sequence< beans::PropertyValue > aPropSeq( 2 );
+ aPropSeq[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Frame" ));
+ aPropSeq[0].Value <<= xFrame;
+ aPropSeq[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationData" ));
+ for ( sal_uInt32 i = 0; i < nCount; i++ )
+ {
+ ::rtl::OUString aAddonToolBarName( aAddonsToolBarStaticName + m_pAddonOptions->GetAddonsToolbarResourceName(i) );
+ aAddonToolBarData = m_pAddonOptions->GetAddonsToolBarPart( i );
+ aPropSeq[1].Value <<= aAddonToolBarData;
+
+ UIElement aElement = implts_findToolbar( aAddonToolBarName );
+
+ // #i79828
+ // It's now possible that we are called more than once. Be sure to not create
+ // add-on toolbars more than once!
+ if ( aElement.m_xUIElement.is() )
+ continue;
+
+ try
+ {
+ xUIElement = xUIElementFactory->createUIElement( aAddonToolBarName, aPropSeq );
+ if ( xUIElement.is() )
+ {
+ uno::Reference< awt::XDockableWindow > xDockWindow( xUIElement->getRealInterface(), uno::UNO_QUERY );
+ if ( xDockWindow.is() )
+ {
+ try
+ {
+ xDockWindow->addDockableWindowListener( uno::Reference< awt::XDockableWindowListener >( static_cast< OWeakObject * >( this ), uno::UNO_QUERY ));
+ xDockWindow->enableDocking( sal_True );
+ uno::Reference< awt::XWindow > xWindow( xDockWindow, uno::UNO_QUERY );
+ if ( xWindow.is() )
+ xWindow->addWindowListener( uno::Reference< awt::XWindowListener >( static_cast< OWeakObject * >( this ), uno::UNO_QUERY ));
+ }
+ catch ( uno::Exception& ) {}
+ }
+
+ ::rtl::OUString aGenericAddonTitle = implts_generateGenericAddonToolbarTitle( i+1 );
+
+ if ( aElement.m_aName.getLength() > 0 )
+ {
+ // Reuse a local entry so we are able to use the latest
+ // UI changes for this document.
+ implts_setElementData( aElement, xDockWindow );
+ aElement.m_xUIElement = xUIElement;
+ if ( aElement.m_aUIName.getLength() == 0 )
+ {
+ aElement.m_aUIName = aGenericAddonTitle;
+ implts_writeWindowStateData( aElement );
+ }
+ }
+ else
+ {
+ // Create new UI element and try to read its state data
+ UIElement aNewToolbar( aAddonToolBarName, aElementType, xUIElement );
+ aNewToolbar.m_bFloating = true;
+ implts_readWindowStateData( aAddonToolBarName, aNewToolbar );
+ implts_setElementData( aNewToolbar, xDockWindow );
+ if ( aNewToolbar.m_aUIName.getLength() == 0 )
+ {
+ aNewToolbar.m_aUIName = aGenericAddonTitle;
+ implts_writeWindowStateData( aNewToolbar );
+ }
+ implts_insertToolbar( aNewToolbar );
+ }
+
+ uno::Reference< awt::XWindow > xWindow( xDockWindow, uno::UNO_QUERY );
+ if ( xWindow.is() )
+ {
+ // Set generic title for add-on toolbar
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow->GetText().Len() == 0 )
+ pWindow->SetText( aGenericAddonTitle );
+ if ( pWindow->GetType() == WINDOW_TOOLBOX )
+ {
+ ToolBox* pToolbar = (ToolBox *)pWindow;
+ pToolbar->SetMenuType();
+ }
+ }
+ }
+ }
+ catch ( container::NoSuchElementException& ) {}
+ catch ( lang::IllegalArgumentException& ) {}
+ }
+}
+
+void ToolbarLayoutManager::implts_createCustomToolBars()
+{
+ ReadGuard aReadLock( m_aLock );
+ if ( !m_bComponentAttached )
+ return;
+
+ uno::Reference< ui::XUIElementFactory > xUIElementFactory( m_xUIElementFactoryManager );
+ uno::Reference< frame::XFrame > xFrame( m_xFrame );
+ uno::Reference< frame::XModel > xModel;
+ uno::Reference< ui::XUIConfigurationManager > xModuleCfgMgr( m_xModuleCfgMgr, uno::UNO_QUERY );
+ uno::Reference< ui::XUIConfigurationManager > xDocCfgMgr( m_xDocCfgMgr, uno::UNO_QUERY );
+ aReadLock.unlock();
+
+ if ( xFrame.is() )
+ {
+ xModel = impl_getModelFromFrame( xFrame );
+ if ( implts_isPreviewModel( xModel ))
+ return; // no custom toolbars for preview frame!
+
+ uno::Sequence< uno::Sequence< beans::PropertyValue > > aTbxSeq;
+ if ( xDocCfgMgr.is() )
+ {
+ aTbxSeq = xDocCfgMgr->getUIElementsInfo( ui::UIElementType::TOOLBAR );
+ implts_createCustomToolBars( aTbxSeq ); // first create all document based toolbars
+ }
+ if ( xModuleCfgMgr.is() )
+ {
+ aTbxSeq = xModuleCfgMgr->getUIElementsInfo( ui::UIElementType::TOOLBAR );
+ implts_createCustomToolBars( aTbxSeq ); // second create module based toolbars
+ }
+ }
+}
+
+void ToolbarLayoutManager::implts_createNonContextSensitiveToolBars()
+{
+ ReadGuard aReadLock( m_aLock );
+
+ if ( !m_xPersistentWindowState.is() || !m_xFrame.is() || !m_bComponentAttached )
+ return;
+
+ uno::Reference< frame::XFrame > xFrame( m_xFrame );
+ uno::Reference< ui::XUIElementFactory > xUIElementFactory( m_xUIElementFactoryManager );
+ uno::Reference< container::XNameAccess > xPersistentWindowState( m_xPersistentWindowState );
+ aReadLock.unlock();
+
+ if ( implts_isPreviewModel( impl_getModelFromFrame( xFrame )))
+ return;
+
+ std::vector< rtl::OUString > aMakeVisibleToolbars;
+
+ try
+ {
+ uno::Sequence< ::rtl::OUString > aToolbarNames = xPersistentWindowState->getElementNames();
+
+ if ( aToolbarNames.getLength() > 0 )
+ {
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
+ ::rtl::OUString aName;
+
+ uno::Reference< ui::XUIElement > xUIElement;
+ aMakeVisibleToolbars.reserve(aToolbarNames.getLength());
+
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ WriteGuard aWriteLock( m_aLock );
+
+ const rtl::OUString* pTbNames = aToolbarNames.getConstArray();
+ for ( sal_Int32 i = 0; i < aToolbarNames.getLength(); i++ )
+ {
+ aName = pTbNames[i];
+ parseResourceURL( aName, aElementType, aElementName );
+
+ // Check that we only create:
+ // - Toolbars (the statusbar is also member of the persistent window state)
+ // - Not custom toolbars, there are created with their own method (implts_createCustomToolbars)
+ if ( aElementType.equalsIgnoreAsciiCaseAscii( "toolbar" ) && aElementName.indexOf( m_aCustomTbxPrefix ) == -1 )
+ {
+ UIElement aNewToolbar = implts_findToolbar( aName );
+ bool bFound = ( aNewToolbar.m_aName == aName );
+ if ( !bFound )
+ implts_readWindowStateData( aName, aNewToolbar );
+
+ if ( aNewToolbar.m_bVisible && !aNewToolbar.m_bContextSensitive )
+ {
+ if ( !bFound )
+ implts_insertToolbar( aNewToolbar );
+ aMakeVisibleToolbars.push_back( aName );
+ }
+ }
+ }
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ }
+ }
+ catch ( uno::RuntimeException& ) { throw; }
+ catch ( uno::Exception& ) {}
+
+ if ( !aMakeVisibleToolbars.empty() )
+ ::std::for_each( aMakeVisibleToolbars.begin(), aMakeVisibleToolbars.end(),::boost::bind( &ToolbarLayoutManager::requestToolbar, this,_1 ));
+}
+
+void ToolbarLayoutManager::implts_createCustomToolBars( const uno::Sequence< uno::Sequence< beans::PropertyValue > >& aTbxSeqSeq )
+{
+ const uno::Sequence< beans::PropertyValue >* pTbxSeq = aTbxSeqSeq.getConstArray();
+ for ( sal_Int32 i = 0; i < aTbxSeqSeq.getLength(); i++ )
+ {
+ const uno::Sequence< beans::PropertyValue >& rTbxSeq = pTbxSeq[i];
+ ::rtl::OUString aTbxResName;
+ ::rtl::OUString aTbxTitle;
+ for ( sal_Int32 j = 0; j < rTbxSeq.getLength(); j++ )
+ {
+ if ( rTbxSeq[j].Name.equalsAscii( "ResourceURL" ))
+ rTbxSeq[j].Value >>= aTbxResName;
+ else if ( rTbxSeq[j].Name.equalsAscii( "UIName" ))
+ rTbxSeq[j].Value >>= aTbxTitle;
+ }
+
+ // Only create custom toolbars. Their name have to start with "custom_"!
+ if ( aTbxResName.getLength() > 0 && aTbxResName.indexOf( m_aCustomTbxPrefix ) != -1 )
+ implts_createCustomToolBar( aTbxResName, aTbxTitle );
+ }
+}
+
+void ToolbarLayoutManager::implts_createCustomToolBar( const rtl::OUString& aTbxResName, const rtl::OUString& aTitle )
+{
+ if ( aTbxResName.getLength() > 0 )
+ {
+ bool bNotify( false );
+ uno::Reference< ui::XUIElement > xUIElement;
+ implts_createToolBar( aTbxResName, bNotify, xUIElement );
+
+ if ( aTitle && xUIElement.is() )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+
+ Window* pWindow = getWindowFromXUIElement( xUIElement );
+ if ( pWindow )
+ pWindow->SetText( aTitle );
+ }
+ }
+}
+
+void ToolbarLayoutManager::implts_reparentToolbars()
+{
+ WriteGuard aWriteLock( m_aLock );
+ UIElementVector aUIElementVector = m_aUIElements;
+ Window* pContainerWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
+ Window* pTopDockWindow = VCLUnoHelper::GetWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_TOP] );
+ Window* pBottomDockWindow = VCLUnoHelper::GetWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_BOTTOM] );
+ Window* pLeftDockWindow = VCLUnoHelper::GetWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_LEFT] );
+ Window* pRightDockWindow = VCLUnoHelper::GetWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_RIGHT] );
+ aWriteLock.unlock();
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ if ( pContainerWindow )
+ {
+ UIElementVector::iterator pIter;
+ for ( pIter = aUIElementVector.begin(); pIter != aUIElementVector.end(); pIter++ )
+ {
+ uno::Reference< ui::XUIElement > xUIElement( pIter->m_xUIElement );
+ if ( xUIElement.is() )
+ {
+ uno::Reference< awt::XWindow > xWindow;
+ try
+ {
+ // We have to retreive the window reference with try/catch as it is
+ // possible that all elements have been disposed!
+ xWindow = uno::Reference< awt::XWindow >( xUIElement->getRealInterface(), uno::UNO_QUERY );
+ }
+ catch ( uno::RuntimeException& ) { throw; }
+ catch ( uno::Exception& ) {}
+
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow )
+ {
+ // Reparent our child windows acording to their current state.
+ if ( pIter->m_bFloating )
+ pWindow->SetParent( pContainerWindow );
+ else
+ {
+ if ( pIter->m_aDockedData.m_nDockedArea == ui::DockingArea_DOCKINGAREA_TOP )
+ pWindow->SetParent( pTopDockWindow );
+ else if ( pIter->m_aDockedData.m_nDockedArea == ui::DockingArea_DOCKINGAREA_BOTTOM )
+ pWindow->SetParent( pBottomDockWindow );
+ else if ( pIter->m_aDockedData.m_nDockedArea == ui::DockingArea_DOCKINGAREA_LEFT )
+ pWindow->SetParent( pLeftDockWindow );
+ else
+ pWindow->SetParent( pRightDockWindow );
+ }
+ }
+ }
+ }
+ }
+}
+
+void ToolbarLayoutManager::implts_setToolbarCreation( bool bStart )
+{
+ WriteGuard aWriteLock( m_aLock );
+ m_bToolbarCreation = bStart;
+}
+
+bool ToolbarLayoutManager::implts_isToolbarCreationActive()
+{
+ ReadGuard aReadLock( m_aLock );
+ return m_bToolbarCreation;
+}
+
+void ToolbarLayoutManager::implts_createToolBar( const ::rtl::OUString& aName, bool& bNotify, uno::Reference< ui::XUIElement >& rUIElement )
+{
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< frame::XFrame > xFrame( m_xFrame );
+ uno::Reference< awt::XWindow2 > xContainerWindow( m_xContainerWindow );
+ aReadLock.unlock();
+
+ bNotify = false;
+
+ if ( !xFrame.is() || !xContainerWindow.is() )
+ return;
+
+ UIElement aToolbarElement = implts_findToolbar( aName );
+ if ( !aToolbarElement.m_xUIElement.is() )
+ {
+ uno::Reference< ui::XUIElement > xUIElement = implts_createElement( aName );
+
+ bool bVisible( false );
+ bool bFloating( false );
+ if ( xUIElement.is() )
+ {
+ rUIElement = xUIElement;
+
+ uno::Reference< awt::XWindow > xWindow( xUIElement->getRealInterface(), uno::UNO_QUERY );
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+ if ( xDockWindow.is() && xWindow.is() )
+ {
+ try
+ {
+ xDockWindow->addDockableWindowListener( uno::Reference< awt::XDockableWindowListener >(
+ static_cast< OWeakObject * >( this ), uno::UNO_QUERY ));
+ xWindow->addWindowListener( uno::Reference< awt::XWindowListener >(
+ static_cast< OWeakObject * >( this ), uno::UNO_QUERY ));
+ xDockWindow->enableDocking( sal_True );
+ }
+ catch ( uno::Exception& ) {}
+ }
+
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ WriteGuard aWriteLock( m_aLock );
+
+ UIElement& rElement = impl_findToolbar( aName );
+ if ( rElement.m_aName.getLength() > 0 )
+ {
+ // Reuse a local entry so we are able to use the latest
+ // UI changes for this document.
+ implts_setElementData( rElement, xDockWindow );
+ rElement.m_xUIElement = xUIElement;
+ bVisible = rElement.m_bVisible;
+ bFloating = rElement.m_bFloating;
+ }
+ else
+ {
+ // Create new UI element and try to read its state data
+ UIElement aNewToolbar( aName, m_aToolbarTypeString, xUIElement );
+ implts_readWindowStateData( aName, aNewToolbar );
+ implts_setElementData( aNewToolbar, xDockWindow );
+ implts_insertToolbar( aNewToolbar );
+ bVisible = aNewToolbar.m_bVisible;
+ bFloating = rElement.m_bFloating;
+ }
+ aWriteLock.unlock();
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+
+ // set toolbar menu style according to customize command state
+ SvtCommandOptions aCmdOptions;
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+ {
+ ToolBox* pToolbar = (ToolBox *)pWindow;
+ USHORT nMenuType = pToolbar->GetMenuType();
+ if ( aCmdOptions.Lookup( SvtCommandOptions::CMDOPTION_DISABLED, m_aCustomizeCmd ))
+ pToolbar->SetMenuType( nMenuType & ~TOOLBOX_MENUTYPE_CUSTOMIZE );
+ else
+ pToolbar->SetMenuType( nMenuType | TOOLBOX_MENUTYPE_CUSTOMIZE );
+ }
+ bNotify = true;
+
+ implts_sortUIElements();
+
+ if ( bVisible && !bFloating )
+ implts_setLayoutDirty();
+ }
+ }
+}
+
+uno::Reference< ui::XUIElement > ToolbarLayoutManager::implts_createElement( const ::rtl::OUString& aName )
+{
+ uno::Reference< ui::XUIElement > xUIElement;
+
+ ReadGuard aReadLock( m_aLock );
+ uno::Sequence< beans::PropertyValue > aPropSeq( 2 );
+ aPropSeq[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Frame" ));
+ aPropSeq[0].Value <<= m_xFrame;
+ aPropSeq[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Persistent" ));
+ aPropSeq[1].Value <<= true;
+ uno::Reference< ui::XUIElementFactory > xUIElementFactory( m_xUIElementFactoryManager );
+ aReadLock.unlock();
+
+ implts_setToolbarCreation( true );
+ try
+ {
+ if ( xUIElementFactory.is() )
+ xUIElement = xUIElementFactory->createUIElement( aName, aPropSeq );
+ }
+ catch ( container::NoSuchElementException& ) {}
+ catch ( lang::IllegalArgumentException& ) {}
+ implts_setToolbarCreation( false );
+
+ return xUIElement;
+}
+
+void ToolbarLayoutManager::implts_setElementData( UIElement& rElement, const uno::Reference< awt::XDockableWindow >& rDockWindow )
+{
+ ReadGuard aReadLock( m_aLock );
+ bool bShowElement( rElement.m_bVisible && !rElement.m_bMasterHide && implts_isParentWindowVisible() );
+ aReadLock.unlock();
+
+ uno::Reference< awt::XDockableWindow > xDockWindow( rDockWindow );
+ uno::Reference< awt::XWindow2 > xWindow( xDockWindow, uno::UNO_QUERY );
+
+ Window* pWindow( 0 );
+ ToolBox* pToolBox( 0 );
+
+ if ( xDockWindow.is() && xWindow.is() )
+ {
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow )
+ {
+ String aText = pWindow->GetText();
+ if ( aText.Len() == 0 )
+ pWindow->SetText( rElement.m_aUIName );
+ if ( rElement.m_bNoClose )
+ pWindow->SetStyle( pWindow->GetStyle() & ~WB_CLOSEABLE );
+ if ( pWindow->GetType() == WINDOW_TOOLBOX )
+ pToolBox = (ToolBox *)pWindow;
+ }
+ if ( pToolBox )
+ {
+ if (( rElement.m_nStyle < 0 ) || ( rElement.m_nStyle > BUTTON_SYMBOLTEXT ))
+ rElement.m_nStyle = BUTTON_SYMBOL;
+ pToolBox->SetButtonType( (ButtonType)rElement.m_nStyle );
+ if ( rElement.m_bNoClose )
+ pToolBox->SetFloatStyle( pToolBox->GetFloatStyle() & ~WB_CLOSEABLE );
+ }
+ }
+
+ if ( rElement.m_bFloating )
+ {
+ if ( pWindow )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ String aText = pWindow->GetText();
+ if ( aText.Len() == 0 )
+ pWindow->SetText( rElement.m_aUIName );
+ }
+
+ ::Point aPos( rElement.m_aFloatingData.m_aPos.X(),
+ rElement.m_aFloatingData.m_aPos.Y() );
+ bool bWriteData( false );
+ bool bUndefPos = hasDefaultPosValue( rElement.m_aFloatingData.m_aPos );
+ bool bSetSize = ( rElement.m_aFloatingData.m_aSize.Width() != 0 &&
+ rElement.m_aFloatingData.m_aSize.Height() != 0 );
+ xDockWindow->setFloatingMode( sal_True );
+ if ( bUndefPos )
+ {
+ aPos = implts_findNextCascadeFloatingPos();
+ rElement.m_aFloatingData.m_aPos = aPos; // set new cascaded position
+ bWriteData = true;
+ }
+
+ if( bSetSize )
+ xWindow->setOutputSize( AWTSize( rElement.m_aFloatingData.m_aSize ) );
+ else
+ {
+ if( pToolBox )
+ {
+ // set an optimal initial floating size
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ ::Size aSize( pToolBox->CalcFloatingWindowSizePixel() );
+ pToolBox->SetOutputSizePixel( aSize );
+ }
+ }
+
+ // #i60882# IMPORTANT: Set position after size as it is
+ // possible that we position some part of the toolbar
+ // outside of the desktop. A default constructed toolbar
+ // always has one line. Now VCL automatically
+ // position the toolbar back into the desktop. Therefore
+ // we resize the toolbar with the new (wrong) position.
+ // To fix this problem we have to set the size BEFORE the
+ // position.
+ xWindow->setPosSize( aPos.X(), aPos.Y(), 0, 0, awt::PosSize::POS );
+
+ if ( bWriteData )
+ implts_writeWindowStateData( rElement );
+ if ( bShowElement && pWindow )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pWindow->Show( sal_True, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ }
+ }
+ else
+ {
+ bool bSetSize( false );
+ ::Point aDockPos;
+ ::Point aPixelPos;
+ ::Size aSize;
+
+ if ( pToolBox )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pToolBox->SetAlign( ImplConvertAlignment(rElement.m_aDockedData.m_nDockedArea ) );
+ pToolBox->SetLineCount( 1 );
+ xDockWindow->setFloatingMode( sal_False );
+ if ( rElement.m_aDockedData.m_bLocked )
+ xDockWindow->lock();
+ aSize = pToolBox->CalcWindowSizePixel();
+ bSetSize = true;
+
+ if ( isDefaultPos( rElement.m_aDockedData.m_aPos ))
+ {
+ implts_findNextDockingPos( (ui::DockingArea)rElement.m_aDockedData.m_nDockedArea, aSize, aDockPos, aPixelPos );
+ rElement.m_aDockedData.m_aPos = aDockPos;
+ }
+ }
+
+ xWindow->setPosSize( aPixelPos.X(), aPixelPos.Y(), 0, 0, awt::PosSize::POS );
+ if( bSetSize )
+ xWindow->setOutputSize( AWTSize( aSize) );
+
+ if ( pWindow )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ if ( !bShowElement )
+ pWindow->Hide();
+ }
+ }
+ }
+}
+
+void ToolbarLayoutManager::implts_destroyDockingAreaWindows()
+{
+ WriteGuard aWriteLock( m_aLock );
+ uno::Reference< awt::XWindow > xTopDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_TOP] );
+ uno::Reference< awt::XWindow > xLeftDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_LEFT] );
+ uno::Reference< awt::XWindow > xRightDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_RIGHT] );
+ uno::Reference< awt::XWindow > xBottomDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_BOTTOM] );
+ m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_TOP].clear();
+ m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_LEFT].clear();
+ m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_RIGHT].clear();
+ m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_BOTTOM].clear();
+ aWriteLock.unlock();
+
+ // destroy windows
+ xTopDockingWindow->dispose();
+ xLeftDockingWindow->dispose();
+ xRightDockingWindow->dispose();
+ xBottomDockingWindow->dispose();
+}
+
+//---------------------------------------------------------------------------------------------------------
+// persistence methods
+//---------------------------------------------------------------------------------------------------------
+
+sal_Bool ToolbarLayoutManager::implts_readWindowStateData( const rtl::OUString& aName, UIElement& rElementData )
+{
+ WriteGuard aWriteLock( m_aLock );
+ uno::Reference< container::XNameAccess > xPersistentWindowState( m_xPersistentWindowState );
+ bool bGetSettingsState( false );
+ aWriteLock.unlock();
+
+ if ( xPersistentWindowState.is() )
+ {
+ aWriteLock.lock();
+ bool bGlobalSettings( m_bGlobalSettings );
+ GlobalSettings* pGlobalSettings( 0 );
+ if ( m_pGlobalSettings == 0 )
+ {
+ m_pGlobalSettings = new GlobalSettings( m_xSMGR );
+ bGetSettingsState = true;
+ }
+ pGlobalSettings = m_pGlobalSettings;
+ aWriteLock.unlock();
+
+ try
+ {
+ uno::Sequence< beans::PropertyValue > aWindowState;
+ if ( xPersistentWindowState->getByName( aName ) >>= aWindowState )
+ {
+ sal_Bool bValue( sal_False );
+ for ( sal_Int32 n = 0; n < aWindowState.getLength(); n++ )
+ {
+ if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_DOCKED ))
+ {
+ if ( aWindowState[n].Value >>= bValue )
+ rElementData.m_bFloating = !bValue;
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_VISIBLE ))
+ {
+ if ( aWindowState[n].Value >>= bValue )
+ rElementData.m_bVisible = bValue;
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_DOCKINGAREA ))
+ {
+ ui::DockingArea eDockingArea;
+ if ( aWindowState[n].Value >>= eDockingArea )
+ rElementData.m_aDockedData.m_nDockedArea = sal_Int16( eDockingArea );
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_DOCKPOS ))
+ {
+ awt::Point aPoint;
+ if ( aWindowState[n].Value >>= aPoint )
+ {
+ rElementData.m_aDockedData.m_aPos.X() = aPoint.X;
+ rElementData.m_aDockedData.m_aPos.Y() = aPoint.Y;
+ }
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_POS ))
+ {
+ awt::Point aPoint;
+ if ( aWindowState[n].Value >>= aPoint )
+ {
+ rElementData.m_aFloatingData.m_aPos.X() = aPoint.X;
+ rElementData.m_aFloatingData.m_aPos.Y() = aPoint.Y;
+ }
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_SIZE ))
+ {
+ awt::Size aSize;
+ if ( aWindowState[n].Value >>= aSize )
+ {
+ rElementData.m_aFloatingData.m_aSize.Width() = aSize.Width;
+ rElementData.m_aFloatingData.m_aSize.Height() = aSize.Height;
+ }
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_UINAME ))
+ aWindowState[n].Value >>= rElementData.m_aUIName;
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_STYLE ))
+ {
+ sal_Int32 nStyle = 0;
+ if ( aWindowState[n].Value >>= nStyle )
+ rElementData.m_nStyle = sal_Int16( nStyle );
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_LOCKED ))
+ {
+ if ( aWindowState[n].Value >>= bValue )
+ rElementData.m_aDockedData.m_bLocked = bValue;
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_CONTEXT ))
+ {
+ if ( aWindowState[n].Value >>= bValue )
+ rElementData.m_bContextSensitive = bValue;
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_NOCLOSE ))
+ {
+ if ( aWindowState[n].Value >>= bValue )
+ rElementData.m_bNoClose = bValue;
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_CONTEXTACTIVE ))
+ {
+ if ( aWindowState[n].Value >>= bValue )
+ rElementData.m_bContextActive = bValue;
+ }
+ else if ( aWindowState[n].Name.equalsAscii( WINDOWSTATE_PROPERTY_SOFTCLOSE ))
+ {
+ if ( aWindowState[n].Value >>= bValue )
+ rElementData.m_bSoftClose = bValue;
+ }
+ }
+ }
+
+ // oversteer values with global settings
+ if ( pGlobalSettings && ( bGetSettingsState || bGlobalSettings ))
+ {
+ if ( pGlobalSettings->HasStatesInfo( GlobalSettings::UIELEMENT_TYPE_TOOLBAR ))
+ {
+ WriteGuard aWriteLock2( m_aLock );
+ m_bGlobalSettings = true;
+ aWriteLock2.unlock();
+
+ uno::Any aValue;
+ sal_Bool bValue = sal_Bool();
+ if ( pGlobalSettings->GetStateInfo( GlobalSettings::UIELEMENT_TYPE_TOOLBAR,
+ GlobalSettings::STATEINFO_LOCKED,
+ aValue ))
+ aValue >>= rElementData.m_aDockedData.m_bLocked;
+ if ( pGlobalSettings->GetStateInfo( GlobalSettings::UIELEMENT_TYPE_TOOLBAR,
+ GlobalSettings::STATEINFO_DOCKED,
+ aValue ))
+ {
+ if ( aValue >>= bValue )
+ rElementData.m_bFloating = !bValue;
+ }
+ }
+ }
+
+ return sal_True;
+ }
+ catch ( container::NoSuchElementException& ) {}
+ }
+
+ return sal_False;
+}
+
+void ToolbarLayoutManager::implts_writeWindowStateData( const UIElement& rElementData )
+{
+ WriteGuard aWriteLock( m_aLock );
+ uno::Reference< container::XNameAccess > xPersistentWindowState( m_xPersistentWindowState );
+ m_bStoreWindowState = true; // set flag to determine that we triggered the notification
+ aWriteLock.unlock();
+
+ bool bPersistent( sal_False );
+ uno::Reference< beans::XPropertySet > xPropSet( rElementData.m_xUIElement, uno::UNO_QUERY );
+ if ( xPropSet.is() )
+ {
+ try
+ {
+ // Check persistent flag of the user interface element
+ xPropSet->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Persistent" ))) >>= bPersistent;
+ }
+ catch ( beans::UnknownPropertyException )
+ {
+ bPersistent = true; // Non-configurable elements should at least store their dimension/position
+ }
+ catch ( lang::WrappedTargetException ) {}
+ }
+
+ if ( bPersistent && xPersistentWindowState.is() )
+ {
+ try
+ {
+ uno::Sequence< beans::PropertyValue > aWindowState( 8 );
+
+ aWindowState[0].Name = ::rtl::OUString::createFromAscii( WINDOWSTATE_PROPERTY_DOCKED );
+ aWindowState[0].Value = ::uno::makeAny( sal_Bool( !rElementData.m_bFloating ));
+ aWindowState[1].Name = ::rtl::OUString::createFromAscii( WINDOWSTATE_PROPERTY_VISIBLE );
+ aWindowState[1].Value = uno::makeAny( sal_Bool( rElementData.m_bVisible ));
+ aWindowState[2].Name = ::rtl::OUString::createFromAscii( WINDOWSTATE_PROPERTY_DOCKINGAREA );
+ aWindowState[2].Value = uno::makeAny( static_cast< ui::DockingArea >( rElementData.m_aDockedData.m_nDockedArea ) );
+
+ awt::Point aPos;
+ aPos.X = rElementData.m_aDockedData.m_aPos.X();
+ aPos.Y = rElementData.m_aDockedData.m_aPos.Y();
+ aWindowState[3].Name = ::rtl::OUString::createFromAscii( WINDOWSTATE_PROPERTY_DOCKPOS );
+ aWindowState[3].Value <<= aPos;
+
+ aPos.X = rElementData.m_aFloatingData.m_aPos.X();
+ aPos.Y = rElementData.m_aFloatingData.m_aPos.Y();
+ aWindowState[4].Name = ::rtl::OUString::createFromAscii( WINDOWSTATE_PROPERTY_POS );
+ aWindowState[4].Value <<= aPos;
+
+ awt::Size aSize;
+ aSize.Width = rElementData.m_aFloatingData.m_aSize.Width();
+ aSize.Height = rElementData.m_aFloatingData.m_aSize.Height();
+ aWindowState[5].Name = ::rtl::OUString::createFromAscii( WINDOWSTATE_PROPERTY_SIZE );
+ aWindowState[5].Value <<= aSize;
+ aWindowState[6].Name = ::rtl::OUString::createFromAscii( WINDOWSTATE_PROPERTY_UINAME );
+ aWindowState[6].Value = uno::makeAny( rElementData.m_aUIName );
+ aWindowState[7].Name = ::rtl::OUString::createFromAscii( WINDOWSTATE_PROPERTY_LOCKED );
+ aWindowState[7].Value = uno::makeAny( rElementData.m_aDockedData.m_bLocked );
+
+ ::rtl::OUString aName = rElementData.m_aName;
+ if ( xPersistentWindowState->hasByName( aName ))
+ {
+ uno::Reference< container::XNameReplace > xReplace( xPersistentWindowState, uno::UNO_QUERY );
+ xReplace->replaceByName( aName, uno::makeAny( aWindowState ));
+ }
+ else
+ {
+ uno::Reference< container::XNameContainer > xInsert( xPersistentWindowState, uno::UNO_QUERY );
+ xInsert->insertByName( aName, uno::makeAny( aWindowState ));
+ }
+ }
+ catch ( uno::Exception& ) {}
+ }
+
+ // Reset flag
+ aWriteLock.lock();
+ m_bStoreWindowState = false;
+ aWriteLock.unlock();
+}
+
+void ToolbarLayoutManager::implts_writeNewWindowStateData( const rtl::OUString aName, const uno::Reference< awt::XWindow >& xWindow )
+{
+ bool bVisible( false );
+ bool bFloating( true );
+ awt::Rectangle aPos;
+ awt::Size aSize;
+
+ if ( xWindow.is() )
+ {
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+ if ( xDockWindow.is() )
+ bFloating = xDockWindow->isFloating();
+
+ uno::Reference< awt::XWindow2 > xWindow2( xWindow, uno::UNO_QUERY );
+ if( xWindow2.is() )
+ {
+ aPos = xWindow2->getPosSize();
+ aSize = xWindow2->getOutputSize(); // always use output size for consistency
+ bVisible = xWindow2->isVisible();
+ }
+
+ WriteGuard aWriteLock( m_aLock );
+ UIElement& rUIElement = impl_findToolbar( aName );
+ if ( rUIElement.m_xUIElement.is() )
+ {
+ rUIElement.m_bVisible = bVisible;
+ rUIElement.m_bFloating = bFloating;
+ if ( bFloating )
+ {
+ rUIElement.m_aFloatingData.m_aPos = ::Point( aPos.X, aPos.Y );
+ rUIElement.m_aFloatingData.m_aSize = ::Size( aSize.Width, aSize.Height );
+ }
+ }
+ implts_writeWindowStateData( rUIElement );
+ aWriteLock.unlock();
+ }
+}
+
+/******************************************************************************
+ LOOKUP PART FOR TOOLBARS
+******************************************************************************/
+
+UIElement& ToolbarLayoutManager::impl_findToolbar( const rtl::OUString& aName )
+{
+ static UIElement aEmptyElement;
+ UIElementVector::iterator pIter;
+
+ ReadGuard aReadLock( m_aLock );
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ if ( pIter->m_aName == aName )
+ return *pIter;
+ }
+
+ return aEmptyElement;
+}
+
+UIElement ToolbarLayoutManager::implts_findToolbar( const rtl::OUString& aName )
+{
+ ReadGuard aReadLock( m_aLock );
+ UIElement aElement = impl_findToolbar( aName );
+ aReadLock.unlock();
+
+ return aElement;
+}
+
+UIElement ToolbarLayoutManager::implts_findToolbar( const uno::Reference< uno::XInterface >& xToolbar )
+{
+ UIElement aToolbar;
+ UIElementVector::const_iterator pIter;
+
+ ReadGuard aReadLock( m_aLock );
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ if ( pIter->m_xUIElement.is() )
+ {
+ uno::Reference< uno::XInterface > xIfac( pIter->m_xUIElement->getRealInterface(), uno::UNO_QUERY );
+ if ( xIfac == xToolbar )
+ {
+ aToolbar = *pIter;
+ break;
+ }
+ }
+ }
+
+ return aToolbar;
+}
+
+uno::Reference< awt::XWindow > ToolbarLayoutManager::implts_getXWindow( const ::rtl::OUString& aName )
+{
+ UIElementVector::iterator pIter;
+ uno::Reference< awt::XWindow > xWindow;
+
+ ReadGuard aReadLock( m_aLock );
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ if ( pIter->m_aName == aName && pIter->m_xUIElement.is() )
+ {
+ xWindow = uno::Reference< awt::XWindow >( pIter->m_xUIElement->getRealInterface(), uno::UNO_QUERY );
+ break;
+ }
+ }
+
+ return xWindow;
+}
+
+Window* ToolbarLayoutManager::implts_getWindow( const ::rtl::OUString& aName )
+{
+ uno::Reference< awt::XWindow > xWindow = implts_getXWindow( aName );
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+
+ return pWindow;
+}
+
+bool ToolbarLayoutManager::implts_insertToolbar( const UIElement& rUIElement )
+{
+ UIElement aTempData;
+ bool bFound( false );
+ bool bResult( false );
+
+ aTempData = implts_findToolbar( rUIElement.m_aName );
+ if ( aTempData.m_aName == rUIElement.m_aName )
+ bFound = true;
+
+ if ( !bFound )
+ {
+ WriteGuard aWriteLock( m_aLock );
+ m_aUIElements.push_back( rUIElement );
+ bResult = true;
+ }
+
+ return bResult;
+}
+
+void ToolbarLayoutManager::implts_setToolbar( const UIElement& rUIElement )
+{
+ WriteGuard aWriteLock( m_aLock );
+ UIElement& rData = impl_findToolbar( rUIElement.m_aName );
+ if ( rData.m_aName == rUIElement.m_aName )
+ rData = rUIElement;
+ else
+ m_aUIElements.push_back( rUIElement );
+}
+
+/******************************************************************************
+ LAYOUT CODE PART FOR TOOLBARS
+******************************************************************************/
+
+::Point ToolbarLayoutManager::implts_findNextCascadeFloatingPos()
+{
+ const sal_Int32 nHotZoneX = 50;
+ const sal_Int32 nHotZoneY = 50;
+ const sal_Int32 nCascadeIndentX = 15;
+ const sal_Int32 nCascadeIndentY = 15;
+
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< awt::XWindow2 > xContainerWindow( m_xContainerWindow );
+ uno::Reference< awt::XWindow > xTopDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_TOP] );
+ uno::Reference< awt::XWindow > xLeftDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_LEFT] );
+ aReadLock.unlock();
+
+ ::Point aStartPos( nCascadeIndentX, nCascadeIndentY );
+ ::Point aCurrPos( aStartPos );
+ awt::Rectangle aRect;
+
+ Window* pContainerWindow( 0 );
+ if ( xContainerWindow.is() )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+ if ( pContainerWindow )
+ aStartPos = pContainerWindow->OutputToScreenPixel( aStartPos );
+ }
+
+ // Determine size of top and left docking area
+ awt::Rectangle aTopRect( xTopDockingWindow->getPosSize() );
+ awt::Rectangle aLeftRect( xLeftDockingWindow->getPosSize() );
+
+ aStartPos.X() += aLeftRect.Width + nCascadeIndentX;
+ aStartPos.Y() += aTopRect.Height + nCascadeIndentY;
+ aCurrPos = aStartPos;
+
+ // Try to find a cascaded position for the new floating window
+ UIElementVector::const_iterator pIter;
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ if ( pIter->m_xUIElement.is() )
+ {
+ uno::Reference< awt::XDockableWindow > xDockWindow( pIter->m_xUIElement->getRealInterface(), uno::UNO_QUERY );
+ uno::Reference< awt::XWindow > xWindow( xDockWindow, uno::UNO_QUERY );
+ if ( xDockWindow.is() && xDockWindow->isFloating() )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow && pWindow->IsVisible() )
+ {
+ awt::Rectangle aFloatRect = xWindow->getPosSize();
+ if ((( aFloatRect.X - nHotZoneX ) <= aCurrPos.X() ) &&
+ ( aFloatRect.X >= aCurrPos.X() ) &&
+ (( aFloatRect.Y - nHotZoneY ) <= aCurrPos.Y() ) &&
+ ( aFloatRect.Y >= aCurrPos.Y() ))
+ {
+ aCurrPos.X() = aFloatRect.X + nCascadeIndentX;
+ aCurrPos.Y() = aFloatRect.Y + nCascadeIndentY;
+ }
+ }
+ }
+ }
+ }
+
+ return aCurrPos;
+}
+
+void ToolbarLayoutManager::implts_sortUIElements()
+{
+ WriteGuard aWriteLock( m_aLock );
+ UIElementVector::iterator pIterStart = m_aUIElements.begin();
+ UIElementVector::iterator pIterEnd = m_aUIElements.end();
+
+ std::stable_sort( pIterStart, pIterEnd ); // first created element should first
+
+ // We have to reset our temporary flags.
+ UIElementVector::iterator pIter;
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ pIter->m_bUserActive = sal_False;
+ aWriteLock.unlock();
+}
+
+void ToolbarLayoutManager::implts_getUIElementVectorCopy( UIElementVector& rCopy )
+{
+ ReadGuard aReadLock( m_aLock );
+ rCopy = m_aUIElements;
+}
+
+::Size ToolbarLayoutManager::implts_getTopBottomDockingAreaSizes()
+{
+ ::Size aSize;
+ uno::Reference< awt::XWindow > xTopDockingAreaWindow;
+ uno::Reference< awt::XWindow > xBottomDockingAreaWindow;
+
+ ReadGuard aReadLock( m_aLock );
+ xTopDockingAreaWindow = m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_TOP];
+ xBottomDockingAreaWindow = m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_BOTTOM];
+ aReadLock.unlock();
+
+ if ( xTopDockingAreaWindow.is() )
+ aSize.Width() = xTopDockingAreaWindow->getPosSize().Height;
+ if ( xBottomDockingAreaWindow.is() )
+ aSize.Height() = xBottomDockingAreaWindow->getPosSize().Height;
+
+ return aSize;
+}
+
+void ToolbarLayoutManager::implts_getDockingAreaElementInfos( ui::DockingArea eDockingArea, std::vector< SingleRowColumnWindowData >& rRowColumnsWindowData )
+{
+ std::vector< UIElement > aWindowVector;
+
+ if (( eDockingArea < ui::DockingArea_DOCKINGAREA_TOP ) || ( eDockingArea > ui::DockingArea_DOCKINGAREA_RIGHT ))
+ eDockingArea = ui::DockingArea_DOCKINGAREA_TOP;
+
+ uno::Reference< awt::XWindow > xDockAreaWindow;
+
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ ReadGuard aReadLock( m_aLock );
+ aWindowVector.reserve(m_aUIElements.size());
+ xDockAreaWindow = m_xDockAreaWindows[eDockingArea];
+ UIElementVector::iterator pIter;
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ if ( pIter->m_aDockedData.m_nDockedArea == eDockingArea && pIter->m_bVisible && !pIter->m_bFloating )
+ {
+ uno::Reference< ui::XUIElement > xUIElement( pIter->m_xUIElement );
+ if ( xUIElement.is() )
+ {
+ uno::Reference< awt::XWindow > xWindow( xUIElement->getRealInterface(), uno::UNO_QUERY );
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+ if ( xDockWindow.is() )
+ {
+ // docked windows
+ aWindowVector.push_back( *pIter );
+ }
+ }
+ }
+ }
+ aReadLock.unlock();
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+
+ rRowColumnsWindowData.clear();
+
+ // Collect data from windows that are on the same row/column
+ sal_Int32 j;
+ sal_Int32 nIndex( 0 );
+ sal_Int32 nLastPos( 0 );
+ sal_Int32 nCurrPos( -1 );
+ sal_Int32 nLastRowColPixelPos( 0 );
+ awt::Rectangle aDockAreaRect;
+
+ if ( xDockAreaWindow.is() )
+ aDockAreaRect = xDockAreaWindow->getPosSize();
+
+ if ( eDockingArea == ui::DockingArea_DOCKINGAREA_TOP )
+ nLastRowColPixelPos = 0;
+ else if ( eDockingArea == ui::DockingArea_DOCKINGAREA_BOTTOM )
+ nLastRowColPixelPos = aDockAreaRect.Height;
+ else if ( eDockingArea == ui::DockingArea_DOCKINGAREA_LEFT )
+ nLastRowColPixelPos = 0;
+ else
+ nLastRowColPixelPos = aDockAreaRect.Width;
+
+ const sal_uInt32 nCount = aWindowVector.size();
+ for ( j = 0; j < sal_Int32( nCount); j++ )
+ {
+ const UIElement& rElement = aWindowVector[j];
+ uno::Reference< awt::XWindow > xWindow;
+ uno::Reference< ui::XUIElement > xUIElement( rElement.m_xUIElement );
+ awt::Rectangle aPosSize;
+
+ if ( !lcl_checkUIElement(xUIElement,aPosSize,xWindow) )
+ continue;
+ if ( isHorizontalDockingArea( eDockingArea ))
+ {
+ if ( nCurrPos == -1 )
+ {
+ nCurrPos = rElement.m_aDockedData.m_aPos.Y();
+ nLastPos = 0;
+
+ SingleRowColumnWindowData aRowColumnWindowData;
+ aRowColumnWindowData.nRowColumn = nCurrPos;
+ rRowColumnsWindowData.push_back( aRowColumnWindowData );
+ }
+
+ sal_Int32 nSpace( 0 );
+ if ( rElement.m_aDockedData.m_aPos.Y() != nCurrPos )
+ {
+ if ( eDockingArea == ui::DockingArea_DOCKINGAREA_TOP )
+ nLastRowColPixelPos += rRowColumnsWindowData[nIndex].nStaticSize;
+ else
+ nLastRowColPixelPos -= rRowColumnsWindowData[nIndex].nStaticSize;
+ ++nIndex;
+ nLastPos = 0;
+ nCurrPos = rElement.m_aDockedData.m_aPos.Y();
+ SingleRowColumnWindowData aRowColumnWindowData;
+ aRowColumnWindowData.nRowColumn = nCurrPos;
+ rRowColumnsWindowData.push_back( aRowColumnWindowData );
+ }
+
+ // Calc space before an element and store it
+ nSpace = ( rElement.m_aDockedData.m_aPos.X() - nLastPos );
+ if ( rElement.m_aDockedData.m_aPos.X() >= nLastPos )
+ {
+ rRowColumnsWindowData[nIndex].nSpace += nSpace;
+ nLastPos = rElement.m_aDockedData.m_aPos.X() + aPosSize.Width;
+ }
+ else
+ {
+ nSpace = 0;
+ nLastPos += aPosSize.Width;
+ }
+ rRowColumnsWindowData[nIndex].aRowColumnSpace.push_back( nSpace );
+
+ rRowColumnsWindowData[nIndex].aRowColumnWindows.push_back( xWindow );
+ rRowColumnsWindowData[nIndex].aUIElementNames.push_back( rElement.m_aName );
+ rRowColumnsWindowData[nIndex].aRowColumnWindowSizes.push_back(
+ awt::Rectangle( rElement.m_aDockedData.m_aPos.X(),
+ rElement.m_aDockedData.m_aPos.Y(),
+ aPosSize.Width,
+ aPosSize.Height ));
+ if ( rRowColumnsWindowData[nIndex].nStaticSize < aPosSize.Height )
+ rRowColumnsWindowData[nIndex].nStaticSize = aPosSize.Height;
+ if ( eDockingArea == ui::DockingArea_DOCKINGAREA_TOP )
+ rRowColumnsWindowData[nIndex].aRowColumnRect = awt::Rectangle( 0, nLastRowColPixelPos,
+ aDockAreaRect.Width, aPosSize.Height );
+ else
+ rRowColumnsWindowData[nIndex].aRowColumnRect = awt::Rectangle( 0, ( nLastRowColPixelPos - aPosSize.Height ),
+ aDockAreaRect.Width, aPosSize.Height );
+ rRowColumnsWindowData[nIndex].nVarSize += aPosSize.Width + nSpace;
+ }
+ else
+ {
+ if ( nCurrPos == -1 )
+ {
+ nCurrPos = rElement.m_aDockedData.m_aPos.X();
+ nLastPos = 0;
+
+ SingleRowColumnWindowData aRowColumnWindowData;
+ aRowColumnWindowData.nRowColumn = nCurrPos;
+ rRowColumnsWindowData.push_back( aRowColumnWindowData );
+ }
+
+ sal_Int32 nSpace( 0 );
+ if ( rElement.m_aDockedData.m_aPos.X() != nCurrPos )
+ {
+ if ( eDockingArea == ui::DockingArea_DOCKINGAREA_LEFT )
+ nLastRowColPixelPos += rRowColumnsWindowData[nIndex].nStaticSize;
+ else
+ nLastRowColPixelPos -= rRowColumnsWindowData[nIndex].nStaticSize;
+ ++nIndex;
+ nLastPos = 0;
+ nCurrPos = rElement.m_aDockedData.m_aPos.X();
+ SingleRowColumnWindowData aRowColumnWindowData;
+ aRowColumnWindowData.nRowColumn = nCurrPos;
+ rRowColumnsWindowData.push_back( aRowColumnWindowData );
+ }
+
+ // Calc space before an element and store it
+ nSpace = ( rElement.m_aDockedData.m_aPos.Y() - nLastPos );
+ if ( rElement.m_aDockedData.m_aPos.Y() > nLastPos )
+ {
+ rRowColumnsWindowData[nIndex].nSpace += nSpace;
+ nLastPos = rElement.m_aDockedData.m_aPos.Y() + aPosSize.Height;
+ }
+ else
+ {
+ nSpace = 0;
+ nLastPos += aPosSize.Height;
+ }
+ rRowColumnsWindowData[nIndex].aRowColumnSpace.push_back( nSpace );
+
+ rRowColumnsWindowData[nIndex].aRowColumnWindows.push_back( xWindow );
+ rRowColumnsWindowData[nIndex].aUIElementNames.push_back( rElement.m_aName );
+ rRowColumnsWindowData[nIndex].aRowColumnWindowSizes.push_back(
+ awt::Rectangle( rElement.m_aDockedData.m_aPos.X(),
+ rElement.m_aDockedData.m_aPos.Y(),
+ aPosSize.Width,
+ aPosSize.Height ));
+ if ( rRowColumnsWindowData[nIndex].nStaticSize < aPosSize.Width )
+ rRowColumnsWindowData[nIndex].nStaticSize = aPosSize.Width;
+ if ( eDockingArea == ui::DockingArea_DOCKINGAREA_LEFT )
+ rRowColumnsWindowData[nIndex].aRowColumnRect = awt::Rectangle( nLastRowColPixelPos, 0,
+ aPosSize.Width, aDockAreaRect.Height );
+ else
+ rRowColumnsWindowData[nIndex].aRowColumnRect = awt::Rectangle( ( nLastRowColPixelPos - aPosSize.Width ), 0,
+ aPosSize.Width, aDockAreaRect.Height );
+ rRowColumnsWindowData[nIndex].nVarSize += aPosSize.Height + nSpace;
+ }
+ }
+}
+
+void ToolbarLayoutManager::implts_getDockingAreaElementInfoOnSingleRowCol( ui::DockingArea eDockingArea, sal_Int32 nRowCol, SingleRowColumnWindowData& rRowColumnWindowData )
+{
+ std::vector< UIElement > aWindowVector;
+
+ if (( eDockingArea < ui::DockingArea_DOCKINGAREA_TOP ) || ( eDockingArea > ui::DockingArea_DOCKINGAREA_RIGHT ))
+ eDockingArea = ui::DockingArea_DOCKINGAREA_TOP;
+
+ bool bHorzDockArea = isHorizontalDockingArea( eDockingArea );
+
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ ReadGuard aReadLock( m_aLock );
+ UIElementVector::iterator pIter;
+ UIElementVector::iterator pEnd = m_aUIElements.end();
+ for ( pIter = m_aUIElements.begin(); pIter != pEnd; pIter++ )
+ {
+ if ( pIter->m_aDockedData.m_nDockedArea == eDockingArea )
+ {
+ bool bSameRowCol = bHorzDockArea ? ( pIter->m_aDockedData.m_aPos.Y() == nRowCol ) : ( pIter->m_aDockedData.m_aPos.X() == nRowCol );
+ uno::Reference< ui::XUIElement > xUIElement( pIter->m_xUIElement );
+
+ if ( bSameRowCol && xUIElement.is() )
+ {
+ uno::Reference< awt::XWindow > xWindow( xUIElement->getRealInterface(), uno::UNO_QUERY );
+ if ( xWindow.is() )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+ if ( pWindow && pIter->m_bVisible && xDockWindow.is() && !pIter->m_bFloating )
+ aWindowVector.push_back( *pIter ); // docked windows
+ }
+ }
+ }
+ }
+ aReadLock.unlock();
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+
+ // Initialize structure
+ rRowColumnWindowData.aUIElementNames.clear();
+ rRowColumnWindowData.aRowColumnWindows.clear();
+ rRowColumnWindowData.aRowColumnWindowSizes.clear();
+ rRowColumnWindowData.aRowColumnSpace.clear();
+ rRowColumnWindowData.nVarSize = 0;
+ rRowColumnWindowData.nStaticSize = 0;
+ rRowColumnWindowData.nSpace = 0;
+ rRowColumnWindowData.nRowColumn = nRowCol;
+
+ // Collect data from windows that are on the same row/column
+ sal_Int32 j;
+ sal_Int32 nLastPos( 0 );
+
+ const sal_uInt32 nCount = aWindowVector.size();
+ for ( j = 0; j < sal_Int32( nCount); j++ )
+ {
+ const UIElement& rElement = aWindowVector[j];
+ uno::Reference< awt::XWindow > xWindow;
+ uno::Reference< ui::XUIElement > xUIElement( rElement.m_xUIElement );
+ awt::Rectangle aPosSize;
+ if ( !lcl_checkUIElement(xUIElement,aPosSize,xWindow) )
+ continue;
+
+ sal_Int32 nSpace;
+ if ( isHorizontalDockingArea( eDockingArea ))
+ {
+ nSpace = ( rElement.m_aDockedData.m_aPos.X() - nLastPos );
+
+ // Calc space before an element and store it
+ if ( rElement.m_aDockedData.m_aPos.X() > nLastPos )
+ rRowColumnWindowData.nSpace += nSpace;
+ else
+ nSpace = 0;
+
+ nLastPos = rElement.m_aDockedData.m_aPos.X() + aPosSize.Width;
+
+
+ rRowColumnWindowData.aRowColumnWindowSizes.push_back(
+ awt::Rectangle( rElement.m_aDockedData.m_aPos.X(), rElement.m_aDockedData.m_aPos.Y(),
+ aPosSize.Width, aPosSize.Height ));
+ if ( rRowColumnWindowData.nStaticSize < aPosSize.Height )
+ rRowColumnWindowData.nStaticSize = aPosSize.Height;
+ rRowColumnWindowData.nVarSize += aPosSize.Width;
+ }
+ else
+ {
+ // Calc space before an element and store it
+ nSpace = ( rElement.m_aDockedData.m_aPos.Y() - nLastPos );
+ if ( rElement.m_aDockedData.m_aPos.Y() > nLastPos )
+ rRowColumnWindowData.nSpace += nSpace;
+ else
+ nSpace = 0;
+
+ nLastPos = rElement.m_aDockedData.m_aPos.Y() + aPosSize.Height;
+
+ rRowColumnWindowData.aRowColumnWindowSizes.push_back(
+ awt::Rectangle( rElement.m_aDockedData.m_aPos.X(), rElement.m_aDockedData.m_aPos.Y(),
+ aPosSize.Width, aPosSize.Height ));
+ if ( rRowColumnWindowData.nStaticSize < aPosSize.Width )
+ rRowColumnWindowData.nStaticSize = aPosSize.Width;
+ rRowColumnWindowData.nVarSize += aPosSize.Height;
+ }
+
+ rRowColumnWindowData.aUIElementNames.push_back( rElement.m_aName );
+ rRowColumnWindowData.aRowColumnWindows.push_back( xWindow );
+ rRowColumnWindowData.aRowColumnSpace.push_back( nSpace );
+ rRowColumnWindowData.nVarSize += nSpace;
+ }
+}
+
+::Rectangle ToolbarLayoutManager::implts_getWindowRectFromRowColumn(
+ ui::DockingArea DockingArea,
+ const SingleRowColumnWindowData& rRowColumnWindowData,
+ const ::Point& rMousePos,
+ const rtl::OUString& rExcludeElementName )
+{
+ ::Rectangle aWinRect;
+
+ if (( DockingArea < ui::DockingArea_DOCKINGAREA_TOP ) || ( DockingArea > ui::DockingArea_DOCKINGAREA_RIGHT ))
+ DockingArea = ui::DockingArea_DOCKINGAREA_TOP;
+
+ if ( rRowColumnWindowData.aRowColumnWindows.empty() )
+ return aWinRect;
+ else
+ {
+ ReadGuard aReadLock( m_aLock );
+ Window* pContainerWindow( VCLUnoHelper::GetWindow( m_xContainerWindow ));
+ Window* pDockingAreaWindow( VCLUnoHelper::GetWindow( m_xDockAreaWindows[DockingArea] ));
+ aReadLock.unlock();
+
+ // Calc correct position of the column/row rectangle to be able to compare it with mouse pos/tracking rect
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+
+ // Retrieve output size from container Window
+ if ( pDockingAreaWindow && pContainerWindow )
+ {
+ const sal_uInt32 nCount = rRowColumnWindowData.aRowColumnWindows.size();
+ for ( sal_uInt32 i = 0; i < nCount; i++ )
+ {
+ awt::Rectangle aWindowRect = rRowColumnWindowData.aRowColumnWindows[i]->getPosSize();
+ ::Rectangle aRect( aWindowRect.X, aWindowRect.Y, aWindowRect.X+aWindowRect.Width, aWindowRect.Y+aWindowRect.Height );
+ aRect.SetPos( pContainerWindow->ScreenToOutputPixel( pDockingAreaWindow->OutputToScreenPixel( aRect.TopLeft() )));
+ if ( aRect.IsInside( rMousePos ))
+ {
+ // Check if we have found the excluded element. If yes, we have to provide an empty rectangle.
+ // We prevent that a toolbar cannot be moved when the mouse pointer is inside its own rectangle!
+ if ( rExcludeElementName != rRowColumnWindowData.aUIElementNames[i] )
+ return aRect;
+ else
+ break;
+ }
+ }
+ }
+ }
+
+ return aWinRect;
+}
+
+::Rectangle ToolbarLayoutManager::implts_determineFrontDockingRect(
+ ui::DockingArea eDockingArea,
+ sal_Int32 nRowCol,
+ const ::Rectangle& rDockedElementRect,
+ const ::rtl::OUString& rMovedElementName,
+ const ::Rectangle& rMovedElementRect )
+{
+ SingleRowColumnWindowData aRowColumnWindowData;
+
+ sal_Bool bHorzDockArea( isHorizontalDockingArea( eDockingArea ));
+ implts_getDockingAreaElementInfoOnSingleRowCol( eDockingArea, nRowCol, aRowColumnWindowData );
+ if ( aRowColumnWindowData.aRowColumnWindows.empty() )
+ return rMovedElementRect;
+ else
+ {
+ sal_Int32 nSpace( 0 );
+ ::Rectangle aFrontDockingRect( rMovedElementRect );
+ const sal_uInt32 nCount = aRowColumnWindowData.aRowColumnWindows.size();
+ for ( sal_uInt32 i = 0; i < nCount; i++ )
+ {
+ if ( bHorzDockArea )
+ {
+ if ( aRowColumnWindowData.aRowColumnWindowSizes[i].X >= rDockedElementRect.Left() )
+ {
+ nSpace += aRowColumnWindowData.aRowColumnSpace[i];
+ break;
+ }
+ else if ( aRowColumnWindowData.aUIElementNames[i] == rMovedElementName )
+ nSpace += aRowColumnWindowData.aRowColumnWindowSizes[i].Width +
+ aRowColumnWindowData.aRowColumnSpace[i];
+ else
+ nSpace = 0;
+ }
+ else
+ {
+ if ( aRowColumnWindowData.aRowColumnWindowSizes[i].Y >= rDockedElementRect.Top() )
+ {
+ nSpace += aRowColumnWindowData.aRowColumnSpace[i];
+ break;
+ }
+ else if ( aRowColumnWindowData.aUIElementNames[i] == rMovedElementName )
+ nSpace += aRowColumnWindowData.aRowColumnWindowSizes[i].Height +
+ aRowColumnWindowData.aRowColumnSpace[i];
+ else
+ nSpace = 0;
+ }
+ }
+
+ if ( nSpace > 0 )
+ {
+ sal_Int32 nMove = std::min( nSpace, static_cast<sal_Int32>(aFrontDockingRect.getWidth()) );
+ if ( bHorzDockArea )
+ aFrontDockingRect.Move( -nMove, 0 );
+ else
+ aFrontDockingRect.Move( 0, -nMove );
+ }
+
+ return aFrontDockingRect;
+ }
+}
+
+void ToolbarLayoutManager::implts_findNextDockingPos( ui::DockingArea DockingArea, const ::Size& aUIElementSize, ::Point& rVirtualPos, ::Point& rPixelPos )
+{
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< awt::XWindow > xDockingWindow( m_xDockAreaWindows[DockingArea] );
+ ::Size aDockingWinSize;
+ Window* pDockingWindow( 0 );
+ aReadLock.unlock();
+
+ if (( DockingArea < ui::DockingArea_DOCKINGAREA_TOP ) || ( DockingArea > ui::DockingArea_DOCKINGAREA_RIGHT ))
+ DockingArea = ui::DockingArea_DOCKINGAREA_TOP;
+
+ {
+ // Retrieve output size from container Window
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pDockingWindow = VCLUnoHelper::GetWindow( xDockingWindow );
+ if ( pDockingWindow )
+ aDockingWinSize = pDockingWindow->GetOutputSizePixel();
+ }
+
+ sal_Int32 nFreeRowColPixelPos( 0 );
+ sal_Int32 nMaxSpace( 0 );
+ sal_Int32 nNeededSpace( 0 );
+ sal_Int32 nTopDockingAreaSize( 0 );
+
+ if ( isHorizontalDockingArea( DockingArea ))
+ {
+ nMaxSpace = aDockingWinSize.Width();
+ nNeededSpace = aUIElementSize.Width();
+ }
+ else
+ {
+ nMaxSpace = aDockingWinSize.Height();
+ nNeededSpace = aUIElementSize.Height();
+ nTopDockingAreaSize = implts_getTopBottomDockingAreaSizes().Width();
+ }
+
+ std::vector< SingleRowColumnWindowData > aRowColumnsWindowData;
+
+ implts_getDockingAreaElementInfos( DockingArea, aRowColumnsWindowData );
+ sal_Int32 nPixelPos( 0 );
+ const sal_uInt32 nCount = aRowColumnsWindowData.size();
+ for ( sal_uInt32 i = 0; i < nCount; i++ )
+ {
+ SingleRowColumnWindowData& rRowColumnWindowData = aRowColumnsWindowData[i];
+
+ if (( DockingArea == ui::DockingArea_DOCKINGAREA_BOTTOM ) ||
+ ( DockingArea == ui::DockingArea_DOCKINGAREA_RIGHT ))
+ nPixelPos += rRowColumnWindowData.nStaticSize;
+
+ if ((( nMaxSpace - rRowColumnWindowData.nVarSize ) >= nNeededSpace ) ||
+ ( rRowColumnWindowData.nSpace >= nNeededSpace ))
+ {
+ // Check current row where we can find the needed space
+ sal_Int32 nCurrPos( 0 );
+ const sal_uInt32 nWindowSizesCount = rRowColumnWindowData.aRowColumnWindowSizes.size();
+ for ( sal_uInt32 j = 0; j < nWindowSizesCount; j++ )
+ {
+ awt::Rectangle rRect = rRowColumnWindowData.aRowColumnWindowSizes[j];
+ sal_Int32& rSpace = rRowColumnWindowData.aRowColumnSpace[j];
+ if ( isHorizontalDockingArea( DockingArea ))
+ {
+ if ( rSpace >= nNeededSpace )
+ {
+ rVirtualPos = ::Point( nCurrPos, rRowColumnWindowData.nRowColumn );
+ if ( DockingArea == ui::DockingArea_DOCKINGAREA_TOP )
+ rPixelPos = ::Point( nCurrPos, nPixelPos );
+ else
+ rPixelPos = ::Point( nCurrPos, aDockingWinSize.Height() - nPixelPos );
+ return;
+ }
+ nCurrPos = rRect.X + rRect.Width;
+ }
+ else
+ {
+ if ( rSpace >= nNeededSpace )
+ {
+ rVirtualPos = ::Point( rRowColumnWindowData.nRowColumn, nCurrPos );
+ if ( DockingArea == ui::DockingArea_DOCKINGAREA_LEFT )
+ rPixelPos = ::Point( nPixelPos, nTopDockingAreaSize + nCurrPos );
+ else
+ rPixelPos = ::Point( aDockingWinSize.Width() - nPixelPos , nTopDockingAreaSize + nCurrPos );
+ return;
+ }
+ nCurrPos = rRect.Y + rRect.Height;
+ }
+ }
+
+ if (( nCurrPos + nNeededSpace ) <= nMaxSpace )
+ {
+ if ( isHorizontalDockingArea( DockingArea ))
+ {
+ rVirtualPos = ::Point( nCurrPos, rRowColumnWindowData.nRowColumn );
+ if ( DockingArea == ui::DockingArea_DOCKINGAREA_TOP )
+ rPixelPos = ::Point( nCurrPos, nPixelPos );
+ else
+ rPixelPos = ::Point( nCurrPos, aDockingWinSize.Height() - nPixelPos );
+ return;
+ }
+ else
+ {
+ rVirtualPos = ::Point( rRowColumnWindowData.nRowColumn, nCurrPos );
+ if ( DockingArea == ui::DockingArea_DOCKINGAREA_LEFT )
+ rPixelPos = ::Point( nPixelPos, nTopDockingAreaSize + nCurrPos );
+ else
+ rPixelPos = ::Point( aDockingWinSize.Width() - nPixelPos , nTopDockingAreaSize + nCurrPos );
+ return;
+ }
+ }
+ }
+
+ if (( DockingArea == ui::DockingArea_DOCKINGAREA_TOP ) || ( DockingArea == ui::DockingArea_DOCKINGAREA_LEFT ))
+ nPixelPos += rRowColumnWindowData.nStaticSize;
+ }
+
+ sal_Int32 nNextFreeRowCol( 0 );
+ sal_Int32 nRowColumnsCount = aRowColumnsWindowData.size();
+ if ( nRowColumnsCount > 0 )
+ nNextFreeRowCol = aRowColumnsWindowData[nRowColumnsCount-1].nRowColumn+1;
+ else
+ nNextFreeRowCol = 0;
+
+ if ( nNextFreeRowCol == 0 )
+ {
+ if ( DockingArea == ui::DockingArea_DOCKINGAREA_BOTTOM )
+ nFreeRowColPixelPos = aDockingWinSize.Height() - aUIElementSize.Height();
+ else if ( DockingArea == ui::DockingArea_DOCKINGAREA_RIGHT )
+ nFreeRowColPixelPos = aDockingWinSize.Width() - aUIElementSize.Width();
+ }
+
+ if ( isHorizontalDockingArea( DockingArea ))
+ {
+ rVirtualPos = ::Point( 0, nNextFreeRowCol );
+ if ( DockingArea == ui::DockingArea_DOCKINGAREA_TOP )
+ rPixelPos = ::Point( 0, nFreeRowColPixelPos );
+ else
+ rPixelPos = ::Point( 0, aDockingWinSize.Height() - nFreeRowColPixelPos );
+ }
+ else
+ {
+ rVirtualPos = ::Point( nNextFreeRowCol, 0 );
+ rPixelPos = ::Point( aDockingWinSize.Width() - nFreeRowColPixelPos, 0 );
+ }
+}
+
+void ToolbarLayoutManager::implts_calcWindowPosSizeOnSingleRowColumn(
+ sal_Int32 nDockingArea,
+ sal_Int32 nOffset,
+ SingleRowColumnWindowData& rRowColumnWindowData,
+ const ::Size& rContainerSize )
+{
+ sal_Int32 nDiff(0);
+ sal_Int32 nRCSpace( rRowColumnWindowData.nSpace );
+ sal_Int32 nTopDockingAreaSize(0);
+ sal_Int32 nBottomDockingAreaSize(0);
+ sal_Int32 nContainerClientSize(0);
+
+ if ( rRowColumnWindowData.aRowColumnWindows.empty() )
+ return;
+
+ if ( isHorizontalDockingArea( nDockingArea ))
+ {
+ nContainerClientSize = rContainerSize.Width();
+ nDiff = nContainerClientSize - rRowColumnWindowData.nVarSize;
+ }
+ else
+ {
+ nTopDockingAreaSize = implts_getTopBottomDockingAreaSizes().Width();
+ nBottomDockingAreaSize = implts_getTopBottomDockingAreaSizes().Height();
+ nContainerClientSize = ( rContainerSize.Height() - nTopDockingAreaSize - nBottomDockingAreaSize );
+ nDiff = nContainerClientSize - rRowColumnWindowData.nVarSize;
+ }
+
+ const sal_uInt32 nCount = rRowColumnWindowData.aRowColumnWindowSizes.size();
+ if (( nDiff < 0 ) && ( nRCSpace > 0 ))
+ {
+ // First we try to reduce the size of blank space before/behind docked windows
+ sal_Int32 i = nCount - 1;
+ while ( i >= 0 )
+ {
+ sal_Int32 nSpace = rRowColumnWindowData.aRowColumnSpace[i];
+ if ( nSpace >= -nDiff )
+ {
+ if ( isHorizontalDockingArea( nDockingArea ))
+ {
+ // Try to move this and all user elements behind with the calculated difference
+ for ( sal_uInt32 j = i; j < nCount ; j++ )
+ rRowColumnWindowData.aRowColumnWindowSizes[j].X += nDiff;
+ }
+ else
+ {
+ // Try to move this and all user elements behind with the calculated difference
+ for ( sal_uInt32 j = i; j < nCount ; j++ )
+ rRowColumnWindowData.aRowColumnWindowSizes[j].Y += nDiff;
+ }
+ nDiff = 0;
+
+ break;
+ }
+ else if ( nSpace > 0 )
+ {
+ if ( isHorizontalDockingArea( nDockingArea ))
+ {
+ // Try to move this and all user elements behind with the calculated difference
+ for ( sal_uInt32 j = i; j < nCount; j++ )
+ rRowColumnWindowData.aRowColumnWindowSizes[j].X -= nSpace;
+ }
+ else
+ {
+ // Try to move this and all user elements behind with the calculated difference
+ for ( sal_uInt32 j = i; j < nCount; j++ )
+ rRowColumnWindowData.aRowColumnWindowSizes[j].Y -= nSpace;
+ }
+ nDiff += nSpace;
+ }
+ --i;
+ }
+ }
+
+ // Check if we have to reduce further
+ if ( nDiff < 0 )
+ {
+ // Now we have to reduce the size of certain docked windows
+ sal_Int32 i = sal_Int32( nCount - 1 );
+ while ( i >= 0 )
+ {
+ awt::Rectangle& rWinRect = rRowColumnWindowData.aRowColumnWindowSizes[i];
+ ::Size aMinSize;
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ {
+ uno::Reference< awt::XWindow > xWindow = rRowColumnWindowData.aRowColumnWindows[i];
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+ aMinSize = ((ToolBox *)pWindow)->CalcMinimumWindowSizePixel();
+ }
+
+ if (( aMinSize.Width() > 0 ) && ( aMinSize.Height() > 0 ))
+ {
+ if ( isHorizontalDockingArea( nDockingArea ))
+ {
+ sal_Int32 nMaxReducation = ( rWinRect.Width - aMinSize.Width() );
+ if ( nMaxReducation >= -nDiff )
+ {
+ rWinRect.Width = rWinRect.Width + nDiff;
+ nDiff = 0;
+ }
+ else
+ {
+ rWinRect.Width = aMinSize.Width();
+ nDiff += nMaxReducation;
+ }
+
+ // Try to move this and all user elements behind with the calculated difference
+ for ( sal_uInt32 j = i; j < nCount; j++ )
+ rRowColumnWindowData.aRowColumnWindowSizes[j].X += nDiff;
+ }
+ else
+ {
+ sal_Int32 nMaxReducation = ( rWinRect.Height - aMinSize.Height() );
+ if ( nMaxReducation >= -nDiff )
+ {
+ rWinRect.Height = rWinRect.Height + nDiff;
+ nDiff = 0;
+ }
+ else
+ {
+ rWinRect.Height = aMinSize.Height();
+ nDiff += nMaxReducation;
+ }
+
+ // Try to move this and all user elements behind with the calculated difference
+ for ( sal_uInt32 j = i; j < nCount; j++ )
+ rRowColumnWindowData.aRowColumnWindowSizes[j].Y += nDiff;
+ }
+ }
+
+ if ( nDiff >= 0 )
+ break;
+
+ --i;
+ }
+ }
+
+ ReadGuard aReadLock( m_aLock );
+ Window* pDockAreaWindow = VCLUnoHelper::GetWindow( m_xDockAreaWindows[nDockingArea] );
+ aReadLock.unlock();
+
+ sal_Int32 nCurrPos( 0 );
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ for ( sal_uInt32 i = 0; i < nCount; i++ )
+ {
+ uno::Reference< awt::XWindow > xWindow = rRowColumnWindowData.aRowColumnWindows[i];
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ Window* pOldParentWindow = pWindow->GetParent();
+
+ if ( pDockAreaWindow != pOldParentWindow )
+ pWindow->SetParent( pDockAreaWindow );
+
+ awt::Rectangle aWinRect = rRowColumnWindowData.aRowColumnWindowSizes[i];
+ if ( isHorizontalDockingArea( nDockingArea ))
+ {
+ if ( aWinRect.X < nCurrPos )
+ aWinRect.X = nCurrPos;
+ pWindow->SetPosSizePixel( ::Point( aWinRect.X, nOffset ), ::Size( aWinRect.Width, rRowColumnWindowData.nStaticSize ));
+ pWindow->Show( TRUE, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ nCurrPos += ( aWinRect.X - nCurrPos ) + aWinRect.Width;
+ }
+ else
+ {
+ if ( aWinRect.Y < nCurrPos )
+ aWinRect.Y = nCurrPos;
+ pWindow->SetPosSizePixel( ::Point( nOffset, aWinRect.Y ), ::Size( rRowColumnWindowData.nStaticSize, aWinRect.Height ));
+ pWindow->Show( TRUE, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ nCurrPos += ( aWinRect.Y - nCurrPos ) + aWinRect.Height;
+ }
+ }
+}
+
+void ToolbarLayoutManager::implts_setLayoutDirty()
+{
+ WriteGuard aWriteLock( m_aLock );
+ m_bLayoutDirty = true;
+}
+
+void ToolbarLayoutManager::implts_setLayoutInProgress( bool bInProgress )
+{
+ WriteGuard aWriteLock( m_aLock );
+ m_bLayoutInProgress = bInProgress;
+}
+
+::Rectangle ToolbarLayoutManager::implts_calcHotZoneRect( const ::Rectangle& rRect, sal_Int32 nHotZoneOffset )
+{
+ ::Rectangle aRect( rRect );
+
+ aRect.Left() -= nHotZoneOffset;
+ aRect.Top() -= nHotZoneOffset;
+ aRect.Right() += nHotZoneOffset;
+ aRect.Bottom() += nHotZoneOffset;
+
+ return aRect;
+}
+
+void ToolbarLayoutManager::implts_calcDockingPosSize(
+ UIElement& rUIElement,
+ DockingOperation& rDockingOperation,
+ ::Rectangle& rTrackingRect,
+ const Point& rMousePos )
+{
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< awt::XWindow2 > xContainerWindow( m_xContainerWindow );
+ ::Size aContainerWinSize;
+ Window* pContainerWindow( 0 );
+ ::Rectangle aDockingAreaOffsets( m_aDockingAreaOffsets );
+ aReadLock.unlock();
+
+ if ( !rUIElement.m_xUIElement.is() )
+ {
+ rTrackingRect = ::Rectangle();
+ return;
+ }
+
+ {
+ // Retrieve output size from container Window
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+ aContainerWinSize = pContainerWindow->GetOutputSizePixel();
+ }
+
+ Window* pDockWindow( 0 );
+ Window* pDockingAreaWindow( 0 );
+ ToolBox* pToolBox( 0 );
+ uno::Reference< awt::XWindow > xWindow( rUIElement.m_xUIElement->getRealInterface(), uno::UNO_QUERY );
+ uno::Reference< awt::XWindow > xDockingAreaWindow;
+ ::Rectangle aTrackingRect( rTrackingRect );
+ ui::DockingArea eDockedArea( (ui::DockingArea)rUIElement.m_aDockedData.m_nDockedArea );
+ sal_Int32 nTopDockingAreaSize( implts_getTopBottomDockingAreaSizes().Width() );
+ sal_Int32 nBottomDockingAreaSize( implts_getTopBottomDockingAreaSizes().Height() );
+ bool bHorizontalDockArea(( eDockedArea == ui::DockingArea_DOCKINGAREA_TOP ) ||
+ ( eDockedArea == ui::DockingArea_DOCKINGAREA_BOTTOM ));
+ sal_Int32 nMaxLeftRightDockAreaSize = aContainerWinSize.Height() -
+ nTopDockingAreaSize -
+ nBottomDockingAreaSize -
+ aDockingAreaOffsets.Top() -
+ aDockingAreaOffsets.Bottom();
+ ::Rectangle aDockingAreaRect;
+
+ aReadLock.lock();
+ xDockingAreaWindow = m_xDockAreaWindows[eDockedArea];
+ aReadLock.unlock();
+
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pDockingAreaWindow = VCLUnoHelper::GetWindow( xDockingAreaWindow );
+ pDockWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pDockWindow && pDockWindow->GetType() == WINDOW_TOOLBOX )
+ pToolBox = (ToolBox *)pDockWindow;
+
+ aDockingAreaRect = ::Rectangle( pDockingAreaWindow->GetPosPixel(), pDockingAreaWindow->GetSizePixel() );
+ if ( pToolBox )
+ {
+ // docked toolbars always have one line
+ ::Size aSize = pToolBox->CalcWindowSizePixel( 1, ImplConvertAlignment( sal_Int16( eDockedArea )) );
+ aTrackingRect.SetSize( ::Size( aSize.Width(), aSize.Height() ));
+ }
+ }
+
+ // default docking operation, dock on the given row/column
+ bool bOpOutsideOfDockingArea( !aDockingAreaRect.IsInside( rMousePos ));
+ std::vector< SingleRowColumnWindowData > aRowColumnsWindowData;
+
+ rDockingOperation = DOCKOP_ON_COLROW;
+ implts_getDockingAreaElementInfos( eDockedArea, aRowColumnsWindowData );
+
+ // determine current first row/column and last row/column
+ sal_Int32 nMaxRowCol( -1 );
+ sal_Int32 nMinRowCol( SAL_MAX_INT32 );
+ const sal_uInt32 nCount = aRowColumnsWindowData.size();
+ for ( sal_uInt32 i = 0; i < nCount; i++ )
+ {
+ if ( aRowColumnsWindowData[i].nRowColumn > nMaxRowCol )
+ nMaxRowCol = aRowColumnsWindowData[i].nRowColumn;
+ if ( aRowColumnsWindowData[i].nRowColumn < nMinRowCol )
+ nMinRowCol = aRowColumnsWindowData[i].nRowColumn;
+ }
+
+ if ( !bOpOutsideOfDockingArea )
+ {
+ // docking inside our docking area
+ sal_Int32 nIndex( -1 );
+ sal_Int32 nRowCol( -1 );
+ ::Rectangle aWindowRect;
+ ::Rectangle aRowColumnRect;
+
+ const sal_uInt32 nWindowDataCount = aRowColumnsWindowData.size();
+ for ( sal_uInt32 i = 0; i < nWindowDataCount; i++ )
+ {
+ ::Rectangle aRect( aRowColumnsWindowData[i].aRowColumnRect.X,
+ aRowColumnsWindowData[i].aRowColumnRect.Y,
+ aRowColumnsWindowData[i].aRowColumnRect.X + aRowColumnsWindowData[i].aRowColumnRect.Width,
+ aRowColumnsWindowData[i].aRowColumnRect.Y + aRowColumnsWindowData[i].aRowColumnRect.Height );
+
+ {
+ // Calc correct position of the column/row rectangle to be able to compare it with mouse pos/tracking rect
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ aRect.SetPos( pContainerWindow->ScreenToOutputPixel( pDockingAreaWindow->OutputToScreenPixel( aRect.TopLeft() )));
+ }
+
+ bool bIsInsideRowCol( aRect.IsInside( rMousePos ) );
+ if ( bIsInsideRowCol )
+ {
+ nIndex = i;
+ nRowCol = aRowColumnsWindowData[i].nRowColumn;
+ rDockingOperation = implts_determineDockingOperation( eDockedArea, aRect, rMousePos );
+ aWindowRect = implts_getWindowRectFromRowColumn( eDockedArea, aRowColumnsWindowData[i], rMousePos, rUIElement.m_aName );
+ aRowColumnRect = aRect;
+ break;
+ }
+ }
+
+ OSL_ENSURE( ( nIndex >= 0 ) && ( nRowCol >= 0 ), "Impossible case - no row/column found but mouse pointer is inside our docking area" );
+ if (( nIndex >= 0 ) && ( nRowCol >= 0 ))
+ {
+ if ( rDockingOperation == DOCKOP_ON_COLROW )
+ {
+ if ( !aWindowRect.IsEmpty())
+ {
+ // Tracking rect is on a row/column and mouse is over a docked toolbar.
+ // Determine if the tracking rect must be located before/after the docked toolbar.
+
+ ::Rectangle aUIElementRect( aWindowRect );
+ sal_Int32 nMiddle( bHorizontalDockArea ? ( aWindowRect.Left() + aWindowRect.getWidth() / 2 ) :
+ ( aWindowRect.Top() + aWindowRect.getHeight() / 2 ));
+ sal_Bool bInsertBefore( bHorizontalDockArea ? ( rMousePos.X() < nMiddle ) : ( rMousePos.Y() < nMiddle ));
+ if ( bInsertBefore )
+ {
+ if ( bHorizontalDockArea )
+ {
+ sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32( aContainerWinSize.Width() - aWindowRect.Left() ),
+ sal_Int32( aTrackingRect.getWidth() )));
+ if ( nSize == 0 )
+ nSize = aWindowRect.getWidth();
+
+ aUIElementRect.SetSize( ::Size( nSize, aWindowRect.getHeight() ));
+ aWindowRect = implts_determineFrontDockingRect( eDockedArea, nRowCol, aWindowRect,rUIElement.m_aName, aUIElementRect );
+
+ // Set virtual position
+ rUIElement.m_aDockedData.m_aPos.X() = aWindowRect.Left();
+ rUIElement.m_aDockedData.m_aPos.Y() = nRowCol;
+ }
+ else
+ {
+ sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32(
+ nTopDockingAreaSize + nMaxLeftRightDockAreaSize - aWindowRect.Top() ),
+ sal_Int32( aTrackingRect.getHeight() )));
+ if ( nSize == 0 )
+ nSize = aWindowRect.getHeight();
+
+ aUIElementRect.SetSize( ::Size( aWindowRect.getWidth(), nSize ));
+ aWindowRect = implts_determineFrontDockingRect( eDockedArea, nRowCol, aWindowRect, rUIElement.m_aName, aUIElementRect );
+
+ // Set virtual position
+ sal_Int32 nPosY = pDockingAreaWindow->ScreenToOutputPixel(
+ pContainerWindow->OutputToScreenPixel( aWindowRect.TopLeft() )).Y();
+ rUIElement.m_aDockedData.m_aPos.X() = nRowCol;
+ rUIElement.m_aDockedData.m_aPos.Y() = nPosY;
+ }
+
+ rTrackingRect = aWindowRect;
+ return;
+ }
+ else
+ {
+ if ( bHorizontalDockArea )
+ {
+ sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32(( aContainerWinSize.Width() ) - aWindowRect.Right() ),
+ sal_Int32( aTrackingRect.getWidth() )));
+ if ( nSize == 0 )
+ {
+ aUIElementRect.SetPos( ::Point( aContainerWinSize.Width() - aTrackingRect.getWidth(), aWindowRect.Top() ));
+ aUIElementRect.SetSize( ::Size( aTrackingRect.getWidth(), aWindowRect.getHeight() ));
+ rUIElement.m_aDockedData.m_aPos.X() = aUIElementRect.Left();
+ }
+ else
+ {
+ aUIElementRect.SetPos( ::Point( aWindowRect.Right(), aWindowRect.Top() ));
+ aUIElementRect.SetSize( ::Size( nSize, aWindowRect.getHeight() ));
+ rUIElement.m_aDockedData.m_aPos.X() = aWindowRect.Right();
+ }
+
+ // Set virtual position
+ rUIElement.m_aDockedData.m_aPos.Y() = nRowCol;
+ }
+ else
+ {
+ sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32( nTopDockingAreaSize + nMaxLeftRightDockAreaSize - aWindowRect.Bottom() ),
+ sal_Int32( aTrackingRect.getHeight() )));
+ aUIElementRect.SetPos( ::Point( aWindowRect.Left(), aWindowRect.Bottom() ));
+ aUIElementRect.SetSize( ::Size( aWindowRect.getWidth(), nSize ));
+
+ // Set virtual position
+ sal_Int32 nPosY( 0 );
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ nPosY = pDockingAreaWindow->ScreenToOutputPixel(
+ pContainerWindow->OutputToScreenPixel( aWindowRect.BottomRight() )).Y();
+ }
+ rUIElement.m_aDockedData.m_aPos.X() = nRowCol;
+ rUIElement.m_aDockedData.m_aPos.Y() = nPosY;
+ }
+
+ rTrackingRect = aUIElementRect;
+ return;
+ }
+ }
+ else
+ {
+ implts_setTrackingRect( eDockedArea, rMousePos, aTrackingRect );
+ rTrackingRect = implts_calcTrackingAndElementRect(
+ eDockedArea, nRowCol, rUIElement,
+ aTrackingRect, aRowColumnRect, aContainerWinSize );
+ return;
+ }
+ }
+ else
+ {
+ if ((( nRowCol == nMinRowCol ) && ( rDockingOperation == DOCKOP_BEFORE_COLROW )) ||
+ (( nRowCol == nMaxRowCol ) && ( rDockingOperation == DOCKOP_AFTER_COLROW )))
+ bOpOutsideOfDockingArea = true;
+ else
+ {
+ // handle docking before/after a row
+ implts_setTrackingRect( eDockedArea, rMousePos, aTrackingRect );
+ rTrackingRect = implts_calcTrackingAndElementRect(
+ eDockedArea, nRowCol, rUIElement,
+ aTrackingRect, aRowColumnRect, aContainerWinSize );
+
+ sal_Int32 nOffsetX( 0 );
+ sal_Int32 nOffsetY( 0 );
+ if ( bHorizontalDockArea )
+ nOffsetY = sal_Int32( floor( aRowColumnRect.getHeight() / 2 + 0.5 ));
+ else
+ nOffsetX = sal_Int32( floor( aRowColumnRect.getWidth() / 2 + 0.5 ));
+
+ if ( rDockingOperation == DOCKOP_BEFORE_COLROW )
+ {
+ if (( eDockedArea == ui::DockingArea_DOCKINGAREA_TOP ) || ( eDockedArea == ui::DockingArea_DOCKINGAREA_LEFT ))
+ {
+ // Docking before/after means move track rectangle half column/row.
+ // As left and top are ordered 0...n instead of right and bottom
+ // which uses n...0, we have to use negative values for top/left.
+ nOffsetX *= -1;
+ nOffsetY *= -1;
+ }
+ }
+ else
+ {
+ if (( eDockedArea == ui::DockingArea_DOCKINGAREA_BOTTOM ) || ( eDockedArea == ui::DockingArea_DOCKINGAREA_RIGHT ))
+ {
+ // Docking before/after means move track rectangle half column/row.
+ // As left and top are ordered 0...n instead of right and bottom
+ // which uses n...0, we have to use negative values for top/left.
+ nOffsetX *= -1;
+ nOffsetY *= -1;
+ }
+ nRowCol++;
+ }
+
+ if ( bHorizontalDockArea )
+ rUIElement.m_aDockedData.m_aPos.Y() = nRowCol;
+ else
+ rUIElement.m_aDockedData.m_aPos.X() = nRowCol;
+
+ rTrackingRect.Move( nOffsetX, nOffsetY );
+ rTrackingRect.SetSize( aTrackingRect.GetSize() );
+ }
+ }
+ }
+ }
+
+ // Docking outside of our docking window area =>
+ // Users want to dock before/after first/last docked element or to an empty docking area
+ if ( bOpOutsideOfDockingArea )
+ {
+ // set correct size for docking
+ implts_setTrackingRect( eDockedArea, rMousePos, aTrackingRect );
+ rTrackingRect = aTrackingRect;
+
+ if ( bHorizontalDockArea )
+ {
+ sal_Int32 nPosX( std::max( sal_Int32( rTrackingRect.Left()), sal_Int32( 0 )));
+ if (( nPosX + rTrackingRect.getWidth()) > aContainerWinSize.Width() )
+ nPosX = std::min( nPosX,
+ std::max( sal_Int32( aContainerWinSize.Width() - rTrackingRect.getWidth() ),
+ sal_Int32( 0 )));
+
+ sal_Int32 nSize = std::min( aContainerWinSize.Width(), rTrackingRect.getWidth() );
+ sal_Int32 nDockHeight = std::max( static_cast<sal_Int32>(aDockingAreaRect.getHeight()), sal_Int32( 0 ));
+ if ( nDockHeight == 0 )
+ {
+ sal_Int32 nPosY( std::max( aDockingAreaRect.Top(), aDockingAreaRect.Bottom() ));
+ if ( eDockedArea == ui::DockingArea_DOCKINGAREA_BOTTOM )
+ nPosY -= rTrackingRect.getHeight();
+ rTrackingRect.SetPos( Point( nPosX, nPosY ));
+ rUIElement.m_aDockedData.m_aPos.Y() = 0;
+ }
+ else if ( rMousePos.Y() < ( aDockingAreaRect.Top() + ( nDockHeight / 2 )))
+ {
+ rTrackingRect.SetPos( Point( nPosX, aDockingAreaRect.Top() - rTrackingRect.getHeight() ));
+ if ( eDockedArea == ui::DockingArea_DOCKINGAREA_TOP )
+ rUIElement.m_aDockedData.m_aPos.Y() = 0;
+ else
+ rUIElement.m_aDockedData.m_aPos.Y() = ( nMaxRowCol >= 0 ) ? nMaxRowCol+1 : 0;
+ rDockingOperation = DOCKOP_BEFORE_COLROW;
+ }
+ else
+ {
+ rTrackingRect.SetPos( Point( nPosX, aDockingAreaRect.Bottom() ));
+ if ( eDockedArea == ui::DockingArea_DOCKINGAREA_TOP )
+ rUIElement.m_aDockedData.m_aPos.Y() = ( nMaxRowCol >= 0 ) ? nMaxRowCol+1 : 0;
+ else
+ rUIElement.m_aDockedData.m_aPos.Y() = 0;
+ rDockingOperation = DOCKOP_AFTER_COLROW;
+ }
+ rTrackingRect.setWidth( nSize );
+
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ nPosX = pDockingAreaWindow->ScreenToOutputPixel(
+ pContainerWindow->OutputToScreenPixel( rTrackingRect.TopLeft() )).X();
+ }
+ rUIElement.m_aDockedData.m_aPos.X() = nPosX;
+ }
+ else
+ {
+ sal_Int32 nMaxDockingAreaHeight = std::max( sal_Int32( 0 ), sal_Int32( nMaxLeftRightDockAreaSize ));
+ sal_Int32 nPosY( std::max( sal_Int32( aTrackingRect.Top()), sal_Int32( nTopDockingAreaSize )));
+ if (( nPosY + aTrackingRect.getHeight()) > ( nTopDockingAreaSize + nMaxDockingAreaHeight ))
+ nPosY = std::min( nPosY,
+ std::max( sal_Int32( nTopDockingAreaSize + ( nMaxDockingAreaHeight - aTrackingRect.getHeight() )),
+ sal_Int32( nTopDockingAreaSize )));
+
+ sal_Int32 nSize = std::min( nMaxDockingAreaHeight, static_cast<sal_Int32>(aTrackingRect.getHeight()) );
+ sal_Int32 nDockWidth = std::max( static_cast<sal_Int32>(aDockingAreaRect.getWidth()), sal_Int32( 0 ));
+ if ( nDockWidth == 0 )
+ {
+ sal_Int32 nPosX( std::max( aDockingAreaRect.Left(), aDockingAreaRect.Right() ));
+ if ( eDockedArea == ui::DockingArea_DOCKINGAREA_RIGHT )
+ nPosX -= rTrackingRect.getWidth();
+ rTrackingRect.SetPos( Point( nPosX, nPosY ));
+ rUIElement.m_aDockedData.m_aPos.X() = 0;
+ }
+ else if ( rMousePos.X() < ( aDockingAreaRect.Left() + ( nDockWidth / 2 )))
+ {
+ rTrackingRect.SetPos( Point( aDockingAreaRect.Left() - rTrackingRect.getWidth(), nPosY ));
+ if ( eDockedArea == ui::DockingArea_DOCKINGAREA_LEFT )
+ rUIElement.m_aDockedData.m_aPos.X() = 0;
+ else
+ rUIElement.m_aDockedData.m_aPos.X() = ( nMaxRowCol >= 0 ) ? nMaxRowCol+1 : 0;
+ rDockingOperation = DOCKOP_BEFORE_COLROW;
+ }
+ else
+ {
+ rTrackingRect.SetPos( Point( aDockingAreaRect.Right(), nPosY ));
+ if ( eDockedArea == ui::DockingArea_DOCKINGAREA_LEFT )
+ rUIElement.m_aDockedData.m_aPos.X() = ( nMaxRowCol >= 0 ) ? nMaxRowCol+1 : 0;
+ else
+ rUIElement.m_aDockedData.m_aPos.X() = 0;
+ rDockingOperation = DOCKOP_AFTER_COLROW;
+ }
+ rTrackingRect.setHeight( nSize );
+
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ nPosY = pDockingAreaWindow->ScreenToOutputPixel(
+ pContainerWindow->OutputToScreenPixel( rTrackingRect.TopLeft() )).Y();
+ }
+ rUIElement.m_aDockedData.m_aPos.Y() = nPosY;
+ }
+ }
+}
+
+framework::ToolbarLayoutManager::DockingOperation ToolbarLayoutManager::implts_determineDockingOperation(
+ ui::DockingArea DockingArea,
+ const ::Rectangle& rRowColRect,
+ const Point& rMousePos )
+{
+ const sal_Int32 nHorzVerticalRegionSize = 6;
+ const sal_Int32 nHorzVerticalMoveRegion = 4;
+
+ if ( rRowColRect.IsInside( rMousePos ))
+ {
+ if ( isHorizontalDockingArea( DockingArea ))
+ {
+ sal_Int32 nRegion = rRowColRect.getHeight() / nHorzVerticalRegionSize;
+ sal_Int32 nPosY = rRowColRect.Top() + nRegion;
+
+ if ( rMousePos.Y() < nPosY )
+ return ( DockingArea == ui::DockingArea_DOCKINGAREA_TOP ) ? DOCKOP_BEFORE_COLROW : DOCKOP_AFTER_COLROW;
+ else if ( rMousePos.Y() < ( nPosY + nRegion*nHorzVerticalMoveRegion ))
+ return DOCKOP_ON_COLROW;
+ else
+ return ( DockingArea == ui::DockingArea_DOCKINGAREA_TOP ) ? DOCKOP_AFTER_COLROW : DOCKOP_BEFORE_COLROW;
+ }
+ else
+ {
+ sal_Int32 nRegion = rRowColRect.getWidth() / nHorzVerticalRegionSize;
+ sal_Int32 nPosX = rRowColRect.Left() + nRegion;
+
+ if ( rMousePos.X() < nPosX )
+ return ( DockingArea == ui::DockingArea_DOCKINGAREA_LEFT ) ? DOCKOP_BEFORE_COLROW : DOCKOP_AFTER_COLROW;
+ else if ( rMousePos.X() < ( nPosX + nRegion*nHorzVerticalMoveRegion ))
+ return DOCKOP_ON_COLROW;
+ else
+ return ( DockingArea == ui::DockingArea_DOCKINGAREA_LEFT ) ? DOCKOP_AFTER_COLROW : DOCKOP_BEFORE_COLROW;
+ }
+ }
+ else
+ return DOCKOP_ON_COLROW;
+}
+
+::Rectangle ToolbarLayoutManager::implts_calcTrackingAndElementRect(
+ ui::DockingArea eDockingArea,
+ sal_Int32 nRowCol,
+ UIElement& rUIElement,
+ const ::Rectangle& rTrackingRect,
+ const ::Rectangle& rRowColumnRect,
+ const ::Size& rContainerWinSize )
+{
+ ReadGuard aReadGuard( m_aLock );
+ ::Rectangle aDockingAreaOffsets( m_aDockingAreaOffsets );
+ aReadGuard.unlock();
+
+ bool bHorizontalDockArea( isHorizontalDockingArea( eDockingArea ));
+ sal_Int32 nTopDockingAreaSize( implts_getTopBottomDockingAreaSizes().Width() );
+ sal_Int32 nBottomDockingAreaSize( implts_getTopBottomDockingAreaSizes().Height() );
+
+ sal_Int32 nMaxLeftRightDockAreaSize = rContainerWinSize.Height() -
+ nTopDockingAreaSize -
+ nBottomDockingAreaSize -
+ aDockingAreaOffsets.Top() -
+ aDockingAreaOffsets.Bottom();
+
+ ::Rectangle aTrackingRect( rTrackingRect );
+ if ( bHorizontalDockArea )
+ {
+ sal_Int32 nPosX( std::max( sal_Int32( rTrackingRect.Left()), sal_Int32( 0 )));
+ if (( nPosX + rTrackingRect.getWidth()) > rContainerWinSize.Width() )
+ nPosX = std::min( nPosX,
+ std::max( sal_Int32( rContainerWinSize.Width() - rTrackingRect.getWidth() ),
+ sal_Int32( 0 )));
+
+ sal_Int32 nSize = std::min( rContainerWinSize.Width(), rTrackingRect.getWidth() );
+
+ aTrackingRect.SetPos( ::Point( nPosX, rRowColumnRect.Top() ));
+ aTrackingRect.setWidth( nSize );
+ aTrackingRect.setHeight( rRowColumnRect.getHeight() );
+
+ // Set virtual position
+ rUIElement.m_aDockedData.m_aPos.X() = nPosX;
+ rUIElement.m_aDockedData.m_aPos.Y() = nRowCol;
+ }
+ else
+ {
+ sal_Int32 nMaxDockingAreaHeight = std::max( sal_Int32( 0 ),
+ sal_Int32( nMaxLeftRightDockAreaSize ));
+
+ sal_Int32 nPosY( std::max( sal_Int32( aTrackingRect.Top()), sal_Int32( nTopDockingAreaSize )));
+ if (( nPosY + aTrackingRect.getHeight()) > ( nTopDockingAreaSize + nMaxDockingAreaHeight ))
+ nPosY = std::min( nPosY,
+ std::max( sal_Int32( nTopDockingAreaSize + ( nMaxDockingAreaHeight - aTrackingRect.getHeight() )),
+ sal_Int32( nTopDockingAreaSize )));
+
+ sal_Int32 nSize = std::min( nMaxDockingAreaHeight, static_cast<sal_Int32>(aTrackingRect.getHeight()) );
+
+ aTrackingRect.SetPos( ::Point( rRowColumnRect.Left(), nPosY ));
+ aTrackingRect.setWidth( rRowColumnRect.getWidth() );
+ aTrackingRect.setHeight( nSize );
+
+ aReadGuard.lock();
+ uno::Reference< awt::XWindow > xDockingAreaWindow( m_xDockAreaWindows[eDockingArea] );
+ uno::Reference< awt::XWindow2 > xContainerWindow( m_xContainerWindow );
+ aReadGuard.unlock();
+
+ sal_Int32 nDockPosY( 0 );
+ Window* pDockingAreaWindow( 0 );
+ Window* pContainerWindow( 0 );
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pDockingAreaWindow = VCLUnoHelper::GetWindow( xDockingAreaWindow );
+ pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+ nDockPosY = pDockingAreaWindow->ScreenToOutputPixel( pContainerWindow->OutputToScreenPixel( ::Point( 0, nPosY ))).Y();
+ }
+
+ // Set virtual position
+ rUIElement.m_aDockedData.m_aPos.X() = nRowCol;
+ rUIElement.m_aDockedData.m_aPos.Y() = nDockPosY;
+ }
+
+ return aTrackingRect;
+}
+
+void ToolbarLayoutManager::implts_setTrackingRect( ui::DockingArea eDockingArea, const ::Point& rMousePos, ::Rectangle& rTrackingRect )
+{
+ ::Point aPoint( rTrackingRect.TopLeft());
+ if ( isHorizontalDockingArea( eDockingArea ))
+ aPoint.X() = rMousePos.X();
+ else
+ aPoint.Y() = rMousePos.Y();
+ rTrackingRect.SetPos( aPoint );
+}
+
+void ToolbarLayoutManager::implts_renumberRowColumnData(
+ ui::DockingArea eDockingArea,
+ DockingOperation /*eDockingOperation*/,
+ const UIElement& rUIElement )
+{
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< container::XNameAccess > xPersistentWindowState( m_xPersistentWindowState );
+ aReadLock.unlock();
+
+ bool bHorzDockingArea( isHorizontalDockingArea( eDockingArea ));
+ sal_Int32 nRowCol( bHorzDockingArea ? rUIElement.m_aDockedData.m_aPos.Y() : rUIElement.m_aDockedData.m_aPos.X() );
+
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ WriteGuard aWriteLock( m_aLock );
+ UIElementVector::iterator pIter;
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ if (( pIter->m_aDockedData.m_nDockedArea == sal_Int16( eDockingArea )) && ( pIter->m_aName != rUIElement.m_aName ))
+ {
+ // Don't change toolbars without a valid docking position!
+ if ( isDefaultPos( pIter->m_aDockedData.m_aPos ))
+ continue;
+
+ sal_Int32 nWindowRowCol = ( bHorzDockingArea ) ? pIter->m_aDockedData.m_aPos.Y() : pIter->m_aDockedData.m_aPos.X();
+ if ( nWindowRowCol >= nRowCol )
+ {
+ if ( bHorzDockingArea )
+ pIter->m_aDockedData.m_aPos.Y() += 1;
+ else
+ pIter->m_aDockedData.m_aPos.X() += 1;
+ }
+ }
+ }
+ aWriteLock.unlock();
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+
+ // We have to change the persistent window state part
+ if ( xPersistentWindowState.is() )
+ {
+ try
+ {
+ uno::Sequence< ::rtl::OUString > aWindowElements = xPersistentWindowState->getElementNames();
+ for ( sal_Int32 i = 0; i < aWindowElements.getLength(); i++ )
+ {
+ if ( rUIElement.m_aName != aWindowElements[i] )
+ {
+ try
+ {
+ uno::Sequence< beans::PropertyValue > aPropValueSeq;
+ awt::Point aDockedPos;
+ ui::DockingArea nDockedArea( ui::DockingArea_DOCKINGAREA_DEFAULT );
+
+ xPersistentWindowState->getByName( aWindowElements[i] ) >>= aPropValueSeq;
+ for ( sal_Int32 j = 0; j < aPropValueSeq.getLength(); j++ )
+ {
+ if ( aPropValueSeq[j].Name.equalsAscii( WINDOWSTATE_PROPERTY_DOCKINGAREA ))
+ aPropValueSeq[j].Value >>= nDockedArea;
+ else if ( aPropValueSeq[j].Name.equalsAscii( WINDOWSTATE_PROPERTY_DOCKPOS ))
+ aPropValueSeq[j].Value >>= aDockedPos;
+ }
+
+ // Don't change toolbars without a valid docking position!
+ if ( isDefaultPos( aDockedPos ))
+ continue;
+
+ sal_Int32 nWindowRowCol = ( bHorzDockingArea ) ? aDockedPos.Y : aDockedPos.X;
+ if (( nDockedArea == eDockingArea ) && ( nWindowRowCol >= nRowCol ))
+ {
+ if ( bHorzDockingArea )
+ aDockedPos.Y += 1;
+ else
+ aDockedPos.X += 1;
+
+ uno::Reference< container::XNameReplace > xReplace( xPersistentWindowState, uno::UNO_QUERY );
+ xReplace->replaceByName( aWindowElements[i], makeAny( aPropValueSeq ));
+ }
+ }
+ catch ( uno::Exception& ) {}
+ }
+ }
+ }
+ catch ( uno::Exception& ) {}
+ }
+}
+
+//---------------------------------------------------------------------------------------------------------
+// XWindowListener
+//---------------------------------------------------------------------------------------------------------
+void SAL_CALL ToolbarLayoutManager::windowResized( const awt::WindowEvent& aEvent )
+throw( uno::RuntimeException )
+{
+ WriteGuard aWriteLock( m_aLock );
+ bool bLocked( m_bDockingInProgress );
+ bool bLayoutInProgress( m_bLayoutInProgress );
+ aWriteLock.unlock();
+
+ // Do not do anything if we are in the middle of a docking process. This would interfere all other
+ // operations. We will store the new position and size in the docking handlers.
+ // Do not do anything if we are in the middle of our layouting process. We will adapt the position
+ // and size of the user interface elements.
+ if ( !bLocked && !bLayoutInProgress )
+ {
+ bool bNotify( false );
+ uno::Reference< awt::XWindow > xWindow( aEvent.Source, uno::UNO_QUERY );
+
+ UIElement aUIElement = implts_findToolbar( aEvent.Source );
+ if ( aUIElement.m_xUIElement.is() )
+ {
+ if ( aUIElement.m_bFloating )
+ {
+ uno::Reference< awt::XWindow2 > xWindow2( xWindow, uno::UNO_QUERY );
+
+ if( xWindow2.is() )
+ {
+ awt::Rectangle aPos = xWindow2->getPosSize();
+ awt::Size aSize = xWindow2->getOutputSize(); // always use output size for consistency
+ bool bVisible = xWindow2->isVisible();
+
+ // update element data
+ aUIElement.m_aFloatingData.m_aPos = ::Point( aPos.X, aPos.Y );
+ aUIElement.m_aFloatingData.m_aSize = ::Size( aSize.Width, aSize.Height );
+ aUIElement.m_bVisible = bVisible;
+ }
+
+ implts_writeWindowStateData( aUIElement );
+ }
+ else
+ {
+ implts_setLayoutDirty();
+ bNotify = true;
+ }
+ }
+
+ if ( bNotify )
+ m_pParentLayouter->requestLayout( ILayoutNotifications::HINT_TOOLBARSPACE_HAS_CHANGED );
+ }
+}
+
+void SAL_CALL ToolbarLayoutManager::windowMoved( const awt::WindowEvent& /*aEvent*/ )
+throw( uno::RuntimeException )
+{
+}
+
+void SAL_CALL ToolbarLayoutManager::windowShown( const lang::EventObject& /*aEvent*/ )
+throw( uno::RuntimeException )
+{
+}
+
+void SAL_CALL ToolbarLayoutManager::windowHidden( const lang::EventObject& /*aEvent*/ )
+throw( uno::RuntimeException )
+{
+}
+
+//---------------------------------------------------------------------------------------------------------
+// XDockableWindowListener
+//---------------------------------------------------------------------------------------------------------
+void SAL_CALL ToolbarLayoutManager::startDocking( const awt::DockingEvent& e )
+throw (uno::RuntimeException)
+{
+ bool bWinFound( false );
+
+ ReadGuard aReadGuard( m_aLock );
+ uno::Reference< awt::XWindow2 > xContainerWindow( m_xContainerWindow );
+ uno::Reference< awt::XWindow2 > xWindow( e.Source, uno::UNO_QUERY );
+ aReadGuard.unlock();
+
+ Window* pContainerWindow( 0 );
+ Window* pWindow( 0 );
+ ::Point aMousePos;
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+ aMousePos = pContainerWindow->ScreenToOutputPixel( ::Point( e.MousePos.X, e.MousePos.Y ));
+ }
+
+ UIElement aUIElement = implts_findToolbar( e.Source );
+
+ if ( aUIElement.m_xUIElement.is() && xWindow.is() )
+ {
+ awt::Rectangle aRect;
+
+ bWinFound = true;
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+ if ( xDockWindow->isFloating() )
+ {
+ awt::Rectangle aPos = xWindow->getPosSize();
+ awt::Size aSize = xWindow->getOutputSize();
+
+ aUIElement.m_aFloatingData.m_aPos = ::Point( aPos.X, aPos.Y );
+ aUIElement.m_aFloatingData.m_aSize = ::Size( aSize.Width, aSize.Height );
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+ {
+ ToolBox* pToolBox = (ToolBox *)pWindow;
+ aUIElement.m_aFloatingData.m_nLines = pToolBox->GetFloatingLines();
+ aUIElement.m_aFloatingData.m_bIsHorizontal = isToolboxHorizontalAligned( pToolBox );
+ }
+ }
+ }
+
+ WriteGuard aWriteLock( m_aLock );
+ m_bDockingInProgress = bWinFound;
+ m_aDockUIElement = aUIElement;
+ m_aDockUIElement.m_bUserActive = true;
+ m_aStartDockMousePos = aMousePos;
+ aWriteLock.unlock();
+}
+
+awt::DockingData SAL_CALL ToolbarLayoutManager::docking( const awt::DockingEvent& e )
+throw (uno::RuntimeException)
+{
+ const sal_Int32 MAGNETIC_DISTANCE_UNDOCK = 25;
+ const sal_Int32 MAGNETIC_DISTANCE_DOCK = 20;
+
+ ReadGuard aReadLock( m_aLock );
+ awt::DockingData aDockingData;
+ uno::Reference< awt::XDockableWindow > xDockWindow( e.Source, uno::UNO_QUERY );
+ uno::Reference< awt::XWindow > xWindow( e.Source, uno::UNO_QUERY );
+ uno::Reference< awt::XWindow > xTopDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_TOP] );
+ uno::Reference< awt::XWindow > xLeftDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_LEFT] );
+ uno::Reference< awt::XWindow > xRightDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_RIGHT] );
+ uno::Reference< awt::XWindow > xBottomDockingWindow( m_xDockAreaWindows[ui::DockingArea_DOCKINGAREA_BOTTOM] );
+ uno::Reference< awt::XWindow2 > xContainerWindow( m_xContainerWindow );
+ UIElement aUIDockingElement( m_aDockUIElement );
+ DockingOperation eDockingOperation( DOCKOP_ON_COLROW );
+ bool bDockingInProgress( m_bDockingInProgress );
+ aReadLock.unlock();
+
+ if ( bDockingInProgress )
+ aDockingData.TrackingRectangle = e.TrackingRectangle;
+
+ if ( bDockingInProgress && xDockWindow.is() && xWindow.is() )
+ {
+ try
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+
+ sal_Int16 eDockingArea( -1 ); // none
+ sal_Int32 nMagneticZone( aUIDockingElement.m_bFloating ? MAGNETIC_DISTANCE_DOCK : MAGNETIC_DISTANCE_UNDOCK );
+ awt::Rectangle aNewTrackingRect;
+ ::Rectangle aTrackingRect( e.TrackingRectangle.X, e.TrackingRectangle.Y,
+ ( e.TrackingRectangle.X + e.TrackingRectangle.Width ),
+ ( e.TrackingRectangle.Y + e.TrackingRectangle.Height ));
+
+ awt::Rectangle aTmpRect = xTopDockingWindow->getPosSize();
+ ::Rectangle aTopDockRect( aTmpRect.X, aTmpRect.Y, aTmpRect.Width, aTmpRect.Height );
+ ::Rectangle aHotZoneTopDockRect( implts_calcHotZoneRect( aTopDockRect, nMagneticZone ));
+
+ aTmpRect = xBottomDockingWindow->getPosSize();
+ ::Rectangle aBottomDockRect( aTmpRect.X, aTmpRect.Y, ( aTmpRect.X + aTmpRect.Width), ( aTmpRect.Y + aTmpRect.Height ));
+ ::Rectangle aHotZoneBottomDockRect( implts_calcHotZoneRect( aBottomDockRect, nMagneticZone ));
+
+ aTmpRect = xLeftDockingWindow->getPosSize();
+ ::Rectangle aLeftDockRect( aTmpRect.X, aTmpRect.Y, ( aTmpRect.X + aTmpRect.Width ), ( aTmpRect.Y + aTmpRect.Height ));
+ ::Rectangle aHotZoneLeftDockRect( implts_calcHotZoneRect( aLeftDockRect, nMagneticZone ));
+
+ aTmpRect = xRightDockingWindow->getPosSize();
+ ::Rectangle aRightDockRect( aTmpRect.X, aTmpRect.Y, ( aTmpRect.X + aTmpRect.Width ), ( aTmpRect.Y + aTmpRect.Height ));
+ ::Rectangle aHotZoneRightDockRect( implts_calcHotZoneRect( aRightDockRect, nMagneticZone ));
+
+ Window* pContainerWindow( VCLUnoHelper::GetWindow( xContainerWindow ) );
+ Window* pDockingAreaWindow( 0 );
+ ::Point aMousePos( pContainerWindow->ScreenToOutputPixel( ::Point( e.MousePos.X, e.MousePos.Y )));
+
+ if ( aHotZoneTopDockRect.IsInside( aMousePos ))
+ eDockingArea = ui::DockingArea_DOCKINGAREA_TOP;
+ else if ( aHotZoneBottomDockRect.IsInside( aMousePos ))
+ eDockingArea = ui::DockingArea_DOCKINGAREA_BOTTOM;
+ else if ( aHotZoneLeftDockRect.IsInside( aMousePos ))
+ eDockingArea = ui::DockingArea_DOCKINGAREA_LEFT;
+ else if ( aHotZoneRightDockRect.IsInside( aMousePos ))
+ eDockingArea = ui::DockingArea_DOCKINGAREA_RIGHT;
+
+ // Higher priority for movements inside the real docking area
+ if ( aTopDockRect.IsInside( aMousePos ))
+ eDockingArea = ui::DockingArea_DOCKINGAREA_TOP;
+ else if ( aBottomDockRect.IsInside( aMousePos ))
+ eDockingArea = ui::DockingArea_DOCKINGAREA_BOTTOM;
+ else if ( aLeftDockRect.IsInside( aMousePos ))
+ eDockingArea = ui::DockingArea_DOCKINGAREA_LEFT;
+ else if ( aRightDockRect.IsInside( aMousePos ))
+ eDockingArea = ui::DockingArea_DOCKINGAREA_RIGHT;
+
+ // Determine if we have a toolbar and set alignment according to the docking area!
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ ToolBox* pToolBox = 0;
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+ pToolBox = (ToolBox *)pWindow;
+
+ if ( eDockingArea != -1 )
+ {
+ if ( eDockingArea == ui::DockingArea_DOCKINGAREA_TOP )
+ {
+ aUIDockingElement.m_aDockedData.m_nDockedArea = ui::DockingArea_DOCKINGAREA_TOP;
+ aUIDockingElement.m_bFloating = false;
+ pDockingAreaWindow = VCLUnoHelper::GetWindow( xTopDockingWindow );
+ }
+ else if ( eDockingArea == ui::DockingArea_DOCKINGAREA_BOTTOM )
+ {
+ aUIDockingElement.m_aDockedData.m_nDockedArea = ui::DockingArea_DOCKINGAREA_BOTTOM;
+ aUIDockingElement.m_bFloating = false;
+ pDockingAreaWindow = VCLUnoHelper::GetWindow( xBottomDockingWindow );
+ }
+ else if ( eDockingArea == ui::DockingArea_DOCKINGAREA_LEFT )
+ {
+ aUIDockingElement.m_aDockedData.m_nDockedArea = ui::DockingArea_DOCKINGAREA_LEFT;
+ aUIDockingElement.m_bFloating = false;
+ pDockingAreaWindow = VCLUnoHelper::GetWindow( xLeftDockingWindow );
+ }
+ else if ( eDockingArea == ui::DockingArea_DOCKINGAREA_RIGHT )
+ {
+ aUIDockingElement.m_aDockedData.m_nDockedArea = ui::DockingArea_DOCKINGAREA_RIGHT;
+ aUIDockingElement.m_bFloating = false;
+ pDockingAreaWindow = VCLUnoHelper::GetWindow( xRightDockingWindow );
+ }
+
+ ::Point aOutputPos = pContainerWindow->ScreenToOutputPixel( aTrackingRect.TopLeft() );
+ aTrackingRect.SetPos( aOutputPos );
+
+ ::Rectangle aNewDockingRect( aTrackingRect );
+ implts_calcDockingPosSize( aUIDockingElement, eDockingOperation, aNewDockingRect, aMousePos );
+
+ ::Point aScreenPos = pContainerWindow->OutputToScreenPixel( aNewDockingRect.TopLeft() );
+ aNewTrackingRect = awt::Rectangle( aScreenPos.X(), aScreenPos.Y(),
+ aNewDockingRect.getWidth(), aNewDockingRect.getHeight() );
+ aDockingData.TrackingRectangle = aNewTrackingRect;
+ }
+ else if ( pToolBox && bDockingInProgress )
+ {
+ bool bIsHorizontal = isToolboxHorizontalAligned( pToolBox );
+ ::Size aFloatSize = aUIDockingElement.m_aFloatingData.m_aSize;
+ if ( aFloatSize.Width() > 0 && aFloatSize.Height() > 0 )
+ {
+ aUIDockingElement.m_aFloatingData.m_aPos = pContainerWindow->ScreenToOutputPixel(
+ ::Point( e.MousePos.X, e.MousePos.Y ));
+ aDockingData.TrackingRectangle.Height = aFloatSize.Height();
+ aDockingData.TrackingRectangle.Width = aFloatSize.Width();
+ }
+ else
+ {
+ aFloatSize = pToolBox->CalcWindowSizePixel();
+ if ( !bIsHorizontal )
+ {
+ // Floating toolbars are always horizontal aligned! We have to swap
+ // width/height if we have a vertical aligned toolbar.
+ sal_Int32 nTemp = aFloatSize.Height();
+ aFloatSize.Height() = aFloatSize.Width();
+ aFloatSize.Width() = nTemp;
+ }
+
+ aDockingData.TrackingRectangle.Height = aFloatSize.Height();
+ aDockingData.TrackingRectangle.Width = aFloatSize.Width();
+
+ // For the first time we don't have any data about the floating size of a toolbar.
+ // We calculate it and store it for later use.
+ aUIDockingElement.m_aFloatingData.m_aPos = pContainerWindow->ScreenToOutputPixel(::Point( e.MousePos.X, e.MousePos.Y ));
+ aUIDockingElement.m_aFloatingData.m_aSize = aFloatSize;
+ aUIDockingElement.m_aFloatingData.m_nLines = pToolBox->GetFloatingLines();
+ aUIDockingElement.m_aFloatingData.m_bIsHorizontal = isToolboxHorizontalAligned( pToolBox );
+ }
+ aDockingData.TrackingRectangle.X = e.MousePos.X;
+ aDockingData.TrackingRectangle.Y = e.MousePos.Y;
+ }
+
+ aDockingData.bFloating = ( eDockingArea == -1 );
+
+ // Write current data to the member docking progress data
+ WriteGuard aWriteLock( m_aLock );
+ m_aDockUIElement.m_bFloating = aDockingData.bFloating;
+ if ( !aDockingData.bFloating )
+ {
+ m_aDockUIElement.m_aDockedData = aUIDockingElement.m_aDockedData;
+ m_eDockOperation = eDockingOperation;
+ }
+ else
+ m_aDockUIElement.m_aFloatingData = aUIDockingElement.m_aFloatingData;
+ aWriteLock.unlock();
+ }
+ catch ( uno::Exception& ) {}
+ }
+
+ return aDockingData;
+}
+
+void SAL_CALL ToolbarLayoutManager::endDocking( const awt::EndDockingEvent& e )
+throw (uno::RuntimeException)
+{
+ bool bDockingInProgress( false );
+ bool bStartDockFloated( false );
+ bool bFloating( false );
+ UIElement aUIDockingElement;
+
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ WriteGuard aWriteLock( m_aLock );
+ bDockingInProgress = m_bDockingInProgress;
+ aUIDockingElement = m_aDockUIElement;
+ bFloating = aUIDockingElement.m_bFloating;
+
+ UIElement& rUIElement = impl_findToolbar( aUIDockingElement.m_aName );
+ if ( rUIElement.m_aName == aUIDockingElement.m_aName )
+ {
+ if ( aUIDockingElement.m_bFloating )
+ {
+ // Write last position into position data
+ uno::Reference< awt::XWindow > xWindow( aUIDockingElement.m_xUIElement->getRealInterface(), uno::UNO_QUERY );
+ rUIElement.m_aFloatingData = aUIDockingElement.m_aFloatingData;
+ awt::Rectangle aTmpRect = xWindow->getPosSize();
+ rUIElement.m_aFloatingData.m_aPos = ::Point( aTmpRect.X, aTmpRect.Y );
+ // make changes also for our local data as we use it to make data persistent
+ aUIDockingElement.m_aFloatingData = rUIElement.m_aFloatingData;
+ }
+ else
+ {
+ rUIElement.m_aDockedData = aUIDockingElement.m_aDockedData;
+ rUIElement.m_aFloatingData.m_aSize = aUIDockingElement.m_aFloatingData.m_aSize;
+
+ if ( m_eDockOperation != DOCKOP_ON_COLROW )
+ {
+ // we have to renumber our row/column data to insert a new row/column
+ implts_renumberRowColumnData((ui::DockingArea)aUIDockingElement.m_aDockedData.m_nDockedArea, m_eDockOperation, aUIDockingElement );
+ }
+ }
+
+ bStartDockFloated = rUIElement.m_bFloating;
+ rUIElement.m_bFloating = m_aDockUIElement.m_bFloating;
+ rUIElement.m_bUserActive = true;
+ }
+
+ // reset member for next docking operation
+ m_aDockUIElement.m_xUIElement.clear();
+ m_eDockOperation = DOCKOP_ON_COLROW;
+ aWriteLock.unlock();
+ /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+
+ implts_writeWindowStateData( aUIDockingElement );
+
+ if ( bDockingInProgress )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Window* pWindow = VCLUnoHelper::GetWindow( uno::Reference< awt::XWindow >( e.Source, uno::UNO_QUERY ));
+ ToolBox* pToolBox = 0;
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+ pToolBox = (ToolBox *)pWindow;
+
+ if ( pToolBox )
+ {
+ if( e.bFloating )
+ {
+ if ( aUIDockingElement.m_aFloatingData.m_bIsHorizontal )
+ pToolBox->SetAlign( WINDOWALIGN_TOP );
+ else
+ pToolBox->SetAlign( WINDOWALIGN_LEFT );
+ }
+ else
+ {
+ ::Size aSize;
+
+ pToolBox->SetAlign( ImplConvertAlignment( aUIDockingElement.m_aDockedData.m_nDockedArea) );
+
+ // Docked toolbars have always one line
+ aSize = pToolBox->CalcWindowSizePixel( 1 );
+
+ // Lock layouting updates as our listener would be called due to SetSizePixel
+ pToolBox->SetOutputSizePixel( aSize );
+ }
+ }
+ }
+
+ implts_sortUIElements();
+
+ aWriteLock.lock();
+ m_bDockingInProgress = sal_False;
+ m_bLayoutDirty = !bStartDockFloated || !bFloating;
+ bool bNotify = m_bLayoutDirty;
+ aWriteLock.unlock();
+
+ if ( bNotify )
+ m_pParentLayouter->requestLayout( ILayoutNotifications::HINT_TOOLBARSPACE_HAS_CHANGED );
+}
+
+sal_Bool SAL_CALL ToolbarLayoutManager::prepareToggleFloatingMode( const lang::EventObject& e )
+throw (uno::RuntimeException)
+{
+ ReadGuard aReadLock( m_aLock );
+ bool bDockingInProgress = m_bDockingInProgress;
+ aReadLock.unlock();
+
+ UIElement aUIDockingElement = implts_findToolbar( e.Source );
+ bool bWinFound( aUIDockingElement.m_aName.getLength() > 0 );
+ uno::Reference< awt::XWindow > xWindow( e.Source, uno::UNO_QUERY );
+
+ if ( bWinFound && xWindow.is() )
+ {
+ if ( !bDockingInProgress )
+ {
+ awt::Rectangle aRect;
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+ if ( xDockWindow->isFloating() )
+ {
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+ {
+ ToolBox* pToolBox = static_cast< ToolBox *>( pWindow );
+ aUIDockingElement.m_aFloatingData.m_aPos = pToolBox->GetPosPixel();
+ aUIDockingElement.m_aFloatingData.m_aSize = pToolBox->GetOutputSizePixel();
+ aUIDockingElement.m_aFloatingData.m_nLines = pToolBox->GetFloatingLines();
+ aUIDockingElement.m_aFloatingData.m_bIsHorizontal = isToolboxHorizontalAligned( pToolBox );
+ }
+ }
+
+ UIElement aUIElement = implts_findToolbar( aUIDockingElement.m_aName );
+ if ( aUIElement.m_aName == aUIDockingElement.m_aName )
+ implts_setToolbar( aUIDockingElement );
+ }
+ }
+ }
+
+ return sal_True;
+}
+
+void SAL_CALL ToolbarLayoutManager::toggleFloatingMode( const lang::EventObject& e )
+throw (uno::RuntimeException)
+{
+ UIElement aUIDockingElement;
+
+ ReadGuard aReadLock( m_aLock );
+ bool bDockingInProgress( m_bDockingInProgress );
+ if ( bDockingInProgress )
+ aUIDockingElement = m_aDockUIElement;
+ aReadLock.unlock();
+
+ Window* pWindow( 0 );
+ ToolBox* pToolBox( 0 );
+ uno::Reference< awt::XWindow2 > xWindow;
+
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ xWindow = uno::Reference< awt::XWindow2 >( e.Source, uno::UNO_QUERY );
+ pWindow = VCLUnoHelper::GetWindow( xWindow );
+
+ if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+ pToolBox = (ToolBox *)pWindow;
+ }
+
+ if ( !bDockingInProgress )
+ {
+ aUIDockingElement = implts_findToolbar( e.Source );
+ bool bWinFound = ( aUIDockingElement.m_aName.getLength() > 0 );
+
+ if ( bWinFound && xWindow.is() )
+ {
+ aUIDockingElement.m_bFloating = !aUIDockingElement.m_bFloating;
+ aUIDockingElement.m_bUserActive = true;
+
+ implts_setLayoutInProgress( true );
+ if ( aUIDockingElement.m_bFloating )
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ if ( pToolBox )
+ {
+ pToolBox->SetLineCount( aUIDockingElement.m_aFloatingData.m_nLines );
+ if ( aUIDockingElement.m_aFloatingData.m_bIsHorizontal )
+ pToolBox->SetAlign( WINDOWALIGN_TOP );
+ else
+ pToolBox->SetAlign( WINDOWALIGN_LEFT );
+ }
+
+ bool bUndefPos = hasDefaultPosValue( aUIDockingElement.m_aFloatingData.m_aPos );
+ bool bSetSize = !hasEmptySize( aUIDockingElement.m_aFloatingData.m_aSize );
+
+ if ( bUndefPos )
+ aUIDockingElement.m_aFloatingData.m_aPos = implts_findNextCascadeFloatingPos();
+
+ if ( !bSetSize )
+ {
+ if ( pToolBox )
+ aUIDockingElement.m_aFloatingData.m_aSize = pToolBox->CalcFloatingWindowSizePixel();
+ else
+ aUIDockingElement.m_aFloatingData.m_aSize = pWindow->GetOutputSizePixel();
+ }
+
+ xWindow->setPosSize( aUIDockingElement.m_aFloatingData.m_aPos.X(),
+ aUIDockingElement.m_aFloatingData.m_aPos.Y(),
+ 0, 0, awt::PosSize::POS );
+ xWindow->setOutputSize( AWTSize( aUIDockingElement.m_aFloatingData.m_aSize ) );
+ }
+ else
+ {
+ if ( isDefaultPos( aUIDockingElement.m_aDockedData.m_aPos ))
+ {
+ // Docking on its default position without a preset position -
+ // we have to find a good place for it.
+ ::Point aPixelPos;
+ ::Point aDockPos;
+ ::Size aSize;
+
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ if ( pToolBox )
+ aSize = pToolBox->CalcWindowSizePixel( 1, ImplConvertAlignment( aUIDockingElement.m_aDockedData.m_nDockedArea ) );
+ else
+ aSize = pWindow->GetSizePixel();
+ }
+
+ implts_findNextDockingPos((ui::DockingArea)aUIDockingElement.m_aDockedData.m_nDockedArea, aSize, aDockPos, aPixelPos );
+ aUIDockingElement.m_aDockedData.m_aPos = aDockPos;
+ }
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ if ( pToolBox )
+ {
+ pToolBox->SetAlign( ImplConvertAlignment( aUIDockingElement.m_aDockedData.m_nDockedArea) );
+ ::Size aSize = pToolBox->CalcWindowSizePixel( 1 );
+ awt::Rectangle aRect = xWindow->getPosSize();
+ xWindow->setPosSize( aRect.X, aRect.Y, 0, 0, awt::PosSize::POS );
+ xWindow->setOutputSize( AWTSize( aSize ) );
+ }
+ }
+
+ implts_setLayoutInProgress( false );
+ implts_setToolbar( aUIDockingElement );
+ implts_writeWindowStateData( aUIDockingElement );
+ implts_sortUIElements();
+ implts_setLayoutDirty();
+
+ aReadLock.lock();
+ ILayoutNotifications* pParentLayouter( m_pParentLayouter );
+ aReadLock.unlock();
+
+ if ( pParentLayouter )
+ pParentLayouter->requestLayout( ILayoutNotifications::HINT_TOOLBARSPACE_HAS_CHANGED );
+ }
+ }
+ else
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ if ( pToolBox )
+ {
+ if ( aUIDockingElement.m_bFloating )
+ {
+ if ( aUIDockingElement.m_aFloatingData.m_bIsHorizontal )
+ pToolBox->SetAlign( WINDOWALIGN_TOP );
+ else
+ pToolBox->SetAlign( WINDOWALIGN_LEFT );
+ }
+ else
+ pToolBox->SetAlign( ImplConvertAlignment( aUIDockingElement.m_aDockedData.m_nDockedArea) );
+ }
+ }
+}
+
+void SAL_CALL ToolbarLayoutManager::closed( const lang::EventObject& e )
+throw (uno::RuntimeException)
+{
+ rtl::OUString aName;
+ UIElement aUIElement;
+ UIElementVector::iterator pIter;
+
+ WriteGuard aWriteLock( m_aLock );
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ uno::Reference< ui::XUIElement > xUIElement( pIter->m_xUIElement );
+ if ( xUIElement.is() )
+ {
+ uno::Reference< uno::XInterface > xIfac( xUIElement->getRealInterface(), uno::UNO_QUERY );
+ if ( xIfac == e.Source )
+ {
+ aName = pIter->m_aName;
+
+ // user closes a toolbar =>
+ // context sensitive toolbar: only destroy toolbar and store state.
+ // context sensitive toolbar: make it invisible, store state and destroy it.
+ if ( !pIter->m_bContextSensitive )
+ pIter->m_bVisible = sal_False;
+
+ aUIElement = *pIter;
+ break;
+ }
+ }
+ }
+ aWriteLock.unlock();
+
+ // destroy element
+ if ( aName.getLength() > 0 )
+ {
+ implts_writeWindowStateData( aUIElement );
+ destroyToolbar( aName );
+ }
+}
+
+void SAL_CALL ToolbarLayoutManager::endPopupMode( const awt::EndPopupModeEvent& /*e*/ )
+throw (uno::RuntimeException)
+{
+}
+
+//---------------------------------------------------------------------------------------------------------
+// XUIConfigurationListener
+//---------------------------------------------------------------------------------------------------------
+void SAL_CALL ToolbarLayoutManager::elementInserted( const ui::ConfigurationEvent& rEvent )
+throw (uno::RuntimeException)
+{
+ UIElement aUIElement = implts_findToolbar( rEvent.ResourceURL );
+
+ uno::Reference< ui::XUIElementSettings > xElementSettings( aUIElement.m_xUIElement, uno::UNO_QUERY );
+ if ( xElementSettings.is() )
+ {
+ ::rtl::OUString aConfigSourcePropName( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
+ uno::Reference< beans::XPropertySet > xPropSet( xElementSettings, uno::UNO_QUERY );
+ if ( xPropSet.is() )
+ {
+ if ( rEvent.Source == uno::Reference< uno::XInterface >( m_xDocCfgMgr, uno::UNO_QUERY ))
+ xPropSet->setPropertyValue( aConfigSourcePropName, makeAny( m_xDocCfgMgr ));
+ }
+ xElementSettings->updateSettings();
+ }
+ else
+ {
+ ::rtl::OUString aElementType;
+ ::rtl::OUString aElementName;
+ parseResourceURL( rEvent.ResourceURL, aElementType, aElementName );
+ if ( aElementName.indexOf( m_aCustomTbxPrefix ) != -1 )
+ {
+ // custom toolbar must be directly created, shown and layouted!
+ createToolbar( rEvent.ResourceURL );
+ uno::Reference< ui::XUIElement > xUIElement = getToolbar( rEvent.ResourceURL );
+ if ( xUIElement.is() )
+ {
+ ::rtl::OUString aUIName;
+ uno::Reference< ui::XUIConfigurationManager > xCfgMgr;
+ uno::Reference< beans::XPropertySet > xPropSet;
+
+ try
+ {
+ xCfgMgr = uno::Reference< ui::XUIConfigurationManager >( rEvent.Source, uno::UNO_QUERY );
+ xPropSet = uno::Reference< beans::XPropertySet >( xCfgMgr->getSettings( rEvent.ResourceURL, sal_False ), uno::UNO_QUERY );
+
+ if ( xPropSet.is() )
+ xPropSet->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "UIName" ))) >>= aUIName;
+ }
+ catch ( container::NoSuchElementException& ) {}
+ catch ( beans::UnknownPropertyException& ) {}
+ catch ( lang::WrappedTargetException& ) {}
+
+ {
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ Window* pWindow = getWindowFromXUIElement( xUIElement );
+ if ( pWindow )
+ pWindow->SetText( aUIName );
+ }
+
+ showToolbar( rEvent.ResourceURL );
+ }
+ }
+ }
+}
+
+void SAL_CALL ToolbarLayoutManager::elementRemoved( const ui::ConfigurationEvent& rEvent )
+throw (uno::RuntimeException)
+{
+ ReadGuard aReadLock( m_aLock );
+ uno::Reference< awt::XWindow > xContainerWindow( m_xContainerWindow, uno::UNO_QUERY );
+ uno::Reference< ui::XUIConfigurationManager > xModuleCfgMgr( m_xModuleCfgMgr );
+ uno::Reference< ui::XUIConfigurationManager > xDocCfgMgr( m_xDocCfgMgr );
+ aReadLock.unlock();
+
+ UIElement aUIElement = implts_findToolbar( rEvent.ResourceURL );
+ uno::Reference< ui::XUIElementSettings > xElementSettings( aUIElement.m_xUIElement, uno::UNO_QUERY );
+ if ( xElementSettings.is() )
+ {
+ bool bNoSettings( false );
+ ::rtl::OUString aConfigSourcePropName( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
+ uno::Reference< uno::XInterface > xElementCfgMgr;
+ uno::Reference< beans::XPropertySet > xPropSet( xElementSettings, uno::UNO_QUERY );
+
+ if ( xPropSet.is() )
+ xPropSet->getPropertyValue( aConfigSourcePropName ) >>= xElementCfgMgr;
+
+ if ( !xElementCfgMgr.is() )
+ return;
+
+ // Check if the same UI configuration manager has changed => check further
+ if ( rEvent.Source == xElementCfgMgr )
+ {
+ // Same UI configuration manager where our element has its settings
+ if ( rEvent.Source == uno::Reference< uno::XInterface >( xDocCfgMgr, uno::UNO_QUERY ))
+ {
+ // document settings removed
+ if ( xModuleCfgMgr->hasSettings( rEvent.ResourceURL ))
+ {
+ xPropSet->setPropertyValue( aConfigSourcePropName, makeAny( xModuleCfgMgr ));
+ xElementSettings->updateSettings();
+ return;
+ }
+ }
+
+ bNoSettings = true;
+ }
+
+ // No settings anymore, element must be destroyed
+ if ( xContainerWindow.is() && bNoSettings )
+ destroyToolbar( rEvent.ResourceURL );
+ }
+}
+
+void SAL_CALL ToolbarLayoutManager::elementReplaced( const ui::ConfigurationEvent& rEvent )
+throw (uno::RuntimeException)
+{
+ UIElement aUIElement = implts_findToolbar( rEvent.ResourceURL );
+
+ uno::Reference< ui::XUIElementSettings > xElementSettings( aUIElement.m_xUIElement, uno::UNO_QUERY );
+ if ( xElementSettings.is() )
+ {
+ ::rtl::OUString aConfigSourcePropName( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
+ uno::Reference< uno::XInterface > xElementCfgMgr;
+ uno::Reference< beans::XPropertySet > xPropSet( xElementSettings, uno::UNO_QUERY );
+
+ if ( xPropSet.is() )
+ xPropSet->getPropertyValue( aConfigSourcePropName ) >>= xElementCfgMgr;
+
+ if ( !xElementCfgMgr.is() )
+ return;
+
+ // Check if the same UI configuration manager has changed => update settings
+ if ( rEvent.Source == xElementCfgMgr )
+ {
+ xElementSettings->updateSettings();
+
+ WriteGuard aWriteLock( m_aLock );
+ bool bNotify = !aUIElement.m_bFloating;
+ m_bLayoutDirty = bNotify;
+ ILayoutNotifications* pParentLayouter( m_pParentLayouter );
+ aWriteLock.unlock();
+
+ if ( bNotify && pParentLayouter )
+ pParentLayouter->requestLayout( ILayoutNotifications::HINT_TOOLBARSPACE_HAS_CHANGED );
+ }
+ }
+}
+
+uno::Reference< ui::XUIElement > ToolbarLayoutManager::getToolbar( const ::rtl::OUString& aName )
+{
+ return implts_findToolbar( aName ).m_xUIElement;
+}
+
+uno::Sequence< uno::Reference< ui::XUIElement > > ToolbarLayoutManager::getToolbars()
+{
+ uno::Sequence< uno::Reference< ui::XUIElement > > aSeq;
+
+ ReadGuard aReadLock( m_aLock );
+ if ( m_aUIElements.size() > 0 )
+ {
+ sal_uInt32 nCount(0);
+ UIElementVector::iterator pIter;
+ for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+ {
+ if ( pIter->m_xUIElement.is() )
+ {
+ ++nCount;
+ aSeq.realloc( nCount );
+ aSeq[nCount-1] = pIter->m_xUIElement;
+ }
+ }
+ }
+
+ return aSeq;
+}
+
+bool ToolbarLayoutManager::floatToolbar( const ::rtl::OUString& rResourceURL )
+{
+ UIElement aUIElement = implts_findToolbar( rResourceURL );
+ if ( aUIElement.m_xUIElement.is() )
+ {
+ try
+ {
+ uno::Reference< awt::XDockableWindow > xDockWindow( aUIElement.m_xUIElement->getRealInterface(), uno::UNO_QUERY );
+ if ( xDockWindow.is() && !xDockWindow->isFloating() )
+ {
+ aUIElement.m_bFloating = true;
+ implts_writeWindowStateData( aUIElement );
+ xDockWindow->setFloatingMode( true );
+
+ implts_setLayoutDirty();
+ implts_setToolbar( aUIElement );
+ return true;
+ }
+ }
+ catch ( lang::DisposedException& ) {}
+ }
+
+ return false;
+}
+
+bool ToolbarLayoutManager::lockToolbar( const ::rtl::OUString& rResourceURL )
+{
+ UIElement aUIElement = implts_findToolbar( rResourceURL );
+ if ( aUIElement.m_xUIElement.is() )
+ {
+ try
+ {
+ uno::Reference< awt::XDockableWindow > xDockWindow( aUIElement.m_xUIElement->getRealInterface(), uno::UNO_QUERY );
+ if ( xDockWindow.is() && !xDockWindow->isFloating() && !xDockWindow->isLocked() )
+ {
+ aUIElement.m_aDockedData.m_bLocked = true;
+ implts_writeWindowStateData( aUIElement );
+ xDockWindow->lock();
+
+ implts_setLayoutDirty();
+ implts_setToolbar( aUIElement );
+ return true;
+ }
+ }
+ catch ( lang::DisposedException& ) {}
+ }
+
+ return false;
+}
+
+bool ToolbarLayoutManager::unlockToolbar( const ::rtl::OUString& rResourceURL )
+{
+ UIElement aUIElement = implts_findToolbar( rResourceURL );
+ if ( aUIElement.m_xUIElement.is() )
+ {
+ try
+ {
+ uno::Reference< awt::XDockableWindow > xDockWindow( aUIElement.m_xUIElement->getRealInterface(), uno::UNO_QUERY );
+ if ( xDockWindow.is() && !xDockWindow->isFloating() && xDockWindow->isLocked() )
+ {
+ aUIElement.m_aDockedData.m_bLocked = false;
+ implts_writeWindowStateData( aUIElement );
+ xDockWindow->unlock();
+
+ implts_setLayoutDirty();
+ implts_setToolbar( aUIElement );
+ return true;
+ }
+ }
+ catch ( lang::DisposedException& ) {}
+ }
+
+ return false;
+}
+
+bool ToolbarLayoutManager::isToolbarVisible( const ::rtl::OUString& rResourceURL )
+{
+ uno::Reference< awt::XWindow2 > xWindow2( implts_getXWindow( rResourceURL ), uno::UNO_QUERY );
+ return ( xWindow2.is() && xWindow2->isVisible() );
+}
+
+bool ToolbarLayoutManager::isToolbarFloating( const ::rtl::OUString& rResourceURL )
+{
+ uno::Reference< awt::XDockableWindow > xDockWindow( implts_getXWindow( rResourceURL ), uno::UNO_QUERY );
+ return ( xDockWindow.is() && xDockWindow->isFloating() );
+}
+
+bool ToolbarLayoutManager::isToolbarDocked( const ::rtl::OUString& rResourceURL )
+{
+ return !isToolbarFloating( rResourceURL );
+}
+
+bool ToolbarLayoutManager::isToolbarLocked( const ::rtl::OUString& rResourceURL )
+{
+ uno::Reference< awt::XDockableWindow > xDockWindow( implts_getXWindow( rResourceURL ), uno::UNO_QUERY );
+ return ( xDockWindow.is() && xDockWindow->isLocked() );
+}
+
+awt::Size ToolbarLayoutManager::getToolbarSize( const ::rtl::OUString& rResourceURL )
+{
+ Window* pWindow = implts_getWindow( rResourceURL );
+
+ vos::OGuard aGuard( Application::GetSolarMutex() );
+ if ( pWindow )
+ {
+ ::Size aSize = pWindow->GetSizePixel();
+ awt::Size aWinSize;
+ aWinSize.Width = aSize.Width();
+ aWinSize.Height = aSize.Height();
+ return aWinSize;
+ }
+
+ return awt::Size();
+}
+
+awt::Point ToolbarLayoutManager::getToolbarPos( const ::rtl::OUString& rResourceURL )
+{
+ awt::Point aPos;
+ UIElement aUIElement = implts_findToolbar( rResourceURL );
+
+ uno::Reference< awt::XWindow > xWindow( implts_getXWindow( rResourceURL ));
+ if ( xWindow.is() )
+ {
+ if ( aUIElement.m_bFloating )
+ {
+ awt::Rectangle aRect = xWindow->getPosSize();
+ aPos.X = aRect.X;
+ aPos.Y = aRect.Y;
+ }
+ else
+ {
+ ::Point aVirtualPos = aUIElement.m_aDockedData.m_aPos;
+ aPos.X = aVirtualPos.X();
+ aPos.Y = aVirtualPos.Y();
+ }
+ }
+
+ return aPos;
+}
+
+void ToolbarLayoutManager::setToolbarSize( const ::rtl::OUString& rResourceURL, const awt::Size& aSize )
+{
+ uno::Reference< awt::XWindow2 > xWindow( implts_getXWindow( rResourceURL ), uno::UNO_QUERY );
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+ UIElement aUIElement = implts_findToolbar( rResourceURL );
+
+ if ( xWindow.is() && xDockWindow.is() && xDockWindow->isFloating() )
+ {
+ xWindow->setOutputSize( aSize );
+ aUIElement.m_aFloatingData.m_aSize = ::Size( aSize.Width, aSize.Height );
+ implts_setToolbar( aUIElement );
+ implts_writeWindowStateData( aUIElement );
+ implts_sortUIElements();
+ }
+}
+
+void ToolbarLayoutManager::setToolbarPos( const ::rtl::OUString& rResourceURL, const awt::Point& aPos )
+{
+ uno::Reference< awt::XWindow > xWindow( implts_getXWindow( rResourceURL ));
+ uno::Reference< awt::XDockableWindow > xDockWindow( xWindow, uno::UNO_QUERY );
+ UIElement aUIElement = implts_findToolbar( rResourceURL );
+
+ if ( xWindow.is() && xDockWindow.is() && xDockWindow->isFloating() )
+ {
+ xWindow->setPosSize( aPos.X, aPos.Y, 0, 0, awt::PosSize::POS );
+ aUIElement.m_aFloatingData.m_aPos = ::Point( aPos.X, aPos.Y );
+ implts_setToolbar( aUIElement );
+ implts_writeWindowStateData( aUIElement );
+ implts_sortUIElements();
+ }
+}
+
+void ToolbarLayoutManager::setToolbarPosSize( const ::rtl::OUString& rResourceURL, const awt::Point& aPos, const awt::Size& aSize )
+{
+ setToolbarPos( rResourceURL, aPos );
+ setToolbarSize( rResourceURL, aSize );
+}
+
+} // namespace framework
diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.hxx b/framework/source/layoutmanager/toolbarlayoutmanager.hxx
new file mode 100755
index 000000000000..df6b36020f93
--- /dev/null
+++ b/framework/source/layoutmanager/toolbarlayoutmanager.hxx
@@ -0,0 +1,344 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FRAMEWORK_LAYOUTMANAGER_TOOLBARLAYOUTMANAGER_HXX_
+#define __FRAMEWORK_LAYOUTMANAGER_TOOLBARLAYOUTMANAGER_HXX_
+
+/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble
+ with solaris headers ...
+*/
+#include <vector>
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+#include <threadhelp/threadhelpbase.hxx>
+#include <threadhelp/resetableguard.hxx>
+#include <threadhelp/writeguard.hxx>
+#include <threadhelp/readguard.hxx>
+#include <macros/generic.hxx>
+#include <macros/xinterface.hxx>
+#include <macros/xtypeprovider.hxx>
+#include <macros/xserviceinfo.hxx>
+#include <stdtypes.h>
+#include <properties.h>
+#include <stdtypes.h>
+#include <uiconfiguration/globalsettings.hxx>
+#include <uiconfiguration/windowstateconfiguration.hxx>
+#include <framework/addonsoptions.hxx>
+#include <uielement/uielement.hxx>
+#include <helper/ilayoutnotifications.hxx>
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <com/sun/star/frame/XLayoutManager.hpp>
+#include <com/sun/star/ui/XUIConfigurationManager.hpp>
+#include <com/sun/star/ui/XUIConfiguration.hpp>
+#include <com/sun/star/frame/XModuleManager.hpp>
+#include <com/sun/star/frame/XFrameActionListener.hpp>
+#include <com/sun/star/awt/XWindowListener.hpp>
+#include <com/sun/star/util/XURLTransformer.hpp>
+#include <com/sun/star/ui/XUIElementFactory.hpp>
+#include <com/sun/star/ui/DockingArea.hpp>
+#include <com/sun/star/awt/XTopWindow2.hpp>
+#include <com/sun/star/awt/XWindow2.hpp>
+#include <com/sun/star/awt/XDockableWindow.hpp>
+#include <com/sun/star/awt/XDockableWindowListener.hpp>
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+
+#include <cppuhelper/implbase3.hxx>
+
+
+namespace framework
+{
+
+class ToolbarLayoutManager : public ::cppu::WeakImplHelper3< ::com::sun::star::awt::XDockableWindowListener,
+ ::com::sun::star::ui::XUIConfigurationListener,
+ ::com::sun::star::awt::XWindowListener >,
+ private ThreadHelpBase // Struct for right initalization of mutex member! Must be first of baseclasses.
+{
+ public:
+ enum { DOCKINGAREAS_COUNT = 4 };
+
+ ToolbarLayoutManager( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xSMGR,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElementFactory >& xUIElementFactory,
+ ILayoutNotifications* pParentLayouter );
+ virtual ~ToolbarLayoutManager();
+
+ void reset();
+ void attach( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager >& xModuleCfgMgr,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager >& xDocCfgMgr,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& xPersistentWindowState );
+
+ void setParentWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer >& xParentWindow );
+ void setDockingAreaOffsets( const ::Rectangle aOffsets );
+
+ void resetDockingArea();
+
+ ::com::sun::star::awt::Rectangle getDockingArea();
+ void setDockingArea( const ::com::sun::star::awt::Rectangle& rDockingArea );
+
+ // layouting
+ bool isLayoutDirty();
+ void doLayout(const ::Size& aContainerSize);
+
+ // creation/destruction
+ void createStaticToolbars();
+ void destroyToolbars();
+
+ bool requestToolbar( const ::rtl::OUString& rResourceURL );
+ bool createToolbar( const ::rtl::OUString& rResourceURL );
+ bool destroyToolbar( const ::rtl::OUString& rResourceURL );
+
+ // visibility
+ bool showToolbar( const ::rtl::OUString& rResourceURL );
+ bool hideToolbar( const ::rtl::OUString& rResourceURL );
+
+ void refreshToolbarsVisibility( bool bAutomaticToolbars );
+ void setFloatingToolbarsVisibility( bool bVisible );
+ void setVisible(bool bVisible);
+ bool isVisible() { return m_bVisible; }
+
+ // docking and further functions
+ bool dockToolbar( const ::rtl::OUString& rResourceURL, ::com::sun::star::ui::DockingArea eDockingArea, const ::com::sun::star::awt::Point& aPos );
+ bool dockAllToolbars();
+ bool floatToolbar( const ::rtl::OUString& rResoureURL );
+ bool lockToolbar( const ::rtl::OUString& rResourceURL );
+ bool unlockToolbar( const ::rtl::OUString& rResourceURL );
+ void setToolbarPos( const ::rtl::OUString& rResourceURL, const ::com::sun::star::awt::Point& aPos );
+ void setToolbarSize( const ::rtl::OUString& rResourceURL, const ::com::sun::star::awt::Size& aSize );
+ void setToolbarPosSize( const ::rtl::OUString& rResourceURL, const ::com::sun::star::awt::Point& aPos, const ::com::sun::star::awt::Size& aSize );
+ bool isToolbarVisible( const ::rtl::OUString& rResourceURL );
+ bool isToolbarFloating( const ::rtl::OUString& rResourceURL );
+ bool isToolbarDocked( const ::rtl::OUString& rResourceURL );
+ bool isToolbarLocked( const ::rtl::OUString& rResourceURL );
+ ::com::sun::star::awt::Point getToolbarPos( const ::rtl::OUString& rResourceURL );
+ ::com::sun::star::awt::Size getToolbarSize( const ::rtl::OUString& rResourceURL );
+ ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement > getToolbar( const ::rtl::OUString& aName );
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement > > getToolbars();
+
+ // child window notifications
+ long childWindowEvent( VclSimpleEvent* pEvent );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XInterface
+ //---------------------------------------------------------------------------------------------------------
+ virtual void SAL_CALL acquire() throw();
+ virtual void SAL_CALL release() throw();
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw( ::com::sun::star::uno::RuntimeException );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XEventListener
+ //---------------------------------------------------------------------------------------------------------
+ virtual void SAL_CALL disposing( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XWindowListener
+ //---------------------------------------------------------------------------------------------------------
+ virtual void SAL_CALL windowResized( const css::awt::WindowEvent& aEvent ) throw( css::uno::RuntimeException );
+ virtual void SAL_CALL windowMoved( const css::awt::WindowEvent& aEvent ) throw( css::uno::RuntimeException );
+ virtual void SAL_CALL windowShown( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException );
+ virtual void SAL_CALL windowHidden( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XDockableWindowListener
+ //---------------------------------------------------------------------------------------------------------
+ virtual void SAL_CALL startDocking( const ::com::sun::star::awt::DockingEvent& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::DockingData SAL_CALL docking( const ::com::sun::star::awt::DockingEvent& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL endDocking( const ::com::sun::star::awt::EndDockingEvent& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL prepareToggleFloatingMode( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL toggleFloatingMode( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL closed( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL endPopupMode( const ::com::sun::star::awt::EndPopupModeEvent& e ) throw (::com::sun::star::uno::RuntimeException);
+
+ //---------------------------------------------------------------------------------------------------------
+ // XUIConfigurationListener
+ //---------------------------------------------------------------------------------------------------------
+ virtual void SAL_CALL elementInserted( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL elementRemoved( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL elementReplaced( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
+
+ private:
+ enum DockingOperation
+ {
+ DOCKOP_BEFORE_COLROW,
+ DOCKOP_ON_COLROW,
+ DOCKOP_AFTER_COLROW
+ };
+
+ typedef std::vector< UIElement > UIElementVector;
+ struct SingleRowColumnWindowData
+ {
+ SingleRowColumnWindowData() : nVarSize( 0 ), nStaticSize( 0 ), nSpace( 0 ) {}
+
+ std::vector< rtl::OUString > aUIElementNames;
+ std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > > aRowColumnWindows;
+ std::vector< ::com::sun::star::awt::Rectangle > aRowColumnWindowSizes;
+ std::vector< sal_Int32 > aRowColumnSpace;
+ ::com::sun::star::awt::Rectangle aRowColumnRect;
+ sal_Int32 nVarSize;
+ sal_Int32 nStaticSize;
+ sal_Int32 nSpace;
+ sal_Int32 nRowColumn;
+ };
+
+ //---------------------------------------------------------------------------------------------------------
+ // internal helper methods
+ //---------------------------------------------------------------------------------------------------------
+ bool implts_isParentWindowVisible() const;
+ ::Rectangle implts_calcDockingArea();
+ void implts_sortUIElements();
+ void implts_reparentToolbars();
+ rtl::OUString implts_generateGenericAddonToolbarTitle( sal_Int32 nNumber ) const;
+ void implts_setElementData( UIElement& rUIElement, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDockableWindow >& rDockWindow );
+ void implts_destroyDockingAreaWindows();
+
+ //---------------------------------------------------------------------------------------------------------
+ // layout methods
+ //---------------------------------------------------------------------------------------------------------
+ void implts_setDockingAreaWindowSizes( const ::com::sun::star::awt::Rectangle& rBorderSpace );
+ ::Point implts_findNextCascadeFloatingPos();
+ void implts_renumberRowColumnData( ::com::sun::star::ui::DockingArea eDockingArea, DockingOperation eDockingOperation, const UIElement& rUIElement );
+ void implts_calcWindowPosSizeOnSingleRowColumn( sal_Int32 nDockingArea,
+ sal_Int32 nOffset,
+ SingleRowColumnWindowData& rRowColumnWindowData,
+ const ::Size& rContainerSize );
+ void implts_setLayoutDirty();
+ void implts_setLayoutInProgress( bool bInProgress = true );
+ bool implts_isLayoutInProgress() const { return m_bLayoutInProgress; }
+
+ //---------------------------------------------------------------------------------------------------------
+ // lookup/container methods
+ //---------------------------------------------------------------------------------------------------------
+ UIElement implts_findToolbar( const rtl::OUString& aName );
+ UIElement implts_findToolbar( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xToolbar );
+ UIElement& impl_findToolbar( const rtl::OUString& aName );
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > implts_getXWindow( const ::rtl::OUString& aName );
+ Window* implts_getWindow( const ::rtl::OUString& aName );
+ bool implts_insertToolbar( const UIElement& rUIElement );
+ void implts_setToolbar( const UIElement& rUIElement );
+ ::Size implts_getTopBottomDockingAreaSizes();
+ void implts_getUIElementVectorCopy( UIElementVector& rCopy );
+
+ //---------------------------------------------------------------------------------------------------------
+ // internal docking methods
+ //---------------------------------------------------------------------------------------------------------
+ ::Rectangle implts_calcHotZoneRect( const ::Rectangle& rRect, sal_Int32 nHotZoneOffset );
+ void implts_calcDockingPosSize( UIElement& aUIElement, DockingOperation& eDockOperation, ::Rectangle& rTrackingRect, const Point& rMousePos );
+ DockingOperation implts_determineDockingOperation( ::com::sun::star::ui::DockingArea DockingArea, const ::Rectangle& rRowColRect, const Point& rMousePos );
+ ::Rectangle implts_getWindowRectFromRowColumn( ::com::sun::star::ui::DockingArea DockingArea, const SingleRowColumnWindowData& rRowColumnWindowData, const ::Point& rMousePos, const rtl::OUString& rExcludeElementName );
+ ::Rectangle implts_determineFrontDockingRect( ::com::sun::star::ui::DockingArea eDockingArea,
+ sal_Int32 nRowCol,
+ const ::Rectangle& rDockedElementRect,
+ const ::rtl::OUString& rMovedElementName,
+ const ::Rectangle& rMovedElementRect );
+ ::Rectangle implts_calcTrackingAndElementRect( ::com::sun::star::ui::DockingArea eDockingArea,
+ sal_Int32 nRowCol,
+ UIElement& rUIElement,
+ const ::Rectangle& rTrackingRect,
+ const ::Rectangle& rRowColumnRect,
+ const ::Size& rContainerWinSize );
+
+ void implts_getDockingAreaElementInfos( ::com::sun::star::ui::DockingArea DockingArea, std::vector< SingleRowColumnWindowData >& rRowColumnsWindowData );
+ void implts_getDockingAreaElementInfoOnSingleRowCol( ::com::sun::star::ui::DockingArea, sal_Int32 nRowCol, SingleRowColumnWindowData& rRowColumnWindowData );
+ void implts_findNextDockingPos( ::com::sun::star::ui::DockingArea DockingArea, const ::Size& aUIElementSize, ::Point& rVirtualPos, ::Point& rPixelPos );
+ void implts_setTrackingRect( ::com::sun::star::ui::DockingArea eDockingArea, const ::Point& rMousePos, ::Rectangle& rTrackingRect );
+
+ //---------------------------------------------------------------------------------------------------------
+ // creation methods
+ //---------------------------------------------------------------------------------------------------------
+ void implts_createAddonsToolBars();
+ void implts_createCustomToolBars();
+ void implts_createNonContextSensitiveToolBars();
+ void implts_createCustomToolBars( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& aCustomTbxSeq );
+ void implts_createCustomToolBar( const rtl::OUString& aTbxResName, const rtl::OUString& aTitle );
+ void implts_createToolBar( const ::rtl::OUString& aName, bool& bNotify, ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement >& rUIElement );
+ css::uno::Reference< css::ui::XUIElement > implts_createElement( const ::rtl::OUString& aName );
+ void implts_setToolbarCreation( bool bStart = true );
+ bool implts_isToolbarCreationActive();
+
+ //---------------------------------------------------------------------------------------------------------
+ // persistence methods
+ //---------------------------------------------------------------------------------------------------------
+ sal_Bool implts_readWindowStateData( const rtl::OUString& aName, UIElement& rElementData );
+ void implts_writeWindowStateData( const UIElement& rElementData );
+ void implts_writeNewWindowStateData( const rtl::OUString aName, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& xWindow );
+
+ //---------------------------------------------------------------------------------------------------------
+ // members
+ //---------------------------------------------------------------------------------------------------------
+ css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+ css::uno::Reference< css::frame::XFrame > m_xFrame;
+ css::uno::Reference< css::awt::XWindow2 > m_xContainerWindow;
+ css::uno::Reference< css::awt::XWindow > m_xDockAreaWindows[DOCKINGAREAS_COUNT];
+ css::uno::Reference< ::com::sun::star::ui::XUIElementFactory > m_xUIElementFactoryManager;
+ css::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager > m_xModuleCfgMgr;
+ css::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager > m_xDocCfgMgr;
+ css::uno::Reference< ::com::sun::star::awt::XToolkit > m_xToolkit;
+ css::uno::Reference< ::com::sun::star::container::XNameAccess > m_xPersistentWindowState;
+ ILayoutNotifications* m_pParentLayouter;
+
+ UIElementVector m_aUIElements;
+ UIElement m_aDockUIElement;
+ Point m_aStartDockMousePos;
+ Rectangle m_aDockingArea;
+ Rectangle m_aDockingAreaOffsets;
+ DockingOperation m_eDockOperation;
+
+ AddonsOptions* m_pAddonOptions;
+ GlobalSettings* m_pGlobalSettings;
+
+ bool m_bComponentAttached;
+ bool m_bMustLayout;
+ bool m_bLayoutDirty;
+ bool m_bStoreWindowState;
+ bool m_bGlobalSettings;
+ bool m_bDockingInProgress;
+ bool m_bVisible;
+ bool m_bLayoutInProgress;
+ bool m_bToolbarCreation;
+
+ ::rtl::OUString m_aFullAddonTbxPrefix;
+ ::rtl::OUString m_aCustomTbxPrefix;
+ ::rtl::OUString m_aCustomizeCmd;
+ ::rtl::OUString m_aToolbarTypeString;
+ ::rtl::OUString m_aModuleIdentifier;
+};
+
+} // namespace framework
+
+#endif // __FRAMEWORK_LAYOUTMANAGER_TOOLBARLAYOUTMANAGER_HXX_
diff --git a/framework/source/layoutmanager/uielement.cxx b/framework/source/layoutmanager/uielement.cxx
new file mode 100755
index 000000000000..dda5aa352a08
--- /dev/null
+++ b/framework/source/layoutmanager/uielement.cxx
@@ -0,0 +1,156 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: layoutmanager.hxx,v $
+ * $Revision: 1.34 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_framework.hxx"
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include <uielement/uielement.hxx>
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#include <com/sun/star/ui/DockingArea.hpp>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+using namespace ::com::sun::star;
+
+namespace framework
+{
+
+ bool UIElement::operator< ( const ::framework::UIElement& aUIElement ) const
+{
+ if ( !m_xUIElement.is() && aUIElement.m_xUIElement.is() )
+ return false;
+ else if ( m_xUIElement.is() && !aUIElement.m_xUIElement.is() )
+ return true;
+ else if ( !m_bVisible && aUIElement.m_bVisible )
+ return false;
+ else if ( m_bVisible && !aUIElement.m_bVisible )
+ return true;
+ else if ( !m_bFloating && aUIElement.m_bFloating )
+ return true;
+ else if ( m_bFloating && !aUIElement.m_bFloating )
+ return false;
+ else
+ {
+ if ( m_bFloating )
+ {
+ bool bEqual = ( m_aFloatingData.m_aPos.Y() == aUIElement.m_aFloatingData.m_aPos.Y() );
+ if ( bEqual )
+ return ( m_aFloatingData.m_aPos.X() < aUIElement.m_aFloatingData.m_aPos.X() );
+ else
+ return ( m_aFloatingData.m_aPos.Y() < aUIElement.m_aFloatingData.m_aPos.Y() );
+ }
+ else
+ {
+ if ( m_aDockedData.m_nDockedArea < aUIElement.m_aDockedData.m_nDockedArea )
+ return true;
+ else if ( m_aDockedData.m_nDockedArea > aUIElement.m_aDockedData.m_nDockedArea )
+ return false;
+ else
+ {
+ if ( m_aDockedData.m_nDockedArea == ui::DockingArea_DOCKINGAREA_TOP ||
+ m_aDockedData.m_nDockedArea == ui::DockingArea_DOCKINGAREA_BOTTOM )
+ {
+ if ( !( m_aDockedData.m_aPos.Y() == aUIElement.m_aDockedData.m_aPos.Y() ) )
+ return ( m_aDockedData.m_aPos.Y() < aUIElement.m_aDockedData.m_aPos.Y() );
+ else
+ {
+ bool bEqual = ( m_aDockedData.m_aPos.X() == aUIElement.m_aDockedData.m_aPos.X() );
+ if ( bEqual )
+ {
+ if ( m_bUserActive && !aUIElement.m_bUserActive )
+ return sal_True;
+ else if ( !m_bUserActive && aUIElement.m_bUserActive )
+ return sal_False;
+ else
+ return sal_False;
+ }
+ else
+ return ( m_aDockedData.m_aPos.X() <= aUIElement.m_aDockedData.m_aPos.X() );
+ }
+ }
+ else
+ {
+ if ( !( m_aDockedData.m_aPos.X() == aUIElement.m_aDockedData.m_aPos.X() ) )
+ return ( m_aDockedData.m_aPos.X() < aUIElement.m_aDockedData.m_aPos.X() );
+ else
+ {
+ bool bEqual = ( m_aDockedData.m_aPos.Y() == aUIElement.m_aDockedData.m_aPos.Y() );
+ if ( bEqual )
+ {
+ if ( m_bUserActive && !aUIElement.m_bUserActive )
+ return sal_True;
+ else if ( !m_bUserActive && aUIElement.m_bUserActive )
+ return sal_False;
+ else
+ return sal_False;
+ }
+ else
+ return ( m_aDockedData.m_aPos.Y() <= aUIElement.m_aDockedData.m_aPos.Y() );
+ }
+ }
+ }
+ }
+ }
+}
+
+UIElement& UIElement::operator= ( const UIElement& rUIElement )
+{
+ m_aType = rUIElement.m_aType;
+ m_aName = rUIElement.m_aName;
+ m_aUIName = rUIElement.m_aUIName;
+ m_xUIElement = rUIElement.m_xUIElement;
+ m_bFloating = rUIElement.m_bFloating;
+ m_bVisible = rUIElement.m_bVisible;
+ m_bUserActive = rUIElement.m_bUserActive;
+ m_bCreateNewRowCol0 = rUIElement.m_bCreateNewRowCol0;
+ m_bDeactiveHide = rUIElement.m_bDeactiveHide;
+ m_bMasterHide = rUIElement.m_bMasterHide;
+ m_bContextSensitive = rUIElement.m_bContextSensitive;
+ m_bContextActive = rUIElement.m_bContextActive;
+ m_bNoClose = rUIElement.m_bNoClose;
+ m_bSoftClose = rUIElement.m_bSoftClose;
+ m_bStateRead = rUIElement.m_bStateRead;
+ m_nStyle = rUIElement.m_nStyle;
+ m_aDockedData = rUIElement.m_aDockedData;
+ m_aFloatingData = rUIElement.m_aFloatingData;
+ return *this;
+}
+
+} // namespace framework
diff --git a/framework/source/loadenv/loadenv.cxx b/framework/source/loadenv/loadenv.cxx
index 205043a212fd..768edf4dd2f4 100644
--- a/framework/source/loadenv/loadenv.cxx
+++ b/framework/source/loadenv/loadenv.cxx
@@ -34,9 +34,7 @@
#ifndef __FRAMEWORK_LOADENV_TARGETHELPER_HXX_
#include <loadenv/targethelper.hxx>
#endif
-#include <classes/framelistanalyzer.hxx>
-
-#include <dispatch/interaction.hxx>
+#include <framework/framelistanalyzer.hxx>
#ifndef __FRAMEWORK_CONSTANT_FRAMELOADER_HXX_
#include <constant/frameloader.hxx>
@@ -56,7 +54,8 @@
#include <properties.h>
#include <protocols.h>
#include <services.h>
-#include <dispatch/interaction.hxx>
+#include <comphelper/interaction.hxx>
+#include <framework/interaction.hxx>
//_______________________________________________
// includes of uno interface
@@ -1058,8 +1057,8 @@ sal_Bool LoadEnv::impl_furtherDocsAllowed()
css::uno::Any aInteraction;
css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > lContinuations(2);
- ContinuationAbort* pAbort = new ContinuationAbort();
- ContinuationApprove* pApprove = new ContinuationApprove();
+ comphelper::OInteractionAbort* pAbort = new comphelper::OInteractionAbort();
+ comphelper::OInteractionApprove* pApprove = new comphelper::OInteractionApprove();
lContinuations[0] = css::uno::Reference< css::task::XInteractionContinuation >(
static_cast< css::task::XInteractionContinuation* >(pAbort),
@@ -1071,13 +1070,7 @@ sal_Bool LoadEnv::impl_furtherDocsAllowed()
css::task::ErrorCodeRequest aErrorCode;
aErrorCode.ErrCode = ERRCODE_SFX_NOMOREDOCUMENTSALLOWED;
aInteraction <<= aErrorCode;
-
- InteractionRequest* pRequest = new InteractionRequest(aInteraction, lContinuations);
- css::uno::Reference< css::task::XInteractionRequest > xRequest(
- static_cast< css::task::XInteractionRequest* >(pRequest),
- css::uno::UNO_QUERY_THROW);
-
- xInteraction->handle(xRequest);
+ xInteraction->handle( InteractionRequest::CreateRequest(aInteraction, lContinuations) );
}
}
diff --git a/framework/source/loadenv/makefile.mk b/framework/source/loadenv/makefile.mk
deleted file mode 100644
index c68ad8d304cb..000000000000
--- a/framework/source/loadenv/makefile.mk
+++ /dev/null
@@ -1,46 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_loadenv
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/loadenv.obj \
- $(SLO)$/targethelper.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/source/recording/makefile.mk b/framework/source/recording/makefile.mk
deleted file mode 100644
index a13eb7b91202..000000000000
--- a/framework/source/recording/makefile.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=framework
-TARGET=recording
-ENABLE_EXCEPTIONS=TRUE
-NO_BSYMBOLIC=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES =\
- $(SLO)$/dispatchrecordersupplier.obj\
- $(SLO)$/dispatchrecorder.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/framework/source/register/makefile.mk b/framework/source/register/makefile.mk
deleted file mode 100644
index 2920cb283018..000000000000
--- a/framework/source/register/makefile.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_register
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-LIBTARGET= NO
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-VISIBILITY_HIDDEN = TRUE
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/registerservices.obj \
- $(SLO)$/registertemp.obj \
- $(SLO)$/register3rdcomponents.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/framework/source/register/registerservices.cxx b/framework/source/register/registerservices.cxx
index 4f078d9ab50d..fe9dfe2ee573 100644
--- a/framework/source/register/registerservices.cxx
+++ b/framework/source/register/registerservices.cxx
@@ -54,7 +54,7 @@
=================================================================================================================*/
#include <services/urltransformer.hxx>
#include <services/desktop.hxx>
-//#include <services/tabwindowservice.hxx>
+#include <services/tabwindowservice.hxx>
#include <services/frame.hxx>
#include <services/modulemanager.hxx>
//#include <dispatch/oxt_handler.hxx>
@@ -169,7 +169,7 @@ COMPONENTGETFACTORY ( IFFACTORY( ::framework::URLTransformer
IFFACTORY( ::framework::LangSelectionStatusbarController ) else
//IFFACTORY( ::framework::LanguageSelectionMenuController ) else
IFFACTORY( ::framework::WindowContentFactoryManager ) else
- //IFFACTORY( ::framework::TabWindowService ) else
+ IFFACTORY( ::framework::TabWindowService ) else
IFFACTORY( ::framework::SubstitutePathVariables ) else
IFFACTORY( ::framework::PathSettings )
)
diff --git a/framework/source/register/registertemp.cxx b/framework/source/register/registertemp.cxx
index 111b3550559d..59444093d53e 100644
--- a/framework/source/register/registertemp.cxx
+++ b/framework/source/register/registertemp.cxx
@@ -65,7 +65,6 @@
#include <uielement/simpletextstatusbarcontroller.hxx>
#include <uielement/logoimagestatusbarcontroller.hxx>
#include <uielement/logotextstatusbarcontroller.hxx>
-#include <services/tabwindowservice.hxx>
#include <uielement/fontmenucontroller.hxx>
#include <uielement/fontsizemenucontroller.hxx>
#include <uielement/footermenucontroller.hxx>
@@ -86,7 +85,6 @@ COMPONENTGETFACTORY ( IFFACTORY( ::framework::MediaTypeDetectionHelper
IFFACTORY( ::framework::License ) else
IFFACTORY( ::framework::PopupMenuDispatcher ) else
IFFACTORY( ::framework::DispatchHelper ) else
- IFFACTORY( ::framework::TabWindowService ) else
IFFACTORY( ::framework::DispatchRecorder ) else
IFFACTORY( ::framework::DispatchRecorderSupplier ) else
IFFACTORY( ::framework::SimpleTextStatusbarController ) else
diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx
index 530252c9440f..086d60ad1962 100644
--- a/framework/source/services/autorecovery.cxx
+++ b/framework/source/services/autorecovery.cxx
@@ -27,6 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_framework.hxx"
+
#include "services/autorecovery.hxx"
#include <loadenv/loadenv.hxx>
@@ -97,6 +98,8 @@
#include <tools/urlobj.hxx>
+#include <fwkdllapi.h>
+
//_______________________________________________
// namespaces
@@ -123,6 +126,7 @@ using ::com::sun::star::lang::XComponent;
namespace fpf = ::framework::pattern::frame;
+
namespace framework
{
diff --git a/framework/source/services/backingcomp.cxx b/framework/source/services/backingcomp.cxx
index 1c188fb111f9..ae354919491c 100644
--- a/framework/source/services/backingcomp.cxx
+++ b/framework/source/services/backingcomp.cxx
@@ -37,7 +37,7 @@
#include <threadhelp/readguard.hxx>
#include <threadhelp/writeguard.hxx>
#include <classes/droptargetlistener.hxx>
-#include <helper/acceleratorinfo.hxx>
+#include <framework/acceleratorinfo.hxx>
#include <targets.h>
#include <properties.h>
#include <services.h>
diff --git a/framework/source/services/desktop.cxx b/framework/source/services/desktop.cxx
index 447ccc208d6b..3c89661af599 100644
--- a/framework/source/services/desktop.cxx
+++ b/framework/source/services/desktop.cxx
@@ -101,6 +101,8 @@
#endif
#include <comphelper/extract.hxx>
+#include <fwkdllapi.h>
+
//_________________________________________________________________________________________________________________
// namespace
//_________________________________________________________________________________________________________________
diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
index 060a1b33a8db..a3ccf6887cf6 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -42,11 +42,11 @@
#include <loadenv/loadenv.hxx>
#include <helper/oframes.hxx>
#include <helper/statusindicatorfactory.hxx>
-#include <helper/titlehelper.hxx>
+#include <framework/titlehelper.hxx>
#include <classes/droptargetlistener.hxx>
#include <classes/taskcreator.hxx>
#include <loadenv/targethelper.hxx>
-#include <classes/framelistanalyzer.hxx>
+#include <framework/framelistanalyzer.hxx>
#include <helper/dockingareadefaultacceptor.hxx>
#include <dispatch/dispatchinformationprovider.hxx>
#include <threadhelp/transactionguard.hxx>
diff --git a/framework/source/services/makefile.mk b/framework/source/services/makefile.mk
deleted file mode 100644
index 2978d9aacf5e..000000000000
--- a/framework/source/services/makefile.mk
+++ /dev/null
@@ -1,64 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_services
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES=\
- $(SLO)$/desktop.obj \
- $(SLO)$/frame.obj \
- $(SLO)$/urltransformer.obj \
- $(SLO)$/mediatypedetectionhelper.obj \
- $(SLO)$/substitutepathvars.obj \
- $(SLO)$/pathsettings.obj \
- $(SLO)$/backingcomp.obj \
- $(SLO)$/backingwindow.obj \
- $(SLO)$/dispatchhelper.obj \
- $(SLO)$/license.obj \
- $(SLO)$/modulemanager.obj \
- $(SLO)$/autorecovery.obj \
- $(SLO)$/sessionlistener.obj \
- $(SLO)$/taskcreatorsrv.obj \
- $(SLO)$/uriabbreviation.obj \
- $(SLO)$/tabwindowservice.obj
-
-SRS1NAME=$(TARGET)
-SRC1FILES= fwk_services.src
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/source/services/modelwinservice.cxx b/framework/source/services/modelwinservice.cxx
new file mode 100755
index 000000000000..d50fe7dcc653
--- /dev/null
+++ b/framework/source/services/modelwinservice.cxx
@@ -0,0 +1,279 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: urltransformer.cxx,v $
+ * $Revision: 1.17 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_framework.hxx"
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include "services.h"
+#include "services/modelwinservice.hxx"
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#include <com/sun/star/awt/XControlModel.hpp>
+
+using namespace ::com::sun::star;
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework{
+
+//_________________________________________________________________________________________________________________
+// non exported definitions
+//_________________________________________________________________________________________________________________
+
+//_________________________________________________________________________________________________________________
+// declarations
+//_________________________________________________________________________________________________________________
+
+class Impl_ModelWinService
+{
+ public:
+ ~Impl_ModelWinService();
+
+ static Impl_ModelWinService* getSingleInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rServiceManager );
+
+ uno::Any getByName( const ::rtl::OUString& sName )
+ throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException );
+
+ uno::Sequence< ::rtl::OUString > getElementNames()
+ throw( uno::RuntimeException );
+
+ sal_Bool hasByName( const ::rtl::OUString& sName )
+ throw( uno::RuntimeException );
+
+ uno::Type getElementType()
+ throw( css::uno::RuntimeException );
+
+ sal_Bool hasElements()
+ throw( css::uno::RuntimeException );
+
+ void registerModelForXWindow( const uno::Reference< awt::XWindow >& rWindow, const uno::Reference< awt::XControlModel >& rModel );
+
+ void deregisterModelForXWindow( const uno::Reference< awt::XWindow >& rWindow );
+
+ private:
+ typedef BaseHash< uno::WeakReference< awt::XControlModel > > ModelWinMap;
+
+ Impl_ModelWinService();
+ Impl_ModelWinService( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rServiceManager );
+
+ static Impl_ModelWinService* m_pModelWinService;
+
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager;
+ ModelWinMap m_aModelMap;
+};
+
+Impl_ModelWinService* Impl_ModelWinService::m_pModelWinService = 0;
+
+Impl_ModelWinService* Impl_ModelWinService::getSingleInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rServiceManager )
+{
+ osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+ if ( !m_pModelWinService )
+ m_pModelWinService = new Impl_ModelWinService( rServiceManager );
+ return m_pModelWinService;
+}
+
+Impl_ModelWinService::Impl_ModelWinService( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rServiceManager ) :
+ m_xServiceManager( rServiceManager )
+{
+}
+
+Impl_ModelWinService::Impl_ModelWinService()
+{
+}
+
+Impl_ModelWinService::~Impl_ModelWinService()
+{
+}
+
+void Impl_ModelWinService::registerModelForXWindow( const uno::Reference< awt::XWindow >& rWindow, const uno::Reference< awt::XControlModel >& rModel )
+{
+ osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+
+ ::rtl::OUString sName = rtl::OUString::valueOf( reinterpret_cast< sal_Int64 >((void*)rWindow.get()));
+ ModelWinMap::iterator pIter = m_aModelMap.find( sName );
+ if ( pIter != m_aModelMap.end() )
+ pIter->second = rModel;
+ else
+ m_aModelMap[sName] = rModel;
+}
+
+void Impl_ModelWinService::deregisterModelForXWindow( const uno::Reference< awt::XWindow >& /*rWindow*/ )
+{
+}
+
+uno::Any Impl_ModelWinService::getByName( const ::rtl::OUString& sName )
+throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+{
+ uno::Any aAny;
+
+ osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+ ModelWinMap::iterator pIter = m_aModelMap.find( sName );
+ if ( pIter != m_aModelMap.end())
+ {
+ uno::Reference< awt::XControlModel > xModel( pIter->second );
+ aAny = uno::makeAny(xModel);
+ }
+
+ return aAny;
+}
+
+uno::Sequence< ::rtl::OUString > Impl_ModelWinService::getElementNames()
+throw( uno::RuntimeException )
+{
+ osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+ uno::Sequence< ::rtl::OUString > aResult( m_aModelMap.size() );
+
+ sal_Int32 i = 0;
+ ModelWinMap::const_iterator pIter = m_aModelMap.begin();
+ while ( pIter != m_aModelMap.end())
+ aResult[i++] = pIter->first;
+
+ return aResult;
+}
+
+sal_Bool Impl_ModelWinService::hasByName( const ::rtl::OUString& sName )
+throw( uno::RuntimeException )
+{
+ osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+ ModelWinMap::iterator pIter = m_aModelMap.find( sName );
+ if ( pIter != m_aModelMap.end())
+ return true;
+ else
+ return false;
+}
+
+uno::Type Impl_ModelWinService::getElementType()
+throw( css::uno::RuntimeException )
+{
+ return ::getCppuType(( const uno::Reference< awt::XControlModel >*)NULL );
+}
+
+sal_Bool Impl_ModelWinService::hasElements()
+throw( css::uno::RuntimeException )
+{
+ osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+ return (m_aModelMap.size() > 0);
+}
+
+//*****************************************************************************************************************
+// css::uno::XInterface, XTypeProvider, XServiceInfo
+//*****************************************************************************************************************
+
+DEFINE_XINTERFACE_4 ( ModelWinService ,
+ OWeakObject ,
+ DIRECT_INTERFACE(css::lang::XTypeProvider ),
+ DIRECT_INTERFACE(css::lang::XServiceInfo ),
+ DIRECT_INTERFACE(css::container::XNameAccess ),
+ DIRECT_INTERFACE(css::container::XElementAccess )
+ )
+
+DEFINE_XTYPEPROVIDER_4 ( ModelWinService ,
+ css::lang::XTypeProvider ,
+ css::lang::XServiceInfo ,
+ css::container::XNameAccess ,
+ css::container::XElementAccess
+ )
+
+DEFINE_XSERVICEINFO_MULTISERVICE ( ModelWinService ,
+ OWeakObject ,
+ SERVICENAME_MODELWINSERVICE ,
+ IMPLEMENTATIONNAME_MODELWINSERVICE
+ )
+
+DEFINE_INIT_SERVICE ( ModelWinService,
+ {
+ }
+ )
+
+//*****************************************************************************************************************
+// constructor
+//*****************************************************************************************************************
+ModelWinService::ModelWinService(const uno::Reference< lang::XMultiServiceFactory >& rServiceManager ) :
+ m_xServiceManager( rServiceManager )
+{
+}
+
+ModelWinService::~ModelWinService()
+{
+}
+
+void ModelWinService::registerModelForXWindow( const uno::Reference< awt::XWindow >& rWindow, const uno::Reference< awt::XControlModel >& rModel )
+{
+ Impl_ModelWinService::getSingleInstance(m_xServiceManager)->registerModelForXWindow( rWindow, rModel );
+}
+
+void ModelWinService::deregisterModelForXWindow( const uno::Reference< awt::XWindow >& rWindow )
+{
+ Impl_ModelWinService::getSingleInstance(m_xServiceManager)->deregisterModelForXWindow( rWindow );
+}
+
+uno::Any SAL_CALL ModelWinService::getByName( const ::rtl::OUString& sName )
+throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+{
+ return Impl_ModelWinService::getSingleInstance(m_xServiceManager)->getByName( sName );
+}
+
+uno::Sequence< ::rtl::OUString > SAL_CALL ModelWinService::getElementNames()
+throw( uno::RuntimeException )
+{
+ return Impl_ModelWinService::getSingleInstance(m_xServiceManager)->getElementNames( );
+}
+
+sal_Bool SAL_CALL ModelWinService::hasByName( const ::rtl::OUString& sName )
+throw( uno::RuntimeException )
+{
+ return Impl_ModelWinService::getSingleInstance(m_xServiceManager)->hasByName( sName );
+}
+
+//---------------------------------------------------------------------------------------------------------
+// XElementAccess
+//---------------------------------------------------------------------------------------------------------
+uno::Type SAL_CALL ModelWinService::getElementType()
+throw( uno::RuntimeException )
+{
+ return ::getCppuType( (const uno::Reference< awt::XControlModel > *)NULL );
+}
+
+sal_Bool SAL_CALL ModelWinService::hasElements()
+throw( uno::RuntimeException )
+{
+ return Impl_ModelWinService::getSingleInstance(m_xServiceManager)->hasElements();
+}
+
+}
diff --git a/framework/source/services/pathsettings.cxx b/framework/source/services/pathsettings.cxx
index fe8af40f0850..baf3a785c5e6 100644
--- a/framework/source/services/pathsettings.cxx
+++ b/framework/source/services/pathsettings.cxx
@@ -57,6 +57,8 @@
#include <comphelper/configurationhelper.hxx>
#include <unotools/configpathes.hxx>
+#include <fwkdllapi.h>
+
// ______________________________________________
// non exported const
@@ -243,21 +245,24 @@ void PathSettings::impl_readAll()
OUStringList PathSettings::impl_readOldFormat(const ::rtl::OUString& sPath)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen@sun.com", "PathSettings::impl_readOldFormat" );
- css::uno::Reference< css::container::XNameAccess > xCfg = fa_getCfgOld();
- css::uno::Any aVal = xCfg->getByName(sPath);
-
- ::rtl::OUString sStringVal;
- css::uno::Sequence< ::rtl::OUString > lStringListVal;
- OUStringList aPathVal;
+ css::uno::Reference< css::container::XNameAccess > xCfg( fa_getCfgOld() );
+ OUStringList aPathVal;
- if (aVal >>= sStringVal)
- {
- aPathVal.push_back(sStringVal);
- }
- else
- if (aVal >>= lStringListVal)
+ if( xCfg->hasByName(sPath) )
{
- aPathVal << lStringListVal;
+ css::uno::Any aVal( xCfg->getByName(sPath) );
+
+ ::rtl::OUString sStringVal;
+ css::uno::Sequence< ::rtl::OUString > lStringListVal;
+
+ if (aVal >>= sStringVal)
+ {
+ aPathVal.push_back(sStringVal);
+ }
+ else if (aVal >>= lStringListVal)
+ {
+ aPathVal << lStringListVal;
+ }
}
return aPathVal;
diff --git a/framework/source/tabwin/makefile.mk b/framework/source/tabwin/makefile.mk
deleted file mode 100644
index 6147672bdc73..000000000000
--- a/framework/source/tabwin/makefile.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_tabwin
-USE_DEFFILE= TRUE
-NO_BSYMBOLIC= TRUE
-ENABLE_EXCEPTIONS= TRUE
-BOOTSTRAP_SERVICE= FALSE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/tabwinfactory.obj \
- $(SLO)$/tabwindow.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/framework/source/threadhelp/makefile.mk b/framework/source/threadhelp/makefile.mk
deleted file mode 100644
index be4d71137925..000000000000
--- a/framework/source/threadhelp/makefile.mk
+++ /dev/null
@@ -1,45 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_threadhelp
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= $(SLO)$/lockhelper.obj \
- $(SLO)$/transactionmanager.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/framework/source/uiconfiguration/imagemanager.cxx b/framework/source/uiconfiguration/imagemanager.cxx
index fc18c2ac95ce..2a57e72e1ce4 100644
--- a/framework/source/uiconfiguration/imagemanager.cxx
+++ b/framework/source/uiconfiguration/imagemanager.cxx
@@ -29,7 +29,7 @@
#include "precompiled_framework.hxx"
#include <uiconfiguration/imagemanager.hxx>
#include <threadhelp/resetableguard.hxx>
-#include <xml/imagesconfiguration.hxx>
+#include <framework/imagesconfiguration.hxx>
#include <uiconfiguration/graphicnameaccess.hxx>
#include <services.h>
#include "imagemanagerimpl.hxx"
diff --git a/framework/source/uiconfiguration/imagemanagerimpl.cxx b/framework/source/uiconfiguration/imagemanagerimpl.cxx
index 151b4a79f2f8..537fe623d633 100644..100755
--- a/framework/source/uiconfiguration/imagemanagerimpl.cxx
+++ b/framework/source/uiconfiguration/imagemanagerimpl.cxx
@@ -29,7 +29,7 @@
#include "precompiled_framework.hxx"
#include <imagemanagerimpl.hxx>
#include <threadhelp/resetableguard.hxx>
-#include <xml/imagesconfiguration.hxx>
+#include <framework/imagesconfiguration.hxx>
#include <uiconfiguration/graphicnameaccess.hxx>
#include <services.h>
diff --git a/framework/source/uiconfiguration/makefile.mk b/framework/source/uiconfiguration/makefile.mk
deleted file mode 100644
index ef82e2da76c6..000000000000
--- a/framework/source/uiconfiguration/makefile.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_uiconfiguration
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/uiconfigurationmanager.obj \
- $(SLO)$/moduleuiconfigurationmanager.obj \
- $(SLO)$/moduleuicfgsupplier.obj \
- $(SLO)$/windowstateconfiguration.obj \
- $(SLO)$/moduleimagemanager.obj \
- $(SLO)$/imagemanager.obj \
- $(SLO)$/imagemanagerimpl.obj \
- $(SLO)$/graphicnameaccess.obj \
- $(SLO)$/uicategorydescription.obj \
- $(SLO)$/globalsettings.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/framework/source/uiconfiguration/moduleimagemanager.cxx b/framework/source/uiconfiguration/moduleimagemanager.cxx
index d76fdcf4c67f..fc90dd102912 100644
--- a/framework/source/uiconfiguration/moduleimagemanager.cxx
+++ b/framework/source/uiconfiguration/moduleimagemanager.cxx
@@ -30,7 +30,7 @@
#include <rtl/logfile.hxx>
#include <uiconfiguration/moduleimagemanager.hxx>
#include <threadhelp/resetableguard.hxx>
-#include <xml/imagesconfiguration.hxx>
+#include <framework/imagesconfiguration.hxx>
#include <uiconfiguration/graphicnameaccess.hxx>
#include <services.h>
#include "imagemanagerimpl.hxx"
diff --git a/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx b/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
index 607efce4d4d6..c2d8d2fe8308 100644
--- a/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+++ b/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
@@ -33,11 +33,11 @@
#include <uielement/constitemcontainer.hxx>
#include <uielement/rootitemcontainer.hxx>
#include <uielement/uielementtypenames.hxx>
-#include <xml/menuconfiguration.hxx>
-#include <xml/toolboxconfiguration.hxx>
+#include <framework/menuconfiguration.hxx>
+#include <framework/toolboxconfiguration.hxx>
#ifndef __FRAMEWORK_XML_STATUSBARCONFIGURATION_HXX_
-#include <xml/statusbarconfiguration.hxx>
+#include <framework/statusbarconfiguration.hxx>
#endif
//_________________________________________________________________________________________________________________
@@ -723,8 +723,9 @@ void ModuleUIConfigurationManager::impl_Initialize()
Reference< XStorage > xElementTypeStorage;
try
{
- Any a = xNameAccess->getByName( OUString::createFromAscii( UIELEMENTTYPENAMES[i] ));
- a >>= xElementTypeStorage;
+ const OUString sName( OUString::createFromAscii( UIELEMENTTYPENAMES[i] ) );
+ if( xNameAccess->hasByName( sName ) )
+ xNameAccess->getByName( sName ) >>= xElementTypeStorage;
}
catch ( com::sun::star::container::NoSuchElementException& )
{
diff --git a/framework/source/uiconfiguration/uiconfigurationmanager.cxx b/framework/source/uiconfiguration/uiconfigurationmanager.cxx
index e704fe680ae9..366e58c0adb2 100644
--- a/framework/source/uiconfiguration/uiconfigurationmanager.cxx
+++ b/framework/source/uiconfiguration/uiconfigurationmanager.cxx
@@ -33,11 +33,11 @@
#include <uielement/rootitemcontainer.hxx>
#include <uielement/constitemcontainer.hxx>
#include <uielement/uielementtypenames.hxx>
-#include <xml/menuconfiguration.hxx>
-#include <xml/toolboxconfiguration.hxx>
+#include <framework/menuconfiguration.hxx>
+#include <framework/toolboxconfiguration.hxx>
#ifndef __FRAMEWORK_XML_STATUSBARCONFIGURATION_HXX_
-#include <xml/statusbarconfiguration.hxx>
+#include <framework/statusbarconfiguration.hxx>
#endif
//_________________________________________________________________________________________________________________
diff --git a/framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx b/framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx
index 5b875d82f25a..eee01dad72c7 100755
--- a/framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx
+++ b/framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx
@@ -33,12 +33,12 @@
#include <uielement/constitemcontainer.hxx>
#include <uielement/rootitemcontainer.hxx>
#include <uielement/uielementtypenames.hxx>
-#include <xml/menuconfiguration.hxx>
-#include <xml/toolboxconfiguration.hxx>
+#include <framework/menuconfiguration.hxx>
+#include <framework/toolboxconfiguration.hxx>
#include <uiconfiguration/imagemanager.hxx>
#ifndef __FRAMEWORK_XML_STATUSBARCONFIGURATION_HXX_
-#include <xml/statusbarconfiguration.hxx>
+#include <framework/statusbarconfiguration.hxx>
#endif
//_________________________________________________________________________________________________________________
diff --git a/framework/source/uiconfiguration/windowstateconfiguration.cxx b/framework/source/uiconfiguration/windowstateconfiguration.cxx
index 4ac316b73ab0..83cdc1015a32 100644
--- a/framework/source/uiconfiguration/windowstateconfiguration.cxx
+++ b/framework/source/uiconfiguration/windowstateconfiguration.cxx
@@ -364,16 +364,20 @@ throw ( RuntimeException )
sal_Bool SAL_CALL ConfigurationAccess_WindowState::hasByName( const ::rtl::OUString& rResourceURL )
throw (::com::sun::star::uno::RuntimeException)
{
- try
- {
- getByName( rResourceURL );
- }
- catch ( NoSuchElementException& )
+ // SAFE
+ ResetableGuard aLock( m_aLock );
+
+ ResourceURLToInfoCache::const_iterator pIter = m_aResourceURLToInfoCache.find( rResourceURL );
+ if ( pIter != m_aResourceURLToInfoCache.end() )
+ return sal_True;
+ else
{
- return sal_False;
+ Any a( impl_getWindowStateFromResourceURL( rResourceURL ) );
+ if ( a == Any() )
+ return sal_False;
+ else
+ return sal_True;
}
-
- return sal_True;
}
// XElementAccess
@@ -1044,12 +1048,11 @@ Any ConfigurationAccess_WindowState::impl_getWindowStateFromResourceURL( const r
try
{
// Try to ask our configuration access
- if ( m_xConfigAccess.is() )
+ if ( m_xConfigAccess.is() && m_xConfigAccess->hasByName( rResourceURL ) )
{
- Reference< XNameAccess > xNameAccess;
- Any a( m_xConfigAccess->getByName( rResourceURL ));
- if ( a >>= xNameAccess )
+ Reference< XNameAccess > xNameAccess( m_xConfigAccess->getByName( rResourceURL ), UNO_QUERY );
+ if ( xNameAccess.is() )
return impl_insertCacheAndReturnSequence( rResourceURL, xNameAccess );
}
}
diff --git a/framework/source/uielement/addonstoolbarmanager.cxx b/framework/source/uielement/addonstoolbarmanager.cxx
index fb9e825268ad..0512faf3bbf7 100644
--- a/framework/source/uielement/addonstoolbarmanager.cxx
+++ b/framework/source/uielement/addonstoolbarmanager.cxx
@@ -43,13 +43,13 @@
#endif
#include <threadhelp/resetableguard.hxx>
#include "services.h"
-#include <helper/imageproducer.hxx>
-#include <classes/sfxhelperfunctions.hxx>
+#include <framework/imageproducer.hxx>
+#include <framework/sfxhelperfunctions.hxx>
#include <classes/fwkresid.hxx>
#ifndef __FRAMEWORK_CLASES_RESOURCE_HRC_
#include <classes/resource.hrc>
#endif
-#include <classes/addonsoptions.hxx>
+#include <framework/addonsoptions.hxx>
#ifndef __FRAMEWORK_UIELEMENT_COMBOBOXTOOLBARCONTROLLER_HXX
#include <uielement/comboboxtoolbarcontroller.hxx>
#endif
diff --git a/framework/source/uielement/addonstoolbarwrapper.cxx b/framework/source/uielement/addonstoolbarwrapper.cxx
index a427643972df..34b0679a4b9e 100644
--- a/framework/source/uielement/addonstoolbarwrapper.cxx
+++ b/framework/source/uielement/addonstoolbarwrapper.cxx
@@ -35,7 +35,7 @@
#include <uielement/addonstoolbarwrapper.hxx>
#include <threadhelp/resetableguard.hxx>
-#include <helper/actiontriggerhelper.hxx>
+#include <framework/actiontriggerhelper.hxx>
#include <uielement/constitemcontainer.hxx>
#include <uielement/rootitemcontainer.hxx>
#include <uielement/addonstoolbarmanager.hxx>
diff --git a/framework/source/uielement/comboboxtoolbarcontroller.cxx b/framework/source/uielement/comboboxtoolbarcontroller.cxx
index cd5c4e6aadf4..0185c68726dd 100644
--- a/framework/source/uielement/comboboxtoolbarcontroller.cxx
+++ b/framework/source/uielement/comboboxtoolbarcontroller.cxx
@@ -261,19 +261,30 @@ void ComboboxToolbarController::LoseFocus()
long ComboboxToolbarController::PreNotify( NotifyEvent& rNEvt )
{
- if( rNEvt.GetType() == EVENT_KEYINPUT )
+ switch ( rNEvt.GetType() )
{
- const ::KeyEvent* pKeyEvent = rNEvt.GetKeyEvent();
- const KeyCode& rKeyCode = pKeyEvent->GetKeyCode();
- if(( rKeyCode.GetModifier() | rKeyCode.GetCode()) == KEY_RETURN )
- {
- // Call execute only with non-empty text
- if ( m_pComboBox->GetText().Len() > 0 )
- execute( rKeyCode.GetModifier() );
- return 1;
- }
+ case EVENT_KEYINPUT :
+ {
+ const ::KeyEvent* pKeyEvent = rNEvt.GetKeyEvent();
+ const KeyCode& rKeyCode = pKeyEvent->GetKeyCode();
+ if(( rKeyCode.GetModifier() | rKeyCode.GetCode()) == KEY_RETURN )
+ {
+ // Call execute only with non-empty text
+ if ( m_pComboBox->GetText().Len() > 0 )
+ execute( rKeyCode.GetModifier() );
+ return 1;
+ }
+ }
+ break;
+ case EVENT_GETFOCUS :
+ notifyFocusGet();
+ break;
+ case EVENT_LOSEFOCUS :
+ notifyFocusLost();
+ break;
+ default :
+ break;
}
-
return 0;
}
diff --git a/framework/source/uielement/generictoolbarcontroller.cxx b/framework/source/uielement/generictoolbarcontroller.cxx
index ddf117b32b38..6f89eb39f89f 100644
--- a/framework/source/uielement/generictoolbarcontroller.cxx
+++ b/framework/source/uielement/generictoolbarcontroller.cxx
@@ -65,7 +65,7 @@
#include <classes/fwkresid.hxx>
#include <dispatch/uieventloghelper.hxx>
-#include <xml/menuconfiguration.hxx>
+#include <framework/menuconfiguration.hxx>
#include <uielement/menubarmanager.hxx>
using namespace ::com::sun::star::awt;
diff --git a/framework/source/uielement/imagebuttontoolbarcontroller.cxx b/framework/source/uielement/imagebuttontoolbarcontroller.cxx
index 18ffcd567a85..1119ae2a3e39 100644
--- a/framework/source/uielement/imagebuttontoolbarcontroller.cxx
+++ b/framework/source/uielement/imagebuttontoolbarcontroller.cxx
@@ -35,7 +35,7 @@
//_________________________________________________________________________________________________________________
// my own includes
//_________________________________________________________________________________________________________________
-#include <classes/addonsoptions.hxx>
+#include <framework/addonsoptions.hxx>
#ifndef __FRAMEWORK_TOOLBAR_HXX_
#include "uielement/toolbar.hxx"
#endif
diff --git a/framework/source/uielement/macrosmenucontroller.cxx b/framework/source/uielement/macrosmenucontroller.cxx
index 8396b4d57fbe..5065881385fb 100644
--- a/framework/source/uielement/macrosmenucontroller.cxx
+++ b/framework/source/uielement/macrosmenucontroller.cxx
@@ -34,7 +34,7 @@
#include "services.h"
#include <classes/resource.hrc>
#include <classes/fwkresid.hxx>
-#include <helper/imageproducer.hxx>
+#include <framework/imageproducer.hxx>
#include <com/sun/star/awt/MenuItemStyle.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
diff --git a/framework/source/uielement/makefile.mk b/framework/source/uielement/makefile.mk
deleted file mode 100644
index b74adb1e176f..000000000000
--- a/framework/source/uielement/makefile.mk
+++ /dev/null
@@ -1,87 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_uielement
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/addonstoolbarmanager.obj \
- $(SLO)$/addonstoolbarwrapper.obj \
- $(SLO)$/buttontoolbarcontroller.obj \
- $(SLO)$/comboboxtoolbarcontroller.obj \
- $(SLO)$/complextoolbarcontroller.obj \
- $(SLO)$/constitemcontainer.obj \
- $(SLO)$/controlmenucontroller.obj \
- $(SLO)$/dropdownboxtoolbarcontroller.obj \
- $(SLO)$/edittoolbarcontroller.obj \
- $(SLO)$/fontmenucontroller.obj \
- $(SLO)$/fontsizemenucontroller.obj \
- $(SLO)$/footermenucontroller.obj \
- $(SLO)$/generictoolbarcontroller.obj \
- $(SLO)$/headermenucontroller.obj \
- $(SLO)$/imagebuttontoolbarcontroller.obj \
- $(SLO)$/itemcontainer.obj \
- $(SLO)$/langselectionmenucontroller.obj \
- $(SLO)$/langselectionstatusbarcontroller.obj \
- $(SLO)$/logoimagestatusbarcontroller.obj \
- $(SLO)$/logotextstatusbarcontroller.obj \
- $(SLO)$/macrosmenucontroller.obj \
- $(SLO)$/menubarmanager.obj \
- $(SLO)$/menubarmerger.obj \
- $(SLO)$/menubarwrapper.obj \
- $(SLO)$/newmenucontroller.obj \
- $(SLO)$/objectmenucontroller.obj \
- $(SLO)$/progressbarwrapper.obj \
- $(SLO)$/recentfilesmenucontroller.obj \
- $(SLO)$/rootitemcontainer.obj \
- $(SLO)$/simpletextstatusbarcontroller.obj \
- $(SLO)$/spinfieldtoolbarcontroller.obj \
- $(SLO)$/statusbar.obj \
- $(SLO)$/statusbarmanager.obj \
- $(SLO)$/statusbarwrapper.obj \
- $(SLO)$/statusindicatorinterfacewrapper.obj \
- $(SLO)$/togglebuttontoolbarcontroller.obj \
- $(SLO)$/toolbar.obj \
- $(SLO)$/toolbarmanager.obj \
- $(SLO)$/toolbarmerger.obj \
- $(SLO)$/toolbarsmenucontroller.obj \
- $(SLO)$/toolbarwrapper.obj \
- $(SLO)$/popupmenucontroller.obj \
- $(SLO)$/uicommanddescription.obj \
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx
index 780499fc9799..fd8e0d3fbcd7 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -33,17 +33,17 @@
// my own includes
//_________________________________________________________________________________________________________________
#include <uielement/menubarmanager.hxx>
-#include <xml/menuconfiguration.hxx>
-#include <classes/bmkmenu.hxx>
-#include <classes/addonmenu.hxx>
-#include <helper/imageproducer.hxx>
+#include <framework/menuconfiguration.hxx>
+#include <framework/bmkmenu.hxx>
+#include <framework/addonmenu.hxx>
+#include <framework/imageproducer.hxx>
#include <threadhelp/resetableguard.hxx>
-#include "classes/addonsoptions.hxx"
+#include "framework/addonsoptions.hxx"
#include <classes/fwkresid.hxx>
#include <classes/menumanager.hxx>
-#include <helper/acceleratorinfo.hxx>
+#include <framework/acceleratorinfo.hxx>
#include <helper/mischelper.hxx>
-#include <classes/menuextensionsupplier.hxx>
+#include <framework/menuextensionsupplier.hxx>
#include <classes/resource.hrc>
#include <services.h>
@@ -97,7 +97,7 @@
#include <svtools/acceleratorexecute.hxx>
#include <rtl/logfile.hxx>
#include "svtools/miscopt.hxx"
-#include <classes/addonmenu.hxx>
+#include <framework/addonmenu.hxx>
#include <uielement/menubarmerger.hxx>
#include <dispatch/uieventloghelper.hxx>
diff --git a/framework/source/uielement/menubarmerger.cxx b/framework/source/uielement/menubarmerger.cxx
index f82253345778..d1d3b9b427e0 100644
--- a/framework/source/uielement/menubarmerger.cxx
+++ b/framework/source/uielement/menubarmerger.cxx
@@ -29,7 +29,7 @@
#include "precompiled_framework.hxx"
#include <uielement/menubarmerger.hxx>
-#include <classes/addonsoptions.hxx>
+#include <framework/addonsoptions.hxx>
using namespace ::com::sun::star;
diff --git a/framework/source/uielement/menubarwrapper.cxx b/framework/source/uielement/menubarwrapper.cxx
index 40f3938a07d8..8a1ca4a36cac 100644
--- a/framework/source/uielement/menubarwrapper.cxx
+++ b/framework/source/uielement/menubarwrapper.cxx
@@ -33,7 +33,7 @@
//_________________________________________________________________________________________________________________
#include <uielement/menubarwrapper.hxx>
#include <threadhelp/resetableguard.hxx>
-#include <helper/actiontriggerhelper.hxx>
+#include <framework/actiontriggerhelper.hxx>
#include <services.h>
//_________________________________________________________________________________________________________________
diff --git a/framework/source/uielement/newmenucontroller.cxx b/framework/source/uielement/newmenucontroller.cxx
index cb08ed7e306d..d3c9a1913843 100644
--- a/framework/source/uielement/newmenucontroller.cxx
+++ b/framework/source/uielement/newmenucontroller.cxx
@@ -38,9 +38,9 @@
#include <classes/resource.hrc>
#endif
#include <classes/fwkresid.hxx>
-#include <classes/bmkmenu.hxx>
-#include <helper/imageproducer.hxx>
-#include <xml/menuconfiguration.hxx>
+#include <framework/bmkmenu.hxx>
+#include <framework/imageproducer.hxx>
+#include <framework/menuconfiguration.hxx>
//_________________________________________________________________________________________________________________
// interface includes
diff --git a/framework/source/uielement/panelwindow.cxx b/framework/source/uielement/panelwindow.cxx
new file mode 100755
index 000000000000..c8729dbb028d
--- /dev/null
+++ b/framework/source/uielement/panelwindow.cxx
@@ -0,0 +1,77 @@
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_framework.hxx"
+
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include <uielement/panelwindow.hxx>
+
+namespace framework
+{
+
+PanelWindow::PanelWindow( Window* pParent, WinBits nWinBits ) :
+ DockingWindow( pParent, nWinBits )
+{
+}
+
+PanelWindow::~PanelWindow()
+{
+}
+
+const ::rtl::OUString& PanelWindow::getResourceURL() const
+{
+ return m_aResourceURL;
+}
+
+void PanelWindow::setResourceURL(const ::rtl::OUString& rResourceURL)
+{
+ m_aResourceURL = rResourceURL;
+}
+
+Window* PanelWindow::getContentWindow() const
+{
+ return m_pContentWindow;
+}
+
+void PanelWindow::setContentWindow( Window* pContentWindow )
+{
+ m_pContentWindow = pContentWindow;
+ if ( m_pContentWindow != NULL )
+ {
+ m_pContentWindow->SetParent(this);
+ m_pContentWindow->SetSizePixel( GetOutputSizePixel() );
+ m_pContentWindow->Show();
+ }
+}
+
+void PanelWindow::Command( const CommandEvent& rCEvt )
+{
+ if ( m_aCommandHandler.IsSet() )
+ m_aCommandHandler.Call( (void *)( &rCEvt ));
+ DockingWindow::Command( rCEvt );
+}
+
+void PanelWindow::StateChanged( StateChangedType nType )
+{
+ DockingWindow::StateChanged( nType );
+ if ( m_aStateChangedHandler.IsSet() )
+ m_aStateChangedHandler.Call( &nType );
+}
+
+void PanelWindow::DataChanged( const DataChangedEvent& rDCEvt )
+{
+ DockingWindow::DataChanged( rDCEvt );
+ if ( m_aDataChangedHandler.IsSet() )
+ m_aDataChangedHandler.Call( (void*)&rDCEvt );
+}
+
+void PanelWindow::Resize()
+{
+ DockingWindow::Resize();
+ if ( m_pContentWindow )
+ m_pContentWindow->SetSizePixel( GetOutputSizePixel() );
+}
+
+}
diff --git a/framework/source/uielement/panelwrapper.cxx b/framework/source/uielement/panelwrapper.cxx
new file mode 100755
index 000000000000..405ee412df83
--- /dev/null
+++ b/framework/source/uielement/panelwrapper.cxx
@@ -0,0 +1,226 @@
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_framework.hxx"
+//_________________________________________________________________________________________________________________
+// my own includes
+//_________________________________________________________________________________________________________________
+
+#include <services.h>
+#include <uielement/panelwrapper.hxx>
+#include <threadhelp/resetableguard.hxx>
+#include <uielement/constitemcontainer.hxx>
+#include <uielement/rootitemcontainer.hxx>
+#include <uielement/panelwindow.hxx>
+#include <services/modelwinservice.hxx>
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/awt/XSystemDependentMenuPeer.hpp>
+#include <com/sun/star/awt/XMenuBar.hpp>
+#include <com/sun/star/container/XIndexContainer.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/ui/UIElementType.hpp>
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+
+#include <toolkit/unohlp.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <comphelper/processfactory.hxx>
+#include <svtools/miscopt.hxx>
+#include <vcl/svapp.hxx>
+#include <rtl/logfile.hxx>
+
+using namespace com::sun::star;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::frame;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::container;
+using namespace com::sun::star::awt;
+using namespace ::com::sun::star::ui;
+
+namespace framework
+{
+
+PanelWrapper::PanelWrapper( const Reference< XMultiServiceFactory >& xServiceManager ) :
+ UIElementWrapperBase( UIElementType::DOCKINGWINDOW ),
+ m_xServiceManager( xServiceManager ),
+ m_bNoClose(false)
+{
+}
+
+PanelWrapper::~PanelWrapper()
+{
+}
+
+// XInterface
+void SAL_CALL PanelWrapper::acquire() throw()
+{
+ UIElementWrapperBase::acquire();
+}
+
+void SAL_CALL PanelWrapper::release() throw()
+{
+ UIElementWrapperBase::release();
+}
+
+uno::Any SAL_CALL PanelWrapper::queryInterface( const uno::Type & rType )
+throw( ::com::sun::star::uno::RuntimeException )
+{
+ return UIElementWrapperBase::queryInterface( rType );
+}
+
+// XComponent
+void SAL_CALL PanelWrapper::dispose() throw ( RuntimeException )
+{
+ Reference< XComponent > xThis( static_cast< OWeakObject* >(this), UNO_QUERY );
+ Reference< XMultiServiceFactory > xSMGR( m_xServiceManager );
+ Reference< XWindow > xWindow;
+
+ {
+ ResetableGuard aLock( m_aLock );
+ if ( m_bDisposed )
+ return;
+ xSMGR = m_xServiceManager;
+ }
+
+ com::sun::star::lang::EventObject aEvent( xThis );
+ m_aListenerContainer.disposeAndClear( aEvent );
+
+ rtl::OUString aModelWinService( SERVICENAME_MODELWINSERVICE );
+ Reference< XNameAccess > xNameAccess( xSMGR->createInstance( aModelWinService ), UNO_QUERY );
+ if ( xNameAccess.is() )
+ {
+ ModelWinService* pService = dynamic_cast< ModelWinService* >( xNameAccess.get() );
+ if ( pService != 0 )
+ {
+ vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ PanelWindow* pPanelWindow = dynamic_cast< PanelWindow* >( m_xPanelWindow.get() );
+ if ( pPanelWindow != NULL )
+ {
+ xWindow = VCLUnoHelper::GetInterface( pPanelWindow->getContentWindow() );
+ pService->deregisterModelForXWindow( xWindow );
+ }
+ }
+ }
+
+ ResetableGuard aLock( m_aLock );
+ m_xPanelWindow.clear();
+ m_bDisposed = sal_True;
+}
+
+// XInitialization
+void SAL_CALL PanelWrapper::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
+{
+ ResetableGuard aLock( m_aLock );
+
+ if ( m_bDisposed )
+ throw DisposedException();
+
+ if ( !m_bInitialized )
+ {
+ UIElementWrapperBase::initialize( aArguments );
+
+ sal_Bool bPopupMode( sal_False );
+ Reference< XWindow > xContentWindow;
+ for ( sal_Int32 i = 0; i < aArguments.getLength(); i++ )
+ {
+ PropertyValue aPropValue;
+ if ( aArguments[i] >>= aPropValue )
+ {
+ if ( aPropValue.Name.equalsAsciiL( "PopupMode", 9 ))
+ aPropValue.Value >>= bPopupMode;
+ else if ( aPropValue.Name.equalsAsciiL( "ContentWindow", 13 ))
+ aPropValue.Value >>= xContentWindow;
+ }
+ }
+
+ Reference< XFrame > xFrame( m_xWeakFrame );
+ if ( xFrame.is() )
+ {
+ PanelWindow* pPanelWindow(0);
+ Window* pContentWindow(0);
+ {
+ vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ Window* pWindow = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() );
+ pContentWindow = VCLUnoHelper::GetWindow( xContentWindow );
+ if ( pWindow )
+ {
+ ULONG nStyles = WB_LINESPACING | WB_BORDER | WB_SCROLL | WB_MOVEABLE | WB_3DLOOK | WB_DOCKABLE | WB_SIZEABLE | WB_CLOSEABLE;
+
+ pPanelWindow = new PanelWindow( pWindow, nStyles );
+ m_xPanelWindow = VCLUnoHelper::GetInterface( pPanelWindow );
+ pPanelWindow->setResourceURL( m_aResourceURL );
+ pPanelWindow->setContentWindow( pContentWindow );
+ }
+ }
+
+ try
+ {
+ }
+ catch ( NoSuchElementException& )
+ {
+ }
+ }
+ }
+}
+
+// XEventListener
+void SAL_CALL PanelWrapper::disposing( const ::com::sun::star::lang::EventObject& ) throw (::com::sun::star::uno::RuntimeException)
+{
+ // nothing todo
+}
+
+// XUpdatable
+void SAL_CALL PanelWrapper::update() throw (::com::sun::star::uno::RuntimeException)
+{
+ ResetableGuard aLock( m_aLock );
+
+ if ( m_bDisposed )
+ throw DisposedException();
+}
+
+// XUIElement interface
+Reference< XInterface > SAL_CALL PanelWrapper::getRealInterface( ) throw (::com::sun::star::uno::RuntimeException)
+{
+ ResetableGuard aLock( m_aLock );
+ return m_xPanelWindow;
+}
+
+void SAL_CALL PanelWrapper::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const com::sun::star::uno::Any& aValue ) throw( com::sun::star::uno::Exception )
+{
+ ResetableGuard aLock( m_aLock );
+ sal_Bool bNoClose( m_bNoClose );
+ aLock.unlock();
+
+ UIElementWrapperBase::setFastPropertyValue_NoBroadcast( nHandle, aValue );
+
+ aLock.lock();
+
+ sal_Bool bNewNoClose( m_bNoClose );
+ if ( m_xPanelWindow.is() && !m_bDisposed && ( bNewNoClose != bNoClose ))
+ {
+ PanelWindow* pPanelWindow = dynamic_cast< PanelWindow* >( VCLUnoHelper::GetWindow( m_xPanelWindow ) );
+ if ( pPanelWindow )
+ {
+ if ( bNewNoClose )
+ {
+ pPanelWindow->SetStyle( pPanelWindow->GetStyle() & ~WB_CLOSEABLE );
+ pPanelWindow->SetFloatStyle( pPanelWindow->GetFloatStyle() & ~WB_CLOSEABLE );
+ }
+ else
+ {
+ pPanelWindow->SetStyle( pPanelWindow->GetStyle() | WB_CLOSEABLE );
+ pPanelWindow->SetFloatStyle( pPanelWindow->GetFloatStyle() | WB_CLOSEABLE );
+ }
+ }
+ }
+}
+
+} // namespace framework
diff --git a/framework/source/uielement/statusbarmanager.cxx b/framework/source/uielement/statusbarmanager.cxx
index c20a4dd24e10..0328f0b6e4e4 100644
--- a/framework/source/uielement/statusbarmanager.cxx
+++ b/framework/source/uielement/statusbarmanager.cxx
@@ -35,7 +35,7 @@
//_________________________________________________________________________________________________________________
#include <threadhelp/threadhelpbase.hxx>
#include <threadhelp/resetableguard.hxx>
-#include <classes/sfxhelperfunctions.hxx>
+#include <framework/sfxhelperfunctions.hxx>
#include <macros/generic.hxx>
#include <macros/xinterface.hxx>
#include <macros/xtypeprovider.hxx>
diff --git a/framework/source/uielement/statusbarwrapper.cxx b/framework/source/uielement/statusbarwrapper.cxx
index 2c03cccc0552..06a3ac6c005b 100644
--- a/framework/source/uielement/statusbarwrapper.cxx
+++ b/framework/source/uielement/statusbarwrapper.cxx
@@ -34,7 +34,7 @@
// my own includes
//_________________________________________________________________________________________________________________
#include <threadhelp/resetableguard.hxx>
-#include <helper/actiontriggerhelper.hxx>
+#include <framework/actiontriggerhelper.hxx>
#include <uielement/constitemcontainer.hxx>
#include <uielement/rootitemcontainer.hxx>
#include <uielement/statusbar.hxx>
diff --git a/framework/source/uielement/togglebuttontoolbarcontroller.cxx b/framework/source/uielement/togglebuttontoolbarcontroller.cxx
index 880042f4cddc..4f23713370e2 100644
--- a/framework/source/uielement/togglebuttontoolbarcontroller.cxx
+++ b/framework/source/uielement/togglebuttontoolbarcontroller.cxx
@@ -35,7 +35,7 @@
//_________________________________________________________________________________________________________________
// my own includes
//_________________________________________________________________________________________________________________
-#include <classes/addonsoptions.hxx>
+#include <framework/addonsoptions.hxx>
#ifndef __FRAMEWORK_TOOLBAR_HXX_
#include "uielement/toolbar.hxx"
#endif
diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx
index 85fc1034d7ea..8162307f87ad 100644
--- a/framework/source/uielement/toolbarmanager.cxx
+++ b/framework/source/uielement/toolbarmanager.cxx
@@ -44,15 +44,15 @@
#include "services.h"
#include "general.h"
#include "properties.h"
-#include <helper/imageproducer.hxx>
-#include <classes/sfxhelperfunctions.hxx>
+#include <framework/imageproducer.hxx>
+#include <framework/sfxhelperfunctions.hxx>
#include <classes/fwkresid.hxx>
#ifndef __FRAMEWORK_CLASES_RESOURCE_HRC_
#include <classes/resource.hrc>
#endif
-#include <classes/addonsoptions.hxx>
+#include <framework/addonsoptions.hxx>
#include <uielement/toolbarmerger.hxx>
-#include <helper/acceleratorinfo.hxx>
+#include <framework/acceleratorinfo.hxx>
//_________________________________________________________________________________________________________________
// interface includes
diff --git a/framework/source/uielement/toolbarmerger.cxx b/framework/source/uielement/toolbarmerger.cxx
index 574543a9da3e..1b5a1dccb667 100644
--- a/framework/source/uielement/toolbarmerger.cxx
+++ b/framework/source/uielement/toolbarmerger.cxx
@@ -30,7 +30,7 @@
#include <uielement/toolbarmerger.hxx>
#include <uielement/generictoolbarcontroller.hxx>
-#include <helper/imageproducer.hxx>
+#include <framework/imageproducer.hxx>
#include <svtools/miscopt.hxx>
diff --git a/framework/source/uielement/toolbarsmenucontroller.cxx b/framework/source/uielement/toolbarsmenucontroller.cxx
index b7e3c5e81f8b..02440f048dd5 100644
--- a/framework/source/uielement/toolbarsmenucontroller.cxx
+++ b/framework/source/uielement/toolbarsmenucontroller.cxx
@@ -41,8 +41,8 @@
#endif
#include <classes/fwkresid.hxx>
#include <uiconfiguration/windowstateconfiguration.hxx>
-#include <helper/imageproducer.hxx>
-#include <classes/sfxhelperfunctions.hxx>
+#include <framework/imageproducer.hxx>
+#include <framework/sfxhelperfunctions.hxx>
//_________________________________________________________________________________________________________________
// interface includes
diff --git a/framework/source/uielement/toolbarwrapper.cxx b/framework/source/uielement/toolbarwrapper.cxx
index 961dd724da44..0f838bd1ccd3 100644
--- a/framework/source/uielement/toolbarwrapper.cxx
+++ b/framework/source/uielement/toolbarwrapper.cxx
@@ -34,7 +34,7 @@
#include <uielement/toolbarwrapper.hxx>
#include <threadhelp/resetableguard.hxx>
-#include <helper/actiontriggerhelper.hxx>
+#include <framework/actiontriggerhelper.hxx>
#include <uielement/constitemcontainer.hxx>
#include <uielement/rootitemcontainer.hxx>
#include <uielement/toolbarmanager.hxx>
diff --git a/framework/source/uielement/uicommanddescription.cxx b/framework/source/uielement/uicommanddescription.cxx
index 0d50aa4c36d4..39b91a771228 100644
--- a/framework/source/uielement/uicommanddescription.cxx
+++ b/framework/source/uielement/uicommanddescription.cxx
@@ -144,6 +144,8 @@ class ConfigurationAccess_UICommand : // Order is neccessary for right initializ
virtual void SAL_CALL disposing( const EventObject& aEvent ) throw(RuntimeException);
protected:
+ virtual ::com::sun::star::uno::Any SAL_CALL getByNameImpl( const ::rtl::OUString& aName );
+
struct CmdToInfoMap
{
CmdToInfoMap() : bPopup( false ),
@@ -253,9 +255,9 @@ ConfigurationAccess_UICommand::~ConfigurationAccess_UICommand()
xContainer->removeContainerListener( this );
}
+
// XNameAccess
-Any SAL_CALL ConfigurationAccess_UICommand::getByName( const ::rtl::OUString& rCommandURL )
-throw ( NoSuchElementException, WrappedTargetException, RuntimeException)
+Any SAL_CALL ConfigurationAccess_UICommand::getByNameImpl( const ::rtl::OUString& rCommandURL )
{
static sal_Int32 nRequests = 0;
@@ -280,19 +282,24 @@ throw ( NoSuchElementException, WrappedTargetException, RuntimeException)
else if ( rCommandURL.equalsIgnoreAsciiCaseAscii( UICOMMANDDESCRIPTION_NAMEACCESS_COMMANDMIRRORIMAGELIST ))
return makeAny( m_aCommandMirrorImageList );
else
- throw NoSuchElementException();
+ return Any();
}
else
{
// SAFE
++nRequests;
- Any a = getInfoFromCommand( rCommandURL );
+ return getInfoFromCommand( rCommandURL );
+ }
+}
- if ( !a.hasValue() )
- throw NoSuchElementException();
+Any SAL_CALL ConfigurationAccess_UICommand::getByName( const ::rtl::OUString& rCommandURL )
+throw ( NoSuchElementException, WrappedTargetException, RuntimeException)
+{
+ Any aRet( getByNameImpl( rCommandURL ) );
+ if( !aRet.hasValue() )
+ throw NoSuchElementException();
- return a;
- }
+ return aRet;
}
Sequence< ::rtl::OUString > SAL_CALL ConfigurationAccess_UICommand::getElementNames()
@@ -304,7 +311,7 @@ throw ( RuntimeException )
sal_Bool SAL_CALL ConfigurationAccess_UICommand::hasByName( const ::rtl::OUString& rCommandURL )
throw (::com::sun::star::uno::RuntimeException)
{
- return getByName( rCommandURL ).hasValue();
+ return getByNameImpl( rCommandURL ).hasValue();
}
// XElementAccess
@@ -470,7 +477,7 @@ Any ConfigurationAccess_UICommand::getInfoFromCommand( const rtl::OUString& rCom
{
// First try to ask our global commands configuration access. It also caches maybe
// we find the entry in its cache first.
- if ( m_xGenericUICommands.is() )
+ if ( m_xGenericUICommands.is() && m_xGenericUICommands->hasByName( rCommandURL ) )
{
try
{
diff --git a/framework/source/uifactory/makefile.mk b/framework/source/uifactory/makefile.mk
deleted file mode 100644
index cf820e98738f..000000000000
--- a/framework/source/uifactory/makefile.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME=framework
-TARGET= fwk_uifactory
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/popupmenucontrollerfactory.obj \
- $(SLO)$/uielementfactorymanager.obj \
- $(SLO)$/menubarfactory.obj \
- $(SLO)$/toolboxfactory.obj \
- $(SLO)$/addonstoolboxfactory.obj \
- $(SLO)$/toolbarcontrollerfactory.obj \
- $(SLO)$/statusbarfactory.obj \
- $(SLO)$/statusbarcontrollerfactory.obj \
- $(SLO)$/factoryconfiguration.obj \
- $(SLO)$/windowcontentfactorymanager.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/source/xml/makefile.mk b/framework/source/xml/makefile.mk
deleted file mode 100644
index a4f18a555ab3..000000000000
--- a/framework/source/xml/makefile.mk
+++ /dev/null
@@ -1,58 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= fwk_xml
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/eventsconfiguration.obj \
- $(SLO)$/eventsdocumenthandler.obj \
- $(SLO)$/imagesconfiguration.obj \
- $(SLO)$/imagesdocumenthandler.obj \
- $(SLO)$/menuconfiguration.obj \
- $(SLO)$/menudocumenthandler.obj \
- $(SLO)$/statusbarconfiguration.obj \
- $(SLO)$/statusbardocumenthandler.obj \
- $(SLO)$/toolboxconfiguration.obj \
- $(SLO)$/toolboxdocumenthandler.obj \
- $(SLO)$/saxnamespacefilter.obj \
- $(SLO)$/xmlnamespaces.obj \
- $(SLO)$/acceleratorconfigurationreader.obj \
- $(SLO)$/acceleratorconfigurationwriter.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/test/makefile.mk b/framework/test/makefile.mk
deleted file mode 100644
index 6764af8dd091..000000000000
--- a/framework/test/makefile.mk
+++ /dev/null
@@ -1,94 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME= framework
-TARGET= test
-LIBTARGET= NO
-ENABLE_EXCEPTIONS= TRUE
-USE_DEFFILE= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- applikation: "test" --------------------------------------------------
-
-#APP1TARGET= test
-
-#APP1OBJS= $(SLO)$/test.obj
-#DEPOBJFILES+= $(APP1OBJS)
-
-#APP1LIBS= $(SLB)$/fwk_classes.lib \
-# $(SLB)$/fwk_helper.lib
-
-#APP1STDLIBS= $(CPPULIB) \
-# $(CPPUHELPERLIB) \
-# $(SALLIB) \
-# $(VOSLIB) \
-# $(TOOLSLIB) \
-# $(SVTOOLLIB) \
-# $(TKLIB) \
-# $(COMPHELPERLIB) \
-# $(VCLLIB)
-
-#APP1DEPN= $(SLB)$/fwk_helper.lib \
-# $(SLB)$/fwk_classes.lib
-
-# --- application: "threadtest" --------------------------------------------------
-
-APP2TARGET= threadtest
-
-APP2OBJS= $(SLO)$/threadtest.obj \
- $(SLO)$/transactionmanager.obj \
- $(SLO)$/transactionguard.obj \
- $(SLO)$/fairrwlock.obj \
- $(SLO)$/resetableguard.obj \
- $(SLO)$/gate.obj \
- $(SLO)$/readguard.obj \
- $(SLO)$/writeguard.obj
-
-DEPOBJFILES+= $(APP2OBJS)
-
-APP2STDLIBS= $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(SALLIB) \
- $(VOSLIB) \
- $(VCLLIB)
-
-APP2DEPN= $(SLO)$/fairrwlock.obj \
- $(SLO)$/transactionmanager.obj \
- $(SLO)$/transactionguard.obj \
- $(SLO)$/resetableguard.obj \
- $(SLO)$/gate.obj \
- $(SLO)$/readguard.obj \
- $(SLO)$/writeguard.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/test/threadtest/makefile.mk b/framework/test/threadtest/makefile.mk
deleted file mode 100644
index 833c328dc8a8..000000000000
--- a/framework/test/threadtest/makefile.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= threadtest
-LIBTARGET= NO
-ENABLE_EXCEPTIONS= TRUE
-USE_DEFFILE= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- application: "threadtest" --------------------------------------------------
-
-APP1TARGET= threadtest
-
-APP1OBJS= $(SLO)$/threadtest.obj \
- $(SLO)$/lockhelper.obj
-
-DEPOBJFILES=$(APP1OBJS)
-
-# [ed] 6/16/02 Add the transaction manager library on OS X
-
-APP1STDLIBS= $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(SALLIB) \
- $(VOSLIB) \
- $(VCLLIB)
-
-APP1DEPN= $(INC)$/threadhelp$/threadhelpbase.hxx \
- $(INC)$/threadhelp$/transactionbase.hxx \
- $(INC)$/threadhelp$/transactionmanager.hxx \
- $(INC)$/threadhelp$/transactionguard.hxx \
- $(INC)$/threadhelp$/resetableguard.hxx \
- $(INC)$/threadhelp$/readguard.hxx \
- $(INC)$/threadhelp$/writeguard.hxx
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/test/typecfg/makefile.mk b/framework/test/typecfg/makefile.mk
deleted file mode 100644
index 83782fdc4d74..000000000000
--- a/framework/test/typecfg/makefile.mk
+++ /dev/null
@@ -1,73 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= typecfg
-LIBTARGET= NO
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- applikation: "xml2xcd" --------------------------------------------------
-
-# --- applikation: "cfgview" --------------------------------------------------
-
-APP2TARGET= cfgview
-
-APP2OBJS= $(SLO)$/cfgview.obj \
- $(SLO)$/servicemanager.obj \
- $(SLO)$/filtercachedata.obj \
- $(SLO)$/filtercache.obj \
- $(SLO)$/wildcard.obj \
- $(SLO)$/lockhelper.obj
-
-DEPOBJFILES=$(APP2OBJS)
-
-APP2STDLIBS= $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(SALLIB) \
- $(VOSLIB) \
- $(TOOLSLIB) \
- $(SVTOOLLIB) \
- $(TKLIB) \
- $(COMPHELPERLIB) \
- $(UNOTOOLSLIB) \
- $(VCLLIB)
-
-APP2DEPN= $(SLO)$/servicemanager.obj \
- $(SLO)$/filtercachedata.obj \
- $(SLO)$/filtercache.obj \
- $(SLO)$/wildcard.obj \
- $(SLO)$/lockhelper.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/util/guiapps/makefile.mk b/framework/util/guiapps/makefile.mk
deleted file mode 100644
index efa5fc3fd88e..000000000000
--- a/framework/util/guiapps/makefile.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= framework
-TARGET= framework_guiapp
-TARGETTYPE=GUI
-
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-GEN_HID= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- login applikation -------------------------------------------------------
-
-APP1TARGET= login
-
-APP1OBJS= $(SLO)$/login.obj \
- $(SLO)$/servicemanager.obj \
- $(SLO)$/lockhelper.obj \
- $(SLO)$/transactionmanager.obj
-
-DEPOBJFILES=$(APP1OBJS)
-
-APP1STDLIBS= $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(SALLIB) \
- $(VOSLIB) \
- $(TOOLSLIB) \
- $(SVTOOLLIB) \
- $(TKLIB) \
- $(COMPHELPERLIB) \
- $(VCLLIB)
-
-APP1DEPN= $(SLO)$/servicemanager.obj
-
-# --- Targets -----------------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/framework/util/makefile.mk b/framework/util/makefile.mk
deleted file mode 100644
index a3f14341d3f3..000000000000
--- a/framework/util/makefile.mk
+++ /dev/null
@@ -1,445 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME= framework
-TARGET= framework
-
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-NO_BSYMBOLIC= TRUE
-GEN_HID= TRUE
-GEN_HID_OTHER= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- internal import -------------------------------------------------
-
-LIB1TARGET= $(SLB)$/fwiobj.lib
-
-LIB1OBJFILES= \
- $(SLO)$/converter.obj \
- $(SLO)$/lockhelper.obj \
- $(SLO)$/transactionmanager.obj \
- $(SLO)$/protocolhandlercache.obj \
- $(SLO)$/networkdomain.obj \
- $(SLO)$/configaccess.obj \
- $(SLO)$/shareablemutex.obj \
- $(SLO)$/itemcontainer.obj \
- $(SLO)$/rootitemcontainer.obj \
- $(SLO)$/constitemcontainer.obj \
- $(SLO)$/jobconst.obj \
- $(SLO)$/mischelper.obj \
- $(SLO)$/propertysethelper.obj
-
-
-
-# --- export library for sfx2 -------------------------------------------------
-
-LIB2TARGET= $(SLB)$/fweobj.lib
-
-LIB2OBJFILES= \
- $(SLO)$/bmkmenu.obj \
- $(SLO)$/eventsconfiguration.obj \
- $(SLO)$/eventsdocumenthandler.obj \
- $(SLO)$/imageproducer.obj \
- $(SLO)$/lockhelper.obj \
- $(SLO)$/menuconfiguration.obj \
- $(SLO)$/menudocumenthandler.obj \
- $(SLO)$/saxnamespacefilter.obj \
- $(SLO)$/statusbarconfiguration.obj \
- $(SLO)$/statusbardocumenthandler.obj \
- $(SLO)$/toolboxconfiguration.obj \
- $(SLO)$/toolboxdocumenthandler.obj \
- $(SLO)$/imagesconfiguration.obj \
- $(SLO)$/imagesdocumenthandler.obj \
- $(SLO)$/xmlnamespaces.obj \
- $(SLO)$/actiontriggerpropertyset.obj \
- $(SLO)$/actiontriggerseparatorpropertyset.obj \
- $(SLO)$/actiontriggercontainer.obj \
- $(SLO)$/propertysetcontainer.obj \
- $(SLO)$/rootactiontriggercontainer.obj \
- $(SLO)$/actiontriggerhelper.obj \
- $(SLO)$/imagewrapper.obj \
- $(SLO)$/interaction.obj \
- $(SLO)$/addonmenu.obj \
- $(SLO)$/addonsoptions.obj \
- $(SLO)$/fwkresid.obj \
- $(SLO)$/acceleratorinfo.obj \
- $(SLO)$/sfxhelperfunctions.obj \
- $(SLO)$/uielementwrapperbase.obj \
- $(SLO)$/uiconfigelementwrapperbase.obj \
- $(SLO)$/configimporter.obj \
- $(SLO)$/menuextensionsupplier.obj \
- $(SLO)$/preventduplicateinteraction.obj \
- $(SLO)$/framelistanalyzer.obj \
- $(SLO)$/titlehelper.obj
-
-# --- import classes library ---------------------------------------------------
-
-SHL1TARGET= fwi$(DLLPOSTFIX)
-
-SHL1IMPLIB= ifwi
-
-SHL1LIBS= $(LIB1TARGET)
-
-SHL1STDLIBS= \
- $(UNOTOOLSLIB) \
- $(CPPUHELPERLIB) \
- $(TOOLSLIB) \
- $(SVTOOLLIB) \
- $(SVLLIB) \
- $(I18NISOLANGLIB) \
- $(VOSLIB) \
- $(VCLLIB) \
- $(TKLIB) \
- $(CPPULIB) \
- $(SALLIB)
-
-.IF "$(GUI)"=="WNT"
-SHL1STDLIBS+=\
- $(UWINAPILIB) \
- $(UNICOWSLIB) \
- $(ADVAPI32LIB) \
- $(KERNEL32LIB)
-.ENDIF
-
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME= $(SHL1TARGET)
-
-DEFLIB1NAME= fwiobj
-DEF1DEPN= $(MISC)$/$(SHL1TARGET).flt
-
-
-# --- export classes library ---------------------------------------------------
-
-SHL2TARGET= fwe$(DLLPOSTFIX)
-
-SHL2IMPLIB= ifwe
-
-SHL2LIBS= $(LIB2TARGET)
-
-SHL2STDLIBS= \
- $(FWILIB) \
- $(VCLLIB) \
- $(SVLLIB) \
- $(SVTOOLLIB) \
- $(UNOTOOLSLIB) \
- $(TOOLSLIB) \
- $(COMPHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(VOSLIB) \
- $(SALLIB)
-
-SHL2DEF= $(MISC)$/$(SHL2TARGET).def
-SHL2DEPN= $(SHL1IMPLIBN) $(SHL1TARGETN)
-
-DEF2NAME= $(SHL2TARGET)
-
-DEFLIB2NAME= fweobj
-DEF2DEPN= $(MISC)$/$(SHL2TARGET).flt
-
-# --- light services library ----------------------------------------------------
-
-SHL3TARGET= fwl$(DLLPOSTFIX)
-
-SHL3IMPLIB= ifwl
-
-SHL3OBJS= $(SLO)$/mediatypedetectionhelper.obj\
- $(SLO)$/registertemp.obj \
- $(SLO)$/mailtodispatcher.obj \
- $(SLO)$/oxt_handler.obj \
- $(SLO)$/toolbarsmenucontroller.obj \
- $(SLO)$/newmenucontroller.obj \
- $(SLO)$/macrosmenucontroller.obj \
- $(SLO)$/langselectionmenucontroller.obj \
- $(SLO)$/headermenucontroller.obj \
- $(SLO)$/footermenucontroller.obj \
- $(SLO)$/fontsizemenucontroller.obj \
- $(SLO)$/fontmenucontroller.obj \
- $(SLO)$/tabwindowservice.obj \
- $(SLO)$/fwktabwindow.obj \
- $(SLO)$/logotextstatusbarcontroller.obj \
- $(SLO)$/fwlresid.obj \
- $(SLO)$/logoimagestatusbarcontroller.obj \
- $(SLO)$/simpletextstatusbarcontroller.obj \
- $(SLO)$/uriabbreviation.obj \
- $(SLO)$/servicehandler.obj \
- $(SLO)$/license.obj \
- $(SLO)$/dispatchrecorder.obj \
- $(SLO)$/dispatchrecordersupplier.obj\
- $(SLO)$/dispatchhelper.obj \
- $(SLO)$/popupmenudispatcher.obj \
- $(SLO)$/popupmenucontroller.obj
-
-SHL3STDLIBS= \
- $(FWILIB) \
- $(FWELIB) \
- $(SVLLIB) \
- $(TKLIB) \
- $(SVTOOLLIB) \
- $(UNOTOOLSLIB) \
- $(TOOLSLIB) \
- $(COMPHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(COMPHELPERLIB) \
- $(CPPULIB) \
- $(VCLLIB) \
- $(SALLIB)
-
-SHL3DEF= $(MISC)$/$(SHL3TARGET).def
-SHL3DEPN= $(SHL1IMPLIBN) $(SHL1TARGETN) $(SHL2TARGETN)
-
-DEF3NAME= $(SHL3TARGET)
-
-SHL3VERSIONMAP= $(SOLARENV)/src/component.map
-
-# --- services library ----------------------------------------------------
-
-SHL4TARGET= fwk$(DLLPOSTFIX)
-
-SHL4IMPLIB= ifwk
-
-SHL4OBJS= \
- $(SLO)$/acceleratorcache.obj \
- $(SLO)$/acceleratorconfiguration.obj \
- $(SLO)$/acceleratorconfigurationreader.obj \
- $(SLO)$/acceleratorconfigurationwriter.obj \
- $(SLO)$/addonstoolbarmanager.obj \
- $(SLO)$/addonstoolbarwrapper.obj \
- $(SLO)$/addonstoolboxfactory.obj \
- $(SLO)$/autorecovery.obj \
- $(SLO)$/backingcomp.obj \
- $(SLO)$/backingwindow.obj \
- $(SLO)$/buttontoolbarcontroller.obj \
- $(SLO)$/closedispatcher.obj \
- $(SLO)$/comboboxtoolbarcontroller.obj \
- $(SLO)$/complextoolbarcontroller.obj \
- $(SLO)$/configaccess.obj \
- $(SLO)$/containerquery.obj \
- $(SLO)$/contenthandler.obj \
- $(SLO)$/controlmenucontroller.obj \
- $(SLO)$/desktop.obj \
- $(SLO)$/dispatchinformationprovider.obj \
- $(SLO)$/dispatchprovider.obj \
- $(SLO)$/dockingareadefaultacceptor.obj \
- $(SLO)$/documentacceleratorconfiguration.obj \
- $(SLO)$/dropdownboxtoolbarcontroller.obj \
- $(SLO)$/droptargetlistener.obj \
- $(SLO)$/edittoolbarcontroller.obj \
- $(SLO)$/factoryconfiguration.obj \
- $(SLO)$/framecontainer.obj \
- $(SLO)$/frameloader.obj \
- $(SLO)$/frame.obj \
- $(SLO)$/generictoolbarcontroller.obj \
- $(SLO)$/globalacceleratorconfiguration.obj \
- $(SLO)$/globalsettings.obj \
- $(SLO)$/graphicnameaccess.obj \
- $(SLO)$/helpagentdispatcher.obj \
- $(SLO)$/imagebuttontoolbarcontroller.obj \
- $(SLO)$/imagemanager.obj \
- $(SLO)$/imagemanagerimpl.obj \
- $(SLO)$/interceptionhelper.obj \
- $(SLO)$/jobdata.obj \
- $(SLO)$/jobdispatch.obj \
- $(SLO)$/jobexecutor.obj \
- $(SLO)$/job.obj \
- $(SLO)$/jobresult.obj \
- $(SLO)$/joburl.obj \
- $(SLO)$/keymapping.obj \
- $(SLO)$/langselectionstatusbarcontroller.obj \
- $(SLO)$/layoutmanager.obj \
- $(SLO)$/loaddispatcher.obj \
- $(SLO)$/loadenv.obj \
- $(SLO)$/menubarfactory.obj \
- $(SLO)$/menubarmanager.obj \
- $(SLO)$/menubarmerger.obj \
- $(SLO)$/menubarwrapper.obj \
- $(SLO)$/menudispatcher.obj \
- $(SLO)$/menumanager.obj \
- $(SLO)$/moduleacceleratorconfiguration.obj \
- $(SLO)$/moduleimagemanager.obj \
- $(SLO)$/modulemanager.obj \
- $(SLO)$/moduleuicfgsupplier.obj \
- $(SLO)$/moduleuiconfigurationmanager.obj \
- $(SLO)$/objectmenucontroller.obj \
- $(SLO)$/ocomponentaccess.obj \
- $(SLO)$/ocomponentenumeration.obj \
- $(SLO)$/oframes.obj \
- $(SLO)$/pathsettings.obj \
- $(SLO)$/persistentwindowstate.obj \
- $(SLO)$/popupmenucontrollerfactory.obj\
- $(SLO)$/presethandler.obj \
- $(SLO)$/progressbarwrapper.obj \
- $(SLO)$/recentfilesmenucontroller.obj \
- $(SLO)$/registerservices.obj \
- $(SLO)$/sessionlistener.obj \
- $(SLO)$/spinfieldtoolbarcontroller.obj \
- $(SLO)$/statusbarcontrollerfactory.obj\
- $(SLO)$/statusbarfactory.obj \
- $(SLO)$/statusbarmanager.obj \
- $(SLO)$/statusbar.obj \
- $(SLO)$/statusbarwrapper.obj \
- $(SLO)$/statusindicatorfactory.obj \
- $(SLO)$/statusindicatorinterfacewrapper.obj \
- $(SLO)$/statusindicator.obj \
- $(SLO)$/quietinteraction.obj \
- $(SLO)$/storageholder.obj \
- $(SLO)$/substitutepathvars.obj \
- $(SLO)$/tagwindowasmodified.obj \
- $(SLO)$/targethelper.obj \
- $(SLO)$/taskcreator.obj \
- $(SLO)$/taskcreatorsrv.obj \
- $(SLO)$/titlebarupdate.obj \
- $(SLO)$/togglebuttontoolbarcontroller.obj \
- $(SLO)$/toolbarcontrollerfactory.obj\
- $(SLO)$/toolbarmanager.obj \
- $(SLO)$/toolbarmerger.obj \
- $(SLO)$/toolbar.obj \
- $(SLO)$/toolbarwrapper.obj \
- $(SLO)$/toolboxfactory.obj \
- $(SLO)$/uicategorydescription.obj \
- $(SLO)$/uicommanddescription.obj \
- $(SLO)$/uiconfigurationmanager.obj \
- $(SLO)$/uielementfactorymanager.obj \
- $(SLO)$/urltransformer.obj \
- $(SLO)$/vclstatusindicator.obj \
- $(SLO)$/wakeupthread.obj \
- $(SLO)$/windowcommanddispatch.obj \
- $(SLO)$/windowstateconfiguration.obj \
- $(SLO)$/windowcontentfactorymanager.obj \
- $(SLO)$/startmoduledispatcher.obj
-
-SHL4STDLIBS= \
- $(FWILIB) \
- $(FWELIB) \
- $(SVTOOLLIB) \
- $(TKLIB) \
- $(VCLLIB) \
- $(SVLLIB) \
- $(SOTLIB) \
- $(UNOTOOLSLIB) \
- $(TOOLSLIB) \
- $(COMPHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(SALLIB) \
- $(UCBHELPERLIB) \
- $(I18NISOLANGLIB)
-
-SHL4DEF= $(MISC)$/$(SHL4TARGET).def
-SHL4DEPN= $(SHL1IMPLIBN) $(SHL1TARGETN) $(SHL2IMPLIBN) $(SHL2TARGETN)
-
-DEF4NAME= $(SHL4TARGET)
-
-SHL4VERSIONMAP= $(SOLARENV)/src/component.map
-
-# --- services library ----------------------------------------------------
-
-SHL5TARGET= fwm$(DLLPOSTFIX)
-
-SHL5IMPLIB= ifwm
-
-SHL5OBJS= \
- $(SLO)$/helponstartup.obj \
- $(SLO)$/tabwinfactory.obj \
- $(SLO)$/tabwindow.obj \
- $(SLO)$/systemexec.obj \
- $(SLO)$/shelljob.obj \
- $(SLO)$/register3rdcomponents.obj
-
-SHL5STDLIBS= \
- $(FWILIB) \
- $(TKLIB) \
- $(VCLLIB) \
- $(TOOLSLIB) \
- $(COMPHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(SALLIB)
-
-SHL5DEF= $(MISC)$/$(SHL5TARGET).def
-SHL5DEPN= $(SHL1IMPLIBN) $(SHL1TARGETN)
-
-DEF5NAME= $(SHL5TARGET)
-
-SHL5VERSIONMAP= $(SOLARENV)/src/component.map
-
-RESLIB1NAME= fwe
-RESLIB1IMAGES= $(PRJ)$/res
-RESLIB1SRSFILES= $(SRS)$/fwk_classes.srs \
- $(SRS)$/fwk_services.srs \
-
-# --- Targets -----------------------------------------------------------------
-
-.INCLUDE : target.mk
-
-$(MISC)$/$(SHL1TARGET).flt: makefile.mk
- @echo ------------------------------
- @echo Making: $@
- @echo _Impl>$@
- @echo WEP>>$@
- @echo m_pLoader>$@
- @echo _TI2>>$@
- @echo _TI3>>$@
- @echo LIBMAIN>>$@
- @echo LibMain>>$@
- @echo _STL::pair>>$@
-
-$(MISC)$/$(SHL2TARGET).flt: makefile.mk
- @echo ------------------------------
- @echo Making: $@
- @echo _Impl>$@
- @echo WEP>>$@
- @echo m_pLoader>$@
- @echo _TI2>>$@
- @echo LIBMAIN>>$@
- @echo LibMain>>$@
-
-ALLTAR : $(MISC)/fwk.component $(MISC)/fwl.component $(MISC)/fwm.component
-
-$(MISC)/fwk.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- fwk.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL4TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt fwk.component
-
-$(MISC)/fwl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- fwl.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL3TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt fwl.component
-
-$(MISC)/fwm.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- fwm.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL5TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt fwm.component
diff --git a/framework/util/makefile.pmk b/framework/util/makefile.pmk
index e567ba01c141..6dc45f466d26 100644
--- a/framework/util/makefile.pmk
+++ b/framework/util/makefile.pmk
@@ -36,3 +36,4 @@ PATH_SEPERATOR=";"
.ENDIF
JARFILES = uno.jar
+VISIBILITY_HIDDEN=TRUE
diff --git a/idl/source/prj/command.cxx b/idl/source/prj/command.cxx
index 8dc2bc3993b6..67a532531855 100755
--- a/idl/source/prj/command.cxx
+++ b/idl/source/prj/command.cxx
@@ -202,7 +202,11 @@ sal_Bool ReadIdl( SvIdlWorkingBase * pDataBase, const SvCommand & rCommand )
}
}
else
+ {
+ const ByteString aStr( aFileName, RTL_TEXTENCODING_UTF8 );
+ fprintf( stderr, "unable to read input file: %s\n", aStr.GetBuffer() );
return sal_False;
+ }
}
return sal_True;
}
diff --git a/linguistic/inc/hyphdta.hxx b/linguistic/inc/linguistic/hyphdta.hxx
index 5d163e827239..5d163e827239 100644
--- a/linguistic/inc/hyphdta.hxx
+++ b/linguistic/inc/linguistic/hyphdta.hxx
diff --git a/linguistic/inc/lngprophelp.hxx b/linguistic/inc/linguistic/lngprophelp.hxx
index 2deef9539fbc..2deef9539fbc 100644
--- a/linguistic/inc/lngprophelp.hxx
+++ b/linguistic/inc/linguistic/lngprophelp.hxx
diff --git a/linguistic/inc/lngprops.hxx b/linguistic/inc/linguistic/lngprops.hxx
index 68f599d50a8c..68f599d50a8c 100644
--- a/linguistic/inc/lngprops.hxx
+++ b/linguistic/inc/linguistic/lngprops.hxx
diff --git a/linguistic/inc/misc.hxx b/linguistic/inc/linguistic/misc.hxx
index 2b49f37858c0..2b49f37858c0 100644
--- a/linguistic/inc/misc.hxx
+++ b/linguistic/inc/linguistic/misc.hxx
diff --git a/linguistic/inc/spelldta.hxx b/linguistic/inc/linguistic/spelldta.hxx
index 7ab7cab06b56..7ab7cab06b56 100644
--- a/linguistic/inc/spelldta.hxx
+++ b/linguistic/inc/linguistic/spelldta.hxx
diff --git a/linguistic/prj/build.lst b/linguistic/prj/build.lst
index b85d4cfd9d73..0043eaffc6ed 100644
--- a/linguistic/prj/build.lst
+++ b/linguistic/prj/build.lst
@@ -1,4 +1,4 @@
-lg linguistic : svl xmloff ucbhelper vos comphelper ICU:icu NULL
+lg linguistic : svl xmloff ucbhelper vos comphelper ICU:icu LIBXSLT:libxslt NULL
lg linguistic usr1 - all lg_mkout NULL
lg linguistic\prj get - all lg_prj NULL
lg linguistic\inc nmake - all lg_inc NULL
diff --git a/linguistic/prj/d.lst b/linguistic/prj/d.lst
index 0e0534feafd8..03237f925764 100644
--- a/linguistic/prj/d.lst
+++ b/linguistic/prj/d.lst
@@ -7,5 +7,7 @@
..\xml\*.xml %_DEST%\xml%_EXT%\*.xml
mkdir: %_DEST%\inc%_EXT%\linguistic
-..\inc\*.hxx %_DEST%\inc%_EXT%\linguistic\*.hxx
+..\inc\linguistic\*.hxx %_DEST%\inc%_EXT%\linguistic\*.hxx
+
..\%__SRC%\misc\lng.component %_DEST%\xml%_EXT%\lng.component
+
diff --git a/linguistic/source/convdic.cxx b/linguistic/source/convdic.cxx
index fadfb26857c9..f199c6630908 100644
--- a/linguistic/source/convdic.cxx
+++ b/linguistic/source/convdic.cxx
@@ -66,7 +66,7 @@
#include "convdic.hxx"
#include "convdicxml.hxx"
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
using namespace std;
diff --git a/linguistic/source/convdic.hxx b/linguistic/source/convdic.hxx
index a0276cb57156..77346927df9b 100644
--- a/linguistic/source/convdic.hxx
+++ b/linguistic/source/convdic.hxx
@@ -38,7 +38,7 @@
#include <hash_map>
#include <set>
#include <memory>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
// text conversion dictionary extension
diff --git a/linguistic/source/convdiclist.cxx b/linguistic/source/convdiclist.cxx
index cfaa9e8e7b29..f1af7ea597df 100644
--- a/linguistic/source/convdiclist.cxx
+++ b/linguistic/source/convdiclist.cxx
@@ -53,7 +53,7 @@
#include "convdiclist.hxx"
#include "convdic.hxx"
#include "hhconvdic.hxx"
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
//using namespace utl;
diff --git a/linguistic/source/convdiclist.hxx b/linguistic/source/convdiclist.hxx
index fb82409edce0..206f88bf1c22 100644
--- a/linguistic/source/convdiclist.hxx
+++ b/linguistic/source/convdiclist.hxx
@@ -36,7 +36,7 @@
#include <svl/svarray.hxx>
#include <tools/debug.hxx>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "lngopt.hxx"
diff --git a/linguistic/source/convdicxml.cxx b/linguistic/source/convdicxml.cxx
index 071f6231f358..64e6f7a071bd 100644
--- a/linguistic/source/convdicxml.cxx
+++ b/linguistic/source/convdicxml.cxx
@@ -58,7 +58,7 @@
#include "convdic.hxx"
#include "convdicxml.hxx"
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
using namespace std;
diff --git a/linguistic/source/convdicxml.hxx b/linguistic/source/convdicxml.hxx
index 3ed260a58b6d..edf5ebe104d1 100644
--- a/linguistic/source/convdicxml.hxx
+++ b/linguistic/source/convdicxml.hxx
@@ -38,7 +38,7 @@
#include <cppuhelper/interfacecontainer.h>
#include <tools/string.hxx>
#include <rtl/ustring.hxx>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
diff --git a/linguistic/source/dicimp.hxx b/linguistic/source/dicimp.hxx
index 2ad110e9a41f..3c186ecf517b 100644
--- a/linguistic/source/dicimp.hxx
+++ b/linguistic/source/dicimp.hxx
@@ -40,7 +40,7 @@
#include <tools/stream.hxx>
#include "defs.hxx"
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
///////////////////////////////////////////////////////////////////////////
diff --git a/linguistic/source/dlistimp.hxx b/linguistic/source/dlistimp.hxx
index 325e3b248250..ca88be6660ca 100644
--- a/linguistic/source/dlistimp.hxx
+++ b/linguistic/source/dlistimp.hxx
@@ -41,7 +41,7 @@
#include <vector>
#include <memory>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "lngopt.hxx"
class DicEvtListenerHelper;
diff --git a/linguistic/source/gciterator.cxx b/linguistic/source/gciterator.cxx
index f06cbd2790af..4f4bc1ea36b8 100644
--- a/linguistic/source/gciterator.cxx
+++ b/linguistic/source/gciterator.cxx
@@ -67,7 +67,7 @@
#include <map>
#include <vector>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
#include "lngopt.hxx"
diff --git a/linguistic/source/grammarchecker.cxx b/linguistic/source/grammarchecker.cxx
index ae0ed6610bdf..4fa2986b587d 100644
--- a/linguistic/source/grammarchecker.cxx
+++ b/linguistic/source/grammarchecker.cxx
@@ -34,7 +34,7 @@
#include <cppuhelper/implbase4.hxx>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
#include <cppuhelper/factory.hxx>
#include <com/sun/star/registry/XRegistryKey.hpp>
diff --git a/linguistic/source/hhconvdic.cxx b/linguistic/source/hhconvdic.cxx
index 1496f50dece8..d54bdbe4bbfa 100644
--- a/linguistic/source/hhconvdic.cxx
+++ b/linguistic/source/hhconvdic.cxx
@@ -48,7 +48,7 @@
#include <com/sun/star/registry/XRegistryKey.hpp>
#include "hhconvdic.hxx"
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
using namespace utl;
diff --git a/linguistic/source/hhconvdic.hxx b/linguistic/source/hhconvdic.hxx
index 9bdecf0903fc..8d30ea2fd812 100644
--- a/linguistic/source/hhconvdic.hxx
+++ b/linguistic/source/hhconvdic.hxx
@@ -35,7 +35,7 @@
#include <cppuhelper/interfacecontainer.h>
#include <tools/string.hxx>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
#include "convdic.hxx"
diff --git a/linguistic/source/hyphdsp.cxx b/linguistic/source/hyphdsp.cxx
index a6fc2c7b8888..d296a8a56bfb 100644
--- a/linguistic/source/hyphdsp.cxx
+++ b/linguistic/source/hyphdsp.cxx
@@ -42,8 +42,8 @@
#include <osl/mutex.hxx>
#include "hyphdsp.hxx"
-#include "hyphdta.hxx"
-#include "lngprops.hxx"
+#include "linguistic/hyphdta.hxx"
+#include "linguistic/lngprops.hxx"
#include "lngsvcmgr.hxx"
diff --git a/linguistic/source/hyphdsp.hxx b/linguistic/source/hyphdsp.hxx
index c3a8912e1068..8271c5f08969 100644
--- a/linguistic/source/hyphdsp.hxx
+++ b/linguistic/source/hyphdsp.hxx
@@ -45,7 +45,7 @@
#include <map>
#include "lngopt.hxx"
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
class LngSvcMgr;
diff --git a/linguistic/source/hyphdta.cxx b/linguistic/source/hyphdta.cxx
index a48af35f4756..32c755ad7758 100644
--- a/linguistic/source/hyphdta.cxx
+++ b/linguistic/source/hyphdta.cxx
@@ -28,9 +28,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_linguistic.hxx"
-#include "hyphdta.hxx"
-#include "lngprops.hxx"
-#include "misc.hxx"
+#include "linguistic/hyphdta.hxx"
+#include "linguistic/lngprops.hxx"
+#include "linguistic/misc.hxx"
#include <osl/mutex.hxx>
diff --git a/linguistic/source/iprcache.cxx b/linguistic/source/iprcache.cxx
index 2c87804178b3..bdde4e6851ff 100644
--- a/linguistic/source/iprcache.cxx
+++ b/linguistic/source/iprcache.cxx
@@ -31,7 +31,7 @@
#include <string.h>
#include "iprcache.hxx"
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include <com/sun/star/linguistic2/DictionaryListEventFlags.hpp>
#include <tools/debug.hxx>
@@ -57,7 +57,7 @@
#endif
#include <unotools/processfactory.hxx>
-#include <lngprops.hxx>
+#include <linguistic/lngprops.hxx>
using namespace utl;
using namespace osl;
diff --git a/linguistic/source/lngopt.cxx b/linguistic/source/lngopt.cxx
index ecdfa00f436c..95cde6a32812 100644
--- a/linguistic/source/lngopt.cxx
+++ b/linguistic/source/lngopt.cxx
@@ -29,8 +29,8 @@
#include "precompiled_linguistic.hxx"
#include "lngopt.hxx"
-#include "lngprops.hxx"
-#include "misc.hxx"
+#include "linguistic/lngprops.hxx"
+#include "linguistic/misc.hxx"
#include <tools/debug.hxx>
#include <unotools/lingucfg.hxx>
diff --git a/linguistic/source/lngopt.hxx b/linguistic/source/lngopt.hxx
index 31c0d61337e9..ecfa5461e2c3 100644
--- a/linguistic/source/lngopt.hxx
+++ b/linguistic/source/lngopt.hxx
@@ -45,7 +45,7 @@
#include <tools/solar.h>
#include <svl/itemprop.hxx>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
#include <vos/refernce.hxx>
diff --git a/linguistic/source/lngprophelp.cxx b/linguistic/source/lngprophelp.cxx
index 88c6900814b2..88c5c7829cee 100644
--- a/linguistic/source/lngprophelp.cxx
+++ b/linguistic/source/lngprophelp.cxx
@@ -36,10 +36,10 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <osl/mutex.hxx>
-#include <misc.hxx>
-#include <lngprops.hxx>
+#include <linguistic/misc.hxx>
+#include <linguistic/lngprops.hxx>
-#include <lngprophelp.hxx>
+#include <linguistic/lngprophelp.hxx>
//using namespace utl;
diff --git a/linguistic/source/lngsvcmgr.cxx b/linguistic/source/lngsvcmgr.cxx
index 92b8f519b040..d4b7ab62e5f4 100644
--- a/linguistic/source/lngsvcmgr.cxx
+++ b/linguistic/source/lngsvcmgr.cxx
@@ -49,7 +49,7 @@
#include "lngsvcmgr.hxx"
#include "lngopt.hxx"
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "spelldsp.hxx"
#include "hyphdsp.hxx"
#include "thesdsp.hxx"
diff --git a/linguistic/source/lngsvcmgr.hxx b/linguistic/source/lngsvcmgr.hxx
index 28fc86460516..9116b36f767b 100644
--- a/linguistic/source/lngsvcmgr.hxx
+++ b/linguistic/source/lngsvcmgr.hxx
@@ -42,7 +42,7 @@
//#include <vcl/timer.hxx>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
class SpellCheckerDispatcher;
diff --git a/linguistic/source/misc.cxx b/linguistic/source/misc.cxx
index ac93ec9c24f2..f0a26ca50f09 100644
--- a/linguistic/source/misc.cxx
+++ b/linguistic/source/misc.cxx
@@ -53,10 +53,10 @@
#include <rtl/instance.hxx>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "defs.hxx"
-#include "lngprops.hxx"
-#include "hyphdta.hxx"
+#include "linguistic/lngprops.hxx"
+#include "linguistic/hyphdta.hxx"
#include <i18npool/mslangid.hxx>
using namespace utl;
diff --git a/linguistic/source/misc2.cxx b/linguistic/source/misc2.cxx
index e59fa6ecfbec..dde8768ac283 100644
--- a/linguistic/source/misc2.cxx
+++ b/linguistic/source/misc2.cxx
@@ -44,7 +44,7 @@
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/uno/Reference.h>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
using namespace com::sun::star;
diff --git a/linguistic/source/spelldsp.cxx b/linguistic/source/spelldsp.cxx
index 36b2d1580a7c..6cc73236a5de 100644
--- a/linguistic/source/spelldsp.cxx
+++ b/linguistic/source/spelldsp.cxx
@@ -43,9 +43,9 @@
#include <vector>
#include "spelldsp.hxx"
-#include "spelldta.hxx"
+#include "linguistic/spelldta.hxx"
#include "lngsvcmgr.hxx"
-#include "lngprops.hxx"
+#include "linguistic/lngprops.hxx"
using namespace utl;
diff --git a/linguistic/source/spelldsp.hxx b/linguistic/source/spelldsp.hxx
index 6c1e2ce5d589..99c8eeefbc6b 100644
--- a/linguistic/source/spelldsp.hxx
+++ b/linguistic/source/spelldsp.hxx
@@ -29,7 +29,7 @@
#define _LINGUISTIC_SPELLDSP_HXX_
#include "lngopt.hxx"
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "iprcache.hxx"
#include <uno/lbnames.h> // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type
diff --git a/linguistic/source/spelldta.cxx b/linguistic/source/spelldta.cxx
index 450a5d9a4e23..158ff9073d56 100644
--- a/linguistic/source/spelldta.cxx
+++ b/linguistic/source/spelldta.cxx
@@ -37,7 +37,7 @@
#include <vector>
-#include "spelldta.hxx"
+#include "linguistic/spelldta.hxx"
#include "lngsvcmgr.hxx"
diff --git a/linguistic/source/thesdsp.cxx b/linguistic/source/thesdsp.cxx
index 05fc0359e079..8cf9110c7570 100644
--- a/linguistic/source/thesdsp.cxx
+++ b/linguistic/source/thesdsp.cxx
@@ -38,7 +38,7 @@
#include <osl/mutex.hxx>
#include "thesdsp.hxx"
-#include "lngprops.hxx"
+#include "linguistic/lngprops.hxx"
using namespace utl;
using namespace osl;
diff --git a/linguistic/source/thesdta.cxx b/linguistic/source/thesdta.cxx
index 61d46b01f435..1978923a59ff 100644
--- a/linguistic/source/thesdta.cxx
+++ b/linguistic/source/thesdta.cxx
@@ -30,7 +30,7 @@
#include <tools/debug.hxx>
#include <osl/mutex.hxx>
-#include <misc.hxx>
+#include <linguistic/misc.hxx>
#include "thesdta.hxx"
diff --git a/linguistic/workben/sprophelp.cxx b/linguistic/workben/sprophelp.cxx
index 0a02bc22bb58..dcfa1d240cde 100644
--- a/linguistic/workben/sprophelp.cxx
+++ b/linguistic/workben/sprophelp.cxx
@@ -28,10 +28,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_linguistic.hxx"
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "sprophelp.hxx"
-#include "lngprops.hxx"
+#include "linguistic/lngprops.hxx"
#include <tools/debug.hxx>
#include <com/sun/star/linguistic2/LinguServiceEvent.hpp>
diff --git a/linguistic/workben/sspellimp.cxx b/linguistic/workben/sspellimp.cxx
index 81981093e2f8..38123a144655 100644
--- a/linguistic/workben/sspellimp.cxx
+++ b/linguistic/workben/sspellimp.cxx
@@ -41,8 +41,8 @@
#include <sspellimp.hxx>
#endif
-#include "lngprops.hxx"
-#include "spelldta.hxx"
+#include "linguistic/lngprops.hxx"
+#include "linguistic/spelldta.hxx"
using namespace utl;
using namespace osl;
diff --git a/linguistic/workben/sspellimp.hxx b/linguistic/workben/sspellimp.hxx
index df37c403572f..e6796afc6356 100644
--- a/linguistic/workben/sspellimp.hxx
+++ b/linguistic/workben/sspellimp.hxx
@@ -42,7 +42,7 @@
#include <com/sun/star/linguistic2/XLinguServiceEventBroadcaster.hpp>
#include <tools/table.hxx>
-#include "misc.hxx"
+#include "linguistic/misc.hxx"
#include "sprophelp.hxx"
using namespace ::rtl;
diff --git a/officecfg/registry/data/org/openoffice/Interaction.xcu b/officecfg/registry/data/org/openoffice/Interaction.xcu
index afd78005fb71..cc207de626d2 100644
--- a/officecfg/registry/data/org/openoffice/Interaction.xcu
+++ b/officecfg/registry/data/org/openoffice/Interaction.xcu
@@ -52,5 +52,17 @@
<value>com.sun.star.comp.dbaccess.DatabaseInteractionHandler</value>
</prop>
</node>
+ <node oor:name="org.openoffice.Filter.PDFExport.Interactions" oor:op="replace">
+ <node oor:name="HandledRequestTypes">
+ <node oor:name="com.sun.star.task.PDFExportException" oor:op="replace">
+ <prop oor:name="Propagation" oor:type="xs:string">
+ <value>named-and-derived</value>
+ </prop>
+ </node>
+ </node>
+ <prop oor:name="ServiceName" oor:type="xs:string">
+ <value>com.sun.star.filter.pdfexport.PDFExportInteractionHandler</value>
+ </prop>
+ </node>
</node>
</oor:component-data>
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index 479827565775..46611715f998 100755
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -29,13 +29,13 @@
<oor:component-data oor:name="GenericCommands" oor:package="org.openoffice.Office.UI" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<node oor:name="UserInterface">
<node oor:name="Commands">
- <node oor:name=".uno:WebHtml" oor:op="replace">
+ <node oor:name=".uno:WebHtml" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="de">Vorschau in Web-Browser</value>
<value xml:lang="en-US">Preview in Web Browser</value>
</prop>
</node>
- <node oor:name=".uno:NewPresentation" oor:op="replace">
+ <node oor:name=".uno:NewPresentation" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">New Presentation</value>
</prop>
@@ -2117,9 +2117,9 @@
</prop>
</node>
<node oor:name=".uno:LanguageStatus" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">Language Status</value>
- </prop>
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Language Status</value>
+ </prop>
</node>
<node oor:name=".uno:ChooseControls" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
@@ -3006,7 +3006,7 @@
<value xml:lang="en-US">~Spelling and Grammar...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>1</value>
</prop>
</node>
<node oor:name=".uno:SpellDialog" oor:op="replace">
@@ -3461,12 +3461,12 @@
<value>9</value>
</prop>
</node>
- <node oor:name=".uno:TaskPane" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">Task Pane</value>
- </prop>
- </node>
- <node oor:name=".uno:RestoreEditingView" oor:op="replace">
+ <node oor:name=".uno:TaskPane" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Task Pane</value>
+ </prop>
+ </node>
+ <node oor:name=".uno:RestoreEditingView" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Restore Editing View</value>
</prop>
@@ -3480,10 +3480,10 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Fit to Frame</value>
</prop>
- <prop oor:name="Properties" oor:type="xs:int">
- <value>8</value>
- </prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:ImageMapDialog" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">ImageMap</value>
@@ -3740,10 +3740,10 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Flash</value>
</prop>
- <prop oor:name="Properties" oor:type="xs:int">
- <value>8</value>
- </prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:ToolsMacroEdit" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Edit Macros</value>
@@ -4047,12 +4047,12 @@
</node>
<node oor:name=".uno:RubyDialog" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">As~ian phonetic guide...</value>
+ <value xml:lang="en-US">As~ian phonetic guide...</value>
</prop>
- <prop oor:name="Properties" oor:type="xs:int">
- <value>8</value>
- </prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:InsertSymbol" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">S~pecial Character...</value>
@@ -4149,10 +4149,10 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Status ~Bar</value>
</prop>
- <prop oor:name="Properties" oor:type="xs:int">
- <value>8</value>
- </prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:MacroBarVisible" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Macro Toolbar On/Off</value>
@@ -5121,16 +5121,16 @@
<value xml:lang="en-US">~Extension Manager...</value>
</prop>
</node>
- <node oor:name=".uno:Signature" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">Digital Signatu~res...</value>
- </prop>
- </node>
- <node oor:name=".uno:MacroSignature" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">Digital Signature...</value>
- </prop>
- </node>
+ <node oor:name=".uno:Signature" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Digital Signatu~res...</value>
+ </prop>
+ </node>
+ <node oor:name=".uno:MacroSignature" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Digital Signature...</value>
+ </prop>
+ </node>
<node oor:name=".uno:CommonAlignLeft" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Left</value>
@@ -5187,22 +5187,27 @@
<value xml:lang="en-US">Find</value>
</prop>
</node> -->
- <node oor:name=".uno:DeleteAllNotes" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">Delete All Comments</value>
- </prop>
- </node>
- <node oor:name=".uno:DeleteAuthor" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">Delete All Comments by This Author</value>
- </prop>
- </node>
- <node oor:name=".uno:DeleteNote" oor:op="replace">
+ <node oor:name=".uno:DeleteAllNotes" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Delete All Comments</value>
+ </prop>
+ </node>
+ <node oor:name=".uno:DeleteAuthor" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Delete All Comments by This Author</value>
+ </prop>
+ </node>
+ <node oor:name=".uno:ReplyComment" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">Delete Comment</value>
+ <value xml:lang="en-US">Reply Comment</value>
</prop>
</node>
- </node>
+ <node oor:name=".uno:DeleteComment" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Delete Comment</value>
+ </prop>
+ </node>
+ </node>
<node oor:name="Popups">
<node oor:name=".uno:HelpMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
index 4fa236666b6b..465c6b37c0cd 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
@@ -166,6 +166,16 @@
<value xml:lang="en-US">~Protect Records...</value>
</prop>
</node>
+ <node oor:name=".uno:RejectTracedChange" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Reject Change</value>
+ </prop>
+ </node>
+ <node oor:name=".uno:AcceptTracedChange" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Accept Change</value>
+ </prop>
+ </node>
<node oor:name=".uno:UpdateAllLinks" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">~Links</value>
diff --git a/officecfg/registry/data/org/openoffice/Office/Writer.xcu b/officecfg/registry/data/org/openoffice/Office/Writer.xcu
index b318614ef789..06eff1b079e7 100644
--- a/officecfg/registry/data/org/openoffice/Office/Writer.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Writer.xcu
@@ -53,6 +53,9 @@
</node>
<node oor:name="Insert">
<node oor:name="Caption">
+ <prop oor:name="CaptionOrderNumberingFirst">
+ <value xml:lang="hu">true</value>
+ </prop>
<node oor:name="WriterObject">
<node oor:name="Table">
<node oor:name="Settings">
diff --git a/officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs b/officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs
index de26a3ae14eb..819290c3c283 100644..100755
--- a/officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs
@@ -26,28 +26,52 @@
*
************************************************************************ -->
<!DOCTYPE oor:component-schema SYSTEM "../../../../component-schema.dtd">
-<oor:component-schema xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oor:name="ExtensionManager" oor:package="org.openoffice.Office" xml:lang="en-US">
- <info>
- <author>JL</author>
- <desc >Contains information for the Extension Manager.</desc>
- </info>
- <component>
- <group oor:name="ExtensionRepositories">
- <info>
- <desc>Information about repositories for extensions.
- </desc>
- </info>
- <prop oor:name="WebsiteLink" oor:type="xs:string">
- <info>
- <desc>This links is used from the Extension Manager. A user can click on the &amp;Download extensions...&amp;
- control so that a browser is opened which displayed the website to which directs this URL.
- </desc>
- </info>
- <value></value>
- </prop>
-
- </group>
- </component>
-
+<oor:component-schema xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oor:name="ExtensionManager" oor:package="org.openoffice.Office" xml:lang="en-US">
+ <info>
+ <author>JL</author>
+ <desc>Contains information for the Extension Manager.</desc>
+ </info>
+ <templates>
+ <group oor:name="UpdateInfo">
+ <info>
+ <desc>Holds the information about updates for extensions.</desc>
+ </info>
+ <prop oor:name="Version" oor:type="xs:string" oor:localized="false">
+ <info>
+ <desc>The version of the extension</desc>
+ </info>
+ </prop>
+ </group>
+ </templates>
+ <component>
+ <group oor:name="ExtensionRepositories">
+ <info>
+ <desc>Information about repositories for extensions.</desc>
+ </info>
+ <prop oor:name="WebsiteLink" oor:type="xs:string">
+ <info>
+ <desc>This links is used from the Extension Manager. A user can click on the &amp;Download extensions...&amp;
+ control so that a browser is opened which displayed the website to which directs this URL.
+ </desc>
+ </info>
+ <value></value>
+ </prop>
+ </group>
+ <group oor:name="ExtensionUpdateData">
+ <info>
+ <desc>Contains inforamtion about availabe or ignored updates for extensions."</desc>
+ </info>
+ <set oor:name="AvailableUpdates" oor:node-type="UpdateInfo">
+ <info>
+ <desc>This set lists all known updates for extensions, which where not applied yet.</desc>
+ </info>
+ </set>
+ <set oor:name="IgnoredUpdates" oor:node-type="UpdateInfo">
+ <info>
+ <desc>This set lists all updates for extensions which the user wanted to ignore.</desc>
+ </info>
+ </set>
+ </group>
+ </component>
</oor:component-schema>
diff --git a/officecfg/registry/schema/org/openoffice/Office/Jobs.xcs b/officecfg/registry/schema/org/openoffice/Office/Jobs.xcs
index a9b4cdc70fd7..f5421c8a246f 100644..100755
--- a/officecfg/registry/schema/org/openoffice/Office/Jobs.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Jobs.xcs
@@ -40,6 +40,11 @@
<desc>Must contain an UNO implementation(!) name of the implemented job component.</desc>
</info>
</prop>
+ <prop oor:name="Context" oor:type="xs:string">
+ <info>
+ <desc>An property to define the context this event should be active in. It can be empty or a colon separated list of the supported application modules.</desc>
+ </info>
+ </prop>
<group oor:name="Arguments" oor:extensible="true">
<info>
<desc>Can be filled with any argument, which is under control of the job component.</desc>
diff --git a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
index 4a3c2c02c396..ea806e58f320 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Writer.xcs
@@ -1512,6 +1512,15 @@
<info>
<desc>Contains miscellaneous settings.</desc>
</info>
+ <prop oor:name="IsAlignMathObjectsToBaseline" oor:type="xs:boolean">
+ <!-- UIHints: none yet -->
+ <info>
+ <author>TL</author>
+ <desc>Automatically align the baseline of Math objects with the baseline of the surrounding text.</desc>
+ <label>Align Math objects</label>
+ </info>
+ <value>true</value>
+ </prop>
<prop oor:name="MeasureUnit" oor:type="xs:int">
<!-- OldPath: Writer/Layout -->
<!-- OldLocation: Soffice.cfg -->
diff --git a/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs b/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
index 8738d9db2112..b92e4684c842 100644
--- a/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs
@@ -418,6 +418,15 @@
<info>
<desc>Contains miscellaneous settings.</desc>
</info>
+ <prop oor:name="IsAlignMathObjectsToBaseline" oor:type="xs:boolean">
+ <!-- UIHints: none yet -->
+ <info>
+ <author>TL</author>
+ <desc>Automatically align the baseline of Math objects with the baseline of the surrounding text.</desc>
+ <label>Align Math objects</label>
+ </info>
+ <value>true</value>
+ </prop>
<prop oor:name="MeasureUnit" oor:type="xs:int">
<!-- OldPath: HTML_Editor/Layout/Window -->
<!-- OldLocation: Soffice.cfg -->
diff --git a/oovbaapi/ooo/vba/XApplicationBase.idl b/oovbaapi/ooo/vba/XApplicationBase.idl
index d9d32e02f2ce..1291276ae643 100644
--- a/oovbaapi/ooo/vba/XApplicationBase.idl
+++ b/oovbaapi/ooo/vba/XApplicationBase.idl
@@ -49,9 +49,9 @@ interface XApplicationBase
void Quit();
- any CommandBars( [in] any aIndex );
- void Run([in] string MacroName, [in] /*Optional*/ any varg1, [in] /*Optional*/ any varg2, [in] /*Optional*/ any varg3, [in] /*Optional*/ any varg4, [in] /*Optional*/ any varg5, [in] /*Optional*/ any varg6, [in] /*Optional*/ any varg7, [in] /*Optional*/ any varg8, [in] /*Optional*/ any varg9, [in] /*Optional*/ any varg10, [in] /*Optional*/ any varg11, [in] /*Optional*/ any varg12, [in] /*Optional*/ any varg13, [in] /*Optional*/ any varg14, [in] /*Optional*/ any varg15, [in] /*Optional*/ any varg16, [in] /*Optional*/ any varg17, [in] /*Optional*/ any varg18, [in] /*Optional*/ any varg19, [in] /*Optional*/ any varg20, [in] /*Optional*/ any varg21, [in] /*Optional*/ any varg22, [in] /*Optional*/ any varg23, [in] /*Optional*/ any varg24, [in] /*Optional*/ any varg25, [in] /*Optional*/ any varg26, [in] /*Optional*/ any varg27, [in] /*Optional*/ any varg28, [in] /*Optional*/ any varg29, [in] /*Optional*/ any varg30);
- void OnTime( [in] any aEarliestTime, [in] string aFunction, [in] any aLatestTime, [in] any aSchedule );
+ any CommandBars( [in] any Index );
+ void Run( [in] string Macro, [in] /*Optional*/ any Arg1, [in] /*Optional*/ any Arg2, [in] /*Optional*/ any Arg3, [in] /*Optional*/ any Arg4, [in] /*Optional*/ any Arg5, [in] /*Optional*/ any Arg6, [in] /*Optional*/ any Arg7, [in] /*Optional*/ any Arg8, [in] /*Optional*/ any Arg9, [in] /*Optional*/ any Arg10, [in] /*Optional*/ any Arg11, [in] /*Optional*/ any Arg12, [in] /*Optional*/ any Arg13, [in] /*Optional*/ any Arg14, [in] /*Optional*/ any Arg15, [in] /*Optional*/ any Arg16, [in] /*Optional*/ any Arg17, [in] /*Optional*/ any Arg18, [in] /*Optional*/ any Arg19, [in] /*Optional*/ any Arg20, [in] /*Optional*/ any Arg21, [in] /*Optional*/ any Arg22, [in] /*Optional*/ any Arg23, [in] /*Optional*/ any Arg24, [in] /*Optional*/ any Arg25, [in] /*Optional*/ any Arg26, [in] /*Optional*/ any Arg27, [in] /*Optional*/ any Arg28, [in] /*Optional*/ any Arg29, [in] /*Optional*/ any Arg30);
+ void OnTime( [in] any EarliestTime, [in] string Procedure, [in] any LatestTime, [in] any Schedule );
float CentimetersToPoints([in] float Centimeters );
void Undo();
};
diff --git a/oovbaapi/ooo/vba/XVBAAppService.idl b/oovbaapi/ooo/vba/XVBAAppService.idl
deleted file mode 100644
index 1c4a0920fbf8..000000000000
--- a/oovbaapi/ooo/vba/XVBAAppService.idl
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: XWorkbook.idl,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef __ooo_vba_appservice_idl__
-#define __ooo_vba_appservice_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-#ifndef __com_sun_star_uno_XComponentContext_idl__
-#include <com/sun/star/uno/XComponentContext.idl>
-#endif
-
-#ifndef __com_sun_star_frame_XModel_idl__
-#include <com/sun/star/frame/XModel.idl>
-#endif
-
-#ifndef __com_sun_star_script_XLibraryContainer_idl__
-#include <com/sun/star/script/XLibraryContainer.idl>
-#endif
-
-//=============================================================================
-
-module ooo { module vba {
-
-//=============================================================================
-
-
-interface XHelperInterface;
-interface XComponentContext;
-interface XModel;
-
-interface XVBAAppService
-{
- interface ::com::sun::star::uno::XInterface;
-
- any getVBE([in] XHelperInterface xParent, [in] ::com::sun::star::uno::XComponentContext xContext, [in] ::com::sun::star::frame::XModel xModel);
- any getVBProjects([in] XHelperInterface xParent, [in] ::com::sun::star::uno::XComponentContext xContext, [in] ::com::sun::star::frame::XModel xModel, [in] ::com::sun::star::script::XLibraryContainer xMacroLibraryContainer, [in] com::sun::star::script::XLibraryContainer xDialogLibraryContainer);
-
-
-};
-
- }; };
-
-#endif
diff --git a/oovbaapi/ooo/vba/XVBADocService.idl b/oovbaapi/ooo/vba/XVBADocService.idl
deleted file mode 100644
index 6500f028934b..000000000000
--- a/oovbaapi/ooo/vba/XVBADocService.idl
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: XVBADocService.idl,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef __ooo_vba_socservice_idl__
-#define __ooo_vba_appservice_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-#ifndef __com_sun_star_uno_XComponentContext_idl__
-#include <com/sun/star/uno/XComponentContext.idl>
-#endif
-
-#ifndef __com_sun_star_frame_XModel_idl__
-#include <com/sun/star/frame/XModel.idl>
-#endif
-
-#ifndef __com_sun_star_script_XLibraryContainer_idl__
-#include <com/sun/star/script/XLibraryContainer.idl>
-#endif
-
-//=============================================================================
-
-module ooo { module vba {
-
-//=============================================================================
-
-
-interface XHelperInterface;
-interface XComponentContext;
-interface XModel;
-
-interface XVBADocService
-{
- interface ::com::sun::star::uno::XInterface;
-
-
- any getVBProject([in] XHelperInterface xParent, [in] ::com::sun::star::uno::XComponentContext xContext, [in] ::com::sun::star::frame::XModel xModel, [in] ::com::sun::star::script::XLibraryContainer xMacroLibraryContainer, [in] com::sun::star::script::XLibraryContainer xDialogLibraryContainer);
-
-
-};
-
- }; };
-
-#endif
diff --git a/oovbaapi/ooo/vba/excel/SheetObject.idl b/oovbaapi/ooo/vba/excel/SheetObject.idl
index e4037e69b84d..25488470a134 100644
--- a/oovbaapi/ooo/vba/excel/SheetObject.idl
+++ b/oovbaapi/ooo/vba/excel/SheetObject.idl
@@ -111,7 +111,7 @@ interface XButton : com::sun::star::uno::XInterface
[attribute] long Orientation;
/** Access to text and text formatting of the button caption. */
- XCharacters Characters( [in] any aStart, [in] any aLength );
+ XCharacters Characters( [in] any Start, [in] any Length );
};
//=============================================================================
diff --git a/oovbaapi/ooo/vba/excel/SheetObjects.idl b/oovbaapi/ooo/vba/excel/SheetObjects.idl
index 0339059e1231..5947c52ff4a0 100644
--- a/oovbaapi/ooo/vba/excel/SheetObjects.idl
+++ b/oovbaapi/ooo/vba/excel/SheetObjects.idl
@@ -81,7 +81,7 @@ interface XGraphicObjects : com::sun::star::uno::XInterface
@return The created graphic object.
*/
- any Add( [in] any fLeft, [in] any fTop, [in] any fWidth, [in] any fHeight );
+ any Add( [in] any Left, [in] any Top, [in] any Width, [in] any Height );
};
//=============================================================================
@@ -109,7 +109,7 @@ interface XLineObjects : com::sun::star::uno::XInterface
@return The created line object.
*/
- any Add( [in] any fX1, [in] any fY1, [in] any fX2, [in] any fY2 );
+ any Add( [in] any X1, [in] any Y1, [in] any X2, [in] any Y2 );
};
//=============================================================================
@@ -131,7 +131,7 @@ interface XDrawings : com::sun::star::uno::XInterface
@return The created polygon object.
*/
- any Add( [in] any fX1, [in] any fY1, [in] any fX2, [in] any fY2, [in] any bClosed );
+ any Add( [in] any X1, [in] any Y1, [in] any X2, [in] any Y2, [in] any Closed );
};
//=============================================================================
diff --git a/oovbaapi/ooo/vba/excel/XApplication.idl b/oovbaapi/ooo/vba/excel/XApplication.idl
index 6f513ae64577..5ec821dbe8bb 100644
--- a/oovbaapi/ooo/vba/excel/XApplication.idl
+++ b/oovbaapi/ooo/vba/excel/XApplication.idl
@@ -73,10 +73,10 @@ interface XApplication
string LibraryPath() raises(com::sun::star::script::BasicErrorException);
string TemplatesPath() raises(com::sun::star::script::BasicErrorException);
string PathSeparator() raises(com::sun::star::script::BasicErrorException);
- //any CommandBars( [in] any aIndex );
- any Workbooks( [in] any aIndex );
- any Worksheets( [in] any aIndex );
- any Windows( [in] any aIndex );
+ //any CommandBars( [in] any Index );
+ any Workbooks( [in] any Index );
+ any Worksheets( [in] any Index );
+ any Windows( [in] any Index );
any WorksheetFunction();
any Evaluate( [in] string Name );
any Dialogs( [in] any DialogIndex );
@@ -92,7 +92,7 @@ interface XApplication
raises(com::sun::star::script::BasicErrorException);
void Volatile([in] any Volatile);
void DoEvents();
- any Caller( [in] any aIndex );
+ any Caller( [in] any Index );
};
}; }; };
diff --git a/oovbaapi/ooo/vba/excel/XFormat.idl b/oovbaapi/ooo/vba/excel/XFormat.idl
index 13ac9f177576..65837ce2ffd9 100644
--- a/oovbaapi/ooo/vba/excel/XFormat.idl
+++ b/oovbaapi/ooo/vba/excel/XFormat.idl
@@ -46,7 +46,7 @@ interface XFormat
interface ::ooo::vba::XHelperInterface;
// void Clear( ) raises ( com::sun::star::script::BasicErrorException );
- any Borders( [in] any item )
+ any Borders( [in] any Item )
raises(com::sun::star::script::BasicErrorException);
XFont Font()
diff --git a/oovbaapi/ooo/vba/excel/XGlobals.idl b/oovbaapi/ooo/vba/excel/XGlobals.idl
index d79196b00927..4c40f8fe087a 100644
--- a/oovbaapi/ooo/vba/excel/XGlobals.idl
+++ b/oovbaapi/ooo/vba/excel/XGlobals.idl
@@ -65,18 +65,18 @@ interface XGlobals: com::sun::star::uno::XInterface
void Calculate() raises(com::sun::star::script::BasicErrorException);
XRange Cells([in] any RowIndex, [in] any ColumnIndex);
- XRange Columns([in] any aIndex);
- any CommandBars( [in] any aIndex );
+ XRange Columns([in] any Index);
+ any CommandBars( [in] any Index );
any Evaluate( [in] string Name );
XRange Intersect([in] XRange Arg1, [in] XRange Arg2, [in] /*Optional*/ any Arg3, [in] /*Optional*/ any Arg4, [in] /*Optional*/ any Arg5, [in] /*Optional*/ any Arg6, [in] /*Optional*/ any Arg7, [in] /*Optional*/ any Arg8, [in] /*Optional*/ any Arg9, [in] /*Optional*/ any Arg10, [in] /*Optional*/ any Arg11, [in] /*Optional*/ any Arg12, [in] /*Optional*/ any Arg13, [in] /*Optional*/ any Arg14, [in] /*Optional*/ any Arg15, [in] /*Optional*/ any Arg16, [in] /*Optional*/ any Arg17, [in] /*Optional*/ any Arg18, [in] /*Optional*/ any Arg19, [in] /*Optional*/ any Arg20, [in] /*Optional*/ any Arg21, [in] /*Optional*/ any Arg22, [in] /*Optional*/ any Arg23, [in] /*Optional*/ any Arg24, [in] /*Optional*/ any Arg25, [in] /*Optional*/ any Arg26, [in] /*Optional*/ any Arg27, [in] /*Optional*/ any Arg28, [in] /*Optional*/ any Arg29, [in] /*Optional*/ any Arg30)
raises(com::sun::star::script::BasicErrorException);
- any WorkSheets( [in] any aIndex );
- any WorkBooks( [in] any aIndex );
+ any WorkSheets( [in] any Index );
+ any WorkBooks( [in] any Index );
any WorksheetFunction();
- any Windows( [in] any aIndex );
- any Sheets( [in] any aIndex );
+ any Windows( [in] any Index );
+ any Sheets( [in] any Index );
any Range( [in] any Cell1, [in] any Cell2 );
- XRange Rows([in] any aIndex);
+ XRange Rows([in] any Index);
any Names( [in] any Index );
XRange Union([in] XRange Arg1, [in] XRange Arg2, [in] /*Optional*/ any Arg3, [in] /*Optional*/ any Arg4, [in] /*Optional*/ any Arg5, [in] /*Optional*/ any Arg6, [in] /*Optional*/ any Arg7, [in] /*Optional*/ any Arg8, [in] /*Optional*/ any Arg9, [in] /*Optional*/ any Arg10, [in] /*Optional*/ any Arg11, [in] /*Optional*/ any Arg12, [in] /*Optional*/ any Arg13, [in] /*Optional*/ any Arg14, [in] /*Optional*/ any Arg15, [in] /*Optional*/ any Arg16, [in] /*Optional*/ any Arg17, [in] /*Optional*/ any Arg18, [in] /*Optional*/ any Arg19, [in] /*Optional*/ any Arg20, [in] /*Optional*/ any Arg21, [in] /*Optional*/ any Arg22, [in] /*Optional*/ any Arg23, [in] /*Optional*/ any Arg24, [in] /*Optional*/ any Arg25, [in] /*Optional*/ any Arg26, [in] /*Optional*/ any Arg27, [in] /*Optional*/ any Arg28, [in] /*Optional*/ any Arg29, [in] /*Optional*/ any Arg30)
raises(com::sun::star::script::BasicErrorException);
diff --git a/oovbaapi/ooo/vba/excel/XHyperlinks.idl b/oovbaapi/ooo/vba/excel/XHyperlinks.idl
index dbaab84568e8..58ecf81df744 100644
--- a/oovbaapi/ooo/vba/excel/XHyperlinks.idl
+++ b/oovbaapi/ooo/vba/excel/XHyperlinks.idl
@@ -47,11 +47,11 @@ interface XHyperlinks
// ------------------------------------------------------------------------
XHyperlink Add(
- [in] any aAnchor,
- [in] any aAddress,
- [in] any aSubAddress,
- [in] any aScreenTip,
- [in] any aTextToDisplay );
+ [in] any Anchor,
+ [in] any Address,
+ [in] any SubAddress,
+ [in] any ScreenTip,
+ [in] any TextToDisplay );
// ------------------------------------------------------------------------
diff --git a/oovbaapi/ooo/vba/excel/XRange.idl b/oovbaapi/ooo/vba/excel/XRange.idl
index 3820911f2c96..7e6aba65d34e 100644
--- a/oovbaapi/ooo/vba/excel/XRange.idl
+++ b/oovbaapi/ooo/vba/excel/XRange.idl
@@ -113,7 +113,7 @@ interface XRange
void FillRight();
void FillUp();
void FillDown();
- XRange Item([in] any row, [in] any column) raises(com::sun::star::script::BasicErrorException);
+ XRange Item([in] any RowIndex, [in] any ColumnIndex) raises(com::sun::star::script::BasicErrorException);
XRange Offset([in] any RowOffset, [in] any ColumnOffset);
XRange CurrentRegion();
XRange CurrentArray();
@@ -146,7 +146,7 @@ interface XRange
XCharacters characters([in] any Start, [in] any Length);
void Delete( [in] any Shift );
- any Areas( [in] any item );
+ any Areas( [in] any Item );
any BorderAround( [in] any LineStyle, [in] any Weight, [in] any ColorIndex, [in] any Color );
void AutoFilter([in ] any Field, [in] any Criteria1, [in] any Operator, [in] any Criteria2, [in] any VisibleDropDown);
void Insert([in] any Shift, [in] any CopyOrigin);
@@ -165,7 +165,7 @@ interface XRange
void RemoveSubtotal() raises ( com::sun::star::script::BasicErrorException );
void Subtotal( [in] long GroupBy, [in] long Function, [in] /*Optional*/ sequence<long> TotalList, [in] /*Optional*/ any Replace, [in] /*Optional*/ any PageBreaks, [in] any SummaryBelowData ) raises ( com::sun::star::script::BasicErrorException );
XRange MergeArea( ) raises ( com::sun::star::script::BasicErrorException );
- any Hyperlinks( [in] any aIndex );
+ any Hyperlinks( [in] any Index );
};
//=============================================================================
diff --git a/oovbaapi/ooo/vba/excel/XWindow.idl b/oovbaapi/ooo/vba/excel/XWindow.idl
index dde7818ebda7..e22fa9b9e538 100644
--- a/oovbaapi/ooo/vba/excel/XWindow.idl
+++ b/oovbaapi/ooo/vba/excel/XWindow.idl
@@ -60,7 +60,7 @@ interface XWindow : com::sun::star::uno::XInterface
[attribute, readonly] XRange VisibleRange;
[attribute] any WindowState;
[attribute] any Zoom;
- any SelectedSheets( [in] any aIndex );
+ any SelectedSheets( [in] any Index );
void SmallScroll( [in] any Down, [in] any Up, [in] any ToRight, [in] any ToLeft );
void LargeScroll( [in] any Down, [in] any Up, [in] any ToRight, [in] any ToLeft );
void ScrollWorkbookTabs( [in] any Sheets, [in] any Position );
diff --git a/oovbaapi/ooo/vba/excel/XWorkbook.idl b/oovbaapi/ooo/vba/excel/XWorkbook.idl
index 0c42c6526035..5407dc6d23bd 100644
--- a/oovbaapi/ooo/vba/excel/XWorkbook.idl
+++ b/oovbaapi/ooo/vba/excel/XWorkbook.idl
@@ -52,14 +52,14 @@ interface XWorkbook : com::sun::star::uno::XInterface
[attribute, readonly] string CodeName;
[attribute] boolean PrecisionAsDisplayed;
- any Worksheets([in] any sheet);
- any Styles([in] any Index );
- any Sheets([in] any sheet);
- any Windows([in] any index );
+ any Worksheets( [in] any Index );
+ any Styles( [in] any Index );
+ any Sheets( [in] any Index );
+ any Windows( [in] any Index );
void ResetColors() raises (com::sun::star::script::BasicErrorException);
void Activate();
any Names( [in] any Index );
- any Colors([in] any Index) raises (com::sun::star::script::BasicErrorException);
+ any Colors( [in] any Index ) raises (com::sun::star::script::BasicErrorException);
long FileFormat() raises (com::sun::star::script::BasicErrorException);
void SaveCopyAs( [in] string Filename );
};
diff --git a/oovbaapi/ooo/vba/excel/XWorkbooks.idl b/oovbaapi/ooo/vba/excel/XWorkbooks.idl
index 7c94ca1eac18..de7b031e3c0a 100644
--- a/oovbaapi/ooo/vba/excel/XWorkbooks.idl
+++ b/oovbaapi/ooo/vba/excel/XWorkbooks.idl
@@ -44,7 +44,7 @@ module ooo { module vba { module excel {
interface XWorkbooks : com::sun::star::uno::XInterface
{
- any Add();
+ any Add([in] any Template);
any Open([in] string Filename, [in] any UpdateLinks, [in] any ReadOnly, [in] any Format, [in] any Password, [in] any WriteResPassword, [in] any IgnoreReadOnlyRecommended, [in] any Origin, [in] any Delimiter, [in] any Editable, [in] any Notify, [in] any Converter, [in] any AddToMru);
void Close();
diff --git a/oovbaapi/ooo/vba/excel/XWorksheet.idl b/oovbaapi/ooo/vba/excel/XWorksheet.idl
index 3eb8337798d6..6492a1a573df 100644
--- a/oovbaapi/ooo/vba/excel/XWorksheet.idl
+++ b/oovbaapi/ooo/vba/excel/XWorksheet.idl
@@ -60,7 +60,7 @@ interface XWorksheet
interface ::com::sun::star::script::XInvocation;
interface ::com::sun::star::container::XNamed;
- [attribute] boolean Visible;
+ [attribute] long Visible;
[attribute, readonly] long StandardHeight;
[attribute, readonly] long StandardWidth;
[attribute, readonly] boolean ProtectionMode;
@@ -101,26 +101,26 @@ interface XWorksheet
/* The following form control related symbols do not refer to ActiveX form
controls embedded in the sheet, but to the old-style drawing controls
of Excel. This is an Excel-only feature. */
- any Buttons( [in] any aIndex );
- any CheckBoxes( [in] any aIndex );
- any DropDowns( [in] any aIndex );
- any GroupBoxes( [in] any aIndex );
- any Labels( [in] any aIndex );
- any ListBoxes( [in] any aIndex );
- any OptionButtons( [in] any aIndex );
- any ScrollBars( [in] any aIndex );
- any Spinners( [in] any aIndex );
+ any Buttons( [in] any Index );
+ any CheckBoxes( [in] any Index );
+ any DropDowns( [in] any Index );
+ any GroupBoxes( [in] any Index );
+ any Labels( [in] any Index );
+ any ListBoxes( [in] any Index );
+ any OptionButtons( [in] any Index );
+ any ScrollBars( [in] any Index );
+ any Spinners( [in] any Index );
// FIXME: should prolly inherit from Range somehow...
- XRange Cells([in] any RowIndex, [in] any ColumnIndex);
- XRange Rows([in] any aIndex);
- XRange Columns([in] any aIndex);
- any Hyperlinks( [in] any aIndex );
+ XRange Cells( [in] any RowIndex, [in] any ColumnIndex );
+ XRange Rows( [in] any Index );
+ XRange Columns( [in] any Index );
+ any Hyperlinks( [in] any Index );
any Names( [in] any Index );
- any Evaluate( [in] string Name);
+ any Evaluate( [in] string Name );
- void setEnableCalculation([in] boolean EnableCalculation) raises(com::sun::star::script::BasicErrorException);
+ void setEnableCalculation( [in] boolean EnableCalculation ) raises(com::sun::star::script::BasicErrorException);
boolean getEnableCalculation() raises(com::sun::star::script::BasicErrorException);
void PrintOut( [in] any From, [in] any To, [in] any Copies, [in] any Preview, [in] any ActivePrinter, [in] any PrintToFile, [in] any Collate, [in] any PrToFileName, [in] any IgnorePrintAreas );
};
diff --git a/oovbaapi/ooo/vba/word/XApplication.idl b/oovbaapi/ooo/vba/word/XApplication.idl
index 228401c986e6..542f2efc2a56 100644
--- a/oovbaapi/ooo/vba/word/XApplication.idl
+++ b/oovbaapi/ooo/vba/word/XApplication.idl
@@ -53,10 +53,10 @@ interface XApplication : com::sun::star::uno::XInterface
[attribute] boolean DisplayAutoCompleteTips;
[attribute] long EnableCancelKey;
- any CommandBars( [in] any aIndex );
- any Documents( [in] any aIndex );
- any Addins( [in] any aIndex );
- any Dialogs( [in] any aIndex );
+ any CommandBars( [in] any Index );
+ any Documents( [in] any Index );
+ any Addins( [in] any Index );
+ any Dialogs( [in] any Index );
float CentimetersToPoints([in] float Centimeters );
};
diff --git a/oovbaapi/ooo/vba/word/XDocument.idl b/oovbaapi/ooo/vba/word/XDocument.idl
index 0f124e2701d1..b11e627871a8 100644
--- a/oovbaapi/ooo/vba/word/XDocument.idl
+++ b/oovbaapi/ooo/vba/word/XDocument.idl
@@ -51,16 +51,16 @@ interface XDocument : com::sun::star::script::XInvocation
[attribute] any AttachedTemplate;
XRange Range( [in] any Start, [in] any End );
- any BuiltInDocumentProperties( [in] any index );
- any CustomDocumentProperties( [in] any index );
- any Bookmarks( [in] any aIndex );
- any Variables( [in] any aIndex );
- any Paragraphs( [in] any aIndex );
- any Styles( [in] any aIndex );
- any Tables( [in] any aIndex );
- any Fields( [in] any aIndex );
- any Shapes([in] any Index);
- any Sections([in] any Index);
+ any BuiltInDocumentProperties( [in] any Index );
+ any CustomDocumentProperties( [in] any Index );
+ any Bookmarks( [in] any Index );
+ any Variables( [in] any Index );
+ any Paragraphs( [in] any Index );
+ any Styles( [in] any Index );
+ any Tables( [in] any Index );
+ any Fields( [in] any Index );
+ any Shapes( [in] any Index );
+ any Sections( [in] any Index );
void Activate();
any PageSetup();
};
diff --git a/oovbaapi/ooo/vba/word/XGlobals.idl b/oovbaapi/ooo/vba/word/XGlobals.idl
index 4d92ca378b05..b139819db40e 100644
--- a/oovbaapi/ooo/vba/word/XGlobals.idl
+++ b/oovbaapi/ooo/vba/word/XGlobals.idl
@@ -45,10 +45,10 @@ interface XGlobals : com::sun::star::uno::XInterface
[attribute, readonly] ooo::vba::word::XSystem System;
[attribute, readonly] ooo::vba::word::XOptions Options;
[attribute, readonly] ooo::vba::word::XSelection Selection;
- any CommandBars( [in] any aIndex );
- any Documents( [in] any aIndex );
- any Addins( [in] any aIndex );
- any Dialogs( [in] any aIndex );
+ any CommandBars( [in] any Index );
+ any Documents( [in] any Index );
+ any Addins( [in] any Index );
+ any Dialogs( [in] any Index );
float CentimetersToPoints([in] float Centimeters );
};
diff --git a/oovbaapi/ooo/vba/word/XSelection.idl b/oovbaapi/ooo/vba/word/XSelection.idl
index daea47bcc625..71fe8f8a5121 100644
--- a/oovbaapi/ooo/vba/word/XSelection.idl
+++ b/oovbaapi/ooo/vba/word/XSelection.idl
@@ -59,8 +59,8 @@ interface XSelection
[attribute] long Start;
[attribute] long End;
- any Tables( [in] any aIndex );
- any Fields( [in] any aIndex );
+ any Tables( [in] any Index );
+ any Fields( [in] any Index );
void TypeText( [in] string Text );
void HomeKey( [in] any Unit, [in] any Extend );
void EndKey( [in] any Unit, [in] any Extend );
diff --git a/oovbaapi/ooo/vba/word/XTable.idl b/oovbaapi/ooo/vba/word/XTable.idl
index ab985cbb6599..26b125a2c88c 100644
--- a/oovbaapi/ooo/vba/word/XTable.idl
+++ b/oovbaapi/ooo/vba/word/XTable.idl
@@ -68,7 +68,7 @@ interface XTable
XRange ConvertToText([in] any Separator, [in] any NestedTables)
raises(com::sun::star::script::BasicErrorException);
*/
- any Borders( [in] any aIndex );
+ any Borders( [in] any Index );
};
diff --git a/oovbaapi/ooo/vba/word/XTemplate.idl b/oovbaapi/ooo/vba/word/XTemplate.idl
index b0fda20e45a1..390037719f1e 100644
--- a/oovbaapi/ooo/vba/word/XTemplate.idl
+++ b/oovbaapi/ooo/vba/word/XTemplate.idl
@@ -43,7 +43,7 @@ interface XTemplate
[attribute, readonly] string Name;
- any AutoTextEntries( [in] any aIndex );
+ any AutoTextEntries( [in] any Index );
};
}; }; };
diff --git a/oovbaapi/ooo/vba/word/XWindow.idl b/oovbaapi/ooo/vba/word/XWindow.idl
index e8dfdbdcc653..10d650d6dd6a 100644
--- a/oovbaapi/ooo/vba/word/XWindow.idl
+++ b/oovbaapi/ooo/vba/word/XWindow.idl
@@ -46,7 +46,7 @@ interface XWindow : com::sun::star::uno::XInterface
[attribute] any View;
void Activate();
void Close([in] any SaveChanges, [in] any RouteDocument);
- any Panes( [in] any aIndex ); // this is a fake api for it seems not support in Write
+ any Panes( [in] any Index ); // this is a fake api for it seems not support in Write
any ActivePane(); // this is a fake api for it seems not support in Write
};
diff --git a/scripting/prj/build.lst b/scripting/prj/build.lst
index 7d5162173eae..d0ceb4cb818c 100755
--- a/scripting/prj/build.lst
+++ b/scripting/prj/build.lst
@@ -1,4 +1,4 @@
-tc scripting : oovbaapi vbahelper bridges rdbmaker vcl xmlscript basic sfx2 rhino BSH:beanshell javaunohelper NULL
+tc scripting : oovbaapi vbahelper bridges rdbmaker vcl xmlscript basic sfx2 rhino BSH:beanshell javaunohelper LIBXSLT:libxslt NULL
tc scripting usr1 - all tc1_mkout NULL
tc scripting\inc nmake - all tc1_inc NULL
tc scripting\source\provider nmake - all tc1_scriptingprovider tc1_inc NULL
diff --git a/scripting/source/basprov/basscript.cxx b/scripting/source/basprov/basscript.cxx
index c6de155e3ed0..24bba1e7bff6 100644
--- a/scripting/source/basprov/basscript.cxx
+++ b/scripting/source/basprov/basscript.cxx
@@ -80,11 +80,33 @@ namespace basprov
,m_documentBasicManager( &documentBasicManager )
,m_xDocumentScriptContext( documentScriptContext )
{
+ StartListening( *m_documentBasicManager );
}
// -----------------------------------------------------------------------------
BasicScriptImpl::~BasicScriptImpl()
{
+ if ( m_documentBasicManager )
+ EndListening( *m_documentBasicManager );
+ }
+
+ // -----------------------------------------------------------------------------
+ // SfxListener
+ // -----------------------------------------------------------------------------
+ void BasicScriptImpl::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+ {
+ if ( &rBC != m_documentBasicManager )
+ {
+ OSL_ENSURE( false, "BasicScriptImpl::Notify: where does this come from?" );
+ // not interested in
+ return;
+ }
+ const SfxSimpleHint* pSimpleHint = PTR_CAST( SfxSimpleHint, &rHint );
+ if ( pSimpleHint && ( pSimpleHint->GetId() == SFX_HINT_DYING ) )
+ {
+ m_documentBasicManager = NULL;
+ EndListening( rBC ); // prevent multiple notifications
+ }
}
// -----------------------------------------------------------------------------
diff --git a/scripting/source/basprov/basscript.hxx b/scripting/source/basprov/basscript.hxx
index 4a3d6f1ab61d..772a9166cde3 100644
--- a/scripting/source/basprov/basscript.hxx
+++ b/scripting/source/basprov/basscript.hxx
@@ -32,6 +32,7 @@
#include <com/sun/star/document/XScriptInvocationContext.hpp>
#include <cppuhelper/implbase1.hxx>
#include <basic/sbmeth.hxx>
+#include <svl/lstner.hxx>
class BasicManager;
@@ -49,7 +50,7 @@ namespace basprov
::com::sun::star::script::provider::XScript > BasicScriptImpl_BASE;
- class BasicScriptImpl : public BasicScriptImpl_BASE
+ class BasicScriptImpl : public BasicScriptImpl_BASE, public SfxListener
{
private:
SbMethodRef m_xMethod;
@@ -80,6 +81,9 @@ namespace basprov
::com::sun::star::script::provider::ScriptFrameworkErrorException,
::com::sun::star::reflection::InvocationTargetException,
::com::sun::star::uno::RuntimeException );
+
+ // SfxListener
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
};
//.........................................................................
diff --git a/scripting/source/basprov/makefile.mk b/scripting/source/basprov/makefile.mk
index c98f961e6bd3..bde15f95d5a4 100644
--- a/scripting/source/basprov/makefile.mk
+++ b/scripting/source/basprov/makefile.mk
@@ -58,6 +58,7 @@ SHL1STDLIBS= \
$(SFX2LIB) \
$(BASICLIB) \
$(VCLLIB) \
+ $(SVLLIB) \
$(TOOLSLIB) \
$(UCBHELPERLIB) \
$(COMPHELPERLIB) \
diff --git a/sfx2/AllLangResTarget_sfx2.mk b/sfx2/AllLangResTarget_sfx2.mk
new file mode 100644
index 000000000000..aa3270e08a07
--- /dev/null
+++ b/sfx2/AllLangResTarget_sfx2.mk
@@ -0,0 +1,79 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_AllLangResTarget_AllLangResTarget,sfx))
+
+$(eval $(call gb_AllLangResTarget_set_reslocation,sfx,sfx2))
+
+$(eval $(call gb_AllLangResTarget_add_srs,sfx,\
+ sfx/res \
+))
+
+$(eval $(call gb_SrsTarget_SrsTarget,sfx/res))
+
+$(eval $(call gb_SrsTarget_set_include,sfx/res,\
+ $$(INCLUDE) \
+ -I$(OUTDIR)/inc \
+ -I$(WORKDIR)/inc \
+ -I$(SRCDIR)/sfx2/source/dialog \
+ -I$(SRCDIR)/sfx2/source/inc \
+ -I$(SRCDIR)/sfx2/inc/ \
+ -I$(SRCDIR)/sfx2/inc/sfx \
+))
+
+$(eval $(call gb_SrsTarget_add_files,sfx/res,\
+ sfx2/source/appl/app.src \
+ sfx2/source/appl/dde.src \
+ sfx2/source/appl/newhelp.src \
+ sfx2/source/appl/sfx.src \
+ sfx2/source/bastyp/bastyp.src \
+ sfx2/source/bastyp/fltfnc.src \
+ sfx2/source/dialog/alienwarn.src \
+ sfx2/source/dialog/dialog.src \
+ sfx2/source/dialog/dinfdlg.src \
+ sfx2/source/dialog/dinfedt.src \
+ sfx2/source/dialog/filedlghelper.src \
+ sfx2/source/dialog/mailwindow.src \
+ sfx2/source/dialog/mgetempl.src \
+ sfx2/source/dialog/newstyle.src \
+ sfx2/source/dialog/passwd.src \
+ sfx2/source/dialog/printopt.src \
+ sfx2/source/dialog/recfloat.src \
+ sfx2/source/dialog/srchdlg.src \
+ sfx2/source/dialog/templdlg.src \
+ sfx2/source/dialog/versdlg.src \
+ sfx2/source/doc/doc.src \
+ sfx2/source/doc/doctdlg.src \
+ sfx2/source/doc/doctempl.src \
+ sfx2/source/doc/docvor.src \
+ sfx2/source/doc/graphhelp.src \
+ sfx2/source/doc/new.src \
+ sfx2/source/menu/menu.src \
+ sfx2/source/view/view.src \
+))
+
+
diff --git a/sfx2/Library_qstart.mk b/sfx2/Library_qstart.mk
new file mode 100755
index 000000000000..6ed99271d353
--- /dev/null
+++ b/sfx2/Library_qstart.mk
@@ -0,0 +1,92 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+
+$(eval $(call gb_Library_Library,qstart_gtk))
+
+$(eval $(call gb_Library_set_include,qstart_gtk,\
+ $$(INCLUDE) \
+ -I$(SRCDIR)/sfx2/inc \
+ -I$(SRCDIR)/sfx2/inc/sfx2 \
+ -I$(SRCDIR)/sfx2/inc/pch \
+ -I$(OUTDIR)/inc/offuh \
+ -I$(OUTDIR)/inc \
+ $(filter -I%,$(GTK_CFLAGS)) \
+))
+
+$(eval $(call gb_Library_set_defs,qstart_gtk,\
+ $$(DEFS) \
+ -DDLL_NAME=$(notdir $(call gb_Library_get_target,sfx2)) \
+ -DENABLE_QUICKSTART_APPLET \
+))
+
+$(eval $(call gb_Library_set_cflags,qstart_gtk,\
+ $$(CFLAGS) \
+ $(filter-out -I%,$(GTK_CFLAGS)) \
+))
+
+$(eval $(call gb_Library_set_ldflags,qstart_gtk,\
+ $$(LDFLAGS) \
+ $(GTK_LIBS) \
+))
+
+$(eval $(call gb_Library_add_linked_libs,qstart_gtk,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ fwe \
+ i18nisolang1 \
+ sal \
+ sax \
+ sb \
+ sot \
+ stl \
+ svl \
+ svt \
+ tk \
+ tl \
+ ucbhelper \
+ utl \
+ vcl \
+ vos3 \
+ xml2 \
+ eggtray \
+ sfx \
+))
+
+$(eval $(call gb_Library_add_linked_system_libs,qstart_gtk,\
+ dl \
+ icuuc \
+ m \
+ pthread \
+))
+
+$(eval $(call gb_Library_add_exception_objects,qstart_gtk,\
+ sfx2/source/appl/shutdowniconunx \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk
new file mode 100755
index 000000000000..ed941d5b9a9f
--- /dev/null
+++ b/sfx2/Library_sfx.mk
@@ -0,0 +1,309 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,sfx))
+
+$(eval $(call gb_Library_add_package_headers,sfx,\
+ sfx2_inc \
+ sfx2_sdi \
+))
+
+$(eval $(call gb_Library_add_precompiled_header,sfx,$(SRCDIR)/sfx2/inc/pch/precompiled_sfx2))
+
+$(eval $(call gb_Library_add_sdi_headers,sfx,sfx2/sdi/sfxslots))
+
+$(eval $(call gb_Library_set_componentfile,sfx,sfx2/util/sfx))
+
+$(eval $(call gb_Library_set_include,sfx,\
+ -I$(SRCDIR)/sfx2/inc \
+ -I$(SRCDIR)/sfx2/inc/sfx2 \
+ -I$(SRCDIR)/sfx2/source/inc \
+ -I$(SRCDIR)/sfx2/inc/pch \
+ -I$(WORKDIR)/SdiTarget/sfx2/sdi \
+ -I$(WORKDIR)/inc/ \
+ $$(INCLUDE) \
+ -I$(OUTDIR)/inc/offuh \
+ -I$(OUTDIR)/inc \
+ $(LIBXML_CFLAGS) \
+))
+
+$(eval $(call gb_Library_set_defs,sfx,\
+ $$(DEFS) \
+ -DSFX2_DLLIMPLEMENTATION \
+ -DABOUTBMPNAMES="$(ABOUTBITMAPS)" \
+))
+
+$(eval $(call gb_Library_add_linked_libs,sfx,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ fwe \
+ i18nisolang1 \
+ sal \
+ sax \
+ sb \
+ sot \
+ stl \
+ svl \
+ svt \
+ tk \
+ tl \
+ ucbhelper \
+ utl \
+ vcl \
+ vos3 \
+ xml2 \
+))
+
+$(eval $(call gb_Library_add_linked_system_libs,sfx,\
+ icuuc \
+ dl \
+ m \
+ pthread \
+))
+
+$(eval $(call gb_Library_add_exception_objects,sfx,\
+ sfx2/source/appl/app \
+ sfx2/source/appl/appbas \
+ sfx2/source/appl/appbaslib \
+ sfx2/source/appl/appcfg \
+ sfx2/source/appl/appchild \
+ sfx2/source/appl/appdata \
+ sfx2/source/appl/appdde \
+ sfx2/source/appl/appinit \
+ sfx2/source/appl/appmain \
+ sfx2/source/appl/appmisc \
+ sfx2/source/appl/appopen \
+ sfx2/source/appl/appquit \
+ sfx2/source/appl/appreg \
+ sfx2/source/appl/appserv \
+ sfx2/source/appl/appuno \
+ sfx2/source/appl/childwin \
+ sfx2/source/appl/fileobj \
+ sfx2/source/appl/fwkhelper \
+ sfx2/source/appl/helpdispatch \
+ sfx2/source/appl/helpinterceptor \
+ sfx2/source/appl/imagemgr \
+ sfx2/source/appl/imestatuswindow \
+ sfx2/source/appl/impldde \
+ sfx2/source/appl/linkmgr2 \
+ sfx2/source/appl/linksrc \
+ sfx2/source/appl/lnkbase2 \
+ sfx2/source/appl/module \
+ sfx2/source/appl/newhelp \
+ sfx2/source/appl/opengrf \
+ sfx2/source/appl/sfxhelp \
+ sfx2/source/appl/sfxpicklist \
+ sfx2/source/appl/shutdownicon \
+ sfx2/source/appl/workwin \
+ sfx2/source/appl/xpackcreator \
+ sfx2/source/bastyp/bitset \
+ sfx2/source/bastyp/fltfnc \
+ sfx2/source/bastyp/fltlst \
+ sfx2/source/bastyp/frmhtml \
+ sfx2/source/bastyp/frmhtmlw \
+ sfx2/source/bastyp/helper \
+ sfx2/source/bastyp/mieclip \
+ sfx2/source/bastyp/minarray \
+ sfx2/source/bastyp/misc \
+ sfx2/source/bastyp/progress \
+ sfx2/source/bastyp/sfxhtml \
+ sfx2/source/bastyp/sfxresid \
+ sfx2/source/config/evntconf \
+ sfx2/source/control/bindings \
+ sfx2/source/control/ctrlitem \
+ sfx2/source/control/dispatch \
+ sfx2/source/control/macrconf \
+ sfx2/source/control/macro \
+ sfx2/source/control/minfitem \
+ sfx2/source/control/msg \
+ sfx2/source/control/msgpool \
+ sfx2/source/control/objface \
+ sfx2/source/control/querystatus \
+ sfx2/source/control/request \
+ sfx2/source/control/sfxstatuslistener \
+ sfx2/source/control/shell \
+ sfx2/source/control/sorgitm \
+ sfx2/source/control/statcach \
+ sfx2/source/control/unoctitm \
+ sfx2/source/dialog/about \
+ sfx2/source/dialog/alienwarn \
+ sfx2/source/dialog/basedlgs \
+ sfx2/source/dialog/dinfdlg \
+ sfx2/source/dialog/dinfedt \
+ sfx2/source/dialog/dockwin \
+ sfx2/source/dialog/filedlghelper \
+ sfx2/source/dialog/filtergrouping \
+ sfx2/source/dialog/intro \
+ sfx2/source/dialog/itemconnect \
+ sfx2/source/dialog/mailmodel \
+ sfx2/source/dialog/mgetempl \
+ sfx2/source/dialog/navigat \
+ sfx2/source/dialog/newstyle \
+ sfx2/source/dialog/partwnd \
+ sfx2/source/dialog/passwd \
+ sfx2/source/dialog/printopt \
+ sfx2/source/dialog/recfloat \
+ sfx2/source/dialog/securitypage \
+ sfx2/source/dialog/sfxdlg \
+ sfx2/source/dialog/splitwin \
+ sfx2/source/dialog/srchdlg \
+ sfx2/source/dialog/styfitem \
+ sfx2/source/dialog/styledlg \
+ sfx2/source/dialog/tabdlg \
+ sfx2/source/dialog/taskpane \
+ sfx2/source/dialog/templdlg \
+ sfx2/source/dialog/titledockwin \
+ sfx2/source/dialog/tplcitem \
+ sfx2/source/dialog/tplpitem \
+ sfx2/source/dialog/versdlg \
+ sfx2/source/doc/DocumentMetadataAccess \
+ sfx2/source/doc/Metadatable \
+ sfx2/source/doc/QuerySaveDocument \
+ sfx2/source/doc/SfxDocumentMetaData \
+ sfx2/source/doc/docfac \
+ sfx2/source/doc/docfile \
+ sfx2/source/doc/docfilt \
+ sfx2/source/doc/docinf \
+ sfx2/source/doc/docinsert \
+ sfx2/source/doc/docmacromode \
+ sfx2/source/doc/docstoragemodifylistener \
+ sfx2/source/doc/doctdlg \
+ sfx2/source/doc/doctempl \
+ sfx2/source/doc/doctemplates \
+ sfx2/source/doc/doctemplateslocal \
+ sfx2/source/doc/docvor \
+ sfx2/source/doc/frmdescr \
+ sfx2/source/doc/graphhelp \
+ sfx2/source/doc/guisaveas \
+ sfx2/source/doc/iframe \
+ sfx2/source/doc/new \
+ sfx2/source/doc/objcont \
+ sfx2/source/doc/objembed \
+ sfx2/source/doc/objitem \
+ sfx2/source/doc/objmisc \
+ sfx2/source/doc/objserv \
+ sfx2/source/doc/objstor \
+ sfx2/source/doc/objuno \
+ sfx2/source/doc/objxtor \
+ sfx2/source/doc/oleprops \
+ sfx2/source/doc/ownsubfilterservice \
+ sfx2/source/doc/plugin \
+ sfx2/source/doc/printhelper \
+ sfx2/source/doc/querytemplate \
+ sfx2/source/doc/sfxbasemodel \
+ sfx2/source/doc/sfxmodelfactory \
+ sfx2/source/doc/syspath \
+ sfx2/source/explorer/nochaos \
+ sfx2/source/inet/inettbc \
+ sfx2/source/menu/mnuitem \
+ sfx2/source/menu/mnumgr \
+ sfx2/source/menu/objmnctl \
+ sfx2/source/menu/thessubmenu \
+ sfx2/source/menu/virtmenu \
+ sfx2/source/notify/eventsupplier \
+ sfx2/source/notify/hintpost \
+ sfx2/source/statbar/stbitem \
+ sfx2/source/toolbox/imgmgr \
+ sfx2/source/toolbox/tbxitem \
+ sfx2/source/view/frame \
+ sfx2/source/view/frame2 \
+ sfx2/source/view/frmload \
+ sfx2/source/view/ipclient \
+ sfx2/source/view/orgmgr \
+ sfx2/source/view/printer \
+ sfx2/source/view/sfxbasecontroller \
+ sfx2/source/view/userinputinterception \
+ sfx2/source/view/viewfac \
+ sfx2/source/view/viewfrm \
+ sfx2/source/view/viewfrm2 \
+ sfx2/source/view/viewprn \
+ sfx2/source/view/viewsh \
+))
+
+$(eval $(call gb_SdiTarget_SdiTarget,sfx2/sdi/sfxslots,sfx2/sdi/sfx))
+
+$(eval $(call gb_SdiTarget_set_include,sfx2/sdi/sfxslots,\
+ $$(INCLUDE) \
+ -I$(SRCDIR)/sfx2/inc/sfx2 \
+ -I$(SRCDIR)/sfx2/inc \
+ -I$(SRCDIR)/sfx2/sdi \
+))
+
+ifeq ($(OS),$(filter WNT MACOSX,$(OS)))
+$(eval $(call gb_Library_set_defs,sfx,\
+ $$(DEFS) \
+ -DENABLE_QUICKSTART_APPLET \
+))
+endif
+
+ifeq ($(OS),OS2)
+$(eval $(call gb_Library_add_exception_objects,sfx,\
+ sfx2/source/appl/shutdowniconOs2.ob \
+))
+endif
+ifeq ($(OS),MACOSX)
+$(eval $(call gb_Library_add_objcxxobjects,sfx,\
+ sfx2/source/appl/shutdowniconaqua \
+))
+$(eval $(call gb_Library_add_linked_libs,sfx,\
+ objc \
+ Cocoa \
+))
+endif
+ifeq ($(OS),WNT)
+# workaround: disable PCH for these objects to avoid redeclaration
+# errors - needs to be fixed in module tools
+$(eval $(call gb_Library_add_cxxobjects,sfx,\
+ sfx2/source/appl/shutdowniconw32 \
+ sfx2/source/doc/sfxacldetect \
+ sfx2/source/doc/syspathw32 \
+ , $(gb_LinkTarget_EXCEPTIONFLAGS) -nologo -UPRECOMPILED_HEADERS \
+))
+
+$(eval $(call gb_Library_add_linked_libs,sfx,\
+ advapi32 \
+ gdi32 \
+ kernel32 \
+ msvcrt \
+ oldnames \
+ ole32 \
+ shell32 \
+ user32 \
+ uuid \
+ uwinapi \
+))
+else
+$(eval $(call gb_Library_add_cxxobjects,sfx,\
+ sfx2/source/appl/shutdowniconw32 \
+ sfx2/source/doc/sfxacldetect \
+ , $(gb_LinkTarget_EXCEPTIONFLAGS) \
+))
+
+endif
+# vim: set noet sw=4 ts=4:
+
diff --git a/sfx2/Makefile b/sfx2/Makefile
new file mode 100644
index 000000000000..a79aff831024
--- /dev/null
+++ b/sfx2/Makefile
@@ -0,0 +1,38 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+ifeq ($(strip $(SOLARENV)),)
+$(error No environment set!)
+endif
+
+gb_PARTIALBUILD := T
+GBUILDDIR := $(SOLARENV)/gbuild
+include $(GBUILDDIR)/gbuild.mk
+
+$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk)))
+
+# vim: set noet sw=4 ts=4:
diff --git a/framework/qa/complex/loadAllDocuments/helper/makefile.mk b/sfx2/Module_sfx2.mk
index 05a3c7a997ea..f6ac7c4c053e 100644..100755
--- a/framework/qa/complex/loadAllDocuments/helper/makefile.mk
+++ b/sfx2/Module_sfx2.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
+# Copyright 2009 by Sun Microsystems, Inc.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,34 +14,42 @@
#
# OpenOffice.org is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License version 3 for more details
# (a copy is included in the LICENSE file that accompanied this code).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ = ../../../..
-TARGET = CheckXComponentLoader
-PRJNAME = framework
-PACKAGE = complex/loadAllDocuments/helper
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar
-JAVAFILES = InteractionHandler.java StatusIndicator.java StreamSimulator.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:b).class)
-
-MAXLINELENGTH = 100000
-
-.INCLUDE : target.mk
-
-
+$(eval $(call gb_Module_Module,sfx2))
+
+$(eval $(call gb_Module_add_targets,sfx2,\
+ AllLangResTarget_sfx2 \
+ Library_sfx \
+ Package_inc \
+ Package_sdi \
+))
+
+ifeq ($(OS),LINUX)
+ifeq ($(ENABLE_SYSTRAY_GTK),TRUE)
+$(eval $(call gb_Module_add_targets,sfx2,\
+ Library_qstart \
+))
+endif
+endif
+
+#todo: map file?
+#todo: source/appl ohne Optimierung?
+#todo: source/control ohne Optimierung?
+#todo: source/dialog BUILD_VER_STRING
+#todo: source/doc SYSTEM_LIBXML2
+#todo: noopt for acldetect.cxx?
+#todo: ENABLE_LAYOUT
+#todo: quickstarter
+#todo: link against cocoa on Mac
+
+# vim: set noet sw=4 ts=4:
diff --git a/sfx2/Package_inc.mk b/sfx2/Package_inc.mk
new file mode 100644
index 000000000000..6ad8b0209c4e
--- /dev/null
+++ b/sfx2/Package_inc.mk
@@ -0,0 +1,138 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Package_Package,sfx2_inc,$(SRCDIR)/sfx2/inc))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/DocumentMetadataAccess.hxx,sfx2/DocumentMetadataAccess.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/Metadatable.hxx,sfx2/Metadatable.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/QuerySaveDocument.hxx,sfx2/QuerySaveDocument.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/XmlIdRegistry.hxx,sfx2/XmlIdRegistry.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/app.hxx,sfx2/app.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/app.hxx,sfx2/app.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/appuno.hxx,sfx2/appuno.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/basedlgs.hxx,sfx2/basedlgs.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/basmgr.hxx,sfx2/basmgr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/bindings.hxx,sfx2/bindings.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/brokenpackageint.hxx,sfx2/brokenpackageint.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/chalign.hxx,sfx2/chalign.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/childwin.hxx,sfx2/childwin.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/cntids.hrc,sfx2/cntids.hrc))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/controlwrapper.hxx,sfx2/controlwrapper.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/ctrlitem.hxx,sfx2/ctrlitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dialogs.hrc,sfx2/dialogs.hrc))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dinfdlg.hxx,sfx2/dinfdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dinfedt.hxx,sfx2/dinfedt.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dispatch.hxx,sfx2/dispatch.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dllapi.h,sfx2/dllapi.h))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docfac.hxx,sfx2/docfac.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docfile.hxx,sfx2/docfile.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docfilt.hxx,sfx2/docfilt.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docinf.hxx,sfx2/docinf.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docinsert.hxx,sfx2/docinsert.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dockwin.hxx,sfx2/dockwin.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docmacromode.hxx,sfx2/docmacromode.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docstoragemodifylistener.hxx,sfx2/docstoragemodifylistener.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/doctdlg.hxx,sfx2/doctdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/doctempl.hxx,sfx2/doctempl.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/event.hxx,sfx2/event.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/evntconf.hxx,sfx2/evntconf.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/fcontnr.hxx,sfx2/fcontnr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/filedlghelper.hxx,sfx2/filedlghelper.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/frame.hxx,sfx2/frame.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/frmdescr.hxx,sfx2/frmdescr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/frmhtml.hxx,sfx2/frmhtml.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/frmhtmlw.hxx,sfx2/frmhtmlw.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/genlink.hxx,sfx2/genlink.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/hintpost.hxx,sfx2/hintpost.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/htmlmode.hxx,sfx2/htmlmode.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/imagemgr.hxx,sfx2/imagemgr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/imgdef.hxx,sfx2/imgdef.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/imgmgr.hxx,sfx2/imgmgr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/ipclient.hxx,sfx2/ipclient.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/itemconnect.hxx,sfx2/itemconnect.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/itemwrapper.hxx,sfx2/itemwrapper.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/layout-post.hxx,sfx2/layout-post.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/layout-pre.hxx,sfx2/layout-pre.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/layout-tabdlg.hxx,sfx2/layout-tabdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/layout.hxx,sfx2/layout.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/linkmgr.hxx,sfx2/linkmgr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/linksrc.hxx,sfx2/linksrc.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/lnkbase.hxx,sfx2/lnkbase.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/macrconf.hxx,sfx2/macrconf.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mailmodelapi.hxx,sfx2/mailmodelapi.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mgetempl.hxx,sfx2/mgetempl.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mieclip.hxx,sfx2/mieclip.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/minarray.hxx,sfx2/minarray.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/minfitem.hxx,sfx2/minfitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/minstack.hxx,sfx2/minstack.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mnuitem.hxx,sfx2/mnuitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mnumgr.hxx,sfx2/mnumgr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/module.hxx,sfx2/module.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/msg.hxx,sfx2/msg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/msgpool.hxx,sfx2/msgpool.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/navigat.hxx,sfx2/navigat.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/new.hxx,sfx2/new.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/newstyle.hxx,sfx2/newstyle.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/objface.hxx,sfx2/objface.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/objitem.hxx,sfx2/objitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/objsh.hxx,sfx2/objsh.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/opengrf.hxx,sfx2/opengrf.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/passwd.hxx,sfx2/passwd.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/printer.hxx,sfx2/printer.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/printopt.hxx,sfx2/printopt.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/prnmon.hxx,sfx2/prnmon.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/progress.hxx,sfx2/progress.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/querystatus.hxx,sfx2/querystatus.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/request.hxx,sfx2/request.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfx.hrc,sfx2/sfx.hrc))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxbasecontroller.hxx,sfx2/sfxbasecontroller.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxbasemodel.hxx,sfx2/sfxbasemodel.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxcommands.h,sfx2/sfxcommands.h))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxdefs.hxx,sfx2/sfxdefs.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxdlg.hxx,sfx2/sfxdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxhelp.hxx,sfx2/sfxhelp.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxhtml.hxx,sfx2/sfxhtml.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxmodelfactory.hxx,sfx2/sfxmodelfactory.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxresid.hxx,sfx2/sfxresid.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxsids.hrc,sfx2/sfxsids.hrc))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxstatuslistener.hxx,sfx2/sfxstatuslistener.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxuno.hxx,sfx2/sfxuno.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/shell.hxx,sfx2/shell.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/signaturestate.hxx,sfx2/signaturestate.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/stbitem.hxx,sfx2/stbitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/styfitem.hxx,sfx2/styfitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/styledlg.hxx,sfx2/styledlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/tabdlg.hxx,sfx2/tabdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/taskpane.hxx,sfx2/taskpane.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/tbxctrl.hxx,sfx2/tbxctrl.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/templdlg.hxx,sfx2/templdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/titledockwin.hxx,sfx2/titledockwin.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/tplpitem.hxx,sfx2/tplpitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/unoctitm.hxx,sfx2/unoctitm.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/userinputinterception.hxx,sfx2/userinputinterception.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/viewfac.hxx,sfx2/viewfac.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/viewfrm.hxx,sfx2/viewfrm.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/viewsh.hxx,sfx2/viewsh.hxx))
diff --git a/sfx2/Package_sdi.mk b/sfx2/Package_sdi.mk
new file mode 100644
index 000000000000..63f2138adf4f
--- /dev/null
+++ b/sfx2/Package_sdi.mk
@@ -0,0 +1,30 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Package_Package,sfx2_sdi,$(SRCDIR)/sfx2/sdi))
+$(eval $(call gb_Package_add_file,sfx2_sdi,inc/sfx2/sfx.sdi,sfx.sdi))
+$(eval $(call gb_Package_add_file,sfx2_sdi,inc/sfx2/sfxitems.sdi,sfxitems.sdi))
diff --git a/sfx2/inc/brokenpackageint.hxx b/sfx2/inc/brokenpackageint.hxx
deleted file mode 100644
index 16f332480cf6..000000000000
--- a/sfx2/inc/brokenpackageint.hxx
+++ /dev/null
@@ -1,101 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "sal/config.h"
-#include "sfx2/dllapi.h"
-#include <com/sun/star/document/BrokenPackageRequest.hpp>
-#include <com/sun/star/task/XInteractionApprove.hpp>
-#include <com/sun/star/task/XInteractionDisapprove.hpp>
-#include <framework/interaction.hxx>
-
-using namespace ::framework;
-typedef ContinuationBase< ::com::sun::star::task::XInteractionApprove > SfxContinuationApprove;
-typedef ContinuationBase< ::com::sun::star::task::XInteractionDisapprove > SfxContinuationDisapprove;
-
-class SFX2_DLLPUBLIC RequestPackageReparation :
- public ::com::sun::star::task::XInteractionRequest,
- public ::cppu::OWeakObject
-{
- ::com::sun::star::uno::Any m_aRequest;
-
- ::com::sun::star::uno::Sequence<
- ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >
- > m_lContinuations;
-
- SfxContinuationApprove* m_pApprove;
- SfxContinuationDisapprove* m_pDisapprove;
-
-public:
- RequestPackageReparation( ::rtl::OUString aName );
-
- // XInterface / OWeakObject
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL acquire( ) throw ();
- virtual void SAL_CALL release( ) throw ();
-
- sal_Bool isApproved() { return m_pApprove->isSelected(); }
-
- virtual ::com::sun::star::uno::Any SAL_CALL getRequest()
- throw( ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Sequence<
- ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >
- > SAL_CALL getContinuations()
- throw( ::com::sun::star::uno::RuntimeException );
-};
-
-class SFX2_DLLPUBLIC NotifyBrokenPackage :
- public ::com::sun::star::task::XInteractionRequest,
- public ::cppu::OWeakObject
-{
- ::com::sun::star::uno::Any m_aRequest;
-
- ::com::sun::star::uno::Sequence<
- ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >
- > m_lContinuations;
-
- ContinuationAbort* m_pAbort;
-
-public:
- NotifyBrokenPackage( ::rtl::OUString aName );
-
- // XInterface / OWeakObject
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL acquire( ) throw ();
- virtual void SAL_CALL release( ) throw ();
-
- sal_Bool isAborted() { return m_pAbort->isSelected(); }
-
- virtual ::com::sun::star::uno::Any SAL_CALL getRequest()
- throw( ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Sequence<
- ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >
- > SAL_CALL getContinuations()
- throw( ::com::sun::star::uno::RuntimeException );
-};
-
diff --git a/sfx2/inc/guisaveas.hxx b/sfx2/inc/guisaveas.hxx
index a317b5796232..b10ed6c90819 100644
--- a/sfx2/inc/guisaveas.hxx
+++ b/sfx2/inc/guisaveas.hxx
@@ -79,12 +79,6 @@ public:
::rtl::OUString aUserSelectedName,
sal_uInt16 nDocumentSignatureState = SIGNATURESTATE_NOSIGNATURES );
- static ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SearchForFilter(
- const ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainerQuery >& xFilterQuery,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aSearchRequest,
- sal_Int32 nMustFlags,
- sal_Int32 nDontFlags );
-
static sal_Bool CheckFilterOptionsAppearence(
const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& xFilterCFG,
const ::rtl::OUString& aFilterName );
diff --git a/sfx2/inc/makefile.mk b/sfx2/inc/makefile.mk
deleted file mode 100644
index b7aa547e2c79..000000000000
--- a/sfx2/inc/makefile.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME=sfx2
-TARGET=inc
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
-.IF "$(ENABLE_PCH)"!=""
-ALLTAR : \
- $(SLO)$/precompiled.pch \
- $(SLO)$/precompiled_ex.pch
-
-.ENDIF # "$(ENABLE_PCH)"!=""
-
diff --git a/sfx2/inc/QuerySaveDocument.hxx b/sfx2/inc/sfx2/QuerySaveDocument.hxx
index e25d1a23082c..e25d1a23082c 100644
--- a/sfx2/inc/QuerySaveDocument.hxx
+++ b/sfx2/inc/sfx2/QuerySaveDocument.hxx
diff --git a/sfx2/inc/basmgr.hxx b/sfx2/inc/sfx2/basmgr.hxx
index 7156be8f8327..0227ad6515ec 100644
--- a/sfx2/inc/basmgr.hxx
+++ b/sfx2/inc/sfx2/basmgr.hxx
@@ -28,8 +28,7 @@
#ifndef _SFX_BASMGR_HXX
#define _SFX_BASMGR_HXX
-#ifndef _BASMGR_HXX_
#include <basic/basmgr.hxx>
-#endif
+#include <svtools/svtools.hrc>
#endif //_SFX_BASMGR_HXX
diff --git a/sfx2/inc/sfx2/brokenpackageint.hxx b/sfx2/inc/sfx2/brokenpackageint.hxx
new file mode 100755
index 000000000000..5186e875a6ea
--- /dev/null
+++ b/sfx2/inc/sfx2/brokenpackageint.hxx
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "sal/config.h"
+#include "sfx2/dllapi.h"
+#include <com/sun/star/document/BrokenPackageRequest.hpp>
+#include <com/sun/star/task/XInteractionApprove.hpp>
+#include <com/sun/star/task/XInteractionDisapprove.hpp>
+
+class RequestPackageReparation_Impl;
+class SFX2_DLLPUBLIC RequestPackageReparation
+{
+ RequestPackageReparation_Impl* pImp;
+public:
+ RequestPackageReparation( ::rtl::OUString aName );
+ ~RequestPackageReparation();
+ sal_Bool isApproved();
+ com::sun::star::uno::Reference < ::com::sun::star::task::XInteractionRequest > GetRequest();
+};
+
+class NotifyBrokenPackage_Impl;
+class SFX2_DLLPUBLIC NotifyBrokenPackage
+{
+ NotifyBrokenPackage_Impl* pImp;
+public:
+ NotifyBrokenPackage( ::rtl::OUString aName );
+ ~NotifyBrokenPackage();
+ sal_Bool isAborted();
+ com::sun::star::uno::Reference < ::com::sun::star::task::XInteractionRequest > GetRequest();
+};
+
diff --git a/sfx2/inc/dinfedt.hxx b/sfx2/inc/sfx2/dinfedt.hxx
index 64ad32cb1337..64ad32cb1337 100644
--- a/sfx2/inc/dinfedt.hxx
+++ b/sfx2/inc/sfx2/dinfedt.hxx
diff --git a/sfx2/inc/sfx2/docfile.hxx b/sfx2/inc/sfx2/docfile.hxx
index 0cb57e7a414d..35656202650f 100644
--- a/sfx2/inc/sfx2/docfile.hxx
+++ b/sfx2/inc/sfx2/docfile.hxx
@@ -112,7 +112,7 @@ class SFX2_DLLPUBLIC SfxMedium : public SvRefBase
SAL_DLLPRIVATE void CloseStreams_Impl();
DECL_DLLPRIVATE_STATIC_LINK( SfxMedium, UCBHdl_Impl, sal_uInt32 * );
- SAL_DLLPRIVATE void SetPasswordToStorage_Impl();
+ SAL_DLLPRIVATE void SetEncryptionDataToStorage_Impl();
#endif
public:
diff --git a/sfx2/inc/sfx2/docfilt.hxx b/sfx2/inc/sfx2/docfilt.hxx
index f024fdb07c06..83bad4d1d01c 100644
--- a/sfx2/inc/sfx2/docfilt.hxx
+++ b/sfx2/inc/sfx2/docfilt.hxx
@@ -37,42 +37,7 @@
#include <com/sun/star/uno/RuntimeException.hpp>
#include <tools/wldcrd.hxx>
-// TODO/LATER: The flags should be part of the UNO specification
-#define SFX_FILTER_IMPORT 0x00000001L
-#define SFX_FILTER_EXPORT 0x00000002L
-#define SFX_FILTER_TEMPLATE 0x00000004L
-#define SFX_FILTER_INTERNAL 0x00000008L
-#define SFX_FILTER_TEMPLATEPATH 0x00000010L
-#define SFX_FILTER_OWN 0x00000020L
-#define SFX_FILTER_ALIEN 0x00000040L
-#define SFX_FILTER_USESOPTIONS 0x00000080L
-
-#define SFX_FILTER_DEFAULT 0x00000100L
-#define SFX_FILTER_EXECUTABLE 0x00000200L
-#define SFX_FILTER_SUPPORTSSELECTION 0x00000400L
-#define SFX_FILTER_MAPTOAPPPLUG 0x00000800L
-#define SFX_FILTER_NOTINFILEDLG 0x00001000L
-#define SFX_FILTER_NOTINCHOOSER 0x00002000L
-#define SFX_FILTER_ASYNC 0x00004000L
-// Legt Objekt nur an, kein Laden
-#define SFX_FILTER_CREATOR 0x00008000L
-#define SFX_FILTER_OPENREADONLY 0x00010000L
-#define SFX_FILTER_MUSTINSTALL 0x00020000L
-#define SFX_FILTER_CONSULTSERVICE 0x00040000L
-
-#define SFX_FILTER_STARONEFILTER 0x00080000L
-#define SFX_FILTER_PACKED 0x00100000L
-#define SFX_FILTER_SILENTEXPORT 0x00200000L
-
-#define SFX_FILTER_BROWSERPREFERED 0x00400000L
-
-#define SFX_FILTER_ENCRYPTION 0x01000000L
-#define SFX_FILTER_PASSWORDTOMODIFY 0x02000000L
-
-#define SFX_FILTER_PREFERED 0x10000000L
-
-#define SFX_FILTER_VERSION_NONE 0
-#define SFX_FILTER_NOTINSTALLED SFX_FILTER_MUSTINSTALL | SFX_FILTER_CONSULTSERVICE
+#include <comphelper/documentconstants.hxx>
#include <sfx2/sfxdefs.hxx>
diff --git a/sfx2/inc/docinsert.hxx b/sfx2/inc/sfx2/docinsert.hxx
index c4e4be12185e..c4e4be12185e 100644
--- a/sfx2/inc/docinsert.hxx
+++ b/sfx2/inc/sfx2/docinsert.hxx
diff --git a/sfx2/inc/sfx2/event.hxx b/sfx2/inc/sfx2/event.hxx
index 71ae9c182fb3..b9beb12bfeff 100644
--- a/sfx2/inc/sfx2/event.hxx
+++ b/sfx2/inc/sfx2/event.hxx
@@ -36,6 +36,7 @@
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/frame/XController2.hpp>
class SfxObjectShell;
@@ -67,6 +68,29 @@ public:
//-------------------------------------------------------------------
+class SFX2_DLLPUBLIC SfxViewEventHint : public SfxEventHint
+{
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 > xViewController;
+
+public:
+ TYPEINFO();
+
+ SfxViewEventHint( USHORT nId, const ::rtl::OUString& aName, SfxObjectShell *pObj, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >& xController )
+ : SfxEventHint( nId, aName, pObj )
+ , xViewController( xController, ::com::sun::star::uno::UNO_QUERY )
+ {}
+
+ SfxViewEventHint( USHORT nId, const ::rtl::OUString& aName, SfxObjectShell *pObj, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 >& xController )
+ : SfxEventHint( nId, aName, pObj )
+ , xViewController( xController )
+ {}
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 > GetController() const
+ { return xViewController; }
+};
+
+//-------------------------------------------------------------------
+
class SfxNamedHint : public SfxHint
{
String _aEventName;
diff --git a/sfx2/inc/imagemgr.hxx b/sfx2/inc/sfx2/imagemgr.hxx
index 79dc724210c4..79dc724210c4 100644
--- a/sfx2/inc/imagemgr.hxx
+++ b/sfx2/inc/sfx2/imagemgr.hxx
diff --git a/sfx2/inc/imgmgr.hxx b/sfx2/inc/sfx2/imgmgr.hxx
index ae1f8a23ddc9..ae1f8a23ddc9 100644
--- a/sfx2/inc/imgmgr.hxx
+++ b/sfx2/inc/sfx2/imgmgr.hxx
diff --git a/sfx2/inc/sfx2/ipclient.hxx b/sfx2/inc/sfx2/ipclient.hxx
index e0708f1f061d..960c6629b8d2 100644
--- a/sfx2/inc/sfx2/ipclient.hxx
+++ b/sfx2/inc/sfx2/ipclient.hxx
@@ -101,6 +101,7 @@ public:
// used in Writer
// Rectangle PixelObjVisAreaToLogic( const Rectangle & rObjRect ) const;
// Rectangle LogicObjAreaToPixel( const Rectangle & rRect ) const;
+ virtual void FormatChanged(); // object format was changed (used for StarMath formulas aligning)
};
#endif
diff --git a/sfx2/inc/mailmodelapi.hxx b/sfx2/inc/sfx2/mailmodelapi.hxx
index fa9086f2623b..fa9086f2623b 100644
--- a/sfx2/inc/mailmodelapi.hxx
+++ b/sfx2/inc/sfx2/mailmodelapi.hxx
diff --git a/sfx2/inc/sfx2/mgetempl.hxx b/sfx2/inc/sfx2/mgetempl.hxx
index ba6a9b844b7a..a63f665c1071 100644
--- a/sfx2/inc/sfx2/mgetempl.hxx
+++ b/sfx2/inc/sfx2/mgetempl.hxx
@@ -37,6 +37,9 @@
#include <sfx2/tabdlg.hxx>
+#include <svtools/svmedit2.hxx>
+#include <svtools/svmedit.hxx>
+
/* erwartet:
SID_TEMPLATE_NAME : In: StringItem, Name der Vorlage
SID_TEMPLATE_FAMILY : In: Familie der Vorlage
@@ -54,6 +57,8 @@ class SfxManageStyleSheetPage : public SfxTabPage
{
FixedText aNameFt;
Edit aNameEd;
+ ExtMultiLineEdit aNameMLE;
+
CheckBox aAutoCB;
FixedText aFollowFt;
diff --git a/sfx2/inc/mieclip.hxx b/sfx2/inc/sfx2/mieclip.hxx
index 562bca7940e2..562bca7940e2 100644
--- a/sfx2/inc/mieclip.hxx
+++ b/sfx2/inc/sfx2/mieclip.hxx
diff --git a/sfx2/inc/minfitem.hxx b/sfx2/inc/sfx2/minfitem.hxx
index 29edf6b3e8cb..29edf6b3e8cb 100644
--- a/sfx2/inc/minfitem.hxx
+++ b/sfx2/inc/sfx2/minfitem.hxx
diff --git a/sfx2/inc/sfx2/passwd.hxx b/sfx2/inc/sfx2/passwd.hxx
index b0105553cd40..6ca9d5212a57 100644
--- a/sfx2/inc/sfx2/passwd.hxx
+++ b/sfx2/inc/sfx2/passwd.hxx
@@ -28,40 +28,44 @@
#define _SFX_PASSWD_HXX
#include "sal/config.h"
-#include "sfx2/dllapi.h"
-
-#ifndef _SV_BUTTON_HXX
+#include <sfx2/dllapi.h>
#include <vcl/button.hxx>
-#endif
#include <vcl/dialog.hxx>
#include <vcl/edit.hxx>
#include <vcl/fixed.hxx>
+#include <sfx2/app.hxx>
// defines ---------------------------------------------------------------
-#define SHOWEXTRAS_NONE ((USHORT)0x0000)
-#define SHOWEXTRAS_USER ((USHORT)0x0001)
-#define SHOWEXTRAS_CONFIRM ((USHORT)0x0002)
-#define SHOWEXTRAS_ALL ((USHORT)(SHOWEXTRAS_USER | SHOWEXTRAS_CONFIRM))
+#define SHOWEXTRAS_NONE ((USHORT)0x0000)
+#define SHOWEXTRAS_USER ((USHORT)0x0001)
+#define SHOWEXTRAS_CONFIRM ((USHORT)0x0002)
+#define SHOWEXTRAS_PASSWORD2 ((USHORT)0x0004)
+#define SHOWEXTRAS_CONFIRM2 ((USHORT)0x0008)
+#define SHOWEXTRAS_ALL ((USHORT)(SHOWEXTRAS_USER | SHOWEXTRAS_CONFIRM))
// class SfxPasswordDialog -----------------------------------------------
class SFX2_DLLPUBLIC SfxPasswordDialog : public ModalDialog
{
private:
+ FixedLine maPasswordBox;
FixedText maUserFT;
Edit maUserED;
FixedText maPasswordFT;
Edit maPasswordED;
FixedText maConfirmFT;
Edit maConfirmED;
- FixedLine maPasswordBox;
+ FixedLine maPassword2Box;
+ FixedText maPassword2FT;
+ Edit maPassword2ED;
+ FixedText maConfirm2FT;
+ Edit maConfirm2ED;
OKButton maOKBtn;
CancelButton maCancelBtn;
HelpButton maHelpBtn;
- String maConfirmStr;
USHORT mnMinLen;
USHORT mnExtras;
@@ -76,6 +80,10 @@ public:
String GetPassword() const { return maPasswordED.GetText(); }
String GetConfirm() const { return maConfirmED.GetText(); }
+ String GetPassword2() const { return maPassword2ED.GetText(); }
+ String GetConfirm2() const { return maConfirm2ED.GetText(); }
+ void SetGroup2Text( const String& i_rText ) { maPassword2Box.SetText( i_rText ); }
+
void SetMinLen( USHORT Len );
void SetMaxLen( USHORT Len );
void SetEditHelpId( const rtl::OString& rId ) { maPasswordED.SetHelpId( rId ); }
diff --git a/sfx2/inc/sfx2/sfx.hrc b/sfx2/inc/sfx2/sfx.hrc
index a49b003b5b49..44c00cc93018 100644
--- a/sfx2/inc/sfx2/sfx.hrc
+++ b/sfx2/inc/sfx2/sfx.hrc
@@ -362,9 +362,6 @@
#define RID_ITEMLIST_LINGU (RID_OPTIONS_START + 11)
#define RID_SFXPAGE_PRINTOPTIONS (RID_OPTIONS_START + 12)
-#define STR_UNDO (RID_SFX_VIEW_START+11)
-#define STR_REDO (RID_SFX_VIEW_START+12)
-#define STR_REPEAT (RID_SFX_VIEW_START+13)
#define RID_STR_NEW_TASK (RID_SFX_DOC_START+ 76)
// Member-Ids ------------------------------------------------------------
diff --git a/sfx2/inc/sfx2/sfxbasemodel.hxx b/sfx2/inc/sfx2/sfxbasemodel.hxx
index 578dd1fd33bb..26122419e661 100644
--- a/sfx2/inc/sfx2/sfxbasemodel.hxx
+++ b/sfx2/inc/sfx2/sfxbasemodel.hxx
@@ -39,7 +39,7 @@
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/container/XNameContainer.hpp>
#include <com/sun/star/container/XNameReplace.hpp>
-#include <com/sun/star/frame/XController.hpp>
+#include <com/sun/star/frame/XController2.hpp>
#include <com/sun/star/document/XDocumentInfo.hpp>
#include <com/sun/star/document/XDocumentInfoSupplier.hpp>
#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
@@ -48,6 +48,7 @@
#include <com/sun/star/rdf/XDocumentMetadataAccess.hpp>
#include <com/sun/star/document/XEventBroadcaster.hpp>
+#include <com/sun/star/document/XDocumentEventBroadcaster.hpp>
#include <com/sun/star/document/XEventListener.hpp>
#include <com/sun/star/document/XEventsSupplier.hpp>
#include <com/sun/star/document/XEmbeddedScripts.hpp>
@@ -96,9 +97,9 @@
#include <com/sun/star/task/XInteractionHandler.hpp>
//________________________________________________________________________________________________________
-#if ! defined(INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_30)
-#define INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_30
-#define COMPHELPER_IMPLBASE_INTERFACE_NUMBER 30
+#if ! defined(INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_31)
+#define INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_31
+#define COMPHELPER_IMPLBASE_INTERFACE_NUMBER 31
#include <comphelper/implbase_var.hxx>
#endif
@@ -143,6 +144,7 @@
#define XDOCUMENTINFO ::com::sun::star::document::XDocumentInfo
#define XDOCUMENTINFOSUPPLIER ::com::sun::star::document::XDocumentInfoSupplier
#define XEVENTBROADCASTER ::com::sun::star::document::XEventBroadcaster
+#define XDOCUMENTEVENTBROADCASTER ::com::sun::star::document::XDocumentEventBroadcaster
#define XEVENTSSUPPLIER ::com::sun::star::document::XEventsSupplier
#define XEMBEDDEDSCRIPTS ::com::sun::star::document::XEmbeddedScripts
#define XSCRIPTINVOCATIONCONTEXT ::com::sun::star::document::XScriptInvocationContext
@@ -237,12 +239,13 @@ namespace sfx { namespace intern {
SfxListener
*/
-typedef ::comphelper::WeakImplHelper30 < XCHILD
+typedef ::comphelper::WeakImplHelper31 < XCHILD
, XDOCUMENTINFOSUPPLIER
, ::com::sun::star::document::XDocumentPropertiesSupplier
, ::com::sun::star::rdf::XDocumentMetadataAccess
, ::com::sun::star::document::XDocumentRecovery
, XEVENTBROADCASTER
+ , XDOCUMENTEVENTBROADCASTER
, XEVENTLISTENER
, XEVENTSSUPPLIER
, XEMBEDDEDSCRIPTS
@@ -1249,6 +1252,18 @@ public:
virtual void SAL_CALL removeEventListener( const REFERENCE< XDOCEVENTLISTENER >& xListener ) throw( RUNTIMEEXCEPTION );
+ //____________________________________________________________________________________________________
+ // XDocumentEventBroadcaster
+ //____________________________________________________________________________________________________
+
+ virtual void SAL_CALL addDocumentEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentEventListener >& _Listener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeDocumentEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentEventListener >& _Listener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL notifyDocumentEvent( const ::rtl::OUString& _EventName, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 >& _ViewController, const ::com::sun::star::uno::Any& _Supplement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
+
+ //____________________________________________________________________________________________________
+ // XUnoTunnel
+ //____________________________________________________________________________________________________
+
virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
// css.frame.XModule
@@ -1484,8 +1499,8 @@ public:
*/
SAL_DLLPRIVATE sal_Bool impl_isDisposed() const ;
- sal_Bool IsDisposed() const ;
sal_Bool IsInitialized() const;
+ void MethodEntryCheck( const bool i_mustBeInitialized ) const;
::com::sun::star::uno::Reference < ::com::sun::star::container::XIndexAccess > SAL_CALL getViewData() throw (::com::sun::star::uno::RuntimeException);
void SAL_CALL setViewData( const ::com::sun::star::uno::Reference < ::com::sun::star::container::XIndexAccess >& aData ) throw (::com::sun::star::uno::RuntimeException);
@@ -1531,7 +1546,9 @@ private:
SAL_DLLPRIVATE void impl_store( const OUSTRING& sURL ,
const SEQUENCE< PROPERTYVALUE >& seqArguments ,
sal_Bool bSaveTo ) ;
- SAL_DLLPRIVATE void postEvent_Impl( ::rtl::OUString );
+
+ SAL_DLLPRIVATE void postEvent_Impl( const ::rtl::OUString& aName, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 >& xController = ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 >() );
+
SAL_DLLPRIVATE String getEventName_Impl( long nID );
SAL_DLLPRIVATE void NotifyStorageListeners_Impl();
SAL_DLLPRIVATE bool QuerySaveSizeExceededModules( const com::sun::star::uno::Reference< com::sun::star::task::XInteractionHandler >& xHandler );
@@ -1573,10 +1590,7 @@ public:
SfxModelGuard( SfxBaseModel& i_rModel, const AllowedModelState i_eState = E_FULLY_ALIVE )
:m_aGuard( Application::GetSolarMutex() )
{
- if ( i_rModel.IsDisposed() )
- throw ::com::sun::star::lang::DisposedException( ::rtl::OUString(), *&i_rModel );
- if ( ( i_eState != E_INITIALIZING ) && !i_rModel.IsInitialized() )
- throw ::com::sun::star::lang::NotInitializedException( ::rtl::OUString(), *&i_rModel );
+ i_rModel.MethodEntryCheck( i_eState != E_INITIALIZING );
}
~SfxModelGuard()
{
diff --git a/sfx2/inc/sfxhelp.hxx b/sfx2/inc/sfx2/sfxhelp.hxx
index 17589c7cd399..17589c7cd399 100644
--- a/sfx2/inc/sfxhelp.hxx
+++ b/sfx2/inc/sfx2/sfxhelp.hxx
diff --git a/sfx2/inc/sfxresid.hxx b/sfx2/inc/sfx2/sfxresid.hxx
index ceea5452a0d5..2dfdb48afef4 100644
--- a/sfx2/inc/sfxresid.hxx
+++ b/sfx2/inc/sfx2/sfxresid.hxx
@@ -28,12 +28,10 @@
#define _SFX_SFXRESID_HXX
#include <tools/string.hxx>
-
-#ifndef _RESID_HXX //autogen
+#include "sfx2/dllapi.h"
#include <tools/resid.hxx>
-#endif
-class SfxResId: public ResId
+class SFX2_DLLPUBLIC SfxResId: public ResId
{
public:
SfxResId( USHORT nId );
diff --git a/sfx2/inc/sfx2/sfxsids.hrc b/sfx2/inc/sfx2/sfxsids.hrc
index 9ab4a50b63d8..561a41b04387 100644
--- a/sfx2/inc/sfx2/sfxsids.hrc
+++ b/sfx2/inc/sfx2/sfxsids.hrc
@@ -93,6 +93,8 @@
#define SID_MAIL_PRIORITY (SID_SFX_START + 337)
#define SID_MAIL_ATTACH_FILE (SID_SFX_START + 375)
+#define SID_MAIL_PREPAREEXPORT (SID_SFX_START + 385)
+#define SID_MAIL_NEEDS_PREPAREEXPORT (SID_SFX_START + 386)
#define SID_MAIL_EXPORT_FINISHED (SID_SFX_START + 388)
#define SID_WEBHTML (SID_SFX_START + 393)
@@ -191,7 +193,7 @@
#define SID_EXPLORER_FILEPROPS_END (SID_SFX_START + 1399)
#define ID_FILETP_START SID_EXPLORER_FILEPROPS_START
-#define ID_FILETP_READONLY (ID_FILETP_START + 0)
+#define ID_FILETP_READONLY (ID_FILETP_START + 0)
#define ID_FILETP_TITLE (ID_FILETP_START + 1)
#define SID_EXPLORER_PROPS_START (SID_SFX_START + 1410)
@@ -225,9 +227,9 @@
#define SID_OFFICE_PLK (SID_SFX_START + 1601)
#define SID_OFFICE_PALK (SID_SFX_START + 1604)
#define SID_CHECK_KEY (SID_SFX_START + 1605)
-#define SID_OFFICE_PRIVATE_USE (SID_SFX_START + 1606)
-#define SID_OFFICE_COMMERCIAL_USE (SID_SFX_START + 1607)
-#define SID_OFFICE_CUSTOMERNUMBER (SID_SFX_START + 1608)
+#define SID_OFFICE_PRIVATE_USE (SID_SFX_START + 1606)
+#define SID_OFFICE_COMMERCIAL_USE (SID_SFX_START + 1607)
+#define SID_OFFICE_CUSTOMERNUMBER (SID_SFX_START + 1608)
#define SID_OFFICE_INVALIDATE_TITLE (SID_SFX_START + 1609)
#define SID_OFFICE_CHECK_PLZ (SID_SFX_START + 1610)
#define SID_INTERNET_SEARCH (SID_SFX_START + 1611)
@@ -240,11 +242,11 @@
#define SID_NEW_MSG_PARENT (SID_SFX_START + 1622)
-#define SID_PGP_ENCODE (SID_SFX_START + 1625)
-#define SID_PGP_DECODE (SID_SFX_START + 1626)
-#define SID_TIPWINDOW (SID_SFX_START + 1632)
+#define SID_PGP_ENCODE (SID_SFX_START + 1625)
+#define SID_PGP_DECODE (SID_SFX_START + 1626)
+#define SID_TIPWINDOW (SID_SFX_START + 1632)
#define SID_CHARSET (SID_SFX_START + 1633)
-#define SID_OVERWRITE (SID_SFX_START + 1634)
+#define SID_OVERWRITE (SID_SFX_START + 1634)
#define SID_RENAME (SID_SFX_START + 1653)
#define SID_PARTWIN (SID_SFX_START + 1640)
#define SID_CRASH (SID_SFX_START + 1645)
@@ -275,7 +277,7 @@
#define SID_SHOW_IME_STATUS_WINDOW (SID_SFX_START + 1680)
#define SID_UPDATE_CONFIG (SID_SFX_START + 1681)
#define SID_VIEWONLY (SID_SFX_START + 1682)
-#define SID_REPAIRPACKAGE (SID_SFX_START + 1683)
+#define SID_REPAIRPACKAGE (SID_SFX_START + 1683)
#define SID_ADDONHELP (SID_SFX_START + 1684)
#define SID_OBJECTSHELL (SID_SFX_START + 1685)
#define SID_MINIMIZED (SID_SFX_START + 1687)
@@ -309,7 +311,11 @@
#define SID_DEFAULTFILENAME (SID_SFX_START + 1717)
#define SID_MODIFYPASSWORDINFO (SID_SFX_START + 1718)
#define SID_RECOMMENDREADONLY (SID_SFX_START + 1719)
-#define SID_SFX_free_START (SID_SFX_START + 1720)
+#define SID_SUGGESTEDSAVEASDIR (SID_SFX_START + 1720)
+#define SID_SUGGESTEDSAVEASNAME (SID_SFX_START + 1721)
+#define SID_ENCRYPTIONDATA (SID_SFX_START + 1722)
+#define SID_PASSWORDINTERACTION (SID_SFX_START + 1723)
+#define SID_SFX_free_START (SID_SFX_START + 1724)
#define SID_SFX_free_END (SID_SFX_START + 3999)
#define SID_OPEN_NEW_VIEW (SID_SFX_START + 520)
@@ -492,7 +498,7 @@
#define SID_PASTE (SID_SFX_START + 712)
// steht unter diesem Wert in chaos/cntids.hrc!!!
-//#define SID_DELETE (SID_SFX_START + 713)
+//#define SID_DELETE (SID_SFX_START + 713)
#define SID_BACKSPACE (SID_SFX_START + 714)
#define SID_FORMATPAINTBRUSH (SID_SFX_START + 715)
@@ -656,7 +662,7 @@
#define SID_OPT_HELP_PATH (SID_SFX_START + 1560)
#define SID_OPT_BOOKMARKS_PATH (SID_SFX_START + 1561)
#define SID_OPT_GALLERY_PATH (SID_SFX_START + 1562)
-#define SID_OPT_NEWDOC_PATH (SID_SFX_START + 1563)
+#define SID_OPT_NEWDOC_PATH (SID_SFX_START + 1563)
#define SID_OPT_AGENTS_PATH (SID_SFX_START + 1564)
#define SID_OPT_AUTOPILOT_PATH (SID_SFX_START + 1565)
#define SID_OPT_EXPLORER_PATH (SID_SFX_START + 1566)
@@ -750,9 +756,9 @@
#define SID_ATTR_AUTOHELPAGENT (SID_OPTIONS_START + 67)
#define SID_AUTOHELPAGENT_RESET (SID_OPTIONS_START + 68)
#define SID_HELPAGENT_TIMEOUT (SID_OPTIONS_START + 93)
-#define SID_ATTR_WELCOMESCREEN (SID_OPTIONS_START + 81)
+#define SID_ATTR_WELCOMESCREEN (SID_OPTIONS_START + 81)
#define SID_WELCOMESCREEN_RESET (SID_OPTIONS_START + 82)
-#define SID_RESTORE_EXPAND_STATE (SID_OPTIONS_START + 83)
+#define SID_RESTORE_EXPAND_STATE (SID_OPTIONS_START + 83)
#define SID_ATTR_QUICKLAUNCHER (SID_OPTIONS_START + 74)
#define SID_ATTR_YEAR2000 (SID_OPTIONS_START + 87)
#define SID_ATTR_ALLOWFOLDERWEBVIEW (SID_OPTIONS_START + 92)
@@ -824,7 +830,7 @@
#define SID_INET_CHANNELS_ONOFF (SID_OPTIONS_START + 64)
-#define SID_INET_COOKIESHANDLE (SID_OPTIONS_START + 69)
+#define SID_INET_COOKIESHANDLE (SID_OPTIONS_START + 69)
#define SID_INET_CACHEJS (SID_OPTIONS_START + 70)
#define SID_INET_CACHEEXPIRED (SID_OPTIONS_START + 71)
diff --git a/sfx2/inc/sfx2/sfxuno.hxx b/sfx2/inc/sfx2/sfxuno.hxx
index f9702063713a..691716b70571 100644
--- a/sfx2/inc/sfx2/sfxuno.hxx
+++ b/sfx2/inc/sfx2/sfxuno.hxx
@@ -37,6 +37,7 @@
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
#include <com/sun/star/task/ErrorCodeIOException.hpp>
+#include <com/sun/star/beans/NamedValue.hpp>
//________________________________________________________________________________________________________________________
@@ -104,7 +105,7 @@ SFX2_DLLPUBLIC void TransformItems( sal_uInt16
UNOSEQUENCE< UNOPROPERTYVALUE >& seqArgs ,
const SfxSlot* pSlot = 0 );
-sal_Bool GetPasswd_Impl( const SfxItemSet* pSet, ::rtl::OUString& rPasswd );
+bool GetEncryptionData_Impl( const SfxItemSet* pSet, ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aEncryptionData );
#define FrameSearchFlags sal_Int32
diff --git a/sfx2/inc/stbitem.hxx b/sfx2/inc/sfx2/stbitem.hxx
index 977ba869750d..977ba869750d 100644
--- a/sfx2/inc/stbitem.hxx
+++ b/sfx2/inc/sfx2/stbitem.hxx
diff --git a/sfx2/inc/tplpitem.hxx b/sfx2/inc/sfx2/tplpitem.hxx
index 38198e0ff7ee..38198e0ff7ee 100644
--- a/sfx2/inc/tplpitem.hxx
+++ b/sfx2/inc/sfx2/tplpitem.hxx
diff --git a/sfx2/inc/viewfac.hxx b/sfx2/inc/sfx2/viewfac.hxx
index b0f0abdba3b3..420a44440aae 100644
--- a/sfx2/inc/viewfac.hxx
+++ b/sfx2/inc/sfx2/viewfac.hxx
@@ -30,9 +30,7 @@
#include "sal/config.h"
#include "sfx2/dllapi.h"
#include <tools/string.hxx>
-#ifndef _RESID_HXX //autogen
#include <tools/resid.hxx>
-#endif
class SfxViewFrame;
class SfxViewShell;
@@ -51,7 +49,6 @@ public:
SfxViewShell *CreateInstance(SfxViewFrame *pViewFrame, SfxViewShell *pOldSh);
void InitFactory();
-
USHORT GetOrdinal() const { return nOrd; }
/// returns a legacy view name. This is "view" with an appended ordinal/ID.
diff --git a/sfx2/inc/sfx2/viewsh.hxx b/sfx2/inc/sfx2/viewsh.hxx
index ee8dfb1ca57c..b58a9e7bdf73 100644
--- a/sfx2/inc/sfx2/viewsh.hxx
+++ b/sfx2/inc/sfx2/viewsh.hxx
@@ -37,6 +37,7 @@
#include <svl/lstner.hxx>
#include <com/sun/star/ui/XContextMenuInterceptor.hpp>
#include <com/sun/star/datatransfer/clipboard/XClipboardListener.hpp>
+#include <com/sun/star/datatransfer/clipboard/XClipboardNotifier.hpp>
#include <cppuhelper/interfacecontainer.hxx>
#include "shell.hxx"
#include <tools/gen.hxx>
@@ -293,6 +294,7 @@ public:
void ExecPrint( const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >&, sal_Bool, sal_Bool );
void AddRemoveClipboardListener( const com::sun::star::uno::Reference < com::sun::star::datatransfer::clipboard::XClipboardListener>&, BOOL );
+ ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboardNotifier > GetClipboardNotifier();
#if _SOLAR__PRIVATE
SAL_DLLPRIVATE SfxInPlaceClient* GetUIActiveIPClient_Impl() const;
@@ -380,4 +382,3 @@ inline SfxViewFrame* SfxViewShell::GetViewFrame() const
#endif // #ifndef _SFXVIEWSH_HXX
-
diff --git a/sfx2/prj/build.lst b/sfx2/prj/build.lst
index 1e471312c6cf..f8fddef145a6 100644
--- a/sfx2/prj/build.lst
+++ b/sfx2/prj/build.lst
@@ -1,31 +1,11 @@
-sf sfx2 : l10n idl basic xmlscript framework readlicense_oo shell setup_native sax SYSTRAY_GTK:libegg LIBXML2:libxml2 NULL
+sf sfx2 : l10n idl basic xmlscript framework readlicense_oo shell setup_native sax SYSTRAY_GTK:libegg LIBXML2:libxml2 LIBXSLT:libxslt NULL
sf sfx2 usr1 - all sf_mkout NULL
-sf sfx2\inc nmake - all sf_inc NULL
-sf sfx2\prj get - all sf_prj NULL
-sf sfx2\mac\res get - all sf_mres NULL
-sf sfx2\source\inc get - all sf_sinc NULL
-sf sfx2\sdi nmake - all sf_sdi NULL
-sf sfx2\source\appl nmake - all sf_appl sf_sdi sf_inc NULL
-sf sfx2\source\view nmake - all sf_view sf_sdi sf_inc NULL
-sf sfx2\source\bastyp nmake - all sf_bast sf_sdi sf_inc NULL
-sf sfx2\source\config nmake - all sf_cnfg sf_sdi sf_inc NULL
-sf sfx2\source\control nmake - all sf_ctrl sf_sdi sf_inc NULL
-sf sfx2\source\dialog nmake - all sf_dlg sf_sdi sf_inc NULL
-sf sfx2\source\doc nmake - all sf_doc sf_sdi sf_inc NULL
-sf sfx2\source\layout nmake - all sf_layout sf_sdi sf_inc NULL
-sf sfx2\source\menu nmake - all sf_menu sf_sdi sf_inc NULL
-sf sfx2\source\notify nmake - all sf_noti sf_sdi sf_inc NULL
-sf sfx2\source\statbar nmake - all sf_sbar sf_sdi sf_inc NULL
-sf sfx2\source\toolbox nmake - all sf_tbox sf_sdi sf_inc NULL
-sf sfx2\source\inet nmake - all sf_inet sf_sdi sf_inc NULL
-sf sfx2\source\explorer nmake - all sf_expl sf_sdi sf_inc NULL
-sf sfx2\workben\custompanel nmake - all sf_wb_custompanel NULL
-sf sfx2\util nmake - all sf_util sf_appl sf_bast sf_cnfg sf_ctrl sf_dlg sf_doc sf_expl sf_inet sf_menu sf_layout sf_noti sf_sbar sf_tbox sf_view NULL
-sf sfx2\qa\unoapi nmake - all sf_qa_unoapi NULL
-sf sfx2\qa\cppunit nmake - all sf_qa_cppunit sf_util NULL
+sf sfx2\prj nmake - all sf_prj NULL
+
# fails on unxsoli4
# sf sfx2\qa\complex\standalonedocumentinfo nmake - all sf_qa_complex_standalonedocumentinfo sf_util NULL
# sf sfx2\qa\complex\framework nmake - all sf_qa_complex_framework sf_qa_complex_framework_dochelper NULL
# sf sfx2\qa\complex\docinfo nmake - all sf_qa_complex_docinfo sf_util NULL
+
diff --git a/sfx2/prj/d.lst b/sfx2/prj/d.lst
index 0768000425eb..e69de29bb2d1 100644
--- a/sfx2/prj/d.lst
+++ b/sfx2/prj/d.lst
@@ -1,47 +0,0 @@
-mkdir: %COMMON_DEST%\bin%_EXT%\hid
-mkdir: %COMMON_DEST%\res%_EXT%
-mkdir: %_DEST%\inc%_EXT%\sfx2
-
-..\%COMMON_OUTDIR%\misc\*.hid %COMMON_DEST%\bin%_EXT%\hid\*.hid
-..\%__SRC%\lib\sfx.lib %_DEST%\lib%_EXT%\sfx.lib
-..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
-..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
-..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
-..\%__SRC%\slb\sfx.lib %_DEST%\lib%_EXT%\xsfx.lib
-..\%__SRC%\lib\isfx.lib %_DEST%\lib%_EXT%\isfx.lib
-..\%__SRC%\lib\debug.lib %_DEST%\lib%_EXT%\sfxdebug.lib
-..\%__SRC%\bin\sfx?????.sym %_DEST%\bin%_EXT%\sfx?????.sym
-..\%__SRC%\bin\sfx?????.dll %_DEST%\bin%_EXT%\sfx?????.dll
-..\%__SRC%\bin\sfx*.res %_DEST%\bin%_EXT%\sfx*.res
-..\%__SRC%\bin\sfx?????.sym %_DEST%\bin%_EXT%\sfx?????.sym
-..\%__SRC%\misc\sfx?????.map %_DEST%\bin%_EXT%\sfx?????.map
-..\%__SRC%\bin\elc?????.dll %_DEST%\bin%_EXT%\elc?????.dll
-..\%__SRC%\srs\sfx.srs %_DEST%\res%_EXT%\sfx.srs
-..\%COMMON_OUTDIR%\srs\sfx_srs.hid %COMMON_DEST%\res%_EXT%\sfx_srs.hid
-..\%__SRC%\srs\sfxslots.srs %_DEST%\res%_EXT%\sfxslots.srs
-..\%COMMON_OUTDIR%\srs\sfxslots_srs.hid %COMMON_DEST%\res%_EXT%\sfxslots_srs.hid
-..\util\sfx.xml %_DEST%\xml%_EXT%\sfx.xml
-..\%__SRC%\misc\sfx2.csv %_DEST%\inc%_EXT%\sfx2.csv
-
-..\inc\sfx2\*.h %_DEST%\inc%_EXT%\sfx2\*.h
-..\inc\sfx2\*.hxx %_DEST%\inc%_EXT%\sfx2\*.hxx
-..\inc\sfx2\*.hrc %_DEST%\inc%_EXT%\sfx2\*.hrc
-
-..\sdi\sfx.sdi %_DEST%\inc%_EXT%\sfx2\sfx.sdi
-..\sdi\sfxitems.sdi %_DEST%\inc%_EXT%\sfx2\sfxitems.sdi
-..\inc\brokenpackageint.hxx %_DEST%\inc%_EXT%\sfx2\brokenpackageint.hxx
-..\inc\dinfedt.hxx %_DEST%\inc%_EXT%\sfx2\dinfedt.hxx
-..\inc\imgmgr.hxx %_DEST%\inc%_EXT%\sfx2\imgmgr.hxx
-..\inc\mieclip.hxx %_DEST%\inc%_EXT%\sfx2\mieclip.hxx
-..\inc\minfitem.hxx %_DEST%\inc%_EXT%\sfx2\minfitem.hxx
-..\inc\sfxhelp.hxx %_DEST%\inc%_EXT%\sfx2\sfxhelp.hxx
-..\inc\stbitem.hxx %_DEST%\inc%_EXT%\sfx2\stbitem.hxx
-..\inc\tplpitem.hxx %_DEST%\inc%_EXT%\sfx2\tplpitem.hxx
-..\inc\viewfac.hxx %_DEST%\inc%_EXT%\sfx2\viewfac.hxx
-..\inc\basmgr.hxx %_DEST%\inc%_EXT%\sfx2\basmgr.hxx
-..\inc\imagemgr.hxx %_DEST%\inc%_EXT%\sfx2\imagemgr.hxx
-..\inc\QuerySaveDocument.hxx %_DEST%\inc%_EXT%\sfx2\QuerySaveDocument.hxx
-..\inc\mailmodelapi.hxx %_DEST%\inc%_EXT%\sfx2\mailmodelapi.hxx
-..\inc\docinsert.hxx %_DEST%\inc%_EXT%\sfx2\docinsert.hxx
-
-..\%__SRC%\misc\sfx.component %_DEST%\xml%_EXT%\sfx.component
diff --git a/sfx2/source/config/makefile.mk b/sfx2/prj/makefile.mk
index d090babd1505..c73a3d944bbf 100644
--- a/sfx2/source/config/makefile.mk
+++ b/sfx2/prj/makefile.mk
@@ -25,23 +25,16 @@
#
#*************************************************************************
-PRJ=..$/..
+PRJ=..
+TARGET=prj
-PRJNAME=sfx2
-TARGET=config
-ENABLE_EXCEPTIONS=TRUE
+.INCLUDE : settings.mk
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/evntconf.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
+.IF "$(VERBOSE)"!=""
+VERBOSEFLAG :=
+.ELSE
+VERBOSEFLAG := -s
+.ENDIF
+all:
+ cd $(PRJ) && $(GNUMAKE) $(VERBOSEFLAG) -r -j$(MAXPROCESS) $(gb_MAKETARGET)
diff --git a/sfx2/qa/complex/docinfo/makefile.mk b/sfx2/qa/complex/docinfo/makefile.mk
deleted file mode 100644
index 626b648a6d06..000000000000
--- a/sfx2/qa/complex/docinfo/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = sfx2
-TARGET = qa_complex_docinfo
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/docinfo
-JAVATESTFILES = \
- DocumentProperties.java
-
-JAVAFILES = $(JAVATESTFILES)
-
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
-
-
-
-
diff --git a/sfx2/qa/complex/framework/DocHelper/makefile.mk b/sfx2/qa/complex/framework/DocHelper/makefile.mk
deleted file mode 100644
index ad614cfca3f8..000000000000
--- a/sfx2/qa/complex/framework/DocHelper/makefile.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ../../../..
-TARGET = DocHelper
-PRJNAME = $(TARGET)
-PACKAGE = complex/framework/dochelper
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = \
- DialogThread.java \
- WriterHelper.java
-
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:b).class)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/qa/complex/framework/makefile.mk b/sfx2/qa/complex/framework/makefile.mk
deleted file mode 100644
index 325135b9133c..000000000000
--- a/sfx2/qa/complex/framework/makefile.mk
+++ /dev/null
@@ -1,65 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = sfx2
-TARGET = qa_complex_framework
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/framework
-JAVATESTFILES = \
- DocumentPropertiesTest.java \
- DocumentMetadataAccessTest.java \
- CheckGlobalEventBroadcaster_writer1.java
-
-JAVAFILES = $(JAVATESTFILES) \
- TestDocument.java \
- WriterHelper.java \
- DialogThread.java
-
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-
-# Sample how to debug
-# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
-
-
diff --git a/sfx2/qa/complex/standalonedocumentinfo/makefile.mk b/sfx2/qa/complex/standalonedocumentinfo/makefile.mk
deleted file mode 100644
index aade48dbd789..000000000000
--- a/sfx2/qa/complex/standalonedocumentinfo/makefile.mk
+++ /dev/null
@@ -1,56 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = sfx2
-TARGET = qa_complex_standalonedocumentinfo
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = complex/standalonedocumentinfo
-JAVATESTFILES = \
- StandaloneDocumentInfoUnitTest.java
-
-JAVAFILES = $(JAVATESTFILES) \
- StandaloneDocumentInfoTest.java \
- Test01.java \
- TestHelper.java
-
-JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
diff --git a/sfx2/qa/cppunit/makefile.mk b/sfx2/qa/cppunit/makefile.mk
deleted file mode 100644
index dce0b86a0619..000000000000
--- a/sfx2/qa/cppunit/makefile.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=../..
-PRJNAME=sfx2
-TARGET=qa_cppunit
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-#building with stlport, but cppunit was not built with stlport
-.IF "$(USE_SYSTEM_STL)"!="YES"
-.IF "$(SYSTEM_CPPUNIT)"=="YES"
-CFLAGSCXX+=-DADAPT_EXT_STL
-.ENDIF
-.ENDIF
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-DLLPRE = # no leading "lib" on .so files
-
-# --- Libs ---------------------------------------------------------
-
-SHL1OBJS= \
- $(SLO)/test_metadatable.obj \
-
-
-SHL1STDLIBS= \
- $(CPPUNITLIB) \
- $(SALLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(VCLLIB) \
- $(SFXLIB) \
-
-
-SHL1TARGET= test_metadatable
-SHL1RPATH = NONE
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)/$(SHL1TARGET).def
-DEF1NAME=$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
-SHL1VERSIONMAP= version.map
-
-# --- All object files ---------------------------------------------
-
-SLOFILES= \
- $(SHL1OBJS) \
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : _cppunit.mk
-
diff --git a/sfx2/qa/unoapi/makefile.mk b/sfx2/qa/unoapi/makefile.mk
deleted file mode 100644
index ea91ba4d1c44..000000000000
--- a/sfx2/qa/unoapi/makefile.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#*************************************************************************
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#***********************************************************************/
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../..
-PRJNAME = sfx2
-TARGET = qa_unoapi
-
-.IF "$(OOO_JUNIT_JAR)" != ""
-PACKAGE = org/openoffice/sfx2/qa/unoapi
-JAVATESTFILES = Test.java
-JAVAFILES = $(JAVATESTFILES)
-JARFILES = OOoRunner.jar ridl.jar test.jar
-EXTRAJARFILES = $(OOO_JUNIT_JAR)
-.END
-
-.INCLUDE: settings.mk
-.INCLUDE: target.mk
-.INCLUDE: installationtest.mk
-
-ALLTAR : javatest
-
-.END
diff --git a/sfx2/sdi/makefile.mk b/sfx2/sdi/makefile.mk
deleted file mode 100644
index c02e51eb6998..000000000000
--- a/sfx2/sdi/makefile.mk
+++ /dev/null
@@ -1,59 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=sfx2
-TARGET=sfxslots
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-.IF "$(L10N_framework)"==""
-
-SDI1NAME=$(TARGET)
-SDI1EXPORT=sfx
-#SIDHRCNAME=sfx.hrc unused???
-
-.ENDIF
-# --- Files --------------------------------------------------------
-
-SVSDI1DEPEND= \
- $(PRJ)$/inc$/sfx2$/sfxsids.hrc \
- sfx.sdi \
- appslots.sdi \
- sfxslots.sdi \
- docslots.sdi \
- viwslots.sdi \
- frmslots.sdi
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi
index 40d35ab4d702..aadd57185880 100644
--- a/sfx2/sdi/sfx.sdi
+++ b/sfx2/sdi/sfx.sdi
@@ -5317,7 +5317,7 @@ SfxBoolItem SaveAll SID_SAVEDOCS
//--------------------------------------------------------------------------
SfxBoolItem SaveAs SID_SAVEASDOC
-(SfxStringItem URL SID_FILE_NAME,SfxStringItem FilterName SID_FILTER_NAME,SfxStringItem Password SID_PASSWORD,SfxStringItem FilterOptions SID_FILE_FILTEROPTIONS,SfxStringItem VersionComment SID_DOCINFO_COMMENTS,SfxStringItem VersionAuthor SID_DOCINFO_AUTHOR,SfxBoolItem Overwrite SID_OVERWRITE,SfxBoolItem Unpacked SID_UNPACK,SfxBoolItem SaveTo SID_SAVETO)
+(SfxStringItem URL SID_FILE_NAME,SfxStringItem FilterName SID_FILTER_NAME,SfxStringItem Password SID_PASSWORD,SfxBoolItem PasswordInteraction SID_PASSWORDINTERACTION,SfxStringItem FilterOptions SID_FILE_FILTEROPTIONS,SfxStringItem VersionComment SID_DOCINFO_COMMENTS,SfxStringItem VersionAuthor SID_DOCINFO_AUTHOR,SfxBoolItem Overwrite SID_OVERWRITE,SfxBoolItem Unpacked SID_UNPACK,SfxBoolItem SaveTo SID_SAVETO)
[
/* flags: */
AutoUpdate = FALSE,
diff --git a/sfx2/source/appl/app.cxx b/sfx2/source/appl/app.cxx
index 7e4e9921573a..727d9f17c493 100644
--- a/sfx2/source/appl/app.cxx
+++ b/sfx2/source/appl/app.cxx
@@ -43,14 +43,10 @@
#include <basic/basrdll.hxx>
#include <svtools/asynclink.hxx>
#include <svl/stritem.hxx>
-#ifndef _SOUND_HXX //autogen
#include <vcl/sound.hxx>
-#endif
#include <svl/eitem.hxx>
#include <svl/urlbmk.hxx>
-#ifndef _MSGBOX_HXX //autogen
#include <vcl/msgbox.hxx>
-#endif
#include <svtools/sfxecode.hxx>
#include <svtools/ehdl.hxx>
@@ -58,8 +54,6 @@
#include <tools/urlobj.hxx>
#include <unotools/tempfile.hxx>
#include <osl/file.hxx>
-#ifndef GCC
-#endif
#define _SVSTDARR_STRINGSDTOR
#include <svl/svstdarr.hxx>
@@ -78,23 +72,18 @@
#include <com/sun/star/frame/XFramesSupplier.hpp>
#include <com/sun/star/container/XIndexAccess.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
-#ifndef _UNOTOOLS_PROCESSFACTORY_HXX
#include <comphelper/processfactory.hxx>
-#endif
#include <com/sun/star/uri/XUriReferenceFactory.hpp>
#include <com/sun/star/uri/XVndSunStarScriptUrl.hpp>
-
#include <basic/basmgr.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <vcl/svapp.hxx>
-
#include <rtl/logfile.hxx>
-
#include <sfx2/appuno.hxx>
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include <sfx2/request.hxx>
#include "sfxtypes.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "arrdecl.hxx"
#include <sfx2/progress.hxx>
#include <sfx2/objsh.hxx>
@@ -120,9 +109,10 @@
#include <sfx2/module.hxx>
#include <sfx2/tbxctrl.hxx>
#include <sfx2/sfxdlg.hxx>
-#include "stbitem.hxx"
+#include "sfx2/stbitem.hxx"
#include "eventsupplier.hxx"
#include <sfx2/dockwin.hxx>
+#include <tools/svlibrary.hxx>
#ifdef DBG_UTIL
#include <sfx2/tbxctrl.hxx>
@@ -291,7 +281,7 @@ void SfxPropertyHandler::Property( ApplicationProperty& rProp )
#include <framework/imageproducer.hxx>
#include <framework/acceleratorinfo.hxx>
#include <framework/sfxhelperfunctions.hxx>
-#include "imagemgr.hxx"
+#include "sfx2/imagemgr.hxx"
#include "fwkhelper.hxx"
::osl::Mutex SfxApplication::gMutex;
@@ -493,7 +483,7 @@ void SfxApplication::SetViewFrame_Impl( SfxViewFrame *pFrame )
if ( pOldContainerFrame )
{
if ( bTaskActivate )
- NotifyEvent( SfxEventHint( SFX_EVENT_DEACTIVATEDOC, GlobalEventConfig::GetEventName(STR_EVENT_DEACTIVATEDOC), pOldContainerFrame->GetObjectShell() ) );
+ NotifyEvent( SfxViewEventHint( SFX_EVENT_DEACTIVATEDOC, GlobalEventConfig::GetEventName(STR_EVENT_DEACTIVATEDOC), pOldContainerFrame->GetObjectShell(), pOldContainerFrame->GetFrame().GetController() ) );
pOldContainerFrame->DoDeactivate( bTaskActivate, pFrame );
if( pOldContainerFrame->GetProgress() )
@@ -517,7 +507,7 @@ void SfxApplication::SetViewFrame_Impl( SfxViewFrame *pFrame )
if ( bTaskActivate && pNewContainerFrame->GetObjectShell() )
{
pNewContainerFrame->GetObjectShell()->PostActivateEvent_Impl( pNewContainerFrame );
- NotifyEvent(SfxEventHint(SFX_EVENT_ACTIVATEDOC, GlobalEventConfig::GetEventName(STR_EVENT_ACTIVATEDOC), pNewContainerFrame->GetObjectShell() ) );
+ NotifyEvent(SfxViewEventHint(SFX_EVENT_ACTIVATEDOC, GlobalEventConfig::GetEventName(STR_EVENT_ACTIVATEDOC), pNewContainerFrame->GetObjectShell(), pNewContainerFrame->GetFrame().GetController() ) );
}
SfxProgress *pProgress = pNewContainerFrame->GetProgress();
@@ -736,9 +726,7 @@ extern "C" { static void SAL_CALL thisModule() {} }
IMPL_LINK( SfxApplication, GlobalBasicErrorHdl_Impl, StarBASIC*, pStarBasic )
{
// get basctl dllname
- String sLibName = String::CreateFromAscii( STRING( DLL_NAME ) );
- sLibName.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "sfx" ) ), String( RTL_CONSTASCII_USTRINGPARAM( "basctl" ) ) );
- ::rtl::OUString aLibName( sLibName );
+ static ::rtl::OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( SVLIBRARY( "basctl" ) ) );
// load module
oslModule handleMod = osl_loadModuleRelative(
@@ -827,9 +815,7 @@ SfxApplication::ChooseScript()
void SfxApplication::MacroOrganizer( INT16 nTabId )
{
// get basctl dllname
- String sLibName = String::CreateFromAscii( STRING( DLL_NAME ) );
- sLibName.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "sfx" ) ), String( RTL_CONSTASCII_USTRINGPARAM( "basctl" ) ) );
- ::rtl::OUString aLibName( sLibName );
+ static ::rtl::OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( SVLIBRARY( "basctl" ) ) );
// load module
oslModule handleMod = osl_loadModuleRelative(
diff --git a/sfx2/source/appl/app.src b/sfx2/source/appl/app.src
index 47750cd73f78..f8a387bba79b 100644
--- a/sfx2/source/appl/app.src
+++ b/sfx2/source/appl/app.src
@@ -31,6 +31,45 @@
#include "app.hrc"
#include "helpid.hrc"
+String STR_NONAME
+{
+ Text [ en-US ] = "Untitled" ;
+};
+String STR_CLOSE
+{
+ Text [ en-US ] = "Close" ;
+};
+String STR_STYLE_FILTER_AUTO
+{
+ Text [ en-US ] = "Automatic" ;
+};
+String STR_STANDARD_SHORTCUT
+{
+ Text [ en-US ] = "Standard" ;
+};
+String STR_BYTES
+{
+ Text [ en-US ] = "Bytes" ;
+};
+String STR_KB
+{
+ Text [ en-US ] = "KB" ;
+};
+String STR_MB
+{
+ Text [ en-US ] = "MB" ;
+};
+String STR_GB
+{
+ Text [ en-US ] = "GB" ;
+};
+QueryBox MSG_QUERY_LASTVERSION
+{
+ Buttons = WB_YES_NO ;
+ DefButton = WB_DEF_NO ;
+ Message [ en-US ] = "Cancel all changes?" ;
+};
+
InfoBox RID_DOCALREADYLOADED_DLG
{
Message [ en-US ] = "Document already open." ;
@@ -891,19 +930,37 @@ Image IMG_MISSING_4
ImageBitmap = Bitmap { File = "sn064.bmp" ; };
};
+String STR_STANDARD
+{
+ Text [ en-US ] = "Standard" ;
+};
+
String RID_SVXSTR_FILELINK
{
Text [ en-US ] = "Document" ;
};
+
+String STR_NONE
+{
+ Text [ en-US ] = "- None -" ;
+};
String RID_SVXSTR_GRAFIKLINK
{
Text [ en-US ] = "Graphic" ;
};
+String STR_SFX_FILTERNAME_ALL
+{
+ Text [ en-US ] = "All files (*.*)" ;
+};
String RID_SVXSTR_EDITGRFLINK
{
Text [ en-US ] = "Link graphics" ;
};
-
+// i66948 used in project scripting
+String STR_ERRUNOEVENTBINDUNG
+{
+ Text [ en-US ] = "An appropriate component method %1\ncould not be found.\n\nCheck spelling of method name.";
+};
String RID_SVXSTR_GRFILTER_OPENERROR
{
Text [ en-US ] = "Graphics file cannot be opened" ;
diff --git a/sfx2/source/appl/appbas.cxx b/sfx2/source/appl/appbas.cxx
index 10c4a6bc6797..7e775cbbb502 100644
--- a/sfx2/source/appl/appbas.cxx
+++ b/sfx2/source/appl/appbas.cxx
@@ -60,7 +60,7 @@
#include "arrdecl.hxx"
#include <sfx2/app.hxx>
#include "sfxtypes.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/msg.hxx>
#include <sfx2/msgpool.hxx>
#include <sfx2/progress.hxx>
@@ -69,8 +69,8 @@
#include <sfx2/viewfrm.hxx>
#include <sfx2/viewsh.hxx>
#include <sfx2/dispatch.hxx>
-#include "tplpitem.hxx"
-#include "minfitem.hxx"
+#include "sfx2/tplpitem.hxx"
+#include "sfx2/minfitem.hxx"
#include "app.hrc"
#include <sfx2/evntconf.hxx>
#include <sfx2/macrconf.hxx>
@@ -78,8 +78,8 @@
#include <sfx2/dinfdlg.hxx>
#include "appdata.hxx"
#include "appbas.hxx"
-#include "sfxhelp.hxx"
-#include "basmgr.hxx"
+#include "sfx2/sfxhelp.hxx"
+#include "sfx2/basmgr.hxx"
#include "sorgitm.hxx"
#include "appbaslib.hxx"
#include <basic/basicmanagerrepository.hxx>
diff --git a/sfx2/source/appl/appbaslib.cxx b/sfx2/source/appl/appbaslib.cxx
index 96c998b2674d..7f4e8cedb637 100644..100755
--- a/sfx2/source/appl/appbaslib.cxx
+++ b/sfx2/source/appl/appbaslib.cxx
@@ -25,6 +25,9 @@
*
************************************************************************/
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sfx2.hxx"
+
#include "appbaslib.hxx"
#include <sfx2/sfxuno.hxx>
diff --git a/sfx2/source/appl/appcfg.cxx b/sfx2/source/appl/appcfg.cxx
index 0b5e94ea24f0..c876db373d35 100644
--- a/sfx2/source/appl/appcfg.cxx
+++ b/sfx2/source/appl/appcfg.cxx
@@ -78,7 +78,7 @@
#include <sfx2/app.hxx>
#include <sfx2/docfile.hxx>
#include <sfx2/viewfrm.hxx>
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include "sfxtypes.hxx"
#include <sfx2/dispatch.hxx>
#include <sfx2/objsh.hxx>
@@ -91,7 +91,7 @@
#include <sfx2/macrconf.hxx>
#include "helper.hxx" // SfxContentHelper::...
#include "app.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "shutdownicon.hxx"
using namespace ::com::sun::star::uno;
diff --git a/sfx2/source/appl/appdata.cxx b/sfx2/source/appl/appdata.cxx
index 38ea69280c49..32b56717293c 100644
--- a/sfx2/source/appl/appdata.cxx
+++ b/sfx2/source/appl/appdata.cxx
@@ -57,7 +57,7 @@
#include <sfx2/request.hxx>
#include "referers.hxx"
#include "app.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "objshimp.hxx"
#include <sfx2/appuno.hxx>
#include "imestatuswindow.hxx"
diff --git a/sfx2/source/appl/appinit.cxx b/sfx2/source/appl/appinit.cxx
index 08023c5414a6..2aa19901d87c 100644
--- a/sfx2/source/appl/appinit.cxx
+++ b/sfx2/source/appl/appinit.cxx
@@ -65,9 +65,6 @@
#include <rtl/logfile.hxx>
#include <vcl/edit.hxx>
-#ifndef GCC
-#endif
-
#include <sfx2/unoctitm.hxx>
#include "app.hrc"
#include "sfxlocal.hrc"
@@ -81,14 +78,15 @@
#include <sfx2/mnumgr.hxx>
#include <sfx2/msgpool.hxx>
#include <sfx2/progress.hxx>
-#include "sfxhelp.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxhelp.hxx"
+#include "sfx2/sfxresid.hxx"
#include "sfxtypes.hxx"
#include <sfx2/viewsh.hxx>
#include "nochaos.hxx"
#include <sfx2/fcontnr.hxx>
#include "helper.hxx" // SfxContentHelper::Kill()
#include "sfxpicklist.hxx"
+#include <tools/svlibrary.hxx>
#ifdef UNX
#define stricmp(a,b) strcmp(a,b)
@@ -215,10 +213,7 @@ String GetSpecialCharsForEdit(Window* pParent, const Font& rFont)
{
bDetermineFunction = true;
- String sLibName = String::CreateFromAscii( STRING( DLL_NAME ) );
- sLibName.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "sfx" ) ), String( RTL_CONSTASCII_USTRINGPARAM( "cui" ) ) );
-
- rtl::OUString aLibName( sLibName );
+ static ::rtl::OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( SVLIBRARY( "cui" ) ) );
oslModule handleMod = osl_loadModuleRelative(
&thisModule, aLibName.pData, 0 );
diff --git a/sfx2/source/appl/appmain.cxx b/sfx2/source/appl/appmain.cxx
index cf097b900b52..546b6b1c6558 100644
--- a/sfx2/source/appl/appmain.cxx
+++ b/sfx2/source/appl/appmain.cxx
@@ -53,7 +53,7 @@
#include <sfx2/app.hxx>
#include "arrdecl.hxx"
#include <sfx2/dispatch.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/fcontnr.hxx>
#include <sfx2/viewsh.hxx>
#include "intro.hxx"
diff --git a/sfx2/source/appl/appmisc.cxx b/sfx2/source/appl/appmisc.cxx
index 70147e8d9146..94b921f8122e 100644
--- a/sfx2/source/appl/appmisc.cxx
+++ b/sfx2/source/appl/appmisc.cxx
@@ -64,12 +64,12 @@
#include <unotools/moduleoptions.hxx>
#include <osl/file.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/app.hxx>
#include "appdata.hxx"
#include "arrdecl.hxx"
#include <sfx2/tbxctrl.hxx>
-#include "stbitem.hxx"
+#include "sfx2/stbitem.hxx"
#include <sfx2/mnuitem.hxx>
#include <sfx2/docfac.hxx>
#include <sfx2/docfile.hxx>
diff --git a/sfx2/source/appl/appopen.cxx b/sfx2/source/appl/appopen.cxx
index 89bb5f23f1de..0f4c1f651082 100644
--- a/sfx2/source/appl/appopen.cxx
+++ b/sfx2/source/appl/appopen.cxx
@@ -98,7 +98,7 @@
#include <sfx2/passwd.hxx>
#include "referers.hxx"
#include <sfx2/request.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/viewsh.hxx>
#include "app.hrc"
#include <sfx2/viewfrm.hxx>
@@ -239,8 +239,7 @@ void SetTemplate_Impl( const String &rFileName,
pDoc->ResetFromTemplate( rLongName, rFileName );
}
-//--------------------------------------------------------------------
-
+//====================================================================
class SfxDocPasswordVerifier : public ::comphelper::IDocPasswordVerifier
{
public:
@@ -248,21 +247,33 @@ public:
mxStorage( rxStorage ) {}
virtual ::comphelper::DocPasswordVerifierResult
- verifyPassword( const ::rtl::OUString& rPassword );
+ verifyPassword( const ::rtl::OUString& rPassword, uno::Sequence< beans::NamedValue >& o_rEncryptionData );
+ virtual ::comphelper::DocPasswordVerifierResult
+ verifyEncryptionData( const uno::Sequence< beans::NamedValue >& rEncryptionData );
+
private:
Reference< embed::XStorage > mxStorage;
};
-::comphelper::DocPasswordVerifierResult SfxDocPasswordVerifier::verifyPassword( const ::rtl::OUString& rPassword )
+//--------------------------------------------------------------------
+::comphelper::DocPasswordVerifierResult SfxDocPasswordVerifier::verifyPassword( const ::rtl::OUString& rPassword, uno::Sequence< beans::NamedValue >& o_rEncryptionData )
+{
+ o_rEncryptionData = ::comphelper::OStorageHelper::CreatePackageEncryptionData( rPassword );
+ return verifyEncryptionData( o_rEncryptionData );
+}
+
+
+//--------------------------------------------------------------------
+::comphelper::DocPasswordVerifierResult SfxDocPasswordVerifier::verifyEncryptionData( const uno::Sequence< beans::NamedValue >& rEncryptionData )
{
::comphelper::DocPasswordVerifierResult eResult = ::comphelper::DocPasswordVerifierResult_WRONG_PASSWORD;
try
{
- // check the password
- // if the password correct is the stream will be opened successfuly
+ // check the encryption data
+ // if the data correct is the stream will be opened successfuly
// and immediatelly closed
- ::comphelper::OStorageHelper::SetCommonStoragePassword( mxStorage, rPassword );
+ ::comphelper::OStorageHelper::SetCommonStorageEncryptionData( mxStorage, rEncryptionData );
mxStorage->openStreamElement(
::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "content.xml" ) ),
@@ -283,6 +294,8 @@ private:
return eResult;
}
+//====================================================================
+
//--------------------------------------------------------------------
sal_uInt32 CheckPasswd_Impl
@@ -341,14 +354,28 @@ sal_uInt32 CheckPasswd_Impl
if( xInteractionHandler.is() )
{
// use the comphelper password helper to request a password
+ ::rtl::OUString aPassword;
+ SFX_ITEMSET_ARG( pSet, pPasswordItem, SfxStringItem, SID_PASSWORD, sal_False);
+ if ( pPasswordItem )
+ aPassword = pPasswordItem->GetValue();
+
+ uno::Sequence< beans::NamedValue > aEncryptionData;
+ SFX_ITEMSET_ARG( pSet, pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA, sal_False);
+ if ( pEncryptionDataItem )
+ pEncryptionDataItem->GetValue() >>= aEncryptionData;
+
::rtl::OUString aDocumentName = INetURLObject( pFile->GetOrigURL() ).GetMainURL( INetURLObject::DECODE_WITH_CHARSET );
+
SfxDocPasswordVerifier aVerifier( xStorage );
- ::rtl::OUString aPassword = ::comphelper::DocPasswordHelper::requestAndVerifyDocPassword(
- aVerifier, ::rtl::OUString(), xInteractionHandler, aDocumentName, comphelper::DocPasswordRequestType_STANDARD );
+ aEncryptionData = ::comphelper::DocPasswordHelper::requestAndVerifyDocPassword(
+ aVerifier, aEncryptionData, aPassword, xInteractionHandler, aDocumentName, comphelper::DocPasswordRequestType_STANDARD );
+
+ pSet->ClearItem( SID_PASSWORD );
+ pSet->ClearItem( SID_ENCRYPTIONDATA );
- if ( aPassword.getLength() > 0 )
+ if ( aEncryptionData.getLength() > 0 )
{
- pSet->Put( SfxStringItem( SID_PASSWORD, aPassword ) );
+ pSet->Put( SfxUnoAnyItem( SID_ENCRYPTIONDATA, uno::makeAny( aEncryptionData ) ) );
try
{
diff --git a/sfx2/source/appl/appquit.cxx b/sfx2/source/appl/appquit.cxx
index 7399742d1e94..e7d0fd70bf58 100644
--- a/sfx2/source/appl/appquit.cxx
+++ b/sfx2/source/appl/appquit.cxx
@@ -50,7 +50,7 @@
#include <sfx2/dispatch.hxx>
#include <sfx2/printer.hxx>
#include "arrdecl.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/event.hxx>
#include <sfx2/macrconf.hxx>
#include <sfx2/mnumgr.hxx>
diff --git a/sfx2/source/appl/appreg.cxx b/sfx2/source/appl/appreg.cxx
index addace134362..9fd2dfc696d3 100644
--- a/sfx2/source/appl/appreg.cxx
+++ b/sfx2/source/appl/appreg.cxx
@@ -36,11 +36,11 @@
#include <sfx2/app.hxx>
#include "appdata.hxx"
#include "arrdecl.hxx"
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include <sfx2/templdlg.hxx>
#include "objmnctl.hxx"
#include "inettbc.hxx"
-#include "stbitem.hxx"
+#include "sfx2/stbitem.hxx"
#include <sfx2/navigat.hxx>
#include <sfx2/taskpane.hxx>
#include <sfx2/module.hxx>
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 439396d2ffa7..c1858c5b33fb 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -28,9 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sfx2.hxx"
#include <com/sun/star/uno/Reference.hxx>
-#ifndef _COM_SUN_STAR_LANG_XMultiServiceFactory_HPP_
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#endif
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/frame/DispatchResultEvent.hpp>
#include <com/sun/star/frame/DispatchResultState.hpp>
@@ -40,9 +38,7 @@
#include <com/sun/star/frame/XDispatchHelper.hpp>
#include <com/sun/star/frame/XFramesSupplier.hpp>
#include <com/sun/star/util/XCloseable.hpp>
-#ifndef _COM_SUN_STAR_UTIL_CloseVetoException_HPP_
#include <com/sun/star/util/CloseVetoException.hpp>
-#endif
#include <com/sun/star/frame/XLayoutManager.hpp>
#include <com/sun/star/document/XEmbeddedScripts.hpp>
#include <com/sun/star/embed/XStorage.hpp>
@@ -118,12 +114,12 @@
#include <sfx2/sfx.hrc>
#include "app.hrc"
#include <sfx2/passwd.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "arrdecl.hxx"
#include <sfx2/childwin.hxx>
#include "appdata.hxx"
#include <sfx2/macrconf.hxx>
-#include "minfitem.hxx"
+#include "sfx2/minfitem.hxx"
#include <sfx2/event.hxx>
#include <sfx2/module.hxx>
#include <sfx2/viewfrm.hxx>
@@ -132,7 +128,8 @@
#include <sfx2/sfxdlg.hxx>
#include <sfx2/dialogs.hrc>
#include "sorgitm.hxx"
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
+#include <tools/svlibrary.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::beans;
@@ -749,9 +746,7 @@ extern "C" { static void SAL_CALL thisModule() {} }
::rtl::OUString ChooseMacro( const Reference< XModel >& rxLimitToDocument, BOOL bChooseOnly, const ::rtl::OUString& rMacroDesc = ::rtl::OUString() )
{
// get basctl dllname
- String sLibName = String::CreateFromAscii( STRING( DLL_NAME ) );
- sLibName.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "sfx" ) ), String( RTL_CONSTASCII_USTRINGPARAM( "basctl" ) ) );
- ::rtl::OUString aLibName( sLibName );
+ static ::rtl::OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( SVLIBRARY( "basctl" ) ) );
// load module
oslModule handleMod = osl_loadModuleRelative(
@@ -771,9 +766,7 @@ extern "C" { static void SAL_CALL thisModule() {} }
void MacroOrganizer( INT16 nTabId )
{
// get basctl dllname
- String sLibName = String::CreateFromAscii( STRING( DLL_NAME ) );
- sLibName.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "sfx" ) ), String( RTL_CONSTASCII_USTRINGPARAM( "basctl" ) ) );
- ::rtl::OUString aLibName( sLibName );
+ static ::rtl::OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( SVLIBRARY( "basctl" ) ) );
// load module
oslModule handleMod = osl_loadModuleRelative(
diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx
index 7056cc48a704..60b684d7385f 100644
--- a/sfx2/source/appl/appuno.cxx
+++ b/sfx2/source/appl/appuno.cxx
@@ -52,9 +52,7 @@
#include <basic/sbxobj.hxx>
#include <basic/sberrors.hxx>
#include <basic/basmgr.hxx>
-#ifndef _BASIC_SBUNO_HXX
#include <basic/sbuno.hxx>
-#endif
#include <basic/sbxcore.hxx>
#include <svl/ownlist.hxx>
@@ -97,6 +95,7 @@
#include <osl/mutex.hxx>
#include <comphelper/sequence.hxx>
#include <rtl/ustrbuf.hxx>
+#include <comphelper/interaction.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::ucb;
@@ -106,9 +105,6 @@ using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::io;
-#ifndef GCC
-#endif
-
#include "sfxtypes.hxx"
#include <sfx2/sfxuno.hxx>
#include <sfx2/app.hxx>
@@ -131,7 +127,7 @@ using namespace ::com::sun::star::io;
#include "fltoptint.hxx"
#include <sfx2/docfile.hxx>
#include <sfx2/sfxbasecontroller.hxx>
-#include "brokenpackageint.hxx"
+#include <sfx2/brokenpackageint.hxx>
#include "eventsupplier.hxx"
#include "xpackcreator.hxx"
#include "plugin.hxx"
@@ -139,7 +135,6 @@ using namespace ::com::sun::star::io;
#include <ownsubfilterservice.hxx>
#include "SfxDocumentMetaData.hxx"
-
#define FRAMELOADER_SERVICENAME "com.sun.star.frame.FrameLoader"
#define PROTOCOLHANDLER_SERVICENAME "com.sun.star.frame.ProtocolHandler"
@@ -165,7 +160,7 @@ static char const sDontEdit[] = "DontEdit";
static char const sSilent[] = "Silent";
static char const sJumpMark[] = "JumpMark";
static char const sFileName[] = "FileName";
-static char const sSalvageURL[] = "SalvagedFile";
+static char const sSalvagedFile[] = "SalvagedFile";
static char const sStatusInd[] = "StatusIndicator";
static char const sModel[] = "Model";
static char const sFrame[] = "Frame";
@@ -191,6 +186,10 @@ static char const sUseSystemDialog[] = "UseSystemDialog";
static char const sStandardDir[] = "StandardDir";
static char const sBlackList[] = "BlackList";
static char const sModifyPasswordInfo[] = "ModifyPasswordInfo";
+static char const sSuggestedSaveAsDir[] = "SuggestedSaveAsDir";
+static char const sSuggestedSaveAsName[] = "SuggestedSaveAsName";
+static char const sEncryptionData[] = "EncryptionData";
+
void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& rArgs, SfxAllItemSet& rSet, const SfxSlot* pSlot )
{
@@ -685,7 +684,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
- DBG_ASSERT( bOK, "invalid type or value for StanadardDir" );
+ DBG_ASSERT( bOK, "invalid type or value for StandardDir" );
if (bOK)
rSet.Put( SfxStringItem( SID_STANDARD_DIR, sVal ) );
}
@@ -709,11 +708,11 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_FILE_NAME, sVal ) );
}
- else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sSalvageURL)) )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sSalvagedFile)) )
{
::rtl::OUString sVal;
sal_Bool bOK = (rProp.Value >>= sVal);
- DBG_ASSERT( bOK, "invalid type or value for SalvageURL" );
+ DBG_ASSERT( bOK, "invalid type or value for SalvagedFile" );
if (bOK)
rSet.Put( SfxStringItem( SID_DOC_SALVAGE, sVal ) );
}
@@ -721,7 +720,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
{
::rtl::OUString sVal;
sal_Bool bOK = (rProp.Value >>= sVal);
- DBG_ASSERT( bOK, "invalid type or value for SalvageURL" );
+ DBG_ASSERT( bOK, "invalid type or value for FolderName" );
if (bOK)
rSet.Put( SfxStringItem( SID_PATH, sVal ) );
}
@@ -850,6 +849,26 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
{
rSet.Put( SfxUnoAnyItem( SID_MODIFYPASSWORDINFO, rProp.Value ) );
}
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sEncryptionData)) )
+ {
+ rSet.Put( SfxUnoAnyItem( SID_ENCRYPTIONDATA, rProp.Value ) );
+ }
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sSuggestedSaveAsDir)) )
+ {
+ ::rtl::OUString sVal;
+ sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
+ DBG_ASSERT( bOK, "invalid type or value for SuggestedSaveAsDir" );
+ if (bOK)
+ rSet.Put( SfxStringItem( SID_SUGGESTEDSAVEASDIR, sVal ) );
+ }
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sSuggestedSaveAsName)) )
+ {
+ ::rtl::OUString sVal;
+ sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
+ DBG_ASSERT( bOK, "invalid type or value for SuggestedSaveAsName" );
+ if (bOK)
+ rSet.Put( SfxStringItem( SID_SUGGESTEDSAVEASNAME, sVal ) );
+ }
#ifdef DBG_UTIL
else
--nFoundArgs;
@@ -1064,6 +1083,13 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& rSet, ::com::sun::sta
nAdditional++;
if ( rSet.GetItemState( SID_MODIFYPASSWORDINFO ) == SFX_ITEM_SET )
nAdditional++;
+ if ( rSet.GetItemState( SID_SUGGESTEDSAVEASDIR ) == SFX_ITEM_SET )
+ nAdditional++;
+ if ( rSet.GetItemState( SID_ENCRYPTIONDATA ) == SFX_ITEM_SET )
+ nAdditional++;
+ nAdditional++;
+ if ( rSet.GetItemState( SID_SUGGESTEDSAVEASNAME ) == SFX_ITEM_SET )
+ nAdditional++;
// consider additional arguments
nProps += nAdditional;
@@ -1199,12 +1225,18 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& rSet, ::com::sun::sta
continue;
if ( nId == SID_NOAUTOSAVE )
continue;
+ if ( nId == SID_ENCRYPTIONDATA )
+ continue;
// used only internally
if ( nId == SID_SAVETO )
continue;
if ( nId == SID_MODIFYPASSWORDINFO )
continue;
+ if ( nId == SID_SUGGESTEDSAVEASDIR )
+ continue;
+ if ( nId == SID_SUGGESTEDSAVEASNAME )
+ continue;
}
ByteString aDbg( "Unknown item detected: ");
@@ -1489,7 +1521,7 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& rSet, ::com::sun::sta
}
if ( rSet.GetItemState( SID_DOC_SALVAGE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sSalvageURL));
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sSalvagedFile));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_PATH, sal_False, &pItem ) == SFX_ITEM_SET )
@@ -1568,6 +1600,21 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& rSet, ::com::sun::sta
pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sModifyPasswordInfo));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
+ if ( rSet.GetItemState( SID_ENCRYPTIONDATA, sal_False, &pItem ) == SFX_ITEM_SET )
+ {
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sEncryptionData));
+ pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
+ }
+ if ( rSet.GetItemState( SID_SUGGESTEDSAVEASDIR, sal_False, &pItem ) == SFX_ITEM_SET )
+ {
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sSuggestedSaveAsDir));
+ pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
+ }
+ if ( rSet.GetItemState( SID_SUGGESTEDSAVEASNAME, sal_False, &pItem ) == SFX_ITEM_SET )
+ {
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sSuggestedSaveAsName));
+ pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
+ }
}
}
@@ -1873,8 +1920,8 @@ ErrCode SfxMacroLoader::loadMacro( const ::rtl::OUString& rURL, com::sun::star::
}
if ( pSh && pSh->GetModel().is() )
- // remove flag for modal mode
- pSh->SetMacroMode_Impl( FALSE );
+ // remove flag for modal mode
+ pSh->SetMacroMode_Impl( FALSE );
}
else
nErr = ERRCODE_BASIC_PROC_UNDEFINED;
@@ -2216,18 +2263,18 @@ RequestFilterOptions::RequestFilterOptions( ::com::sun::star::uno::Reference< ::
::rtl::OUString temp;
::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > temp2;
::com::sun::star::document::FilterOptionsRequest aOptionsRequest( temp,
- temp2,
+ temp2,
rModel,
rProperties );
- m_aRequest <<= aOptionsRequest;
+ m_aRequest <<= aOptionsRequest;
- m_pAbort = new ContinuationAbort;
- m_pOptions = new FilterOptionsContinuation;
+ m_pAbort = new comphelper::OInteractionAbort;
+ m_pOptions = new FilterOptionsContinuation;
- m_lContinuations.realloc( 2 );
- m_lContinuations[0] = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >( m_pAbort );
- m_lContinuations[1] = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >( m_pOptions );
+ m_lContinuations.realloc( 2 );
+ m_lContinuations[0] = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >( m_pAbort );
+ m_lContinuations[1] = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >( m_pOptions );
}
::com::sun::star::uno::Any SAL_CALL RequestFilterOptions::getRequest()
@@ -2244,107 +2291,139 @@ RequestFilterOptions::RequestFilterOptions( ::com::sun::star::uno::Reference< ::
}
//=========================================================================
+class RequestPackageReparation_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
+{
+ ::com::sun::star::uno::Any m_aRequest;
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations;
+ comphelper::OInteractionApprove* m_pApprove;
+ comphelper::OInteractionDisapprove* m_pDisapprove;
-RequestPackageReparation::RequestPackageReparation( ::rtl::OUString aName )
+public:
+ RequestPackageReparation_Impl( ::rtl::OUString aName );
+ sal_Bool isApproved();
+ virtual ::com::sun::star::uno::Any SAL_CALL getRequest() throw( ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations()
+ throw( ::com::sun::star::uno::RuntimeException );
+};
+
+RequestPackageReparation_Impl::RequestPackageReparation_Impl( ::rtl::OUString aName )
{
::rtl::OUString temp;
::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > temp2;
::com::sun::star::document::BrokenPackageRequest aBrokenPackageRequest( temp,
temp2,
aName );
-
m_aRequest <<= aBrokenPackageRequest;
-
- m_pApprove = new ContinuationApprove;
- m_pDisapprove = new ContinuationDisapprove;
-
+ m_pApprove = new comphelper::OInteractionApprove;
+ m_pDisapprove = new comphelper::OInteractionDisapprove;
m_lContinuations.realloc( 2 );
m_lContinuations[0] = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >( m_pApprove );
m_lContinuations[1] = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >( m_pDisapprove );
}
-/*uno::*/Any SAL_CALL RequestPackageReparation::queryInterface( const /*uno::*/Type& rType ) throw (RuntimeException)
+sal_Bool RequestPackageReparation_Impl::isApproved()
{
- return ::cppu::queryInterface ( rType,
- // OWeakObject interfaces
- dynamic_cast< XInterface* > ( (XInteractionRequest *) this ),
- static_cast< XWeak* > ( this ),
- // my own interfaces
- static_cast< XInteractionRequest* > ( this ) );
+ return m_pApprove->wasSelected();
}
-void SAL_CALL RequestPackageReparation::acquire( ) throw ()
+::com::sun::star::uno::Any SAL_CALL RequestPackageReparation_Impl::getRequest()
+ throw( ::com::sun::star::uno::RuntimeException )
{
- OWeakObject::acquire();
+ return m_aRequest;
}
-void SAL_CALL RequestPackageReparation::release( ) throw ()
+::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > >
+ SAL_CALL RequestPackageReparation_Impl::getContinuations()
+ throw( ::com::sun::star::uno::RuntimeException )
{
- OWeakObject::release();
+ return m_lContinuations;
}
-::com::sun::star::uno::Any SAL_CALL RequestPackageReparation::getRequest()
- throw( ::com::sun::star::uno::RuntimeException )
+RequestPackageReparation::RequestPackageReparation( ::rtl::OUString aName )
{
- return m_aRequest;
+ pImp = new RequestPackageReparation_Impl( aName );
+ pImp->acquire();
}
-::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > >
- SAL_CALL RequestPackageReparation::getContinuations()
- throw( ::com::sun::star::uno::RuntimeException )
+RequestPackageReparation::~RequestPackageReparation()
{
- return m_lContinuations;
+ pImp->release();
+}
+
+sal_Bool RequestPackageReparation::isApproved()
+{
+ return pImp->isApproved();
+}
+
+com::sun::star::uno::Reference < ::com::sun::star::task::XInteractionRequest > RequestPackageReparation::GetRequest()
+{
+ return com::sun::star::uno::Reference < ::com::sun::star::task::XInteractionRequest >(pImp);
}
//=========================================================================
+class NotifyBrokenPackage_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
+{
+ ::com::sun::star::uno::Any m_aRequest;
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations;
+ comphelper::OInteractionAbort* m_pAbort;
-NotifyBrokenPackage::NotifyBrokenPackage( ::rtl::OUString aName )
+public:
+ NotifyBrokenPackage_Impl( ::rtl::OUString aName );
+ sal_Bool isAborted();
+ virtual ::com::sun::star::uno::Any SAL_CALL getRequest() throw( ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations()
+ throw( ::com::sun::star::uno::RuntimeException );
+};
+
+NotifyBrokenPackage_Impl::NotifyBrokenPackage_Impl( ::rtl::OUString aName )
{
::rtl::OUString temp;
::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > temp2;
::com::sun::star::document::BrokenPackageRequest aBrokenPackageRequest( temp,
temp2,
aName );
-
m_aRequest <<= aBrokenPackageRequest;
-
- m_pAbort = new ContinuationAbort;
-
+ m_pAbort = new comphelper::OInteractionAbort;
m_lContinuations.realloc( 1 );
m_lContinuations[0] = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >( m_pAbort );
}
-/*uno::*/Any SAL_CALL NotifyBrokenPackage::queryInterface( const /*uno::*/Type& rType ) throw (RuntimeException)
+sal_Bool NotifyBrokenPackage_Impl::isAborted()
{
- return ::cppu::queryInterface ( rType,
- // OWeakObject interfaces
- dynamic_cast< XInterface* > ( (XInteractionRequest *) this ),
- static_cast< XWeak* > ( this ),
- // my own interfaces
- static_cast< XInteractionRequest* > ( this ) );
+ return m_pAbort->wasSelected();
}
-void SAL_CALL NotifyBrokenPackage::acquire( ) throw ()
+::com::sun::star::uno::Any SAL_CALL NotifyBrokenPackage_Impl::getRequest()
+ throw( ::com::sun::star::uno::RuntimeException )
{
- OWeakObject::acquire();
+ return m_aRequest;
}
-void SAL_CALL NotifyBrokenPackage::release( ) throw ()
+::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > >
+ SAL_CALL NotifyBrokenPackage_Impl::getContinuations()
+ throw( ::com::sun::star::uno::RuntimeException )
{
- OWeakObject::release();
+ return m_lContinuations;
}
-::com::sun::star::uno::Any SAL_CALL NotifyBrokenPackage::getRequest()
- throw( ::com::sun::star::uno::RuntimeException )
+NotifyBrokenPackage::NotifyBrokenPackage( ::rtl::OUString aName )
{
- return m_aRequest;
+ pImp = new NotifyBrokenPackage_Impl( aName );
+ pImp->acquire();
}
-::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > >
- SAL_CALL NotifyBrokenPackage::getContinuations()
- throw( ::com::sun::star::uno::RuntimeException )
+NotifyBrokenPackage::~NotifyBrokenPackage()
{
- return m_lContinuations;
+ pImp->release();
}
+sal_Bool NotifyBrokenPackage::isAborted()
+{
+ return pImp->isAborted();
+}
+
+com::sun::star::uno::Reference < ::com::sun::star::task::XInteractionRequest > NotifyBrokenPackage::GetRequest()
+{
+ return com::sun::star::uno::Reference < ::com::sun::star::task::XInteractionRequest >(pImp);
+}
diff --git a/sfx2/source/appl/fileobj.cxx b/sfx2/source/appl/fileobj.cxx
index 294d6ef17da5..cb53305e4b01 100644
--- a/sfx2/source/appl/fileobj.cxx
+++ b/sfx2/source/appl/fileobj.cxx
@@ -48,7 +48,7 @@
#include <comphelper/processfactory.hxx>
#include <sfx2/linkmgr.hxx>
#include <sfx2/opengrf.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "fileobj.hxx"
#include "app.hrc"
diff --git a/sfx2/source/appl/imagemgr.cxx b/sfx2/source/appl/imagemgr.cxx
index 3b26eae1858d..b9f4404d5555 100644
--- a/sfx2/source/appl/imagemgr.cxx
+++ b/sfx2/source/appl/imagemgr.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sfx2.hxx"
-#include "imagemgr.hxx"
+#include "sfx2/imagemgr.hxx"
#include <com/sun/star/frame/XController.hpp>
#include <com/sun/star/ui/XImageManager.hpp>
#include <com/sun/star/frame/XModuleManager.hpp>
@@ -41,7 +41,7 @@
#include <rtl/ustring.hxx>
#include <rtl/logfile.hxx>
-#include "imgmgr.hxx"
+#include "sfx2/imgmgr.hxx"
#include <sfx2/app.hxx>
#include <sfx2/unoctitm.hxx>
#include <sfx2/dispatch.hxx>
diff --git a/sfx2/source/appl/impldde.cxx b/sfx2/source/appl/impldde.cxx
index 20b7abb5d087..479e8ddea745 100644
--- a/sfx2/source/appl/impldde.cxx
+++ b/sfx2/source/appl/impldde.cxx
@@ -45,7 +45,7 @@
#include "dde.hrc"
#include <sfx2/lnkbase.hxx>
#include <sfx2/linkmgr.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <com/sun/star/uno/Any.hxx>
#include <com/sun/star/uno/Sequence.hxx>
diff --git a/sfx2/source/appl/linkmgr2.cxx b/sfx2/source/appl/linkmgr2.cxx
index ce69ba225157..934b4051a638 100644
--- a/sfx2/source/appl/linkmgr2.cxx
+++ b/sfx2/source/appl/linkmgr2.cxx
@@ -50,7 +50,7 @@
#include "fileobj.hxx"
#include "impldde.hxx"
#include "app.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#define _SVSTDARR_STRINGSDTOR
#include <svl/svstdarr.hxx>
diff --git a/sfx2/source/appl/lnkbase2.cxx b/sfx2/source/appl/lnkbase2.cxx
index 314832e2249d..6a51783a8a04 100644
--- a/sfx2/source/appl/lnkbase2.cxx
+++ b/sfx2/source/appl/lnkbase2.cxx
@@ -37,7 +37,7 @@
#include <sfx2/linkmgr.hxx>
#include <vcl/svapp.hxx>
#include "app.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/filedlghelper.hxx>
#include <tools/debug.hxx>
#include <svl/svdde.hxx>
diff --git a/sfx2/source/appl/makefile.mk b/sfx2/source/appl/makefile.mk
deleted file mode 100644
index 30f74355077a..000000000000
--- a/sfx2/source/appl/makefile.mk
+++ /dev/null
@@ -1,158 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sfx2
-TARGET=appl
-ENABLE_EXCEPTIONS=TRUE
-LIBTARGET=NO
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# w.g. compilerbugs
-.IF "$(GUI)"=="WNT"
-.IF "$(COM)"!="GCC"
-CFLAGS+=-Od
-CFLAGS+=-DENABLE_QUICKSTART_APPLET
-.ENDIF
-.ENDIF
-
-.IF "$(GUIBASE)"=="aqua"
-CFLAGS+=-DENABLE_QUICKSTART_APPLET
-.ENDIF
-
-.IF "$(GUI)"=="UNX"
- CDEFS+=-DDLL_NAME=libsfx$(DLLPOSTFIX)$(DLLPOST)
-.IF "$(ENABLE_SYSTRAY_GTK)"=="TRUE"
- PKGCONFIG_MODULES=gtk+-2.0
- .INCLUDE: pkg_config.mk
- CFLAGS+=$(PKGCONFIG_CFLAGS)
- CFLAGS+=-DENABLE_QUICKSTART_APPLET
- CDEFS+=-DPLUGIN_NAME=libqstart_gtk$(DLLPOSTFIX)$(DLLPOST)
-.ENDIF # "$(ENABLE_SYSTRAY_GTK)"=="TRUE"
-.ELSE
- CDEFS+=-DDLL_NAME=sfx$(DLLPOSTFIX)$(DLLPOST)
-.ENDIF
-
-# --- Files --------------------------------------------------------
-
-SRS1NAME=appl
-SRC1FILES = \
- app.src newhelp.src dde.src
-
-SRS2NAME=sfx
-SRC2FILES = \
- sfx.src
-
-SFX_OBJECTS = \
- $(SLO)$/app.obj \
- $(SLO)$/appbas.obj \
- $(SLO)$/appcfg.obj \
- $(SLO)$/appchild.obj \
- $(SLO)$/appdata.obj \
- $(SLO)$/appdde.obj \
- $(SLO)$/appinit.obj \
- $(SLO)$/appmain.obj \
- $(SLO)$/appmisc.obj \
- $(SLO)$/appopen.obj \
- $(SLO)$/appquit.obj \
- $(SLO)$/appreg.obj \
- $(SLO)$/appserv.obj \
- $(SLO)$/appuno.obj \
- $(SLO)$/appbaslib.obj \
- $(SLO)$/childwin.obj \
- $(SLO)$/fileobj.obj \
- $(SLO)$/helpdispatch.obj \
- $(SLO)$/helpinterceptor.obj \
- $(SLO)$/imagemgr.obj\
- $(SLO)$/imestatuswindow.obj \
- $(SLO)$/impldde.obj \
- $(SLO)$/linkmgr2.obj \
- $(SLO)$/linksrc.obj \
- $(SLO)$/lnkbase2.obj \
- $(SLO)$/module.obj \
- $(SLO)$/newhelp.obj \
- $(SLO)$/opengrf.obj \
- $(SLO)$/sfxhelp.obj \
- $(SLO)$/sfxpicklist.obj \
- $(SLO)$/shutdownicon.obj \
- $(SLO)$/shutdowniconw32.obj \
- $(SLO)$/workwin.obj \
- $(SLO)$/xpackcreator.obj \
- $(SLO)$/fwkhelper.obj
-
-.IF "$(GUI)"=="OS2"
-SFX_OBJECTS += $(SLO)$/shutdowniconOs2.obj
-.ENDIF
-
-.IF "$(GUIBASE)"=="aqua"
-SFX_OBJECTS += $(SLO)$/shutdowniconaqua.obj
-.ENDIF
-
-SLOFILES = $(SFX_OBJECTS)
-LIB1TARGET= $(SLB)$/$(TARGET).lib
-LIB1OBJFILES= $(SFX_OBJECTS)
-
-.IF "$(ENABLE_SYSTRAY_GTK)"=="TRUE"
-QUICKSTART_OBJECTS = $(SLO)$/shutdowniconunx.obj
-SLOFILES += $(QUICKSTART_OBJECTS)
-
-LIB2TARGET= $(SLB)$/quickstart.lib
-LIB2OBJFILES= $(QUICKSTART_OBJECTS)
-.ENDIF
-
-.IF "$(GUI)"=="OS2"
-SLOFILES += $(SLO)$/shutdowniconOs2.obj
-.ENDIF
-
-EXCEPTIONSFILES=\
- $(SLO)$/imagemgr.obj \
- $(SLO)$/appopen.obj \
- $(SLO)$/appmain.obj \
- $(SLO)$/appmisc.obj \
- $(SLO)$/appinit.obj \
- $(SLO)$/appcfg.obj \
- $(SLO)$/fileobj.obj \
- $(SLO)$/helpinterceptor.obj \
- $(SLO)$/newhelp.obj \
- $(SLO)$/opengrf.obj \
- $(SLO)$/sfxhelp.obj \
- $(SLO)$/shutdownicon.obj \
- $(SLO)$/shutdowniconw32.obj \
- $(SLO)$/sfxpicklist.obj \
- $(SLO)$/helpdispatch.obj \
- $(SLO)$/xpackcreator.obj
-
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/source/appl/module.cxx b/sfx2/source/appl/module.cxx
index 895263ef4783..ba91d9c1117b 100644
--- a/sfx2/source/appl/module.cxx
+++ b/sfx2/source/appl/module.cxx
@@ -38,10 +38,10 @@
#include <sfx2/module.hxx>
#include <sfx2/app.hxx>
#include "arrdecl.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/msgpool.hxx>
#include <sfx2/tbxctrl.hxx>
-#include "stbitem.hxx"
+#include "sfx2/stbitem.hxx"
#include <sfx2/mnuitem.hxx>
#include <sfx2/childwin.hxx>
#include <sfx2/mnumgr.hxx>
diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx
index 9235777e0d5a..96f4c6b91f5b 100644
--- a/sfx2/source/appl/newhelp.cxx
+++ b/sfx2/source/appl/newhelp.cxx
@@ -30,16 +30,16 @@
#include "newhelp.hxx"
#include <sfx2/sfxuno.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "helpinterceptor.hxx"
#include "helper.hxx"
#include <sfx2/msgpool.hxx>
#include <sfx2/app.hxx>
#include "sfxtypes.hxx"
#include "panelist.hxx"
-#include "imgmgr.hxx"
+#include "sfx2/imgmgr.hxx"
#include "srchdlg.hxx"
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include "app.hrc"
#include "newhelp.hrc"
@@ -300,7 +300,7 @@ ContentListBox_Impl::ContentListBox_Impl( Window* pParent, const ResId& rResId )
aDocumentImage = Image( SfxResId( IMG_HELP_CONTENT_DOC_HC ) );
}
- SetWindowBits( WB_HIDESELECTION | WB_HSCROLL );
+ SetStyle( GetStyle() | WB_HIDESELECTION | WB_HSCROLL );
SetEntryHeight( 16 );
SetSelectionMode( SINGLE_SELECTION );
diff --git a/sfx2/source/appl/opengrf.cxx b/sfx2/source/appl/opengrf.cxx
index fd2043a9a431..328bca2522b5 100644
--- a/sfx2/source/appl/opengrf.cxx
+++ b/sfx2/source/appl/opengrf.cxx
@@ -54,7 +54,7 @@
#include <unotools/pathoptions.hxx>
#include <sfx2/opengrf.hxx>
#include "app.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
//-----------------------------------------------------------------------------
diff --git a/sfx2/source/appl/sfx.src b/sfx2/source/appl/sfx.src
index 7d4bb0db1726..c3b734e327de 100644
--- a/sfx2/source/appl/sfx.src
+++ b/sfx2/source/appl/sfx.src
@@ -27,107 +27,16 @@
#include <sfx2/sfx.hrc>
-String STR_NONAME
-{
- Text [ en-US ] = "Untitled" ;
-};
-
-String STR_NONE
-{
- Text [ en-US ] = "- None -" ;
-};
-
-String STR_CLOSE
-{
- Text [ en-US ] = "Close" ;
-};
-
-String STR_STYLE_FILTER_AUTO
-{
- Text [ en-US ] = "Automatic" ;
-};
-
String STR_STYLE_FILTER_USED
{
Text [ en-US ] = "Applied Styles" ;
};
-
-
-
String STR_STYLE_FILTER_USERDEF
{
Text [ en-US ] = "Custom Styles" ;
};
-
String STR_STYLE_FILTER_ALL
{
Text [ en-US ] = "All Styles" ;
};
-String STR_STANDARD
-{
- Text [ en-US ] = "Standard" ;
-};
-String STR_STANDARD_SHORTCUT
-{
- Text [ en-US ] = "Standard" ;
-};
-
-String STR_SFX_FILTERNAME_ALL
-{
- Text [ en-US ] = "All files (*.*)" ;
-};
-
-String STR_BYTES
-{
- Text [ en-US ] = "Bytes" ;
-};
-
-String STR_KB
-{
- Text [ en-US ] = "KB" ;
-};
-
-String STR_MB
-{
- Text [ en-US ] = "MB" ;
-};
-
-
-String STR_GB
-{
- Text [ en-US ] = "GB" ;
-};
-
-String STR_UNDO
-{
- Text [ en-US ] = "Undo: " ;
-};
-
-String STR_REDO
-{
- Text [ en-US ] = "Re~do: " ;
-};
-
-String STR_REPEAT
-{
- Text [ en-US ] = "~Repeat: " ;
-};
-
-String RID_STR_NEW_TASK
-{
- Text [ en-US ] = "New task";
-};
-QueryBox MSG_QUERY_LASTVERSION
-{
- Buttons = WB_YES_NO ;
- DefButton = WB_DEF_NO ;
- Message [ en-US ] = "Cancel all changes?" ;
-};
-
-// i66948 used in project scripting
-String STR_ERRUNOEVENTBINDUNG
-{
- Text [ en-US ] = "An appropriate component method %1\ncould not be found.\n\nCheck spelling of method name.";
-};
-
diff --git a/sfx2/source/appl/sfxhelp.cxx b/sfx2/source/appl/sfxhelp.cxx
index a12ced237f55..bab37281cb05 100644
--- a/sfx2/source/appl/sfxhelp.cxx
+++ b/sfx2/source/appl/sfxhelp.cxx
@@ -28,7 +28,8 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sfx2.hxx"
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
+
#include <set>
#include <algorithm>
#include <com/sun/star/uno/Reference.h>
@@ -70,7 +71,9 @@
#include <svl/svstdarr.hxx>
#include "newhelp.hxx"
-#include "sfxresid.hxx"
+#include <sfx2/objsh.hxx>
+#include <sfx2/docfac.hxx>
+#include "sfx2/sfxresid.hxx"
#include "helper.hxx"
#include "app.hrc"
#include <sfx2/sfxuno.hxx>
diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx
index 3fce25e7e0d6..3c323b05fd72 100644
--- a/sfx2/source/appl/shutdownicon.cxx
+++ b/sfx2/source/appl/shutdownicon.cxx
@@ -69,7 +69,7 @@
#endif
#include <vcl/timer.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::frame;
@@ -80,7 +80,11 @@ using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::ui::dialogs;
using namespace ::vos;
+#ifdef WNT
+using ::rtl::OUString;
+#else
using namespace ::rtl;
+#endif
using namespace ::sfx2;
#ifdef ENABLE_QUICKSTART_APPLET
@@ -89,6 +93,10 @@ extern "C" { static void SAL_CALL thisModule() {} }
# endif
#endif
+#if defined(UNX) && defined(ENABLE_SYSTRAY_GTK)
+#define PLUGIN_NAME "libqstart_gtkli.so"
+#endif
+
class SfxNotificationListener_Impl : public cppu::WeakImplHelper1< XDispatchResultListener >
{
public:
diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx
index f9a388deee5c..2224643bc88f 100644
--- a/sfx2/source/appl/workwin.cxx
+++ b/sfx2/source/appl/workwin.cxx
@@ -47,7 +47,7 @@
#include <sfx2/viewsh.hxx>
#include "splitwin.hxx"
#include <sfx2/msgpool.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/objsh.hxx>
#include <sfx2/request.hxx> // SFX_ITEMSET_SET
#include <vcl/taskpanelist.hxx>
diff --git a/sfx2/source/bastyp/fltfnc.cxx b/sfx2/source/bastyp/fltfnc.cxx
index d11b8b5130ed..12f824ea4255 100644
--- a/sfx2/source/bastyp/fltfnc.cxx
+++ b/sfx2/source/bastyp/fltfnc.cxx
@@ -110,7 +110,7 @@ using namespace ::vos;
#include <svtools/sfxecode.hxx>
#include <unotools/syslocale.hxx>
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include "sfxbasic.hxx"
#include <sfx2/docfilt.hxx>
#include <sfx2/docfac.hxx>
@@ -120,7 +120,7 @@ using namespace ::vos;
#include <sfx2/progress.hxx>
#include "openflag.hxx"
#include "bastyp.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/doctempl.hxx>
#include <sfx2/frame.hxx>
#include <sfx2/dispatch.hxx>
diff --git a/sfx2/source/bastyp/frmhtmlw.cxx b/sfx2/source/bastyp/frmhtmlw.cxx
index df81eb3f4039..e17151c6e322 100644
--- a/sfx2/source/bastyp/frmhtmlw.cxx
+++ b/sfx2/source/bastyp/frmhtmlw.cxx
@@ -46,7 +46,7 @@
#include <sfx2/app.hxx>
#include <sfx2/viewfrm.hxx>
#include <sfx2/docfile.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/objsh.hxx>
#include <sfx2/sfx.hrc>
#include "bastyp.hrc"
diff --git a/sfx2/source/bastyp/makefile.mk b/sfx2/source/bastyp/makefile.mk
deleted file mode 100644
index 75c0cace40d6..000000000000
--- a/sfx2/source/bastyp/makefile.mk
+++ /dev/null
@@ -1,66 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sfx2
-TARGET=bastyp
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES =\
- $(SLO)$/sfxhtml.obj \
- $(SLO)$/frmhtml.obj \
- $(SLO)$/frmhtmlw.obj \
- $(SLO)$/misc.obj \
- $(SLO)$/progress.obj \
- $(SLO)$/sfxresid.obj \
- $(SLO)$/bitset.obj \
- $(SLO)$/minarray.obj \
- $(SLO)$/fltfnc.obj \
- $(SLO)$/mieclip.obj \
- $(SLO)$/fltlst.obj \
- $(SLO)$/helper.obj
-
-SRS1NAME=$(TARGET)
-SRC1FILES =\
- fltfnc.src \
- bastyp.src
-
-EXCEPTIONSFILES =\
- $(SLO)$/helper.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/source/bastyp/mieclip.cxx b/sfx2/source/bastyp/mieclip.cxx
index ee2b15d34ab9..4154ddc6301b 100644
--- a/sfx2/source/bastyp/mieclip.cxx
+++ b/sfx2/source/bastyp/mieclip.cxx
@@ -33,7 +33,7 @@
#include <sot/storage.hxx>
#include <sot/formats.hxx>
-#include <mieclip.hxx>
+#include <sfx2/mieclip.hxx>
#include <sfx2/sfxuno.hxx>
MSE40HTMLClipFormatObj::~MSE40HTMLClipFormatObj()
diff --git a/sfx2/source/bastyp/progress.cxx b/sfx2/source/bastyp/progress.cxx
index 3af0ba2b0a6f..9650c8155d84 100644
--- a/sfx2/source/bastyp/progress.cxx
+++ b/sfx2/source/bastyp/progress.cxx
@@ -51,7 +51,7 @@
#include "sfxtypes.hxx"
#include <sfx2/docfile.hxx>
#include "workwin.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "bastyp.hrc"
#include <sfx2/msg.hxx>
diff --git a/sfx2/source/bastyp/sfxresid.cxx b/sfx2/source/bastyp/sfxresid.cxx
index 11ab5a724099..cf1cd983f76e 100644
--- a/sfx2/source/bastyp/sfxresid.cxx
+++ b/sfx2/source/bastyp/sfxresid.cxx
@@ -32,7 +32,7 @@
#endif
#include <tools/simplerm.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/app.hxx>
// -----------------------------------------------------------------------
diff --git a/sfx2/source/config/evntconf.cxx b/sfx2/source/config/evntconf.cxx
index 9935c3a18c8b..185ec0626c51 100644
--- a/sfx2/source/config/evntconf.cxx
+++ b/sfx2/source/config/evntconf.cxx
@@ -28,35 +28,27 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sfx2.hxx"
#include <vcl/msgbox.hxx>
-#ifndef _SV_RESARY_HXX
#include <tools/resary.hxx>
-#endif
#include <svl/lstner.hxx>
#include <basic/basmgr.hxx>
#include <basic/sbmod.hxx>
#include <tools/urlobj.hxx>
#include <basic/sbx.hxx>
-
-#include <sot/storage.hxx>
+ #include <sot/storage.hxx>
#include <unotools/securityoptions.hxx>
-#ifndef _RTL_USTRING_
#include <rtl/ustring.h>
-#endif
-
#include <com/sun/star/uno/Any.hxx>
#include <framework/eventsconfiguration.hxx>
#include <comphelper/processfactory.hxx>
-
#include <sfx2/evntconf.hxx>
-
#include <sfx2/macrconf.hxx>
#include <sfx2/docfile.hxx>
#include <sfx2/app.hxx>
#include <sfx2/objsh.hxx>
#include <sfx2/dispatch.hxx>
#include "config.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "eventsupplier.hxx"
#include <com/sun/star/beans/PropertyValue.hpp>
@@ -68,6 +60,7 @@
// -----------------------------------------------------------------------
TYPEINIT1(SfxEventHint, SfxHint);
TYPEINIT1(SfxEventNamesItem, SfxPoolItem);
+TYPEINIT1(SfxViewEventHint, SfxHint);
using namespace com::sun::star;
diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx
index 444be02127b3..c08d713547a0 100755
--- a/sfx2/source/control/dispatch.cxx
+++ b/sfx2/source/control/dispatch.cxx
@@ -57,7 +57,7 @@
// wg. nAutoPageID
#include "appdata.hxx"
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include <sfx2/dispatch.hxx>
#include <sfx2/minstack.hxx>
#include <sfx2/msg.hxx>
diff --git a/sfx2/source/control/macrconf.cxx b/sfx2/source/control/macrconf.cxx
index 9e8657ae0c82..079c7180ac1a 100644
--- a/sfx2/source/control/macrconf.cxx
+++ b/sfx2/source/control/macrconf.cxx
@@ -59,8 +59,8 @@
#include <sfx2/app.hxx>
#include <sfx2/objsh.hxx>
#include <sfx2/dispatch.hxx>
-#include "minfitem.hxx"
-#include "imgmgr.hxx"
+#include "sfx2/minfitem.hxx"
+#include "sfx2/imgmgr.hxx"
#include <sfx2/evntconf.hxx>
#include <sfx2/docfile.hxx>
#include <sfx2/genlink.hxx>
diff --git a/sfx2/source/control/makefile.mk b/sfx2/source/control/makefile.mk
deleted file mode 100644
index 86797589e3aa..000000000000
--- a/sfx2/source/control/makefile.mk
+++ /dev/null
@@ -1,73 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sfx2
-TARGET=control
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# w.g. compilerbugs
-.IF "$(GUI)"=="WNT"
-.IF "$(COM)"!="GCC"
-CFLAGS+=-Od
-.ENDIF
-.ENDIF
-
-.IF "$(COM)"=="GCC"
-CFLAGS+=-O0
-.ENDIF
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/bindings.obj \
- $(SLO)$/ctrlitem.obj \
- $(SLO)$/dispatch.obj \
- $(SLO)$/macrconf.obj \
- $(SLO)$/macro.obj \
- $(SLO)$/minfitem.obj \
- $(SLO)$/msg.obj \
- $(SLO)$/msgpool.obj \
- $(SLO)$/objface.obj \
- $(SLO)$/querystatus.obj \
- $(SLO)$/request.obj \
- $(SLO)$/sfxstatuslistener.obj \
- $(SLO)$/shell.obj \
- $(SLO)$/sorgitm.obj \
- $(SLO)$/statcach.obj \
- $(SLO)$/unoctitm.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/source/control/minfitem.cxx b/sfx2/source/control/minfitem.cxx
index 0c0c0124b612..b0cdd58d2645 100644
--- a/sfx2/source/control/minfitem.cxx
+++ b/sfx2/source/control/minfitem.cxx
@@ -30,10 +30,7 @@
// INCLUDE ---------------------------------------------------------------
-#ifndef GCC
-#endif
-
-#include "minfitem.hxx"
+#include "sfx2/minfitem.hxx"
// STATIC DATA -----------------------------------------------------------
diff --git a/sfx2/source/control/msgpool.cxx b/sfx2/source/control/msgpool.cxx
index f1abd25a5413..10359ba20f73 100644
--- a/sfx2/source/control/msgpool.cxx
+++ b/sfx2/source/control/msgpool.cxx
@@ -41,7 +41,7 @@
#include <sfx2/objface.hxx>
#include "sfxtypes.hxx"
#include <sfx2/macrconf.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "arrdecl.hxx"
#include <sfx2/module.hxx>
diff --git a/sfx2/source/control/objface.cxx b/sfx2/source/control/objface.cxx
index 0692b99b8adb..d0ce2abae773 100644
--- a/sfx2/source/control/objface.cxx
+++ b/sfx2/source/control/objface.cxx
@@ -39,7 +39,7 @@
#include <sfx2/msg.hxx>
#include <sfx2/app.hxx>
#include <sfx2/msgpool.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/minarray.hxx>
#include <sfx2/objsh.hxx>
diff --git a/sfx2/source/control/querystatus.cxx b/sfx2/source/control/querystatus.cxx
index 8688740ce0fb..bee4a5c87675 100644
--- a/sfx2/source/control/querystatus.cxx
+++ b/sfx2/source/control/querystatus.cxx
@@ -44,7 +44,7 @@
#include <com/sun/star/frame/status/ItemState.hpp>
#include <com/sun/star/frame/status/Visibility.hpp>
-using namespace ::rtl;
+using ::rtl::OUString;
using namespace ::cppu;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::frame;
diff --git a/sfx2/source/control/sfxstatuslistener.cxx b/sfx2/source/control/sfxstatuslistener.cxx
index f6bb2b2c3004..c2cf5f164e7c 100644
--- a/sfx2/source/control/sfxstatuslistener.cxx
+++ b/sfx2/source/control/sfxstatuslistener.cxx
@@ -50,7 +50,7 @@
#include <sfx2/unoctitm.hxx>
#include <sfx2/msgpool.hxx>
-using namespace ::rtl;
+using ::rtl::OUString;
using namespace ::cppu;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::frame;
diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
index e53f1766b7b9..f85d0d8e9e49 100644
--- a/sfx2/source/control/unoctitm.cxx
+++ b/sfx2/source/control/unoctitm.cxx
@@ -463,7 +463,7 @@ void SfxOfficeDispatch::SetMasterUnoCommand( sal_Bool bSet )
sal_Bool SfxOfficeDispatch::IsMasterUnoCommand() const
{
if ( pControllerItem )
- pControllerItem->isMasterSlaveCommand();
+ return pControllerItem->isMasterSlaveCommand();
return sal_False;
}
diff --git a/sfx2/source/dialog/about.cxx b/sfx2/source/dialog/about.cxx
index 7d868eb97362..ea7b0a2bb0bd 100644
--- a/sfx2/source/dialog/about.cxx
+++ b/sfx2/source/dialog/about.cxx
@@ -29,7 +29,6 @@
#include "precompiled_sfx2.hxx"
// include ---------------------------------------------------------------
-#include <aboutbmpnames.hxx>
#ifndef _SV_APP_HXX
#include <vcl/svapp.hxx>
@@ -114,7 +113,7 @@ Image SfxApplication::GetApplicationLogo()
{
Image aAppLogo;
- rtl::OUString aAbouts( RTL_CONSTASCII_USTRINGPARAM( ABOUT_BITMAP_STRINGLIST ) );
+ rtl::OUString aAbouts;
bool bLoaded = false;
sal_Int32 nIndex = 0;
do
diff --git a/sfx2/source/dialog/alienwarn.cxx b/sfx2/source/dialog/alienwarn.cxx
index 6fd765dcb616..13a0433b7be5 100644
--- a/sfx2/source/dialog/alienwarn.cxx
+++ b/sfx2/source/dialog/alienwarn.cxx
@@ -29,7 +29,7 @@
#include "precompiled_sfx2.hxx"
#include "alienwarn.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/sfxuno.hxx>
#include "alienwarn.hrc"
diff --git a/sfx2/source/dialog/basedlgs.cxx b/sfx2/source/dialog/basedlgs.cxx
index df1f13155513..5a7f8a1fd900 100644
--- a/sfx2/source/dialog/basedlgs.cxx
+++ b/sfx2/source/dialog/basedlgs.cxx
@@ -47,9 +47,9 @@
#include <sfx2/dispatch.hxx>
#include <sfx2/childwin.hxx>
#include <sfx2/viewsh.hxx>
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include "workwin.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "dialog.hrc"
using namespace ::com::sun::star::uno;
diff --git a/sfx2/source/dialog/dinfedt.cxx b/sfx2/source/dialog/dinfedt.cxx
index 85f9f955e355..5c250f7cc912 100644
--- a/sfx2/source/dialog/dinfedt.cxx
+++ b/sfx2/source/dialog/dinfedt.cxx
@@ -31,8 +31,8 @@
#ifndef GCC
#endif
-#include "dinfedt.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/dinfedt.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/sfx.hrc>
#include "dinfedt.hrc"
diff --git a/sfx2/source/dialog/dockwin.cxx b/sfx2/source/dialog/dockwin.cxx
index 0864b0e18c2b..4f55dfde21a7 100644
--- a/sfx2/source/dialog/dockwin.cxx
+++ b/sfx2/source/dialog/dockwin.cxx
@@ -44,7 +44,7 @@
#include "workwin.hxx"
#include "splitwin.hxx"
#include <sfx2/viewsh.hxx>
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include <sfx2/objsh.hxx>
#include <sfx2/msgpool.hxx>
diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
index 02b9003f59d2..b740453cf5ff 100644
--- a/sfx2/source/dialog/filedlghelper.cxx
+++ b/sfx2/source/dialog/filedlghelper.cxx
@@ -91,7 +91,7 @@
#include <sfx2/docfac.hxx>
#include "openflag.hxx"
#include <sfx2/passwd.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/sfxsids.hrc>
#include "filedlghelper.hrc"
#include "filtergrouping.hxx"
@@ -1522,8 +1522,8 @@ ErrCode FileDialogHelper_Impl::execute( SvStringsDtor*& rpURLList,
// check password checkbox if the document had password before
if( mbHasPassword )
{
- SFX_ITEMSET_ARG( rpSet, pPassItem, SfxStringItem, SID_PASSWORD, FALSE );
- mbPwdCheckBoxState = ( pPassItem != NULL );
+ SFX_ITEMSET_ARG( rpSet, pPassItem, SfxBoolItem, SID_PASSWORDINTERACTION, FALSE );
+ mbPwdCheckBoxState = ( pPassItem != NULL && pPassItem->GetValue() );
// in case the document has password to modify, the dialog should be shown
SFX_ITEMSET_ARG( rpSet, pPassToModifyItem, SfxUnoAnyItem, SID_MODIFYPASSWORDINFO, FALSE );
@@ -1537,7 +1537,9 @@ ErrCode FileDialogHelper_Impl::execute( SvStringsDtor*& rpURLList,
mbSelectionEnabled = sal_False;
// the password will be set in case user decide so
+ rpSet->ClearItem( SID_PASSWORDINTERACTION );
rpSet->ClearItem( SID_PASSWORD );
+ rpSet->ClearItem( SID_ENCRYPTIONDATA );
rpSet->ClearItem( SID_RECOMMENDREADONLY );
rpSet->ClearItem( SID_MODIFYPASSWORDINFO );
@@ -1652,7 +1654,30 @@ ErrCode FileDialogHelper_Impl::execute( SvStringsDtor*& rpURLList,
if ( pPasswordRequest->isPassword() )
{
if ( pPasswordRequest->getPassword().getLength() )
- rpSet->Put( SfxStringItem( SID_PASSWORD, pPasswordRequest->getPassword() ) );
+ {
+ // TODO/LATER: The filters should show the password dialog themself in future
+ if ( bMSType )
+ {
+ // all the current MS-filters use MSCodec_Std97 implementation
+ uno::Sequence< sal_Int8 > aUniqueID = ::comphelper::DocPasswordHelper::GenerateRandomByteSequence( 16 );
+ uno::Sequence< sal_Int8 > aEncryptionKey = ::comphelper::DocPasswordHelper::GenerateStd97Key( pPasswordRequest->getPassword(), aUniqueID );
+
+ if ( aEncryptionKey.getLength() )
+ {
+ ::comphelper::SequenceAsHashMap aHashData;
+ aHashData[ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "STD97EncryptionKey" ) ) ] <<= aEncryptionKey;
+ aHashData[ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "STD97UniqueID" ) ) ] <<= aUniqueID;
+
+ rpSet->Put( SfxUnoAnyItem( SID_ENCRYPTIONDATA, uno::makeAny( aHashData.getAsConstNamedValueList() ) ) );
+ }
+ else
+ return ERRCODE_IO_NOTSUPPORTED;
+ }
+ else
+ {
+ rpSet->Put( SfxUnoAnyItem( SID_ENCRYPTIONDATA, uno::makeAny( ::comphelper::OStorageHelper::CreatePackageEncryptionData( pPasswordRequest->getPassword() ) ) ) );
+ }
+ }
if ( pPasswordRequest->getRecommendReadOnly() )
rpSet->Put( SfxBoolItem( SID_RECOMMENDREADONLY, sal_True ) );
@@ -1867,7 +1892,16 @@ void FileDialogHelper_Impl::addFilters( sal_Int64 nFlags,
sQuery.appendAscii(":eflags=" );
sQuery.append (::rtl::OUString::valueOf((sal_Int32)m_nDontFlags));
- uno::Reference< XEnumeration > xResult = xFilterCont->createSubSetEnumerationByQuery(sQuery.makeStringAndClear());
+ uno::Reference< XEnumeration > xResult;
+ try
+ {
+ xResult = xFilterCont->createSubSetEnumerationByQuery(sQuery.makeStringAndClear());
+ }
+ catch( uno::Exception& )
+ {
+ DBG_ERRORFILE( "Could not get filters from the configuration!" );
+ }
+
TSortedFilterList aIter (xResult);
// no matcher any longer used ...
diff --git a/sfx2/source/dialog/filtergrouping.cxx b/sfx2/source/dialog/filtergrouping.cxx
index ea2429be8157..ab75d777c5ff 100644
--- a/sfx2/source/dialog/filtergrouping.cxx
+++ b/sfx2/source/dialog/filtergrouping.cxx
@@ -32,7 +32,7 @@
#include <sfx2/filedlghelper.hxx>
#include <sfx2/sfx.hrc>
#include <sfx2/docfac.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <osl/thread.h>
#include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp>
#include <com/sun/star/beans/StringPair.hpp>
diff --git a/sfx2/source/dialog/mailmodel.cxx b/sfx2/source/dialog/mailmodel.cxx
index 0e0c6ec22ee1..8c05fa424263 100644
--- a/sfx2/source/dialog/mailmodel.cxx
+++ b/sfx2/source/dialog/mailmodel.cxx
@@ -47,27 +47,23 @@
#include <com/sun/star/frame/XStorable.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/security/CertificateValidity.hpp>
-#ifndef _COM_SUN_STAR_SECURITY_DOCUMENTSIGNATURESINFORMATION_HPP_
#include <com/sun/star/security/DocumentSignatureInformation.hpp>
-#endif
#include <com/sun/star/security/XDocumentDigitalSignatures.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
+#include <com/sun/star/frame/XStatusListener.hpp>
#include <com/sun/star/ucb/InsertCommandArgument.hpp>
#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
#include <com/sun/star/document/XExporter.hpp>
-
-#ifndef _RTL_TEXTENC_H
-#include <rtl/textench.h>
-#endif
+#include <rtl/textenc.h>
#include <rtl/uri.h>
#include <rtl/uri.hxx>
#include <rtl/ustrbuf.hxx>
#include <vcl/msgbox.hxx>
-#include <mailmodelapi.hxx>
+#include <sfx2/mailmodelapi.hxx>
#include "sfxtypes.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/sfxsids.hrc>
#include "dialog.hrc"
@@ -84,6 +80,7 @@
#include <comphelper/mediadescriptor.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <vcl/svapp.hxx>
+#include <cppuhelper/implbase1.hxx>
// --------------------------------------------------------------
using namespace ::com::sun::star;
@@ -98,6 +95,54 @@ using namespace ::com::sun::star::system;
using namespace ::rtl;
namespace css = ::com::sun::star;
+// - class PrepareListener_Impl ------------------------------------------
+class PrepareListener_Impl : public ::cppu::WeakImplHelper1< css::frame::XStatusListener >
+{
+ bool m_bState;
+public:
+ PrepareListener_Impl();
+ virtual ~PrepareListener_Impl();
+
+ // css.frame.XStatusListener
+ virtual void SAL_CALL statusChanged(const css::frame::FeatureStateEvent& aEvent)
+ throw(css::uno::RuntimeException);
+
+ // css.lang.XEventListener
+ virtual void SAL_CALL disposing(const css::lang::EventObject& aEvent)
+ throw(css::uno::RuntimeException);
+
+ bool IsSet() const {return m_bState;}
+};
+
+/*-- 25.08.2010 14:32:49---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+PrepareListener_Impl::PrepareListener_Impl() :
+ m_bState( false )
+{
+}
+/*-- 25.08.2010 14:32:51---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+PrepareListener_Impl::~PrepareListener_Impl()
+{
+}
+/*-- 25.08.2010 14:32:51---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void PrepareListener_Impl::statusChanged(const css::frame::FeatureStateEvent& rEvent) throw(css::uno::RuntimeException)
+{
+ if( rEvent.IsEnabled )
+ rEvent.State >>= m_bState;
+ else
+ m_bState = sal_False;
+}
+/*-- 25.08.2010 14:32:52---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void PrepareListener_Impl::disposing(const css::lang::EventObject& /*rEvent*/) throw(css::uno::RuntimeException)
+{
+}
// class AddressList_Impl ------------------------------------------------
@@ -547,46 +592,68 @@ SfxMailModel::SaveResult SfxMailModel::SaveDocumentAsFormat(
aArgs[nNumArgs-1].Value = css::uno::makeAny( aPassword );
}
- if ( bModified || !bHasLocation || bStoreTo )
+ bool bNeedsPreparation = false;
+ css::util::URL aPrepareURL;
+ css::uno::Reference< css::frame::XDispatch > xPrepareDispatch;
+ css::uno::Reference< css::frame::XDispatchProvider > xDispatchProvider( xFrame, css::uno::UNO_QUERY );
+ css::uno::Reference< css::util::XURLTransformer > xURLTransformer(
+ xSMGR->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))),
+ css::uno::UNO_QUERY );
+ if( !bSendAsPDF )
{
- // Document is modified, is newly created or should be stored in a special format
try
{
- css::uno::Reference< css::util::XURLTransformer > xURLTransformer(
- xSMGR->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))),
- css::uno::UNO_QUERY );
-
- css::uno::Reference< css::frame::XDispatchProvider > xDispatchProvider( xFrame, css::uno::UNO_QUERY );
- css::uno::Reference< css::frame::XDispatch > xDispatch;
+ // check if the document needs to be prepared for sending as mail (embedding of links, removal of invisible content)
- css::util::URL aURL;
- css::uno::Sequence< css::beans::PropertyValue > aDispatchArgs;
+ if ( xURLTransformer.is() )
+ {
+ aPrepareURL.Complete = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:PrepareMailExport" ));
+ xURLTransformer->parseStrict( aPrepareURL );
+ }
- if( !bSendAsPDF )
+ if ( xDispatchProvider.is() )
{
- if ( xURLTransformer.is() )
+ xPrepareDispatch = css::uno::Reference< css::frame::XDispatch >(
+ xDispatchProvider->queryDispatch( aPrepareURL, ::rtl::OUString(), 0 ));
+ if ( xPrepareDispatch.is() )
{
- aURL.Complete = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:PrepareMailExport" ));
- xURLTransformer->parseStrict( aURL );
+ PrepareListener_Impl* pPrepareListener;
+ uno::Reference< css::frame::XStatusListener > xStatusListener = pPrepareListener = new PrepareListener_Impl;
+ xPrepareDispatch->addStatusListener( xStatusListener, aPrepareURL );
+ bNeedsPreparation = pPrepareListener->IsSet();
+ xPrepareDispatch->removeStatusListener( xStatusListener, aPrepareURL );
}
+ }
+ }
+ catch ( css::uno::RuntimeException& )
+ {
+ throw;
+ }
+ catch ( css::uno::Exception& )
+ {
+ }
+ }
- if ( xDispatchProvider.is() )
+ if ( bModified || !bHasLocation || bStoreTo || bNeedsPreparation )
+ {
+ // Document is modified, is newly created or should be stored in a special format
+ try
+ {
+ if( bNeedsPreparation && xPrepareDispatch.is() )
+ {
+ if ( xPrepareDispatch.is() )
{
- xDispatch = css::uno::Reference< css::frame::XDispatch >(
- xDispatchProvider->queryDispatch( aURL, ::rtl::OUString(), 0 ));
- if ( xDispatch.is() )
+ try
+ {
+ css::uno::Sequence< css::beans::PropertyValue > aDispatchArgs;
+ xPrepareDispatch->dispatch( aPrepareURL, aDispatchArgs );
+ }
+ catch ( css::uno::RuntimeException& )
+ {
+ throw;
+ }
+ catch ( css::uno::Exception& )
{
- try
- {
- xDispatch->dispatch( aURL, aDispatchArgs );
- }
- catch ( css::uno::RuntimeException& )
- {
- throw;
- }
- catch ( css::uno::Exception& )
- {
- }
}
}
}
@@ -608,6 +675,7 @@ SfxMailModel::SaveResult SfxMailModel::SaveDocumentAsFormat(
if( !bSendAsPDF )
{
+ css::util::URL aURL;
// #i30432# notify that export is finished - the Writer may want to restore removed content
if ( xURLTransformer.is() )
{
@@ -617,12 +685,13 @@ SfxMailModel::SaveResult SfxMailModel::SaveDocumentAsFormat(
if ( xDispatchProvider.is() )
{
- xDispatch = css::uno::Reference< css::frame::XDispatch >(
+ css::uno::Reference< css::frame::XDispatch > xDispatch = css::uno::Reference< css::frame::XDispatch >(
xDispatchProvider->queryDispatch( aURL, ::rtl::OUString(), 0 ));
if ( xDispatch.is() )
{
try
{
+ css::uno::Sequence< css::beans::PropertyValue > aDispatchArgs;
xDispatch->dispatch( aURL, aDispatchArgs );
}
catch ( css::uno::RuntimeException& )
diff --git a/sfx2/source/dialog/mailmodelapi.cxx b/sfx2/source/dialog/mailmodelapi.cxx
deleted file mode 100644
index 16d12f469205..000000000000
--- a/sfx2/source/dialog/mailmodelapi.cxx
+++ /dev/null
@@ -1,695 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sfx2.hxx"
-// includes --------------------------------------------------------------
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/frame/XFrame.hpp>
-#include <com/sun/star/io/XActiveDataSink.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/mozilla/XPluginInstance.hpp>
-#include <com/sun/star/ucb/XDataContainer.hpp>
-#include <com/sun/star/ucb/CommandAbortedException.hpp>
-#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/util/XURLTransformer.hpp>
-#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/frame/XDispatchProvider.hpp>
-#include <com/sun/star/frame/XDispatch.hpp>
-#include <com/sun/star/util/XModifiable.hpp>
-#include <com/sun/star/system/XSimpleMailClientSupplier.hpp>
-#include <com/sun/star/system/SimpleMailClientFlags.hpp>
-#include <com/sun/star/frame/XModuleManager.hpp>
-#ifndef _RTL_TEXTENC_H
-#include <rtl/textench.h>
-#endif
-#include <vos/mutex.hxx>
-#include <rtl/uri.h>
-#include <rtl/uri.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <unotools/streamhelper.hxx>
-#include <unotools/configitem.hxx>
-#include <comphelper/mediadescriptor.hxx>
-#include <vos/thread.hxx>
-#include <vcl/msgbox.hxx>
-
-#include "mailmodelapi.hxx"
-#include <sfx2/docfilt.hxx>
-#include <sfx2/docfac.hxx>
-#include "sfxtypes.hxx"
-
-#include "dialog.hrc"
-#include "sfxresid.hxx"
-#include <sfx2/sfxuno.hxx>
-#include <sfx2/fcontnr.hxx>
-#include "guisaveas.hxx"
-
-#include <unotools/tempfile.hxx>
-#include <vcl/svapp.hxx>
-#include <svl/stritem.hxx>
-#include <svl/eitem.hxx>
-#include <unotools/useroptions.hxx>
-#include <comphelper/processfactory.hxx>
-#include <comphelper/extract.hxx>
-#include <ucbhelper/content.hxx>
-#include <toolkit/helper/vclunohelper.hxx>
-#include <tools/urlobj.hxx>
-
-extern sal_Bool GetPasswd_Impl( const SfxItemSet* pSet, String& rPasswd );
-
-// --------------------------------------------------------------
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::frame;
-using namespace ::com::sun::star::frame;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::mozilla;
-using namespace ::com::sun::star::ucb;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::util;
-using namespace ::com::sun::star::system;
-using namespace ::rtl;
-
-namespace
-{
- // functions -------------------------------------------------------------
-
- BOOL CreateFromAddress_Impl( String& rFrom )
-
- /* [Beschreibung]
-
- Diese Funktion versucht mit Hilfe des IniManagers eine From-Adresse
- zu erzeugen. daf"ur werden die Felder 'Vorname', 'Name' und 'EMail'
- aus der Applikations-Ini-Datei ausgelesen. Sollten diese Felder
- nicht gesetzt sein, wird FALSE zur"uckgegeben.
-
- [R"uckgabewert]
-
- TRUE: Adresse konnte erzeugt werden.
- FALSE: Adresse konnte nicht erzeugt werden.
- */
-
- {
- SvtUserOptions aUserCFG;
- String aName = aUserCFG.GetLastName ();
- String aFirstName = aUserCFG.GetFirstName ();
- if ( aFirstName.Len() || aName.Len() )
- {
- if ( aFirstName.Len() )
- {
- rFrom = TRIM( aFirstName );
-
- if ( aName.Len() )
- rFrom += ' ';
- }
- rFrom += TRIM( aName );
- // unerlaubte Zeichen entfernen
- rFrom.EraseAllChars( '<' );
- rFrom.EraseAllChars( '>' );
- rFrom.EraseAllChars( '@' );
- }
- String aEmailName = aUserCFG.GetEmail();
- // unerlaubte Zeichen entfernen
- aEmailName.EraseAllChars( '<' );
- aEmailName.EraseAllChars( '>' );
-
- if ( aEmailName.Len() )
- {
- if ( rFrom.Len() )
- rFrom += ' ';
- ( ( rFrom += '<' ) += TRIM( aEmailName ) ) += '>';
- }
- else
- rFrom.Erase();
- return ( rFrom.Len() > 0 );
- }
-
-}
-
-// class OThread
-class OMailSendThreadImpl : public ::vos::OThread
-{
- public:
- OMailSendThreadImpl(
- Reference< XSimpleMailClient > xSimpleMailClient,
- Reference< XSimpleMailMessage > xSimpleMailMessage,
- const Reference< XFrame >& _xCurrentFrame,
- long nSendFlags ) :
- m_nSendFlags( nSendFlags ),
- m_bSend( sal_False ),
- m_xSimpleMailClient( xSimpleMailClient ),
- m_xSimpleMailMessage( xSimpleMailMessage ),
- m_xCurrentFrame(_xCurrentFrame) {}
-
- virtual ~OMailSendThreadImpl();
-
- virtual void SAL_CALL run();
- virtual void SAL_CALL onTerminated();
-
- private:
- long m_nSendFlags;
- sal_Bool m_bSend;
- Reference< XSimpleMailClient > m_xSimpleMailClient;
- Reference< XSimpleMailMessage > m_xSimpleMailMessage;
- Reference< XFrame > m_xCurrentFrame;
-};
-
-OMailSendThreadImpl::~OMailSendThreadImpl()
-{
-}
-
-void SAL_CALL OMailSendThreadImpl::run()
-{
- try
- {
- m_xSimpleMailClient->sendSimpleMailMessage( m_xSimpleMailMessage, m_nSendFlags );
- m_bSend = sal_True;
- }
- catch ( IllegalArgumentException& )
- {
- m_bSend = sal_False;
- }
- catch ( Exception& )
- {
- m_bSend = sal_False;
- }
-
- if ( m_bSend == sal_False )
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
- Reference< ::com::sun::star::awt::XWindow > xParentWindow = m_xCurrentFrame->getContainerWindow();
- Window* pParentWindow = VCLUnoHelper::GetWindow( xParentWindow );
-
- ErrorBox aBox( pParentWindow, SfxResId( RID_ERRBOX_MAIL_CONFIG ));
- aBox.Execute();
- }
-}
-
-void SAL_CALL OMailSendThreadImpl::onTerminated()
-{
- delete this;
-}
-
-// class AddressList_Impl ------------------------------------------------
-
-typedef String* AddressItemPtr_Impl;
-DECLARE_LIST( AddressList_Impl, AddressItemPtr_Impl )
-
-// class SfxMailModel -----------------------------------------------
-
-void SfxMailModel::ClearList( AddressList_Impl* pList )
-{
- if ( pList )
- {
- ULONG i, nCount = pList->Count();
- for ( i = 0; i < nCount; ++i )
- delete pList->GetObject(i);
- pList->Clear();
- }
-}
-
-void SfxMailModel::MakeValueList( AddressList_Impl* pList, String& rValueList )
-{
- rValueList.Erase();
- if ( pList )
- {
- ULONG i, nCount = pList->Count();
- for ( i = 0; i < nCount; ++i )
- {
- if ( rValueList.Len() > 0 )
- rValueList += ',';
- rValueList += *pList->GetObject(i);
- }
- }
-}
-namespace
-{
- String lcl_getFactoryName(const Reference<XInterface>& _xModel)
- {
- rtl::OUString sModuleIdentifier;
- rtl::OUString sFactoryShortName;
- Reference < XModuleManager > xModuleManager( ::comphelper::getProcessServiceFactory()->createInstance(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.ModuleManager")) ), UNO_QUERY );
-
- if ( _xModel.is() )
- {
- try
- {
- sModuleIdentifier = xModuleManager->identify( _xModel );
- }
- catch ( ::com::sun::star::frame::UnknownModuleException& )
- {
- DBG_WARNING( "SfxHelp::GetHelpModuleName_Impl(): unknown module (help in help?)" );
- }
- catch ( Exception& )
- {
- DBG_ERRORFILE( "SfxHelp::GetHelpModuleName_Impl(): exception of XModuleManager::identif y()" );
- }
- }
-
- return sModuleIdentifier;
- }
-
- String lcl_createTempFileName(const Reference < XModel >& _xModel,const ::rtl::OUString& _sAttachmentTitle)
- {
- // create temp file name with leading chars and extension
- Reference < XStorable > xStor( _xModel, UNO_QUERY );
- String aLeadingStr;
- if ( xStor.is() )
- {
- sal_Bool bHasName = xStor->hasLocation();
-
- if ( !bHasName )
- {
- if ( _sAttachmentTitle.getLength() )
- aLeadingStr = _sAttachmentTitle;
- else
- aLeadingStr = String( DEFINE_CONST_UNICODE("noname") );
- }
- else
- {
- INetURLObject aFileObj(_xModel->getURL());
- if ( aFileObj.hasExtension() )
- {
- aFileObj.removeExtension();
- if ( _sAttachmentTitle.getLength() )
- aLeadingStr = _sAttachmentTitle;
- else
- aLeadingStr = aFileObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
- aLeadingStr += String::CreateFromAscii( "_" );
- }
- else
- {
- if ( _sAttachmentTitle.getLength() )
- aLeadingStr = _sAttachmentTitle;
- else
- aLeadingStr = aFileObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
- aLeadingStr += String::CreateFromAscii( "_" );
- }
- }
- }
- return aLeadingStr;
- }
-
-}
-SfxMailModel::SaveResult SfxMailModel::SaveDocument( const ::rtl::OUString& _sAttachmentTitle
- , const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& _xModel
- , String& rFileName)
-{
- SaveResult eRet = SAVE_CANCELLED;
- try
- {
- Reference<XModifiable> xMod(_xModel,UNO_QUERY);
-
- // save the document
- if ( xMod.is() )
- {
- // detect filter
- const SfxFilter* pFilter = SfxFilter::GetDefaultFilter(lcl_getFactoryName(_xModel));
-// sal_Bool bHasFilter = pFilter != NULL;
-
- sal_Bool bRet = sal_False;
- // create temp file name with leading chars and extension
- Reference < XStorable > xStor( _xModel, UNO_QUERY );
- if ( xStor.is() )
- {
- String* pExt = NULL;
- INetURLObject aFileObj(_xModel->getURL());
- if ( aFileObj.hasExtension() )
- pExt = new String( String::CreateFromAscii( "." ) + (OUString) aFileObj.getExtension() );
-
- String aLeadingStr = lcl_createTempFileName(_xModel,_sAttachmentTitle);
-
- if ( pFilter && !pExt )
- {
- pExt = new String( pFilter->GetWildcard()().GetToken(0) );
- // erase the '*' from the extension (e.g. "*.sdw")
- pExt->Erase( 0, 1 );
- }
-
- {
- ::utl::TempFile aTempFile( aLeadingStr, pExt );
- rFileName = aTempFile.GetURL();
- }
- delete pExt;
- // save document to temp file
-
- // save document to temp file
- Sequence < PropertyValue > aArgs( _xModel->getArgs() );
- ::comphelper::MediaDescriptor aMedia(aArgs);
-
- if ( pFilter )
- {
- ::rtl::OUString sFilter(pFilter->GetFilterName());
- ::rtl::OUString sFilterName(RTL_CONSTASCII_USTRINGPARAM("FilterName"));
- if ( !aMedia.createItemIfMissing(sFilterName,sFilter) )
- aMedia[sFilterName] <<= sFilter;
- }
-
- ::rtl::OUString sURL(RTL_CONSTASCII_USTRINGPARAM("URL"));
- if ( !aMedia.createItemIfMissing(sURL,::rtl::OUString(rFileName)) )
- aMedia[sURL] <<= ::rtl::OUString(rFileName);
-
- ::rtl::OUString sSaveTo(RTL_CONSTASCII_USTRINGPARAM("SaveTo"));
- if ( !aMedia.createItemIfMissing(sSaveTo,sal_True) )
- aMedia[sSaveTo] <<= sal_True;
-
- ::rtl::OUString sReadOnly(RTL_CONSTASCII_USTRINGPARAM("ReadOnly"));
- if ( !aMedia.createItemIfMissing(sReadOnly,sal_False) )
- aMedia[sReadOnly] <<= sal_False;
-
- aMedia >> aArgs;
-
- try
- {
- Reference < XMultiServiceFactory > xMgr = ::comphelper::getProcessServiceFactory();
- SfxStoringHelper aHelper(xMgr);
- aHelper.GUIStoreModel(_xModel,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SaveAs")),aArgs, sal_False, ::rtl::OUString() );
- // xStor->storeToURL(rFileName,aArgs);
- bRet = sal_True;
- }
- catch(Exception&)
- {
- }
- }
-
- // restore old settings
-/* TODO
- if ( !bModified && xDocShell->IsEnableSetModified() )
- xDocShell->SetModified( FALSE );
-*/
- eRet = bRet ? SAVE_SUCCESSFULL : SAVE_ERROR;
- }
- }
- catch(Exception&)
- {
- OSL_ENSURE(0,"Exception catched!");
- }
-
- return eRet;
-}
-SfxMailModel::SaveResult SfxMailModel::SaveDocAsPDF( const ::rtl::OUString& _sAttachmentTitle
- , const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& _xModel
- , String& rFileName)
-{
- SaveResult eRet = SAVE_CANCELLED;
- try
- {
- Reference<XModifiable> xMod(_xModel,UNO_QUERY);
-
- // save the document
- if ( xMod.is() )
- {
- // Get PDF Filter from document
- ::rtl::OUString sPDFMediaType(RTL_CONSTASCII_USTRINGPARAM("application/pdf"));
-
- sal_Bool bRet = sal_False;
- // create temp file name with leading chars and extension
- Reference < XStorable > xStor( _xModel, UNO_QUERY );
- if ( xStor.is() )
- {
- String aLeadingStr = lcl_createTempFileName(_xModel,_sAttachmentTitle);
- String aPDFExtension = String::CreateFromAscii( ".pdf" );
- ::utl::TempFile aTempFile( aLeadingStr, &aPDFExtension );
-
- rFileName = aTempFile.GetURL();
-
- // save document to temp file
- Sequence < PropertyValue > aArgs( _xModel->getArgs() );
- ::comphelper::MediaDescriptor aMedia(aArgs);
-
- ::rtl::OUString sMediaType(RTL_CONSTASCII_USTRINGPARAM("MediaType"));
- if ( !aMedia.createItemIfMissing(sMediaType,sPDFMediaType) )
- aMedia[sMediaType] <<= sPDFMediaType;
-
- ::rtl::OUString sURL(RTL_CONSTASCII_USTRINGPARAM("URL"));
- if ( !aMedia.createItemIfMissing(sURL,::rtl::OUString(rFileName)) )
- aMedia[sURL] <<= ::rtl::OUString(rFileName);
- aMedia >> aArgs;
-
- try
- {
- Reference < XMultiServiceFactory > xMgr = ::comphelper::getProcessServiceFactory();
- SfxStoringHelper aHelper(xMgr);
- aHelper.GUIStoreModel(_xModel,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ExportToPDF")),aArgs, sal_False, ::rtl::OUString);
- // xStor->storeToURL(rFileName,aArgs);
- bRet = sal_True;
- }
- catch(Exception&)
- {
- }
-
- eRet = bRet ? SAVE_SUCCESSFULL : SAVE_CANCELLED;
-
- // restore old settings
- /* TODO
- if ( !bModified && xDocShell->IsEnableSetModified() )
- xDocShell->SetModified( FALSE );
- */
- }
- }
- }
- catch(Exception&)
- {
- OSL_ENSURE(0,"Exception catched!");
- }
-
- return eRet;
-}
-// -----------------------------------------------------------------------------
-SfxMailModel::SendMailResult SfxMailModel::AttachDocument( MailDocType _eMailDocType
- , const Reference< XModel >& _xModel
- , const ::rtl::OUString& _sAttachmentTitle)
-{
- SaveResult eSaveResult;
- String aFileName;
-
-// sal_Bool bSuccessfull = sal_False;
- if ( _eMailDocType == TYPE_SELF )
- eSaveResult = SaveDocument( _sAttachmentTitle,_xModel,aFileName);
- else
- eSaveResult = SaveDocAsPDF( _sAttachmentTitle,_xModel,aFileName);
-
- if ( eSaveResult == SAVE_SUCCESSFULL && aFileName.Len() )
- maAttachedDocuments.push_back(aFileName);
- return eSaveResult == SAVE_SUCCESSFULL ? SEND_MAIL_OK : SEND_MAIL_ERROR;
-}
-// -----------------------------------------------------------------------------
-
-IMPL_LINK_INLINE_START( SfxMailModel, DoneHdl, void*, EMPTYARG )
-{
- mbLoadDone = sal_True;
- return 0;
-}
-// -----------------------------------------------------------------------------
-IMPL_LINK_INLINE_END( SfxMailModel, DoneHdl, void*, EMPTYARG )
-
-SfxMailModel::SfxMailModel( const Reference< XFrame >& _xFrame) :
-
- mpToList ( NULL ),
- mpCcList ( NULL ),
- mpBccList ( NULL ),
- m_xCurrentFrame ( _xFrame ),
- mePriority ( PRIO_NORMAL ),
- mbLoadDone ( sal_True )
-
-{
-}
-
-SfxMailModel::~SfxMailModel()
-{
- ClearList( mpToList );
- delete mpToList;
- ClearList( mpCcList );
- delete mpCcList;
- ClearList( mpBccList );
- delete mpBccList;
-}
-
-void SfxMailModel::AddAddress( const String& rAddress, AddressRole eRole )
-{
- // don't add a empty address
- if ( rAddress.Len() > 0 )
- {
- AddressList_Impl* pList = NULL;
- if ( ROLE_TO == eRole )
- {
- if ( !mpToList )
- // create the list
- mpToList = new AddressList_Impl;
- pList = mpToList;
- }
- else if ( ROLE_CC == eRole )
- {
- if ( !mpCcList )
- // create the list
- mpCcList = new AddressList_Impl;
- pList = mpCcList;
- }
- else if ( ROLE_BCC == eRole )
- {
- if ( !mpBccList )
- // create the list
- mpBccList = new AddressList_Impl;
- pList = mpBccList;
- }
- else
- {
- DBG_ERRORFILE( "invalid address role" );
- }
-
- if ( pList )
- {
- // add address to list
- AddressItemPtr_Impl pAddress = new String( rAddress );
- pList->Insert( pAddress, LIST_APPEND );
- }
- }
-}
-
-SfxMailModel::SendMailResult SfxMailModel::Send( )
-{
- OSL_ENSURE(!maAttachedDocuments.empty(),"No document added!");
- SendMailResult eResult = SEND_MAIL_ERROR;
- if ( !maAttachedDocuments.empty() )
- {
-
- Reference < XMultiServiceFactory > xMgr = ::comphelper::getProcessServiceFactory();
- if ( xMgr.is() )
- {
- Reference< XSimpleMailClientSupplier > xSimpleMailClientSupplier;
-
- // Prefer the SimpleSystemMail service if available
- xSimpleMailClientSupplier = Reference< XSimpleMailClientSupplier >(
- xMgr->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.system.SimpleSystemMail" ))),
- UNO_QUERY );
-
- if ( ! xSimpleMailClientSupplier.is() )
- {
- xSimpleMailClientSupplier = Reference< XSimpleMailClientSupplier >(
- xMgr->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.system.SimpleCommandMail" ))),
- UNO_QUERY );
- }
-
- if ( xSimpleMailClientSupplier.is() )
- {
- Reference< XSimpleMailClient > xSimpleMailClient = xSimpleMailClientSupplier->querySimpleMailClient();
-
- if ( !xSimpleMailClient.is() )
- {
- // no mail client support => message box!
- return SEND_MAIL_ERROR;
- }
-
- // we have a simple mail client
- Reference< XSimpleMailMessage > xSimpleMailMessage = xSimpleMailClient->createSimpleMailMessage();
- if ( xSimpleMailMessage.is() )
- {
- sal_Int32 nSendFlags = SimpleMailClientFlags::DEFAULTS;
- if ( maFromAddress.Len() == 0 )
- {
- // from address not set, try figure out users e-mail address
- CreateFromAddress_Impl( maFromAddress );
- }
- xSimpleMailMessage->setOriginator( maFromAddress );
-
- sal_Int32 nToCount = mpToList ? mpToList->Count() : 0;
- sal_Int32 nCcCount = mpCcList ? mpCcList->Count() : 0;
- sal_Int32 nCcSeqCount = nCcCount;
-
- // set recipient (only one) for this simple mail server!!
- if ( nToCount > 1 )
- {
- nCcSeqCount = nToCount - 1 + nCcCount;
- xSimpleMailMessage->setRecipient( *mpToList->GetObject( 0 ));
- nSendFlags = SimpleMailClientFlags::NO_USER_INTERFACE;
- }
- else if ( nToCount == 1 )
- {
- xSimpleMailMessage->setRecipient( *mpToList->GetObject( 0 ));
- nSendFlags = SimpleMailClientFlags::NO_USER_INTERFACE;
- }
-
- // all other recipient must be handled with CC recipients!
- if ( nCcSeqCount > 0 )
- {
- sal_Int32 nIndex = 0;
- Sequence< OUString > aCcRecipientSeq;
-
- aCcRecipientSeq.realloc( nCcSeqCount );
- if ( nCcSeqCount > nCcCount )
- {
- for ( sal_Int32 i = 1; i < nToCount; ++i )
- {
- aCcRecipientSeq[nIndex++] = *mpToList->GetObject(i);
- }
- }
-
- for ( sal_Int32 i = 0; i < nCcCount; i++ )
- {
- aCcRecipientSeq[nIndex++] = *mpCcList->GetObject(i);
- }
- xSimpleMailMessage->setCcRecipient( aCcRecipientSeq );
- }
-
- sal_Int32 nBccCount = mpBccList ? mpBccList->Count() : 0;
- if ( nBccCount > 0 )
- {
- Sequence< OUString > aBccRecipientSeq( nBccCount );
- for ( sal_Int32 i = 0; i < nBccCount; ++i )
- {
- aBccRecipientSeq[i] = *mpBccList->GetObject(i);
- }
- xSimpleMailMessage->setBccRecipient( aBccRecipientSeq );
- }
-
- Sequence< OUString > aAttachmentSeq(&(maAttachedDocuments[0]),maAttachedDocuments.size());
-
- xSimpleMailMessage->setSubject( maSubject );
- xSimpleMailMessage->setAttachement( aAttachmentSeq );
-
- // Bugfix: #95743#
- // Due to the current clipboard implementation we cannot stop the main thread
- // because the clipboard implementation calls the main thread from another thread
- // and this would result in a deadlock!
- // Currently we create a thread to send a message and process all remaining error
- // handling in this thread!!
-
- OMailSendThreadImpl* pMailSendThread = new OMailSendThreadImpl( xSimpleMailClient, xSimpleMailMessage, m_xCurrentFrame,nSendFlags );
- pMailSendThread->create();
-
- // Return always true as the real error handling occurss in the OMailSendThreadImpl-implementation!
- eResult = SEND_MAIL_OK;
- }
- }
- }
- }
- else
- eResult = SEND_MAIL_CANCELLED;
-
- return eResult;
-}
diff --git a/sfx2/source/dialog/makefile.mk b/sfx2/source/dialog/makefile.mk
deleted file mode 100644
index 4c56cd683e34..000000000000
--- a/sfx2/source/dialog/makefile.mk
+++ /dev/null
@@ -1,127 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME=sfx2
-TARGET=dialog
-
-# --- Settings -----------------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------------
-
-EXCEPTIONSFILES=\
- $(SLO)$/filedlghelper.obj \
- $(SLO)$/filtergrouping.obj \
- $(SLO)$/itemconnect.obj \
- $(SLO)$/mailmodel.obj \
- $(SLO)$/partwnd.obj \
- $(SLO)$/recfloat.obj \
- $(SLO)$/templdlg.obj \
- $(SLO)$/dinfdlg.obj \
- $(SLO)$/dockwin.obj \
- $(SLO)$/taskpane.obj
-
-SLOFILES =\
- $(EXCEPTIONSFILES) \
- $(SLO)$/about.obj \
- $(SLO)$/alienwarn.obj \
- $(SLO)$/basedlgs.obj \
- $(SLO)$/dinfedt.obj \
- $(SLO)$/intro.obj \
- $(SLO)$/mgetempl.obj \
- $(SLO)$/navigat.obj \
- $(SLO)$/newstyle.obj \
- $(SLO)$/passwd.obj \
- $(SLO)$/printopt.obj \
- $(SLO)$/sfxdlg.obj \
- $(SLO)$/splitwin.obj \
- $(SLO)$/srchdlg.obj \
- $(SLO)$/styfitem.obj \
- $(SLO)$/styledlg.obj \
- $(SLO)$/tabdlg.obj \
- $(SLO)$/tplcitem.obj \
- $(SLO)$/tplpitem.obj \
- $(SLO)$/versdlg.obj \
- $(SLO)$/securitypage.obj \
- $(SLO)$/titledockwin.obj
-
-SRS1NAME=$(TARGET)
-SRC1FILES =\
- recfloat.src \
- alienwarn.src \
- dialog.src \
- dinfdlg.src \
- dinfedt.src \
- filedlghelper.src \
- mailwindow.src \
- mgetempl.src \
- newstyle.src \
- passwd.src \
- templdlg.src \
- versdlg.src \
- printopt.src \
- srchdlg.src \
- securitypage.src \
- titledockwin.src \
- taskpane.src
-
-.IF "$(BUILD_VER_STRING)"!=""
-.IF "$(GUI)"=="UNX"
-CFLAGS+=-DBUILD_VER_STRING='"$(BUILD_VER_STRING)"'
-.ELSE # "$(GUI)"=="UNX"
-CFLAGS+=-DBUILD_VER_STRING="$(subst,",\" "$(BUILD_VER_STRING)")"
-.ENDIF # "$(GUI)"=="UNX"
-.ENDIF
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
-$(INCCOM)$/cuilib.hxx: makefile.mk
-.IF "$(GUI)"=="UNX"
- $(RM) $@
- @echo \#define DLL_NAME \"libcui$(DLLPOSTFIX)$(DLLPOST)\" >$@
-.ELSE
- @echo $(EMQ)#define DLL_NAME $(EMQ)"cui$(DLLPOSTFIX)$(DLLPOST)$(EMQ)" >$@
-.ENDIF
-
-$(SLO)$/sfxdlg.obj : $(INCCOM)$/cuilib.hxx
-
-$(SLO)$/about.obj : $(INCCOM)$/aboutbmpnames.hxx
-
-.INCLUDE .IGNORE : $(MISC)$/about_bmp_names.mk
-
-.IF "$(ABOUT_BITMAPS:f)"!="$(LASTTIME_ABOUT_BITMAPS)"
-DO_PHONY=.PHONY
-.ENDIF # "$(ABOUT_BITMAPS:f)"!="$(LASTTIME_ABOUT_BITMAPS)"
-
-$(INCCOM)$/aboutbmpnames.hxx $(DO_PHONY):
- echo const char ABOUT_BITMAP_STRINGLIST[]=$(EMQ)"$(ABOUT_BITMAPS:f:t",")$(EMQ)"$(EMQ); > $@
- echo LASTTIME_ABOUT_BITMAPS=$(ABOUT_BITMAPS:f) > $(MISC)$/about_bmp_names.mk
diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx
index 1f5472cf2052..d97847f5b6e0 100644
--- a/sfx2/source/dialog/mgetempl.cxx
+++ b/sfx2/source/dialog/mgetempl.cxx
@@ -46,7 +46,7 @@
#include <sfx2/mgetempl.hxx>
#include <sfx2/objsh.hxx>
#include "sfxtypes.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/module.hxx>
#include <sfx2/sfx.hrc>
@@ -65,6 +65,7 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage( Window* pParent, const SfxItem
aNameFt ( this, SfxResId( FT_NAME ) ),
aNameEd ( this, SfxResId( ED_NAME ) ),
+ aNameMLE ( this, SfxResId( MLE_NAME ) ),
aAutoCB ( this, SfxResId( CB_AUTO ) ),
aFollowFt ( this, SfxResId( FT_NEXT ) ),
@@ -147,8 +148,17 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage( Window* pParent, const SfxItem
}
aNameEd.SetText(pStyle->GetName());
- if ( !pStyle->IsUserDefined() )
+ // Set the field read-only if it is NOT an user-defined style
+ // but allow selecting and copying
+ if ( !pStyle->IsUserDefined() ) {
aNameEd.SetReadOnly();
+ aNameEd.Hide();
+
+ aNameMLE.SetControlBackground( GetSettings().GetStyleSettings().GetDialogColor() );
+ aNameMLE.SetText( pStyle->GetName() );
+ aNameMLE.EnableCursor( FALSE );
+ aNameMLE.Show();
+ }
if ( pStyle->HasFollowSupport() && pPool )
{
diff --git a/sfx2/source/dialog/mgetempl.hrc b/sfx2/source/dialog/mgetempl.hrc
index e998baba939d..a34700846f9c 100644
--- a/sfx2/source/dialog/mgetempl.hrc
+++ b/sfx2/source/dialog/mgetempl.hrc
@@ -25,6 +25,7 @@
*
************************************************************************/
#define ED_NAME 2
+#define MLE_NAME 13
#define LB_NEXT 4
#define FT_BASE 5
#define LB_BASE 6
diff --git a/sfx2/source/dialog/mgetempl.src b/sfx2/source/dialog/mgetempl.src
index bfa3948d90ac..c478ed715646 100644
--- a/sfx2/source/dialog/mgetempl.src
+++ b/sfx2/source/dialog/mgetempl.src
@@ -49,6 +49,14 @@ TabPage TP_MANAGE_STYLES
Pos = MAP_APPFONT ( 70 , 6 ) ;
Size = MAP_APPFONT ( 184 , 12 ) ;
};
+ MultiLineEdit MLE_NAME
+ {
+ Pos = MAP_APPFONT ( 70 , 8 ) ;
+ Size = MAP_APPFONT ( 80 , 12 ) ;
+ Border = FALSE;
+ ReadOnly = TRUE;
+ Hide = TRUE;
+ };
CheckBox CB_AUTO
{
HelpID = "sfx2:CheckBox:TP_MANAGE_STYLES:CB_AUTO";
diff --git a/sfx2/source/dialog/navigat.cxx b/sfx2/source/dialog/navigat.cxx
index d7f258e7ccb3..290886528e24 100644
--- a/sfx2/source/dialog/navigat.cxx
+++ b/sfx2/source/dialog/navigat.cxx
@@ -36,7 +36,7 @@
#include <sfx2/navigat.hxx>
#include <sfx2/sfx.hrc>
#include <sfx2/app.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "helpid.hrc"
SFX_IMPL_DOCKINGWINDOW( SfxNavigatorWrapper , SID_NAVIGATOR );
diff --git a/sfx2/source/dialog/newstyle.cxx b/sfx2/source/dialog/newstyle.cxx
index 7193129838b2..8235333857d5 100644
--- a/sfx2/source/dialog/newstyle.cxx
+++ b/sfx2/source/dialog/newstyle.cxx
@@ -36,7 +36,7 @@
#include <sfx2/newstyle.hxx>
#include "dialog.hrc"
#include "newstyle.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
// PRIVATE METHODES ------------------------------------------------------
diff --git a/sfx2/source/dialog/passwd.cxx b/sfx2/source/dialog/passwd.cxx
index e7cc73ca04bf..455479b9d125 100644
--- a/sfx2/source/dialog/passwd.cxx
+++ b/sfx2/source/dialog/passwd.cxx
@@ -35,20 +35,21 @@
#include <sfx2/passwd.hxx>
#include "sfxtypes.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "dialog.hrc"
#include "passwd.hrc"
#include "vcl/sound.hxx"
+#include "vcl/arrange.hxx"
// -----------------------------------------------------------------------
-IMPL_LINK_INLINE_START( SfxPasswordDialog, EditModifyHdl, Edit *, EMPTYARG )
+IMPL_LINK_INLINE_START( SfxPasswordDialog, EditModifyHdl, Edit *, pEdit )
{
- if( mbAsciiOnly )
+ if( mbAsciiOnly && (pEdit == &maPasswordED || pEdit == &maPassword2ED) )
{
- rtl::OUString aTest( maPasswordED.GetText() );
+ rtl::OUString aTest( pEdit->GetText() );
const sal_Unicode* pTest = aTest.getStr();
sal_Int32 nLen = aTest.getLength();
rtl::OUStringBuffer aFilter( nLen );
@@ -64,12 +65,15 @@ IMPL_LINK_INLINE_START( SfxPasswordDialog, EditModifyHdl, Edit *, EMPTYARG )
if( bReset )
{
Sound::Beep( SOUND_ERROR );
- maPasswordED.SetSelection( Selection( 0, nLen ) );
- maPasswordED.ReplaceSelected( aFilter.makeStringAndClear() );
+ pEdit->SetSelection( Selection( 0, nLen ) );
+ pEdit->ReplaceSelected( aFilter.makeStringAndClear() );
}
}
- maOKBtn.Enable( maPasswordED.GetText().Len() >= mnMinLen );
+ bool bEnable = maPasswordED.GetText().Len() >= mnMinLen;
+ if( maPassword2ED.IsVisible() )
+ bEnable = (bEnable && (maPassword2ED.GetText().Len() >= mnMinLen));
+ maOKBtn.Enable( bEnable );
return 0;
}
IMPL_LINK_INLINE_END( SfxPasswordDialog, EditModifyHdl, Edit *, EMPTYARG )
@@ -78,8 +82,11 @@ IMPL_LINK_INLINE_END( SfxPasswordDialog, EditModifyHdl, Edit *, EMPTYARG )
IMPL_LINK( SfxPasswordDialog, OKHdl, OKButton *, EMPTYARG )
{
- if ( ( ( mnExtras & SHOWEXTRAS_CONFIRM ) == SHOWEXTRAS_CONFIRM ) &&
- ( GetConfirm() != GetPassword() ) )
+ bool bConfirmFailed = ( ( mnExtras & SHOWEXTRAS_CONFIRM ) == SHOWEXTRAS_CONFIRM ) &&
+ ( GetConfirm() != GetPassword() );
+ if( ( mnExtras & SHOWEXTRAS_CONFIRM2 ) == SHOWEXTRAS_CONFIRM2 && ( GetConfirm2() != GetPassword2() ) )
+ bConfirmFailed = true;
+ if ( bConfirmFailed )
{
ErrorBox aBox( this, SfxResId( MSG_ERROR_WRONG_CONFIRM ) );
aBox.Execute();
@@ -97,27 +104,83 @@ SfxPasswordDialog::SfxPasswordDialog( Window* pParent, const String* pGroupText
ModalDialog( pParent, SfxResId ( DLG_PASSWD ) ),
+ maPasswordBox ( this, SfxResId( GB_PASSWD_PASSWORD ) ),
maUserFT ( this, SfxResId( FT_PASSWD_USER ) ),
maUserED ( this, SfxResId( ED_PASSWD_USER ) ),
maPasswordFT ( this, SfxResId( FT_PASSWD_PASSWORD ) ),
maPasswordED ( this, SfxResId( ED_PASSWD_PASSWORD ) ),
maConfirmFT ( this, SfxResId( FT_PASSWD_CONFIRM ) ),
maConfirmED ( this, SfxResId( ED_PASSWD_CONFIRM ) ),
- maPasswordBox ( this, SfxResId( GB_PASSWD_PASSWORD ) ),
+ maPassword2Box ( this, 0 ),
+ maPassword2FT ( this, SfxResId( FT_PASSWD_PASSWORD2 ) ),
+ maPassword2ED ( this, SfxResId( ED_PASSWD_PASSWORD2 ) ),
+ maConfirm2FT ( this, SfxResId( FT_PASSWD_CONFIRM2 ) ),
+ maConfirm2ED ( this, SfxResId( ED_PASSWD_CONFIRM2 ) ),
maOKBtn ( this, SfxResId( BTN_PASSWD_OK ) ),
maCancelBtn ( this, SfxResId( BTN_PASSWD_CANCEL ) ),
maHelpBtn ( this, SfxResId( BTN_PASSWD_HELP ) ),
- maConfirmStr ( SfxResId( STR_PASSWD_CONFIRM ) ),
- mnMinLen ( 5 ),
+ mnMinLen ( 1 ),
mnExtras ( 0 ),
mbAsciiOnly ( false )
{
FreeResource();
+ // setup layout
+ boost::shared_ptr<vcl::RowOrColumn> xLayout =
+ boost::dynamic_pointer_cast<vcl::RowOrColumn>( getLayout() );
+ xLayout->setOuterBorder( 0 );
+
+ // get edit size, should be used as minimum
+ Size aEditSize( maUserED.GetSizePixel() );
+
+ // add labelcolumn for the labeled edit fields
+ boost::shared_ptr<vcl::LabelColumn> xEdits( new vcl::LabelColumn( xLayout.get() ) );
+ size_t nChildIndex = xLayout->addChild( xEdits );
+ xLayout->setBorders( nChildIndex, -2, -2, -2, 0 );
+
+ // add group box
+ xEdits->addWindow( &maPasswordBox );
+
+ // add user line
+ xEdits->addRow( &maUserFT, &maUserED, -2, aEditSize );
+
+ // add password line
+ xEdits->addRow( &maPasswordFT, &maPasswordED, -2, aEditSize );
+
+ // add confirm line
+ xEdits->addRow( &maConfirmFT, &maConfirmED, -2, aEditSize );
+
+ // add second group box
+ xEdits->addWindow( &maPassword2Box );
+
+ // add second password line
+ xEdits->addRow( &maPassword2FT, &maPassword2ED, -2, aEditSize );
+
+ // add second confirm line
+ xEdits->addRow( &maConfirm2FT, &maConfirm2ED, -2, aEditSize );
+
+ // add a FixedLine
+ FixedLine* pLine = new FixedLine( this, 0 );
+ pLine->Show();
+ addWindow( pLine, true );
+ xLayout->addWindow( pLine );
+
+ // add button column
+ Size aBtnSize( maCancelBtn.GetSizePixel() );
+ boost::shared_ptr<vcl::RowOrColumn> xButtons( new vcl::RowOrColumn( xLayout.get(), false ) );
+ nChildIndex = xLayout->addChild( xButtons );
+ xLayout->setBorders( nChildIndex, -2, 0, -2, -2 );
+
+ size_t nBtnIndex = xButtons->addWindow( &maHelpBtn, 0, aBtnSize );
+ xButtons->addChild( new vcl::Spacer( xButtons.get() ) );
+ nBtnIndex = xButtons->addWindow( &maOKBtn, 0, aBtnSize );
+ nBtnIndex = xButtons->addWindow( &maCancelBtn, 0, aBtnSize );
+
Link aLink = LINK( this, SfxPasswordDialog, EditModifyHdl );
maPasswordED.SetModifyHdl( aLink );
+ maPassword2ED.SetModifyHdl( aLink );
aLink = LINK( this, SfxPasswordDialog, OKHdl );
maOKBtn.SetClickHdl( aLink );
@@ -146,66 +209,46 @@ void SfxPasswordDialog::SetMaxLen( USHORT nLen )
short SfxPasswordDialog::Execute()
{
- if ( mnExtras < SHOWEXTRAS_ALL )
+ maUserFT.Hide();
+ maUserED.Hide();
+ maConfirmFT.Hide();
+ maConfirmED.Hide();
+ maPasswordFT.Hide();
+ maPassword2Box.Hide();
+ maPassword2FT.Hide();
+ maPassword2ED.Hide();
+ maPassword2FT.Hide();
+ maConfirm2FT.Hide();
+ maConfirm2ED.Hide();
+
+ if( mnExtras != SHOWEXTRAS_NONE )
+ maPasswordFT.Show();
+ if( (mnExtras & SHOWEXTRAS_USER ) )
{
- Size a3Size = LogicToPixel( Size( 3, 3 ), MAP_APPFONT );
- Size a6Size = LogicToPixel( Size( 6, 6 ), MAP_APPFONT );
- long nMinHeight = maHelpBtn.GetPosPixel().Y() +
- maHelpBtn.GetSizePixel().Height() + a6Size.Height();
- USHORT nRowHided = 1;
-
- if ( SHOWEXTRAS_NONE == mnExtras )
- {
- maUserFT.Hide();
- maUserED.Hide();
- maConfirmFT.Hide();
- maConfirmED.Hide();
- maPasswordFT.Hide();
-
- Point aPos = maUserFT.GetPosPixel();
- long nEnd = maUserED.GetPosPixel().X() + maUserED.GetSizePixel().Width();
- maPasswordED.SetPosPixel( aPos );
- Size aSize = maPasswordED.GetSizePixel();
- aSize.Width() = nEnd - aPos.X();
- maPasswordED.SetSizePixel( aSize );
-
- nRowHided = 2;
- }
- else if ( SHOWEXTRAS_USER == mnExtras )
- {
- maConfirmFT.Hide();
- maConfirmED.Hide();
- }
- else if ( SHOWEXTRAS_CONFIRM == mnExtras )
- {
- maUserFT.Hide();
- maUserED.Hide();
-
- Point aPwdPos1 = maPasswordFT.GetPosPixel();
- Point aPwdPos2 = maPasswordED.GetPosPixel();
-
- Point aPos = maUserFT.GetPosPixel();
- maPasswordFT.SetPosPixel( aPos );
- aPos = maUserED.GetPosPixel();
- maPasswordED.SetPosPixel( aPos );
-
- maConfirmFT.SetPosPixel( aPwdPos1 );
- maConfirmED.SetPosPixel( aPwdPos2 );
- }
-
- Size aBoxSize = maPasswordBox.GetSizePixel();
- aBoxSize.Height() -= ( nRowHided * maUserED.GetSizePixel().Height() );
- aBoxSize.Height() -= ( nRowHided * a3Size.Height() );
- maPasswordBox.SetSizePixel( aBoxSize );
-
- long nDlgHeight = maPasswordBox.GetPosPixel().Y() + aBoxSize.Height() + a6Size.Height();
- if ( nDlgHeight < nMinHeight )
- nDlgHeight = nMinHeight;
- Size aDlgSize = GetOutputSizePixel();
- aDlgSize.Height() = nDlgHeight;
- SetOutputSizePixel( aDlgSize );
+ maUserFT.Show();
+ maUserED.Show();
+ }
+ if( (mnExtras & SHOWEXTRAS_CONFIRM ) )
+ {
+ maConfirmFT.Show();
+ maConfirmED.Show();
+ }
+ if( (mnExtras & SHOWEXTRAS_PASSWORD2) )
+ {
+ maPassword2Box.Show();
+ maPassword2FT.Show();
+ maPassword2ED.Show();
+ }
+ if( (mnExtras & SHOWEXTRAS_CONFIRM2 ) )
+ {
+ maConfirm2FT.Show();
+ maConfirm2ED.Show();
}
+ boost::shared_ptr<vcl::RowOrColumn> xLayout =
+ boost::dynamic_pointer_cast<vcl::RowOrColumn>( getLayout() );
+ SetSizePixel( xLayout->getOptimalSize( WINDOWSIZE_PREFERRED ) );
+
return ModalDialog::Execute();
}
diff --git a/sfx2/source/dialog/passwd.hrc b/sfx2/source/dialog/passwd.hrc
index 5be0446fd752..5c9b07c7a130 100644
--- a/sfx2/source/dialog/passwd.hrc
+++ b/sfx2/source/dialog/passwd.hrc
@@ -41,7 +41,10 @@
#define BTN_PASSWD_CANCEL 21
#define BTN_PASSWD_HELP 22
-#define STR_PASSWD_CONFIRM 30
+#define FT_PASSWD_PASSWORD2 25
+#define ED_PASSWD_PASSWORD2 26
+#define FT_PASSWD_CONFIRM2 27
+#define ED_PASSWD_CONFIRM2 28
#endif
diff --git a/sfx2/source/dialog/passwd.src b/sfx2/source/dialog/passwd.src
index 79cbb382ad36..426fb9986d5a 100644
--- a/sfx2/source/dialog/passwd.src
+++ b/sfx2/source/dialog/passwd.src
@@ -86,6 +86,32 @@ ModalDialog DLG_PASSWD
Size = MAP_APPFONT( 132, 8 );
Text [ en-US ] = "Password" ;
};
+ FixedText FT_PASSWD_PASSWORD2
+ {
+ Pos = MAP_APPFONT( 12, 30 );
+ Size = MAP_APPFONT( 42, 10 );
+ Text [ en-US ] = "P~assword";
+ };
+ Edit ED_PASSWD_PASSWORD2
+ {
+ Border = TRUE;
+ PassWord = TRUE;
+ Pos = MAP_APPFONT( 57, 29 );
+ Size = MAP_APPFONT( 75, 12 );
+ };
+ FixedText FT_PASSWD_CONFIRM2
+ {
+ Pos = MAP_APPFONT( 12, 45 );
+ Size = MAP_APPFONT( 42, 10 );
+ Text [ en-US ] = "Confir~m";
+ };
+ Edit ED_PASSWD_CONFIRM2
+ {
+ Border = TRUE;
+ PassWord = TRUE;
+ Pos = MAP_APPFONT( 57, 44 );
+ Size = MAP_APPFONT( 75, 12 );
+ };
OKButton BTN_PASSWD_OK
{
Disable = TRUE;
@@ -103,10 +129,6 @@ ModalDialog DLG_PASSWD
Pos = MAP_APPFONT( 144, 43 );
Size = MAP_APPFONT( 50, 14 );
};
- String STR_PASSWD_CONFIRM
- {
- Text [ en-US ] = "Confirm password" ;
- };
};
// ********************************************************************** EOF
diff --git a/sfx2/source/dialog/printopt.cxx b/sfx2/source/dialog/printopt.cxx
index 80902204fa88..6b26cf9fb504 100644
--- a/sfx2/source/dialog/printopt.cxx
+++ b/sfx2/source/dialog/printopt.cxx
@@ -38,7 +38,7 @@
#include "printopt.hrc"
#include "dialog.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/viewsh.hxx>
#include <sfx2/printopt.hxx>
diff --git a/sfx2/source/dialog/recfloat.cxx b/sfx2/source/dialog/recfloat.cxx
index c678cfdffb6e..aaabdd3e5d74 100644
--- a/sfx2/source/dialog/recfloat.cxx
+++ b/sfx2/source/dialog/recfloat.cxx
@@ -42,13 +42,13 @@
#include "recfloat.hxx"
#include "dialog.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/app.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/dispatch.hxx>
#include <sfx2/viewfrm.hxx>
#include <sfx2/viewsh.hxx>
-#include "imagemgr.hxx"
+#include "sfx2/imagemgr.hxx"
using namespace ::com::sun::star;
diff --git a/sfx2/source/dialog/sfxdlg.cxx b/sfx2/source/dialog/sfxdlg.cxx
index d62ed70b8490..becab5097ec3 100755
--- a/sfx2/source/dialog/sfxdlg.cxx
+++ b/sfx2/source/dialog/sfxdlg.cxx
@@ -29,7 +29,7 @@
#include "precompiled_sfx2.hxx"
#include <sfx2/sfxdlg.hxx>
-#include "cuilib.hxx"
+//#include "cuilib.hxx"
#include <osl/module.hxx>
#include <tools/string.hxx>
diff --git a/sfx2/source/dialog/splitwin.cxx b/sfx2/source/dialog/splitwin.cxx
index f6e5f96cf0bd..d4cc7950612f 100644
--- a/sfx2/source/dialog/splitwin.cxx
+++ b/sfx2/source/dialog/splitwin.cxx
@@ -49,7 +49,7 @@
#include <sfx2/dockwin.hxx>
#include <sfx2/app.hxx>
#include "dialog.hrc"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/mnumgr.hxx>
#include "virtmenu.hxx"
#include <sfx2/msgpool.hxx>
diff --git a/sfx2/source/dialog/srchdlg.cxx b/sfx2/source/dialog/srchdlg.cxx
index 0134b8d58bfa..f4d2392c9017 100644
--- a/sfx2/source/dialog/srchdlg.cxx
+++ b/sfx2/source/dialog/srchdlg.cxx
@@ -29,7 +29,7 @@
#include "precompiled_sfx2.hxx"
#include "srchdlg.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/sfxuno.hxx>
#include "srchdlg.hrc"
diff --git a/sfx2/source/dialog/styledlg.cxx b/sfx2/source/dialog/styledlg.cxx
index ff6406f0d5d3..e1d01de94955 100644
--- a/sfx2/source/dialog/styledlg.cxx
+++ b/sfx2/source/dialog/styledlg.cxx
@@ -39,7 +39,7 @@
#include <sfx2/styledlg.hxx>
#include <sfx2/mgetempl.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/sfxuno.hxx>
#include "dialog.hrc"
diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx
index 3c7a58cd09f9..d149bea792dc 100644
--- a/sfx2/source/dialog/tabdlg.cxx
+++ b/sfx2/source/dialog/tabdlg.cxx
@@ -42,8 +42,8 @@
#include <sfx2/tabdlg.hxx>
#include <sfx2/viewfrm.hxx>
#include <sfx2/app.hxx>
-#include "sfxresid.hxx"
-#include "sfxhelp.hxx"
+#include "sfx2/sfxresid.hxx"
+#include "sfx2/sfxhelp.hxx"
#include <sfx2/ctrlitem.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/sfxdlg.hxx>
diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index a3d9fd7b4ed2..b10e634be231 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -48,7 +48,7 @@
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/frame/XModuleManager.hpp>
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include <sfx2/app.hxx>
#include <sfx2/dispatch.hxx>
#include <sfx2/bindings.hxx>
@@ -60,8 +60,8 @@
#include <sfx2/objsh.hxx>
#include <sfx2/viewsh.hxx>
#include <sfx2/newstyle.hxx>
-#include "tplpitem.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/tplpitem.hxx"
+#include "sfx2/sfxresid.hxx"
#include "templdlg.hrc"
#include <sfx2/sfx.hrc>
@@ -73,7 +73,7 @@
#include "docvor.hxx"
#include <sfx2/doctempl.hxx>
#include <sfx2/module.hxx>
-#include "imgmgr.hxx"
+#include "sfx2/imgmgr.hxx"
#include "helpid.hrc"
#include "appdata.hxx"
#include <sfx2/viewfrm.hxx>
@@ -756,7 +756,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonTemplateDialog_Impl( SfxBindings* pB, Sfx
DEFINE_CONST_UNICODE("com.sun.star.frame.ModuleManager") ), UNO_QUERY ),
pbDeleted ( NULL ),
- aFmtLb ( this, WB_BORDER | WB_TABSTOP | WB_SORT ),
+ aFmtLb ( this, WB_BORDER | WB_TABSTOP | WB_SORT | WB_QUICK_SEARCH ),
aFilterLb ( pW, WB_BORDER | WB_DROPDOWN | WB_TABSTOP ),
nActFamily ( 0xffff ),
@@ -780,7 +780,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonTemplateDialog_Impl( SfxBindings* pB, Sfx
{
aFmtLb.SetHelpId( HID_TEMPLATE_FMT );
aFilterLb.SetHelpId( HID_TEMPLATE_FILTER );
- aFmtLb.SetWindowBits( WB_SORT | WB_HIDESELECTION );
+ aFmtLb.SetStyle( aFmtLb.GetStyle() | WB_SORT | WB_HIDESELECTION );
Font aFont = aFmtLb.GetFont();
aFont.SetWeight( WEIGHT_NORMAL );
aFmtLb.SetFont( aFont );
@@ -823,7 +823,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonTemplateDialog_Impl( SfxBindings* pB, Mod
bBindingUpdate ( TRUE )
{
- aFmtLb.SetWindowBits( WB_SORT );
+ aFmtLb.SetStyle( aFmtLb.GetStyle() | WB_SORT );
}
//-------------------------------------------------------------------------
@@ -1776,7 +1776,7 @@ IMPL_LINK( SfxCommonTemplateDialog_Impl, FilterSelectHdl, ListBox *, pBox )
pTreeBox = new StyleTreeListBox_Impl(
this, WB_HASBUTTONS | WB_HASLINES |
WB_BORDER | WB_TABSTOP | WB_HASLINESATROOT |
- WB_HASBUTTONSATROOT | WB_HIDESELECTION );
+ WB_HASBUTTONSATROOT | WB_HIDESELECTION | WB_QUICK_SEARCH );
pTreeBox->SetFont( aFmtLb.GetFont() );
pTreeBox->SetPosSizePixel(aFmtLb.GetPosPixel(), aFmtLb.GetSizePixel());
diff --git a/sfx2/source/dialog/tplcitem.cxx b/sfx2/source/dialog/tplcitem.cxx
index 5d7569300cf8..0e03106b0d5e 100644
--- a/sfx2/source/dialog/tplcitem.cxx
+++ b/sfx2/source/dialog/tplcitem.cxx
@@ -33,12 +33,9 @@
#include <svl/intitem.hxx>
#include <vcl/svapp.hxx>
-#ifndef GCC
-#endif
-
#include <sfx2/templdlg.hxx>
#include <sfx2/bindings.hxx>
-#include "tplpitem.hxx"
+#include "sfx2/tplpitem.hxx"
#include "tplcitem.hxx"
#include "templdgi.hxx"
diff --git a/sfx2/source/dialog/tplpitem.cxx b/sfx2/source/dialog/tplpitem.cxx
index 7b81fb54cdbd..566c379df508 100644
--- a/sfx2/source/dialog/tplpitem.cxx
+++ b/sfx2/source/dialog/tplpitem.cxx
@@ -30,10 +30,7 @@
// INCLUDE ---------------------------------------------------------------
-#ifndef GCC
-#endif
-
-#include "tplpitem.hxx"
+#include "sfx2/tplpitem.hxx"
#include <com/sun/star/frame/status/Template.hpp>
diff --git a/sfx2/source/dialog/versdlg.cxx b/sfx2/source/dialog/versdlg.cxx
index beb43c192810..f2a0cf2790f3 100644
--- a/sfx2/source/dialog/versdlg.cxx
+++ b/sfx2/source/dialog/versdlg.cxx
@@ -46,7 +46,7 @@
#include "versdlg.hrc"
#include "versdlg.hxx"
#include <sfx2/viewfrm.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/docfile.hxx>
#include <sfx2/objsh.hxx>
#include <sfx2/sfxsids.hrc>
@@ -239,7 +239,7 @@ SfxVersionDialog::SfxVersionDialog ( SfxViewFrame* pVwFrame, BOOL bIsSaveVersion
aVersionBox.SetDoubleClickHdl( LINK( this, SfxVersionDialog, DClickHdl_Impl ) );
aVersionBox.GrabFocus();
- aVersionBox.SetWindowBits( WB_HSCROLL | WB_CLIPCHILDREN );
+ aVersionBox.SetStyle( aVersionBox.GetStyle() | WB_HSCROLL | WB_CLIPCHILDREN );
aVersionBox.SetSelectionMode( SINGLE_SELECTION );
aVersionBox.SetTabs( &nTabs_Impl[0], MAP_APPFONT );
aVersionBox.Resize(); // OS: Hack fuer richtige Selektion
@@ -329,13 +329,13 @@ void SfxVersionDialog::Open_Impl()
SfxStringItem aReferer( SID_REFERER, DEFINE_CONST_UNICODE("private:user") );
SfxStringItem aFile( SID_FILE_NAME, pObjShell->GetMedium()->GetName() );
- ::rtl::OUString aPassString;
- if ( GetPasswd_Impl( pObjShell->GetMedium()->GetItemSet(), aPassString ) )
+ uno::Sequence< beans::NamedValue > aEncryptionData;
+ if ( GetEncryptionData_Impl( pObjShell->GetMedium()->GetItemSet(), aEncryptionData ) )
{
// there is a password, it should be used during the opening
- SfxStringItem aPassItem( SID_PASSWORD, aPassString );
+ SfxUnoAnyItem aEncryptionDataItem( SID_ENCRYPTIONDATA, uno::makeAny( aEncryptionData ) );
pViewFrame->GetDispatcher()->Execute(
- SID_OPENDOC, SFX_CALLMODE_ASYNCHRON, &aFile, &aItem, &aTarget, &aReferer, &aPassItem, 0L );
+ SID_OPENDOC, SFX_CALLMODE_ASYNCHRON, &aFile, &aItem, &aTarget, &aReferer, &aEncryptionDataItem, 0L );
}
else
pViewFrame->GetDispatcher()->Execute(
diff --git a/sfx2/source/doc/QuerySaveDocument.cxx b/sfx2/source/doc/QuerySaveDocument.cxx
index 642fe3c21af8..1907e54246ab 100644
--- a/sfx2/source/doc/QuerySaveDocument.cxx
+++ b/sfx2/source/doc/QuerySaveDocument.cxx
@@ -27,15 +27,14 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sfx2.hxx"
-#include "QuerySaveDocument.hxx"
+#include "sfx2/QuerySaveDocument.hxx"
#include <sfx2/sfx.hrc>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/sfxuno.hxx>
#include "doc.hrc"
-#ifndef _MSGBOX_HXX //autogen
#include <vcl/msgbox.hxx>
-#endif
+
// -----------------------------------------------------------------------------
short ExecuteQuerySaveDocument(Window* _pParent,const String& _rTitle)
{
diff --git a/sfx2/source/doc/docfac.cxx b/sfx2/source/doc/docfac.cxx
index 4311559f94af..ff0a15e20088 100644
--- a/sfx2/source/doc/docfac.cxx
+++ b/sfx2/source/doc/docfac.cxx
@@ -47,13 +47,13 @@
#include <sfx2/sfx.hrc>
#include <sfx2/docfilt.hxx>
#include <sfx2/docfac.hxx>
-#include "viewfac.hxx"
+#include "sfx2/viewfac.hxx"
#include "fltfnc.hxx"
#include "arrdecl.hxx"
#include <sfx2/app.hxx>
#include <sfx2/module.hxx>
#include <sfx2/mnumgr.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/sfxuno.hxx>
#include "syspath.hxx"
#include <osl/file.hxx>
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index 29081e8e8418..434553bdb226 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -81,6 +81,7 @@
#include <unotools/tempfile.hxx>
#include <comphelper/processfactory.hxx>
#include <comphelper/componentcontext.hxx>
+#include <comphelper/interaction.hxx>
#include <framework/interaction.hxx>
#include <unotools/streamhelper.hxx>
#include <unotools/localedatawrapper.hxx>
@@ -144,7 +145,7 @@ using namespace ::com::sun::star::io;
#include <sfx2/docfac.hxx> // GetFilterContainer
#include "doc.hrc"
#include "openflag.hxx" // SFX_STREAM_READONLY etc.
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/appuno.hxx>
//#include "xmlversion.hxx"
@@ -881,17 +882,21 @@ uno::Reference < embed::XStorage > SfxMedium::GetOutputStorage()
}
//------------------------------------------------------------------
-void SfxMedium::SetPasswordToStorage_Impl()
+void SfxMedium::SetEncryptionDataToStorage_Impl()
{
// in case media-descriptor contains password it should be used on opening
if ( pImp->xStorage.is() && pSet )
{
- ::rtl::OUString aPasswd;
- if ( GetPasswd_Impl( pSet, aPasswd ) )
+ uno::Sequence< beans::NamedValue > aEncryptionData;
+ if ( GetEncryptionData_Impl( pSet, aEncryptionData ) )
{
+ // replace the password with encryption data
+ pSet->ClearItem( SID_PASSWORD );
+ pSet->Put( SfxUnoAnyItem( SID_ENCRYPTIONDATA, uno::makeAny( aEncryptionData ) ) );
+
try
{
- ::comphelper::OStorageHelper::SetCommonStoragePassword( pImp->xStorage, aPasswd );
+ ::comphelper::OStorageHelper::SetCommonStorageEncryptionData( pImp->xStorage, aEncryptionData );
}
catch( uno::Exception& )
{
@@ -1326,7 +1331,7 @@ uno::Reference < embed::XStorage > SfxMedium::GetStorage( sal_Bool bCreateTempIf
// TODO/LATER: Get versionlist on demand
if ( pImp->xStorage.is() )
{
- SetPasswordToStorage_Impl();
+ SetEncryptionDataToStorage_Impl();
GetVersionList();
}
@@ -3779,19 +3784,17 @@ sal_Bool SfxMedium::CallApproveHandler( const uno::Reference< task::XInteraction
{
uno::Sequence< uno::Reference< task::XInteractionContinuation > > aContinuations( bAllowAbort ? 2 : 1 );
- ::rtl::Reference< ::framework::ContinuationApprove > pApprove( new ::framework::ContinuationApprove() );
+ ::rtl::Reference< ::comphelper::OInteractionApprove > pApprove( new ::comphelper::OInteractionApprove );
aContinuations[ 0 ] = pApprove.get();
if ( bAllowAbort )
{
- ::rtl::Reference< ::framework::ContinuationAbort > pAbort( new ::framework::ContinuationAbort() );
+ ::rtl::Reference< ::comphelper::OInteractionAbort > pAbort( new ::comphelper::OInteractionAbort );
aContinuations[ 1 ] = pAbort.get();
}
- uno::Reference< task::XInteractionRequest > xRequest( new ::framework::InteractionRequest( aRequest, aContinuations ) );
- xHandler->handle( xRequest );
-
- bResult = pApprove->isSelected();
+ xHandler->handle(::framework::InteractionRequest::CreateRequest (aRequest,aContinuations));
+ bResult = pApprove->wasSelected();
}
catch( const Exception& )
{
diff --git a/sfx2/source/doc/docinsert.cxx b/sfx2/source/doc/docinsert.cxx
index 2dcca2eadf56..360854dc3dbf 100644
--- a/sfx2/source/doc/docinsert.cxx
+++ b/sfx2/source/doc/docinsert.cxx
@@ -29,7 +29,7 @@
#include "precompiled_sfx2.hxx"
#include <sfx2/app.hxx>
-#include "docinsert.hxx"
+#include "sfx2/docinsert.hxx"
#include <sfx2/docfile.hxx>
#include <sfx2/fcontnr.hxx>
#include <sfx2/filedlghelper.hxx>
diff --git a/sfx2/source/doc/doctdlg.cxx b/sfx2/source/doc/doctdlg.cxx
index 7a5fea18004f..e6726e97e96d 100644
--- a/sfx2/source/doc/doctdlg.cxx
+++ b/sfx2/source/doc/doctdlg.cxx
@@ -37,7 +37,7 @@
#include <sfx2/doctdlg.hxx>
#include "docvor.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "sfxtypes.hxx"
#include <sfx2/dispatch.hxx>
#include <sfx2/app.hxx>
diff --git a/sfx2/source/doc/doctempl.cxx b/sfx2/source/doc/doctempl.cxx
index db6f2a2d133f..f5ea04e5e08d 100644
--- a/sfx2/source/doc/doctempl.cxx
+++ b/sfx2/source/doc/doctempl.cxx
@@ -94,7 +94,7 @@ using namespace ::ucbhelper;
#include <sfx2/objsh.hxx>
#include "sfxtypes.hxx"
#include <sfx2/app.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "doc.hrc"
#include <sfx2/fcontnr.hxx>
#include <svtools/templatefoldercache.hxx>
diff --git a/sfx2/source/doc/doctemplates.cxx b/sfx2/source/doc/doctemplates.cxx
index 71f3683c0006..8644e79f611d 100644
--- a/sfx2/source/doc/doctemplates.cxx
+++ b/sfx2/source/doc/doctemplates.cxx
@@ -65,7 +65,7 @@
#include <unotools/configmgr.hxx>
#include <unotools/ucbhelper.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "sfxurlrelocator.hxx"
#include "doctemplateslocal.hxx"
#include <sfx2/docfac.hxx>
diff --git a/sfx2/source/doc/docvor.cxx b/sfx2/source/doc/docvor.cxx
index 719dc5b8d223..6367f2a65d76 100644
--- a/sfx2/source/doc/docvor.cxx
+++ b/sfx2/source/doc/docvor.cxx
@@ -64,7 +64,7 @@
#include "sfxtypes.hxx"
#include <sfx2/app.hxx>
#include <sfx2/dispatch.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "doc.hrc"
#include <sfx2/sfx.hrc>
#include "docvor.hrc"
diff --git a/sfx2/source/doc/graphhelp.cxx b/sfx2/source/doc/graphhelp.cxx
index 388d85cefc25..eff1554526ea 100644
--- a/sfx2/source/doc/graphhelp.cxx
+++ b/sfx2/source/doc/graphhelp.cxx
@@ -78,7 +78,7 @@
#include <comphelper/processfactory.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "graphhelp.hxx"
#include "doc.hrc"
diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx
index 3c4df7276d6b..bceb7477a61e 100644
--- a/sfx2/source/doc/guisaveas.cxx
+++ b/sfx2/source/doc/guisaveas.cxx
@@ -71,13 +71,14 @@
#include <tools/urlobj.hxx>
#include <comphelper/processfactory.hxx>
#include <comphelper/configurationhelper.hxx>
+#include <comphelper/mimeconfighelper.hxx>
#include <vcl/msgbox.hxx>
#include <vcl/window.hxx>
#include <toolkit/awt/vclxwindow.hxx>
#include <sfx2/sfxsids.hrc>
#include <doc.hrc>
-#include <sfxresid.hxx>
+#include <sfx2/sfxresid.hxx>
#include <sfx2/docfilt.hxx>
#include <sfx2/filedlghelper.hxx>
#include <sfx2/app.hxx>
@@ -507,7 +508,7 @@ uno::Sequence< beans::PropertyValue > ModelData_Impl::GetDocServiceAnyFilter( sa
aSearchRequest[0].Name = ::rtl::OUString::createFromAscii( "DocumentService" );
aSearchRequest[0].Value <<= GetDocServiceName();
- return SfxStoringHelper::SearchForFilter( m_pOwner->GetFilterQuery(), aSearchRequest, nMust, nDont );
+ return ::comphelper::MimeConfigurationHelper::SearchForFilter( m_pOwner->GetFilterQuery(), aSearchRequest, nMust, nDont );
}
//-------------------------------------------------------------------------
@@ -527,7 +528,7 @@ uno::Sequence< beans::PropertyValue > ModelData_Impl::GetPreselectedFilter_Impl(
aSearchRequest[1].Name = ::rtl::OUString::createFromAscii( "DocumentService" );
aSearchRequest[1].Value <<= GetDocServiceName();
- aFilterProps = SfxStoringHelper::SearchForFilter( m_pOwner->GetFilterQuery(), aSearchRequest, nMust, nDont );
+ aFilterProps = ::comphelper::MimeConfigurationHelper::SearchForFilter( m_pOwner->GetFilterQuery(), aSearchRequest, nMust, nDont );
}
else
{
@@ -978,12 +979,11 @@ sal_Bool ModelData_Impl::OutputFileDialog( sal_Int8 nStoreMode,
NULL );
const SfxPoolItem* pItem = NULL;
- if ( bPreselectPassword && aDialogParams.GetItemState( SID_PASSWORD, sal_True, &pItem ) != SFX_ITEM_SET )
+ if ( bPreselectPassword && aDialogParams.GetItemState( SID_ENCRYPTIONDATA, sal_True, &pItem ) != SFX_ITEM_SET )
{
- // the file dialog preselects the password checkbox if the provided mediadescriptor has password entry
- // after dialog execution the password entry will be either removed or replaced with the password
- // entered by the user
- aDialogParams.Put( SfxStringItem( SID_PASSWORD, String() ) );
+ // the file dialog preselects the password checkbox if the provided mediadescriptor has encryption data entry
+ // after dialog execution the password interaction flag will be either removed or not
+ aDialogParams.Put( SfxBoolItem( SID_PASSWORDINTERACTION, sal_True ) );
}
// aStringTypeFN is a pure output parameter, pDialogParams is an in/out parameter
@@ -1590,6 +1590,7 @@ sal_Bool SfxStoringHelper::GUIStoreModel( const uno::Reference< frame::XModel >&
DocumentSettingsGuard aSettingsGuard( aModelData.GetModel(), aModelData.IsRecommendReadOnly(), nStoreMode & EXPORT_REQUESTED );
+ OSL_ENSURE( aModelData.GetMediaDescr().find( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Password" ) ) ) == aModelData.GetMediaDescr().end(), "The Password property of MediaDescriptor should not be used here!" );
if ( aOptions.IsDocInfoSave()
&& ( !aModelData.GetStorable()->hasLocation()
|| INetURLObject( aModelData.GetStorable()->getLocation() ) != aURL ) )
@@ -1650,47 +1651,6 @@ sal_Bool SfxStoringHelper::GUIStoreModel( const uno::Reference< frame::XModel >&
//-------------------------------------------------------------------------
// static
-uno::Sequence< beans::PropertyValue > SfxStoringHelper::SearchForFilter(
- const uno::Reference< container::XContainerQuery >& xFilterQuery,
- const uno::Sequence< beans::NamedValue >& aSearchRequest,
- sal_Int32 nMustFlags,
- sal_Int32 nDontFlags )
-{
- uno::Sequence< beans::PropertyValue > aFilterProps;
- uno::Reference< container::XEnumeration > xFilterEnum =
- xFilterQuery->createSubSetEnumerationByProperties( aSearchRequest );
-
- // the first default filter will be taken,
- // if there is no filter with flag default the first acceptable filter will be taken
- if ( xFilterEnum.is() )
- {
- while ( xFilterEnum->hasMoreElements() )
- {
- uno::Sequence< beans::PropertyValue > aProps;
- if ( xFilterEnum->nextElement() >>= aProps )
- {
- ::comphelper::SequenceAsHashMap aPropsHM( aProps );
- sal_Int32 nFlags = aPropsHM.getUnpackedValueOrDefault( ::rtl::OUString::createFromAscii( "Flags" ),
- (sal_Int32)0 );
- if ( ( ( nFlags & nMustFlags ) == nMustFlags ) && !( nFlags & nDontFlags ) )
- {
- if ( ( nFlags & SFX_FILTER_DEFAULT ) == SFX_FILTER_DEFAULT )
- {
- aFilterProps = aProps;
- break;
- }
- else if ( !aFilterProps.getLength() )
- aFilterProps = aProps;
- }
- }
- }
- }
-
- return aFilterProps;
-}
-
-//-------------------------------------------------------------------------
-// static
sal_Bool SfxStoringHelper::CheckFilterOptionsAppearence(
const uno::Reference< container::XNameAccess >& xFilterCFG,
const ::rtl::OUString& aFilterName )
diff --git a/sfx2/source/doc/makefile.mk b/sfx2/source/doc/makefile.mk
deleted file mode 100644
index d663d34cf5ba..000000000000
--- a/sfx2/source/doc/makefile.mk
+++ /dev/null
@@ -1,103 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sfx2
-TARGET=doc
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-.IF "$(SYSTEM_LIBXML)" == "YES"
-CFLAGS+=-DSYSTEM_LIBXML $(LIBXML_CFLAGS)
-.ENDIF
-
-# --- Files --------------------------------------------------------
-
-SRS1NAME=$(TARGET)
-SRC1FILES = \
- doc.src new.src doctdlg.src docvor.src doctempl.src graphhelp.src
-
-SLOFILES = \
- $(SLO)$/printhelper.obj \
- $(SLO)$/docinf.obj \
- $(SLO)$/oleprops.obj \
- $(SLO)$/iframe.obj \
- $(SLO)$/plugin.obj \
- $(SLO)$/docfile.obj \
- $(SLO)$/objuno.obj \
- $(SLO)$/frmdescr.obj \
- $(SLO)$/objxtor.obj \
- $(SLO)$/objmisc.obj \
- $(SLO)$/objstor.obj \
- $(SLO)$/objcont.obj \
- $(SLO)$/objserv.obj \
- $(SLO)$/objitem.obj \
- $(SLO)$/ownsubfilterservice.obj \
- $(SLO)$/docfac.obj \
- $(SLO)$/docfilt.obj \
- $(SLO)$/doctempl.obj \
- $(SLO)$/doctemplates.obj \
- $(SLO)$/doctemplateslocal.obj \
- $(SLO)$/docvor.obj \
- $(SLO)$/new.obj \
- $(SLO)$/doctdlg.obj \
- $(SLO)$/sfxbasemodel.obj \
- $(SLO)$/guisaveas.obj\
- $(SLO)$/objembed.obj\
- $(SLO)$/graphhelp.obj \
- $(SLO)$/QuerySaveDocument.obj \
- $(SLO)$/docinsert.obj \
- $(SLO)$/docmacromode.obj \
- $(SLO)$/SfxDocumentMetaData.obj \
- $(SLO)$/DocumentMetadataAccess.obj \
- $(SLO)$/Metadatable.obj \
- $(SLO)$/sfxmodelfactory.obj \
- $(SLO)$/sfxacldetect.obj \
- $(SLO)$/docstoragemodifylistener.obj \
- $(SLO)$/querytemplate.obj \
- $(SLO)$/syspath.obj \
- $(SLO)$/syspathw32.obj
-
-.IF "$(GUI)" == "WNT"
-
-#HACK TO DISABLE PCH
-NOOPTFILES= \
- $(SLO)$/sfxacldetect.obj \
- $(SLO)$/syspathw32.obj
-.ENDIF
-
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
-
diff --git a/sfx2/source/doc/new.cxx b/sfx2/source/doc/new.cxx
index d3235b1c7a7f..932f6f10ecb0 100644
--- a/sfx2/source/doc/new.cxx
+++ b/sfx2/source/doc/new.cxx
@@ -31,9 +31,7 @@
#include <vcl/gdimtf.hxx>
#include <vcl/msgbox.hxx>
#include <vcl/morebtn.hxx>
-#ifndef _SVMEDIT_HXX
#include <svtools/svmedit.hxx>
-#endif
#include <svl/itemset.hxx>
#include <svl/eitem.hxx>
#include <svtools/sfxecode.hxx>
@@ -42,9 +40,7 @@
#include <unotools/localfilehelper.hxx>
#include "new.hrc"
-#ifndef _SFX_DOC_HRC
#include "doc.hrc"
-#endif
#include <sfx2/sfx.hrc>
#include "helpid.hrc"
#include "sfxtypes.hxx"
@@ -54,8 +50,8 @@
#include <sfx2/objsh.hxx>
#include "fltfnc.hxx"
#include <sfx2/viewsh.hxx>
-#include "viewfac.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/viewfac.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/docfile.hxx>
#include "preview.hxx"
#include <sfx2/printer.hxx>
diff --git a/sfx2/source/doc/objcont.cxx b/sfx2/source/doc/objcont.cxx
index e0e63da04bb8..91f5842c1fb7 100644
--- a/sfx2/source/doc/objcont.cxx
+++ b/sfx2/source/doc/objcont.cxx
@@ -62,7 +62,7 @@
#include <vcl/oldprintadaptor.hxx>
#include <sfx2/app.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "appdata.hxx"
#include <sfx2/dinfdlg.hxx>
#include "fltfnc.hxx"
@@ -71,11 +71,11 @@
#include <sfx2/objsh.hxx>
#include "objshimp.hxx"
#include <sfx2/evntconf.hxx>
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include <sfx2/dispatch.hxx>
#include <sfx2/printer.hxx>
+#include "sfx2/basmgr.hxx"
#include <sfx2/viewfrm.hxx>
-#include "basmgr.hxx"
#include <sfx2/doctempl.hxx>
#include "doc.hrc"
#include <sfx2/sfxbasemodel.hxx>
diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
index e386b2382acf..71c7e0e78383 100644
--- a/sfx2/source/doc/objmisc.cxx
+++ b/sfx2/source/doc/objmisc.cxx
@@ -118,6 +118,7 @@ using namespace ::com::sun::star::container;
#include <rtl/bootstrap.hxx>
#include <vcl/svapp.hxx>
#include <framework/interaction.hxx>
+#include <comphelper/interaction.hxx>
#include <comphelper/storagehelper.hxx>
#include <comphelper/documentconstants.hxx>
@@ -126,7 +127,7 @@ using namespace ::com::sun::star::container;
#include "appdata.hxx"
#include <sfx2/request.hxx>
#include <sfx2/bindings.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/docfile.hxx>
#include <sfx2/docfilt.hxx>
#include <sfx2/objsh.hxx>
@@ -1162,9 +1163,9 @@ void SfxObjectShell::PostActivateEvent_Impl( SfxViewFrame* pFrame )
sal_uInt16 nId = pImp->nEventId;
pImp->nEventId = 0;
if ( nId == SFX_EVENT_OPENDOC )
- pSfxApp->NotifyEvent(SfxEventHint( nId, GlobalEventConfig::GetEventName(STR_EVENT_OPENDOC), this ), sal_False);
+ pSfxApp->NotifyEvent(SfxViewEventHint( nId, GlobalEventConfig::GetEventName(STR_EVENT_OPENDOC), this, pFrame->GetFrame().GetController() ), sal_False);
else if (nId == SFX_EVENT_CREATEDOC )
- pSfxApp->NotifyEvent(SfxEventHint( nId, GlobalEventConfig::GetEventName(STR_EVENT_CREATEDOC), this ), sal_False);
+ pSfxApp->NotifyEvent(SfxViewEventHint( nId, GlobalEventConfig::GetEventName(STR_EVENT_CREATEDOC), this, pFrame->GetFrame().GetController() ), sal_False);
}
}
}
@@ -2286,8 +2287,8 @@ sal_Bool SfxObjectShell::UseInteractionToHandleError(
{
uno::Any aInteraction;
uno::Sequence< uno::Reference< task::XInteractionContinuation > > lContinuations(2);
- ::framework::ContinuationAbort* pAbort = new ::framework::ContinuationAbort();
- ::framework::ContinuationApprove* pApprove = new ::framework::ContinuationApprove();
+ ::comphelper::OInteractionAbort* pAbort = new ::comphelper::OInteractionAbort();
+ ::comphelper::OInteractionApprove* pApprove = new ::comphelper::OInteractionApprove();
lContinuations[0] = uno::Reference< task::XInteractionContinuation >(
static_cast< task::XInteractionContinuation* >( pAbort ), uno::UNO_QUERY );
lContinuations[1] = uno::Reference< task::XInteractionContinuation >(
@@ -2296,14 +2297,8 @@ sal_Bool SfxObjectShell::UseInteractionToHandleError(
task::ErrorCodeRequest aErrorCode;
aErrorCode.ErrCode = nError;
aInteraction <<= aErrorCode;
-
- ::framework::InteractionRequest* pRequest = new ::framework::InteractionRequest(aInteraction,lContinuations);
- uno::Reference< task::XInteractionRequest > xRequest(
- static_cast< task::XInteractionRequest* >( pRequest ),
- uno::UNO_QUERY);
-
- xHandler->handle(xRequest);
- bResult = pAbort->isSelected();
+ xHandler->handle(::framework::InteractionRequest::CreateRequest (aInteraction,lContinuations));
+ bResult = pAbort->wasSelected();
}
catch( uno::Exception& )
{}
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx
index bb0e6939ead8..c9b5e6f37293 100644
--- a/sfx2/source/doc/objserv.cxx
+++ b/sfx2/source/doc/objserv.cxx
@@ -69,7 +69,7 @@
#include <sfx2/app.hxx>
#include <sfx2/signaturestate.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/event.hxx>
#include <sfx2/request.hxx>
#include <sfx2/printer.hxx>
@@ -91,7 +91,7 @@
#include <sfx2/docfac.hxx>
#include <sfx2/fcontnr.hxx>
#include <sfx2/filedlghelper.hxx>
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include <sfx2/msgpool.hxx>
#include <sfx2/objface.hxx>
@@ -599,8 +599,9 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
// ========================================================================================================
sal_Bool bPreselectPassword = sal_False;
+ SFX_ITEMSET_ARG( GetMedium()->GetItemSet(), pOldEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA, FALSE );
SFX_ITEMSET_ARG( GetMedium()->GetItemSet(), pOldPasswordItem, SfxStringItem, SID_PASSWORD, FALSE );
- if ( pOldPasswordItem )
+ if ( pOldEncryptionDataItem || pOldPasswordItem )
bPreselectPassword = sal_True;
uno::Sequence< beans::PropertyValue > aDispatchArgs;
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index 037493c61252..0575660877a3 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -111,7 +111,7 @@
#include <sfx2/objsh.hxx>
#include <sfx2/childwin.hxx>
#include <sfx2/request.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/docfile.hxx>
#include "fltfnc.hxx"
#include <sfx2/docfilt.hxx>
@@ -202,16 +202,30 @@ sal_Bool SfxObjectShell::QuerySlotExecutable( USHORT /*nSlotId*/ )
//-------------------------------------------------------------------------
-sal_Bool GetPasswd_Impl( const SfxItemSet* pSet, ::rtl::OUString& rPasswd )
+bool GetEncryptionData_Impl( const SfxItemSet* pSet, uno::Sequence< beans::NamedValue >& o_rEncryptionData )
{
- const SfxPoolItem* pItem = NULL;
- if ( pSet && SFX_ITEM_SET == pSet->GetItemState( SID_PASSWORD, sal_True, &pItem ) )
+ bool bResult = false;
+ if ( pSet )
{
- DBG_ASSERT( pItem->IsA( TYPE(SfxStringItem) ), "wrong item type" );
- rPasswd = ( (const SfxStringItem*)pItem )->GetValue();
- return sal_True;
+ SFX_ITEMSET_ARG( pSet, pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA, sal_False);
+ if ( pEncryptionDataItem )
+ {
+ pEncryptionDataItem->GetValue() >>= o_rEncryptionData;
+ bResult = true;
+ }
+ else
+ {
+ SFX_ITEMSET_ARG( pSet, pPasswordItem, SfxStringItem, SID_PASSWORD, sal_False);
+ if ( pPasswordItem )
+ {
+ ::rtl::OUString aPassword = pPasswordItem->GetValue();
+ o_rEncryptionData = ::comphelper::OStorageHelper::CreatePackageEncryptionData( aPassword );
+ bResult = true;
+ }
+ }
}
- return sal_False;
+
+ return bResult;
}
//-------------------------------------------------------------------------
@@ -996,15 +1010,15 @@ sal_Bool SfxObjectShell::DoSave()
pImp->bIsSaving = sal_True;
- ::rtl::OUString aPasswd;
+ uno::Sequence< beans::NamedValue > aEncryptionData;
if ( IsPackageStorageFormat_Impl( *GetMedium() ) )
{
- if ( GetPasswd_Impl( GetMedium()->GetItemSet(), aPasswd ) )
+ if ( GetEncryptionData_Impl( GetMedium()->GetItemSet(), aEncryptionData ) )
{
try
{
//TODO/MBA: GetOutputStorage?! Special mode, because it's "Save"?!
- ::comphelper::OStorageHelper::SetCommonStoragePassword( GetMedium()->GetStorage(), aPasswd );
+ ::comphelper::OStorageHelper::SetCommonStorageEncryptionData( GetMedium()->GetStorage(), aEncryptionData );
bOk = sal_True;
}
catch( uno::Exception& )
@@ -1386,13 +1400,13 @@ sal_Bool SfxObjectShell::SaveTo_Impl
}
// transfer password from the parameters to the storage
- ::rtl::OUString aPasswd;
+ uno::Sequence< beans::NamedValue > aEncryptionData;
sal_Bool bPasswdProvided = sal_False;
- if ( GetPasswd_Impl( rMedium.GetItemSet(), aPasswd ) )
+ if ( GetEncryptionData_Impl( rMedium.GetItemSet(), aEncryptionData ) )
{
bPasswdProvided = sal_True;
try {
- ::comphelper::OStorageHelper::SetCommonStoragePassword( xMedStorage, aPasswd );
+ ::comphelper::OStorageHelper::SetCommonStorageEncryptionData( xMedStorage, aEncryptionData );
bOk = sal_True;
}
catch( uno::Exception& )
@@ -3154,13 +3168,13 @@ sal_Bool SfxObjectShell::LoadOwnFormat( SfxMedium& rMedium )
SFX_ITEMSET_ARG( rMedium.GetItemSet(), pPasswdItem, SfxStringItem, SID_PASSWORD, sal_False );
if ( pPasswdItem || ERRCODE_IO_ABORT != CheckPasswd_Impl( this, SFX_APP()->GetPool(), pMedium ) )
{
- ::rtl::OUString aPasswd;
- if ( GetPasswd_Impl(pMedium->GetItemSet(), aPasswd) )
+ uno::Sequence< beans::NamedValue > aEncryptionData;
+ if ( GetEncryptionData_Impl(pMedium->GetItemSet(), aEncryptionData) )
{
try
{
// the following code must throw an exception in case of failure
- ::comphelper::OStorageHelper::SetCommonStoragePassword( xStorage, aPasswd );
+ ::comphelper::OStorageHelper::SetCommonStorageEncryptionData( xStorage, aEncryptionData );
}
catch( uno::Exception& )
{
diff --git a/sfx2/source/doc/objuno.cxx b/sfx2/source/doc/objuno.cxx
index 466f8dd43104..32d50de40d51 100644
--- a/sfx2/source/doc/objuno.cxx
+++ b/sfx2/source/doc/objuno.cxx
@@ -68,7 +68,7 @@
#include <vector>
#include <algorithm>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "doc.hrc"
using namespace ::com::sun::star;
diff --git a/sfx2/source/doc/objxtor.cxx b/sfx2/source/doc/objxtor.cxx
index b7567b89f02f..693911f0404c 100644
--- a/sfx2/source/doc/objxtor.cxx
+++ b/sfx2/source/doc/objxtor.cxx
@@ -54,7 +54,7 @@
#include <svl/eitem.hxx>
#include <tools/rtti.hxx>
#include <svl/lstner.hxx>
-#include <sfxhelp.hxx>
+#include <sfx2/sfxhelp.hxx>
#include <basic/sbstar.hxx>
#include <svl/stritem.hxx>
#include <basic/sbx.hxx>
@@ -96,7 +96,7 @@
#include <sfx2/dispatch.hxx>
#include <sfx2/viewsh.hxx>
#include <sfx2/viewfrm.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "objshimp.hxx"
#include "appbas.hxx"
#include "sfxtypes.hxx"
@@ -107,8 +107,8 @@
#include "appdata.hxx"
#include <sfx2/appuno.hxx>
#include <sfx2/sfxsids.hrc>
-#include "basmgr.hxx"
-#include "QuerySaveDocument.hxx"
+#include "sfx2/basmgr.hxx"
+#include "sfx2/QuerySaveDocument.hxx"
#include "helpid.hrc"
#include <sfx2/msg.hxx>
#include "appbaslib.hxx"
@@ -805,11 +805,33 @@ void SfxObjectShell::InitBasicManager_Impl()
*/
{
+ /* #163556# (DR) - Handling of recursive calls while creating the Bacic
+ manager.
+
+ It is possible that (while creating the Basic manager) the code that
+ imports the Basic storage wants to access the Basic manager again.
+ Especially in VBA compatibility mode, there is code that wants to
+ access the "VBA Globals" object which is stored as global UNO constant
+ in the Basic manager.
+
+ To achieve correct handling of the recursive calls of this function
+ from lcl_getBasicManagerForDocument(), the implementation of the
+ function BasicManagerRepository::getDocumentBasicManager() has been
+ changed to return the Basic manager currently under construction, when
+ called repeatedly.
+
+ The variable pImp->bBasicInitialized will be set to TRUE after
+ construction now, to ensure that the recursive call of the function
+ lcl_getBasicManagerForDocument() will be routed into this function too.
+
+ Calling BasicManagerHolder::reset() twice is not a big problem, as it
+ does not take ownership but stores only the raw pointer. Owner of all
+ Basic managers is the global BasicManagerRepository instance.
+ */
DBG_ASSERT( !pImp->bBasicInitialized && !pImp->pBasicManager->isValid(), "Lokaler BasicManager bereits vorhanden");
- pImp->bBasicInitialized = TRUE;
-
pImp->pBasicManager->reset( BasicManagerRepository::getDocumentBasicManager( GetModel() ) );
DBG_ASSERT( pImp->pBasicManager->isValid(), "SfxObjectShell::InitBasicManager_Impl: did not get a BasicManager!" );
+ pImp->bBasicInitialized = TRUE;
}
//--------------------------------------------------------------------
diff --git a/sfx2/source/doc/querytemplate.cxx b/sfx2/source/doc/querytemplate.cxx
index 3e6a529bc67e..a2adce45d239 100644
--- a/sfx2/source/doc/querytemplate.cxx
+++ b/sfx2/source/doc/querytemplate.cxx
@@ -29,7 +29,7 @@
#include "precompiled_sfx2.hxx"
#include "querytemplate.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "doc.hrc"
#include "helpid.hrc"
#include <vcl/svapp.hxx>
diff --git a/sfx2/source/doc/sfxacldetect.cxx b/sfx2/source/doc/sfxacldetect.cxx
index de6528794e20..ded9d3000fc8 100644..100755
--- a/sfx2/source/doc/sfxacldetect.cxx
+++ b/sfx2/source/doc/sfxacldetect.cxx
@@ -25,6 +25,10 @@
*
************************************************************************/
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sfx2.hxx"
+
+
#ifdef WNT
// necessary to include system headers without warnings
diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
index 846cc669b9a7..d24a95332b58 100644
--- a/sfx2/source/doc/sfxbasemodel.cxx
+++ b/sfx2/source/doc/sfxbasemodel.cxx
@@ -102,7 +102,7 @@
//________________________________________________________________________________________________________
#include <sfx2/sfxbasecontroller.hxx>
-#include "viewfac.hxx"
+#include "sfx2/viewfac.hxx"
#include "workwin.hxx"
#include <sfx2/signaturestate.hxx>
#include <sfx2/sfxuno.hxx>
@@ -114,7 +114,7 @@
#include <sfx2/request.hxx>
#include <sfx2/objuno.hxx>
#include <sfx2/printer.hxx>
-#include <basmgr.hxx>
+#include <sfx2/basmgr.hxx>
#include <sfx2/event.hxx>
#include <eventsupplier.hxx>
#include <sfx2/evntconf.hxx>
@@ -125,12 +125,12 @@
#include <sfx2/docfac.hxx>
#include <sfx2/fcontnr.hxx>
#include "sfx2/docstoragemodifylistener.hxx"
-#include "brokenpackageint.hxx"
+#include "sfx2/brokenpackageint.hxx"
#include "graphhelp.hxx"
#include <sfx2/msgpool.hxx>
#include <sfx2/DocumentMetadataAccess.hxx>
-#include <sfxresid.hxx>
+#include <sfx2/sfxresid.hxx>
//________________________________________________________________________________________________________
// const
@@ -980,6 +980,8 @@ sal_Bool SAL_CALL SfxBaseModel::attachResource( const ::rtl::OUString&
aArgs.remove( "InputStream" );
aArgs.remove( "URL" );
aArgs.remove( "Frame" );
+ aArgs.remove( "Password" );
+ aArgs.remove( "EncryptionData" );
// TODO/LATER: all the parameters that are accepted by ItemSet of the DocShell must be removed here
@@ -1633,6 +1635,11 @@ void SAL_CALL SfxBaseModel::storeAsURL( const ::rtl::OUString&
uno::Sequence< beans::PropertyValue > aSequence ;
TransformItems( SID_OPENDOC, *m_pData->m_pObjectShell->GetMedium()->GetItemSet(), aSequence );
attachResource( rURL, aSequence );
+
+#if OSL_DEBUG_LEVEL > 0
+ SFX_ITEMSET_ARG( m_pData->m_pObjectShell->GetMedium()->GetItemSet(), pPasswdItem, SfxStringItem, SID_PASSWORD, sal_False);
+ OSL_ENSURE( !pPasswdItem, "There should be no Password property in the document MediaDescriptor!" );
+#endif
}
}
@@ -1798,10 +1805,9 @@ void SAL_CALL SfxBaseModel::load( const uno::Sequence< beans::PropertyValue >&
SFX_ITEMSET_ARG( pMedium->GetItemSet(), pRepairItem, SfxBoolItem, SID_REPAIRPACKAGE, FALSE );
if ( !pRepairItem || !pRepairItem->GetValue() )
{
- RequestPackageReparation* pRequest = new RequestPackageReparation( aDocName );
- com::sun::star::uno::Reference< com::sun::star::task::XInteractionRequest > xRequest ( pRequest );
- xHandler->handle( xRequest );
- if( pRequest->isApproved() )
+ RequestPackageReparation aRequest( aDocName );
+ xHandler->handle( aRequest.GetRequest() );
+ if( aRequest.isApproved() )
{
// broken package: try second loading and allow repair
pMedium->GetItemSet()->Put( SfxBoolItem( SID_REPAIRPACKAGE, sal_True ) );
@@ -1821,9 +1827,8 @@ void SAL_CALL SfxBaseModel::load( const uno::Sequence< beans::PropertyValue >&
if ( nError == ERRCODE_IO_BROKENPACKAGE )
{
// repair either not allowed or not successful
- NotifyBrokenPackage* pNotifyRequest = new NotifyBrokenPackage( aDocName );
- com::sun::star::uno::Reference< com::sun::star::task::XInteractionRequest > xRequest ( pNotifyRequest );
- xHandler->handle( xRequest );
+ NotifyBrokenPackage aRequest( aDocName );
+ xHandler->handle( aRequest.GetRequest() );
}
}
}
@@ -1891,6 +1896,11 @@ void SAL_CALL SfxBaseModel::load( const uno::Sequence< beans::PropertyValue >&
SFX_ITEMSET_ARG( pMedium->GetItemSet(), pHidItem, SfxBoolItem, SID_HIDDEN, sal_False);
if ( pHidItem )
bHidden = pHidItem->GetValue();
+
+#if OSL_DEBUG_LEVEL > 0
+ SFX_ITEMSET_ARG( pMedium->GetItemSet(), pPasswdItem, SfxStringItem, SID_PASSWORD, sal_False);
+ OSL_ENSURE( !pPasswdItem, "There should be no Password property in the document MediaDescriptor!" );
+#endif
// !TODO: will be done by Framework!
pMedium->SetUpdatePickList( !bHidden );
}
@@ -2373,6 +2383,32 @@ void SAL_CALL SfxBaseModel::removeEventListener( const uno::Reference< XDOCEVENT
m_pData->m_aInterfaceContainer.removeInterface( ::getCppuType((const uno::Reference< XDOCEVENTLISTENER >*)0), aListener );
}
+//--------------------------------------------------------------------------------------------------------
+// XDocumentEventBroadcaster
+//--------------------------------------------------------------------------------------------------------
+// ---------------------------------
+void SAL_CALL SfxBaseModel::addDocumentEventListener( const uno::Reference< document::XDocumentEventListener >& aListener )
+ throw ( uno::RuntimeException )
+{
+ SfxModelGuard aGuard( *this, SfxModelGuard::E_INITIALIZING );
+ m_pData->m_aInterfaceContainer.addInterface( ::getCppuType((const uno::Reference< document::XDocumentEventListener >*)0), aListener );
+}
+
+// ---------------------------------
+void SAL_CALL SfxBaseModel::removeDocumentEventListener( const uno::Reference< document::XDocumentEventListener >& aListener )
+ throw ( uno::RuntimeException )
+{
+ SfxModelGuard aGuard( *this );
+ m_pData->m_aInterfaceContainer.removeInterface( ::getCppuType((const uno::Reference< document::XDocumentEventListener >*)0), aListener );
+}
+
+// ---------------------------------
+void SAL_CALL SfxBaseModel::notifyDocumentEvent( const ::rtl::OUString&, const uno::Reference< frame::XController2 >&, const uno::Any& )
+ throw ( lang::IllegalArgumentException, lang::NoSupportException, uno::RuntimeException )
+{
+ throw lang::NoSupportException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SfxBaseModel controlls all the sent notifications itself!" ) ), uno::Reference< uno::XInterface >() );
+}
+
//________________________________________________________________________________________________________
// SfxListener
//________________________________________________________________________________________________________
@@ -2516,7 +2552,9 @@ void SfxBaseModel::Notify( SfxBroadcaster& rBC ,
break;
}
- postEvent_Impl( pNamedHint->GetEventName() );
+
+ SfxViewEventHint* pViewHint = PTR_CAST( SfxViewEventHint, &rHint );
+ postEvent_Impl( pNamedHint->GetEventName(), pViewHint ? pViewHint->GetController() : uno::Reference< frame::XController2 >() );
}
if ( pSimpleHint )
@@ -2599,11 +2637,6 @@ SfxObjectShell* SfxBaseModel::impl_getObjectShell() const
// public impl.
//________________________________________________________________________________________________________
-sal_Bool SfxBaseModel::IsDisposed() const
-{
- return ( m_pData == NULL ) ;
-}
-
sal_Bool SfxBaseModel::IsInitialized() const
{
if ( !m_pData || !m_pData->m_pObjectShell )
@@ -2615,6 +2648,14 @@ sal_Bool SfxBaseModel::IsInitialized() const
return m_pData->m_pObjectShell->GetMedium() != NULL;
}
+void SfxBaseModel::MethodEntryCheck( const bool i_mustBeInitialized ) const
+{
+ if ( impl_isDisposed() )
+ throw ::com::sun::star::lang::DisposedException( ::rtl::OUString(), *const_cast< SfxBaseModel* >( this ) );
+ if ( i_mustBeInitialized && !IsInitialized() )
+ throw ::com::sun::star::lang::NotInitializedException( ::rtl::OUString(), *const_cast< SfxBaseModel* >( this ) );
+}
+
sal_Bool SfxBaseModel::impl_isDisposed() const
{
return ( m_pData == NULL ) ;
@@ -2667,49 +2708,41 @@ void SfxBaseModel::impl_store( const ::rtl::OUString& sURL
aArgHash.erase( aFilterString );
aArgHash.erase( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "URL" ) ) );
- // if the password is changed SaveAs should be done
- // no password for encrypted document is also a change here
- sal_Bool bPassChanged = sal_False;
-
- ::comphelper::SequenceAsHashMap::iterator aNewPassIter
- = aArgHash.find( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Password" ) ) );
- SFX_ITEMSET_ARG( pMedium->GetItemSet(), pPasswordItem, SfxStringItem, SID_PASSWORD, sal_False );
- if ( pPasswordItem && aNewPassIter != aArgHash.end() )
+ try
{
- ::rtl::OUString aNewPass;
- aNewPassIter->second >>= aNewPass;
- bPassChanged = !aNewPass.equals( pPasswordItem->GetValue() );
+ storeSelf( aArgHash.getAsConstPropertyValueList() );
+ bSaved = sal_True;
}
- else if ( pPasswordItem || aNewPassIter != aArgHash.end() )
- bPassChanged = sal_True;
-
- if ( !bPassChanged )
+ catch( const lang::IllegalArgumentException& )
{
- try
- {
- storeSelf( aArgHash.getAsConstPropertyValueList() );
- bSaved = sal_True;
- }
- catch( const lang::IllegalArgumentException& )
+ // some additional arguments do not allow to use saving, SaveAs should be done
+ // but only for normal documents, the shared documents would be overwritten in this case
+ // that would mean an information loss
+ // TODO/LATER: need a new interaction for this case
+ if ( m_pData->m_pObjectShell->IsDocShared() )
{
- // some additional arguments do not allow to use saving, SaveAs should be done
- // but only for normal documents, the shared documents would be overwritten in this case
- // that would mean an information loss
- // TODO/LATER: need a new interaction for this case
- if ( m_pData->m_pObjectShell->IsDocShared() )
+ m_pData->m_pObjectShell->AddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Can't store shared document!" ) ) );
+ m_pData->m_pObjectShell->StoreLog();
+
+ uno::Sequence< beans::NamedValue > aNewEncryptionData = aArgHash.getUnpackedValueOrDefault( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "EncryptionData" ) ), uno::Sequence< beans::NamedValue >() );
+ if ( !aNewEncryptionData.getLength() )
{
- m_pData->m_pObjectShell->AddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Can't store shared document!" ) ) );
- m_pData->m_pObjectShell->StoreLog();
+ ::rtl::OUString aNewPassword = aArgHash.getUnpackedValueOrDefault( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Password" ) ), ::rtl::OUString() );
+ aNewEncryptionData = ::comphelper::OStorageHelper::CreatePackageEncryptionData( aNewPassword );
+ }
+ uno::Sequence< beans::NamedValue > aOldEncryptionData;
+ GetEncryptionData_Impl( pMedium->GetItemSet(), aOldEncryptionData );
+
+ if ( !aOldEncryptionData.getLength() && !aNewEncryptionData.getLength() )
throw;
+ else
+ {
+ // if the password is changed a special error should be used in case of shared document
+ throw task::ErrorCodeIOException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Cant change password for shared document." ) ), uno::Reference< uno::XInterface >(), ERRCODE_SFX_SHARED_NOPASSWORDCHANGE );
}
}
}
- else if ( m_pData->m_pObjectShell->IsDocShared() )
- {
- // if the password is changed a special error should be used in case of shared document
- throw task::ErrorCodeIOException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Cant change password for shared document." ) ), uno::Reference< uno::XInterface >(), ERRCODE_SFX_SHARED_NOPASSWORDCHANGE );
- }
}
}
}
@@ -2866,8 +2899,32 @@ void SfxBaseModel::impl_store( const ::rtl::OUString& sURL
}
//********************************************************************************************************
+namespace {
+template< typename ListenerT, typename EventT >
+class NotifySingleListenerIgnoreRE
+{
+private:
+ typedef void ( SAL_CALL ListenerT::*NotificationMethod )( const EventT& );
+ NotificationMethod m_pMethod;
+ const EventT& m_rEvent;
+public:
+ NotifySingleListenerIgnoreRE( NotificationMethod method, const EventT& event ) : m_pMethod( method ), m_rEvent( event ) { }
+
+ void operator()( const uno::Reference<ListenerT>& listener ) const
+ {
+ try
+ {
+ (listener.get()->*m_pMethod)( m_rEvent );
+ }
+ catch( uno::RuntimeException& )
+ {
+ // this exception is ignored to avoid problems with invalid listeners, the listener should be probably thrown away in future
+ }
+ }
+};
+} // anonymous namespace
-void SfxBaseModel::postEvent_Impl( ::rtl::OUString aName )
+void SfxBaseModel::postEvent_Impl( const ::rtl::OUString& aName, const uno::Reference< frame::XController2 >& xController )
{
// object already disposed?
if ( impl_isDisposed() )
@@ -2877,34 +2934,41 @@ void SfxBaseModel::postEvent_Impl( ::rtl::OUString aName )
if (!aName.getLength())
return;
- ::cppu::OInterfaceContainerHelper* pIC = m_pData->m_aInterfaceContainer.getContainer(
- ::getCppuType((const uno::Reference< XDOCEVENTLISTENER >*)0) );
- if( pIC )
+ ::cppu::OInterfaceContainerHelper* pIC =
+ m_pData->m_aInterfaceContainer.getContainer( ::getCppuType( (const uno::Reference< document::XDocumentEventListener >*)0 ) );
+ if ( pIC )
+ {
+#ifdef DBG_UTIL
+ ByteString aTmp( "SfxDocumentEvent: " );
+ aTmp += ByteString( String(aName), RTL_TEXTENCODING_UTF8 );
+ DBG_TRACE( aTmp.GetBuffer() );
+#endif
+ document::DocumentEvent aDocumentEvent( (frame::XModel*)this, aName, xController, uno::Any() );
+
+ pIC->forEach< document::XDocumentEventListener, NotifySingleListenerIgnoreRE< document::XDocumentEventListener, document::DocumentEvent > >(
+ NotifySingleListenerIgnoreRE< document::XDocumentEventListener, document::DocumentEvent >(
+ &document::XDocumentEventListener::documentEventOccured,
+ aDocumentEvent ) );
+ }
+
+ pIC = m_pData->m_aInterfaceContainer.getContainer( ::getCppuType( (const uno::Reference< document::XEventListener >*)0 ) );
+ if ( pIC )
{
#ifdef DBG_UTIL
- ByteString aTmp( "SfxEvent: ");
+ ByteString aTmp( "SfxEvent: " );
aTmp += ByteString( String(aName), RTL_TEXTENCODING_UTF8 );
DBG_TRACE( aTmp.GetBuffer() );
#endif
- document::EventObject aEvent( (frame::XModel *)this, aName );
- ::cppu::OInterfaceContainerHelper aIC( m_aMutex );
- uno::Sequence < uno::Reference < uno::XInterface > > aElements = pIC->getElements();
- for ( sal_Int32 nElem=0; nElem<aElements.getLength(); nElem++ )
- aIC.addInterface( aElements[nElem] );
- ::cppu::OInterfaceIteratorHelper aIt( aIC );
- while( aIt.hasMoreElements() )
- {
- try
- {
- ((XDOCEVENTLISTENER *)aIt.next())->notifyEvent( aEvent );
- }
- catch( uno::RuntimeException& )
- {
- aIt.remove();
- }
- }
+
+ document::EventObject aEvent( (frame::XModel*)this, aName );
+
+ pIC->forEach< document::XEventListener, NotifySingleListenerIgnoreRE< document::XEventListener, document::EventObject > >(
+ NotifySingleListenerIgnoreRE< document::XEventListener, document::EventObject >(
+ &document::XEventListener::notifyEvent,
+ aEvent ) );
}
+
}
uno::Reference < container::XIndexAccess > SAL_CALL SfxBaseModel::getViewData() throw(::com::sun::star::uno::RuntimeException)
@@ -3281,7 +3345,7 @@ uno::Reference< ui::XUIConfigurationManager > SAL_CALL SfxBaseModel::getUIConfig
uno::Reference< lang::XMultiServiceFactory > xServiceMgr( ::comphelper::getProcessServiceFactory() );
uno::Sequence< uno::Reference< container::XIndexContainer > > rToolbars;
- sal_Bool bImported = UIConfigurationImporterOOo1x::ImportCustomToolbars(
+ sal_Bool bImported = framework::UIConfigurationImporterOOo1x::ImportCustomToolbars(
xNewUIConfMan, rToolbars, xServiceMgr, xOOo1ConfigStorage );
if ( bImported )
{
diff --git a/sfx2/source/doc/syspathw32.cxx b/sfx2/source/doc/syspathw32.cxx
index c0a163bed39c..167dadea2e38 100644..100755
--- a/sfx2/source/doc/syspathw32.cxx
+++ b/sfx2/source/doc/syspathw32.cxx
@@ -28,6 +28,10 @@
*
************************************************************************/
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sfx2.hxx"
+
+
#ifdef WNT
#ifdef _MSC_VER
#pragma warning(disable:4917)
diff --git a/sfx2/source/inc/fltoptint.hxx b/sfx2/source/inc/fltoptint.hxx
index b4aed7ccdd99..d674c7620d54 100644
--- a/sfx2/source/inc/fltoptint.hxx
+++ b/sfx2/source/inc/fltoptint.hxx
@@ -24,15 +24,17 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
+#ifndef SFX2_FLTOPTINT_HXX
+#define SFX2_FLTOPTINT_HXX
#include <com/sun/star/document/FilterOptionsRequest.hpp>
#include <com/sun/star/document/XInteractionFilterOptions.hpp>
#include <com/sun/star/frame/XModel.hpp>
-#include <framework/interaction.hxx>
+#include <comphelper/interaction.hxx>
-using namespace ::framework;
+//using namespace ::framework;
-class FilterOptionsContinuation : public ContinuationBase< ::com::sun::star::document::XInteractionFilterOptions >
+class FilterOptionsContinuation : public comphelper::OInteraction< ::com::sun::star::document::XInteractionFilterOptions >
{
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > rProperties;
@@ -49,7 +51,7 @@ class RequestFilterOptions : public ::cppu::WeakImplHelper1< ::com::sun::star::t
::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >
> m_lContinuations;
- ContinuationAbort* m_pAbort;
+ comphelper::OInteractionAbort* m_pAbort;
FilterOptionsContinuation* m_pOptions;
@@ -57,7 +59,7 @@ public:
RequestFilterOptions( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > rModel,
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > rProperties );
- sal_Bool isAbort() { return m_pAbort->isSelected(); }
+ sal_Bool isAbort() { return m_pAbort->wasSelected(); }
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > getFilterOptions()
{
@@ -73,3 +75,4 @@ public:
throw( ::com::sun::star::uno::RuntimeException );
};
+#endif
diff --git a/sfx2/source/layout/makefile.mk b/sfx2/source/layout/makefile.mk
deleted file mode 100644
index a11ba76a15bd..000000000000
--- a/sfx2/source/layout/makefile.mk
+++ /dev/null
@@ -1,56 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sfx2
-TARGET=layout
-ENABLE_EXCEPTIONS=true
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-.IF "$(ENABLE_LAYOUT)" == "TRUE"
-
-SLOFILES = \
- $(SLO)$/sfxdialog.obj
-#
-
-SLOFILES += $(SLO)$/sfxtabdialog.obj \
- $(SLO)$/factory.obj \
- $(SLO)$/sfxtabpage.obj
-
-.ENDIF # ENABLE_LAYOUT == TRUE
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/source/layout/sfxtabdialog.cxx b/sfx2/source/layout/sfxtabdialog.cxx
index 782e890d81be..7909d404b524 100644
--- a/sfx2/source/layout/sfxtabdialog.cxx
+++ b/sfx2/source/layout/sfxtabdialog.cxx
@@ -42,8 +42,8 @@
#include <sfx2/tabdlg.hxx>
#include <sfx2/viewfrm.hxx>
#include <sfx2/app.hxx>
-#include "sfxresid.hxx"
-#include "sfxhelp.hxx"
+#include "sfx2/sfxresid.hxx"
+#include "sfx2/sfxhelp.hxx"
#include <sfx2/ctrlitem.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/sfxdlg.hxx>
diff --git a/sfx2/source/menu/makefile.mk b/sfx2/source/menu/makefile.mk
deleted file mode 100644
index 8b55bd0840ea..000000000000
--- a/sfx2/source/menu/makefile.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-
-PRJNAME=sfx2
-TARGET=menu
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SRS1NAME=$(TARGET)
-SRC1FILES = menu.src
-
-SLOFILES = \
- $(SLO)$/mnuitem.obj \
- $(SLO)$/mnumgr.obj \
- $(SLO)$/objmnctl.obj \
- $(SLO)$/thessubmenu.obj \
- $(SLO)$/virtmenu.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/source/menu/mnuitem.cxx b/sfx2/source/menu/mnuitem.cxx
index 281b451d8098..f101b0d426b9 100644
--- a/sfx2/source/menu/mnuitem.cxx
+++ b/sfx2/source/menu/mnuitem.cxx
@@ -72,9 +72,9 @@
#include <sfx2/module.hxx>
#include <sfx2/unoctitm.hxx>
#include <sfx2/viewfrm.hxx>
-#include "imgmgr.hxx"
-#include "imagemgr.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/imgmgr.hxx"
+#include "sfx2/imagemgr.hxx"
+#include "sfx2/sfxresid.hxx"
#include "../doc/doc.hrc"
using namespace ::com::sun::star::uno;
diff --git a/sfx2/source/menu/mnumgr.cxx b/sfx2/source/menu/mnumgr.cxx
index b3e5717dd7b6..77dbd0dcb885 100755
--- a/sfx2/source/menu/mnumgr.cxx
+++ b/sfx2/source/menu/mnumgr.cxx
@@ -76,7 +76,7 @@
#include "sfxtypes.hxx"
#include <sfx2/bindings.hxx>
#include "mnucfga.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/macrconf.hxx>
#include <sfx2/msgpool.hxx>
#include <sfx2/sfx.hrc>
diff --git a/sfx2/source/menu/virtmenu.cxx b/sfx2/source/menu/virtmenu.cxx
index 48ff6a3948c5..f0408a66a408 100644
--- a/sfx2/source/menu/virtmenu.cxx
+++ b/sfx2/source/menu/virtmenu.cxx
@@ -36,14 +36,9 @@
#include <com/sun/star/frame/XDesktop.hpp>
#include <com/sun/star/frame/XFramesSupplier.hpp>
#include <comphelper/processfactory.hxx>
-#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
#include <toolkit/unohlp.hxx>
-#endif
#include <tools/urlobj.hxx>
-#ifndef GCC
-#endif
-
#include "virtmenu.hxx"
#include <sfx2/msgpool.hxx>
#include "statcach.hxx"
@@ -60,9 +55,9 @@
#include <sfx2/viewsh.hxx>
#include "sfxpicklist.hxx"
#include <sfx2/macrconf.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "menu.hrc"
-#include "imagemgr.hxx"
+#include "sfx2/imagemgr.hxx"
#include <sfx2/viewfrm.hxx>
#include <sfx2/objsh.hxx>
#include <framework/addonsoptions.hxx>
diff --git a/sfx2/source/notify/eventsupplier.cxx b/sfx2/source/notify/eventsupplier.cxx
index 32e6887f802c..1ca10c6d9390 100644
--- a/sfx2/source/notify/eventsupplier.cxx
+++ b/sfx2/source/notify/eventsupplier.cxx
@@ -51,7 +51,7 @@
#include "eventsupplier.hxx"
#include <sfx2/app.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/sfxsids.hrc>
#include "sfxlocal.hrc"
diff --git a/sfx2/source/notify/makefile.mk b/sfx2/source/notify/makefile.mk
deleted file mode 100644
index e2ddde40f936..000000000000
--- a/sfx2/source/notify/makefile.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sfx2
-TARGET=notify
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/eventsupplier.obj \
- $(SLO)$/hintpost.obj
-
-EXCEPTIONSFILES = \
- $(SLO)$/eventsupplier.obj
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/source/statbar/makefile.mk b/sfx2/source/statbar/makefile.mk
deleted file mode 100644
index f99c8fcdaa1e..000000000000
--- a/sfx2/source/statbar/makefile.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sfx2
-TARGET=statbar
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/stbitem.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/source/statbar/stbitem.cxx b/sfx2/source/statbar/stbitem.cxx
index e5de57d835c3..68d855cbf6c6 100644
--- a/sfx2/source/statbar/stbitem.cxx
+++ b/sfx2/source/statbar/stbitem.cxx
@@ -41,7 +41,7 @@
#include <vcl/status.hxx>
#include <sfx2/app.hxx>
-#include "stbitem.hxx"
+#include "sfx2/stbitem.hxx"
#include "sfxtypes.hxx"
#include <sfx2/msg.hxx>
#include "arrdecl.hxx"
diff --git a/sfx2/source/toolbox/imgmgr.cxx b/sfx2/source/toolbox/imgmgr.cxx
index 7694932d44c4..231baa76fc76 100644
--- a/sfx2/source/toolbox/imgmgr.cxx
+++ b/sfx2/source/toolbox/imgmgr.cxx
@@ -31,10 +31,10 @@
#include <stdio.h>
#include <hash_map>
-#include "imgmgr.hxx"
+#include "sfx2/imgmgr.hxx"
#include <sfx2/sfx.hrc>
#include <sfx2/app.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/bindings.hxx>
#include "statcach.hxx"
#include <sfx2/module.hxx>
diff --git a/sfx2/source/toolbox/makefile.mk b/sfx2/source/toolbox/makefile.mk
deleted file mode 100644
index ce4f011e6044..000000000000
--- a/sfx2/source/toolbox/makefile.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sfx2
-TARGET=toolbox
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/tbxitem.obj \
- $(SLO)$/imgmgr.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/source/toolbox/tbxitem.cxx b/sfx2/source/toolbox/tbxitem.cxx
index f5b38d5a8a18..7cc25c872eb1 100644
--- a/sfx2/source/toolbox/tbxitem.cxx
+++ b/sfx2/source/toolbox/tbxitem.cxx
@@ -92,7 +92,7 @@
#include "sfxtypes.hxx"
#include <sfx2/macrconf.hxx>
#include <sfx2/genlink.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/sfx.hrc>
#include <sfx2/module.hxx>
#include <sfx2/docfile.hxx>
@@ -103,11 +103,11 @@
#include <sfx2/unoctitm.hxx>
#include "helpid.hrc"
#include "workwin.hxx"
-#include "imgmgr.hxx"
+#include "sfx2/imgmgr.hxx"
#include "virtmenu.hxx"
#include <sfx2/viewfrm.hxx>
#include <sfx2/module.hxx>
-#include "imagemgr.hxx"
+#include "sfx2/imagemgr.hxx"
#include <comphelper/uieventslogger.hxx>
#include <com/sun/star/frame/XModuleManager.hpp>
diff --git a/sfx2/source/view/frame.cxx b/sfx2/source/view/frame.cxx
index 090e94ecb63f..49deab951843 100644
--- a/sfx2/source/view/frame.cxx
+++ b/sfx2/source/view/frame.cxx
@@ -234,7 +234,7 @@ sal_uInt16 SfxFrame::PrepareClose_Impl( sal_Bool bUI, sal_Bool bForBrowsing )
bOther = ( &pFrame->GetFrame() != this );
}
- SFX_APP()->NotifyEvent( SfxEventHint(SFX_EVENT_PREPARECLOSEVIEW, GlobalEventConfig::GetEventName( STR_EVENT_PREPARECLOSEVIEW ), pCur) );
+ SFX_APP()->NotifyEvent( SfxViewEventHint(SFX_EVENT_PREPARECLOSEVIEW, GlobalEventConfig::GetEventName( STR_EVENT_PREPARECLOSEVIEW ), pCur, GetController() ) );
if ( bOther )
// if there are other views only the current view of this frame must be asked
diff --git a/sfx2/source/view/frame2.cxx b/sfx2/source/view/frame2.cxx
index 36edd34c973d..ef963b36d7bb 100644
--- a/sfx2/source/view/frame2.cxx
+++ b/sfx2/source/view/frame2.cxx
@@ -30,7 +30,7 @@
#include "impframe.hxx"
#include "objshimp.hxx"
-#include "sfxhelp.hxx"
+#include "sfx2/sfxhelp.hxx"
#include "workwin.hxx"
#include "sfx2/app.hxx"
diff --git a/sfx2/source/view/frmload.cxx b/sfx2/source/view/frmload.cxx
index df252b831803..a4707f03d364 100644
--- a/sfx2/source/view/frmload.cxx
+++ b/sfx2/source/view/frmload.cxx
@@ -30,7 +30,6 @@
#include "frmload.hxx"
#include "objshimp.hxx"
-#include "viewfac.hxx"
#include "sfx2/app.hxx"
#include "sfx2/dispatch.hxx"
#include "sfx2/docfac.hxx"
@@ -45,6 +44,7 @@
#include "sfx2/sfxuno.hxx"
#include "sfx2/viewfrm.hxx"
#include "sfx2/viewsh.hxx"
+#include "sfx2/viewfac.hxx"
/** === begin UNO includes === **/
#include <com/sun/star/container/XContainerQuery.hpp>
@@ -216,11 +216,10 @@ const SfxFilter* SfxFrameLoader_Impl::impl_getFilterFromServiceName_nothrow( con
::rtl::OUString sFilterName;
try
{
- ::framework::RequestFilterSelect* pRequest = new ::framework::RequestFilterSelect( i_rDocumentURL );
- Reference< XInteractionRequest > xRequest ( pRequest );
- i_rxHandler->handle( xRequest );
- if( !pRequest->isAbort() )
- sFilterName = pRequest->getFilter();
+ ::framework::RequestFilterSelect aRequest( i_rDocumentURL );
+ i_rxHandler->handle( aRequest.GetRequest() );
+ if( !aRequest.isAbort() )
+ sFilterName = aRequest.getFilter();
}
catch( const Exception& )
{
diff --git a/sfx2/source/view/ipclient.cxx b/sfx2/source/view/ipclient.cxx
index 328d88d8b2b9..997cb584f83d 100644
--- a/sfx2/source/view/ipclient.cxx
+++ b/sfx2/source/view/ipclient.cxx
@@ -220,6 +220,7 @@ void SAL_CALL SfxInPlaceClient_Impl::notifyEvent( const document::EventObject& a
if ( m_pClient && aEvent.EventName.equalsAscii("OnVisAreaChanged") && m_nAspect != embed::Aspects::MSOLE_ICON )
{
+ m_pClient->FormatChanged(); // for Writer when format of the object is changed with the area
m_pClient->ViewChanged();
m_pClient->Invalidate();
}
@@ -1082,6 +1083,11 @@ void SfxInPlaceClient::MakeVisible()
// dummy implementation
}
+void SfxInPlaceClient::FormatChanged()
+{
+ // dummy implementation
+}
+
void SfxInPlaceClient::DeactivateObject()
{
if ( GetObject().is() )
diff --git a/sfx2/source/view/makefile.mk b/sfx2/source/view/makefile.mk
deleted file mode 100644
index 9c257f4c9f75..000000000000
--- a/sfx2/source/view/makefile.mk
+++ /dev/null
@@ -1,65 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-
-
-PRJ=..$/..
-
-PRJNAME= sfx2
-TARGET= view
-ENABLE_EXCEPTIONS= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SRS1NAME=$(TARGET)
-SRC1FILES = \
- view.src
-
-SLOFILES = \
- $(SLO)$/ipclient.obj \
- $(SLO)$/viewsh.obj \
- $(SLO)$/frmload.obj \
- $(SLO)$/frame.obj \
- $(SLO)$/frame2.obj \
- $(SLO)$/printer.obj \
- $(SLO)$/viewprn.obj \
- $(SLO)$/viewfac.obj \
- $(SLO)$/orgmgr.obj \
- $(SLO)$/viewfrm.obj \
- $(SLO)$/viewfrm2.obj \
- $(SLO)$/sfxbasecontroller.obj \
- $(SLO)$/userinputinterception.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sfx2/source/view/orgmgr.cxx b/sfx2/source/view/orgmgr.cxx
index b15392372b19..6c92cd448adf 100644
--- a/sfx2/source/view/orgmgr.cxx
+++ b/sfx2/source/view/orgmgr.cxx
@@ -53,7 +53,7 @@
#include "docvor.hxx"
#include "orgmgr.hxx"
#include "sfxtypes.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "view.hrc"
#include <sfx2/docfilt.hxx>
#include "fltfnc.hxx"
diff --git a/sfx2/source/view/printer.cxx b/sfx2/source/view/printer.cxx
index 46a96bafab9a..310c1a58a578 100644
--- a/sfx2/source/view/printer.cxx
+++ b/sfx2/source/view/printer.cxx
@@ -44,7 +44,7 @@
#include <sfx2/prnmon.hxx>
#include <sfx2/viewsh.hxx>
#include <sfx2/tabdlg.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "view.hrc"
#ifdef MSC
diff --git a/sfx2/source/view/prnmon.cxx b/sfx2/source/view/prnmon.cxx
deleted file mode 100644
index a4e96ab1065e..000000000000
--- a/sfx2/source/view/prnmon.cxx
+++ /dev/null
@@ -1,495 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sfx2.hxx"
-#include <com/sun/star/view/PrintableState.hpp>
-#include <com/sun/star/util/XCloseable.hpp>
-#include <com/sun/star/util/XCloseBroadcaster.hpp>
-#include <com/sun/star/util/XCloseListener.hpp>
-#include <com/sun/star/util/CloseVetoException.hpp>
-#include <vcl/fixed.hxx>
-#include <vcl/msgbox.hxx>
-#include <svtools/asynclink.hxx>
-
-#include <unotools/printwarningoptions.hxx>
-#include <svl/eitem.hxx>
-
-#ifndef GCC
-#endif
-
-#include <sfx2/prnmon.hxx>
-#include <sfx2/viewsh.hxx>
-#include <sfx2/viewfrm.hxx>
-#include <sfx2/objsh.hxx>
-#include <sfx2/docfile.hxx>
-#include "sfxtypes.hxx"
-#include <sfx2/progress.hxx>
-#include <sfx2/bindings.hxx>
-#include "sfxresid.hxx"
-#include <sfx2/event.hxx>
-#include <sfx2/request.hxx>
-#include <sfx2/app.hxx>
-
-#include "view.hrc"
-
-//------------------------------------------------------------------------
-
-#define SFX_TITLE_MAXLEN_PRINTMONITOR 22
-
-//------------------------------------------------------------------------
-
-struct SfxPrintMonitor_Impl: public ModelessDialog
-{
-
- SfxPrintMonitor_Impl( Window *pParent, SfxViewShell *rpViewShell );
- virtual BOOL Close();
-
- SfxViewShell* pViewShell;
- FixedText aDocName;
- FixedText aPrinting;
- FixedText aPrinter;
- FixedText aPrintInfo;
- CancelButton aCancel;
-};
-
-//-------------------------------------------------------------------------
-
-struct SfxPrintProgress_Impl : public SfxListener
-{
- SfxPrintMonitor_Impl* pMonitor;
- SfxViewShell* pViewShell;
- SfxPrinter* pPrinter;
- SfxPrinter* pOldPrinter;
- USHORT nLastPage;
- BOOL bRunning;
- BOOL bCancel;
- BOOL bDeleteOnEndPrint;
- BOOL bShow;
- BOOL bCallbacks;
- BOOL bOldEnablePrintFile;
- BOOL bOldFlag;
- BOOL bRestoreFlag;
- BOOL bAborted;
- svtools::AsynchronLink aDeleteLink;
- Link aCancelHdl;
-
-private:
- DECL_LINK( CancelHdl, Button * );
- DECL_STATIC_LINK( SfxPrintProgress_Impl, DeleteHdl, SfxPrintProgress * );
-
-public:
- SfxPrintProgress_Impl( SfxViewShell* pTheViewShell, SfxPrinter* pThePrinter );
- ~SfxPrintProgress_Impl();
-
- void Delete( SfxPrintProgress* pAntiImpl ) { aDeleteLink.Call( pAntiImpl ); }
- SfxViewShell* GetViewShell() const { return pViewShell; }
- BOOL SetPage( USHORT nPage, const String &rPage );
- void CreateMonitor();
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
-};
-
-void SfxPrintProgress_Impl::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint )
-{
- SfxPrintingHint* pPrintHint = PTR_CAST( SfxPrintingHint, &rHint );
- if ( pPrintHint )
- {
- if ( pPrintHint->GetWhich() == -2 )
- CancelHdl(0);
- }
-}
-
-//------------------------------------------------------------------------
-
-SfxPrintMonitor_Impl::SfxPrintMonitor_Impl( Window* pParent, SfxViewShell* rpViewShell ) :
- ModelessDialog( pParent, SfxResId( DLG_PRINTMONITOR ) ),
- pViewShell ( rpViewShell ),
- aDocName ( this, SfxResId( FT_DOCNAME ) ),
- aPrinting ( this, SfxResId( FT_PRINTING ) ),
- aPrinter ( this, SfxResId( FT_PRINTER ) ),
- aPrintInfo ( this, SfxResId( FT_PRINTINFO ) ),
- aCancel ( this, SfxResId( PB_CANCELPRNMON ) )
-{
- if( rpViewShell->GetPrinter()->GetCapabilities( PRINTER_CAPABILITIES_EXTERNALDIALOG ) != 0 )
- {
- String aPrep( SfxResId( STR_FT_PREPARATION ) );
- aPrinting.SetText( aPrep );
- aPrinter.Show( FALSE );
- }
- FreeResource();
-}
-
-//------------------------------------------------------------------------
-
-IMPL_STATIC_LINK_NOINSTANCE( SfxPrintProgress_Impl, DeleteHdl, SfxPrintProgress*, pAntiImpl )
-{
- delete pAntiImpl;
- return 0;
-}
-
-void actualizePrintCancelState(CancelButton& rButton, const SfxObjectShell* pShell)
-{
- sal_Bool bEnableCancelButton = sal_True;
- if (pShell)
- bEnableCancelButton = pShell->Stamp_GetPrintCancelState();
-
- if (!bEnableCancelButton)
- rButton.Disable();
- else
- rButton.Enable();
-}
-
-//------------------------------------------------------------------------
-
-SfxPrintProgress_Impl::SfxPrintProgress_Impl( SfxViewShell* pTheViewShell,
- SfxPrinter* pThePrinter ) :
-
- pMonitor ( 0 ),
- pViewShell ( pTheViewShell ),
- pPrinter ( pThePrinter ),
- pOldPrinter ( NULL ),
- nLastPage ( 0 ),
- bRunning ( TRUE ),
- bCancel ( FALSE ),
- bDeleteOnEndPrint ( FALSE ),
- bShow ( FALSE ),
- bCallbacks ( FALSE ),
- bOldEnablePrintFile ( FALSE ),
- bOldFlag ( TRUE ),
- bRestoreFlag ( FALSE ),
- bAborted ( FALSE ),
- aDeleteLink ( STATIC_LINK( this, SfxPrintProgress_Impl, DeleteHdl ) )
-{
- StartListening( *pViewShell->GetObjectShell() );
-}
-
-void SfxPrintProgress_Impl::CreateMonitor()
-{
- // mark monitor to been shown in first status indication
- bShow = TRUE;
-
- if ( !pMonitor )
- {
- Window* pParent = pViewShell->GetWindow();
- pMonitor = new SfxPrintMonitor_Impl( pParent, pViewShell );
- pMonitor->aDocName.SetText( pViewShell->GetObjectShell()->GetTitle( SFX_TITLE_MAXLEN_PRINTMONITOR ) );
- pMonitor->aPrinter.SetText( pViewShell->GetPrinter()->GetName() );
-
- // Stampit enable/dsiable cancel button
- actualizePrintCancelState( pMonitor->aCancel, pViewShell->GetObjectShell() );
- pMonitor->aCancel.SetClickHdl( LINK( this, SfxPrintProgress_Impl, CancelHdl ) );
- }
-}
-
-//------------------------------------------------------------------------
-
-SfxPrintProgress_Impl::~SfxPrintProgress_Impl()
-{
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxPrintProgress_Impl::SetPage( USHORT nPage, const String &rPage )
-{
- // wurde der Druckauftrag abgebrochen?
- if ( bCancel || !pMonitor )
- return FALSE;
-
- // Stampit enable/dsiable cancel button
- actualizePrintCancelState(pMonitor->aCancel, pViewShell->GetObjectShell());
-
- nLastPage = nPage;
- String aStrPrintInfo = String( SfxResId( STR_PAGE ) );
- if ( !rPage.Len() )
- aStrPrintInfo += String::CreateFromInt32( nLastPage );
- else
- aStrPrintInfo += rPage;
- pMonitor->aPrintInfo.SetText( aStrPrintInfo );
- pMonitor->Update();
- return TRUE;
-}
-
-//------------------------------------------------------------------------
-
-IMPL_LINK( SfxPrintProgress_Impl, CancelHdl, Button *, EMPTYARG )
-{
- if ( !pViewShell->GetPrinter()->IsJobActive() && pViewShell->GetPrinter()->IsPrinting() )
- // we are still in StartJob, cancelling now might lead to a crash
- return 0;
-
- if ( pMonitor )
- pMonitor->Hide();
-
- pViewShell->GetObjectShell()->Broadcast( SfxPrintingHint( com::sun::star::view::PrintableState_JOB_ABORTED, NULL, NULL ) );
- pViewShell->GetPrinter()->AbortJob();
- bCancel = TRUE;
-
- if ( aCancelHdl.IsSet() )
- aCancelHdl.Call( this );
-
- bAborted = TRUE;
- return 0;
-}
-
-BOOL SfxPrintMonitor_Impl::Close()
-{
- BOOL bAgree = pViewShell ? pViewShell->GetObjectShell()->Stamp_GetPrintCancelState() : TRUE;
- if (!bAgree)
- return FALSE;
- else
- return ModelessDialog::Close();
-}
-
-//--------------------------------------------------------------------
-
-SfxPrintProgress::SfxPrintProgress( SfxViewShell* pViewSh, FASTBOOL bShow )
-: SfxProgress( pViewSh->GetViewFrame()->GetObjectShell(),
- String(SfxResId(STR_PRINTING)), 1, FALSE ),
- pImp( new SfxPrintProgress_Impl( pViewSh, pViewSh->GetPrinter() ) )
-{
- #if 0
- pImp->pPrinter->SetEndPrintHdl( LINK( this, SfxPrintProgress, EndPrintNotify ) );
- pImp->pPrinter->SetErrorHdl( LINK( this, SfxPrintProgress, PrintErrorNotify ) );
- pImp->pPrinter->SetStartPrintHdl( LINK( this, SfxPrintProgress, StartPrintNotify ) );
- pImp->bCallbacks = TRUE;
- #endif
-
- SfxObjectShell* pDoc = pViewSh->GetObjectShell();
- SFX_ITEMSET_ARG( pDoc->GetMedium()->GetItemSet(), pItem, SfxBoolItem, SID_HIDDEN, FALSE );
- if ( pItem && pItem->GetValue() )
- bShow = FALSE;
-
- if ( bShow )
- pImp->CreateMonitor();
-
- Lock();
- if ( !SvtPrintWarningOptions().IsModifyDocumentOnPrintingAllowed() )
- {
- pImp->bRestoreFlag = TRUE;
- pImp->bOldFlag = pDoc->IsEnableSetModified();
- if ( pImp->bOldFlag )
- pDoc->EnableSetModified( FALSE );
- }
-}
-
-//--------------------------------------------------------------------
-
-SfxPrintProgress::~SfxPrintProgress()
-{
- // k"onnte auch schon weg sein (in EndPrintNotify)
- DELETEZ(pImp->pMonitor);
-
- // ggf. Callbacks entfermen
- if ( pImp->bCallbacks )
- {
- // pImp->pPrinter->SetEndPrintHdl( Link() );
- pImp->pPrinter->SetErrorHdl( Link() );
- pImp->bCallbacks = FALSE;
- }
-
- // ggf. vorherigen Drucker wieder einsetzen
- if ( pImp->pOldPrinter )
- pImp->pViewShell->SetPrinter( pImp->pOldPrinter, SFX_PRINTER_PRINTER );
- else
- // ggf. vorherigen Print-To-File-Status zuruecksetzen
- pImp->pViewShell->GetPrinter()->EnablePrintFile( pImp->bOldEnablePrintFile );
-
- // EndPrint-Notification an Frame
- //pImp->pViewShell->GetViewFrame()->GetFrame().Lock_Impl(FALSE);
- pImp->EndListening( *(pImp->pViewShell->GetObjectShell()) );
-
- // the following call might destroy the view or even the document
- pImp->pViewShell->CheckOwnerShip_Impl();
- delete pImp;
-}
-
-//--------------------------------------------------------------------
-
-BOOL SfxPrintProgress::SetState( ULONG nValue, ULONG nNewRange )
-{
- if ( pImp->bShow )
- {
- pImp->bShow = FALSE;
- if ( pImp->pMonitor )
- {
- pImp->pMonitor->Show();
- pImp->pMonitor->Update();
- }
- }
-
- return pImp->SetPage( (USHORT)nValue, GetStateText_Impl() ) &&
- SfxProgress::SetState( nValue, nNewRange );
-}
-
-//--------------------------------------------------------------------
-
-void SfxPrintProgress::SetText( const String& rText )
-{
- if ( pImp->pMonitor )
- {
- pImp->pMonitor->SetText( rText );
- pImp->pMonitor->Update();
- }
- SfxProgress::SetText( rText );
-}
-
-//------------------------------------------------------------------------
-
-IMPL_LINK_INLINE_START( SfxPrintProgress, PrintErrorNotify, void *, EMPTYARG )
-{
- if ( pImp->pMonitor )
- pImp->pMonitor->Hide();
- // AbortJob calls EndPrint hdl, so do not delete pImp just now
- BOOL bWasDeleteOnEndPrint = pImp->bDeleteOnEndPrint;
- pImp->bDeleteOnEndPrint = FALSE;
- pImp->pPrinter->AbortJob();
- InfoBox( pImp->GetViewShell()->GetWindow(),
- String( SfxResId(STR_ERROR_PRINT) ) ).Execute();
- if ( pImp->bRestoreFlag && pImp->pViewShell->GetObjectShell()->IsEnableSetModified() != pImp->bOldFlag )
- pImp->pViewShell->GetObjectShell()->EnableSetModified( pImp->bOldFlag );
- pImp->GetViewShell()->GetObjectShell()->Broadcast( SfxPrintingHint( com::sun::star::view::PrintableState_JOB_FAILED, NULL, NULL ) );
- // now we can clean up like normally EndPrint hdl does
- if( bWasDeleteOnEndPrint )
- {
- DELETEZ(pImp->pMonitor);
- delete this;
- }
- return 0;
-}
-IMPL_LINK_INLINE_END( SfxPrintProgress, PrintErrorNotify, void *, EMPTYARG )
-
-//------------------------------------------------------------------------
-
-IMPL_LINK( SfxPrintProgress, StartPrintNotify, void *, EMPTYARG )
-{
- SfxObjectShell *pObjShell = pImp->pViewShell->GetObjectShell();
- SFX_APP()->NotifyEvent(SfxEventHint(SFX_EVENT_PRINTDOC, GlobalEventConfig::GetEventName( STR_EVENT_PRINTDOC ), pObjShell));
- pObjShell->Broadcast( SfxPrintingHint( com::sun::star::view::PrintableState_JOB_STARTED, NULL, NULL ) );
- return 0;
-}
-
-IMPL_LINK( SfxPrintProgress, EndPrintNotify, void *, EMPTYARG )
-{
- if ( pImp->pMonitor )
- pImp->pMonitor->Hide();
-
- SfxViewShell* pViewShell = pImp->pViewShell;
-
- // Slots enablen
- pViewShell->Invalidate( SID_PRINTDOC );
- pViewShell->Invalidate( SID_PRINTDOCDIRECT );
- pViewShell->Invalidate( SID_SETUPPRINTER );
-
- // . . . falls der Printer im System umgestellt wurde, hier Aenderung
- // nachziehen.
- //! if( pMDI->IsPrinterChanged() ) pMDI->Changed( 0L );
-
- // Callbacks rausnehmen
- // pImp->pPrinter->SetEndPrintHdl( Link() );
- pImp->pPrinter->SetErrorHdl( Link() );
- pImp->bCallbacks = FALSE;
-
- // ggf. alten Printer wieder einsetzen
- if ( pImp->pOldPrinter )
- {
- // Fix #59613#: niemals den aktuellen Printer synchron abschiessen !
- // Da sowieso immer bDeleteOnEndPrint gesetzt wird, wird der der Drucker im
- // dtor vom Printprogress ( dann aber asynchron !! ) zur"uckgesetzt.
-/*
- pImp->pViewShell->SetPrinter( pImp->pOldPrinter, SFX_PRINTER_PRINTER );
- pImp->pOldPrinter = 0;
- pImp->pPrinter = 0;
- */
- }
- else
- // ggf. vorherigen Print-To-File-Status zuruecksetzen
- pViewShell->GetPrinter()->EnablePrintFile( pImp->bOldEnablePrintFile );
-
- // it is possible that after printing the document or view is deleted (because the VieShell got the ownership)
- // so first clean up
- if ( pImp->bRestoreFlag && pViewShell->GetObjectShell()->IsEnableSetModified() != pImp->bOldFlag )
- pViewShell->GetObjectShell()->EnableSetModified( TRUE );
-
- pViewShell->GetObjectShell()->Broadcast( SfxPrintingHint( com::sun::star::view::PrintableState_JOB_COMPLETED, NULL, NULL ) );
- if ( pImp->bDeleteOnEndPrint )
- {
- DELETEZ(pImp->pMonitor);
- delete this;
- }
- else
- {
- DBG_ASSERT( !pImp->pOldPrinter, "Unable to restore printer!" );
- pImp->bRunning = FALSE;
- }
-
- return 0;
-}
-
-//------------------------------------------------------------------------
-
-void SfxPrintProgress::DeleteOnEndPrint()
-{
- UnLock(); // jetzt schon, wg. Drucken im Thread
-#ifndef WNT
- // da das Drucken im 'Thread' unter Windows zu undefiniert ist bleibt der
- // Print-Monitor dort stehen, auf den anderen Plattformen kann man dann
- // weiterarbeiten, also kommt das Teil weg
- DELETEZ( pImp->pMonitor );
-#endif
-
- pImp->bDeleteOnEndPrint = TRUE;
- if ( !pImp->bRunning )
- delete this;
-}
-
-//------------------------------------------------------------------------
-
-void SfxPrintProgress::RestoreOnEndPrint( SfxPrinter *pOldPrinter,
- BOOL bOldEnablePrintFile )
-{
- pImp->pOldPrinter = pOldPrinter;
- pImp->bOldEnablePrintFile = bOldEnablePrintFile;
-}
-
-//------------------------------------------------------------------------
-
-void SfxPrintProgress::RestoreOnEndPrint( SfxPrinter *pOldPrinter )
-{
- RestoreOnEndPrint( pOldPrinter, FALSE );
-}
-
-//------------------------------------------------------------------------
-
-void SfxPrintProgress::SetCancelHdl( const Link& aCancelHdl )
-{
- pImp->aCancelHdl = aCancelHdl;
-}
-
-BOOL SfxPrintProgress::IsAborted() const
-{
- return pImp->bAborted;
-}
diff --git a/sfx2/source/view/sfxbasecontroller.cxx b/sfx2/source/view/sfxbasecontroller.cxx
index 93c4eeb33cee..b8ad1cfc61f7 100644
--- a/sfx2/source/view/sfxbasecontroller.cxx
+++ b/sfx2/source/view/sfxbasecontroller.cxx
@@ -93,7 +93,7 @@
#include <hash_map>
#include <sfx2/event.hxx>
-#include "viewfac.hxx"
+#include "sfx2/viewfac.hxx"
#define OMULTITYPEINTERFACECONTAINERHELPER ::cppu::OMultiTypeInterfaceContainerHelper
#define OINTERFACECONTAINERHELPER ::cppu::OInterfaceContainerHelper
@@ -639,7 +639,7 @@ void SAL_CALL SfxBaseController::attachFrame( const REFERENCE< XFRAME >& xFrame
ConnectSfxFrame_Impl( E_CONNECT );
// attaching the frame to the controller is the last step in the creation of a new view, so notify this
- SfxEventHint aHint( SFX_EVENT_VIEWCREATED, GlobalEventConfig::GetEventName( STR_EVENT_VIEWCREATED ), m_pData->m_pViewShell->GetObjectShell() );
+ SfxViewEventHint aHint( SFX_EVENT_VIEWCREATED, GlobalEventConfig::GetEventName( STR_EVENT_VIEWCREATED ), m_pData->m_pViewShell->GetObjectShell(), uno::Reference< frame::XController2 >( this ) );
SFX_APP()->NotifyEvent( aHint );
}
}
@@ -1069,7 +1069,7 @@ void SAL_CALL SfxBaseController::dispose() throw( ::com::sun::star::uno::Runtime
pView = SfxViewFrame::GetNext( *pView, pDoc );
}
- SFX_APP()->NotifyEvent( SfxEventHint(SFX_EVENT_CLOSEVIEW, GlobalEventConfig::GetEventName( STR_EVENT_CLOSEVIEW ), pDoc ) );
+ SFX_APP()->NotifyEvent( SfxViewEventHint(SFX_EVENT_CLOSEVIEW, GlobalEventConfig::GetEventName( STR_EVENT_CLOSEVIEW ), pDoc, uno::Reference< frame::XController2 >( this ) ) );
if ( !pView )
SFX_APP()->NotifyEvent( SfxEventHint(SFX_EVENT_CLOSEDOC, GlobalEventConfig::GetEventName( STR_EVENT_CLOSEDOC ), pDoc) );
@@ -1438,11 +1438,11 @@ void SfxBaseController::ConnectSfxFrame_Impl( const ConnectSfxFrame i_eConnect )
try
{
Reference< XViewDataSupplier > xViewDataSupplier( getModel(), UNO_QUERY_THROW );
- Reference< XIndexAccess > xViewData( xViewDataSupplier->getViewData(), UNO_SET_THROW );
+ Reference< XIndexAccess > xViewData( xViewDataSupplier->getViewData() );
// find the view data item whose ViewId matches the ID of the view we're just connecting to
const SfxObjectFactory& rDocFactory( rDoc.GetFactory() );
- const sal_Int32 nCount = xViewData->getCount();
+ const sal_Int32 nCount = xViewData.is() ? xViewData->getCount() : 0;
sal_Int32 nViewDataIndex = 0;
for ( sal_Int32 i=0; i<nCount; ++i )
{
diff --git a/sfx2/source/view/view.hrc b/sfx2/source/view/view.hrc
index 243dcd56e4c8..3dce1ec795bb 100644
--- a/sfx2/source/view/view.hrc
+++ b/sfx2/source/view/view.hrc
@@ -41,12 +41,6 @@
#define STR_NOSTARTPRINTER (RID_SFX_VIEW_START+ 9)
#define STR_PRINTING (RID_SFX_VIEW_START+10)
-#ifndef STR_UNDO
-#define STR_UNDO (RID_SFX_VIEW_START+11)
-#define STR_REDO (RID_SFX_VIEW_START+12)
-#define STR_REPEAT (RID_SFX_VIEW_START+13)
-#endif
-
#define DLG_PRINTMONITOR (RID_SFX_VIEW_START)
#define FT_DOCNAME 1
#define FT_PRINTING 2
diff --git a/sfx2/source/view/viewfac.cxx b/sfx2/source/view/viewfac.cxx
index f9469e8a9f88..3eed678420dd 100644
--- a/sfx2/source/view/viewfac.cxx
+++ b/sfx2/source/view/viewfac.cxx
@@ -30,8 +30,8 @@
// INCLUDE ---------------------------------------------------------------
#include <sfx2/app.hxx>
+#include "sfx2/viewfac.hxx"
#include <rtl/ustrbuf.hxx>
-#include "viewfac.hxx"
// STATIC DATA -----------------------------------------------------------
diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx
index 6222721d9b83..dbadbc54ebd4 100644
--- a/sfx2/source/view/viewfrm.cxx
+++ b/sfx2/source/view/viewfrm.cxx
@@ -36,12 +36,8 @@
#include <com/sun/star/frame/XLayoutManager.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
-#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
#include <toolkit/unohlp.hxx>
-#endif
-#ifndef _SPLITWIN_HXX //autogen
#include <vcl/splitwin.hxx>
-#endif
#include <unotools/moduleoptions.hxx>
#include <svl/intitem.hxx>
#include <svl/visitem.hxx>
@@ -50,9 +46,7 @@
#include <svl/slstitm.hxx>
#include <svl/whiter.hxx>
#include <svl/undo.hxx>
-#ifndef _MSGBOX_HXX //autogen
#include <vcl/msgbox.hxx>
-#endif
#include <svtools/sfxecode.hxx>
#include <svtools/ehdl.hxx>
#include <tools/diagnose_ex.h>
@@ -98,6 +92,8 @@
#include <comphelper/storagehelper.hxx>
#include <svtools/asynclink.hxx>
#include <svl/sharecontrolfile.hxx>
+#include <svtools/svtools.hrc>
+#include <svtools/svtdata.hxx>
#include <framework/framelistanalyzer.hxx>
#include <boost/optional.hpp>
@@ -113,9 +109,6 @@ using ::com::sun::star::document::XViewDataSupplier;
using ::com::sun::star::container::XIndexContainer;
namespace css = ::com::sun::star;
-#ifndef GCC
-#endif
-
// wg. ViewFrame::Current
#include "appdata.hxx"
#include <sfx2/taskpane.hxx>
@@ -132,10 +125,10 @@ namespace css = ::com::sun::star;
#include <sfx2/request.hxx>
#include <sfx2/docfac.hxx>
#include <sfx2/ipclient.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include "appbas.hxx"
#include <sfx2/objitem.hxx>
-#include "viewfac.hxx"
+#include "sfx2/viewfac.hxx"
#include <sfx2/event.hxx>
#include "fltfnc.hxx"
#include <sfx2/docfile.hxx>
@@ -152,7 +145,7 @@ namespace css = ::com::sun::star;
#include "workwin.hxx"
#include "helper.hxx"
#include "macro.hxx"
-#include "minfitem.hxx"
+#include "sfx2/minfitem.hxx"
#include "../appl/app.hrc"
#include "impviewframe.hxx"
@@ -1030,8 +1023,8 @@ void SfxViewFrame::StateHistory_Impl( SfxItemSet &rSet )
if ( pShUndoMgr && pShUndoMgr->GetUndoActionCount() )
{
- String aTmp( SfxResId( STR_UNDO ) );
- aTmp += pShUndoMgr->GetUndoActionComment(0);
+ String aTmp( SvtResId( STR_UNDO ) );
+ aTmp+= pShUndoMgr->GetUndoActionComment(0);
rSet.Put( SfxStringItem( SID_UNDO, aTmp ) );
}
else
@@ -1039,7 +1032,7 @@ void SfxViewFrame::StateHistory_Impl( SfxItemSet &rSet )
if ( pShUndoMgr && pShUndoMgr->GetRedoActionCount() )
{
- String aTmp( SfxResId(STR_REDO) );
+ String aTmp( SvtResId(STR_REDO) );
aTmp += pShUndoMgr->GetRedoActionComment(0);
rSet.Put( SfxStringItem( SID_REDO, aTmp ) );
}
@@ -1049,7 +1042,7 @@ void SfxViewFrame::StateHistory_Impl( SfxItemSet &rSet )
if ( pShUndoMgr && pTarget && pShUndoMgr->GetRepeatActionCount() &&
pShUndoMgr->CanRepeat(*pTarget, 0) )
{
- String aTmp( SfxResId(STR_REPEAT) );
+ String aTmp( SvtResId(STR_REPEAT) );
aTmp += pShUndoMgr->GetRepeatActionComment(*pTarget, 0);
rSet.Put( SfxStringItem( SID_REPEAT, aTmp ) );
}
diff --git a/sfx2/source/view/viewfrm2.cxx b/sfx2/source/view/viewfrm2.cxx
index 480b5307df2e..05ce981a51b6 100644
--- a/sfx2/source/view/viewfrm2.cxx
+++ b/sfx2/source/view/viewfrm2.cxx
@@ -30,7 +30,7 @@
#include "impviewframe.hxx"
#include "statcach.hxx"
-#include "viewfac.hxx"
+#include "sfx2/viewfac.hxx"
#include "workwin.hxx"
#include "sfx2/app.hxx"
diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx
index d1cfd8c2d181..4ef4244f28e6 100644
--- a/sfx2/source/view/viewprn.cxx
+++ b/sfx2/source/view/viewprn.cxx
@@ -50,7 +50,7 @@
#include "viewimp.hxx"
#include <sfx2/viewfrm.hxx>
#include <sfx2/prnmon.hxx>
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/request.hxx>
#include <sfx2/objsh.hxx>
#include "sfxtypes.hxx"
diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx
index 5c41ba167c55..ca3452e24168 100644
--- a/sfx2/source/view/viewsh.cxx
+++ b/sfx2/source/view/viewsh.cxx
@@ -44,7 +44,6 @@
#include <com/sun/star/system/SystemShellExecuteFlags.hpp>
#include <com/sun/star/container/XContainerQuery.hpp>
#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/datatransfer/clipboard/XClipboardNotifier.hpp>
#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
#include <cppuhelper/implbase1.hxx>
@@ -70,7 +69,7 @@
#include "view.hrc"
#include <sfx2/viewsh.hxx>
#include "viewimp.hxx"
-#include "sfxresid.hxx"
+#include "sfx2/sfxresid.hxx"
#include <sfx2/request.hxx>
#include <sfx2/templdlg.hxx>
#include <sfx2/printer.hxx>
@@ -81,8 +80,8 @@
#include "view.hrc"
#include "sfxlocal.hrc"
#include <sfx2/sfxbasecontroller.hxx>
+#include "sfx2/mailmodelapi.hxx"
#include <sfx2/viewfrm.hxx>
-#include "mailmodelapi.hxx"
#include <sfx2/event.hxx>
#include <sfx2/fcontnr.hxx>
#include <sfx2/ipclient.hxx>
@@ -115,7 +114,9 @@ DBG_NAME(SfxViewShell)
class SfxClipboardChangeListener : public ::cppu::WeakImplHelper1<
datatransfer::clipboard::XClipboardListener >
{
- SfxViewShell* pViewShell;
+public:
+ SfxClipboardChangeListener( SfxViewShell* pView, const uno::Reference< datatransfer::clipboard::XClipboardNotifier >& xClpbrdNtfr );
+ virtual ~SfxClipboardChangeListener();
// XEventListener
virtual void SAL_CALL disposing( const lang::EventObject& rEventObject )
@@ -125,21 +126,46 @@ class SfxClipboardChangeListener : public ::cppu::WeakImplHelper1<
virtual void SAL_CALL changedContents( const datatransfer::clipboard::ClipboardEvent& rEventObject )
throw ( uno::RuntimeException );
-public:
- SfxClipboardChangeListener( SfxViewShell* pView );
- virtual ~SfxClipboardChangeListener();
+ void DisconnectViewShell() { m_pViewShell = NULL; }
+ void ChangedContents();
+
+ enum AsyncExecuteCmd
+ {
+ ASYNCEXECUTE_CMD_DISPOSING,
+ ASYNCEXECUTE_CMD_CHANGEDCONTENTS
+ };
- void DisconnectViewShell() { pViewShell = NULL; }
+ struct AsyncExecuteInfo
+ {
+ AsyncExecuteInfo( AsyncExecuteCmd eCmd, uno::Reference< datatransfer::clipboard::XClipboardListener > xThis, SfxClipboardChangeListener* pListener ) :
+ m_eCmd( eCmd ), m_xThis( xThis ), m_pListener( pListener ) {}
+
+ AsyncExecuteCmd m_eCmd;
+ uno::Reference< datatransfer::clipboard::XClipboardListener > m_xThis;
+ SfxClipboardChangeListener* m_pListener;
+ };
+
+private:
+ SfxViewShell* m_pViewShell;
+ uno::Reference< datatransfer::clipboard::XClipboardNotifier > m_xClpbrdNtfr;
+ uno::Reference< lang::XComponent > m_xCtrl;
+
+ DECL_STATIC_LINK( SfxClipboardChangeListener, AsyncExecuteHdl_Impl, AsyncExecuteInfo* );
};
-SfxClipboardChangeListener::SfxClipboardChangeListener( SfxViewShell* pView )
-: pViewShell( 0 )
+SfxClipboardChangeListener::SfxClipboardChangeListener( SfxViewShell* pView, const uno::Reference< datatransfer::clipboard::XClipboardNotifier >& xClpbrdNtfr )
+ : m_pViewShell( 0 ), m_xClpbrdNtfr( xClpbrdNtfr )
{
- uno::Reference < lang::XComponent > xCtrl( pView->GetController(), uno::UNO_QUERY );
- if ( xCtrl.is() )
+ m_xCtrl = uno::Reference < lang::XComponent >( pView->GetController(), uno::UNO_QUERY );
+ if ( m_xCtrl.is() )
+ {
+ m_xCtrl->addEventListener( uno::Reference < lang::XEventListener > ( static_cast < lang::XEventListener* >( this ) ) );
+ m_pViewShell = pView;
+ }
+ if ( m_xClpbrdNtfr.is() )
{
- xCtrl->addEventListener( uno::Reference < lang::XEventListener > ( static_cast < lang::XEventListener* >( this ) ) );
- pViewShell = pView;
+ m_xClpbrdNtfr->addClipboardListener( uno::Reference< datatransfer::clipboard::XClipboardListener >(
+ static_cast< datatransfer::clipboard::XClipboardListener* >( this )));
}
}
@@ -147,34 +173,68 @@ SfxClipboardChangeListener::~SfxClipboardChangeListener()
{
}
-void SAL_CALL SfxClipboardChangeListener::disposing( const lang::EventObject& /*rEventObject*/ )
-throw ( uno::RuntimeException )
+void SfxClipboardChangeListener::ChangedContents()
{
- // either clipboard or ViewShell is going to be destroyed -> no interest in listening anymore
const ::vos::OGuard aGuard( Application::GetSolarMutex() );
- if ( pViewShell )
+ if( m_pViewShell )
{
- uno::Reference < lang::XComponent > xCtrl( pViewShell->GetController(), uno::UNO_QUERY );
- if ( xCtrl.is() )
- xCtrl->removeEventListener( uno::Reference < lang::XEventListener > ( static_cast < lang::XEventListener* >( this ) ) );
- pViewShell->AddRemoveClipboardListener( uno::Reference < datatransfer::clipboard::XClipboardListener > (this), FALSE );
- pViewShell = 0;
+ SfxBindings& rBind = m_pViewShell->GetViewFrame()->GetBindings();
+ rBind.Invalidate( SID_PASTE );
+ rBind.Invalidate( SID_PASTE_SPECIAL );
+ rBind.Invalidate( SID_CLIPBOARD_FORMAT_ITEMS );
}
}
-void SAL_CALL SfxClipboardChangeListener::changedContents( const datatransfer::clipboard::ClipboardEvent& )
- throw ( RuntimeException )
+IMPL_STATIC_LINK_NOINSTANCE( SfxClipboardChangeListener, AsyncExecuteHdl_Impl, AsyncExecuteInfo*, pAsyncExecuteInfo )
{
- const ::vos::OGuard aGuard( Application::GetSolarMutex() );
- if( pViewShell )
+ if ( pAsyncExecuteInfo )
{
- SfxBindings& rBind = pViewShell->GetViewFrame()->GetBindings();
- rBind.Invalidate( SID_PASTE );
- rBind.Invalidate( SID_PASTE_SPECIAL );
- rBind.Invalidate( SID_CLIPBOARD_FORMAT_ITEMS );
+ uno::Reference< datatransfer::clipboard::XClipboardListener > xThis( pAsyncExecuteInfo->m_xThis );
+ if ( pAsyncExecuteInfo->m_pListener )
+ {
+ if ( pAsyncExecuteInfo->m_eCmd == ASYNCEXECUTE_CMD_DISPOSING )
+ pAsyncExecuteInfo->m_pListener->DisconnectViewShell();
+ else if ( pAsyncExecuteInfo->m_eCmd == ASYNCEXECUTE_CMD_CHANGEDCONTENTS )
+ pAsyncExecuteInfo->m_pListener->ChangedContents();
+ }
}
+ delete pAsyncExecuteInfo;
+
+ return 0;
+}
+
+void SAL_CALL SfxClipboardChangeListener::disposing( const lang::EventObject& /*rEventObject*/ )
+throw ( uno::RuntimeException )
+{
+ // Either clipboard or ViewShell is going to be destroyed -> no interest in listening anymore
+ uno::Reference< lang::XComponent > xCtrl( m_xCtrl );
+ uno::Reference< datatransfer::clipboard::XClipboardNotifier > xNotify( m_xClpbrdNtfr );
+
+ uno::Reference< datatransfer::clipboard::XClipboardListener > xThis( static_cast< datatransfer::clipboard::XClipboardListener* >( this ));
+ if ( xCtrl.is() )
+ xCtrl->removeEventListener( uno::Reference < lang::XEventListener > ( static_cast < lang::XEventListener* >( this )));
+ if ( xNotify.is() )
+ xNotify->removeClipboardListener( xThis );
+
+ // Make asynchronous call to avoid locking SolarMutex which is the
+ // root for many deadlocks, especially in conjuction with the "Windows"
+ // based single thread apartment clipboard code!
+ AsyncExecuteInfo* pInfo = new AsyncExecuteInfo( ASYNCEXECUTE_CMD_DISPOSING, xThis, this );
+ Application::PostUserEvent( STATIC_LINK( 0, SfxClipboardChangeListener, AsyncExecuteHdl_Impl ), pInfo );
+}
+
+void SAL_CALL SfxClipboardChangeListener::changedContents( const datatransfer::clipboard::ClipboardEvent& )
+ throw ( RuntimeException )
+{
+ // Make asynchronous call to avoid locking SolarMutex which is the
+ // root for many deadlocks, especially in conjuction with the "Windows"
+ // based single thread apartment clipboard code!
+ uno::Reference< datatransfer::clipboard::XClipboardListener > xThis( static_cast< datatransfer::clipboard::XClipboardListener* >( this ));
+ AsyncExecuteInfo* pInfo = new AsyncExecuteInfo( ASYNCEXECUTE_CMD_CHANGEDCONTENTS, xThis, this );
+ Application::PostUserEvent( STATIC_LINK( 0, SfxClipboardChangeListener, AsyncExecuteHdl_Impl ), pInfo );
}
+//=========================================================================
static ::rtl::OUString RetrieveLabelFromCommand(
const ::rtl::OUString& rCommandURL,
@@ -252,7 +312,7 @@ SfxViewShell_Impl::SfxViewShell_Impl(USHORT const nFlags)
, m_bGotOwnership(false)
, m_bGotFrameOwnership(false)
, m_eScroll(SCROLLING_DEFAULT)
-, m_nFamily(-1) // undefined, default set by TemplateDialog
+, m_nFamily(0xFFFF) // undefined, default set by TemplateDialog
, m_pController(0)
, m_pAccExec(0)
{}
@@ -260,7 +320,7 @@ SfxViewShell_Impl::SfxViewShell_Impl(USHORT const nFlags)
//=========================================================================
SFX_IMPL_INTERFACE(SfxViewShell,SfxShell,SfxResId(0))
{
- SFX_CHILDWINDOW_REGISTRATION( SID_MAIL_CHILDWIN );
+ SFX_CHILDWINDOW_REGISTRATION( SID_MAIL_CHILDWIN );
}
TYPEINIT2(SfxViewShell,SfxShell,SfxListener);
@@ -379,27 +439,27 @@ enum ETypeFamily
void SfxViewShell::ExecMisc_Impl( SfxRequest &rReq )
{
- const USHORT nId = rReq.GetSlot();
- switch( nId )
- {
- case SID_STYLE_FAMILY :
+ const USHORT nId = rReq.GetSlot();
+ switch( nId )
{
- SFX_REQUEST_ARG(rReq, pItem, SfxUInt16Item, nId, FALSE);
- if (pItem)
+ case SID_STYLE_FAMILY :
+ {
+ SFX_REQUEST_ARG(rReq, pItem, SfxUInt16Item, nId, FALSE);
+ if (pItem)
{
pImp->m_nFamily = pItem->GetValue();
}
- break;
- }
+ break;
+ }
- case SID_STYLE_CATALOG:
- {
- SfxTemplateCatalog aCatalog(
- SFX_APP()->GetTopWindow(), &GetViewFrame()->GetBindings());
- aCatalog.Execute();
+ case SID_STYLE_CATALOG:
+ {
+ SfxTemplateCatalog aCatalog(
+ SFX_APP()->GetTopWindow(), &GetViewFrame()->GetBindings());
+ aCatalog.Execute();
rReq.Ignore();
- break;
- }
+ break;
+ }
case SID_ACTIVATE_STYLE_APPLY:
{
com::sun::star::uno::Reference< com::sun::star::frame::XFrame > xFrame(
@@ -459,85 +519,85 @@ void SfxViewShell::ExecMisc_Impl( SfxRequest &rReq )
rReq.Done();
}
break;
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- case SID_MAIL_SENDDOCASMS:
- case SID_MAIL_SENDDOCASOOO:
- case SID_MAIL_SENDDOCASPDF:
- case SID_MAIL_SENDDOC:
+ case SID_MAIL_SENDDOCASMS:
+ case SID_MAIL_SENDDOCASOOO:
+ case SID_MAIL_SENDDOCASPDF:
+ case SID_MAIL_SENDDOC:
case SID_MAIL_SENDDOCASFORMAT:
- {
- SfxObjectShell* pDoc = GetObjectShell();
- if ( pDoc && pDoc->QueryHiddenInformation(
- WhenSaving, &GetViewFrame()->GetWindow() ) != RET_YES )
- break;
+ {
+ SfxObjectShell* pDoc = GetObjectShell();
+ if ( pDoc && pDoc->QueryHiddenInformation(
+ WhenSaving, &GetViewFrame()->GetWindow() ) != RET_YES )
+ break;
- if ( SvtInternalOptions().MailUIEnabled() )
+ if ( SvtInternalOptions().MailUIEnabled() )
{
GetViewFrame()->SetChildWindow( SID_MAIL_CHILDWIN, TRUE );
}
else
{
- SfxMailModel aModel;
+ SfxMailModel aModel;
rtl::OUString aDocType;
- SFX_REQUEST_ARG(rReq, pMailSubject, SfxStringItem, SID_MAIL_SUBJECT, FALSE );
- if ( pMailSubject )
- aModel.SetSubject( pMailSubject->GetValue() );
+ SFX_REQUEST_ARG(rReq, pMailSubject, SfxStringItem, SID_MAIL_SUBJECT, FALSE );
+ if ( pMailSubject )
+ aModel.SetSubject( pMailSubject->GetValue() );
- SFX_REQUEST_ARG(rReq, pMailRecipient, SfxStringItem, SID_MAIL_RECIPIENT, FALSE );
- if ( pMailRecipient )
- {
- String aRecipient( pMailRecipient->GetValue() );
- String aMailToStr( String::CreateFromAscii( "mailto:" ));
+ SFX_REQUEST_ARG(rReq, pMailRecipient, SfxStringItem, SID_MAIL_RECIPIENT, FALSE );
+ if ( pMailRecipient )
+ {
+ String aRecipient( pMailRecipient->GetValue() );
+ String aMailToStr( String::CreateFromAscii( "mailto:" ));
- if ( aRecipient.Search( aMailToStr ) == 0 )
- aRecipient = aRecipient.Erase( 0, aMailToStr.Len() );
- aModel.AddAddress( aRecipient, SfxMailModel::ROLE_TO );
- }
+ if ( aRecipient.Search( aMailToStr ) == 0 )
+ aRecipient = aRecipient.Erase( 0, aMailToStr.Len() );
+ aModel.AddAddress( aRecipient, SfxMailModel::ROLE_TO );
+ }
SFX_REQUEST_ARG(rReq, pMailDocType, SfxStringItem, SID_TYPE_NAME, FALSE );
if ( pMailDocType )
aDocType = pMailDocType->GetValue();
uno::Reference < frame::XFrame > xFrame( pFrame->GetFrame().GetFrameInterface() );
- SfxMailModel::SendMailResult eResult = SfxMailModel::SEND_MAIL_ERROR;
+ SfxMailModel::SendMailResult eResult = SfxMailModel::SEND_MAIL_ERROR;
if ( nId == SID_MAIL_SENDDOC )
- eResult = aModel.SaveAndSend( xFrame, rtl::OUString() );
- else
- if ( nId == SID_MAIL_SENDDOCASPDF )
+ eResult = aModel.SaveAndSend( xFrame, rtl::OUString() );
+ else
+ if ( nId == SID_MAIL_SENDDOCASPDF )
eResult = aModel.SaveAndSend( xFrame, rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "pdf_Portable_Document_Format" )));
else
- if ( nId == SID_MAIL_SENDDOCASMS )
+ if ( nId == SID_MAIL_SENDDOCASMS )
{
aDocType = impl_searchFormatTypeForApp(xFrame, E_MS_DOC);
if (aDocType.getLength() > 0)
eResult = aModel.SaveAndSend( xFrame, aDocType );
}
else
- if ( nId == SID_MAIL_SENDDOCASOOO )
+ if ( nId == SID_MAIL_SENDDOCASOOO )
{
aDocType = impl_searchFormatTypeForApp(xFrame, E_OOO_DOC);
if (aDocType.getLength() > 0)
eResult = aModel.SaveAndSend( xFrame, aDocType );
}
- if ( eResult == SfxMailModel::SEND_MAIL_ERROR )
- {
- InfoBox aBox( SFX_APP()->GetTopWindow(), SfxResId( MSG_ERROR_SEND_MAIL ));
- aBox.Execute();
+ if ( eResult == SfxMailModel::SEND_MAIL_ERROR )
+ {
+ InfoBox aBox( SFX_APP()->GetTopWindow(), SfxResId( MSG_ERROR_SEND_MAIL ));
+ aBox.Execute();
rReq.Ignore();
- }
+ }
else
rReq.Done();
- }
+ }
- break;
- }
+ break;
+ }
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- case SID_WEBHTML:
- {
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ case SID_WEBHTML:
+ {
static const char HTML_DOCUMENT_TYPE[] = "writer_web_HTML";
static const char HTML_GRAPHIC_TYPE[] = "graphic_HTML";
const sal_Int32 FILTERFLAG_EXPORT = 0x00000002;
@@ -657,25 +717,25 @@ void SfxViewShell::ExecMisc_Impl( SfxRequest &rReq )
::rtl::OUString::createFromAscii( "com.sun.star.system.SystemShellExecute" )),
css::uno::UNO_QUERY );
- BOOL bRet( TRUE );
+ BOOL bRet( TRUE );
if ( xSystemShellExecute.is() )
{
try
{
- xSystemShellExecute->execute(
- aFileURL, ::rtl::OUString(), SystemShellExecuteFlags::DEFAULTS );
+ xSystemShellExecute->execute(
+ aFileURL, ::rtl::OUString(), SystemShellExecuteFlags::DEFAULTS );
}
catch ( uno::Exception& )
{
- vos::OGuard aGuard( Application::GetSolarMutex() );
+ vos::OGuard aGuard( Application::GetSolarMutex() );
Window *pParent = SFX_APP()->GetTopWindow();
- ErrorBox( pParent, SfxResId( MSG_ERROR_NO_WEBBROWSER_FOUND )).Execute();
+ ErrorBox( pParent, SfxResId( MSG_ERROR_NO_WEBBROWSER_FOUND )).Execute();
bRet = FALSE;
}
}
rReq.Done(bRet);
- break;
+ break;
}
else
{
@@ -685,97 +745,97 @@ void SfxViewShell::ExecMisc_Impl( SfxRequest &rReq )
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- case SID_PLUGINS_ACTIVE:
- {
- SFX_REQUEST_ARG(rReq, pShowItem, SfxBoolItem, nId, FALSE);
+ case SID_PLUGINS_ACTIVE:
+ {
+ SFX_REQUEST_ARG(rReq, pShowItem, SfxBoolItem, nId, FALSE);
bool const bActive = (pShowItem)
? pShowItem->GetValue()
: !pImp->m_bPlugInsActive;
- // ggf. recorden
- if ( !rReq.IsAPI() )
- rReq.AppendItem( SfxBoolItem( nId, bActive ) );
+ // ggf. recorden
+ if ( !rReq.IsAPI() )
+ rReq.AppendItem( SfxBoolItem( nId, bActive ) );
- // Jetzt schon DONE aufrufen, da die Argumente evtl. einen Pool
- // benutzen, der demn"achst weg ist
- rReq.Done(TRUE);
+ // Jetzt schon DONE aufrufen, da die Argumente evtl. einen Pool
+ // benutzen, der demn"achst weg ist
+ rReq.Done(TRUE);
- // ausfuehren
+ // ausfuehren
if (!pShowItem || (bActive != pImp->m_bPlugInsActive))
- {
- SfxFrame* pTopFrame = &GetFrame()->GetTopFrame();
- if ( pTopFrame != &GetFrame()->GetFrame() )
- {
- // FramesetDocument
- SfxViewShell *pShell = pTopFrame->GetCurrentViewFrame()->GetViewShell();
- if ( pShell->GetInterface()->GetSlot( nId ) )
- pShell->ExecuteSlot( rReq );
- break;
- }
-
- SfxFrameIterator aIter( *pTopFrame );
- while ( pTopFrame )
- {
- if ( pTopFrame->GetCurrentViewFrame() )
- {
- SfxViewShell *pView = pTopFrame->GetCurrentViewFrame()->GetViewShell();
- if ( pView )
{
+ SfxFrame* pTopFrame = &GetFrame()->GetTopFrame();
+ if ( pTopFrame != &GetFrame()->GetFrame() )
+ {
+ // FramesetDocument
+ SfxViewShell *pShell = pTopFrame->GetCurrentViewFrame()->GetViewShell();
+ if ( pShell->GetInterface()->GetSlot( nId ) )
+ pShell->ExecuteSlot( rReq );
+ break;
+ }
+
+ SfxFrameIterator aIter( *pTopFrame );
+ while ( pTopFrame )
+ {
+ if ( pTopFrame->GetCurrentViewFrame() )
+ {
+ SfxViewShell *pView = pTopFrame->GetCurrentViewFrame()->GetViewShell();
+ if ( pView )
+ {
pView->pImp->m_bPlugInsActive = bActive;
Rectangle aVisArea = GetObjectShell()->GetVisArea();
VisAreaChanged(aVisArea);
- // the plugins might need change in their state
- SfxInPlaceClientList *pClients = pView->GetIPClientList_Impl(FALSE);
- if ( pClients )
- {
- for (USHORT n=0; n < pClients->Count(); n++)
- {
- SfxInPlaceClient* pIPClient = pClients->GetObject(n);
- if ( pIPClient )
- pView->CheckIPClient_Impl( pIPClient, aVisArea );
+ // the plugins might need change in their state
+ SfxInPlaceClientList *pClients = pView->GetIPClientList_Impl(FALSE);
+ if ( pClients )
+ {
+ for (USHORT n=0; n < pClients->Count(); n++)
+ {
+ SfxInPlaceClient* pIPClient = pClients->GetObject(n);
+ if ( pIPClient )
+ pView->CheckIPClient_Impl( pIPClient, aVisArea );
+ }
+ }
+ }
+ }
+
+ if ( !pTopFrame->GetParentFrame() )
+ pTopFrame = aIter.FirstFrame();
+ else
+ pTopFrame = aIter.NextFrame( *pTopFrame );
}
- }
}
- }
- if ( !pTopFrame->GetParentFrame() )
- pTopFrame = aIter.FirstFrame();
- else
- pTopFrame = aIter.NextFrame( *pTopFrame );
+ break;
}
- }
-
- break;
}
- }
}
//--------------------------------------------------------------------
void SfxViewShell::GetState_Impl( SfxItemSet &rSet )
{
- DBG_CHKTHIS(SfxViewShell, 0);
+ DBG_CHKTHIS(SfxViewShell, 0);
- SfxWhichIter aIter( rSet );
- for ( USHORT nSID = aIter.FirstWhich(); nSID; nSID = aIter.NextWhich() )
- {
- switch ( nSID )
+ SfxWhichIter aIter( rSet );
+ for ( USHORT nSID = aIter.FirstWhich(); nSID; nSID = aIter.NextWhich() )
{
- case SID_STYLE_CATALOG:
- {
+ switch ( nSID )
+ {
+ case SID_STYLE_CATALOG:
+ {
if ( !GetViewFrame()->KnowsChildWindow( SID_STYLE_DESIGNER ) )
- rSet.DisableItem( nSID );
- break;
- }
+ rSet.DisableItem( nSID );
+ break;
+ }
- // Printer-Funktionen
- case SID_PRINTDOC:
- case SID_PRINTDOCDIRECT:
- case SID_SETUPPRINTER:
- case SID_PRINTER_NAME:
- {
+ // Printer-Funktionen
+ case SID_PRINTDOC:
+ case SID_PRINTDOCDIRECT:
+ case SID_SETUPPRINTER:
+ case SID_PRINTER_NAME:
+ {
bool bEnabled = pImp->m_bCanPrint && !pImp->m_nPrinterLocks;
- bEnabled = bEnabled && !Application::GetSettings().GetMiscSettings().GetDisablePrinting();
+ bEnabled = bEnabled && !Application::GetSettings().GetMiscSettings().GetDisablePrinting();
if ( bEnabled )
{
SfxPrinter *pPrinter = GetPrinter(FALSE);
@@ -804,68 +864,68 @@ void SfxViewShell::GetState_Impl( SfxItemSet &rSet )
}
bEnabled = !pPrinter || !pPrinter->IsPrinting();
}
- if ( !bEnabled )
- {
- // will now be handled by requeing the request
- /* rSet.DisableItem( SID_PRINTDOC );
- rSet.DisableItem( SID_PRINTDOCDIRECT );
- rSet.DisableItem( SID_SETUPPRINTER ); */
- }
- break;
- }
+ if ( !bEnabled )
+ {
+ // will now be handled by requeing the request
+ /* rSet.DisableItem( SID_PRINTDOC );
+ rSet.DisableItem( SID_PRINTDOCDIRECT );
+ rSet.DisableItem( SID_SETUPPRINTER ); */
+ }
+ break;
+ }
- // Mail-Funktionen
- case SID_MAIL_SENDDOCASPDF:
- case SID_MAIL_SENDDOC:
+ // Mail-Funktionen
+ case SID_MAIL_SENDDOCASPDF:
+ case SID_MAIL_SENDDOC:
case SID_MAIL_SENDDOCASFORMAT:
- {
+ {
BOOL bEnable = !GetViewFrame()->HasChildWindow( SID_MAIL_CHILDWIN );
- if ( !bEnable )
- rSet.DisableItem( nSID );
- break;
- }
+ if ( !bEnable )
+ rSet.DisableItem( nSID );
+ break;
+ }
- // PlugIns running
- case SID_PLUGINS_ACTIVE:
- {
+ // PlugIns running
+ case SID_PLUGINS_ACTIVE:
+ {
rSet.Put( SfxBoolItem( SID_PLUGINS_ACTIVE,
!pImp->m_bPlugInsActive) );
- break;
- }
+ break;
+ }
/*
- // SelectionText
- case SID_SELECTION_TEXT:
- {
- rSet.Put( SfxStringItem( SID_SELECTION_TEXT, GetSelectionText() ) );
- break;
- }
+ // SelectionText
+ case SID_SELECTION_TEXT:
+ {
+ rSet.Put( SfxStringItem( SID_SELECTION_TEXT, GetSelectionText() ) );
+ break;
+ }
- // SelectionTextExt
- case SID_SELECTION_TEXT_EXT:
- {
- rSet.Put( SfxStringItem( SID_SELECTION_TEXT_EXT, GetSelectionText(TRUE) ) );
- break;
- }
+ // SelectionTextExt
+ case SID_SELECTION_TEXT_EXT:
+ {
+ rSet.Put( SfxStringItem( SID_SELECTION_TEXT_EXT, GetSelectionText(TRUE) ) );
+ break;
+ }
*/
- case SID_STYLE_FAMILY :
- {
+ case SID_STYLE_FAMILY :
+ {
rSet.Put( SfxUInt16Item( SID_STYLE_FAMILY, pImp->m_nFamily ) );
- break;
- }
+ break;
+ }
+ }
}
- }
}
//--------------------------------------------------------------------
void SfxViewShell::SetZoomFactor( const Fraction &rZoomX,
- const Fraction &rZoomY )
+ const Fraction &rZoomY )
{
- DBG_ASSERT( GetWindow(), "no window" );
- MapMode aMap( GetWindow()->GetMapMode() );
- aMap.SetScaleX( rZoomX );
- aMap.SetScaleY( rZoomY );
- GetWindow()->SetMapMode( aMap );
+ DBG_ASSERT( GetWindow(), "no window" );
+ MapMode aMap( GetWindow()->GetMapMode() );
+ aMap.SetScaleX( rZoomX );
+ aMap.SetScaleY( rZoomY );
+ GetWindow()->SetMapMode( aMap );
}
//--------------------------------------------------------------------
@@ -873,37 +933,37 @@ ErrCode SfxViewShell::DoVerb(long /*nVerb*/)
/* [Beschreibung]
- Virtuelle Methode, um am selektierten Objekt ein Verb auszuf"uhren.
+ Virtuelle Methode, um am selektierten Objekt ein Verb auszuf"uhren.
Da dieses Objekt nur den abgeleiteten Klassen bekannt ist, muss DoVerb
dort "uberschrieben werden.
*/
{
- return ERRCODE_SO_NOVERBS;
+ return ERRCODE_SO_NOVERBS;
}
//--------------------------------------------------------------------
void SfxViewShell::OutplaceActivated( sal_Bool bActive, SfxInPlaceClient* /*pClient*/ )
{
- if ( !bActive )
- GetFrame()->GetFrame().Appear();
+ if ( !bActive )
+ GetFrame()->GetFrame().Appear();
}
//--------------------------------------------------------------------
void SfxViewShell::InplaceActivating( SfxInPlaceClient* /*pClient*/ )
{
- // TODO/LATER: painting of the bitmap can be stopped, it is required if CLIPCHILDREN problem #i25788# is not solved,
- // but may be the bug will not affect the real office vcl windows, then it is not required
+ // TODO/LATER: painting of the bitmap can be stopped, it is required if CLIPCHILDREN problem #i25788# is not solved,
+ // but may be the bug will not affect the real office vcl windows, then it is not required
}
//--------------------------------------------------------------------
void SfxViewShell::InplaceDeactivated( SfxInPlaceClient* /*pClient*/ )
{
- // TODO/LATER: paint the replacement image in normal way if the painting was stopped
+ // TODO/LATER: paint the replacement image in normal way if the painting was stopped
}
//--------------------------------------------------------------------
@@ -943,26 +1003,26 @@ SfxInPlaceClient* SfxViewShell::FindIPClient
) const
{
SfxInPlaceClientList *pClients = GetIPClientList_Impl(FALSE);
- if ( !pClients )
- return 0;
+ if ( !pClients )
+ return 0;
- if( !pObjParentWin )
- pObjParentWin = GetWindow();
- for (USHORT n=0; n < pClients->Count(); n++)
- {
- SfxInPlaceClient *pIPClient = (SfxInPlaceClient*) pClients->GetObject(n);
+ if( !pObjParentWin )
+ pObjParentWin = GetWindow();
+ for (USHORT n=0; n < pClients->Count(); n++)
+ {
+ SfxInPlaceClient *pIPClient = (SfxInPlaceClient*) pClients->GetObject(n);
if ( pIPClient->GetObject() == xObj && pIPClient->GetEditWin() == pObjParentWin )
- return pIPClient;
- }
+ return pIPClient;
+ }
- return 0;
+ return 0;
}
//--------------------------------------------------------------------
SfxInPlaceClient* SfxViewShell::GetIPClient() const
{
- return GetUIActiveClient();
+ return GetUIActiveClient();
}
//--------------------------------------------------------------------
@@ -971,15 +1031,15 @@ SfxInPlaceClient* SfxViewShell::GetUIActiveIPClient_Impl() const
{
// this method is needed as long as SFX still manages the border space for ChildWindows (see SfxFrame::Resize)
SfxInPlaceClientList *pClients = GetIPClientList_Impl(FALSE);
- if ( !pClients )
- return 0;
+ if ( !pClients )
+ return 0;
- for (USHORT n=0; n < pClients->Count(); n++)
- {
+ for (USHORT n=0; n < pClients->Count(); n++)
+ {
SfxInPlaceClient* pIPClient = pClients->GetObject(n);
if ( pIPClient->IsUIActive() )
return pIPClient;
- }
+ }
return NULL;
}
@@ -987,15 +1047,15 @@ SfxInPlaceClient* SfxViewShell::GetUIActiveIPClient_Impl() const
SfxInPlaceClient* SfxViewShell::GetUIActiveClient() const
{
SfxInPlaceClientList *pClients = GetIPClientList_Impl(FALSE);
- if ( !pClients )
- return 0;
+ if ( !pClients )
+ return 0;
- for (USHORT n=0; n < pClients->Count(); n++)
- {
+ for (USHORT n=0; n < pClients->Count(); n++)
+ {
SfxInPlaceClient* pIPClient = pClients->GetObject(n);
if ( pIPClient->IsObjectUIActive() )
return pIPClient;
- }
+ }
return NULL;
}
@@ -1004,34 +1064,34 @@ SfxInPlaceClient* SfxViewShell::GetUIActiveClient() const
void SfxViewShell::Activate( BOOL bMDI )
{
- DBG_CHKTHIS(SfxViewShell, 0);
- if ( bMDI )
- {
- SfxObjectShell *pSh = GetViewFrame()->GetObjectShell();
- if ( pSh->GetModel().is() )
- pSh->GetModel()->setCurrentController( GetViewFrame()->GetFrame().GetController() );
+ DBG_CHKTHIS(SfxViewShell, 0);
+ if ( bMDI )
+ {
+ SfxObjectShell *pSh = GetViewFrame()->GetObjectShell();
+ if ( pSh->GetModel().is() )
+ pSh->GetModel()->setCurrentController( GetViewFrame()->GetFrame().GetController() );
SetCurrentDocument();
- }
+ }
}
//--------------------------------------------------------------------
void SfxViewShell::Deactivate(BOOL /*bMDI*/)
{
- DBG_CHKTHIS(SfxViewShell, 0);
+ DBG_CHKTHIS(SfxViewShell, 0);
}
//--------------------------------------------------------------------
void SfxViewShell::AdjustPosSizePixel
(
- const Point& /*rToolOffset*/,// linke obere Ecke der Tools im Frame-Window
- const Size& /*rSize*/ // gesamte zur Verf"ugung stehende Gr"o\se
+ const Point& /*rToolOffset*/,// linke obere Ecke der Tools im Frame-Window
+ const Size& /*rSize*/ // gesamte zur Verf"ugung stehende Gr"o\se
)
{
- DBG_CHKTHIS(SfxViewShell, 0);
+ DBG_CHKTHIS(SfxViewShell, 0);
}
//--------------------------------------------------------------------
@@ -1040,18 +1100,18 @@ void SfxViewShell::Move()
/* [Beschreibung]
- Diese virtuelle Methode wird gerufen, wenn das Fenster, in dem die
- SfxViewShell dargestellt wird eine StarView-Move() Nachricht erh"alt.
+ Diese virtuelle Methode wird gerufen, wenn das Fenster, in dem die
+ SfxViewShell dargestellt wird eine StarView-Move() Nachricht erh"alt.
- Die Basisimplementierung braucht nicht gerufen zu werden.
+ Die Basisimplementierung braucht nicht gerufen zu werden.
- [Anmerkung]
+ [Anmerkung]
- Diese Methode kann dazu verwendet werden, eine Selektion abzubrechen,
- um durch das Moven des Fensters erzeugte Maus-Bewegungen anzufangen.
+ Diese Methode kann dazu verwendet werden, eine Selektion abzubrechen,
+ um durch das Moven des Fensters erzeugte Maus-Bewegungen anzufangen.
- Zur Zeit funktioniert die Benachrichtigung nicht In-Place.
+ Zur Zeit funktioniert die Benachrichtigung nicht In-Place.
*/
{
@@ -1061,102 +1121,102 @@ void SfxViewShell::Move()
void SfxViewShell::OuterResizePixel
(
- const Point& /*rToolOffset*/,// linke obere Ecke der Tools im Frame-Window
- const Size& /*rSize*/ // gesamte zur Verf"ugung stehende Gr"o\se
+ const Point& /*rToolOffset*/,// linke obere Ecke der Tools im Frame-Window
+ const Size& /*rSize*/ // gesamte zur Verf"ugung stehende Gr"o\se
)
/* [Beschreibung]
Diese Methode muss ueberladen werden, um auf "Anderungen der Groesse
- der View zu reagieren. Dabei definieren wir die View als das Edit-Window
- zuz"uglich der um das Edit-Window angeordnenten Tools (z.B. Lineale).
+ der View zu reagieren. Dabei definieren wir die View als das Edit-Window
+ zuz"uglich der um das Edit-Window angeordnenten Tools (z.B. Lineale).
- Das Edit-Window darf weder in Gr"o\se noch Position ver"andert werden.
+ Das Edit-Window darf weder in Gr"o\se noch Position ver"andert werden.
- Die Vis-Area der SfxObjectShell, dessen Skalierung und Position
- d"urfen hier ver"andert werden. Der Hauptanwendungsfall ist dabei,
- das Ver"andern der Gr"o\se der Vis-Area.
+ Die Vis-Area der SfxObjectShell, dessen Skalierung und Position
+ d"urfen hier ver"andert werden. Der Hauptanwendungsfall ist dabei,
+ das Ver"andern der Gr"o\se der Vis-Area.
- "Andert sich durch die neue Berechnung der Border, so mu\s dieser
- mit <SfxViewShell::SetBorderPixel(const SvBorder&)> gesetzt werden.
- Erst nach Aufruf von 'SetBorderPixel' ist das Positionieren von
- Tools erlaubt.
+ "Andert sich durch die neue Berechnung der Border, so mu\s dieser
+ mit <SfxViewShell::SetBorderPixel(const SvBorder&)> gesetzt werden.
+ Erst nach Aufruf von 'SetBorderPixel' ist das Positionieren von
+ Tools erlaubt.
- [Beispiel]
+ [Beispiel]
- void AppViewSh::OuterViewResizePixel( const Point &rOfs, const Size &rSz )
- {
- // Tool-Positionen und Gr"o\sen von au\sen berechnen, NICHT setzen!
- // (wegen folgender Border-Berechnung)
- Point aHLinPos...; Size aHLinSz...;
- ...
-
- // Border f"ur Tools passend zu rSize berechnen und setzen
- SvBorder aBorder...
- SetBorderPixel( aBorder ); // ab jetzt sind Positionierungen erlaubt
-
- // Tools anordnen
- pHLin->SetPosSizePixel( aHLinPos, aHLinSz );
- ...
- }
+ void AppViewSh::OuterViewResizePixel( const Point &rOfs, const Size &rSz )
+ {
+ // Tool-Positionen und Gr"o\sen von au\sen berechnen, NICHT setzen!
+ // (wegen folgender Border-Berechnung)
+ Point aHLinPos...; Size aHLinSz...;
+ ...
+
+ // Border f"ur Tools passend zu rSize berechnen und setzen
+ SvBorder aBorder...
+ SetBorderPixel( aBorder ); // ab jetzt sind Positionierungen erlaubt
+
+ // Tools anordnen
+ pHLin->SetPosSizePixel( aHLinPos, aHLinSz );
+ ...
+ }
- [Querverweise]
+ [Querverweise]
- <SfxViewShell::InnerResizePixel(const Point&,const Size& rSize)>
+ <SfxViewShell::InnerResizePixel(const Point&,const Size& rSize)>
*/
{
- DBG_CHKTHIS(SfxViewShell, 0);
- SetBorderPixel( SvBorder() );
+ DBG_CHKTHIS(SfxViewShell, 0);
+ SetBorderPixel( SvBorder() );
}
//--------------------------------------------------------------------
void SfxViewShell::InnerResizePixel
(
- const Point& /*rToolOffset*/,// linke obere Ecke der Tools im Frame-Window
- const Size& /*rSize*/ // dem Edit-Win zur Verf"ugung stehende Gr"o\se
+ const Point& /*rToolOffset*/,// linke obere Ecke der Tools im Frame-Window
+ const Size& /*rSize*/ // dem Edit-Win zur Verf"ugung stehende Gr"o\se
)
/* [Beschreibung]
Diese Methode muss ueberladen werden, um auf "Anderungen der Groesse
- des Edit-Windows zu reagieren.
+ des Edit-Windows zu reagieren.
- Das Edit-Window darf weder in Gr"o\se noch Position ver"andert werden.
- Weder die Vis-Area der SfxObjectShell noch dessen Skalierung oder
- Position d"urfen ver"andert werden.
+ Das Edit-Window darf weder in Gr"o\se noch Position ver"andert werden.
+ Weder die Vis-Area der SfxObjectShell noch dessen Skalierung oder
+ Position d"urfen ver"andert werden.
- "Andert sich durch die neue Berechnung der Border, so mu\s dieser
- mit <SfxViewShell::SetBorderPixel(const SvBorder&)> gesetzt werden.
- Erst nach Aufruf von 'SetBorderPixel' ist das Positionieren von
- Tools erlaubt.
+ "Andert sich durch die neue Berechnung der Border, so mu\s dieser
+ mit <SfxViewShell::SetBorderPixel(const SvBorder&)> gesetzt werden.
+ Erst nach Aufruf von 'SetBorderPixel' ist das Positionieren von
+ Tools erlaubt.
- [Beispiel]
+ [Beispiel]
- void AppViewSh::InnerViewResizePixel( const Point &rOfs, const Size &rSz )
- {
- // Tool-Positionen und Gr"o\sen von innen berechnen, NICHT setzen!
- // (wegen folgender Border-Berechnung)
- Point aHLinPos...; Size aHLinSz...;
- ...
-
- // Border f"ur Tools passend zu rSz berechnen und setzen
- SvBorder aBorder...
- SetBorderPixel( aBorder ); // ab jetzt sind Positionierungen erlaubt
-
- // Tools anordnen
- pHLin->SetPosSizePixel( aHLinPos, aHLinSz );
- ...
- }
+ void AppViewSh::InnerViewResizePixel( const Point &rOfs, const Size &rSz )
+ {
+ // Tool-Positionen und Gr"o\sen von innen berechnen, NICHT setzen!
+ // (wegen folgender Border-Berechnung)
+ Point aHLinPos...; Size aHLinSz...;
+ ...
+
+ // Border f"ur Tools passend zu rSz berechnen und setzen
+ SvBorder aBorder...
+ SetBorderPixel( aBorder ); // ab jetzt sind Positionierungen erlaubt
+
+ // Tools anordnen
+ pHLin->SetPosSizePixel( aHLinPos, aHLinSz );
+ ...
+ }
- [Querverweise]
+ [Querverweise]
- <SfxViewShell::OuterResizePixel(const Point&,const Size& rSize)>
+ <SfxViewShell::OuterResizePixel(const Point&,const Size& rSize)>
*/
{
@@ -1216,11 +1276,11 @@ void SfxViewShell::SetWindow
/* [Beschreibung]
- Mit dieser Methode wird der SfxViewShell das Datenfenster mitgeteilt.
- Dieses wird f"ur den In-Place-Container und f"ur das korrekte
- Wiederherstellen des Focus ben"otigt.
+ Mit dieser Methode wird der SfxViewShell das Datenfenster mitgeteilt.
+ Dieses wird f"ur den In-Place-Container und f"ur das korrekte
+ Wiederherstellen des Focus ben"otigt.
- Selbst In-Place-aktiv ist das Umsetzen des ViewPort-Windows verboten.
+ Selbst In-Place-aktiv ist das Umsetzen des ViewPort-Windows verboten.
*/
{
@@ -1245,9 +1305,9 @@ void SfxViewShell::SetWindow
if ( bHadFocus && pWindow )
pWindow->GrabFocus();
- //TODO/CLEANUP
- //brauchen wir die Methode doch noch?!
- //SFX_APP()->GrabFocus( pWindow );
+ //TODO/CLEANUP
+ //brauchen wir die Methode doch noch?!
+ //SFX_APP()->GrabFocus( pWindow );
}
//--------------------------------------------------------------------
@@ -1262,18 +1322,17 @@ Size SfxViewShell::GetOptimalSizePixel() const
SfxViewShell::SfxViewShell
(
- SfxViewFrame* pViewFrame, /* <SfxViewFrame>, in dem diese View
- dargestellt wird */
+ SfxViewFrame* pViewFrame, /* <SfxViewFrame>, in dem diese View dargestellt wird */
USHORT nFlags /* siehe <SfxViewShell-Flags> */
)
: SfxShell(this)
, pImp( new SfxViewShell_Impl(nFlags) )
- ,pIPClientList( 0 )
- ,pFrame(pViewFrame)
- ,pSubShell(0)
- ,pWindow(0)
- ,bNoNewWindow( 0 != (nFlags & SFX_VIEW_NO_NEWWINDOW) )
+ ,pIPClientList( 0 )
+ ,pFrame(pViewFrame)
+ ,pSubShell(0)
+ ,pWindow(0)
+ ,bNoNewWindow( 0 != (nFlags & SFX_VIEW_NO_NEWWINDOW) )
{
DBG_CTOR(SfxViewShell, 0);
@@ -1382,12 +1441,12 @@ SfxViewShell* SfxViewShell::Get( const Reference< XController>& i_rController )
SdrView* SfxViewShell::GetDrawView() const
-/* [Beschreibung]
+/* [Beschreibung]
- Diese virtuelle Methode mu\s von den Subklassen "uberladen werden, wenn
- der Property-Editor zur Verf"ugung stehen soll.
+ Diese virtuelle Methode mu\s von den Subklassen "uberladen werden, wenn
+ der Property-Editor zur Verf"ugung stehen soll.
- Die Default-Implementierung liefert immer 0.
+ Die Default-Implementierung liefert immer 0.
*/
{
@@ -1398,27 +1457,27 @@ SdrView* SfxViewShell::GetDrawView() const
String SfxViewShell::GetSelectionText
(
- BOOL /*bCompleteWords*/ /* FALSE (default)
- Nur der tats"achlich selektierte Text wird
- zur"uckgegeben.
-
- TRUE
- Der selektierte Text wird soweit erweitert,
- da\s nur ganze W"orter zur"uckgegeben werden.
- Als Worttrenner gelten White-Spaces und die
+ BOOL /*bCompleteWords*/ /* FALSE (default)
+ Nur der tats"achlich selektierte Text wird
+ zur"uckgegeben.
+
+ TRUE
+ Der selektierte Text wird soweit erweitert,
+ da\s nur ganze W"orter zur"uckgegeben werden.
+ Als Worttrenner gelten White-Spaces und die
Satzzeichen ".,;" sowie einfache und doppelte
- Anf"uhrungszeichen.
- */
+ Anf"uhrungszeichen.
+ */
)
/* [Beschreibung]
- Diese Methode kann von Anwendungsprogrammierer "uberladen werden,
- um einen Text zur"uckzuliefern, der in der aktuellen Selektion
- steht. Dieser wird z.B. beim Versenden (email) verwendet.
+ Diese Methode kann von Anwendungsprogrammierer "uberladen werden,
+ um einen Text zur"uckzuliefern, der in der aktuellen Selektion
+ steht. Dieser wird z.B. beim Versenden (email) verwendet.
Mit "CompleteWords == TRUE" ger"ufen, reicht z.B. auch der Cursor,
- der in einer URL steht, um die gesamte URL zu liefern.
+ der in einer URL steht, um die gesamte URL zu liefern.
*/
{
@@ -1431,9 +1490,9 @@ BOOL SfxViewShell::HasSelection( BOOL ) const
/* [Beschreibung]
- Mit dieser virtuellen Methode kann z.B. ein Dialog abfragen, ob in der
- aktuellen View etwas selektiert ist. Wenn der Parameter <BOOL> TRUE ist,
- wird abgefragt, ob Text selektiert ist.
+ Mit dieser virtuellen Methode kann z.B. ein Dialog abfragen, ob in der
+ aktuellen View etwas selektiert ist. Wenn der Parameter <BOOL> TRUE ist,
+ wird abgefragt, ob Text selektiert ist.
*/
{
@@ -1446,16 +1505,16 @@ void SfxViewShell::SetSubShell( SfxShell *pShell )
/* [Beschreibung]
- Mit dieser Methode kann eine Selektions- oder Cursor-Shell angemeldet
- werden, die automatisch unmittelbar nach der SfxViewShell auf den
- SfxDispatcher gepusht wird, und automatisch umittelbar vor ihr
- gepoppt wird.
+ Mit dieser Methode kann eine Selektions- oder Cursor-Shell angemeldet
+ werden, die automatisch unmittelbar nach der SfxViewShell auf den
+ SfxDispatcher gepusht wird, und automatisch umittelbar vor ihr
+ gepoppt wird.
- Ist die SfxViewShell-Instanz bereits gepusht, dann wird pShell
- sofort ebenfalls gepusht. Wird mit SetSubShell eine andere SfxShell
- Instanz angemeldet, als vorher angemeldet war, wird die zuvor angemeldete
- ggf. automatisch gepoppt. Mit pShell==0 kann daher die aktuelle
- Sub-Shell abgemeldet werden.
+ Ist die SfxViewShell-Instanz bereits gepusht, dann wird pShell
+ sofort ebenfalls gepusht. Wird mit SetSubShell eine andere SfxShell
+ Instanz angemeldet, als vorher angemeldet war, wird die zuvor angemeldete
+ ggf. automatisch gepoppt. Mit pShell==0 kann daher die aktuelle
+ Sub-Shell abgemeldet werden.
*/
{
@@ -1557,6 +1616,7 @@ void SfxViewShell::ReadUserData(const String&, BOOL )
void SfxViewShell::ReadUserDataSequence ( const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool )
{
}
+
void SfxViewShell::WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool )
{
}
@@ -1567,8 +1627,8 @@ void SfxViewShell::WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::c
SfxViewShell* SfxViewShell::GetFirst
(
- const TypeId* pType,
- BOOL bOnlyVisible
+ const TypeId* pType,
+ BOOL bOnlyVisible
)
{
// search for a SfxViewShell of the specified type
@@ -1702,24 +1762,24 @@ FASTBOOL SfxViewShell::KeyInput( const KeyEvent &rKeyEvent )
/* [Beschreibung]
- Diese Methode f"uhrt das KeyEvent 'rKeyEvent' "uber die an dieser
- SfxViewShell direkt oder indirekt (z.B. via Applikation) konfigurierten
- Tasten (Accelerator) aus.
+ Diese Methode f"uhrt das KeyEvent 'rKeyEvent' "uber die an dieser
+ SfxViewShell direkt oder indirekt (z.B. via Applikation) konfigurierten
+ Tasten (Accelerator) aus.
- [R"uckgabewert]
+ [R"uckgabewert]
- FASTBOOL TRUE
- die Taste ist konfiguriert, der betreffende
- Handler wurde gerufen
+ FASTBOOL TRUE
+ die Taste ist konfiguriert, der betreffende
+ Handler wurde gerufen
- FALSE
- die Taste ist nicht konfiguriert, es konnte
- also kein Handler gerufen werden
+ FALSE
+ die Taste ist nicht konfiguriert, es konnte
+ also kein Handler gerufen werden
- [Querverweise]
- <SfxApplication::KeyInput(const KeyEvent&)>
+ [Querverweise]
+ <SfxApplication::KeyInput(const KeyEvent&)>
*/
{
return ExecKey_Impl(rKeyEvent);
@@ -1736,9 +1796,9 @@ void SfxViewShell::ShowCursor( FASTBOOL /*bOn*/ )
/* [Beschreibung]
- Diese Methode mu\s von Subklassen "uberladen werden, damit vom SFx
- aus der Cursor ein- und ausgeschaltet werden kann. Dies geschieht
- z.B. bei laufendem <SfxProgress>.
+ Diese Methode mu\s von Subklassen "uberladen werden, damit vom SFx
+ aus der Cursor ein- und ausgeschaltet werden kann. Dies geschieht
+ z.B. bei laufendem <SfxProgress>.
*/
{
@@ -1750,15 +1810,15 @@ void SfxViewShell::GotFocus() const
/* [Beschreibung]
- Diese Methode mu\s vom Applikationsentwickler gerufen werden, wenn
- das Edit-Window den Focus erhalten hat. Der SFx hat so z.B. die
- M"oglichkeit, den Accelerator einzuschalten.
+ Diese Methode mu\s vom Applikationsentwickler gerufen werden, wenn
+ das Edit-Window den Focus erhalten hat. Der SFx hat so z.B. die
+ M"oglichkeit, den Accelerator einzuschalten.
- [Anmerkung]
+ [Anmerkung]
- <StarView> liefert leider keine M"oglichkeit, solche Events
- 'von der Seite' einzuh"angen.
+ <StarView> liefert leider keine M"oglichkeit, solche Events
+ 'von der Seite' einzuh"angen.
*/
{
@@ -1838,10 +1898,10 @@ void SfxViewShell::CheckIPClient_Impl( SfxInPlaceClient *pIPClient, const Rectan
// this method is called when either a client is created or the "Edit/Plugins" checkbox is checked
if ( !pIPClient->IsObjectInPlaceActive() && pImp->m_bPlugInsActive )
{
- // object in client is currently not active
- // check if the object wants to be activated always or when it becomes at least partially visible
- // TODO/LATER: maybe we should use the scaled area instead of the ObjArea?!
- if ( bAlwaysActive || (bActiveWhenVisible && rVisArea.IsOver(pIPClient->GetObjArea())) )
+ // object in client is currently not active
+ // check if the object wants to be activated always or when it becomes at least partially visible
+ // TODO/LATER: maybe we should use the scaled area instead of the ObjArea?!
+ if ( bAlwaysActive || (bActiveWhenVisible && rVisArea.IsOver(pIPClient->GetObjArea())) )
{
try
{
@@ -1854,11 +1914,11 @@ void SfxViewShell::CheckIPClient_Impl( SfxInPlaceClient *pIPClient, const Rectan
}
else if (!pImp->m_bPlugInsActive)
{
- // object in client is currently active and "Edit/Plugins" checkbox is selected
- // check if the object wants to be activated always or when it becomes at least partially visible
+ // object in client is currently active and "Edit/Plugins" checkbox is selected
+ // check if the object wants to be activated always or when it becomes at least partially visible
// in this case selecting of the "Edit/Plugin" checkbox should let such objects deactivate
- if ( bAlwaysActive || bActiveWhenVisible )
- pIPClient->GetObject()->changeState( embed::EmbedStates::RUNNING );
+ if ( bAlwaysActive || bActiveWhenVisible )
+ pIPClient->GetObject()->changeState( embed::EmbedStates::RUNNING );
}
}
@@ -1874,9 +1934,9 @@ void SfxViewShell::DiscardClients_Impl()
/* [Beschreibung]
- Diese Methode dient dazu, vor dem Schlie\sen eines Dokuments das
- Speichern der Objekte zu verhindern, wenn der Benutzer Schlie\en ohne
- Speichern gew"ahlt hatte.
+ Diese Methode dient dazu, vor dem Schlie\sen eines Dokuments das
+ Speichern der Objekte zu verhindern, wenn der Benutzer Schlie\en ohne
+ Speichern gew"ahlt hatte.
*/
{
@@ -1982,9 +2042,9 @@ void SfxViewShell::JumpToMark( const String& rMark )
{
SfxStringItem aMarkItem( SID_JUMPTOMARK, rMark );
GetViewFrame()->GetDispatcher()->Execute(
- SID_JUMPTOMARK,
- SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD,
- &aMarkItem, 0L );
+ SID_JUMPTOMARK,
+ SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD,
+ &aMarkItem, 0L );
}
//------------------------------------------------------------------------
@@ -2005,8 +2065,7 @@ void SfxViewShell::SetController( SfxBaseController* pController )
if ( pImp->xClipboardListener.is() )
pImp->xClipboardListener->DisconnectViewShell();
- pImp->xClipboardListener = new SfxClipboardChangeListener( this );
- AddRemoveClipboardListener( pImp->xClipboardListener.get(), TRUE );
+ pImp->xClipboardListener = new SfxClipboardChangeListener( this, GetClipboardNotifier() );
}
Reference < XController > SfxViewShell::GetController()
@@ -2061,6 +2120,7 @@ void Change( Menu* pMenu, SfxViewShell* pView )
if ( pSlot )
{
pMenu->InsertItem( pSlot->GetSlotId(), pMenu->GetItemText( nId ), pMenu->GetItemBits( nId ), nPos );
+ pMenu->SetItemCommand( pSlot->GetSlotId(), aCmd );
pMenu->RemoveItem( nPos+1 );
break;
}
@@ -2071,19 +2131,19 @@ void Change( Menu* pMenu, SfxViewShell* pView )
}
-BOOL SfxViewShell::TryContextMenuInterception( Menu& rIn, const ::rtl::OUString& rMenuIdentifier, Menu*& rpOut, ::com::sun::star::ui::ContextMenuExecuteEvent aEvent )
+BOOL SfxViewShell::TryContextMenuInterception( Menu& rIn, const ::rtl::OUString& rMenuIdentifier, Menu*& rpOut, ui::ContextMenuExecuteEvent aEvent )
{
rpOut = NULL;
BOOL bModified = FALSE;
// create container from menu
- // #110897#
+ // #110897#
// aEvent.ActionTriggerContainer = ::framework::ActionTriggerHelper::CreateActionTriggerContainerFromMenu( &rIn );
aEvent.ActionTriggerContainer = ::framework::ActionTriggerHelper::CreateActionTriggerContainerFromMenu(
::comphelper::getProcessServiceFactory(), &rIn, &rMenuIdentifier );
// get selection from controller
- aEvent.Selection = ::com::sun::star::uno::Reference < ::com::sun::star::view::XSelectionSupplier > ( GetController(), ::com::sun::star::uno::UNO_QUERY );
+ aEvent.Selection = uno::Reference < view::XSelectionSupplier > ( GetController(), uno::UNO_QUERY );
// call interceptors
::cppu::OInterfaceIteratorHelper aIt( pImp->aInterceptorContainer );
@@ -2091,22 +2151,22 @@ BOOL SfxViewShell::TryContextMenuInterception( Menu& rIn, const ::rtl::OUString&
{
try
{
- ::com::sun::star::ui::ContextMenuInterceptorAction eAction =
- ((::com::sun::star::ui::XContextMenuInterceptor*)aIt.next())->notifyContextMenuExecute( aEvent );
+ ui::ContextMenuInterceptorAction eAction =
+ ((ui::XContextMenuInterceptor*)aIt.next())->notifyContextMenuExecute( aEvent );
switch ( eAction )
{
- case ::com::sun::star::ui::ContextMenuInterceptorAction_CANCELLED :
+ case ui::ContextMenuInterceptorAction_CANCELLED :
// interceptor does not want execution
return FALSE;
- case ::com::sun::star::ui::ContextMenuInterceptorAction_EXECUTE_MODIFIED :
+ case ui::ContextMenuInterceptorAction_EXECUTE_MODIFIED :
// interceptor wants his modified menu to be executed
bModified = TRUE;
break;
- case ::com::sun::star::ui::ContextMenuInterceptorAction_CONTINUE_MODIFIED :
+ case ui::ContextMenuInterceptorAction_CONTINUE_MODIFIED :
// interceptor has modified menu, but allows for calling other interceptors
bModified = TRUE;
continue;
- case ::com::sun::star::ui::ContextMenuInterceptorAction_IGNORED :
+ case ui::ContextMenuInterceptorAction_IGNORED :
// interceptor is indifferent
continue;
default:
@@ -2114,7 +2174,7 @@ BOOL SfxViewShell::TryContextMenuInterception( Menu& rIn, const ::rtl::OUString&
continue;
}
}
- catch( ::com::sun::star::uno::RuntimeException& )
+ catch( uno::RuntimeException& )
{
aIt.remove();
}
@@ -2153,8 +2213,8 @@ void SfxViewShell::CheckOwnerShip_Impl()
BOOL bSuccess = FALSE;
if (pImp->m_bGotOwnership)
{
- com::sun::star::uno::Reference < com::sun::star::util::XCloseable > xModel(
- GetObjectShell()->GetModel(), com::sun::star::uno::UNO_QUERY );
+ uno::Reference < util::XCloseable > xModel(
+ GetObjectShell()->GetModel(), uno::UNO_QUERY );
if ( xModel.is() )
{
try
@@ -2163,7 +2223,7 @@ void SfxViewShell::CheckOwnerShip_Impl()
xModel->close( sal_True );
bSuccess = TRUE;
}
- catch ( com::sun::star::util::CloseVetoException& )
+ catch ( util::CloseVetoException& )
{
}
}
@@ -2172,15 +2232,15 @@ void SfxViewShell::CheckOwnerShip_Impl()
if (!bSuccess && pImp->m_bGotFrameOwnership)
{
// document couldn't be closed or it shouldn't, now try at least to close the frame
- com::sun::star::uno::Reference < com::sun::star::util::XCloseable > xFrame(
- GetViewFrame()->GetFrame().GetFrameInterface(), com::sun::star::uno::UNO_QUERY );
+ uno::Reference < util::XCloseable > xFrame(
+ GetViewFrame()->GetFrame().GetFrameInterface(), com::sun::star::uno::UNO_QUERY );
if ( xFrame.is() )
{
try
{
xFrame->close( sal_True );
}
- catch ( com::sun::star::util::CloseVetoException& )
+ catch ( util::CloseVetoException& )
{
}
}
@@ -2190,9 +2250,7 @@ void SfxViewShell::CheckOwnerShip_Impl()
long SfxViewShell::HandleNotifyEvent_Impl( NotifyEvent& rEvent )
{
if (pImp->m_pController.is())
- {
return pImp->m_pController->HandleEvent_Impl( rEvent );
- }
return 0;
}
@@ -2211,7 +2269,7 @@ BOOL SfxViewShell::HasMouseClickListeners_Impl()
void SfxViewShell::SetAdditionalPrintOptions( const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& rOpts )
{
pImp->aPrintOpts = rOpts;
-// GetObjectShell()->Broadcast( SfxPrintingHint( -3, NULL, NULL, rOpts ) );
+// GetObjectShell()->Broadcast( SfxPrintingHint( -3, NULL, NULL, rOpts ) );
}
BOOL SfxViewShell::Escape()
@@ -2227,11 +2285,20 @@ Reference< view::XRenderable > SfxViewShell::GetRenderable()
{
Reference< frame::XModel > xModel( pObj->GetModel() );
if( xModel.is() )
- xRender = Reference< view::XRenderable >( xModel, UNO_QUERY );
+ xRender = Reference< view::XRenderable >( xModel, UNO_QUERY );
}
return xRender;
}
+uno::Reference< datatransfer::clipboard::XClipboardNotifier > SfxViewShell::GetClipboardNotifier()
+{
+ uno::Reference< datatransfer::clipboard::XClipboardNotifier > xClipboardNotifier;
+ if ( GetViewFrame() )
+ xClipboardNotifier = uno::Reference< datatransfer::clipboard::XClipboardNotifier >( GetViewFrame()->GetWindow().GetClipboard(), uno::UNO_QUERY );
+
+ return xClipboardNotifier;
+}
+
void SfxViewShell::AddRemoveClipboardListener( const uno::Reference < datatransfer::clipboard::XClipboardListener >& rClp, BOOL bAdd )
{
try
diff --git a/sfx2/util/makefile.mk b/sfx2/util/makefile.mk
deleted file mode 100644
index f520e2097e7e..000000000000
--- a/sfx2/util/makefile.mk
+++ /dev/null
@@ -1,172 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-ENABLE_EXCEPTIONS=TRUE
-PRJNAME=sfx2
-TARGET=sfx
-#sfx.hid generieren
-GEN_HID=TRUE
-GEN_HID_OTHER=TRUE
-USE_DEFFILE=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Allgemein ----------------------------------------------------
-
-LIB1TARGET= $(SLB)$/$(TARGET).lib
-LIB1FILES= $(SLB)$/appl.lib \
- $(SLB)$/explorer.lib \
- $(SLB)$/doc.lib \
- $(SLB)$/view.lib \
- $(SLB)$/control.lib \
- $(SLB)$/notify.lib \
- $(SLB)$/menu.lib \
- $(SLB)$/inet.lib \
- $(SLB)$/toolbox.lib \
- $(SLB)$/statbar.lib \
- $(SLB)$/dialog.lib \
- $(SLB)$/bastyp.lib \
- $(SLB)$/config.lib
-
-.IF "$(ENABLE_LAYOUT)" == "TRUE"
-LIB1FILES += $(SLB)$/layout.lib
-.ENDIF # ENABLE_LAYOUT == TRUE
-
-HELPIDFILES=\
- ..\inc\sfx2\sfxsids.hrc \
- ..\source\inc\helpid.hrc
-
-.IF "$(GUI)"!="UNX"
-LIB2TARGET= $(LB)$/$(TARGET).lib
-LIB2FILES= $(LB)$/isfx.lib
-LIB2DEPN=$(SHL1TARGETN)
-.ENDIF
-
-SHL1TARGET= sfx$(DLLPOSTFIX)
-SHL1IMPLIB= isfx
-SHL1USE_EXPORTS=name
-
-SHL1STDLIBS+=\
- $(FWELIB) \
- $(BASICLIB) \
- $(SVTOOLLIB) \
- $(TKLIB) \
- $(VCLLIB) \
- $(SVLLIB) \
- $(SOTLIB) \
- $(UNOTOOLSLIB) \
- $(TOOLSLIB) \
- $(I18NISOLANGLIB) \
- $(SAXLIB) \
- $(COMPHELPERLIB) \
- $(UCBHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(VOSLIB) \
- $(SALLIB) \
- $(LIBXML2LIB) \
-
-
-.IF "$(GUI)"=="WNT"
-
-SHL1STDLIBS+=\
- $(UWINAPILIB) \
- $(ADVAPI32LIB) \
- $(SHELL32LIB) \
- $(GDI32LIB) \
- $(OLE32LIB) \
- $(UUIDLIB)
-.ELSE # WNT
-.IF "$(OS)" == "MACOSX"
-SHL1STDLIBS+= -framework Cocoa
-.ENDIF # MACOSX
-.ENDIF # WNT
-
-
-SHL1DEPN += $(shell @$(FIND) $(SLO) -type f -name "*.OBJ" -print)
-
-SHL1LIBS= $(LIB1TARGET)
-
-#SHL1OBJS= $(SLO)$/sfxdll.obj
-
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-DEFLIB1NAME =sfx
-DEF1DES =Sfx
-
-SFXSRSLIST=\
- $(SRS)$/appl.srs \
- $(SRS)$/sfx.srs \
- $(SRS)$/doc.srs \
- $(SRS)$/view.srs \
- $(SRS)$/menu.srs \
- $(SRS)$/dialog.srs \
- $(SRS)$/bastyp.srs
-
-RESLIB1NAME=$(TARGET)
-RESLIB1IMAGES=$(PRJ)$/res
-RESLIB1SRSFILES=$(SFXSRSLIST)
-
-# gtk quick-starter
-.IF "$(GUI)"=="UNX"
-.IF "$(ENABLE_SYSTRAY_GTK)"=="TRUE"
-PKGCONFIG_MODULES=gtk+-2.0
-.INCLUDE: pkg_config.mk
-CFLAGS+=$(PKGCONFIG_CFLAGS)
-
-SHL3TARGET=qstart_gtk$(DLLPOSTFIX)
-SHL3LIBS=$(SLB)$/quickstart.lib
-SHL3DEPN=$(SHL1IMPLIBN) $(SHL1TARGETN)
-# libs for gtk plugin
-SHL3STDLIBS=$(SHL1STDLIBS) $(SFX2LIB) $(EGGTRAYLIB)
-SHL3STDLIBS+=$(PKGCONFIG_LIBS:s/ -lpangoxft-1.0//)
-# hack for faked SO environment
-.IF "$(PKGCONFIG_ROOT)"!=""
-SHL3SONAME+=-z nodefs
-SHL3NOCHECK=TRUE
-.ENDIF # "$(PKGCONFIG_ROOT)"!=""
-.ENDIF # "$(ENABLE_SYSTRAY_GTK)"=="TRUE"
-.ENDIF # "$(GUI)"=="UNX"
-
-# --- Targets ------------------------------------------------------
-
-
-.INCLUDE : target.mk
-
-ALLTAR : $(MISC)/sfx.component
-
-$(MISC)/sfx.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- sfx.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt sfx.component
diff --git a/sfx2/workben/custompanel/makefile.mk b/sfx2/workben/custompanel/makefile.mk
deleted file mode 100644
index 1eb20ceed35d..000000000000
--- a/sfx2/workben/custompanel/makefile.mk
+++ /dev/null
@@ -1,120 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=../..
-PRJNAME=sfx2
-
-TARGET=custompanel
-ENABLE_EXCEPTIONS=TRUE
-LIBTARGET=NO
-EXTENSIONNAME:=custom-tool-panel
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-#-------------------------------------------------------------------
-
-#---- extension version
-EXTENSION_VERSION_BASE=0.1
-.IF ( "$(CWS_WORK_STAMP)" == "" ) || ( "$(UPDATER)" == "YES" )
- EXTENSION_VERSION=$(EXTENSION_VERSION_BASE)
-.ELSE
- EXTENSION_VERSION=$(EXTENSION_VERSION_BASE).cws.$(CWS_WORK_STAMP)
-.ENDIF
-
-#---- extension title package name
-EXTENSION_TITLE=Custom Tool Panel Example
-EXTENSION_ZIPNAME=$(EXTENSIONNAME)-$(EXTENSION_VERSION_BASE)-$(RTL_OS:l)-$(RTL_ARCH:l)
-
-#--------------------------------------------------
-
-SHL1DLLPRE=
-SHL1TARGET=$(TARGET).uno
-LIB1TARGET=$(SLB)/$(SHL1TARGET).lib
-LIB1OBJFILES= \
- $(SLO)/ctp_factory.obj \
- $(SLO)/ctp_services.obj \
- $(SLO)/ctp_panel.obj
-
-SHL1STDLIBS= \
- $(CPPULIB) \
- $(SALLIB) \
- $(SALHELPERLIB) \
- $(CPPUHELPERLIB)
-
-SHL1VERSIONMAP=$(SOLARSRC)/solenv/src/component.map
-SHL1LIBS= $(LIB1TARGET)
-SHL1DEF= $(MISC)/$(SHL1TARGET).def
-SHL1RPATH= OXT
-DEF1NAME= $(SHL1TARGET)
-
-# create Extension -----------------------------
-
-COMPONENT_CONFIGDEST=.
-
-COMPONENT_XCU = \
- $(EXTENSIONDIR)/WriterWindowState.xcu \
- $(EXTENSIONDIR)/CalcWindowState.xcu \
- $(EXTENSIONDIR)/DrawWindowState.xcu \
- $(EXTENSIONDIR)/ImpressWindowState.xcu \
- $(EXTENSIONDIR)/Factories.xcu
-
-COMPONENT_LIBRARIES = \
- $(EXTENSIONDIR)/$(SHL1TARGET)$(DLLPOST)
-
-COMPONENT_IMAGES= \
- $(EXTENSIONDIR)/panel.png
-
-# ........ dependencies for packaging the extension ........
-EXTENSION_PACKDEPS=makefile.mk $(COMPONENT_IMAGES)
-
-# --- Targets ------------------------------------------------------
-.INCLUDE : extension_pre.mk
-.INCLUDE : target.mk
-.INCLUDE : extension_post.mk
-
-$(EXTENSIONDIR)/%.png : ./%.png
- @@-$(MKDIRHIER) $(@:d)
- @$(COPY) $< $@ > $(NULLDEV)
-
-$(EXTENSIONDIR)/WriterWindowState.xcu: ./WriterWindowState.xcu
- @@-$(MKDIRHIER) $(@:d)
- $(COMMAND_ECHO)$(TYPE) ./WriterWindowState.xcu | sed s/UPDATED_IDENTIFIER/$(IMPLEMENTATION_IDENTIFIER)/ > $(EXTENSIONDIR)/WriterWindowState.xcu
-
-$(EXTENSIONDIR)/CalcWindowState.xcu: ./CalcWindowState.xcu
- @@-$(MKDIRHIER) $(@:d)
- $(COMMAND_ECHO)$(TYPE) ./CalcWindowState.xcu | sed s/UPDATED_IDENTIFIER/$(IMPLEMENTATION_IDENTIFIER)/ > $(EXTENSIONDIR)/CalcWindowState.xcu
-
-$(EXTENSIONDIR)/DrawWindowState.xcu: ./DrawWindowState.xcu
- @@-$(MKDIRHIER) $(@:d)
- $(COMMAND_ECHO)$(TYPE) ./DrawWindowState.xcu | sed s/UPDATED_IDENTIFIER/$(IMPLEMENTATION_IDENTIFIER)/ > $(EXTENSIONDIR)/DrawWindowState.xcu
-
-$(EXTENSIONDIR)/ImpressWindowState.xcu: ./ImpressWindowState.xcu
- @@-$(MKDIRHIER) $(@:d)
- $(COMMAND_ECHO)$(TYPE) ./ImpressWindowState.xcu | sed s/UPDATED_IDENTIFIER/$(IMPLEMENTATION_IDENTIFIER)/ > $(EXTENSIONDIR)/ImpressWindowState.xcu
-
diff --git a/shell/prj/build.lst b/shell/prj/build.lst
index 9a5bf35dde3f..ad157a677bff 100755
--- a/shell/prj/build.lst
+++ b/shell/prj/build.lst
@@ -1,4 +1,4 @@
-sl shell : l10n offuh rdbmaker tools sal EXPAT:expat NULL
+sl shell : l10n offuh rdbmaker tools sal EXPAT:expat LIBXSLT:libxslt NULL
sl shell\inc nmake - all sl_inc NULL
sl shell\source\win32 nmake - w sl_win32 sl_inc NULL
sl shell\source\win32\simplemail nmake - w sl_win32_simplemail sl_inc NULL
diff --git a/shell/qa/makefile.mk b/shell/qa/makefile.mk
index cc91a6b1ad5c..290798bab18e 100755
--- a/shell/qa/makefile.mk
+++ b/shell/qa/makefile.mk
@@ -28,8 +28,6 @@ PRJ=..
PRJNAME=shell
TARGET=qa
-# this is removed at the moment because we need some enhancements
-# TESTDIR=TRUE
ENABLE_EXCEPTIONS=TRUE
diff --git a/shell/source/tools/lngconvex/makefile.mk b/shell/source/tools/lngconvex/makefile.mk
index da28e5ff68f4..3ee6298e744f 100644
--- a/shell/source/tools/lngconvex/makefile.mk
+++ b/shell/source/tools/lngconvex/makefile.mk
@@ -58,8 +58,8 @@ APP1STDLIBS= $(SALLIB)\
$(I18NISOLANGLIB)
.IF "$(COM)"!="GCC"
-APP1STDLIBS+= $(TOOLSLIBST) \
- msvcprt.lib
+APP1STDLIBS+= msvcprt.lib
+#$(TOOLSLIBST)
.ENDIF
# --- Targets ------------------------------------------------------
diff --git a/shell/source/win32/simplemail/senddoc.cxx b/shell/source/win32/simplemail/senddoc.cxx
index c8ac40799cea..bb743960afc5 100644
--- a/shell/source/win32/simplemail/senddoc.cxx
+++ b/shell/source/win32/simplemail/senddoc.cxx
@@ -170,7 +170,7 @@ void initMapiMessage(
pMapiMessage->lpszSubject = const_cast<char*>(gSubject.c_str());
pMapiMessage->lpszNoteText = (gBody.length() ? const_cast<char*>(gBody.c_str()) : NULL);
pMapiMessage->lpOriginator = aMapiOriginator;
- pMapiMessage->lpRecips = &aMapiRecipientList[0];
+ pMapiMessage->lpRecips = aMapiRecipientList.size() ? &aMapiRecipientList[0] : 0;
pMapiMessage->nRecipCount = aMapiRecipientList.size();
pMapiMessage->lpFiles = &aMapiAttachmentList[0];
pMapiMessage->nFileCount = aMapiAttachmentList.size();
diff --git a/svx/Makefile b/svx/Makefile
new file mode 100644
index 000000000000..963c7870d955
--- /dev/null
+++ b/svx/Makefile
@@ -0,0 +1,36 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+GBUILDDIR := $(SOLARENV)/gbuild
+include $(GBUILDDIR)/gbuild.mk
+
+
+gb_CURRENT_MODULE := $(lastword $(subst /, ,$(dir $(realpath $(firstword $(MAKEFILE_LIST))))))
+
+$(eval $(call gb_Module_make_global_targets,$(gb_CURRENT_MODULE)))
+
+
diff --git a/svx/inc/galbrws2.hxx b/svx/inc/galbrws2.hxx
index 38f6daffee19..d1038641c841 100644
--- a/svx/inc/galbrws2.hxx
+++ b/svx/inc/galbrws2.hxx
@@ -36,7 +36,7 @@
#include <svtools/transfer.hxx>
#include <svl/lstner.hxx>
#include <svtools/miscopt.hxx>
-#include "galbrws.hxx"
+#include "svx/galbrws.hxx"
// ----------------------
// - GalleryBrowserMode -
diff --git a/svx/inc/globlac.hrc b/svx/inc/globlac.hrc
deleted file mode 100644
index f72d4c1d31a8..000000000000
--- a/svx/inc/globlac.hrc
+++ /dev/null
@@ -1,223 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _GLOBALACC_SRC
-#define _GLOBALACC_SRC
-
-#define ACC_CODE( Id, c, bSh, bM1, bM2 ) \
- AcceleratorItem { Identifier = Id; \
- Key = KeyCode { Code = c ; \
- Shift = bSh ; Modifier1 = bM1 ; Modifier2 = bM2 ; }; };
-
-#define ACC_FUNC( Id, f ) \
- AcceleratorItem { Identifier = Id; \
- Key = KeyCode { Function = f ; }; };
-
-#define ACC_KEY( language, c, bSh, bM1, bM2 ) \
- Key[ language ] = KeyCode { Code = c ; \
- Shift = bSh ; Modifier1 = bM1 ; Modifier2 = bM2 ; };
-
-#define ACC_DEF_KEY( c, bSh, bM1, bM2 ) \
- Key = KeyCode { Code = c ; \
- Shift = bSh ; Modifier1 = bM1 ; Modifier2 = bM2 ; };
-
-
-#define AI_HELPINDEX ACC_CODE( SID_HELPINDEX, KEY_F1, FALSE, TRUE, FALSE )
-
-#define AI_ATTR_CHAR ACC_CODE( SID_ATTR_CHAR, KEY_F2, FALSE, FALSE, FALSE )
-// new shortcut F9 for starting slide-show (see #73417#)
-#define AI_PRESENTATION ACC_CODE( SID_PRESENTATION, KEY_F9, FALSE, FALSE, FALSE )
-// formerly used shortcut Ctrl-F2. Still used (in sd) for compatibility
-#define AI_PRESENTATION_COMPAT ACC_CODE( SID_PRESENTATION, KEY_F2, FALSE, TRUE, FALSE )
-#define AI_ENTER_GROUP ACC_CODE( SID_ENTER_GROUP, KEY_F3, FALSE, FALSE, FALSE )
-#define AI_COPYOBJECTS ACC_CODE( SID_COPYOBJECTS, KEY_F3, TRUE, FALSE, FALSE )
-#define AI_LEAVE_GROUP ACC_CODE( SID_LEAVE_GROUP, KEY_F3, FALSE, TRUE, FALSE )
-#define AI_ATTR_TRANSFORM ACC_CODE( SID_ATTR_TRANSFORM, KEY_F4, FALSE, FALSE, FALSE )
-#define AI_NAVIGATOR ACC_CODE( SID_NAVIGATOR, KEY_F5, FALSE, FALSE, FALSE )
-#define AI_SPELLING ACC_CODE( SID_SPELL_DIALOG, KEY_F7, FALSE, FALSE, FALSE )
-#define AI_THESAURUS ACC_CODE( SID_THESAURUS, KEY_F7, FALSE, TRUE, FALSE )
-#define AI_BEZIER_EDIT ACC_CODE( SID_BEZIER_EDIT, KEY_F8, FALSE, FALSE, FALSE )
-#define AI_ATTR_TEXT_FITTOSIZE ACC_CODE( SID_ATTR_TEXT_FITTOSIZE, KEY_F8, TRUE, TRUE, FALSE )
-#define AI_STYLE_DESIGNER ACC_CODE( SID_STYLE_DESIGNER, KEY_F11, FALSE, FALSE, FALSE )
-#define AI_OUTLINEMODE ACC_CODE( SID_OUTLINEMODE, KEY_F12, FALSE, FALSE, FALSE )
-#define AI_DRAWINGMODE ACC_CODE( SID_DRAWINGMODE, KEY_F12, FALSE, TRUE, FALSE )
-
-#define AI_ATTR_PARA_LINESPACE_10 ACC_CODE( SID_ATTR_PARA_LINESPACE_10, KEY_1, FALSE, TRUE, FALSE )
-#define AI_ATTR_PARA_LINESPACE_20 ACC_CODE( SID_ATTR_PARA_LINESPACE_20, KEY_2, FALSE, TRUE, FALSE )
-#define AI_ATTR_PARA_LINESPACE_15 ACC_CODE( SID_ATTR_PARA_LINESPACE_15, KEY_5, FALSE, TRUE, FALSE )
-#define AI_SHOW_ITEMBROWSER ACC_CODE( SID_SHOW_ITEMBROWSER, KEY_9, TRUE, TRUE, TRUE )
-
-#define AI_ATTR_PARA_ADJUST_BLOCK AcceleratorItem { Identifier = SID_ATTR_PARA_ADJUST_BLOCK;\
- ACC_DEF_KEY( KEY_J, FALSE, TRUE, FALSE ) \
- ACC_KEY( de , KEY_B, FALSE, TRUE, FALSE ) \
- ACC_KEY( en-US , KEY_J, FALSE, TRUE, FALSE ) \
- ACC_KEY( it , KEY_F, FALSE, TRUE, FALSE ) \
- ACC_KEY( es , KEY_J, FALSE, TRUE, FALSE ) \
- ACC_KEY( fr , KEY_J, FALSE, TRUE, FALSE ) \
- ACC_KEY( nl , KEY_J, FALSE, TRUE, FALSE ) \
- ACC_KEY( pl , KEY_J, FALSE, TRUE, FALSE ) \
- ACC_KEY( ru , KEY_J, FALSE, TRUE, FALSE ) };
-
-#define AI_ATTR_PARA_ADJUST_CENTER AcceleratorItem { Identifier = SID_ATTR_PARA_ADJUST_CENTER;\
- ACC_DEF_KEY( KEY_E, FALSE, TRUE, FALSE ) \
- ACC_KEY( de , KEY_E, FALSE, TRUE, FALSE ) \
- ACC_KEY( en-US , KEY_E, FALSE, TRUE, FALSE ) \
- ACC_KEY( it , KEY_E, FALSE, TRUE, FALSE ) \
- ACC_KEY( es , KEY_E, FALSE, TRUE, FALSE ) \
- ACC_KEY( fr , KEY_C, TRUE, TRUE, FALSE ) \
- ACC_KEY( nl , KEY_J, FALSE, TRUE, FALSE ) };
-
-#define AI_ATTR_CHAR_WEIGHT AcceleratorItem { Identifier = SID_ATTR_CHAR_WEIGHT;\
- ACC_DEF_KEY( KEY_B, FALSE, TRUE, FALSE ) \
- ACC_KEY( de , KEY_F, FALSE, TRUE, FALSE ) \
- ACC_KEY( en-US , KEY_B, FALSE, TRUE, FALSE ) \
- ACC_KEY( it , KEY_G, FALSE, TRUE, FALSE ) \
- ACC_KEY( es , KEY_N, FALSE, TRUE, FALSE ) \
- ACC_KEY( fr , KEY_G, FALSE, TRUE, FALSE ) \
- ACC_KEY( nl , KEY_B, FALSE, TRUE, FALSE ) \
- ACC_KEY( da , KEY_F, FALSE, TRUE, FALSE ) \
- ACC_KEY( pl , KEY_B, FALSE, TRUE, FALSE ) \
- ACC_KEY( ru, KEY_B, FALSE, TRUE, FALSE ) };
-
-#define AI_SEARCH_DLG AcceleratorItem { Identifier = SID_SEARCH_DLG;\
- ACC_DEF_KEY( KEY_F, FALSE, TRUE, FALSE ) \
- ACC_KEY( de , KEY_G, FALSE, TRUE, FALSE ) \
- ACC_KEY( en-US , KEY_F, FALSE, TRUE, FALSE ) \
- ACC_KEY( it , KEY_B, FALSE, TRUE, FALSE ) \
- ACC_KEY( es , KEY_G, FALSE, TRUE, FALSE ) \
- ACC_KEY( fr , KEY_F, FALSE, TRUE, FALSE ) \
- ACC_KEY( nl , KEY_F, FALSE, TRUE, FALSE ) };
-
-#define AI_GROUP ACC_CODE( SID_GROUP, KEY_G, TRUE, TRUE, FALSE )
-#define AI_UNGROUP ACC_CODE( SID_UNGROUP, KEY_G, TRUE, TRUE, TRUE )
-
-// Weitersuchen ...
-#define AI_SET_SUPER_SCRIPT AcceleratorItem { Identifier = SID_SET_SUPER_SCRIPT;\
- ACC_DEF_KEY( KEY_P, TRUE, TRUE, FALSE ) \
- ACC_KEY( de , KEY_H, FALSE, TRUE, FALSE ) \
- ACC_KEY( en-US , KEY_P, TRUE, TRUE, FALSE ) \
- ACC_KEY( it , KEY_H, FALSE, TRUE, FALSE ) \
- ACC_KEY( es , KEY_H, FALSE, TRUE, FALSE ) \
- ACC_KEY( fr , KEY_H, FALSE, TRUE, FALSE ) \
- ACC_KEY( nl , KEY_H, FALSE, TRUE, FALSE ) };
-
-#define AI_ATTR_CHAR_POSTURE AcceleratorItem { Identifier = SID_ATTR_CHAR_POSTURE;\
- ACC_DEF_KEY( KEY_I, FALSE, TRUE, FALSE ) \
- ACC_KEY( de , KEY_K, FALSE, TRUE, FALSE ) \
- ACC_KEY( en-US , KEY_I, FALSE, TRUE, FALSE ) \
- ACC_KEY( it , KEY_I, FALSE, TRUE, FALSE ) \
- ACC_KEY( es , KEY_K, FALSE, TRUE, FALSE ) \
- ACC_KEY( fr , KEY_I, FALSE, TRUE, FALSE ) \
- ACC_KEY( nl , KEY_I, FALSE, TRUE, FALSE ) \
- ACC_KEY( da , KEY_K, FALSE, TRUE, FALSE ) \
- ACC_KEY( pl , KEY_I, FALSE, TRUE, FALSE ) \
- ACC_KEY( ru , KEY_I, FALSE, TRUE, FALSE ) };
-
-#define AI_COMBINE ACC_CODE( SID_COMBINE, KEY_K, TRUE, TRUE, FALSE )
-#define AI_DISMANTLE ACC_CODE( SID_DISMANTLE, KEY_K, TRUE, TRUE, TRUE )
-#define AI_ATTR_PARA_ADJUST_LEFT AcceleratorItem { Identifier = SID_ATTR_PARA_ADJUST_LEFT;\
- ACC_DEF_KEY( KEY_L, FALSE, TRUE, FALSE ) \
- ACC_KEY( de , KEY_L, FALSE, TRUE, FALSE ) \
- ACC_KEY( en-US , KEY_L, FALSE, TRUE, FALSE ) \
- ACC_KEY( it , KEY_T, FALSE, TRUE, FALSE ) \
- ACC_KEY( es , KEY_I, FALSE, TRUE, FALSE ) \
- ACC_KEY( fr , KEY_G, TRUE, TRUE, FALSE ) \
- ACC_KEY( nl , KEY_L, FALSE, TRUE, FALSE ) };
-
-#define AI_ATTR_PARA_ADJUST_RIGHT AcceleratorItem { Identifier = SID_ATTR_PARA_ADJUST_RIGHT;\
- ACC_DEF_KEY( KEY_R, FALSE, TRUE, FALSE ) \
- ACC_KEY( de , KEY_R, FALSE, TRUE, FALSE ) \
- ACC_KEY( en-US , KEY_R, FALSE, TRUE, FALSE ) \
- ACC_KEY( it , KEY_R, FALSE, TRUE, FALSE ) \
- ACC_KEY( es , KEY_D, FALSE, TRUE, FALSE ) \
- ACC_KEY( fr , KEY_D, TRUE, TRUE, FALSE ) \
- ACC_KEY( nl , KEY_R, FALSE, TRUE, FALSE ) };
-
-#define AI_SET_SUB_SCRIPT AcceleratorItem { Identifier = SID_SET_SUB_SCRIPT;\
- ACC_DEF_KEY( KEY_B, TRUE, TRUE, FALSE ) \
- ACC_KEY( de , KEY_T, FALSE, TRUE, FALSE ) \
- ACC_KEY( en-US , KEY_B, TRUE, TRUE, FALSE ) \
- ACC_KEY( it , KEY_B, TRUE, TRUE, FALSE ) \
- ACC_KEY( es , KEY_T, FALSE, TRUE, FALSE ) \
- ACC_KEY( fr , KEY_T, FALSE, TRUE, FALSE ) \
- ACC_KEY( nl , KEY_P, TRUE, TRUE, FALSE ) };
-
-#define AI_ATTR_CHAR_UNDERLINE AcceleratorItem { Identifier = SID_ATTR_CHAR_UNDERLINE;\
- ACC_DEF_KEY( KEY_U, FALSE, TRUE, FALSE ) \
- ACC_KEY( de , KEY_U, FALSE, TRUE, FALSE ) \
- ACC_KEY( en-US , KEY_U, FALSE, TRUE, FALSE ) \
- ACC_KEY( it , KEY_U, FALSE, TRUE, FALSE ) \
- ACC_KEY( es , KEY_U, FALSE, TRUE, FALSE ) \
- ACC_KEY( fr , KEY_U, FALSE, TRUE, FALSE ) \
- ACC_KEY( nl , KEY_U, FALSE, TRUE, FALSE ) \
- ACC_KEY( da, KEY_U, FALSE, TRUE, FALSE ) \
- ACC_KEY( pl, KEY_U, FALSE, TRUE, FALSE ) \
- ACC_KEY( ru , KEY_U, FALSE, TRUE, FALSE ) };
-
-#define AI_STYLE_CATALOG ACC_CODE( SID_STYLE_CATALOG, KEY_F11, FALSE, TRUE, FALSE )
-#define AI_WIN_FULLSCREEN ACC_CODE( SID_WIN_FULLSCREEN, KEY_J, TRUE, TRUE, FALSE )
-
-#define AI_FOCUSURLBOX ACC_CODE( SID_FOCUSURLBOX, KEY_O, TRUE, TRUE, FALSE )
-#define AI_SELECTALL ACC_CODE( SID_SELECTALL, KEY_A, FALSE, TRUE, FALSE )
-
-// Anordnung
-#define AI_FRAME_TO_TOP ACC_CODE( SID_FRAME_TO_TOP, KEY_ADD, TRUE, TRUE, FALSE )
-#define AI_MOREFRONT ACC_CODE( SID_MOREFRONT, KEY_ADD, FALSE, TRUE, FALSE )
-#define AI_FRAME_TO_BOTTOM ACC_CODE( SID_FRAME_TO_BOTTOM, KEY_SUBTRACT, TRUE, TRUE, FALSE )
-#define AI_MOREBACK ACC_CODE( SID_MOREBACK, KEY_SUBTRACT, FALSE, TRUE, FALSE )
-
-// sonstige Acceleratoren
-#define AI_NEWDOC ACC_CODE( SID_NEWDOC, KEY_N, TRUE, TRUE, FALSE )
-#define AI_NEWDOCDIRECT ACC_CODE( SID_NEWDOCDIRECT, KEY_N, FALSE, TRUE, FALSE )
-#define AI_OPENDOC ACC_CODE( SID_OPENDOC, KEY_O, FALSE, TRUE, FALSE ) \
- ACC_CODE( SID_OPENDOC, KEY_OPEN, FALSE, FALSE, FALSE )
-#define AI_CLOSEWIN ACC_CODE( SID_CLOSEWIN, KEY_W, FALSE, TRUE, FALSE ) \
- ACC_CODE( SID_CLOSEWIN, KEY_F4, FALSE, TRUE, FALSE )
-#define AI_SAVEDOC ACC_CODE( SID_SAVEDOC, KEY_S, FALSE, TRUE, FALSE )
-#define AI_PRINTDOC ACC_CODE( SID_PRINTDOC, KEY_P, FALSE, TRUE, FALSE )
-#define AI_QUITAPP ACC_CODE( SID_QUITAPP, KEY_Q, FALSE, TRUE, FALSE )
-#define AI_CUT ACC_CODE( SID_CUT, KEY_X, FALSE, TRUE, FALSE ) \
- ACC_CODE( SID_CUT, KEY_DELETE, TRUE, FALSE, FALSE ) \
- ACC_CODE( SID_CUT, KEY_CUT, FALSE, FALSE, FALSE )
-#define AI_COPY ACC_CODE( SID_COPY, KEY_C, FALSE, TRUE, FALSE ) \
- ACC_CODE( SID_COPY, KEY_INSERT, FALSE, TRUE, FALSE ) \
- ACC_CODE( SID_COPY, KEY_COPY, FALSE, FALSE, FALSE )
-#define AI_PASTE ACC_CODE( SID_PASTE, KEY_V, FALSE, TRUE, FALSE ) \
- ACC_CODE( SID_PASTE, KEY_INSERT, TRUE, FALSE, FALSE ) \
- ACC_CODE( SID_PASTE, KEY_PASTE, FALSE, FALSE, FALSE )
-#define AI_UNDO ACC_CODE( SID_UNDO, KEY_Z, FALSE, TRUE, FALSE ) \
- ACC_CODE( SID_UNDO, KEY_BACKSPACE, FALSE, FALSE, TRUE ) \
- ACC_CODE( SID_UNDO, KEY_UNDO, FALSE, FALSE, FALSE )
-#define AI_REDO ACC_CODE( SID_REDO, KEY_Y, FALSE, TRUE, FALSE )
-#define AI_REPEAT ACC_CODE( SID_REPEAT, KEY_REPEAT, FALSE, FALSE, FALSE )
-#define AI_DELETE ACC_CODE( SID_DELETE, KEY_DELETE, FALSE, FALSE, FALSE )
-
-#endif // _GLOBLACC_SRC
-
-
-
-
diff --git a/svx/inc/pch/precompiled_svx.hxx b/svx/inc/pch/precompiled_svx.hxx
index b53064312a38..59d156f82018 100644
--- a/svx/inc/pch/precompiled_svx.hxx
+++ b/svx/inc/pch/precompiled_svx.hxx
@@ -55,7 +55,6 @@
#include "boost/scoped_ptr.hpp"
#include "boost/shared_ptr.hpp"
#include "boost/spirit/include/classic_core.hpp"
-#include "bootstrp/sstring.hxx"
#include "com/sun/star/accessibility/AccessibleEventId.hpp"
#include "com/sun/star/accessibility/AccessibleEventObject.hpp"
#include "com/sun/star/accessibility/AccessibleRelationType.hpp"
diff --git a/svx/inc/ActionDescriptionProvider.hxx b/svx/inc/svx/ActionDescriptionProvider.hxx
index 5b6e0ab9ab35..5b6e0ab9ab35 100644
--- a/svx/inc/ActionDescriptionProvider.hxx
+++ b/svx/inc/svx/ActionDescriptionProvider.hxx
diff --git a/svx/inc/DescriptionGenerator.hxx b/svx/inc/svx/DescriptionGenerator.hxx
index 501b350eef05..501b350eef05 100644
--- a/svx/inc/DescriptionGenerator.hxx
+++ b/svx/inc/svx/DescriptionGenerator.hxx
diff --git a/svx/source/customshapes/EnhancedCustomShape2d.hxx b/svx/inc/svx/EnhancedCustomShape2d.hxx
index b3b944513e60..b3b944513e60 100644
--- a/svx/source/customshapes/EnhancedCustomShape2d.hxx
+++ b/svx/inc/svx/EnhancedCustomShape2d.hxx
diff --git a/svx/source/customshapes/EnhancedCustomShapeGeometry.hxx b/svx/inc/svx/EnhancedCustomShapeGeometry.hxx
index 2ee9824ce547..2ee9824ce547 100644
--- a/svx/source/customshapes/EnhancedCustomShapeGeometry.hxx
+++ b/svx/inc/svx/EnhancedCustomShapeGeometry.hxx
diff --git a/svx/source/customshapes/EnhancedCustomShapeTypeNames.hxx b/svx/inc/svx/EnhancedCustomShapeTypeNames.hxx
index 054af2e3af41..054af2e3af41 100644
--- a/svx/source/customshapes/EnhancedCustomShapeTypeNames.hxx
+++ b/svx/inc/svx/EnhancedCustomShapeTypeNames.hxx
diff --git a/svx/inc/ParseContext.hxx b/svx/inc/svx/ParseContext.hxx
index 6b0ec247a39e..6b0ec247a39e 100644
--- a/svx/inc/ParseContext.hxx
+++ b/svx/inc/svx/ParseContext.hxx
diff --git a/svx/inc/UnoNamespaceMap.hxx b/svx/inc/svx/UnoNamespaceMap.hxx
index 7e3a1be005b8..7e3a1be005b8 100644
--- a/svx/inc/UnoNamespaceMap.hxx
+++ b/svx/inc/svx/UnoNamespaceMap.hxx
diff --git a/svx/inc/XPropertyTable.hxx b/svx/inc/svx/XPropertyTable.hxx
index 59ca1e1e086a..59ca1e1e086a 100644
--- a/svx/inc/XPropertyTable.hxx
+++ b/svx/inc/svx/XPropertyTable.hxx
diff --git a/svx/inc/anchorid.hxx b/svx/inc/svx/anchorid.hxx
index 976d0dc504c6..976d0dc504c6 100644
--- a/svx/inc/anchorid.hxx
+++ b/svx/inc/svx/anchorid.hxx
diff --git a/svx/inc/chrtitem.hxx b/svx/inc/svx/chrtitem.hxx
index 1cb9c2068f01..1cb9c2068f01 100644
--- a/svx/inc/chrtitem.hxx
+++ b/svx/inc/svx/chrtitem.hxx
diff --git a/svx/inc/clipboardctl.hxx b/svx/inc/svx/clipboardctl.hxx
index 22480ab1e728..22480ab1e728 100644
--- a/svx/inc/clipboardctl.hxx
+++ b/svx/inc/svx/clipboardctl.hxx
diff --git a/svx/inc/clipfmtitem.hxx b/svx/inc/svx/clipfmtitem.hxx
index 74687d56d38b..74687d56d38b 100644
--- a/svx/inc/clipfmtitem.hxx
+++ b/svx/inc/svx/clipfmtitem.hxx
diff --git a/svx/inc/connctrl.hxx b/svx/inc/svx/connctrl.hxx
index 468fffcc43b7..468fffcc43b7 100644
--- a/svx/inc/connctrl.hxx
+++ b/svx/inc/svx/connctrl.hxx
diff --git a/svx/inc/databaseregistrationui.hxx b/svx/inc/svx/databaseregistrationui.hxx
index 123e5af7d5a8..123e5af7d5a8 100644
--- a/svx/inc/databaseregistrationui.hxx
+++ b/svx/inc/svx/databaseregistrationui.hxx
diff --git a/svx/inc/dbexch.hrc b/svx/inc/svx/dbexch.hrc
index faa2274987cd..faa2274987cd 100644
--- a/svx/inc/dbexch.hrc
+++ b/svx/inc/svx/dbexch.hrc
diff --git a/svx/inc/dialcontrol.hxx b/svx/inc/svx/dialcontrol.hxx
index 3b63ac1f4b4d..3b63ac1f4b4d 100644
--- a/svx/inc/dialcontrol.hxx
+++ b/svx/inc/svx/dialcontrol.hxx
diff --git a/svx/inc/dlgutil.hxx b/svx/inc/svx/dlgutil.hxx
index 9f0d5190daed..9f0d5190daed 100644
--- a/svx/inc/dlgutil.hxx
+++ b/svx/inc/svx/dlgutil.hxx
diff --git a/svx/inc/drawitem.hxx b/svx/inc/svx/drawitem.hxx
index 9bfdb5cfd87a..9bfdb5cfd87a 100644
--- a/svx/inc/drawitem.hxx
+++ b/svx/inc/svx/drawitem.hxx
diff --git a/svx/inc/flagsdef.hxx b/svx/inc/svx/flagsdef.hxx
index 43fd292ddb36..43fd292ddb36 100644
--- a/svx/inc/flagsdef.hxx
+++ b/svx/inc/svx/flagsdef.hxx
diff --git a/svx/inc/svx/float3d.hxx b/svx/inc/svx/float3d.hxx
index 432d78b211ad..4b6fd22b2587 100644
--- a/svx/inc/svx/float3d.hxx
+++ b/svx/inc/svx/float3d.hxx
@@ -37,7 +37,7 @@
#endif
#include <sfx2/dockwin.hxx>
#ifndef _IMAGEBTN_HXX //autogen
-#include <vcl/imagebtn.hxx>
+#include <vcl/button.hxx>
#endif
#include <svtools/valueset.hxx>
#include <svtools/stdctrl.hxx>
diff --git a/svx/inc/fmgridif.hxx b/svx/inc/svx/fmgridif.hxx
index 886db3280d60..886db3280d60 100644
--- a/svx/inc/fmgridif.hxx
+++ b/svx/inc/svx/fmgridif.hxx
diff --git a/svx/inc/fmobjfac.hxx b/svx/inc/svx/fmobjfac.hxx
index 7d10ea2ab7b4..7d10ea2ab7b4 100644
--- a/svx/inc/fmobjfac.hxx
+++ b/svx/inc/svx/fmobjfac.hxx
diff --git a/svx/source/inc/fmresids.hrc b/svx/inc/svx/fmresids.hrc
index f6843801e522..f6843801e522 100644
--- a/svx/source/inc/fmresids.hrc
+++ b/svx/inc/svx/fmresids.hrc
diff --git a/svx/source/inc/fmsrccfg.hxx b/svx/inc/svx/fmsrccfg.hxx
index 3705f32b7494..3705f32b7494 100644
--- a/svx/source/inc/fmsrccfg.hxx
+++ b/svx/inc/svx/fmsrccfg.hxx
diff --git a/svx/source/inc/fmsrcimp.hxx b/svx/inc/svx/fmsrcimp.hxx
index 3a3af0ac7d8f..3a3af0ac7d8f 100644
--- a/svx/source/inc/fmsrcimp.hxx
+++ b/svx/inc/svx/fmsrcimp.hxx
diff --git a/svx/inc/fontlb.hxx b/svx/inc/svx/fontlb.hxx
index 813b01ba390f..813b01ba390f 100644
--- a/svx/inc/fontlb.hxx
+++ b/svx/inc/svx/fontlb.hxx
diff --git a/svx/inc/fontworkgallery.hxx b/svx/inc/svx/fontworkgallery.hxx
index 40ac3cef966a..40ac3cef966a 100644
--- a/svx/inc/fontworkgallery.hxx
+++ b/svx/inc/svx/fontworkgallery.hxx
diff --git a/svx/inc/formatpaintbrushctrl.hxx b/svx/inc/svx/formatpaintbrushctrl.hxx
index b380e051daf8..b380e051daf8 100644
--- a/svx/inc/formatpaintbrushctrl.hxx
+++ b/svx/inc/svx/formatpaintbrushctrl.hxx
diff --git a/svx/inc/galbrws.hxx b/svx/inc/svx/galbrws.hxx
index f54901db543d..f54901db543d 100644
--- a/svx/inc/galbrws.hxx
+++ b/svx/inc/svx/galbrws.hxx
diff --git a/svx/inc/galctrl.hxx b/svx/inc/svx/galctrl.hxx
index 3acf53dbeddb..3acf53dbeddb 100644
--- a/svx/inc/galctrl.hxx
+++ b/svx/inc/svx/galctrl.hxx
diff --git a/svx/inc/gallery.hxx b/svx/inc/svx/gallery.hxx
index 68a5c68539f1..68a5c68539f1 100644
--- a/svx/inc/gallery.hxx
+++ b/svx/inc/svx/gallery.hxx
diff --git a/svx/inc/galtheme.hxx b/svx/inc/svx/galtheme.hxx
index aa77bba25d26..aa77bba25d26 100644
--- a/svx/inc/galtheme.hxx
+++ b/svx/inc/svx/galtheme.hxx
diff --git a/svx/inc/globl3d.hxx b/svx/inc/svx/globl3d.hxx
index 1560f96dc1f5..1560f96dc1f5 100644
--- a/svx/inc/globl3d.hxx
+++ b/svx/inc/svx/globl3d.hxx
diff --git a/svx/inc/grafctrl.hxx b/svx/inc/svx/grafctrl.hxx
index 0c68f73f48f6..0c68f73f48f6 100644
--- a/svx/inc/grafctrl.hxx
+++ b/svx/inc/svx/grafctrl.hxx
diff --git a/svx/inc/hlnkitem.hxx b/svx/inc/svx/hlnkitem.hxx
index b9540e8845ca..b9540e8845ca 100644
--- a/svx/inc/hlnkitem.hxx
+++ b/svx/inc/svx/hlnkitem.hxx
diff --git a/svx/inc/htmlmode.hxx b/svx/inc/svx/htmlmode.hxx
index dab1b5b1db70..dab1b5b1db70 100644
--- a/svx/inc/htmlmode.hxx
+++ b/svx/inc/svx/htmlmode.hxx
diff --git a/svx/inc/hyperdlg.hxx b/svx/inc/svx/hyperdlg.hxx
index fc129763e63f..fc129763e63f 100644
--- a/svx/inc/hyperdlg.hxx
+++ b/svx/inc/svx/hyperdlg.hxx
diff --git a/svx/source/dialog/hyprlink.hxx b/svx/inc/svx/hyprlink.hxx
index 0a5af0afae82..0a5af0afae82 100644
--- a/svx/source/dialog/hyprlink.hxx
+++ b/svx/inc/svx/hyprlink.hxx
diff --git a/svx/inc/imapdlg.hxx b/svx/inc/svx/imapdlg.hxx
index d1a6961453a5..d1a6961453a5 100644
--- a/svx/inc/imapdlg.hxx
+++ b/svx/inc/svx/imapdlg.hxx
diff --git a/svx/inc/insctrl.hxx b/svx/inc/svx/insctrl.hxx
index e7fa02c70d91..e7fa02c70d91 100644
--- a/svx/inc/insctrl.hxx
+++ b/svx/inc/svx/insctrl.hxx
diff --git a/svx/inc/layctrl.hxx b/svx/inc/svx/layctrl.hxx
index 1bbdc714b7c9..1bbdc714b7c9 100644
--- a/svx/inc/layctrl.hxx
+++ b/svx/inc/svx/layctrl.hxx
diff --git a/svx/inc/lboxctrl.hxx b/svx/inc/svx/lboxctrl.hxx
index 36c82c64f44b..36c82c64f44b 100644
--- a/svx/inc/lboxctrl.hxx
+++ b/svx/inc/svx/lboxctrl.hxx
diff --git a/svx/inc/linectrl.hxx b/svx/inc/svx/linectrl.hxx
index 43c96f128671..43c96f128671 100644
--- a/svx/inc/linectrl.hxx
+++ b/svx/inc/svx/linectrl.hxx
diff --git a/svx/inc/measctrl.hxx b/svx/inc/svx/measctrl.hxx
index d45dc134cf19..d45dc134cf19 100644
--- a/svx/inc/measctrl.hxx
+++ b/svx/inc/svx/measctrl.hxx
diff --git a/svx/inc/modctrl.hxx b/svx/inc/svx/modctrl.hxx
index fd9e085c826e..fd9e085c826e 100644
--- a/svx/inc/modctrl.hxx
+++ b/svx/inc/svx/modctrl.hxx
diff --git a/svx/inc/numvset.hxx b/svx/inc/svx/numvset.hxx
index d174e1d6fba5..d174e1d6fba5 100644
--- a/svx/inc/numvset.hxx
+++ b/svx/inc/svx/numvset.hxx
diff --git a/svx/inc/objfac3d.hxx b/svx/inc/svx/objfac3d.hxx
index 6ce30853f441..6ce30853f441 100644
--- a/svx/inc/objfac3d.hxx
+++ b/svx/inc/svx/objfac3d.hxx
diff --git a/svx/inc/ofaitem.hxx b/svx/inc/svx/ofaitem.hxx
index 50f18ccb9ed9..50f18ccb9ed9 100644
--- a/svx/inc/ofaitem.hxx
+++ b/svx/inc/svx/ofaitem.hxx
diff --git a/svx/inc/optgenrl.hxx b/svx/inc/svx/optgenrl.hxx
index 50520aac0204..50520aac0204 100644
--- a/svx/inc/optgenrl.hxx
+++ b/svx/inc/svx/optgenrl.hxx
diff --git a/svx/inc/optgrid.hxx b/svx/inc/svx/optgrid.hxx
index 6dd2a5f9371d..6dd2a5f9371d 100644
--- a/svx/inc/optgrid.hxx
+++ b/svx/inc/svx/optgrid.hxx
diff --git a/svx/inc/orienthelper.hxx b/svx/inc/svx/orienthelper.hxx
index 7508740b62d6..7508740b62d6 100644
--- a/svx/inc/orienthelper.hxx
+++ b/svx/inc/svx/orienthelper.hxx
diff --git a/svx/inc/passwd.hxx b/svx/inc/svx/passwd.hxx
index 9a6b14f0144a..9a6b14f0144a 100644
--- a/svx/inc/passwd.hxx
+++ b/svx/inc/svx/passwd.hxx
diff --git a/svx/inc/pfiledlg.hxx b/svx/inc/svx/pfiledlg.hxx
index 93d99c4774a2..93d99c4774a2 100644
--- a/svx/inc/pfiledlg.hxx
+++ b/svx/inc/svx/pfiledlg.hxx
diff --git a/svx/inc/postattr.hxx b/svx/inc/svx/postattr.hxx
index 840312cf0c46..840312cf0c46 100644
--- a/svx/inc/postattr.hxx
+++ b/svx/inc/svx/postattr.hxx
diff --git a/svx/inc/prtqry.hxx b/svx/inc/svx/prtqry.hxx
index ce7ae239215f..ce7ae239215f 100644
--- a/svx/inc/prtqry.hxx
+++ b/svx/inc/svx/prtqry.hxx
diff --git a/svx/inc/pszctrl.hxx b/svx/inc/svx/pszctrl.hxx
index 54ec2788521f..54ec2788521f 100644
--- a/svx/inc/pszctrl.hxx
+++ b/svx/inc/svx/pszctrl.hxx
diff --git a/svx/inc/relfld.hxx b/svx/inc/svx/relfld.hxx
index 02d9ca20a5d3..02d9ca20a5d3 100644
--- a/svx/inc/relfld.hxx
+++ b/svx/inc/svx/relfld.hxx
diff --git a/svx/inc/rotmodit.hxx b/svx/inc/svx/rotmodit.hxx
index 8177713e6013..8177713e6013 100644
--- a/svx/inc/rotmodit.hxx
+++ b/svx/inc/svx/rotmodit.hxx
diff --git a/svx/inc/rubydialog.hxx b/svx/inc/svx/rubydialog.hxx
index e8deecfed145..e8deecfed145 100644
--- a/svx/inc/rubydialog.hxx
+++ b/svx/inc/svx/rubydialog.hxx
diff --git a/svx/inc/rulritem.hxx b/svx/inc/svx/rulritem.hxx
index f6b81e1eedb8..f6b81e1eedb8 100644
--- a/svx/inc/rulritem.hxx
+++ b/svx/inc/svx/rulritem.hxx
diff --git a/svx/inc/svx/sdr/contact/objectcontactofobjlistpainter.hxx b/svx/inc/svx/sdr/contact/objectcontactofobjlistpainter.hxx
index 3f7211aa9dc0..870192c9b151 100644
--- a/svx/inc/svx/sdr/contact/objectcontactofobjlistpainter.hxx
+++ b/svx/inc/svx/sdr/contact/objectcontactofobjlistpainter.hxx
@@ -95,6 +95,15 @@ namespace sdr
// Process the whole displaying
virtual void ProcessDisplay(DisplayInfo& rDisplayInfo);
+ // VirtualDevice? Default is false
+ virtual bool isOutputToVirtualDevice() const;
+
+ // recording MetaFile? Default is false
+ virtual bool isOutputToRecordingMetaFile() const;
+
+ // pdf export? Default is false
+ virtual bool isOutputToPDFFile() const;
+
// access to OutputDevice. May return 0L like the default implementations do. Needs to be overloaded as needed.
virtual OutputDevice* TryToGetOutputDevice() const;
};
diff --git a/svx/inc/svx/sdrpagewindow.hxx b/svx/inc/svx/sdrpagewindow.hxx
index a3e50fadc599..29c08d6335e3 100644
--- a/svx/inc/svx/sdrpagewindow.hxx
+++ b/svx/inc/svx/sdrpagewindow.hxx
@@ -117,6 +117,7 @@ public:
void PrepareRedraw(const Region& rReg);
void RedrawAll(sdr::contact::ViewObjectContactRedirector* pRedirector) const;
void RedrawLayer(const SdrLayerID* pId, sdr::contact::ViewObjectContactRedirector* pRedirector) const;
+ void PostPaint();
// Invalidate call, used from ObjectContact(OfPageView) in InvalidatePartOfView(...)
void InvalidatePageWindow(const basegfx::B2DRange& rRange);
diff --git a/svx/inc/sdrpaintwindow.hxx b/svx/inc/svx/sdrpaintwindow.hxx
index fef8c2e604d0..fef8c2e604d0 100644
--- a/svx/inc/sdrpaintwindow.hxx
+++ b/svx/inc/svx/sdrpaintwindow.hxx
diff --git a/svx/inc/selctrl.hxx b/svx/inc/svx/selctrl.hxx
index 5d7fac4f4a5e..5d7fac4f4a5e 100644
--- a/svx/inc/selctrl.hxx
+++ b/svx/inc/svx/selctrl.hxx
diff --git a/svx/inc/svx/splitcelldlg.hxx b/svx/inc/svx/splitcelldlg.hxx
index bd1d3e8f60d0..85ba02eb0e41 100644
--- a/svx/inc/svx/splitcelldlg.hxx
+++ b/svx/inc/svx/splitcelldlg.hxx
@@ -29,7 +29,7 @@
#include <vcl/fixed.hxx>
#include <vcl/field.hxx>
-#include <vcl/imagebtn.hxx>
+#include <vcl/button.hxx>
#include <vcl/button.hxx>
#include <svx/stddlg.hxx>
diff --git a/svx/inc/srchdlg.hxx b/svx/inc/svx/srchdlg.hxx
index 29aec84fae24..0253f61a7785 100644
--- a/svx/inc/srchdlg.hxx
+++ b/svx/inc/svx/srchdlg.hxx
@@ -118,7 +118,7 @@ public:
// class SvxSearchDialog -------------------------------------------------
/*
- {k:\svx\prototyp\dialog\srchdlg.hxx}
+ {k:\svx\prototyp\dialog\svx/srchdlg.hxx}
[Beschreibung]
In diesem Modeless-Dialog werden die Attribute einer Suche eingestellt
diff --git a/svx/inc/svdglob.hxx b/svx/inc/svx/svdglob.hxx
index 588869ff9890..588869ff9890 100644
--- a/svx/inc/svdglob.hxx
+++ b/svx/inc/svx/svdglob.hxx
diff --git a/svx/inc/svditer.hxx b/svx/inc/svx/svditer.hxx
index 8ab6c32ea061..8ab6c32ea061 100644
--- a/svx/inc/svditer.hxx
+++ b/svx/inc/svx/svditer.hxx
diff --git a/svx/source/svdraw/svditext.hxx b/svx/inc/svx/svditext.hxx
index b181b4046f9e..b181b4046f9e 100644
--- a/svx/source/svdraw/svditext.hxx
+++ b/svx/inc/svx/svditext.hxx
diff --git a/svx/inc/svx/svdograf.hxx b/svx/inc/svx/svdograf.hxx
index 23d9204ca891..1eba8822402a 100644
--- a/svx/inc/svx/svdograf.hxx
+++ b/svx/inc/svx/svdograf.hxx
@@ -120,7 +120,8 @@ protected:
void ImpLinkAnmeldung();
void ImpLinkAbmeldung();
- sal_Bool ImpUpdateGraphicLink() const;
+ sal_Bool ImpUpdateGraphicLink( sal_Bool bAsynchron = sal_True ) const;
+ void ImpSetLinkedGraphic( const Graphic& rGraphic );
DECL_LINK( ImpSwapHdl, GraphicObject* );
public:
diff --git a/svx/inc/svx/svdpagv.hxx b/svx/inc/svx/svdpagv.hxx
index 4ad30c2958f3..cd7b8a6de81e 100644
--- a/svx/inc/svx/svdpagv.hxx
+++ b/svx/inc/svx/svdpagv.hxx
@@ -184,6 +184,9 @@ public:
// PrePaint call forwarded from app windows
void PrePaint();
+ // PostPaint call forwarded from app windows
+ void PostPaint();
+
// rReg bezieht sich auf's OutDev, nicht auf die Page
void CompleteRedraw(SdrPaintWindow& rPaintWindow, const Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0L) const;
diff --git a/svx/inc/svx/svdpntv.hxx b/svx/inc/svx/svdpntv.hxx
index bd6c7ea554cc..69f32ad327e5 100644
--- a/svx/inc/svx/svdpntv.hxx
+++ b/svx/inc/svx/svdpntv.hxx
@@ -375,6 +375,9 @@ public:
// PrePaint call forwarded from app windows
void PrePaint();
+ // PostPaint call forwarded from app windows
+ void PostPaint();
+
////////////////////////////////////////////////////////////////////////////////////////////////////
// used internally for Draw/Impress/sch/chart2
virtual void CompleteRedraw(OutputDevice* pOut, const Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0);
diff --git a/svx/inc/svdstr.hrc b/svx/inc/svx/svdstr.hrc
index d778bf40326b..d778bf40326b 100644
--- a/svx/inc/svdstr.hrc
+++ b/svx/inc/svx/svdstr.hrc
diff --git a/svx/inc/svdviter.hxx b/svx/inc/svx/svdviter.hxx
index 884733bc2d84..884733bc2d84 100644
--- a/svx/inc/svdviter.hxx
+++ b/svx/inc/svx/svdviter.hxx
diff --git a/svx/inc/svimbase.hxx b/svx/inc/svx/svimbase.hxx
index ba10f76b01f9..ba10f76b01f9 100644
--- a/svx/inc/svimbase.hxx
+++ b/svx/inc/svx/svimbase.hxx
diff --git a/svx/inc/svxerr.hxx b/svx/inc/svx/svxerr.hxx
index 0fd197f1a5f5..0fd197f1a5f5 100644
--- a/svx/inc/svxerr.hxx
+++ b/svx/inc/svx/svxerr.hxx
diff --git a/svx/inc/svxgrahicitem.hxx b/svx/inc/svx/svxgrahicitem.hxx
index fdd757b1a91b..fdd757b1a91b 100644
--- a/svx/inc/svxgrahicitem.hxx
+++ b/svx/inc/svx/svxgrahicitem.hxx
diff --git a/svx/inc/swframeexample.hxx b/svx/inc/svx/swframeexample.hxx
index 843ff2a487af..843ff2a487af 100644
--- a/svx/inc/swframeexample.hxx
+++ b/svx/inc/svx/swframeexample.hxx
diff --git a/svx/inc/swframeposstrings.hxx b/svx/inc/svx/swframeposstrings.hxx
index 7ba005dc1e76..7ba005dc1e76 100644
--- a/svx/inc/swframeposstrings.hxx
+++ b/svx/inc/svx/swframeposstrings.hxx
diff --git a/svx/inc/swframevalidation.hxx b/svx/inc/svx/swframevalidation.hxx
index 600479718050..600479718050 100644
--- a/svx/inc/swframevalidation.hxx
+++ b/svx/inc/svx/swframevalidation.hxx
diff --git a/svx/inc/svx/tabarea.hxx b/svx/inc/svx/tabarea.hxx
index 873dbc576f7c..a197e110f8ab 100644
--- a/svx/inc/svx/tabarea.hxx
+++ b/svx/inc/svx/tabarea.hxx
@@ -31,7 +31,7 @@
#include <svtools/valueset.hxx>
#ifndef _IMAGEBTN_HXX //autogen
-#include <vcl/imagebtn.hxx>
+#include <vcl/button.hxx>
#endif
#ifndef _FIXED_HXX //autogen
#include <vcl/fixed.hxx>
diff --git a/svx/inc/svx/tabline.hxx b/svx/inc/svx/tabline.hxx
index 7ccc189b0083..dd4d6033960c 100644
--- a/svx/inc/svx/tabline.hxx
+++ b/svx/inc/svx/tabline.hxx
@@ -30,7 +30,7 @@
// include ---------------------------------------------------------------
#ifndef _IMAGEBTN_HXX //autogen
-#include <vcl/imagebtn.hxx>
+#include <vcl/button.hxx>
#endif
#ifndef _GROUP_HXX //autogen
#include <vcl/group.hxx>
diff --git a/svx/inc/tbxalign.hxx b/svx/inc/svx/tbxalign.hxx
index 669b03e87c73..669b03e87c73 100644
--- a/svx/inc/tbxalign.hxx
+++ b/svx/inc/svx/tbxalign.hxx
diff --git a/svx/inc/tbxcolor.hxx b/svx/inc/svx/tbxcolor.hxx
index 848c015c2995..848c015c2995 100644
--- a/svx/inc/tbxcolor.hxx
+++ b/svx/inc/svx/tbxcolor.hxx
diff --git a/svx/inc/tbxctl.hxx b/svx/inc/svx/tbxctl.hxx
index 39bfc09cf8b1..39bfc09cf8b1 100644
--- a/svx/inc/tbxctl.hxx
+++ b/svx/inc/svx/tbxctl.hxx
diff --git a/svx/inc/tbxcustomshapes.hxx b/svx/inc/svx/tbxcustomshapes.hxx
index 21aa3ea871ed..21aa3ea871ed 100644
--- a/svx/inc/tbxcustomshapes.hxx
+++ b/svx/inc/svx/tbxcustomshapes.hxx
diff --git a/svx/inc/tbxdraw.hxx b/svx/inc/svx/tbxdraw.hxx
index 8f071f38792b..8f071f38792b 100644
--- a/svx/inc/tbxdraw.hxx
+++ b/svx/inc/svx/tbxdraw.hxx
diff --git a/svx/inc/txencbox.hxx b/svx/inc/svx/txencbox.hxx
index e24716f8c953..e24716f8c953 100644
--- a/svx/inc/txencbox.hxx
+++ b/svx/inc/svx/txencbox.hxx
diff --git a/svx/inc/txenctab.hxx b/svx/inc/svx/txenctab.hxx
index e04428717c53..e04428717c53 100644
--- a/svx/inc/txenctab.hxx
+++ b/svx/inc/svx/txenctab.hxx
diff --git a/svx/inc/unoapi.hxx b/svx/inc/svx/unoapi.hxx
index 6a990a8d1c70..6a990a8d1c70 100644
--- a/svx/inc/unoapi.hxx
+++ b/svx/inc/svx/unoapi.hxx
diff --git a/svx/inc/unofill.hxx b/svx/inc/svx/unofill.hxx
index 8c1a196b00d7..8c1a196b00d7 100644
--- a/svx/inc/unofill.hxx
+++ b/svx/inc/svx/unofill.hxx
diff --git a/svx/inc/unomaster.hxx b/svx/inc/svx/unomaster.hxx
index 06f716705233..06f716705233 100644
--- a/svx/inc/unomaster.hxx
+++ b/svx/inc/svx/unomaster.hxx
diff --git a/svx/inc/unopool.hxx b/svx/inc/svx/unopool.hxx
index c34105efb448..c34105efb448 100644
--- a/svx/inc/unopool.hxx
+++ b/svx/inc/svx/unopool.hxx
diff --git a/svx/inc/unoshcol.hxx b/svx/inc/svx/unoshcol.hxx
index 422f6fc24029..422f6fc24029 100644
--- a/svx/inc/unoshcol.hxx
+++ b/svx/inc/svx/unoshcol.hxx
diff --git a/svx/inc/verttexttbxctrl.hxx b/svx/inc/svx/verttexttbxctrl.hxx
index 8c350e31918b..8c350e31918b 100644
--- a/svx/inc/verttexttbxctrl.hxx
+++ b/svx/inc/svx/verttexttbxctrl.hxx
diff --git a/svx/inc/wrapfield.hxx b/svx/inc/svx/wrapfield.hxx
index 1b4d745c55f8..1b4d745c55f8 100644
--- a/svx/inc/wrapfield.hxx
+++ b/svx/inc/svx/wrapfield.hxx
diff --git a/svx/inc/xattr.hxx b/svx/inc/svx/xattr.hxx
index 20035f7743e7..20035f7743e7 100644
--- a/svx/inc/xattr.hxx
+++ b/svx/inc/svx/xattr.hxx
diff --git a/svx/inc/xexch.hxx b/svx/inc/svx/xexch.hxx
index ff317f0a7541..ff317f0a7541 100644
--- a/svx/inc/xexch.hxx
+++ b/svx/inc/svx/xexch.hxx
diff --git a/svx/inc/xmleohlp.hxx b/svx/inc/svx/xmleohlp.hxx
index 211e17ca1801..211e17ca1801 100644
--- a/svx/inc/xmleohlp.hxx
+++ b/svx/inc/svx/xmleohlp.hxx
diff --git a/svx/inc/xmlexchg.hxx b/svx/inc/svx/xmlexchg.hxx
index f4820e0eb6fe..f4820e0eb6fe 100644
--- a/svx/inc/xmlexchg.hxx
+++ b/svx/inc/svx/xmlexchg.hxx
diff --git a/svx/inc/xmlgrhlp.hxx b/svx/inc/svx/xmlgrhlp.hxx
index e17c78cd5ccb..e17c78cd5ccb 100644
--- a/svx/inc/xmlgrhlp.hxx
+++ b/svx/inc/svx/xmlgrhlp.hxx
diff --git a/svx/inc/xmlsecctrl.hxx b/svx/inc/svx/xmlsecctrl.hxx
index aa1a38f183bd..aa1a38f183bd 100644
--- a/svx/inc/xmlsecctrl.hxx
+++ b/svx/inc/svx/xmlsecctrl.hxx
diff --git a/svx/inc/xoutbmp.hxx b/svx/inc/svx/xoutbmp.hxx
index 726eb2f83d9c..726eb2f83d9c 100644
--- a/svx/inc/xoutbmp.hxx
+++ b/svx/inc/svx/xoutbmp.hxx
diff --git a/svx/inc/zoom_def.hxx b/svx/inc/svx/zoom_def.hxx
index 7788bb1023f1..7788bb1023f1 100644
--- a/svx/inc/zoom_def.hxx
+++ b/svx/inc/svx/zoom_def.hxx
diff --git a/svx/inc/zoomctrl.hxx b/svx/inc/svx/zoomctrl.hxx
index ea3ecdb33025..ea3ecdb33025 100644
--- a/svx/inc/zoomctrl.hxx
+++ b/svx/inc/svx/zoomctrl.hxx
diff --git a/svx/prj/build.lst b/svx/prj/build.lst
index 9f7597488644..536d7cc29fc8 100644
--- a/svx/prj/build.lst
+++ b/svx/prj/build.lst
@@ -1,4 +1,4 @@
-sx svx : sfx2 l10n oovbaapi connectivity xmloff linguistic jvmfwk avmedia drawinglayer editeng NULL
+sx svx : sfx2 l10n oovbaapi connectivity xmloff linguistic jvmfwk avmedia drawinglayer editeng LIBXSLT:libxslt NULL
sx svx usr1 - all sx_mkout NULL
sx svx\inc nmake - all sx_inc NULL
sx svx\uiconfig\layout nmake - all sx_layout NULL
diff --git a/svx/prj/d.lst b/svx/prj/d.lst
index fe15afbdf469..a07db5dbe093 100644
--- a/svx/prj/d.lst
+++ b/svx/prj/d.lst
@@ -2,6 +2,9 @@ mkdir: %COMMON_DEST%\bin%_EXT%\hid
mkdir: %COMMON_DEST%\res%_EXT%
mkdir: %_DEST%\xml%_EXT%\uiconfig
mkdir: %_DEST%\xml%_EXT%\uiconfig\global
+mkdir: %_DEST%\xml%_EXT%\uiconfig\global\accelerator
+mkdir: %_DEST%\xml%_EXT%\uiconfig\global\accelerator\en-US
+mkdir: %_DEST%\xml%_EXT%\uiconfig\global\accelerator\es
..\%COMMON_OUTDIR%\misc\*.hid %COMMON_DEST%\bin%_EXT%\hid\*.hid
..\%__SRC%\lib\lib*.* %_DEST%\lib%_EXT%\lib*.*
@@ -20,442 +23,12 @@ mkdir: %_DEST%\inc%_EXT%\svx
..\sdi\svxitems.sdi %_DEST%\inc%_EXT%\svx\svxitems.sdi
..\sdi\xoitems.sdi %_DEST%\inc%_EXT%\svx\xoitems.sdi
-..\source\inc\fmsrccfg.hxx %_DEST%\inc%_EXT%\svx\fmsrccfg.hxx
-..\source\inc\fmsrcimp.hxx %_DEST%\inc%_EXT%\svx\fmsrcimp.hxx
-..\inc\galtheme.hxx %_DEST%\inc%_EXT%\svx\galtheme.hxx
-..\inc\galctrl.hxx %_DEST%\inc%_EXT%\svx\galctrl.hxx
-..\inc\svx\galmisc.hxx %_DEST%\inc%_EXT%\svx\galmisc.hxx
-..\inc\svx\gallery1.hxx %_DEST%\inc%_EXT%\svx\gallery1.hxx
-..\inc\svx\fmtools.hxx %_DEST%\inc%_EXT%\svx\fmtools.hxx
-..\inc\svx\exthelpid.hrc %_DEST%\inc%_EXT%\svx\exthelpid.hrc
+..\inc\svx\*.hxx %_DEST%\inc%_EXT%\svx\*.hxx
+..\inc\svx\*.h %_DEST%\inc%_EXT%\svx\*.h
+..\inc\svx\*.hrc %_DEST%\inc%_EXT%\svx\*.hrc
-..\inc\flagsdef.hxx %_DEST%\inc%_EXT%\svx\flagsdef.hxx
..\%__SRC%\inc\svxslots.hxx %_DEST%\inc%_EXT%\svx\svxslots.hxx
..\%__SRC%\inc\globlmn.hrc %_DEST%\inc%_EXT%\svx\globlmn.hrc
-..\source\inc\fmresids.hrc %_DEST%\inc%_EXT%\svx\fmresids.hrc
-..\source\dialog\hyprlink.hxx %_DEST%\inc%_EXT%\svx\hyprlink.hxx
-
-../source/customshapes/EnhancedCustomShapeTypeNames.hxx %_DEST%\inc%_EXT%\svx\EnhancedCustomShapeTypeNames.hxx
-../source/customshapes/EnhancedCustomShapeGeometry.hxx %_DEST%\inc%_EXT%\svx\EnhancedCustomShapeGeometry.hxx
-../inc/svx/EnhancedCustomShapeFunctionParser.hxx %_DEST%\inc%_EXT%\svx\EnhancedCustomShapeFunctionParser.hxx
-../source/customshapes/EnhancedCustomShape2d.hxx %_DEST%\inc%_EXT%\svx\EnhancedCustomShape2d.hxx
-../inc/xattr.hxx %_DEST%\inc%_EXT%\svx\xattr.hxx
-../inc/svdglob.hxx %_DEST%\inc%_EXT%\svx\svdglob.hxx
-../source/svdraw/svditext.hxx %_DEST%\inc%_EXT%\svx\svditext.hxx
-
-..\inc\ActionDescriptionProvider.hxx %_DEST%\inc%_EXT%\svx\ActionDescriptionProvider.hxx
-..\inc\anchorid.hxx %_DEST%\inc%_EXT%\svx\anchorid.hxx
-..\inc\chrtitem.hxx %_DEST%\inc%_EXT%\svx\chrtitem.hxx
-..\inc\clipboardctl.hxx %_DEST%\inc%_EXT%\svx\clipboardctl.hxx
-..\inc\clipfmtitem.hxx %_DEST%\inc%_EXT%\svx\clipfmtitem.hxx
-..\inc\connctrl.hxx %_DEST%\inc%_EXT%\svx\connctrl.hxx
-..\inc\databaseregistrationui.hxx %_DEST%\inc%_EXT%\svx\databaseregistrationui.hxx
-..\inc\dbexch.hrc %_DEST%\inc%_EXT%\svx\dbexch.hrc
-..\inc\DescriptionGenerator.hxx %_DEST%\inc%_EXT%\svx\DescriptionGenerator.hxx
-..\inc\dialcontrol.hxx %_DEST%\inc%_EXT%\svx\dialcontrol.hxx
-..\inc\dlgutil.hxx %_DEST%\inc%_EXT%\svx\dlgutil.hxx
-..\inc\drawitem.hxx %_DEST%\inc%_EXT%\svx\drawitem.hxx
-..\inc\editstat.hxx %_DEST%\inc%_EXT%\svx\editstat.hxx
-..\inc\editund2.hxx %_DEST%\inc%_EXT%\svx\editund2.hxx
-..\inc\eerdll.hxx %_DEST%\inc%_EXT%\svx\editdll.hxx
-..\inc\flstitem.hxx %_DEST%\inc%_EXT%\svx\flstitem.hxx
-..\inc\extrusioncontrols.hxx %_DEST%\inc%_EXT%\svx\extrusioncontrols.hxx
-..\inc\fmgridif.hxx %_DEST%\inc%_EXT%\svx\fmgridif.hxx
-..\inc\fmobjfac.hxx %_DEST%\inc%_EXT%\svx\fmobjfac.hxx
-..\inc\fontlb.hxx %_DEST%\inc%_EXT%\svx\fontlb.hxx
-..\inc\fontworkgallery.hxx %_DEST%\inc%_EXT%\svx\fontworkgallery.hxx
-..\inc\formatpaintbrushctrl.hxx %_DEST%\inc%_EXT%\svx\formatpaintbrushctrl.hxx
-..\inc\gallery.hxx %_DEST%\inc%_EXT%\svx\gallery.hxx
-..\inc\galbrws.hxx %_DEST%\inc%_EXT%\svx\galbrws.hxx
-..\inc\globlac.hrc %_DEST%\inc%_EXT%\svx\globlac.hrc
-..\inc\globl3d.hxx %_DEST%\inc%_EXT%\svx\globl3d.hxx
-..\inc\grafctrl.hxx %_DEST%\inc%_EXT%\svx\grafctrl.hxx
-..\inc\hlnkitem.hxx %_DEST%\inc%_EXT%\svx\hlnkitem.hxx
-..\inc\htmlmode.hxx %_DEST%\inc%_EXT%\svx\htmlmode.hxx
-..\inc\hyperdlg.hxx %_DEST%\inc%_EXT%\svx\hyperdlg.hxx
-..\inc\imapdlg.hxx %_DEST%\inc%_EXT%\svx\imapdlg.hxx
-..\inc\insctrl.hxx %_DEST%\inc%_EXT%\svx\insctrl.hxx
-..\inc\layctrl.hxx %_DEST%\inc%_EXT%\svx\layctrl.hxx
-..\inc\lboxctrl.hxx %_DEST%\inc%_EXT%\svx\lboxctrl.hxx
-..\inc\linectrl.hxx %_DEST%\inc%_EXT%\svx\linectrl.hxx
-..\inc\measctrl.hxx %_DEST%\inc%_EXT%\svx\measctrl.hxx
-..\inc\modctrl.hxx %_DEST%\inc%_EXT%\svx\modctrl.hxx
-..\inc\numvset.hxx %_DEST%\inc%_EXT%\svx\numvset.hxx
-..\inc\objfac3d.hxx %_DEST%\inc%_EXT%\svx\objfac3d.hxx
-..\inc\ofaitem.hxx %_DEST%\inc%_EXT%\svx\ofaitem.hxx
-..\inc\optgenrl.hxx %_DEST%\inc%_EXT%\svx\optgenrl.hxx
-..\inc\optgrid.hxx %_DEST%\inc%_EXT%\svx\optgrid.hxx
-..\inc\orienthelper.hxx %_DEST%\inc%_EXT%\svx\orienthelper.hxx
-..\inc\ParseContext.hxx %_DEST%\inc%_EXT%\svx\ParseContext.hxx
-..\inc\passwd.hxx %_DEST%\inc%_EXT%\svx\passwd.hxx
-..\inc\pfiledlg.hxx %_DEST%\inc%_EXT%\svx\pfiledlg.hxx
-..\inc\postattr.hxx %_DEST%\inc%_EXT%\svx\postattr.hxx
-..\inc\prtqry.hxx %_DEST%\inc%_EXT%\svx\prtqry.hxx
-..\inc\pszctrl.hxx %_DEST%\inc%_EXT%\svx\pszctrl.hxx
-..\inc\relfld.hxx %_DEST%\inc%_EXT%\svx\relfld.hxx
-..\inc\rotmodit.hxx %_DEST%\inc%_EXT%\svx\rotmodit.hxx
-..\inc\rubydialog.hxx %_DEST%\inc%_EXT%\svx\rubydialog.hxx
-..\inc\rulritem.hxx %_DEST%\inc%_EXT%\svx\rulritem.hxx
-..\inc\sdrpaintwindow.hxx %_DEST%\inc%_EXT%\svx\sdrpaintwindow.hxx
-..\inc\selctrl.hxx %_DEST%\inc%_EXT%\svx\selctrl.hxx
-..\inc\srchdlg.hxx %_DEST%\inc%_EXT%\svx\srchdlg.hxx
-..\inc\srchitem.hxx %_DEST%\inc%_EXT%\svx\srchitem.hxx
-..\inc\svditer.hxx %_DEST%\inc%_EXT%\svx\svditer.hxx
-..\inc\svdstr.hrc %_DEST%\inc%_EXT%\svx\svdstr.hrc
-..\inc\svdviter.hxx %_DEST%\inc%_EXT%\svx\svdviter.hxx
-..\inc\svimbase.hxx %_DEST%\inc%_EXT%\svx\svimbase.hxx
-..\inc\svxerr.hxx %_DEST%\inc%_EXT%\svx\svxerr.hxx
-..\inc\svxgrahicitem.hxx %_DEST%\inc%_EXT%\svx\svxgrahicitem.hxx
-..\inc\swframeposstrings.hxx %_DEST%\inc%_EXT%\svx\swframeposstrings.hxx
-..\inc\swframevalidation.hxx %_DEST%\inc%_EXT%\svx\swframevalidation.hxx
-..\inc\swframeexample.hxx %_DEST%\inc%_EXT%\svx\swframeexample.hxx
-..\inc\tbxalign.hxx %_DEST%\inc%_EXT%\svx\tbxalign.hxx
-..\inc\tbxcolor.hxx %_DEST%\inc%_EXT%\svx\tbxcolor.hxx
-..\inc\tbxctl.hxx %_DEST%\inc%_EXT%\svx\tbxctl.hxx
-..\inc\tbxcustomshapes.hxx %_DEST%\inc%_EXT%\svx\tbxcustomshapes.hxx
-..\inc\tbxdraw.hxx %_DEST%\inc%_EXT%\svx\tbxdraw.hxx
-..\inc\txencbox.hxx %_DEST%\inc%_EXT%\svx\txencbox.hxx
-..\inc\txenctab.hxx %_DEST%\inc%_EXT%\svx\txenctab.hxx
-..\inc\unoapi.hxx %_DEST%\inc%_EXT%\svx\unoapi.hxx
-..\inc\unofill.hxx %_DEST%\inc%_EXT%\svx\unofill.hxx
-..\inc\unomaster.hxx %_DEST%\inc%_EXT%\svx\unomaster.hxx
-..\inc\UnoNamespaceMap.hxx %_DEST%\inc%_EXT%\svx\UnoNamespaceMap.hxx
-..\inc\unopool.hxx %_DEST%\inc%_EXT%\svx\unopool.hxx
-..\inc\unoshcol.hxx %_DEST%\inc%_EXT%\svx\unoshcol.hxx
-..\inc\verttexttbxctrl.hxx %_DEST%\inc%_EXT%\svx\verttexttbxctrl.hxx
-..\inc\wrapfield.hxx %_DEST%\inc%_EXT%\svx\wrapfield.hxx
-..\inc\xexch.hxx %_DEST%\inc%_EXT%\svx\xexch.hxx
-..\inc\xmleohlp.hxx %_DEST%\inc%_EXT%\svx\xmleohlp.hxx
-..\inc\xmlexchg.hxx %_DEST%\inc%_EXT%\svx\xmlexchg.hxx
-..\inc\xmlgrhlp.hxx %_DEST%\inc%_EXT%\svx\xmlgrhlp.hxx
-..\inc\xmlsecctrl.hxx %_DEST%\inc%_EXT%\svx\xmlsecctrl.hxx
-..\inc\xoutbmp.hxx %_DEST%\inc%_EXT%\svx\xoutbmp.hxx
-..\inc\XPropertyTable.hxx %_DEST%\inc%_EXT%\svx\XPropertyTable.hxx
-..\inc\zoom_def.hxx %_DEST%\inc%_EXT%\svx\zoom_def.hxx
-..\inc\zoomctrl.hxx %_DEST%\inc%_EXT%\svx\zoomctrl.hxx
-
-..\inc\svx\xlinjoit.hxx %_DEST%\inc%_EXT%\svx\xlinjoit.hxx
-..\inc\svx\dstribut_enum.hxx %_DEST%\inc%_EXT%\svx\dstribut_enum.hxx
-..\inc\svx\svdfield.hxx %_DEST%\inc%_EXT%\svx\svdfield.hxx
-..\inc\svx\svxitems.hrc %_DEST%\inc%_EXT%\svx\svxitems.hrc
-..\inc\svx\svddef.hxx %_DEST%\inc%_EXT%\svx\svddef.hxx
-..\inc\svx\ipolypolygoneditorcontroller.hxx %_DEST%\inc%_EXT%\svx\ipolypolygoneditorcontroller.hxx
-..\inc\svx\polypolygoneditor.hxx %_DEST%\inc%_EXT%\svx\polypolygoneditor.hxx
-..\inc\svx\svdsob.hxx %_DEST%\inc%_EXT%\svx\svdsob.hxx
-..\inc\svx\svdlayer.hxx %_DEST%\inc%_EXT%\svx\svdlayer.hxx
-..\inc\svx\algitem.hxx %_DEST%\inc%_EXT%\svx\algitem.hxx
-..\inc\svx\simptabl.hxx %_DEST%\inc%_EXT%\svx\simptabl.hxx
-..\inc\svx\ctredlin.hxx %_DEST%\inc%_EXT%\svx\ctredlin.hxx
-..\inc\svx\bmpmask.hxx %_DEST%\inc%_EXT%\svx\bmpmask.hxx
-..\inc\svx\camera3d.hxx %_DEST%\inc%_EXT%\svx\camera3d.hxx
-..\inc\svx\charmap.hxx %_DEST%\inc%_EXT%\svx\charmap.hxx
-..\inc\svx\checklbx.hxx %_DEST%\inc%_EXT%\svx\checklbx.hxx
-..\inc\svx\contdlg.hxx %_DEST%\inc%_EXT%\svx\contdlg.hxx
-..\inc\svx\tabarea.hxx %_DEST%\inc%_EXT%\svx\tabarea.hxx
-..\inc\svx\tabline.hxx %_DEST%\inc%_EXT%\svx\tabline.hxx
-..\inc\svx\colrctrl.hxx %_DEST%\inc%_EXT%\svx\colrctrl.hxx
-..\inc\svx\cube3d.hxx %_DEST%\inc%_EXT%\svx\cube3d.hxx
-..\inc\svx\polygn3d.hxx %_DEST%\inc%_EXT%\svx\polygn3d.hxx
-..\inc\svx\lathe3d.hxx %_DEST%\inc%_EXT%\svx\lathe3d.hxx
-..\inc\svx\e3ditem.hxx %_DEST%\inc%_EXT%\svx\e3ditem.hxx
-..\inc\svx\def3d.hxx %_DEST%\inc%_EXT%\svx\def3d.hxx
-..\inc\svx\svdtypes.hxx %_DEST%\inc%_EXT%\svx\svdtypes.hxx
-..\inc\svx\volume3d.hxx %_DEST%\inc%_EXT%\svx\volume3d.hxx
-..\inc\svx\xenum.hxx %_DEST%\inc%_EXT%\svx\xenum.hxx
-..\inc\svx\dialmgr.hxx %_DEST%\inc%_EXT%\svx\dialmgr.hxx
-..\inc\svx\dlgctl3d.hxx %_DEST%\inc%_EXT%\svx\dlgctl3d.hxx
-..\inc\svx\dlgctrl.hxx %_DEST%\inc%_EXT%\svx\dlgctrl.hxx
-..\inc\svx\dialogs.hrc %_DEST%\inc%_EXT%\svx\dialogs.hrc
-..\inc\svx\extrud3d.hxx %_DEST%\inc%_EXT%\svx\extrud3d.hxx
-..\inc\svx\f3dchild.hxx %_DEST%\inc%_EXT%\svx\f3dchild.hxx
-..\inc\svx\fillctrl.hxx %_DEST%\inc%_EXT%\svx\fillctrl.hxx
-..\inc\svx\float3d.hxx %_DEST%\inc%_EXT%\svx\float3d.hxx
-..\inc\svx\fntctl.hxx %_DEST%\inc%_EXT%\svx\fntctl.hxx
-..\inc\svx\fntctrl.hxx %_DEST%\inc%_EXT%\svx\fntctrl.hxx
-..\inc\svx\fntszctl.hxx %_DEST%\inc%_EXT%\svx\fntszctl.hxx
-..\inc\svx\fontwork.hxx %_DEST%\inc%_EXT%\svx\fontwork.hxx
-..\inc\svx\framebordertype.hxx %_DEST%\inc%_EXT%\svx\framebordertype.hxx
-..\inc\svx\framelink.hxx %_DEST%\inc%_EXT%\svx\framelink.hxx
-..\inc\svx\framelinkarray.hxx %_DEST%\inc%_EXT%\svx\framelinkarray.hxx
-..\inc\svx\frmsel.hxx %_DEST%\inc%_EXT%\svx\frmsel.hxx
-..\inc\svx\graphctl.hxx %_DEST%\inc%_EXT%\svx\graphctl.hxx
-..\inc\svx\hdft.hxx %_DEST%\inc%_EXT%\svx\hdft2.hxx
-..\inc\svx\ifaceids.hxx %_DEST%\inc%_EXT%\svx\ifaceids.hxx
-..\inc\svx\itemwin.hxx %_DEST%\inc%_EXT%\svx\itemwin.hxx
-..\inc\svx\langbox.hxx %_DEST%\inc%_EXT%\svx\langbox.hxx
-..\inc\svx\numinf.hxx %_DEST%\inc%_EXT%\svx\numinf.hxx
-..\inc\svx\numfmtsh.hxx %_DEST%\inc%_EXT%\svx\numfmtsh.hxx
-..\inc\svx\obj3d.hxx %_DEST%\inc%_EXT%\svx\obj3d.hxx
-..\inc\svx\pagectrl.hxx %_DEST%\inc%_EXT%\svx\pagectrl.hxx
-..\inc\svx\pageitem.hxx %_DEST%\inc%_EXT%\svx\pageitem.hxx
-..\inc\svx\paraprev.hxx %_DEST%\inc%_EXT%\svx\paraprev.hxx
-..\inc\svx\polysc3d.hxx %_DEST%\inc%_EXT%\svx\polysc3d.hxx
-..\inc\svx\rectenum.hxx %_DEST%\inc%_EXT%\svx\rectenum.hxx
-..\inc\svx\ruler.hxx %_DEST%\inc%_EXT%\svx\ruler.hxx
-..\inc\svx\scene3d.hxx %_DEST%\inc%_EXT%\svx\scene3d.hxx
-..\inc\svx\e3dsceneupdater.hxx %_DEST%\inc%_EXT%\svx\e3dsceneupdater.hxx
-..\inc\svx\sdangitm.hxx %_DEST%\inc%_EXT%\svx\sdangitm.hxx
-..\inc\svx\sderitm.hxx %_DEST%\inc%_EXT%\svx\sderitm.hxx
-..\inc\svx\sdgcoitm.hxx %_DEST%\inc%_EXT%\svx\sdgcoitm.hxx
-..\inc\svx\sdgcpitm.hxx %_DEST%\inc%_EXT%\svx\sdgcpitm.hxx
-..\inc\svx\sdgluitm.hxx %_DEST%\inc%_EXT%\svx\sdgluitm.hxx
-..\inc\svx\sdginitm.hxx %_DEST%\inc%_EXT%\svx\sdginitm.hxx
-..\inc\svx\sdggaitm.hxx %_DEST%\inc%_EXT%\svx\sdggaitm.hxx
-..\inc\svx\sdgmoitm.hxx %_DEST%\inc%_EXT%\svx\sdgmoitm.hxx
-..\inc\svx\sdgtritm.hxx %_DEST%\inc%_EXT%\svx\sdgtritm.hxx
-..\inc\svx\sdmetitm.hxx %_DEST%\inc%_EXT%\svx\sdmetitm.hxx
-..\inc\svx\sdooitm.hxx %_DEST%\inc%_EXT%\svx\sdooitm.hxx
-..\inc\svx\sdprcitm.hxx %_DEST%\inc%_EXT%\svx\sdprcitm.hxx
-..\inc\svx\sdshcitm.hxx %_DEST%\inc%_EXT%\svx\sdshcitm.hxx
-..\inc\svx\sdshitm.hxx %_DEST%\inc%_EXT%\svx\sdshitm.hxx
-..\inc\svx\sdshtitm.hxx %_DEST%\inc%_EXT%\svx\sdshtitm.hxx
-..\inc\svx\sdsxyitm.hxx %_DEST%\inc%_EXT%\svx\sdsxyitm.hxx
-..\inc\svx\sdtaaitm.hxx %_DEST%\inc%_EXT%\svx\sdtaaitm.hxx
-..\inc\svx\sdtacitm.hxx %_DEST%\inc%_EXT%\svx\sdtacitm.hxx
-..\inc\svx\sdtaditm.hxx %_DEST%\inc%_EXT%\svx\sdtaditm.hxx
-..\inc\svx\sdtagitm.hxx %_DEST%\inc%_EXT%\svx\sdtagitm.hxx
-..\inc\svx\sdtaiitm.hxx %_DEST%\inc%_EXT%\svx\sdtaiitm.hxx
-..\inc\svx\sdtfchim.hxx %_DEST%\inc%_EXT%\svx\sdtfchim.hxx
-..\inc\svx\sdtaitm.hxx %_DEST%\inc%_EXT%\svx\sdtaitm.hxx
-..\inc\svx\sdtakitm.hxx %_DEST%\inc%_EXT%\svx\sdtakitm.hxx
-..\inc\svx\sdtayitm.hxx %_DEST%\inc%_EXT%\svx\sdtayitm.hxx
-..\inc\svx\sdtcfitm.hxx %_DEST%\inc%_EXT%\svx\sdtcfitm.hxx
-..\inc\svx\sdtditm.hxx %_DEST%\inc%_EXT%\svx\sdtditm.hxx
-..\inc\svx\sdtfsitm.hxx %_DEST%\inc%_EXT%\svx\sdtfsitm.hxx
-..\inc\svx\sdtmfitm.hxx %_DEST%\inc%_EXT%\svx\sdtmfitm.hxx
-..\inc\svx\sdynitm.hxx %_DEST%\inc%_EXT%\svx\sdynitm.hxx
-..\inc\svx\sphere3d.hxx %_DEST%\inc%_EXT%\svx\sphere3d.hxx
-..\inc\svx\SpellDialogChildWindow.hxx %_DEST%\inc%_EXT%\svx\SpellDialogChildWindow.hxx
-..\inc\svx\stddlg.hxx %_DEST%\inc%_EXT%\svx\stddlg.hxx
-..\inc\svx\strarray.hxx %_DEST%\inc%_EXT%\svx\strarray.hxx
-..\inc\svx\svdattr.hxx %_DEST%\inc%_EXT%\svx\svdattr.hxx
-..\inc\svx\svdattrx.hxx %_DEST%\inc%_EXT%\svx\svdattrx.hxx
-..\inc\svx\svdcrtv.hxx %_DEST%\inc%_EXT%\svx\svdcrtv.hxx
-..\inc\svx\svddrag.hxx %_DEST%\inc%_EXT%\svx\svddrag.hxx
-..\inc\svx\svddrgmt.hxx %_DEST%\inc%_EXT%\svx\svddrgmt.hxx
-..\inc\svx\svddrgv.hxx %_DEST%\inc%_EXT%\svx\svddrgv.hxx
-..\inc\svx\svdedtv.hxx %_DEST%\inc%_EXT%\svx\svdedtv.hxx
-..\inc\svx\svdedxv.hxx %_DEST%\inc%_EXT%\svx\svdedxv.hxx
-..\inc\svx\svdetc.hxx %_DEST%\inc%_EXT%\svx\svdetc.hxx
-..\inc\svx\sdrhittesthelper.hxx %_DEST%\inc%_EXT%\svx\sdrhittesthelper.hxx
-..\inc\svx\svdglev.hxx %_DEST%\inc%_EXT%\svx\svdglev.hxx
-..\inc\svx\svdglue.hxx %_DEST%\inc%_EXT%\svx\svdglue.hxx
-..\inc\svx\svdhdl.hxx %_DEST%\inc%_EXT%\svx\svdhdl.hxx
-..\inc\svx\svdhlpln.hxx %_DEST%\inc%_EXT%\svx\svdhlpln.hxx
-..\inc\svx\svdmark.hxx %_DEST%\inc%_EXT%\svx\svdmark.hxx
-..\inc\svx\svdmodel.hxx %_DEST%\inc%_EXT%\svx\svdmodel.hxx
-..\inc\svx\svdmrkv.hxx %_DEST%\inc%_EXT%\svx\svdmrkv.hxx
-..\inc\svx\svdoattr.hxx %_DEST%\inc%_EXT%\svx\svdoattr.hxx
-..\inc\svx\svdobj.hxx %_DEST%\inc%_EXT%\svx\svdobj.hxx
-..\inc\svx\sdrobjectuser.hxx %_DEST%\inc%_EXT%\svx\sdrobjectuser.hxx
-..\inc\svx\svdocapt.hxx %_DEST%\inc%_EXT%\svx\svdocapt.hxx
-..\inc\svx\svdocirc.hxx %_DEST%\inc%_EXT%\svx\svdocirc.hxx
-..\inc\svx\svdoedge.hxx %_DEST%\inc%_EXT%\svx\svdoedge.hxx
-..\inc\svx\svdograf.hxx %_DEST%\inc%_EXT%\svx\svdograf.hxx
-..\inc\svx\svdogrp.hxx %_DEST%\inc%_EXT%\svx\svdogrp.hxx
-..\inc\svx\svdomeas.hxx %_DEST%\inc%_EXT%\svx\svdomeas.hxx
-..\inc\svx\svdomedia.hxx %_DEST%\inc%_EXT%\svx\svdomedia.hxx
-..\inc\svx\svdoole2.hxx %_DEST%\inc%_EXT%\svx\svdoole2.hxx
-..\inc\svx\svdopage.hxx %_DEST%\inc%_EXT%\svx\svdopage.hxx
-..\inc\svx\svdopath.hxx %_DEST%\inc%_EXT%\svx\svdopath.hxx
-..\inc\svx\svdorect.hxx %_DEST%\inc%_EXT%\svx\svdorect.hxx
-..\inc\svx\svdotext.hxx %_DEST%\inc%_EXT%\svx\svdotext.hxx
-..\inc\svx\svdovirt.hxx %_DEST%\inc%_EXT%\svx\svdovirt.hxx
-..\inc\svx\svdpage.hxx %_DEST%\inc%_EXT%\svx\svdpage.hxx
-..\inc\svx\sdrmasterpagedescriptor.hxx %_DEST%\inc%_EXT%\svx\sdrmasterpagedescriptor.hxx
-..\inc\svx\sdrcomment.hxx %_DEST%\inc%_EXT%\svx\sdrcomment.hxx
-..\inc\svx\sdrpageuser.hxx %_DEST%\inc%_EXT%\svx\sdrpageuser.hxx
-..\inc\svx\svdpagv.hxx %_DEST%\inc%_EXT%\svx\svdpagv.hxx
-..\inc\svx\sdrpagewindow.hxx %_DEST%\inc%_EXT%\svx\sdrpagewindow.hxx
-..\inc\svx\svdpntv.hxx %_DEST%\inc%_EXT%\svx\svdpntv.hxx
-..\inc\svx\svdpoev.hxx %_DEST%\inc%_EXT%\svx\svdpoev.hxx
-..\inc\svx\svdpool.hxx %_DEST%\inc%_EXT%\svx\svdpool.hxx
-..\inc\svx\svdsnpv.hxx %_DEST%\inc%_EXT%\svx\svdsnpv.hxx
-..\inc\svx\svdtrans.hxx %_DEST%\inc%_EXT%\svx\svdtrans.hxx
-..\inc\svx\svdundo.hxx %_DEST%\inc%_EXT%\svx\svdundo.hxx
-..\inc\svx\svdoutl.hxx %_DEST%\inc%_EXT%\svx\svdoutl.hxx
-..\inc\svx\svdview.hxx %_DEST%\inc%_EXT%\svx\svdview.hxx
-..\inc\svx\svdxcgv.hxx %_DEST%\inc%_EXT%\svx\svdxcgv.hxx
-..\inc\svx\svxids.hrc %_DEST%\inc%_EXT%\svx\svxids.hrc
-..\inc\svx\sxallitm.hxx %_DEST%\inc%_EXT%\svx\sxallitm.hxx
-..\inc\svx\sxcaitm.hxx %_DEST%\inc%_EXT%\svx\sxcaitm.hxx
-..\inc\svx\sxcecitm.hxx %_DEST%\inc%_EXT%\svx\sxcecitm.hxx
-..\inc\svx\sxcgitm.hxx %_DEST%\inc%_EXT%\svx\sxcgitm.hxx
-..\inc\svx\sxciaitm.hxx %_DEST%\inc%_EXT%\svx\sxciaitm.hxx
-..\inc\svx\sxcikitm.hxx %_DEST%\inc%_EXT%\svx\sxcikitm.hxx
-..\inc\svx\sxcllitm.hxx %_DEST%\inc%_EXT%\svx\sxcllitm.hxx
-..\inc\svx\sxctitm.hxx %_DEST%\inc%_EXT%\svx\sxctitm.hxx
-..\inc\svx\sxekitm.hxx %_DEST%\inc%_EXT%\svx\sxekitm.hxx
-..\inc\svx\sxelditm.hxx %_DEST%\inc%_EXT%\svx\sxelditm.hxx
-..\inc\svx\sxenditm.hxx %_DEST%\inc%_EXT%\svx\sxenditm.hxx
-..\inc\svx\sxfiitm.hxx %_DEST%\inc%_EXT%\svx\sxfiitm.hxx
-..\inc\svx\sxlayitm.hxx %_DEST%\inc%_EXT%\svx\sxlayitm.hxx
-..\inc\svx\sxlogitm.hxx %_DEST%\inc%_EXT%\svx\sxlogitm.hxx
-..\inc\svx\sxmbritm.hxx %_DEST%\inc%_EXT%\svx\sxmbritm.hxx
-..\inc\svx\sxmfsitm.hxx %_DEST%\inc%_EXT%\svx\sxmfsitm.hxx
-..\inc\svx\sxmkitm.hxx %_DEST%\inc%_EXT%\svx\sxmkitm.hxx
-..\inc\svx\sxmlhitm.hxx %_DEST%\inc%_EXT%\svx\sxmlhitm.hxx
-..\inc\svx\sxmoitm.hxx %_DEST%\inc%_EXT%\svx\sxmoitm.hxx
-..\inc\svx\sxmovitm.hxx %_DEST%\inc%_EXT%\svx\sxmovitm.hxx
-..\inc\svx\sxmsitm.hxx %_DEST%\inc%_EXT%\svx\sxmsitm.hxx
-..\inc\svx\sxmspitm.hxx %_DEST%\inc%_EXT%\svx\sxmspitm.hxx
-..\inc\svx\sxmsuitm.hxx %_DEST%\inc%_EXT%\svx\sxmsuitm.hxx
-..\inc\svx\sxmtaitm.hxx %_DEST%\inc%_EXT%\svx\sxmtaitm.hxx
-..\inc\svx\sxmtfitm.hxx %_DEST%\inc%_EXT%\svx\sxmtfitm.hxx
-..\inc\svx\sxmtpitm.hxx %_DEST%\inc%_EXT%\svx\sxmtpitm.hxx
-..\inc\svx\sxmtritm.hxx %_DEST%\inc%_EXT%\svx\sxmtritm.hxx
-..\inc\svx\sxmuitm.hxx %_DEST%\inc%_EXT%\svx\sxmuitm.hxx
-..\inc\svx\sxoneitm.hxx %_DEST%\inc%_EXT%\svx\sxoneitm.hxx
-..\inc\svx\sxonitm.hxx %_DEST%\inc%_EXT%\svx\sxonitm.hxx
-..\inc\svx\sxopitm.hxx %_DEST%\inc%_EXT%\svx\sxopitm.hxx
-..\inc\svx\sxraitm.hxx %_DEST%\inc%_EXT%\svx\sxraitm.hxx
-..\inc\svx\sxreaitm.hxx %_DEST%\inc%_EXT%\svx\sxreaitm.hxx
-..\inc\svx\sxreoitm.hxx %_DEST%\inc%_EXT%\svx\sxreoitm.hxx
-..\inc\svx\sxroaitm.hxx %_DEST%\inc%_EXT%\svx\sxroaitm.hxx
-..\inc\svx\sxrooitm.hxx %_DEST%\inc%_EXT%\svx\sxrooitm.hxx
-..\inc\svx\sxsaitm.hxx %_DEST%\inc%_EXT%\svx\sxsaitm.hxx
-..\inc\svx\sxsalitm.hxx %_DEST%\inc%_EXT%\svx\sxsalitm.hxx
-..\inc\svx\sxsiitm.hxx %_DEST%\inc%_EXT%\svx\sxsiitm.hxx
-..\inc\svx\sxsoitm.hxx %_DEST%\inc%_EXT%\svx\sxsoitm.hxx
-..\inc\svx\sxtraitm.hxx %_DEST%\inc%_EXT%\svx\sxtraitm.hxx
-..\inc\svx\tbcontrl.hxx %_DEST%\inc%_EXT%\svx\tbcontrl.hxx
-..\inc\svx\unomid.hxx %_DEST%\inc%_EXT%\svx\unomid.hxx
-..\inc\svx\unopage.hxx %_DEST%\inc%_EXT%\svx\unopage.hxx
-..\inc\svx\unoshape.hxx %_DEST%\inc%_EXT%\svx\unoshape.hxx
-..\inc\svx\shapepropertynotifier.hxx %_DEST%\inc%_EXT%\svx\shapepropertynotifier.hxx
-..\inc\svx\shapeproperty.hxx %_DEST%\inc%_EXT%\svx\shapeproperty.hxx
-..\inc\svx\unoprov.hxx %_DEST%\inc%_EXT%\svx\unoprov.hxx
-..\inc\svx\unomod.hxx %_DEST%\inc%_EXT%\svx\unomod.hxx
-..\inc\svx\unomodel.hxx %_DEST%\inc%_EXT%\svx\unomodel.hxx
-..\inc\svx\fmdpage.hxx %_DEST%\inc%_EXT%\svx\fmdpage.hxx
-..\inc\svx\fmsearch.hxx %_DEST%\inc%_EXT%\svx\fmsearch.hxx
-..\inc\svx\view3d.hxx %_DEST%\inc%_EXT%\svx\view3d.hxx
-..\inc\svx\viewpt3d.hxx %_DEST%\inc%_EXT%\svx\viewpt3d.hxx
-..\inc\svx\xbitmap.hxx %_DEST%\inc%_EXT%\svx\xbitmap.hxx
-..\inc\svx\xbtmpit.hxx %_DEST%\inc%_EXT%\svx\xbtmpit.hxx
-..\inc\svx\xcolit.hxx %_DEST%\inc%_EXT%\svx\xcolit.hxx
-..\inc\svx\xdef.hxx %_DEST%\inc%_EXT%\svx\xdef.hxx
-..\inc\svx\xdash.hxx %_DEST%\inc%_EXT%\svx\xdash.hxx
-..\inc\svx\xfillit.hxx %_DEST%\inc%_EXT%\svx\xfillit.hxx
-..\inc\svx\xfillit0.hxx %_DEST%\inc%_EXT%\svx\xfillit0.hxx
-..\inc\svx\xflasit.hxx %_DEST%\inc%_EXT%\svx\xflasit.hxx
-..\inc\svx\xflbckit.hxx %_DEST%\inc%_EXT%\svx\xflbckit.hxx
-..\inc\svx\xflbmpit.hxx %_DEST%\inc%_EXT%\svx\xflbmpit.hxx
-..\inc\svx\xflbmsli.hxx %_DEST%\inc%_EXT%\svx\xflbmsli.hxx
-..\inc\svx\xflbmsxy.hxx %_DEST%\inc%_EXT%\svx\xflbmsxy.hxx
-..\inc\svx\xflbmtit.hxx %_DEST%\inc%_EXT%\svx\xflbmtit.hxx
-..\inc\svx\xflboxy.hxx %_DEST%\inc%_EXT%\svx\xflboxy.hxx
-..\inc\svx\xflbstit.hxx %_DEST%\inc%_EXT%\svx\xflbstit.hxx
-..\inc\svx\xflbtoxy.hxx %_DEST%\inc%_EXT%\svx\xflbtoxy.hxx
-..\inc\svx\xflclit.hxx %_DEST%\inc%_EXT%\svx\xflclit.hxx
-..\inc\svx\xsflclit.hxx %_DEST%\inc%_EXT%\svx\xsflclit.hxx
-..\inc\svx\xflgrit.hxx %_DEST%\inc%_EXT%\svx\xflgrit.hxx
-..\inc\svx\xflftrit.hxx %_DEST%\inc%_EXT%\svx\xflftrit.hxx
-..\inc\svx\xflhtit.hxx %_DEST%\inc%_EXT%\svx\xflhtit.hxx
-..\inc\svx\xfltrit.hxx %_DEST%\inc%_EXT%\svx\xfltrit.hxx
-..\inc\svx\xftadit.hxx %_DEST%\inc%_EXT%\svx\xftadit.hxx
-..\inc\svx\xftdiit.hxx %_DEST%\inc%_EXT%\svx\xftdiit.hxx
-..\inc\svx\xftmrit.hxx %_DEST%\inc%_EXT%\svx\xftmrit.hxx
-..\inc\svx\xftouit.hxx %_DEST%\inc%_EXT%\svx\xftouit.hxx
-..\inc\svx\xftsfit.hxx %_DEST%\inc%_EXT%\svx\xftsfit.hxx
-..\inc\svx\xftshcit.hxx %_DEST%\inc%_EXT%\svx\xftshcit.hxx
-..\inc\svx\xftshit.hxx %_DEST%\inc%_EXT%\svx\xftshit.hxx
-..\inc\svx\xftshtit.hxx %_DEST%\inc%_EXT%\svx\xftshtit.hxx
-..\inc\svx\xftshxy.hxx %_DEST%\inc%_EXT%\svx\xftshxy.hxx
-..\inc\svx\xftstit.hxx %_DEST%\inc%_EXT%\svx\xftstit.hxx
-..\inc\svx\xgrad.hxx %_DEST%\inc%_EXT%\svx\xgrad.hxx
-..\inc\svx\xgrscit.hxx %_DEST%\inc%_EXT%\svx\xgrscit.hxx
-..\inc\svx\xhatch.hxx %_DEST%\inc%_EXT%\svx\xhatch.hxx
-..\inc\svx\xit.hxx %_DEST%\inc%_EXT%\svx\xit.hxx
-..\inc\svx\xlineit.hxx %_DEST%\inc%_EXT%\svx\xlineit.hxx
-..\inc\svx\xlineit.hxx %_DEST%\inc%_EXT%\svx\xlineit.hxx
-..\inc\svx\xlineit0.hxx %_DEST%\inc%_EXT%\svx\xlineit0.hxx
-..\inc\svx\xlineit0.hxx %_DEST%\inc%_EXT%\svx\xlineit0.hxx
-..\inc\svx\xlnasit.hxx %_DEST%\inc%_EXT%\svx\xlnasit.hxx
-..\inc\svx\xlnclit.hxx %_DEST%\inc%_EXT%\svx\xlnclit.hxx
-..\inc\svx\xlndsit.hxx %_DEST%\inc%_EXT%\svx\xlndsit.hxx
-..\inc\svx\xlnedcit.hxx %_DEST%\inc%_EXT%\svx\xlnedcit.hxx
-..\inc\svx\xlnedit.hxx %_DEST%\inc%_EXT%\svx\xlnedit.hxx
-..\inc\svx\xlnedwit.hxx %_DEST%\inc%_EXT%\svx\xlnedwit.hxx
-..\inc\svx\xlnstcit.hxx %_DEST%\inc%_EXT%\svx\xlnstcit.hxx
-..\inc\svx\xlnstit.hxx %_DEST%\inc%_EXT%\svx\xlnstit.hxx
-..\inc\svx\xlnstwit.hxx %_DEST%\inc%_EXT%\svx\xlnstwit.hxx
-..\inc\svx\xlntrit.hxx %_DEST%\inc%_EXT%\svx\xlntrit.hxx
-..\inc\svx\xlnwtit.hxx %_DEST%\inc%_EXT%\svx\xlnwtit.hxx
-..\inc\svx\xpoly.hxx %_DEST%\inc%_EXT%\svx\xpoly.hxx
-..\inc\svx\xpool.hxx %_DEST%\inc%_EXT%\svx\xpool.hxx
-..\inc\svx\xpool.hxx %_DEST%\inc%_EXT%\xpool.hxx
-..\inc\svx\xsetit.hxx %_DEST%\inc%_EXT%\svx\xsetit.hxx
-..\inc\svx\xsetit.hxx %_DEST%\inc%_EXT%\xsetit.hxx
-..\inc\svx\xtable.hxx %_DEST%\inc%_EXT%\svx\xtable.hxx
-..\inc\svx\xtable.hxx %_DEST%\inc%_EXT%\xtable.hxx
-..\inc\svx\xtextit.hxx %_DEST%\inc%_EXT%\svx\xtextit.hxx
-..\inc\svx\xtextit.hxx %_DEST%\inc%_EXT%\xtextit.hxx
-..\inc\svx\xtextit0.hxx %_DEST%\inc%_EXT%\svx\xtextit0.hxx
-..\inc\svx\xtextit0.hxx %_DEST%\inc%_EXT%\xtextit0.hxx
-..\inc\svx\zoomitem.hxx %_DEST%\inc%_EXT%\svx\zoomitem.hxx
-..\inc\svx\viewlayoutitem.hxx %_DEST%\inc%_EXT%\svx\viewlayoutitem.hxx
-..\inc\svx\zoomslideritem.hxx %_DEST%\inc%_EXT%\svx\zoomslideritem.hxx
-..\inc\svx\zoomsliderctrl.hxx %_DEST%\inc%_EXT%\svx\zoomsliderctrl.hxx
-..\inc\svx\extrusioncolorcontrol.hxx %_DEST%\inc%_EXT%\svx\extrusioncolorcontrol.hxx
-
-..\inc\svx\fmmodel.hxx %_DEST%\inc%_EXT%\svx\fmmodel.hxx
-..\inc\svx\fmpage.hxx %_DEST%\inc%_EXT%\svx\fmpage.hxx
-..\inc\svx\fmview.hxx %_DEST%\inc%_EXT%\svx\fmview.hxx
-..\inc\svx\fmglob.hxx %_DEST%\inc%_EXT%\svx\fmglob.hxx
-..\inc\svx\fmshell.hxx %_DEST%\inc%_EXT%\svx\fmshell.hxx
-..\inc\svx\svdouno.hxx %_DEST%\inc%_EXT%\svx\svdouno.hxx
-..\inc\svx\deflt3d.hxx %_DEST%\inc%_EXT%\svx\deflt3d.hxx
-..\inc\svx\AccessibleTextHelper.hxx %_DEST%\inc%_EXT%\svx\AccessibleTextHelper.hxx
-..\inc\svx\e3dundo.hxx %_DEST%\inc%_EXT%\svx\e3dundo.hxx
-..\inc\svx\msdffdef.hxx %_DEST%\inc%_EXT%\svx\msdffdef.hxx
-..\inc\svx\unoshtxt.hxx %_DEST%\inc%_EXT%\svx\unoshtxt.hxx
-..\inc\svx\fmdmod.hxx %_DEST%\inc%_EXT%\svx\fmdmod.hxx
-..\inc\svx\fmgridcl.hxx %_DEST%\inc%_EXT%\svx\fmgridcl.hxx
-..\inc\svx\gridctrl.hxx %_DEST%\inc%_EXT%\svx\gridctrl.hxx
-..\inc\svx\unoshprp.hxx %_DEST%\inc%_EXT%\svx\unoshprp.hxx
-..\inc\svx\sdasaitm.hxx %_DEST%\inc%_EXT%\svx\sdasaitm.hxx
-..\inc\svx\sdasitm.hxx %_DEST%\inc%_EXT%\svx\sdasitm.hxx
-..\inc\svx\grfcrop.hxx %_DEST%\inc%_EXT%\svx\grfcrop.hxx
-..\inc\svx\grfflt.hxx %_DEST%\inc%_EXT%\svx\grfflt.hxx
-..\inc\svx\svx3ditems.hxx %_DEST%\inc%_EXT%\svx\svx3ditems.hxx
-..\inc\svx\dbaexchange.hxx %_DEST%\inc%_EXT%\svx\dbaexchange.hxx
-..\inc\svx\dbaobjectex.hxx %_DEST%\inc%_EXT%\svx\dbaobjectex.hxx
-..\inc\svx\ucsubset.hxx %_DEST%\inc%_EXT%\svx\ucsubset.hxx
-..\inc\svx\ucsubset.hrc %_DEST%\inc%_EXT%\svx\ucsubset.hrc
-..\inc\svx\dataaccessdescriptor.hxx %_DEST%\inc%_EXT%\svx\dataaccessdescriptor.hxx
-..\inc\svx\frmdirlbox.hxx %_DEST%\inc%_EXT%\svx\frmdirlbox.hxx
-..\inc\svx\AccessibleShape.hxx %_DEST%\inc%_EXT%\svx\AccessibleShape.hxx
-..\inc\svx\AccessibleGraphicShape.hxx %_DEST%\inc%_EXT%\svx\AccessibleGraphicShape.hxx
-..\inc\svx\AccessibleOLEShape.hxx %_DEST%\inc%_EXT%\svx\AccessibleOLEShape.hxx
-..\inc\svx\AccessibleShapeTreeInfo.hxx %_DEST%\inc%_EXT%\svx\AccessibleShapeTreeInfo.hxx
-..\inc\svx\AccessibleShapeInfo.hxx %_DEST%\inc%_EXT%\svx\AccessibleShapeInfo.hxx
-..\inc\svx\AccessibleControlShape.hxx %_DEST%\inc%_EXT%\svx\AccessibleControlShape.hxx
-..\inc\svx\IAccessibleViewForwarder.hxx %_DEST%\inc%_EXT%\svx\IAccessibleViewForwarder.hxx
-..\inc\svx\IAccessibleViewForwarderListener.hxx %_DEST%\inc%_EXT%\svx\IAccessibleViewForwarderListener.hxx
-..\inc\svx\IAccessibleParent.hxx %_DEST%\inc%_EXT%\svx\IAccessibleParent.hxx
-..\inc\svx\ChildrenManager.hxx %_DEST%\inc%_EXT%\svx\ChildrenManager.hxx
-..\inc\svx\ShapeTypeHandler.hxx %_DEST%\inc%_EXT%\svx\ShapeTypeHandler.hxx
-..\inc\svx\SvxShapeTypes.hxx %_DEST%\inc%_EXT%\svx\SvxShapeTypes.hxx
-..\inc\svx\svdoashp.hxx %_DEST%\inc%_EXT%\svx\svdoashp.hxx
-..\inc\svx\extrusionbar.hxx %_DEST%\inc%_EXT%\svx\extrusionbar.hxx
-..\inc\svx\fontworkbar.hxx %_DEST%\inc%_EXT%\svx\fontworkbar.hxx
-..\inc\svx\svxdlg.hxx %_DEST%\inc%_EXT%\svx\svxdlg.hxx
-..\inc\svx\tbxcolorupdate.hxx %_DEST%\inc%_EXT%\svx\tbxcolorupdate.hxx
-..\inc\svx\svxdllapi.h %_DEST%\inc%_EXT%\svx\svxdllapi.h
-..\inc\svx\SmartTagMgr.hxx %_DEST%\inc%_EXT%\svx\SmartTagMgr.hxx
-..\inc\svx\SmartTagItem.hxx %_DEST%\inc%_EXT%\svx\SmartTagItem.hxx
-..\inc\svx\SmartTagCtl.hxx %_DEST%\inc%_EXT%\svx\SmartTagCtl.hxx
-..\inc\svx\databaselocationinput.hxx %_DEST%\inc%_EXT%\svx\databaselocationinput.hxx
-..\inc\svx\dbcharsethelper.hxx %_DEST%\inc%_EXT%\svx\dbcharsethelper.hxx
-..\inc\svx\dbtoolsclient.hxx %_DEST%\inc%_EXT%\svx\dbtoolsclient.hxx
-..\inc\svx\sdrobjectfilter.hxx %_DEST%\inc%_EXT%\svx\sdrobjectfilter.hxx
-
-..\inc\svx\subtoolboxcontrol.hxx %_DEST%\inc%_EXT%\svx\subtoolboxcontrol.hxx
-..\inc\svx\svdtext.hxx %_DEST%\inc%_EXT%\svx\svdtext.hxx
-..\inc\svx\svdotable.hxx %_DEST%\inc%_EXT%\svx\svdotable.hxx
-..\inc\svx\selectioncontroller.hxx %_DEST%\inc%_EXT%\svx\selectioncontroller.hxx
-..\inc\svx\helperhittest3d.hxx %_DEST%\inc%_EXT%\svx\helperhittest3d.hxx
mkdir: %_DEST%\inc%_EXT%\svx\sdr
mkdir: %_DEST%\inc%_EXT%\svx\sdr\properties
@@ -491,6 +64,7 @@ mkdir: %_DEST%\inc%_EXT%\svx\sdr\contact
..\inc\svx\sdr\contact\viewobjectcontactredirector.hxx %_DEST%\inc%_EXT%\svx\sdr\contact\viewobjectcontactredirector.hxx
..\inc\svx\sdr\contact\viewobjectcontactofpageobj.hxx %_DEST%\inc%_EXT%\svx\sdr\contact\viewobjectcontactofpageobj.hxx
..\inc\svx\sdr\contact\viewobjectcontactofsdrobj.hxx %_DEST%\inc%_EXT%\svx\sdr\contact\viewobjectcontactofsdrobj.hxx
+..\inc\svx\sdr\contact\vocbitmapbuffer.hxx %_DEST%\inc%_EXT%\svx\sdr\contact\vocbitmapbuffer.hxx
mkdir: %_DEST%\inc%_EXT%\svx\sdr\overlay
..\inc\svx\sdr\overlay\overlayanimatedbitmapex.hxx %_DEST%\inc%_EXT%\svx\sdr\overlay\overlayanimatedbitmapex.hxx
@@ -512,6 +86,10 @@ mkdir: %_DEST%\inc%_EXT%\svx\sdr\primitive2d
..\inc\svx\sdr\primitive2d\sdrprimitivetools.hxx %_DEST%\inc%_EXT%\svx\sdr\primitive2d\sdrprimitivetools.hxx
mkdir: %_DEST%\inc%_EXT%\svx\sdr\animation
+..\inc\svx\sdr\animation\ainfographic.hxx %_DEST%\inc%_EXT%\svx\sdr\animation\ainfographic.hxx
+..\inc\svx\sdr\animation\ainfoscrolltext.hxx %_DEST%\inc%_EXT%\svx\sdr\animation\ainfoscrolltext.hxx
+..\inc\svx\sdr\animation\ainfotext.hxx %_DEST%\inc%_EXT%\svx\sdr\animation\ainfotext.hxx
+..\inc\svx\sdr\animation\animationinfo.hxx %_DEST%\inc%_EXT%\svx\sdr\animation\animationinfo.hxx
..\inc\svx\sdr\animation\animationstate.hxx %_DEST%\inc%_EXT%\svx\sdr\animation\animationstate.hxx
..\inc\svx\sdr\animation\objectanimator.hxx %_DEST%\inc%_EXT%\svx\sdr\animation\objectanimator.hxx
..\inc\svx\sdr\animation\scheduler.hxx %_DEST%\inc%_EXT%\svx\sdr\animation\scheduler.hxx
@@ -546,11 +124,9 @@ mkdir: %_DEST%\inc%_EXT%\svx\sdr\table
..\xml\AccessibleControlShape.xml %_DEST%\xml%_EXT%\AccessibleControlShape.xml
..\xml\AccessibleEditableTextPara.xml %_DEST%\xml%_EXT%\AccessibleEditableTextPara.xml
-..\inc\svx\subtoolboxcontrol.hxx %_DEST%\inc%_EXT%\svx\subtoolboxcontrol.hxx
-..\inc\svx\svdtext.hxx %_DEST%\inc%_EXT%\svx\svdtext.hxx
-..\inc\svx\svdotable.hxx %_DEST%\inc%_EXT%\svx\svdotable.hxx
-..\inc\svx\selectioncontroller.hxx %_DEST%\inc%_EXT%\svx\selectioncontroller.hxx
-..\inc\svx\helperhittest3d.hxx %_DEST%\inc%_EXT%\svx\helperhittest3d.hxx
+..\uiconfig\accelerator\*.xml %_DEST%\xml%_EXT%\uiconfig\global\accelerator\*.xml
+..\uiconfig\accelerator\en-US\*.xml %_DEST%\xml%_EXT%\uiconfig\global\accelerator\en-US\*.xml
+..\uiconfig\accelerator\es\*.xml %_DEST%\xml%_EXT%\uiconfig\global\accelerator\es\*.xml
..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.*
..\%__SRC%\misc\svx.component %_DEST%\xml%_EXT%\svx.component
diff --git a/svx/prj/makefile.mk b/svx/prj/makefile.mk
new file mode 100644
index 000000000000..2a0b99e72fd5
--- /dev/null
+++ b/svx/prj/makefile.mk
@@ -0,0 +1,2 @@
+all:
+ cd .. && make -srj9
diff --git a/svx/prj/target_lib_svx.mk b/svx/prj/target_lib_svx.mk
new file mode 100644
index 000000000000..6810f7f30fed
--- /dev/null
+++ b/svx/prj/target_lib_svx.mk
@@ -0,0 +1,261 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,svx))
+
+$(eval $(call gb_Library_set_include,svx,\
+ $$(SOLARINC) \
+ -I$(WORKDIR)/inc/svx/ \
+ -I$(SRCDIR)/svx/inc \
+ -I$(SRCDIR)/svx/source/inc \
+ -I$(SRCDIR)/svx/inc/pch \
+ -I$(OUTDIR)/inc/offuh \
+ -I$(OUTDIR)/inc \
+))
+
+$(eval $(call gb_Library_set_defs,svx,\
+ $$(DEFS) \
+ -DACCESSIBLE_LAYOUT \
+ -DSVX_DLLIMPLEMENTATION \
+))
+
+$(eval $(call gb_Library_add_linked_libs,svx,\
+ basegfx \
+ sb \
+ comphelper \
+ cppuhelper \
+ cppu \
+ drawinglayer \
+ editeng \
+ i18nisolang1 \
+ icuuc \
+ sal \
+ sfx \
+ sot \
+ svl \
+ svt \
+ svxcore \
+ tk \
+ tl \
+ ucbhelper \
+ utl \
+ vcl \
+ vos3 \
+ xo \
+ xcr \
+ stl \
+))
+
+# svx/source/unodialogs/textconversiondlgs/services \
+# svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog \
+# svx/source/unodialogs/textconversiondlgs/chinese_translationdialog \
+# svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog \
+# svx/source/unodialogs/textconversiondlgs/resid \
+
+
+$(eval $(call gb_Library_add_exception_objects,svx,\
+ svx/source/unodraw/recoveryui \
+ svx/source/unodraw/unoshcol \
+ svx/source/unodraw/unoctabl \
+ svx/source/unodraw/unopool \
+ svx/source/unodraw/UnoNamespaceMap \
+ svx/source/tbxctrls/layctrl \
+ svx/source/tbxctrls/tbxcolor \
+ svx/source/tbxctrls/formatpaintbrushctrl \
+ svx/source/tbxctrls/colrctrl \
+ svx/source/tbxctrls/itemwin \
+ svx/source/tbxctrls/tbxalign \
+ svx/source/tbxctrls/fillctrl \
+ svx/source/tbxctrls/tbunocontroller \
+ svx/source/tbxctrls/subtoolboxcontrol \
+ svx/source/tbxctrls/grafctrl \
+ svx/source/tbxctrls/linectrl \
+ svx/source/tbxctrls/tbxdrctl \
+ svx/source/tbxctrls/verttexttbxctrl \
+ svx/source/tbxctrls/lboxctrl \
+ svx/source/table/tablertfexporter \
+ svx/source/table/tablertfimporter \
+ svx/source/table/accessiblecell \
+ svx/source/table/accessibletableshape \
+ svx/source/table/tabledesign \
+ svx/source/table/celleditsource \
+ svx/source/svdraw/svdoimp \
+ svx/source/svdraw/svdscrol \
+ svx/source/svdraw/ActionDescriptionProvider \
+ svx/source/svdraw/impgrfll \
+ svx/source/items/SmartTagItem \
+ svx/source/items/svxempty \
+ svx/source/items/viewlayoutitem \
+ svx/source/items/zoomslideritem \
+ svx/source/items/hlnkitem \
+ svx/source/items/numfmtsh \
+ svx/source/items/algitem \
+ svx/source/items/zoomitem \
+ svx/source/items/ofaitem \
+ svx/source/items/pageitem \
+ svx/source/items/numinf \
+ svx/source/items/postattr \
+ svx/source/items/rotmodit \
+ svx/source/items/svxerr \
+ svx/source/form/databaselocationinput \
+ svx/source/form/fmsrcimp \
+ svx/source/form/filtnav \
+ svx/source/form/tabwin \
+ svx/source/form/fmsrccfg \
+ svx/source/form/fmobjfac \
+ svx/source/form/tbxform \
+ svx/source/form/fmPropBrw \
+ svx/source/form/dbcharsethelper \
+ svx/source/stbctrls/pszctrl \
+ svx/source/stbctrls/insctrl \
+ svx/source/stbctrls/selctrl \
+ svx/source/stbctrls/xmlsecctrl \
+ svx/source/stbctrls/modctrl \
+ svx/source/stbctrls/zoomsliderctrl \
+ svx/source/stbctrls/zoomctrl \
+ svx/source/gengal/gengal \
+ svx/source/unogallery/unogaltheme \
+ svx/source/unogallery/unogalitem \
+ svx/source/unogallery/unogalthemeprovider \
+ svx/source/mnuctrls/SmartTagCtl \
+ svx/source/mnuctrls/fntctl \
+ svx/source/mnuctrls/clipboardctl \
+ svx/source/mnuctrls/fntszctl \
+ svx/source/fmcomp/dbaobjectex \
+ svx/source/smarttags/SmartTagMgr \
+ svx/source/accessibility/AccessibleOLEShape \
+ svx/source/accessibility/AccessibleShapeTreeInfo \
+ svx/source/accessibility/DGColorNameLookUp \
+ svx/source/accessibility/charmapacc \
+ svx/source/accessibility/AccessibleShape \
+ svx/source/accessibility/AccessibleTextHelper \
+ svx/source/accessibility/svxrectctaccessiblecontext \
+ svx/source/accessibility/AccessibleGraphicShape \
+ svx/source/accessibility/AccessibleEmptyEditSource \
+ svx/source/accessibility/ChildrenManagerImpl \
+ svx/source/accessibility/AccessibleShapeInfo \
+ svx/source/accessibility/DescriptionGenerator \
+ svx/source/accessibility/ShapeTypeHandler \
+ svx/source/accessibility/ChildrenManager \
+ svx/source/accessibility/AccessibleControlShape \
+ svx/source/accessibility/AccessibleTextEventQueue \
+ svx/source/accessibility/AccessibleFrameSelector \
+ svx/source/accessibility/SvxShapeTypes \
+ svx/source/accessibility/GraphCtlAccessibleContext \
+ svx/source/customshapes/tbxcustomshapes \
+ svx/source/engine3d/float3d \
+ svx/source/engine3d/volume3d \
+ svx/source/engine3d/viewpt3d \
+ svx/source/dialog/srchdlg \
+ svx/source/dialog/rubydialog \
+ svx/source/dialog/srchctrl \
+ svx/source/dialog/paraprev \
+ svx/source/dialog/fontwork \
+ svx/source/dialog/framelinkarray \
+ svx/source/dialog/svxbmpnumvalueset \
+ svx/source/dialog/hyperdlg \
+ svx/source/dialog/wrapfield \
+ svx/source/dialog/svxruler \
+ svx/source/dialog/ctredlin \
+ svx/source/dialog/rulritem \
+ svx/source/dialog/dialcontrol \
+ svx/source/dialog/databaseregistrationui \
+ svx/source/dialog/txencbox \
+ svx/source/dialog/charmap \
+ svx/source/dialog/passwd \
+ svx/source/dialog/dlgctrl \
+ svx/source/dialog/hdft \
+ svx/source/dialog/frmdirlbox \
+ svx/source/dialog/fntctrl \
+ svx/source/dialog/docrecovery \
+ svx/source/dialog/checklbx \
+ svx/source/dialog/swframeposstrings \
+ svx/source/dialog/svxgrahicitem \
+ svx/source/dialog/relfld \
+ svx/source/dialog/SpellDialogChildWindow \
+ svx/source/dialog/strarray \
+ svx/source/dialog/prtqry \
+ svx/source/dialog/connctrl \
+ svx/source/dialog/contwnd \
+ svx/source/dialog/pfiledlg \
+ svx/source/dialog/dlgctl3d \
+ svx/source/dialog/hyprlink \
+ svx/source/dialog/grfflt \
+ svx/source/dialog/measctrl \
+ svx/source/dialog/orienthelper \
+ svx/source/dialog/frmsel \
+ svx/source/dialog/swframeexample \
+ svx/source/dialog/_bmpmask \
+ svx/source/dialog/graphctl \
+ svx/source/dialog/rlrcitem \
+ svx/source/dialog/fontlb \
+ svx/source/dialog/optgrid \
+ svx/source/dialog/imapwnd \
+ svx/source/dialog/pagectrl \
+ svx/source/dialog/_contdlg \
+ svx/source/dialog/txenctab \
+ svx/source/dialog/imapdlg \
+ svx/source/customshapes/EnhancedCustomShape3d \
+ svx/source/customshapes/EnhancedCustomShapeHandle \
+ svx/source/customshapes/EnhancedCustomShapeEngine \
+ svx/source/customshapes/EnhancedCustomShapeFontWork \
+))
+
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Library_add_exception_objects,svx,\
+ svx/source/dialog/sendreportunx \
+))
+$(eval $(call gb_Library_add_linked_libs,svx,\
+ dl \
+ m \
+ pthread \
+))
+else
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_linked_libs,svx,\
+ advapi32 \
+ kernel32 \
+ msvcrt \
+ oldnames \
+ user32 \
+ uwinapi \
+$(eval $(call gb_Library_add_exception_objects,svx,\
+ svx/source/dialog/sendreportw32 \
+))
+))
+else
+$(eval $(call gb_Library_add_exception_objects,svx,\
+ svx/source/dialog/sendreportgen \
+))
+endif
+
+$(eval $(call gb_Library_add_linked_libs,svx,\
+ shell \
+))
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/svx/prj/target_lib_svxcore.mk b/svx/prj/target_lib_svxcore.mk
new file mode 100644
index 000000000000..f337588232fb
--- /dev/null
+++ b/svx/prj/target_lib_svxcore.mk
@@ -0,0 +1,449 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,svxcore))
+
+$(eval $(call gb_Library_add_sdi_headers,svx,svx/sdi/svxslots))
+
+$(eval $(call gb_Library_set_include,svxcore,\
+ -I$(SRCDIR)/svx/inc \
+ -I$(SRCDIR)/svx/source/inc \
+ -I$(SRCDIR)/svx/inc/pch \
+ -I$(WORKDIR)/SdiTarget/svx/sdi \
+ $$(INCLUDE) \
+ -I$(OUTDIR)/inc/offuh \
+ -I$(OUTDIR)/inc \
+))
+
+$(eval $(call gb_Library_set_defs,svxcore,\
+ $$(DEFS) \
+ -DACCESSIBLE_LAYOUT \
+ -DSVX_DLLIMPLEMENTATION \
+ -DBOOST_SPIRIT_USE_OLD_NAMESPACE \
+))
+
+$(eval $(call gb_Library_add_linked_libs,svxcore,\
+ avmedia \
+ basegfx \
+ sb \
+ comphelper \
+ cppuhelper \
+ cppu \
+ drawinglayer \
+ editeng \
+ fwe \
+ i18nisolang1 \
+ icuuc \
+ lng \
+ sal \
+ sfx \
+ sot \
+ svl \
+ svt \
+ tk \
+ tl \
+ ucbhelper \
+ utl \
+ vcl \
+ vos3 \
+ xo \
+))
+
+$(eval $(call gb_Library_add_exception_objects,svxcore,\
+ svx/source/sdr/animation/scheduler \
+ svx/source/sdr/animation/objectanimator \
+ svx/source/sdr/animation/animationstate \
+ svx/source/sdr/attribute/sdrlinefillshadowtextattribute \
+ svx/source/sdr/attribute/sdrfilltextattribute \
+ svx/source/sdr/attribute/sdrshadowtextattribute \
+ svx/source/sdr/attribute/sdrtextattribute \
+ svx/source/sdr/attribute/sdrlineshadowtextattribute \
+ svx/source/sdr/attribute/sdrformtextattribute \
+ svx/source/sdr/attribute/sdrformtextoutlineattribute \
+ svx/source/sdr/contact/viewobjectcontactofgroup \
+ svx/source/sdr/contact/viewobjectcontactofsdrpage \
+ svx/source/sdr/contact/viewcontactofpageobj \
+ svx/source/sdr/contact/viewcontactofe3d \
+ svx/source/sdr/contact/viewcontactofe3dcube \
+ svx/source/sdr/contact/viewcontactofsdrmediaobj \
+ svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor \
+ svx/source/sdr/contact/viewobjectcontactofpageobj \
+ svx/source/sdr/contact/viewobjectcontactofe3dscene \
+ svx/source/sdr/contact/viewcontactofgraphic \
+ svx/source/sdr/contact/viewobjectcontactredirector \
+ svx/source/sdr/contact/viewcontactofsdrcircobj \
+ svx/source/sdr/contact/viewcontactofgroup \
+ svx/source/sdr/contact/viewcontactofunocontrol \
+ svx/source/sdr/contact/viewcontactofsdrobjcustomshape \
+ svx/source/sdr/contact/viewcontactofsdrobj \
+ svx/source/sdr/contact/objectcontact \
+ svx/source/sdr/contact/viewcontactoftextobj \
+ svx/source/sdr/contact/viewcontactofe3dlathe \
+ svx/source/sdr/contact/viewcontactofsdrpage \
+ svx/source/sdr/contact/viewcontactofe3dextrude \
+ svx/source/sdr/contact/viewcontactofmasterpagedescriptor \
+ svx/source/sdr/contact/viewcontact \
+ svx/source/sdr/contact/viewcontactofsdrole2obj \
+ svx/source/sdr/contact/displayinfo \
+ svx/source/sdr/contact/objectcontacttools \
+ svx/source/sdr/contact/viewcontactofe3dscene \
+ svx/source/sdr/contact/viewcontactofsdrrectobj \
+ svx/source/sdr/contact/viewobjectcontactofsdrole2obj \
+ svx/source/sdr/contact/viewobjectcontactofunocontrol \
+ svx/source/sdr/contact/viewobjectcontactofgraphic \
+ svx/source/sdr/contact/sdrmediawindow \
+ svx/source/sdr/contact/viewobjectcontactofsdrmediaobj \
+ svx/source/sdr/contact/viewcontactofsdrcaptionobj \
+ svx/source/sdr/contact/viewcontactofvirtobj \
+ svx/source/sdr/contact/viewcontactofe3dsphere \
+ svx/source/sdr/contact/viewcontactofe3dpolygon \
+ svx/source/sdr/contact/viewcontactofsdredgeobj \
+ svx/source/sdr/contact/viewobjectcontact \
+ svx/source/sdr/contact/viewobjectcontactofsdrobj \
+ svx/source/sdr/contact/objectcontactofpageview \
+ svx/source/sdr/contact/viewcontactofsdrpathobj \
+ svx/source/sdr/contact/viewcontactofsdrmeasureobj \
+ svx/source/sdr/contact/objectcontactofobjlistpainter \
+ svx/source/sdr/contact/viewobjectcontactofe3d \
+ svx/source/customshapes/EnhancedCustomShapeGeometry \
+ svx/source/customshapes/EnhancedCustomShapeTypeNames \
+ svx/source/customshapes/EnhancedCustomShape2d \
+ svx/source/customshapes/EnhancedCustomShapeFunctionParser \
+ svx/source/dialog/dialmgr \
+ svx/source/dialog/dlgutil \
+ svx/source/dialog/framelink \
+ svx/source/dialog/langbox \
+ svx/source/dialog/simptabl \
+ svx/source/dialog/svxdlg \
+ svx/source/dialog/stddlg \
+ svx/source/engine3d/deflt3d \
+ svx/source/engine3d/polysc3d \
+ svx/source/engine3d/sphere3d \
+ svx/source/engine3d/helperminimaldepth3d \
+ svx/source/engine3d/obj3d \
+ svx/source/engine3d/dragmt3d \
+ svx/source/engine3d/scene3d \
+ svx/source/engine3d/view3d \
+ svx/source/engine3d/e3dsceneupdater \
+ svx/source/engine3d/viewpt3d2 \
+ svx/source/engine3d/svx3ditems \
+ svx/source/engine3d/camera3d \
+ svx/source/engine3d/e3dundo \
+ svx/source/engine3d/objfac3d \
+ svx/source/engine3d/lathe3d \
+ svx/source/engine3d/polygn3d \
+ svx/source/engine3d/view3d1 \
+ svx/source/engine3d/cube3d \
+ svx/source/engine3d/helperhittest3d \
+ svx/source/engine3d/extrud3d \
+ svx/source/sdr/event/eventhandler \
+ svx/source/fmcomp/gridctrl \
+ svx/source/fmcomp/xmlexchg \
+ svx/source/fmcomp/trace \
+ svx/source/fmcomp/fmgridcl \
+ svx/source/fmcomp/gridcell \
+ svx/source/fmcomp/dbaexchange \
+ svx/source/fmcomp/gridcols \
+ svx/source/fmcomp/fmgridif \
+ svx/source/form/formfeaturedispatcher \
+ svx/source/form/typeconversionclient \
+ svx/source/form/fmpgeimp \
+ svx/source/form/fmcontrolbordermanager \
+ svx/source/form/fmshell \
+ svx/source/form/fmundo \
+ svx/source/form/ParseContext \
+ svx/source/form/fmexpl \
+ svx/source/form/fmtools \
+ svx/source/form/fmexch \
+ svx/source/form/formcontroller \
+ svx/source/form/dataaccessdescriptor \
+ svx/source/form/fmtextcontrolshell \
+ svx/source/form/datalistener \
+ svx/source/form/formcontrolfactory \
+ svx/source/form/sdbdatacolumn \
+ svx/source/form/fmview \
+ svx/source/form/delayedevent \
+ svx/source/form/fmservs \
+ svx/source/form/fmobj \
+ svx/source/form/fmdocumentclassification \
+ svx/source/form/sqlparserclient \
+ svx/source/form/fmshimp \
+ svx/source/form/typemap \
+ svx/source/form/fmscriptingenv \
+ svx/source/form/dbtoolsclient \
+ svx/source/form/fmpage \
+ svx/source/form/stringlistresource \
+ svx/source/form/fmmodel \
+ svx/source/form/formtoolbars \
+ svx/source/form/fmdpage \
+ svx/source/form/fmitems \
+ svx/source/form/navigatortreemodel \
+ svx/source/form/fmvwimp \
+ svx/source/form/fmtextcontrolfeature \
+ svx/source/form/fmdmod \
+ svx/source/form/fmcontrollayout \
+ svx/source/form/fmtextcontroldialogs \
+ svx/source/form/formdispatchinterceptor \
+ svx/source/form/formcontrolling \
+ svx/source/form/navigatortree \
+ svx/source/form/datanavi \
+ svx/source/form/legacyformcontroller \
+ svx/source/form/xfm_addcondition \
+ svx/source/gallery2/galexpl \
+ svx/source/gallery2/galtheme \
+ svx/source/gallery2/galctrl \
+ svx/source/gallery2/gallery1 \
+ svx/source/gallery2/galmisc \
+ svx/source/gallery2/galobj \
+ svx/source/gallery2/galbrws2 \
+ svx/source/gallery2/galbrws \
+ svx/source/gallery2/galbrws1 \
+ svx/source/gallery2/codec \
+ svx/source/items/drawitem \
+ svx/source/items/chrtitem \
+ svx/source/items/e3ditem \
+ svx/source/items/grfitem \
+ svx/source/items/clipfmtitem \
+ svx/source/items/customshapeitem \
+ svx/source/sdr/overlay/overlayline \
+ svx/source/sdr/overlay/overlaycrosshair \
+ svx/source/sdr/overlay/overlayrollingrectangle \
+ svx/source/sdr/overlay/overlaytriangle \
+ svx/source/sdr/overlay/overlayselection \
+ svx/source/sdr/overlay/overlayhatchrect \
+ svx/source/sdr/overlay/overlaybitmapex \
+ svx/source/sdr/overlay/overlaymanagerbuffered \
+ svx/source/sdr/overlay/overlayhelpline \
+ svx/source/sdr/overlay/overlayanimatedbitmapex \
+ svx/source/sdr/overlay/overlaypolypolygon \
+ svx/source/sdr/overlay/overlayobjectcell \
+ svx/source/sdr/overlay/overlaytools \
+ svx/source/sdr/overlay/overlayprimitive2dsequenceobject \
+ svx/source/sdr/overlay/overlayobject \
+ svx/source/sdr/overlay/overlaymanager \
+ svx/source/sdr/overlay/overlayobjectlist \
+ svx/source/sdr/primitive2d/sdrellipseprimitive2d \
+ svx/source/sdr/primitive2d/sdrprimitivetools \
+ svx/source/sdr/primitive2d/sdrtextprimitive2d \
+ svx/source/sdr/primitive2d/primitivefactory2d \
+ svx/source/sdr/primitive2d/sdrolecontentprimitive2d \
+ svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d \
+ svx/source/sdr/primitive2d/sdrgrafprimitive2d \
+ svx/source/sdr/primitive2d/sdrole2primitive2d \
+ svx/source/sdr/primitive2d/sdrpathprimitive2d \
+ svx/source/sdr/primitive2d/sdrrectangleprimitive2d \
+ svx/source/sdr/primitive2d/sdrcaptionprimitive2d \
+ svx/source/sdr/primitive2d/sdrconnectorprimitive2d \
+ svx/source/sdr/primitive2d/sdrmeasureprimitive2d \
+ svx/source/sdr/primitive2d/sdrattributecreator \
+ svx/source/sdr/primitive2d/sdrdecompositiontools \
+ svx/source/sdr/primitive3d/sdrattributecreator3d \
+ svx/source/sdr/properties/pageproperties \
+ svx/source/sdr/properties/e3dsceneproperties \
+ svx/source/sdr/properties/itemsettools \
+ svx/source/sdr/properties/captionproperties \
+ svx/source/sdr/properties/e3dextrudeproperties \
+ svx/source/sdr/properties/e3dproperties \
+ svx/source/sdr/properties/measureproperties \
+ svx/source/sdr/properties/customshapeproperties \
+ svx/source/sdr/properties/rectangleproperties \
+ svx/source/sdr/properties/groupproperties \
+ svx/source/sdr/properties/properties \
+ svx/source/sdr/properties/e3dlatheproperties \
+ svx/source/sdr/properties/graphicproperties \
+ svx/source/sdr/properties/circleproperties \
+ svx/source/sdr/properties/emptyproperties \
+ svx/source/sdr/properties/e3dsphereproperties \
+ svx/source/sdr/properties/defaultproperties \
+ svx/source/sdr/properties/textproperties \
+ svx/source/sdr/properties/attributeproperties \
+ svx/source/sdr/properties/connectorproperties \
+ svx/source/sdr/properties/e3dcompoundproperties \
+ svx/source/sdr/properties/oleproperties \
+ svx/source/svdraw/svdglev \
+ svx/source/svdraw/svdhdl \
+ svx/source/svdraw/svdomedia \
+ svx/source/svdraw/svdedxv \
+ svx/source/svdraw/svdoedge \
+ svx/source/svdraw/svdundo \
+ svx/source/svdraw/svdmrkv1 \
+ svx/source/svdraw/svdotxfl \
+ svx/source/svdraw/sdrcomment \
+ svx/source/svdraw/svdcrtv \
+ svx/source/svdraw/svdouno \
+ svx/source/svdraw/svditer \
+ svx/source/svdraw/svdotxln \
+ svx/source/svdraw/svdxcgv \
+ svx/source/svdraw/svdomeas \
+ svx/source/svdraw/svdpntv \
+ svx/source/svdraw/svdattr \
+ svx/source/svdraw/svdotxdr \
+ svx/source/svdraw/svdtext \
+ svx/source/svdraw/svdedtv2 \
+ svx/source/svdraw/svddrag \
+ svx/source/svdraw/svdopage \
+ svx/source/svdraw/svddrgmt \
+ svx/source/svdraw/svdogrp \
+ svx/source/svdraw/svdovirt \
+ svx/source/svdraw/svddrgv \
+ svx/source/svdraw/sdrpaintwindow \
+ svx/source/svdraw/polypolygoneditor \
+ svx/source/svdraw/svdpoev \
+ svx/source/svdraw/svdotextpathdecomposition \
+ svx/source/svdraw/svdmrkv \
+ svx/source/svdraw/svdview \
+ svx/source/svdraw/svdoashp \
+ svx/source/svdraw/svdoutlinercache \
+ svx/source/svdraw/svdetc \
+ svx/source/svdraw/svdlayer \
+ svx/source/svdraw/svdfmtf \
+ svx/source/svdraw/gradtrns \
+ svx/source/svdraw/svdotxed \
+ svx/source/svdraw/svdhlpln \
+ svx/source/svdraw/svdedtv \
+ svx/source/svdraw/svdmodel \
+ svx/source/svdraw/svdopath \
+ svx/source/svdraw/svdtrans \
+ svx/source/svdraw/svdpagv \
+ svx/source/svdraw/svdorect \
+ svx/source/svdraw/svdedtv1 \
+ svx/source/svdraw/svdograf \
+ svx/source/svdraw/sdrhittesthelper \
+ svx/source/svdraw/svdglue \
+ svx/source/svdraw/svdobj \
+ svx/source/svdraw/svdsnpv \
+ svx/source/svdraw/svdotext \
+ svx/source/svdraw/svdoattr \
+ svx/source/svdraw/svdviter \
+ svx/source/svdraw/svdpage \
+ svx/source/svdraw/svdoole2 \
+ svx/source/svdraw/svdibrow \
+ svx/source/svdraw/sdrmasterpagedescriptor \
+ svx/source/svdraw/svdocapt \
+ svx/source/svdraw/svdmark \
+ svx/source/svdraw/svdocirc \
+ svx/source/svdraw/selectioncontroller \
+ svx/source/svdraw/clonelist \
+ svx/source/svdraw/svdotxtr \
+ svx/source/svdraw/svdoutl \
+ svx/source/svdraw/sdrpagewindow \
+ svx/source/svdraw/svdotxat \
+ svx/source/svdraw/svdotextdecomposition \
+ svx/source/table/tablecontroller \
+ svx/source/table/tablerow \
+ svx/source/table/tablelayouter \
+ svx/source/table/tablecolumn \
+ svx/source/table/tablemodel \
+ svx/source/table/svdotable \
+ svx/source/table/cellcursor \
+ svx/source/table/propertyset \
+ svx/source/table/tablecolumns \
+ svx/source/table/viewcontactoftableobj \
+ svx/source/table/cellrange \
+ svx/source/table/tableundo \
+ svx/source/table/tablerows \
+ svx/source/table/tablehandles \
+ svx/source/table/cell \
+ svx/source/tbxctrls/fontworkgallery \
+ svx/source/tbxctrls/extrusioncontrols \
+ svx/source/tbxctrls/tbcontrl \
+ svx/source/tbxctrls/toolbarmenu \
+ svx/source/tbxctrls/tbxcolorupdate \
+ svx/source/toolbars/fontworkbar \
+ svx/source/toolbars/extrusionbar \
+ svx/source/unodraw/unoshap4 \
+ svx/source/unodraw/unomlstr \
+ svx/source/unodraw/unoshtxt \
+ svx/source/unodraw/gluepts \
+ svx/source/unodraw/shapepropertynotifier \
+ svx/source/unodraw/tableshape \
+ svx/source/unodraw/unohtabl \
+ svx/source/unodraw/unoshape \
+ svx/source/unodraw/UnoGraphicExporter \
+ svx/source/unodraw/unobtabl \
+ svx/source/unodraw/XPropertyTable \
+ svx/source/unodraw/unoshap3 \
+ svx/source/unodraw/unottabl \
+ svx/source/unodraw/UnoNameItemTable \
+ svx/source/unodraw/unogtabl \
+ svx/source/unodraw/unomod \
+ svx/source/unodraw/unopage \
+ svx/source/unodraw/unoprov \
+ svx/source/unodraw/unomtabl \
+ svx/source/unodraw/unoshap2 \
+ svx/source/unodraw/unodtabl \
+ svx/source/xml/xmlexport \
+ svx/source/xml/xmlgrhlp \
+ svx/source/xml/xmlxtimp \
+ svx/source/xml/xmlxtexp \
+ svx/source/xml/xmleohlp \
+ svx/source/xoutdev/xtablend \
+ svx/source/xoutdev/xattr \
+ svx/source/xoutdev/xtabgrdt \
+ svx/source/xoutdev/xtabhtch \
+ svx/source/xoutdev/_xoutbmp \
+ svx/source/xoutdev/xtabdash \
+ svx/source/xoutdev/xtabbtmp \
+ svx/source/xoutdev/xexch \
+ svx/source/xoutdev/xtabcolr \
+ svx/source/xoutdev/xattr2 \
+ svx/source/xoutdev/xtable \
+ svx/source/xoutdev/xattrbmp \
+ svx/source/xoutdev/_xpoly \
+ svx/source/xoutdev/xpool \
+))
+
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Library_add_linked_libs,svxcore,\
+ dl \
+ m \
+ pthread \
+ stl \
+))
+endif
+
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_linked_libs,svxcore,\
+ advapi32 \
+ kernel32 \
+ msvcrt \
+ oldnames \
+ user32 \
+ uwinapi \
+))
+endif
+
+$(eval $(call gb_SdiTarget_SdiTarget,svx/sdi/svxslots,svx/sdi/svx))
+
+
+$(eval $(call gb_SdiTarget_set_include,svx/sdi/svxslots,\
+ $$(INCLUDE) \
+ -I$(SRCDIR)/svx/inc \
+ -I$(SRCDIR)/svx/sdi \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/svx/prj/target_module_svx.mk b/svx/prj/target_module_svx.mk
new file mode 100644
index 000000000000..5978c97e5500
--- /dev/null
+++ b/svx/prj/target_module_svx.mk
@@ -0,0 +1,52 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Module_Module,svx,\
+ $(call gb_AllLangResTarget_get_target,svx) \
+ $(call gb_Library_get_target,svxcore) \
+ $(call gb_Library_get_target,svx) \
+))
+
+$(eval $(call gb_Module_read_includes,svx,\
+ lib_svx \
+ lib_svxcore \
+ res_svx \
+))
+
+#todo: noopt for EnhanceCustomShapesFunctionParser.cxx on Solaris Sparc and MacOSX
+#todo: -DBOOST_SPIRIT_USE_OLD_NAMESPACE only in CustomShapes
+#todo: -DUNICODE and -D_UNICODE on WNT for source/dialog
+#todo: noopt for viewpt3d.cxx with MSVC and ICC
+#todo: set -DENABLE_VBA in case $(ENABLE_VBA)="YES"; can we do it in gbuild.mk?
+#todo: gengal
+#todo: set -D... for ENABLE_GTK/KDE/KDE4 -> in gbuild.mk?
+#todo: ibrwimp.lib in util/makefile.mk on Windows ?!
+#todo: GENHID
+#todo: uiconfig
+#todo: exports from gallery (util/gal.dxp) and svx (svx.dxp)
+#todo: resources, textconversion, packages
+
diff --git a/svx/prj/target_package_inc.mk b/svx/prj/target_package_inc.mk
new file mode 100644
index 000000000000..dd836b286f8b
--- /dev/null
+++ b/svx/prj/target_package_inc.mk
@@ -0,0 +1,154 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Package_Package,sfx2_inc,$(SRCDIR)/sfx2/inc))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/DocumentMetadataAccess.hxx,sfx2/DocumentMetadataAccess.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/Metadatable.hxx,sfx2/Metadatable.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/QuerySaveDocument.hxx,sfx2/QuerySaveDocument.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/XmlIdRegistry.hxx,sfx2/XmlIdRegistry.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/app.hxx,sfx2/app.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/app.hxx,sfx2/app.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/appuno.hxx,sfx2/appuno.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/basedlgs.hxx,sfx2/basedlgs.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/basmgr.hxx,sfx2/basmgr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/bindings.hxx,sfx2/bindings.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/brokenpackageint.hxx,sfx2/brokenpackageint.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/chalign.hxx,sfx2/chalign.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/childwin.hxx,sfx2/childwin.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/cntids.hrc,sfx2/cntids.hrc))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/controlwrapper.hxx,sfx2/controlwrapper.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/ctrlitem.hxx,sfx2/ctrlitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dialogs.hrc,sfx2/dialogs.hrc))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dinfdlg.hxx,sfx2/dinfdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dinfedt.hxx,sfx2/dinfedt.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dispatch.hxx,sfx2/dispatch.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dllapi.h,sfx2/dllapi.h))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docfac.hxx,sfx2/docfac.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docfile.hxx,sfx2/docfile.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docfilt.hxx,sfx2/docfilt.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docinf.hxx,sfx2/docinf.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docinsert.hxx,sfx2/docinsert.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dockwin.hxx,sfx2/dockwin.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docmacromode.hxx,sfx2/docmacromode.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docstoragemodifylistener.hxx,sfx2/docstoragemodifylistener.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/doctdlg.hxx,sfx2/doctdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/doctempl.hxx,sfx2/doctempl.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/event.hxx,sfx2/event.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/evntconf.hxx,sfx2/evntconf.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/fcontnr.hxx,sfx2/fcontnr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/filedlghelper.hxx,sfx2/filedlghelper.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/frame.hxx,sfx2/frame.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/frmdescr.hxx,sfx2/frmdescr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/frmhtml.hxx,sfx2/frmhtml.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/frmhtmlw.hxx,sfx2/frmhtmlw.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/genlink.hxx,sfx2/genlink.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/hintpost.hxx,sfx2/hintpost.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/imagemgr.hxx,sfx2/imagemgr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/imgdef.hxx,sfx2/imgdef.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/imgmgr.hxx,sfx2/imgmgr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/ipclient.hxx,sfx2/ipclient.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/itemconnect.hxx,sfx2/itemconnect.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/itemwrapper.hxx,sfx2/itemwrapper.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/layout-post.hxx,sfx2/layout-post.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/layout-pre.hxx,sfx2/layout-pre.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/layout-tabdlg.hxx,sfx2/layout-tabdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/layout.hxx,sfx2/layout.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/linkmgr.hxx,sfx2/linkmgr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/linksrc.hxx,sfx2/linksrc.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/lnkbase.hxx,sfx2/lnkbase.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/macrconf.hxx,sfx2/macrconf.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mailmodelapi.hxx,sfx2/mailmodelapi.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mgetempl.hxx,sfx2/mgetempl.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mieclip.hxx,sfx2/mieclip.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/minarray.hxx,sfx2/minarray.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/minfitem.hxx,sfx2/minfitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/minstack.hxx,sfx2/minstack.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mnuitem.hxx,sfx2/mnuitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mnumgr.hxx,sfx2/mnumgr.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/module.hxx,sfx2/module.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/msg.hxx,sfx2/msg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/msgpool.hxx,sfx2/msgpool.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/navigat.hxx,sfx2/navigat.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/new.hxx,sfx2/new.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/newstyle.hxx,sfx2/newstyle.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/objface.hxx,sfx2/objface.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/objitem.hxx,sfx2/objitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/objsh.hxx,sfx2/objsh.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/opengrf.hxx,sfx2/opengrf.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/passwd.hxx,sfx2/passwd.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/printer.hxx,sfx2/printer.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/printopt.hxx,sfx2/printopt.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/prnmon.hxx,sfx2/prnmon.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/progress.hxx,sfx2/progress.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/querystatus.hxx,sfx2/querystatus.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/request.hxx,sfx2/request.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfx.hrc,sfx2/sfx.hrc))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxbasecontroller.hxx,sfx2/sfxbasecontroller.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxbasemodel.hxx,sfx2/sfxbasemodel.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxdefs.hxx,sfx2/sfxdefs.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxdlg.hxx,sfx2/sfxdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxhelp.hxx,sfx2/sfxhelp.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxhtml.hxx,sfx2/sfxhtml.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxmodelfactory.hxx,sfx2/sfxmodelfactory.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxresid.hxx,sfx2/sfxresid.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxsids.hrc,sfx2/sfxsids.hrc))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxstatuslistener.hxx,sfx2/sfxstatuslistener.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/sfxuno.hxx,sfx2/sfxuno.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/shell.hxx,sfx2/shell.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/signaturestate.hxx,sfx2/signaturestate.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/stbitem.hxx,sfx2/stbitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/styfitem.hxx,sfx2/styfitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/styledlg.hxx,sfx2/styledlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/tabdlg.hxx,sfx2/tabdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/tbxctrl.hxx,sfx2/tbxctrl.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/templdlg.hxx,sfx2/templdlg.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/tplpitem.hxx,sfx2/tplpitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/unoctitm.hxx,sfx2/unoctitm.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/userinputinterception.hxx,sfx2/userinputinterception.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/viewfac.hxx,sfx2/viewfac.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/viewfrm.hxx,sfx2/viewfrm.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/viewsh.hxx,sfx2/viewsh.hxx))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/svx/prj/target_res_svx.mk b/svx/prj/target_res_svx.mk
new file mode 100644
index 000000000000..67d3cfab1cc1
--- /dev/null
+++ b/svx/prj/target_res_svx.mk
@@ -0,0 +1,112 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_AllLangResTarget_AllLangResTarget,svx))
+
+$(eval $(call gb_AllLangResTarget_set_reslocation,svx,svx))
+#$(eval $(call gb_AllLangResTarget_set_reslocation,svx,svx/source/svdraw))
+
+$(eval $(call gb_AllLangResTarget_add_srs,svx,\
+ svx/res \
+))
+
+$(eval $(call gb_SrsTarget_SrsTarget,svx/res))
+
+$(eval $(call gb_SrsTarget_set_include,svx/res,\
+ $$(INCLUDE) \
+ -I$(OUTDIR)/inc \
+ -I$(WORKDIR)/inc \
+ -I$(SRCDIR)/svx/source/inc \
+ -I$(SRCDIR)/svx/source/dialog \
+ -I$(SRCDIR)/svx/inc/ \
+ -I$(SRCDIR)/svx/unxlngi6.pro/inc/ \
+))
+
+#svx/source/src/errtxt.src
+#svx/source/src/app.src
+
+#svx/source/intro/iso.src
+#svx/source/intro/ooo.src
+
+#svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.src
+#svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.src
+
+$(eval $(call gb_SrsTarget_add_files,svx/res,\
+ svx/source/stbctrls/stbctrls.src \
+ svx/source/dialog/passwd.src \
+ svx/source/dialog/language.src \
+ svx/source/dialog/bmpmask.src \
+ svx/source/dialog/ucsubset.src \
+ svx/source/dialog/hdft.src \
+ svx/source/dialog/imapdlg.src \
+ svx/source/dialog/swframeposstrings.src \
+ svx/source/dialog/prtqry.src \
+ svx/source/dialog/txenctab.src \
+ svx/source/dialog/dlgctrl.src \
+ svx/source/dialog/frmsel.src \
+ svx/source/dialog/ctredlin.src \
+ svx/source/dialog/sdstring.src \
+ svx/source/dialog/ruler.src \
+ svx/source/dialog/srchdlg.src \
+ svx/source/dialog/optgrid.src \
+ svx/source/dialog/langbox.src \
+ svx/source/dialog/contdlg.src \
+ svx/source/dialog/rubydialog.src \
+ svx/source/dialog/fontwork.src \
+ svx/source/dialog/docrecovery.src \
+ svx/source/dialog/hyprlink.src \
+ svx/source/dialog/svxbmpnumvalueset.src \
+ svx/source/engine3d/string3d.src \
+ svx/source/engine3d/float3d.src \
+ svx/source/mnuctrls/mnuctrls.src \
+ svx/source/tbxctrls/linectrl.src \
+ svx/source/tbxctrls/colrctrl.src \
+ svx/source/tbxctrls/extrusioncontrols.src \
+ svx/source/tbxctrls/tbxdraw.src \
+ svx/source/tbxctrls/grafctrl.src \
+ svx/source/tbxctrls/lboxctrl.src \
+ svx/source/tbxctrls/tbcontrl.src \
+ svx/source/tbxctrls/fontworkgallery.src \
+ svx/source/fmcomp/gridctrl.src \
+ svx/source/form/fmexpl.src \
+ svx/source/form/formshell.src \
+ svx/source/form/fmstring.src \
+ svx/source/form/datanavi.src \
+ svx/source/form/filtnav.src \
+ svx/source/unodraw/unodraw.src \
+ svx/source/table/table.src \
+ svx/source/toolbars/extrusionbar.src \
+ svx/source/toolbars/fontworkbar.src \
+ svx/source/gallery2/galtheme.src \
+ svx/source/gallery2/gallery.src \
+ svx/source/svdraw/svdstr.src \
+ svx/source/accessibility/accessibility.src \
+ svx/source/items/svxitems.src \
+ svx/source/items/svxerr.src \
+))
+
+
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 87eb3062833b..a3b4c9a9ca21 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -15108,3 +15108,31 @@ SfxVoidItem InsertRowDialog SID_TABLE_INSERT_ROW_DLG
ToolBoxConfig = FALSE,
GroupId = GID_TABLE;
]
+//--------------------------------------------------------------------------
+SfxVoidItem PrepareMailExport SID_MAIL_PREPAREEXPORT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Synchron;
+
+ /* status: */
+ SlotType = SfxBoolItem
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EXPLORER;
+]
+
diff --git a/svx/source/accessibility/AccessibleControlShape.cxx b/svx/source/accessibility/AccessibleControlShape.cxx
index 610f219c21cf..2bca7593f423 100644
--- a/svx/source/accessibility/AccessibleControlShape.cxx
+++ b/svx/source/accessibility/AccessibleControlShape.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include <svx/AccessibleControlShape.hxx>
#include <svx/AccessibleShapeInfo.hxx>
-#include "DescriptionGenerator.hxx"
+#include "svx/DescriptionGenerator.hxx"
#include <com/sun/star/drawing/XControlShape.hpp>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
@@ -39,14 +39,14 @@
#include <comphelper/processfactory.hxx>
#include <unotools/accessiblestatesethelper.hxx>
#include <svx/svdouno.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <svx/ShapeTypeHandler.hxx>
#include <svx/SvxShapeTypes.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <comphelper/accessiblewrapper.hxx>
#include <svx/svdview.hxx>
#include <svx/svdpagv.hxx>
-#include "svdstr.hrc"
+#include "svx/svdstr.hrc"
#include <algorithm>
using namespace ::comphelper;
diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
index 28cdb8b0882b..4c1869f6997a 100755
--- a/svx/source/accessibility/AccessibleShape.cxx
+++ b/svx/source/accessibility/AccessibleShape.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
#include <svx/AccessibleShape.hxx>
-#include "DescriptionGenerator.hxx"
+#include "svx/DescriptionGenerator.hxx"
#include <svx/AccessibleShapeInfo.hxx>
#include <com/sun/star/view/XSelectionSupplier.hpp>
#include <rtl/uuid.h>
@@ -51,7 +51,7 @@
#include <svx/unoshtxt.hxx>
#include <svx/svdobj.hxx>
#include <svx/svdmodel.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <com/sun/star/uno/Exception.hpp>
#include <svx/ShapeTypeHandler.hxx>
#include <svx/SvxShapeTypes.hxx>
@@ -59,7 +59,7 @@
#ifndef _SVX_ACCESSIBILITY_HRC
#include "accessibility.hrc"
#endif
-#include "svdstr.hrc"
+#include "svx/svdstr.hrc"
#include <svx/dialmgr.hxx>
#include <vcl/svapp.hxx>
#include <unotools/accessiblestatesethelper.hxx>
diff --git a/svx/source/accessibility/DescriptionGenerator.cxx b/svx/source/accessibility/DescriptionGenerator.cxx
index 010bc5decfeb..8587639fa1fa 100644
--- a/svx/source/accessibility/DescriptionGenerator.cxx
+++ b/svx/source/accessibility/DescriptionGenerator.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "DescriptionGenerator.hxx"
+#include "svx/DescriptionGenerator.hxx"
#include <com/sun/star/beans/PropertyState.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/XPropertyState.hpp>
@@ -52,12 +52,12 @@
#ifndef _SVX_ACCESSIBILITY_HRC
#include "accessibility.hrc"
#endif
-#include "svdstr.hrc"
+#include "svx/svdstr.hrc"
#include <svx/dialmgr.hxx>
#include <tools/string.hxx>
#include <svx/xdef.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include "accessibility.hrc"
#include "DGColorNameLookUp.hxx"
diff --git a/svx/source/accessibility/GraphCtlAccessibleContext.cxx b/svx/source/accessibility/GraphCtlAccessibleContext.cxx
index b0523bda67e1..0119e7c71cbf 100644
--- a/svx/source/accessibility/GraphCtlAccessibleContext.cxx
+++ b/svx/source/accessibility/GraphCtlAccessibleContext.cxx
@@ -45,7 +45,7 @@
#include <toolkit/helper/convert.hxx>
#include <svtools/colorcfg.hxx>
#include <comphelper/accessibleeventnotifier.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
//===== local includes ========================================================
#include <svx/ShapeTypeHandler.hxx>
diff --git a/svx/source/accessibility/ShapeTypeHandler.cxx b/svx/source/accessibility/ShapeTypeHandler.cxx
index 228f2ed50492..4a4cad786b58 100755
--- a/svx/source/accessibility/ShapeTypeHandler.cxx
+++ b/svx/source/accessibility/ShapeTypeHandler.cxx
@@ -35,7 +35,7 @@
#include <vos/mutex.hxx>
#include <vcl/svapp.hxx>
#include <svx/dialmgr.hxx>
-#include "svdstr.hrc"
+#include "svx/svdstr.hrc"
using namespace ::rtl;
diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx
index 36490775cea1..6224373f9a15 100644
--- a/svx/source/customshapes/EnhancedCustomShape2d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx
@@ -27,9 +27,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "EnhancedCustomShape2d.hxx"
-#include "EnhancedCustomShapeGeometry.hxx"
-#include "EnhancedCustomShapeTypeNames.hxx"
+#include "svx/EnhancedCustomShape2d.hxx"
+#include "svx/EnhancedCustomShapeGeometry.hxx"
+#include "svx/EnhancedCustomShapeTypeNames.hxx"
#include <svx/svdoashp.hxx>
#include <svx/svdtrans.hxx>
#include <svx/svdocirc.hxx>
diff --git a/svx/source/customshapes/EnhancedCustomShape3d.cxx b/svx/source/customshapes/EnhancedCustomShape3d.cxx
index 059bb8f43b5c..3545805f4966 100644
--- a/svx/source/customshapes/EnhancedCustomShape3d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape3d.cxx
@@ -31,7 +31,7 @@
#include <svx/svdetc.hxx>
#include <svx/svdmodel.hxx>
#include <tools/poly.hxx>
-#include <svditer.hxx>
+#include <svx/svditer.hxx>
#include <svx/svdobj.hxx>
#include <svx/svdoashp.hxx>
#include <svl/poolitem.hxx>
diff --git a/svx/source/customshapes/EnhancedCustomShapeEngine.cxx b/svx/source/customshapes/EnhancedCustomShapeEngine.cxx
index 237a0537d472..ae7a1398c9e7 100644
--- a/svx/source/customshapes/EnhancedCustomShapeEngine.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeEngine.cxx
@@ -28,16 +28,16 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
#include "EnhancedCustomShapeEngine.hxx"
-#include "EnhancedCustomShape2d.hxx"
+#include "svx/EnhancedCustomShape2d.hxx"
#include "EnhancedCustomShape3d.hxx"
#include "EnhancedCustomShapeFontWork.hxx"
#include "EnhancedCustomShapeHandle.hxx"
-#include "EnhancedCustomShapeGeometry.hxx"
+#include "svx/EnhancedCustomShapeGeometry.hxx"
#include <svx/unoshape.hxx>
#ifndef _SVX_UNOPAGE_HXX
#include "svx/unopage.hxx"
#endif
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <svx/svdobj.hxx>
#include <svx/svdoashp.hxx>
#include <svx/svdogrp.hxx>
@@ -49,7 +49,7 @@
#include <svx/svdopath.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdmodel.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include "unopolyhelper.hxx"
#include <uno/mapping.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
diff --git a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
index 06c7098400a3..5a24cb1fd75d 100644
--- a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
@@ -38,7 +38,7 @@
#include <svx/sdasaitm.hxx>
#include <svx/sdtfsitm.hxx>
#include <vcl/virdev.hxx>
-#include <svditer.hxx>
+#include <svx/svditer.hxx>
#include <vcl/metric.hxx>
#include <editeng/eeitem.hxx>
#include <editeng/frmdiritem.hxx>
@@ -46,7 +46,7 @@
#include <editeng/postitem.hxx>
#include <editeng/wghtitem.hxx>
#include <editeng/charscaleitem.hxx>
-#include "EnhancedCustomShapeTypeNames.hxx"
+#include "svx/EnhancedCustomShapeTypeNames.hxx"
#include <svx/svdorect.hxx>
#include <svx/svdoashp.hxx>
#include <editeng/outliner.hxx>
diff --git a/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx b/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx
index a00a625693c4..dafd0d868963 100644..100755
--- a/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "EnhancedCustomShape2d.hxx"
+#include "svx/EnhancedCustomShape2d.hxx"
#include <rtl/ustring.hxx>
#include <tools/fract.hxx>
diff --git a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
index aa8d7c253e6e..2bf28c81ca18 100644
--- a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "EnhancedCustomShapeGeometry.hxx"
+#include "svx/EnhancedCustomShapeGeometry.hxx"
#include <com/sun/star/drawing/EnhancedCustomShapeGluePointType.hpp>
/*
static const SvxMSDffVertPair Vert[] =
diff --git a/svx/source/customshapes/EnhancedCustomShapeHandle.cxx b/svx/source/customshapes/EnhancedCustomShapeHandle.cxx
index 0a87ad57d660..92104f0ae82e 100644
--- a/svx/source/customshapes/EnhancedCustomShapeHandle.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeHandle.cxx
@@ -28,8 +28,8 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
#include "EnhancedCustomShapeHandle.hxx"
-#include "EnhancedCustomShape2d.hxx"
-#include "unoapi.hxx"
+#include "svx/EnhancedCustomShape2d.hxx"
+#include "svx/unoapi.hxx"
// -----------------------------------------------------------------------------
diff --git a/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx b/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx
index c3651f3b54cf..093bae0d2a2d 100644
--- a/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "EnhancedCustomShapeTypeNames.hxx"
+#include "svx/EnhancedCustomShapeTypeNames.hxx"
#include <osl/mutex.hxx>
#include <hash_map>
diff --git a/svx/source/customshapes/tbxcustomshapes.cxx b/svx/source/customshapes/tbxcustomshapes.cxx
index b3c4645a58f9..4cec80db354d 100644
--- a/svx/source/customshapes/tbxcustomshapes.cxx
+++ b/svx/source/customshapes/tbxcustomshapes.cxx
@@ -43,7 +43,7 @@
#include <sfx2/imagemgr.hxx>
#include <vcl/svapp.hxx>
-#include "tbxcustomshapes.hxx"
+#include "svx/tbxcustomshapes.hxx"
SFX_IMPL_TOOLBOX_CONTROL(SvxTbxCtlCustomShapes, SfxBoolItem);
diff --git a/svx/source/dialog/_contdlg.cxx b/svx/source/dialog/_contdlg.cxx
index 2eee0268816a..26dc3137aa52 100644
--- a/svx/source/dialog/_contdlg.cxx
+++ b/svx/source/dialog/_contdlg.cxx
@@ -52,7 +52,7 @@
#define _XOUTBMP_STATICS_ONLY
#include <svx/dialmgr.hxx>
-#include "xoutbmp.hxx"
+#include "svx/xoutbmp.hxx"
#include <svx/dialogs.hrc>
#include <svx/svxids.hrc>
#include <svx/contdlg.hxx>
@@ -61,7 +61,7 @@
#include "contwnd.hxx"
#include <svx/svdtrans.hxx>
#include <svx/svdopath.hxx>
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include <vcl/svapp.hxx>
/******************************************************************************/
diff --git a/svx/source/dialog/connctrl.cxx b/svx/source/dialog/connctrl.cxx
index 79e563510dbc..84670ee32418 100644
--- a/svx/source/dialog/connctrl.cxx
+++ b/svx/source/dialog/connctrl.cxx
@@ -37,9 +37,9 @@
#include <svx/svdpage.hxx> // SdrObjList
-#include "connctrl.hxx"
+#include "svx/connctrl.hxx"
#include <svx/dialmgr.hxx>
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
// #110094#
#include <svx/sdr/contact/objectcontactofobjlistpainter.hxx>
diff --git a/svx/source/dialog/contwnd.cxx b/svx/source/dialog/contwnd.cxx
index 590408bf6707..5019be9f9472 100644
--- a/svx/source/dialog/contwnd.cxx
+++ b/svx/source/dialog/contwnd.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include <xoutbmp.hxx>
+#include <svx/xoutbmp.hxx>
#include <svx/dialogs.hrc>
#include <svx/svxids.hrc>
#include <contdlg.hrc>
@@ -40,7 +40,7 @@
#include <basegfx/polygon/b2dpolypolygontools.hxx>
// #i75482#
-#include "sdrpaintwindow.hxx"
+#include "svx/sdrpaintwindow.hxx"
#define TRANSCOL Color( COL_WHITE )
diff --git a/svx/source/dialog/databaseregistrationui.cxx b/svx/source/dialog/databaseregistrationui.cxx
index fb7b4a6903ef..68c7d970fecb 100644
--- a/svx/source/dialog/databaseregistrationui.cxx
+++ b/svx/source/dialog/databaseregistrationui.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
// === includes (declaration) ============================================
-#include "databaseregistrationui.hxx"
+#include "svx/databaseregistrationui.hxx"
// === includes (UNO) ====================================================
// === /includes (UNO) ===================================================
diff --git a/svx/source/dialog/dialcontrol.cxx b/svx/source/dialog/dialcontrol.cxx
index 0d5e6ed4bd6f..562b194ab56a 100644
--- a/svx/source/dialog/dialcontrol.cxx
+++ b/svx/source/dialog/dialcontrol.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "dialcontrol.hxx"
+#include "svx/dialcontrol.hxx"
#include <math.h>
#include <vcl/virdev.hxx>
diff --git a/svx/source/dialog/dlgutil.cxx b/svx/source/dialog/dlgutil.cxx
index 6c7a42f90970..dede78faef1d 100644
--- a/svx/source/dialog/dlgutil.cxx
+++ b/svx/source/dialog/dlgutil.cxx
@@ -30,7 +30,7 @@
// include ---------------------------------------------------------------
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include <svl/itemset.hxx>
#include <sfx2/sfxsids.hrc>
#include <sfx2/module.hxx>
diff --git a/svx/source/dialog/docrecovery.hrc b/svx/source/dialog/docrecovery.hrc
index 18148131f6aa..acf1a1631c6b 100644
--- a/svx/source/dialog/docrecovery.hrc
+++ b/svx/source/dialog/docrecovery.hrc
@@ -36,7 +36,7 @@
// TabDialog
#define TABDLG_WIDTH 290
-#define TABDLG_HEIGHT 278
+#define TABDLG_HEIGHT 238
// TabPage CrashSave
@@ -52,7 +52,7 @@
#define SAVE_WIDTH 290
-#define SAVE_HEIGHT 278
+#define SAVE_HEIGHT 238
#define SAVE_TITLEWINHEIGHT 36
#define SAVE_DESCRHEIGHT 48
#define SAVE_COL0 (RSC_SP_DLG_INNERBORDER_LEFT)
diff --git a/svx/source/dialog/fontlb.cxx b/svx/source/dialog/fontlb.cxx
index 6443c12b427b..a6b03a17d890 100644
--- a/svx/source/dialog/fontlb.cxx
+++ b/svx/source/dialog/fontlb.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "fontlb.hxx"
+#include "svx/fontlb.hxx"
#include <vcl/svapp.hxx>
// ============================================================================
diff --git a/svx/source/dialog/fontwork.cxx b/svx/source/dialog/fontwork.cxx
index 054a76fec493..c62cea74c69a 100644
--- a/svx/source/dialog/fontwork.cxx
+++ b/svx/source/dialog/fontwork.cxx
@@ -41,7 +41,7 @@
#include <svx/xtextit.hxx>
#include <svx/dialmgr.hxx>
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include <svx/dialogs.hrc>
#include "fontwork.hrc"
diff --git a/svx/source/dialog/graphctl.cxx b/svx/source/dialog/graphctl.cxx
index a50bc6247a5f..7c0794d8bb6e 100644
--- a/svx/source/dialog/graphctl.cxx
+++ b/svx/source/dialog/graphctl.cxx
@@ -41,12 +41,12 @@
#include <svx/graphctl.hxx>
#include "GraphCtlAccessibleContext.hxx"
-#include "xoutbmp.hxx"
+#include "svx/xoutbmp.hxx"
#include <svx/svxids.hrc>
#include <svx/svdpage.hxx>
// #i72889#
-#include "sdrpaintwindow.hxx"
+#include "svx/sdrpaintwindow.hxx"
/*************************************************************************
|*
diff --git a/svx/source/dialog/hdft.cxx b/svx/source/dialog/hdft.cxx
index 551f682abda0..2da5df325dfa 100644
--- a/svx/source/dialog/hdft.cxx
+++ b/svx/source/dialog/hdft.cxx
@@ -48,9 +48,9 @@
#include <svx/hdft.hxx>
#include <svx/pageitem.hxx>
//CHINA001 #include "bbdlg.hxx"
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include <svx/dialmgr.hxx>
-#include "htmlmode.hxx"
+#include "svx/htmlmode.hxx"
#include <editeng/brshitem.hxx>
#include <editeng/lrspitem.hxx>
diff --git a/svx/source/dialog/hyperdlg.cxx b/svx/source/dialog/hyperdlg.cxx
index 6828f222facc..dcca52044531 100644
--- a/svx/source/dialog/hyperdlg.cxx
+++ b/svx/source/dialog/hyperdlg.cxx
@@ -31,7 +31,7 @@
// include ---------------------------------------------------------------
#include <vcl/settings.hxx>
#include <unotools/viewoptions.hxx>
-#include "hyperdlg.hxx"
+#include "svx/hyperdlg.hxx"
#include <svx/svxdlg.hxx> //CHINA001
#include <sfx2/app.hxx>
#include <sfx2/sfxsids.hrc>
diff --git a/svx/source/dialog/hyprlink.cxx b/svx/source/dialog/hyprlink.cxx
index c7c9f7a22939..b8f150736ea1 100644
--- a/svx/source/dialog/hyprlink.cxx
+++ b/svx/source/dialog/hyprlink.cxx
@@ -43,11 +43,11 @@
#include <sfx2/objsh.hxx>
#include <comphelper/processfactory.hxx>
-#include "hlnkitem.hxx"
+#include "svx/hlnkitem.hxx"
#include <svx/dialogs.hrc>
#include "hyprlink.hrc"
#include <svx/dialmgr.hxx>
-#include "hyprlink.hxx"
+#include "svx/hyprlink.hxx"
#include "hyprdlg.hxx"
using namespace ::rtl;
diff --git a/svx/source/dialog/imapdlg.cxx b/svx/source/dialog/imapdlg.cxx
index e876431b13ec..df396bf99f41 100644
--- a/svx/source/dialog/imapdlg.cxx
+++ b/svx/source/dialog/imapdlg.cxx
@@ -68,7 +68,7 @@
#endif
#define _IMAPDLG_PRIVATE
-#include "imapdlg.hxx"
+#include "svx/imapdlg.hxx"
#include <svx/dialmgr.hxx>
#include <svx/dialogs.hrc>
@@ -76,7 +76,7 @@
#include "imapdlg.hrc"
#include "imapwnd.hxx"
#include "imapimp.hxx"
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include <svx/svdtrans.hxx>
#include <svx/svdopath.hxx>
#include <vcl/svapp.hxx>
diff --git a/svx/source/dialog/imapwnd.cxx b/svx/source/dialog/imapwnd.cxx
index b4da78cabe59..4442cb76bad4 100644
--- a/svx/source/dialog/imapwnd.cxx
+++ b/svx/source/dialog/imapwnd.cxx
@@ -37,7 +37,7 @@
#include <svtools/imappoly.hxx>
#include <svl/urlbmk.hxx>
-#include <xoutbmp.hxx>
+#include <svx/xoutbmp.hxx>
#include <svx/dialmgr.hxx>
#include <svx/dialogs.hrc>
#include <svx/svxids.hrc>
diff --git a/svx/source/dialog/measctrl.cxx b/svx/source/dialog/measctrl.cxx
index 3b56b443e2fe..13f29089b784 100644
--- a/svx/source/dialog/measctrl.cxx
+++ b/svx/source/dialog/measctrl.cxx
@@ -33,9 +33,9 @@
#include <svx/svdomeas.hxx>
#include <svx/svdmodel.hxx>
-#include "measctrl.hxx"
+#include "svx/measctrl.hxx"
#include <svx/dialmgr.hxx>
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
/*************************************************************************
|*
diff --git a/svx/source/dialog/optgrid.cxx b/svx/source/dialog/optgrid.cxx
index 7565539578df..f281580b93db 100644
--- a/svx/source/dialog/optgrid.cxx
+++ b/svx/source/dialog/optgrid.cxx
@@ -38,10 +38,10 @@
#include <svx/svxids.hrc>
#include <svx/dialmgr.hxx>
-#include "optgrid.hxx"
+#include "svx/optgrid.hxx"
#include <svx/dialogs.hrc>
#include "optgrid.hrc"
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
/* -----------------18.08.98 17:41-------------------
* local functions
diff --git a/svx/source/dialog/orienthelper.cxx b/svx/source/dialog/orienthelper.cxx
index f546bb95dc21..95b6e5b4ca08 100644
--- a/svx/source/dialog/orienthelper.cxx
+++ b/svx/source/dialog/orienthelper.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "orienthelper.hxx"
+#include "svx/orienthelper.hxx"
#include <vector>
#include <utility>
@@ -35,7 +35,7 @@
#ifndef _SV_BUTTON_HXX
#include <vcl/button.hxx>
#endif
-#include "dialcontrol.hxx"
+#include "svx/dialcontrol.hxx"
namespace svx {
diff --git a/svx/source/dialog/passwd.cxx b/svx/source/dialog/passwd.cxx
index 19d97d368496..bb689c3fb8fa 100644
--- a/svx/source/dialog/passwd.cxx
+++ b/svx/source/dialog/passwd.cxx
@@ -36,7 +36,7 @@
#define _SVX_PASSWD_CXX
-#include "passwd.hxx"
+#include "svx/passwd.hxx"
#include <svx/dialmgr.hxx>
#include <svx/dialogs.hrc>
#include "passwd.hrc"
diff --git a/svx/source/dialog/pfiledlg.cxx b/svx/source/dialog/pfiledlg.cxx
index af8d283185a6..2938988fac7e 100644
--- a/svx/source/dialog/pfiledlg.cxx
+++ b/svx/source/dialog/pfiledlg.cxx
@@ -35,7 +35,7 @@
#include <comphelper/processfactory.hxx>
-#include "pfiledlg.hxx"
+#include "svx/pfiledlg.hxx"
#include <svx/dialogs.hrc>
#include <svx/dialmgr.hxx>
diff --git a/svx/source/dialog/prtqry.cxx b/svx/source/dialog/prtqry.cxx
index 07f4d2fe9928..0a19d52958e3 100644
--- a/svx/source/dialog/prtqry.cxx
+++ b/svx/source/dialog/prtqry.cxx
@@ -31,7 +31,7 @@
#ifndef _SVX_DIALOGS_HRC
#include <svx/dialogs.hrc>
#endif
-#include <prtqry.hxx>
+#include <svx/prtqry.hxx>
#include <svx/dialmgr.hxx>
#include <tools/shl.hxx>
diff --git a/svx/source/dialog/relfld.cxx b/svx/source/dialog/relfld.cxx
index 8cdb6ee5ba3f..1224de5ba6ea 100644
--- a/svx/source/dialog/relfld.cxx
+++ b/svx/source/dialog/relfld.cxx
@@ -31,7 +31,7 @@
// include ---------------------------------------------------------------
#include <tools/ref.hxx>
-#include "relfld.hxx"
+#include "svx/relfld.hxx"
// -----------------------------------------------------------------------
diff --git a/svx/source/dialog/rlrcitem.cxx b/svx/source/dialog/rlrcitem.cxx
index 38223bcb8893..23d62d4de85e 100644
--- a/svx/source/dialog/rlrcitem.cxx
+++ b/svx/source/dialog/rlrcitem.cxx
@@ -44,7 +44,7 @@
#include <editeng/tstpitem.hxx>
#include "editeng/protitem.hxx"
#include "rlrcitem.hxx"
-#include "rulritem.hxx"
+#include "svx/rulritem.hxx"
#include <svl/eitem.hxx>
// class SvxRulerItem ----------------------------------------------------
diff --git a/svx/source/dialog/rubydialog.cxx b/svx/source/dialog/rubydialog.cxx
index 5a5839443170..d281802ac40e 100644
--- a/svx/source/dialog/rubydialog.cxx
+++ b/svx/source/dialog/rubydialog.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include <rubydialog.hxx>
+#include <svx/rubydialog.hxx>
#include <tools/shl.hxx>
#include <svx/dialmgr.hxx>
#include <svx/dialogs.hrc>
diff --git a/svx/source/dialog/rulritem.cxx b/svx/source/dialog/rulritem.cxx
index fd0007cce8e5..331c38d6bdd6 100644
--- a/svx/source/dialog/rulritem.cxx
+++ b/svx/source/dialog/rulritem.cxx
@@ -30,7 +30,7 @@
#include <tools/string.hxx>
#include <svx/dialogs.hrc>
-#include "rulritem.hxx"
+#include "svx/rulritem.hxx"
#include <com/sun/star/awt/Rectangle.hpp>
#include <com/sun/star/frame/status/LeftRightMargin.hpp>
#include <com/sun/star/frame/status/UpperLowerMargin.hpp>
diff --git a/svx/source/dialog/simptabl.cxx b/svx/source/dialog/simptabl.cxx
index ab5533513000..0545161e858d 100644
--- a/svx/source/dialog/simptabl.cxx
+++ b/svx/source/dialog/simptabl.cxx
@@ -152,7 +152,6 @@ SvxSimpleTable::SvxSimpleTable( Window* pParent,const ResId& rResId):
InitHeaderBar( &aHeaderBar );
aHeaderBar.Show();
- SetWindowBits(WB_CLIPCHILDREN | WB_HSCROLL);
SvHeaderTabListBox::Show();
}
diff --git a/svx/source/dialog/srchctrl.cxx b/svx/source/dialog/srchctrl.cxx
index 993288bcd622..479888463a5c 100644
--- a/svx/source/dialog/srchctrl.cxx
+++ b/svx/source/dialog/srchctrl.cxx
@@ -40,7 +40,7 @@
#include "srchctrl.hxx"
-#include "srchdlg.hxx"
+#include "svx/srchdlg.hxx"
#include <svl/srchitem.hxx>
// class SvxSearchFamilyControllerItem -----------------------------------
diff --git a/svx/source/dialog/srchdlg.cxx b/svx/source/dialog/srchdlg.cxx
index 3ccba1f910ae..9f6d606dc759 100644
--- a/svx/source/dialog/srchdlg.cxx
+++ b/svx/source/dialog/srchdlg.cxx
@@ -56,7 +56,7 @@
#include <toolkit/unohlp.hxx>
#define _SVX_SRCHDLG_CXX
-#include "srchdlg.hxx"
+#include "svx/srchdlg.hxx"
#include <svx/dialogs.hrc>
#include <svx/svxitems.hrc>
@@ -69,7 +69,7 @@
#include <svx/pageitem.hxx>
#include "srchctrl.hxx"
#include <svx/dialmgr.hxx>
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include <editeng/brshitem.hxx>
#include <tools/resary.hxx>
#include <svx/svxdlg.hxx> //CHINA001
diff --git a/svx/source/dialog/svxbmpnumvalueset.cxx b/svx/source/dialog/svxbmpnumvalueset.cxx
index cbf5a39997bd..482dc467d66c 100644
--- a/svx/source/dialog/svxbmpnumvalueset.cxx
+++ b/svx/source/dialog/svxbmpnumvalueset.cxx
@@ -41,7 +41,7 @@
#include <editeng/numitem.hxx>
#include <svl/eitem.hxx>
#include <vcl/svapp.hxx>
-#include <gallery.hxx>
+#include <svx/gallery.hxx>
#include <svl/urihelper.hxx>
#include <editeng/brshitem.hxx>
#include <svl/intitem.hxx>
@@ -49,14 +49,14 @@
#include <vcl/graph.hxx>
#include <vcl/msgbox.hxx>
#include <editeng/flstitem.hxx>
-#include <dlgutil.hxx>
+#include <svx/dlgutil.hxx>
#ifndef _XTABLE_HXX //autogen
#include <svx/xtable.hxx>
#endif
-#include <drawitem.hxx>
-#include <numvset.hxx>
-#include <htmlmode.hxx>
+#include <svx/drawitem.hxx>
+#include <svx/numvset.hxx>
+#include <svx/htmlmode.hxx>
#include <unotools/pathoptions.hxx>
#include <svtools/ctrltool.hxx>
#include <editeng/unolingu.hxx>
diff --git a/svx/source/dialog/svxgrahicitem.cxx b/svx/source/dialog/svxgrahicitem.cxx
index 07daea2064ab..6d6d2cb126db 100644
--- a/svx/source/dialog/svxgrahicitem.cxx
+++ b/svx/source/dialog/svxgrahicitem.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "svxgrahicitem.hxx"
+#include "svx/svxgrahicitem.hxx"
TYPEINIT1(SvxGraphicItem,SfxPoolItem);
SvxGraphicItem::SvxGraphicItem( USHORT _nWhich, const Graphic& rGraphic )
: SfxPoolItem( _nWhich ), aGraphic( rGraphic )
diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx
index 8000de0d2103..0e79ff530e7c 100644
--- a/svx/source/dialog/svxruler.cxx
+++ b/svx/source/dialog/svxruler.cxx
@@ -48,7 +48,7 @@
#include <svx/dialmgr.hxx>
#include <svx/ruler.hxx>
#include "rlrcitem.hxx"
-#include "rulritem.hxx"
+#include "svx/rulritem.hxx"
#include <editeng/tstpitem.hxx>
#include <editeng/lrspitem.hxx>
#include "editeng/protitem.hxx"
diff --git a/svx/source/dialog/swframeexample.cxx b/svx/source/dialog/swframeexample.cxx
index f79e009bb332..8ba911fb90c0 100644
--- a/svx/source/dialog/swframeexample.cxx
+++ b/svx/source/dialog/swframeexample.cxx
@@ -33,7 +33,7 @@
#include <vcl/metric.hxx>
#include <vcl/svapp.hxx>
#include <svtools/colorcfg.hxx>
-#include <swframeexample.hxx>
+#include <svx/swframeexample.hxx>
#include <com/sun/star/text/TextContentAnchorType.hpp>
#include <com/sun/star/text/HoriOrientation.hpp>
#include <com/sun/star/text/VertOrientation.hpp>
diff --git a/svx/source/dialog/swframeposstrings.cxx b/svx/source/dialog/swframeposstrings.cxx
index 7faa97230c92..03b2746ae3fd 100644
--- a/svx/source/dialog/swframeposstrings.cxx
+++ b/svx/source/dialog/swframeposstrings.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include <swframeposstrings.hxx>
+#include <svx/swframeposstrings.hxx>
#include <tools/rc.hxx>
#include <tools/debug.hxx>
#include <svx/dialmgr.hxx>
diff --git a/svx/source/dialog/swframeposstrings.src b/svx/source/dialog/swframeposstrings.src
index 3c9788fa8c9e..c6a164630c5e 100644
--- a/svx/source/dialog/swframeposstrings.src
+++ b/svx/source/dialog/swframeposstrings.src
@@ -26,7 +26,7 @@
************************************************************************/
#include <svx/dialogs.hrc>
-//the following defines have to match the (enum values + 1) in swframeposstrings.hxx!
+//the following defines have to match the (enum values + 1) in svx/swframeposstrings.hxx!
#define STR_LEFT 1
#define STR_RIGHT 2
#define STR_FROMLEFT 3
diff --git a/svx/source/dialog/txencbox.cxx b/svx/source/dialog/txencbox.cxx
index 718989b84450..751184e929c7 100644
--- a/svx/source/dialog/txencbox.cxx
+++ b/svx/source/dialog/txencbox.cxx
@@ -28,8 +28,8 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "txencbox.hxx"
-#include "txenctab.hxx"
+#include "svx/txencbox.hxx"
+#include "svx/txenctab.hxx"
#include <svx/dialogs.hrc>
#include "svx/dbcharsethelper.hxx"
#include <vcl/svapp.hxx>
diff --git a/svx/source/dialog/txenctab.cxx b/svx/source/dialog/txenctab.cxx
index 3fc82705141c..74b60a08d2bd 100644
--- a/svx/source/dialog/txenctab.cxx
+++ b/svx/source/dialog/txenctab.cxx
@@ -30,7 +30,7 @@
#include <svx/dialogs.hrc> // -> RID_SVXSTR_TEXTENCODING_TABLE
#include <svx/dialmgr.hxx>
-#include "txenctab.hxx"
+#include "svx/txenctab.hxx"
#include <tools/shl.hxx>
//------------------------------------------------------------------------
diff --git a/svx/source/dialog/wrapfield.cxx b/svx/source/dialog/wrapfield.cxx
index 8c6da9f1ff81..ee152439254c 100644
--- a/svx/source/dialog/wrapfield.cxx
+++ b/svx/source/dialog/wrapfield.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "wrapfield.hxx"
+#include "svx/wrapfield.hxx"
namespace svx {
diff --git a/svx/source/engine3d/cube3d.cxx b/svx/source/engine3d/cube3d.cxx
index 626ee80d46e3..b78d464d4897 100644
--- a/svx/source/engine3d/cube3d.cxx
+++ b/svx/source/engine3d/cube3d.cxx
@@ -28,10 +28,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
#include <svx/cube3d.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <basegfx/point/b3dpoint.hxx>
#include <basegfx/polygon/b3dpolygon.hxx>
#include <svx/sdr/contact/viewcontactofe3dcube.hxx>
diff --git a/svx/source/engine3d/extrud3d.cxx b/svx/source/engine3d/extrud3d.cxx
index 7261586947c4..423a846d86a1 100644
--- a/svx/source/engine3d/extrud3d.cxx
+++ b/svx/source/engine3d/extrud3d.cxx
@@ -28,10 +28,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
#include <svx/svdpage.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/extrud3d.hxx>
#include <svx/scene3d.hxx>
diff --git a/svx/source/engine3d/float3d.cxx b/svx/source/engine3d/float3d.cxx
index 8ff6af906eaa..e1e90d88c22f 100644
--- a/svx/source/engine3d/float3d.cxx
+++ b/svx/source/engine3d/float3d.cxx
@@ -37,7 +37,7 @@
#include <tools/shl.hxx>
#include <svx/xflclit.hxx>
#include <svx/svdmodel.hxx>
-#include <globl3d.hxx>
+#include <svx/globl3d.hxx>
#include <svx/view3d.hxx>
#include <svx/obj3d.hxx>
#include <svx/sphere3d.hxx>
@@ -48,9 +48,9 @@
#include <svx/polysc3d.hxx>
#include <editeng/eeitem.hxx>
#include <svl/style.hxx>
-#include <dlgutil.hxx>
+#include <svx/dlgutil.hxx>
-#include <dlgutil.hxx>
+#include <svx/dlgutil.hxx>
#include <svx/dialmgr.hxx>
#include <svx/viewpt3d.hxx> // ProjectionType
@@ -60,7 +60,7 @@
#include <editeng/colritem.hxx>
#include <svx/e3ditem.hxx>
-#include <gallery.hxx>
+#include <svx/gallery.hxx>
#define GALLERY_THEME "3D"
#include <svl/whiter.hxx>
diff --git a/svx/source/engine3d/helperhittest3d.cxx b/svx/source/engine3d/helperhittest3d.cxx
index 78324c22ed27..c5e77870a073 100644
--- a/svx/source/engine3d/helperhittest3d.cxx
+++ b/svx/source/engine3d/helperhittest3d.cxx
@@ -32,7 +32,7 @@
#include <basegfx/point/b2dpoint.hxx>
#include <svx/svdpage.hxx>
#include <svx/scene3d.hxx>
-#include <svditer.hxx>
+#include <svx/svditer.hxx>
#include <drawinglayer/processor3d/cutfindprocessor3d.hxx>
#include <svx/sdr/contact/viewcontactofe3d.hxx>
#include <svx/sdr/contact/viewcontactofe3dscene.hxx>
diff --git a/svx/source/engine3d/lathe3d.cxx b/svx/source/engine3d/lathe3d.cxx
index e6953f96f766..4d88dce0fb4d 100644
--- a/svx/source/engine3d/lathe3d.cxx
+++ b/svx/source/engine3d/lathe3d.cxx
@@ -28,11 +28,11 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
#include <tools/poly.hxx>
#include <svx/svdpage.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/lathe3d.hxx>
#include <svx/xpoly.hxx>
#include <svx/svxids.hrc>
diff --git a/svx/source/engine3d/obj3d.cxx b/svx/source/engine3d/obj3d.cxx
index 9f284d826d9f..c9ceb1ef78a6 100644
--- a/svx/source/engine3d/obj3d.cxx
+++ b/svx/source/engine3d/obj3d.cxx
@@ -28,14 +28,14 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
#include <svx/svdview.hxx>
#include <svx/svdattr.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdmodel.hxx>
-#include "svditer.hxx"
-#include "globl3d.hxx"
+#include "svx/svditer.hxx"
+#include "svx/globl3d.hxx"
#include <svx/camera3d.hxx>
#include <svx/scene3d.hxx>
#include <svx/polysc3d.hxx>
diff --git a/svx/source/engine3d/objfac3d.cxx b/svx/source/engine3d/objfac3d.cxx
index 3b06b249558e..493e5260cd7e 100644
--- a/svx/source/engine3d/objfac3d.cxx
+++ b/svx/source/engine3d/objfac3d.cxx
@@ -28,14 +28,14 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
#include <svx/svdpage.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/polysc3d.hxx>
#include <svx/cube3d.hxx>
#include <svx/sphere3d.hxx>
#include <svx/extrud3d.hxx>
#include <svx/lathe3d.hxx>
#include <svx/polygn3d.hxx>
-#include "objfac3d.hxx"
+#include "svx/objfac3d.hxx"
#include <svx/svdobj.hxx>
/*************************************************************************
diff --git a/svx/source/engine3d/polygn3d.cxx b/svx/source/engine3d/polygn3d.cxx
index e91689424e18..0ec26903d2c0 100644
--- a/svx/source/engine3d/polygn3d.cxx
+++ b/svx/source/engine3d/polygn3d.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include <svx/polygn3d.hxx>
#include <svx/svdpage.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <basegfx/point/b3dpoint.hxx>
#include <svx/sdr/contact/viewcontactofe3dpolygon.hxx>
#include <basegfx/polygon/b3dpolygon.hxx>
diff --git a/svx/source/engine3d/polysc3d.cxx b/svx/source/engine3d/polysc3d.cxx
index 3c002e2533b8..212f5ccae44a 100644
--- a/svx/source/engine3d/polysc3d.cxx
+++ b/svx/source/engine3d/polysc3d.cxx
@@ -30,14 +30,14 @@
#include <svx/xfillit.hxx>
#include <svx/svdopath.hxx>
#include <svx/svdogrp.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdetc.hxx>
#include <vcl/virdev.hxx>
#include <vcl/svapp.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdpool.hxx>
#include <svl/style.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/polysc3d.hxx>
#include <svx/xlnclit.hxx>
#include <svl/metitem.hxx>
diff --git a/svx/source/engine3d/scene3d.cxx b/svx/source/engine3d/scene3d.cxx
index 0b06a74c280d..f209ee93487a 100644
--- a/svx/source/engine3d/scene3d.cxx
+++ b/svx/source/engine3d/scene3d.cxx
@@ -28,14 +28,14 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
-#include "svditer.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
+#include "svx/svditer.hxx"
#if defined( UNX ) || defined( ICC )
#include <stdlib.h>
#endif
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/svdpage.hxx>
#include <svl/style.hxx>
#include <svx/scene3d.hxx>
diff --git a/svx/source/engine3d/sphere3d.cxx b/svx/source/engine3d/sphere3d.cxx
index ab9e3bc87f79..316c353ad7bb 100644
--- a/svx/source/engine3d/sphere3d.cxx
+++ b/svx/source/engine3d/sphere3d.cxx
@@ -28,11 +28,11 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
#include <svx/svdmodel.hxx>
#include <svx/svdpage.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/sphere3d.hxx>
#include <svx/svxids.hrc>
diff --git a/svx/source/engine3d/view3d.cxx b/svx/source/engine3d/view3d.cxx
index 047faef2cb41..c69abb362754 100644
--- a/svx/source/engine3d/view3d.cxx
+++ b/svx/source/engine3d/view3d.cxx
@@ -32,7 +32,7 @@
#include <svx/svdogrp.hxx>
#include <svx/svdopath.hxx>
#include <tools/shl.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdpool.hxx>
#include <svx/svdorect.hxx>
#include <svx/svdmodel.hxx>
@@ -43,7 +43,7 @@
#include <svx/svdview.hxx>
#include <svx/dialogs.hrc>
#include <svx/dialmgr.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/obj3d.hxx>
#include <svx/lathe3d.hxx>
#include <svx/sphere3d.hxx>
@@ -64,7 +64,7 @@
#include <svx/xlnwtit.hxx>
#include <svx/sdr/overlay/overlaypolypolygon.hxx>
#include <svx/sdr/overlay/overlaymanager.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/sdr/contact/viewcontactofe3dscene.hxx>
#include <drawinglayer/geometry/viewinformation3d.hxx>
#include <svx/sdrpagewindow.hxx>
diff --git a/svx/source/engine3d/view3d1.cxx b/svx/source/engine3d/view3d1.cxx
index dce003fe90ae..121696d8ed6b 100644
--- a/svx/source/engine3d/view3d1.cxx
+++ b/svx/source/engine3d/view3d1.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include <tools/shl.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdpool.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svxids.hrc>
@@ -37,7 +37,7 @@
#include <svx/fmview.hxx>
#include <svx/dialogs.hrc>
#include <svx/dialmgr.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/obj3d.hxx>
#include <svx/polysc3d.hxx>
#include <svx/e3ditem.hxx>
diff --git a/svx/source/fmcomp/fmgridcl.cxx b/svx/source/fmcomp/fmgridcl.cxx
index d64b0c9ab958..618c2135652a 100644
--- a/svx/source/fmcomp/fmgridcl.cxx
+++ b/svx/source/fmcomp/fmgridcl.cxx
@@ -28,12 +28,12 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "dbexch.hrc"
-#include "fmgridif.hxx"
+#include "svx/dbexch.hrc"
+#include "svx/fmgridif.hxx"
#include "fmitems.hxx"
#include "fmprop.hrc"
#include "svx/fmtools.hxx"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmservs.hxx"
#include "fmurl.hxx"
#include "formcontrolfactory.hxx"
diff --git a/svx/source/fmcomp/fmgridif.cxx b/svx/source/fmcomp/fmgridif.cxx
index 5a033cd77d44..d6a530db85e3 100644
--- a/svx/source/fmcomp/fmgridif.cxx
+++ b/svx/source/fmcomp/fmgridif.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "fmgridif.hxx"
+#include "svx/fmgridif.hxx"
#include "fmprop.hrc"
#include "fmservs.hxx"
#include "svx/fmtools.hxx"
diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
index bb8afd502d43..7fb9d8330cf6 100644
--- a/svx/source/fmcomp/gridcell.cxx
+++ b/svx/source/fmcomp/gridcell.cxx
@@ -30,7 +30,7 @@
#include "fmprop.hrc"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "svx/fmtools.hxx"
#include "gridcell.hxx"
#include "gridcols.hxx"
@@ -2953,13 +2953,13 @@ sal_Bool DbFilterField::commitControl()
case ::com::sun::star::form::FormComponentType::CHECKBOX:
return sal_True;
case ::com::sun::star::form::FormComponentType::LISTBOX:
+ aText.Erase();
if (static_cast<ListBox*>(m_pWindow)->GetSelectEntryCount())
{
sal_Int16 nPos = (sal_Int16)static_cast<ListBox*>(m_pWindow)->GetSelectEntryPos();
- aText = (const sal_Unicode*)m_aValueList.getConstArray()[nPos];
+ if ( ( nPos >= 0 ) && ( nPos < m_aValueList.getLength() ) )
+ aText = (const sal_Unicode*)m_aValueList.getConstArray()[nPos];
}
- else
- aText.Erase();
if (m_aText != aText)
{
diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx
index 1944bd47dad5..d54b091c6bd2 100644
--- a/svx/source/fmcomp/gridctrl.cxx
+++ b/svx/source/fmcomp/gridctrl.cxx
@@ -61,7 +61,7 @@
#include <vcl/menu.hxx>
#ifndef _SVX_FMRESIDS_HRC
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#endif
#ifndef _SVX_SVXIDS_HRC
diff --git a/svx/source/fmcomp/gridctrl.src b/svx/source/fmcomp/gridctrl.src
index 88651ebbe04f..874f3ae4f0d9 100644
--- a/svx/source/fmcomp/gridctrl.src
+++ b/svx/source/fmcomp/gridctrl.src
@@ -25,7 +25,7 @@
*
************************************************************************/
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include <svx/svxids.hrc>
#include "globlmn.hrc"
#include "fmhelp.hrc"
diff --git a/svx/source/fmcomp/xmlexchg.cxx b/svx/source/fmcomp/xmlexchg.cxx
index 5356e7c2b7dd..1026356e08c2 100644
--- a/svx/source/fmcomp/xmlexchg.cxx
+++ b/svx/source/fmcomp/xmlexchg.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "xmlexchg.hxx"
+#include "svx/xmlexchg.hxx"
#include <sot/formats.hxx>
#include <sot/exchange.hxx>
#include <tools/debug.hxx>
diff --git a/svx/source/form/ParseContext.cxx b/svx/source/form/ParseContext.cxx
index 7b00319cb164..e1f069be96a6 100644
--- a/svx/source/form/ParseContext.cxx
+++ b/svx/source/form/ParseContext.cxx
@@ -28,9 +28,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "ParseContext.hxx"
+#include "svx/ParseContext.hxx"
#include "stringlistresource.hxx"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include <svx/dialmgr.hxx>
diff --git a/svx/source/form/databaselocationinput.cxx b/svx/source/form/databaselocationinput.cxx
index 7c23c0a2020d..c6df77774c77 100644
--- a/svx/source/form/databaselocationinput.cxx
+++ b/svx/source/form/databaselocationinput.cxx
@@ -31,7 +31,7 @@
#include "svx/databaselocationinput.hxx"
#include "svx/dialmgr.hxx"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
/** === begin UNO includes === **/
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
diff --git a/svx/source/form/datanavi.cxx b/svx/source/form/datanavi.cxx
index 8ce3d6e7ba7c..aecb4f295efa 100644
--- a/svx/source/form/datanavi.cxx
+++ b/svx/source/form/datanavi.cxx
@@ -32,12 +32,12 @@
#include "fmservs.hxx"
#include "datanavi.hrc"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmhelp.hrc"
#include <svx/svxids.hrc>
#include <tools/rcid.h>
#include <tools/diagnose_ex.h>
-#include "xmlexchg.hxx"
+#include "svx/xmlexchg.hxx"
#include <svx/dialmgr.hxx>
#include <svx/fmshell.hxx>
#include <svtools/miscopt.hxx>
@@ -352,7 +352,7 @@ namespace svxform
WinBits nBits = WB_BORDER | WB_TABSTOP | WB_HIDESELECTION | WB_NOINITIALSELECTION;
if ( DGTInstance == m_eGroup || DGTSubmission == m_eGroup )
nBits |= WB_HASBUTTONS | WB_HASLINES | WB_HASLINESATROOT | WB_HASBUTTONSATROOT;
- m_aItemList.SetWindowBits( m_aItemList.GetStyle() | nBits );
+ m_aItemList.SetStyle( m_aItemList.GetStyle() | nBits );
m_aItemList.Show();
ItemSelectHdl( &m_aItemList );
}
diff --git a/svx/source/form/datanavi.src b/svx/source/form/datanavi.src
index 5d81bf13ac26..3dac7faf3a90 100644
--- a/svx/source/form/datanavi.src
+++ b/svx/source/form/datanavi.src
@@ -27,7 +27,7 @@
#include "datanavi.hrc"
#include "globlmn.hrc"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmhelp.hrc"
#define MASKCOLOR MaskColor = Color { Red = 0xFFFF ; Green = 0x0000 ; Blue = 0xFFFF ; };
diff --git a/svx/source/form/filtnav.cxx b/svx/source/form/filtnav.cxx
index 9d1b65208fdf..3b910652a96b 100644
--- a/svx/source/form/filtnav.cxx
+++ b/svx/source/form/filtnav.cxx
@@ -34,7 +34,7 @@
#include "fmhelp.hrc"
#include "fmitems.hxx"
#include "fmprop.hrc"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "gridcell.hxx"
/** === begin UNO includes === **/
diff --git a/svx/source/form/filtnav.src b/svx/source/form/filtnav.src
index feaba66729db..3d9eff3de4e8 100644
--- a/svx/source/form/filtnav.src
+++ b/svx/source/form/filtnav.src
@@ -26,7 +26,7 @@
************************************************************************/
#include <svx/svxids.hrc>
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmhelp.hrc"
Menu RID_FM_FILTER_MENU
@@ -60,30 +60,3 @@ Menu RID_FM_FILTER_MENU
};
};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/svx/source/form/fmPropBrw.cxx b/svx/source/form/fmPropBrw.cxx
index bcc275896410..6768acfbe1f2 100644
--- a/svx/source/form/fmPropBrw.cxx
+++ b/svx/source/form/fmPropBrw.cxx
@@ -31,7 +31,7 @@
#include "fmhelp.hrc"
#include "fmprop.hrc"
#include "fmPropBrw.hxx"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmservs.hxx"
#include "fmshimp.hxx"
#include "fmpgeimp.hxx"
diff --git a/svx/source/form/fmexch.cxx b/svx/source/form/fmexch.cxx
index c50dcb398928..1481a1846a36 100644
--- a/svx/source/form/fmexch.cxx
+++ b/svx/source/form/fmexch.cxx
@@ -33,7 +33,7 @@
#include <svl/itempool.hxx>
#ifndef _SVX_DBEXCH_HRC
-#include <dbexch.hrc>
+#include <svx/dbexch.hrc>
#endif
#include <sot/formats.hxx>
#include <svtools/svtreebx.hxx>
diff --git a/svx/source/form/fmexpl.cxx b/svx/source/form/fmexpl.cxx
index c27b5b69d075..039c3361491d 100644
--- a/svx/source/form/fmexpl.cxx
+++ b/svx/source/form/fmexpl.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#ifndef _SVX_FMRESIDS_HRC
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#endif
#ifndef _SVX_FMEXPL_HRC
#include "fmexpl.hrc"
@@ -54,7 +54,7 @@
#include "fmprop.hrc"
#endif
#include <svx/dialmgr.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdouno.hxx>
#include <fmundo.hxx>
#include <svx/svdobj.hxx>
diff --git a/svx/source/form/fmexpl.src b/svx/source/form/fmexpl.src
index b5bdd50239e7..8d6866f0ecdb 100644
--- a/svx/source/form/fmexpl.src
+++ b/svx/source/form/fmexpl.src
@@ -26,7 +26,7 @@
************************************************************************/
#include <svx/svxids.hrc>
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmexpl.hrc"
#include "globlmn.hrc"
#include <svx/svxcommands.h>
diff --git a/svx/source/form/fmobj.cxx b/svx/source/form/fmobj.cxx
index e679779887a2..2b7ad83f7f5f 100644
--- a/svx/source/form/fmobj.cxx
+++ b/svx/source/form/fmobj.cxx
@@ -31,7 +31,7 @@
#include "fmprop.hrc"
#include "fmvwimp.hxx"
#include "fmpgeimp.hxx"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "svx/fmview.hxx"
#include "svx/fmglob.hxx"
#include "svx/fmpage.hxx"
diff --git a/svx/source/form/fmobjfac.cxx b/svx/source/form/fmobjfac.cxx
index ca96a9957ba7..1c7da93dfd95 100644
--- a/svx/source/form/fmobjfac.cxx
+++ b/svx/source/form/fmobjfac.cxx
@@ -33,7 +33,7 @@
#include "fmservs.hxx"
#ifndef _FM_FMOBJFAC_HXX
-#include "fmobjfac.hxx"
+#include "svx/fmobjfac.hxx"
#endif
#ifndef _FM_FMGLOB_HXX
@@ -56,7 +56,7 @@
#include <tools/resid.hxx>
#ifndef _SVX_FMRESIDS_HRC
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#endif
#include <tools/shl.hxx>
#include <svx/dialmgr.hxx>
diff --git a/svx/source/form/fmpage.cxx b/svx/source/form/fmpage.cxx
index 0a5c7da9ea3c..2c2999ee34ea 100644
--- a/svx/source/form/fmpage.cxx
+++ b/svx/source/form/fmpage.cxx
@@ -44,7 +44,7 @@
#ifndef SVX_LIGHT
#ifndef _SVX_FMRESIDS_HRC
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#endif
#endif
#include <tools/shl.hxx>
@@ -61,7 +61,7 @@
#include <sfx2/objsh.hxx>
#endif
#endif
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdview.hxx>
#include <tools/urlobj.hxx>
#include <vcl/help.hxx>
diff --git a/svx/source/form/fmpgeimp.cxx b/svx/source/form/fmpgeimp.cxx
index 3ade4bdd3091..e239e982dd66 100644
--- a/svx/source/form/fmpgeimp.cxx
+++ b/svx/source/form/fmpgeimp.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "svxerr.hxx"
+#include "svx/svxerr.hxx"
#include "fmpgeimp.hxx"
#include "fmundo.hxx"
#include "svx/fmtools.hxx"
@@ -36,8 +36,8 @@
#include "fmservs.hxx"
#include "fmobj.hxx"
#include "formcontrolfactory.hxx"
-#include "svditer.hxx"
-#include "fmresids.hrc"
+#include "svx/svditer.hxx"
+#include "svx/fmresids.hrc"
#include "svx/dbtoolsclient.hxx"
#include "treevisitor.hxx"
diff --git a/svx/source/form/fmshell.cxx b/svx/source/form/fmshell.cxx
index 96bdd27d62e1..e767f7c0b112 100644
--- a/svx/source/form/fmshell.cxx
+++ b/svx/source/form/fmshell.cxx
@@ -64,7 +64,7 @@
#include <sfx2/objsh.hxx>
#include <svx/svdobj.hxx>
#include <svx/fmpage.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include "fmobj.hxx"
#ifndef _SVX_SVXIDS_HRC
@@ -72,7 +72,7 @@
#endif
#ifndef _SVX_FMRESIDS_HRC
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#endif
#include "fmexch.hxx"
#include <svx/fmglob.hxx>
@@ -288,7 +288,7 @@ void FmFormShell::NotifyMarkListChanged(FmFormView* pWhichView)
}
//------------------------------------------------------------------------
-sal_uInt16 FmFormShell::PrepareClose(sal_Bool bUI, sal_Bool bForBrowsing)
+sal_uInt16 FmFormShell::PrepareClose(sal_Bool bUI, sal_Bool /*bForBrowsing*/)
{
if ( GetImpl()->didPrepareClose() )
// we already did a PrepareClose for the current modifications of the current form
@@ -320,10 +320,6 @@ sal_uInt16 FmFormShell::PrepareClose(sal_Bool bUI, sal_Bool bForBrowsing)
if ( bModified && bUI )
{
QueryBox aQry(NULL, SVX_RES(RID_QRY_SAVEMODIFIED));
- if (bForBrowsing)
- aQry.AddButton(SVX_RES(RID_STR_NEW_TASK), RET_NEWTASK,
- BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON);
-
switch (aQry.Execute())
{
case RET_NO:
diff --git a/svx/source/form/fmshimp.cxx b/svx/source/form/fmshimp.cxx
index c080f5b7a7fa..7a705dfa4aa5 100644
--- a/svx/source/form/fmshimp.cxx
+++ b/svx/source/form/fmshimp.cxx
@@ -33,7 +33,7 @@
#include "fmpgeimp.hxx"
#include "svx/fmtools.hxx"
#include "fmprop.hrc"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmservs.hxx"
#include "fmshimp.hxx"
#include "fmtextcontrolshell.hxx"
@@ -42,7 +42,7 @@
#include "fmvwimp.hxx"
#include "formtoolbars.hxx"
#include "gridcols.hxx"
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include "svx/dialmgr.hxx"
#include "svx/dialogs.hrc"
#include "svx/fmglob.hxx"
@@ -538,7 +538,6 @@ sal_Bool IsSearchableControl( const ::com::sun::star::uno::Reference< ::com::sun
//------------------------------------------------------------------------------
sal_Bool FmXBoundFormFieldIterator::ShouldStepInto(const Reference< XInterface>& _rContainer) const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXBoundFormFieldIterator::ShouldStepInto" );
if (_rContainer == m_xStartingPoint)
// would be quite stupid to step over the root ....
return sal_True;
@@ -549,7 +548,6 @@ sal_Bool FmXBoundFormFieldIterator::ShouldStepInto(const Reference< XInterface>&
//------------------------------------------------------------------------------
sal_Bool FmXBoundFormFieldIterator::ShouldHandleElement(const Reference< XInterface>& _rElement)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXBoundFormFieldIterator::ShouldHandleElement" );
if (!_rElement.is())
// NULL element
return sal_False;
@@ -675,7 +673,6 @@ FmXFormShell::FmXFormShell( FmFormShell& _rShell, SfxViewFrame* _pViewFrame )
,m_bPreparedClose( sal_False )
,m_bFirstActivation( sal_True )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::FmXFormShell" );
DBG_CTOR(FmXFormShell,NULL);
m_aMarkTimer.SetTimeout(100);
m_aMarkTimer.SetTimeoutHdl(LINK(this,FmXFormShell,OnTimeOut));
@@ -707,7 +704,6 @@ FmXFormShell::~FmXFormShell()
//------------------------------------------------------------------
Reference< XModel > FmXFormShell::getContextDocument() const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getContextDocument" );
Reference< XModel > xModel;
// determine the type of document we live in
@@ -729,14 +725,12 @@ Reference< XModel > FmXFormShell::getContextDocument() const
//------------------------------------------------------------------
bool FmXFormShell::isEnhancedForm() const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::isEnhancedForm" );
return getDocumentType() == eEnhancedForm;
}
//------------------------------------------------------------------
bool FmXFormShell::impl_checkDisposed() const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_checkDisposed" );
if ( !m_pShell )
{
OSL_ENSURE( false, "FmXFormShell::impl_checkDisposed: already disposed!" );
@@ -748,7 +742,6 @@ bool FmXFormShell::impl_checkDisposed() const
//------------------------------------------------------------------
::svxform::DocumentType FmXFormShell::getDocumentType() const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getDocumentType" );
if ( m_eDocumentType != eUnknownDocumentType )
return m_eDocumentType;
@@ -769,7 +762,6 @@ bool FmXFormShell::impl_checkDisposed() const
//------------------------------------------------------------------
bool FmXFormShell::IsReadonlyDoc() const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsReadonlyDoc" );
if ( impl_checkDisposed() )
return true;
@@ -782,19 +774,16 @@ bool FmXFormShell::IsReadonlyDoc() const
//------------------------------------------------------------------
Any SAL_CALL FmXFormShell::queryInterface( const Type& type) throw ( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::queryInterface" );
return FmXFormShell_BASE::queryInterface(type);
}
//------------------------------------------------------------------------------
Sequence< Type > SAL_CALL FmXFormShell::getTypes( ) throw(RuntimeException)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getTypes" );
return FmXFormShell_BASE::getTypes();
}
//------------------------------------------------------------------------------
Sequence< sal_Int8 > SAL_CALL FmXFormShell::getImplementationId() throw(RuntimeException)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getImplementationId" );
static ::cppu::OImplementationId* pId = 0;
if (! pId)
{
@@ -811,7 +800,6 @@ Sequence< sal_Int8 > SAL_CALL FmXFormShell::getImplementationId() throw(RuntimeE
//------------------------------------------------------------------------------
void SAL_CALL FmXFormShell::disposing(const EventObject& e) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::disposing" );
impl_checkDisposed();
if (m_xActiveController == e.Source)
@@ -851,7 +839,6 @@ void SAL_CALL FmXFormShell::disposing(const EventObject& e) throw( RuntimeExcept
//------------------------------------------------------------------------------
void SAL_CALL FmXFormShell::propertyChange(const PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::propertyChange" );
if ( impl_checkDisposed() )
return;
@@ -888,7 +875,6 @@ void SAL_CALL FmXFormShell::propertyChange(const PropertyChangeEvent& evt) throw
//------------------------------------------------------------------------------
void FmXFormShell::invalidateFeatures( const ::std::vector< sal_Int32 >& _rFeatures )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::invalidateFeatures" );
if ( impl_checkDisposed() )
return;
@@ -918,7 +904,6 @@ void FmXFormShell::invalidateFeatures( const ::std::vector< sal_Int32 >& _rFeatu
//------------------------------------------------------------------------------
void SAL_CALL FmXFormShell::formActivated(const EventObject& rEvent) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::formActivated" );
if ( impl_checkDisposed() )
return;
@@ -930,7 +915,6 @@ void SAL_CALL FmXFormShell::formActivated(const EventObject& rEvent) throw( Runt
//------------------------------------------------------------------------------
void SAL_CALL FmXFormShell::formDeactivated(const EventObject& rEvent) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::formDeactivated" );
if ( impl_checkDisposed() )
return;
@@ -941,7 +925,6 @@ void SAL_CALL FmXFormShell::formDeactivated(const EventObject& rEvent) throw( Ru
//------------------------------------------------------------------------------
void FmXFormShell::disposing()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::disposing" );
impl_checkDisposed();
FmXFormShell_BASE::disposing();
@@ -1019,7 +1002,6 @@ void FmXFormShell::disposing()
//------------------------------------------------------------------------------
void FmXFormShell::UpdateSlot( sal_Int16 _nId )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::UpdateSlot" );
if ( impl_checkDisposed() )
return;
@@ -1041,7 +1023,6 @@ void FmXFormShell::UpdateSlot( sal_Int16 _nId )
//------------------------------------------------------------------------------
void FmXFormShell::InvalidateSlot( sal_Int16 nId, sal_Bool bWithId )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::InvalidateSlot" );
if ( impl_checkDisposed() )
return;
@@ -1062,7 +1043,6 @@ void FmXFormShell::InvalidateSlot( sal_Int16 nId, sal_Bool bWithId )
//------------------------------------------------------------------------------
void FmXFormShell::LockSlotInvalidation(sal_Bool bLock)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::LockSlotInvalidation" );
if ( impl_checkDisposed() )
return;
@@ -1109,7 +1089,6 @@ IMPL_LINK(FmXFormShell, OnInvalidateSlots, void*, EMPTYARG)
//------------------------------------------------------------------------------
void FmXFormShell::ForceUpdateSelection(sal_Bool bAllowInvalidation)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ForceUpdateSelection" );
if ( impl_checkDisposed() )
return;
@@ -1131,7 +1110,6 @@ void FmXFormShell::ForceUpdateSelection(sal_Bool bAllowInvalidation)
//------------------------------------------------------------------------------
PopupMenu* FmXFormShell::GetConversionMenu()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetConversionMenu" );
const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings();
BOOL bIsHiContrastMode = rSettings.GetHighContrastMode();
@@ -1150,7 +1128,6 @@ PopupMenu* FmXFormShell::GetConversionMenu()
//------------------------------------------------------------------------------
bool FmXFormShell::isControlConversionSlot( sal_uInt16 nSlotId )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::isControlConversionSlot" );
for ( size_t i = 0; i < sizeof( nConvertSlots ) / sizeof( nConvertSlots[0] ); ++i )
if (nConvertSlots[i] == nSlotId)
return true;
@@ -1160,7 +1137,6 @@ bool FmXFormShell::isControlConversionSlot( sal_uInt16 nSlotId )
//------------------------------------------------------------------------------
bool FmXFormShell::executeControlConversionSlot( sal_uInt16 _nSlotId )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::executeControlConversionSlot" );
OSL_PRECOND( canConvertCurrentSelectionToControl( _nSlotId ), "FmXFormShell::executeControlConversionSlot: illegal call!" );
InterfaceBag::const_iterator aSelectedElement = m_aCurrentSelection.begin();
if ( aSelectedElement == m_aCurrentSelection.end() )
@@ -1172,7 +1148,6 @@ bool FmXFormShell::executeControlConversionSlot( sal_uInt16 _nSlotId )
//------------------------------------------------------------------------------
bool FmXFormShell::executeControlConversionSlot( const Reference< XFormComponent >& _rxObject, sal_uInt16 _nSlotId )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::executeControlConversionSlot" );
if ( impl_checkDisposed() )
return false;
@@ -1379,7 +1354,6 @@ bool FmXFormShell::executeControlConversionSlot( const Reference< XFormComponent
//------------------------------------------------------------------------------
bool FmXFormShell::canConvertCurrentSelectionToControl( sal_Int16 nConversionSlot )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::canConvertCurrentSelectionToControl" );
if ( m_aCurrentSelection.empty() )
return false;
@@ -1418,7 +1392,6 @@ bool FmXFormShell::canConvertCurrentSelectionToControl( sal_Int16 nConversionSlo
//------------------------------------------------------------------------------
void FmXFormShell::checkControlConversionSlotsForCurrentSelection( Menu& rMenu )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::checkControlConversionSlotsForCurrentSelection" );
for (sal_Int16 i=0; i<rMenu.GetItemCount(); ++i)
// der Context ist schon von einem Typ, der dem Eitnrag entspricht -> disable
rMenu.EnableItem( rMenu.GetItemId(i), canConvertCurrentSelectionToControl( rMenu.GetItemId( i ) ) );
@@ -1427,7 +1400,6 @@ void FmXFormShell::checkControlConversionSlotsForCurrentSelection( Menu& rMenu )
//------------------------------------------------------------------------------
void FmXFormShell::LoopGrids(sal_Int16 nWhat)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::LoopGrids" );
if ( impl_checkDisposed() )
return;
@@ -1497,7 +1469,6 @@ void FmXFormShell::LoopGrids(sal_Int16 nWhat)
//------------------------------------------------------------------------------
Reference< XControlContainer > FmXFormShell::getControlContainerForView()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getControlContainerForView" );
if ( impl_checkDisposed() )
return NULL;
@@ -1515,7 +1486,6 @@ Reference< XControlContainer > FmXFormShell::getControlContainerForView()
//------------------------------------------------------------------------------
void FmXFormShell::ExecuteTabOrderDialog( const Reference< XTabControllerModel >& _rxForForm )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteTabOrderDialog" );
if ( impl_checkDisposed() )
return;
@@ -1564,7 +1534,6 @@ void FmXFormShell::ExecuteTabOrderDialog( const Reference< XTabControllerModel >
//------------------------------------------------------------------------------
void FmXFormShell::ExecuteSearch()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteSearch" );
if ( impl_checkDisposed() )
return;
@@ -1711,7 +1680,6 @@ void FmXFormShell::ExecuteSearch()
//------------------------------------------------------------------------------
sal_Bool FmXFormShell::GetY2KState(sal_uInt16& n)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetY2KState" );
if ( impl_checkDisposed() )
return sal_False;
@@ -1751,7 +1719,6 @@ sal_Bool FmXFormShell::GetY2KState(sal_uInt16& n)
//------------------------------------------------------------------------------
void FmXFormShell::SetY2KState(sal_uInt16 n)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetY2KState" );
if ( impl_checkDisposed() )
return;
@@ -1826,7 +1793,6 @@ void FmXFormShell::SetY2KState(sal_uInt16 n)
//------------------------------------------------------------------------------
void FmXFormShell::CloseExternalFormViewer()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::CloseExternalFormViewer" );
if ( impl_checkDisposed() )
return;
@@ -1848,7 +1814,6 @@ void FmXFormShell::CloseExternalFormViewer()
//------------------------------------------------------------------------------
Reference< XResultSet> FmXFormShell::getInternalForm(const Reference< XResultSet>& _xForm) const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getInternalForm" );
if ( impl_checkDisposed() )
return NULL;
@@ -1864,7 +1829,6 @@ Reference< XResultSet> FmXFormShell::getInternalForm(const Reference< XResultSet
//------------------------------------------------------------------------------
Reference< XForm> FmXFormShell::getInternalForm(const Reference< XForm>& _xForm) const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getInternalForm" );
if ( impl_checkDisposed() )
return NULL;
@@ -1893,7 +1857,6 @@ namespace
//------------------------------------------------------------------------------
bool FmXFormShell::IsFormSlotEnabled( sal_Int32 _nSlot, FeatureState* _pCompleteState )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsFormSlotEnabled" );
const ::svx::ControllerFeatures& rController =
lcl_isNavigationRelevant( _nSlot )
? getNavControllerFeatures()
@@ -1909,7 +1872,6 @@ bool FmXFormShell::IsFormSlotEnabled( sal_Int32 _nSlot, FeatureState* _pComplete
//------------------------------------------------------------------------------
void FmXFormShell::ExecuteFormSlot( sal_Int32 _nSlot )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteFormSlot" );
const ::svx::ControllerFeatures& rController =
lcl_isNavigationRelevant( _nSlot )
? getNavControllerFeatures()
@@ -1945,7 +1907,6 @@ void FmXFormShell::ExecuteFormSlot( sal_Int32 _nSlot )
//------------------------------------------------------------------------------
void FmXFormShell::impl_switchActiveControllerListening( const bool _bListen )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_switchActiveControllerListening" );
Reference< XComponent> xComp( m_xActiveController, UNO_QUERY );
if ( !xComp.is() )
return;
@@ -1959,7 +1920,6 @@ void FmXFormShell::impl_switchActiveControllerListening( const bool _bListen )
//------------------------------------------------------------------------------
void FmXFormShell::setActiveController( const Reference< runtime::XFormController >& xController, sal_Bool _bNoSaveOldContent )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::setActiveController" );
if ( impl_checkDisposed() )
return;
@@ -2068,14 +2028,12 @@ void FmXFormShell::setActiveController( const Reference< runtime::XFormControlle
//------------------------------------------------------------------------------
void FmXFormShell::getCurrentSelection( InterfaceBag& /* [out] */ _rSelection ) const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getCurrentSelection" );
_rSelection = m_aCurrentSelection;
}
//------------------------------------------------------------------------------
bool FmXFormShell::setCurrentSelectionFromMark( const SdrMarkList& _rMarkList )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::setCurrentSelectionFromMark" );
m_aLastKnownMarkedControls.clear();
if ( ( _rMarkList.GetMarkCount() > 0 ) && isControlList( _rMarkList ) )
@@ -2087,14 +2045,12 @@ bool FmXFormShell::setCurrentSelectionFromMark( const SdrMarkList& _rMarkList )
//------------------------------------------------------------------------------
bool FmXFormShell::selectLastMarkedControls()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::selectLastMarkedControls" );
return setCurrentSelection( m_aLastKnownMarkedControls );
}
//------------------------------------------------------------------------------
bool FmXFormShell::setCurrentSelection( const InterfaceBag& _rSelection )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::setCurrentSelection" );
if ( impl_checkDisposed() )
return false;
@@ -2176,14 +2132,12 @@ bool FmXFormShell::setCurrentSelection( const InterfaceBag& _rSelection )
//------------------------------------------------------------------------------
bool FmXFormShell::isSolelySelected( const Reference< XInterface >& _rxObject )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::isSolelySelected" );
return ( m_aCurrentSelection.size() == 1 ) && ( *m_aCurrentSelection.begin() == _rxObject );
}
//------------------------------------------------------------------------------
void FmXFormShell::forgetCurrentForm()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::forgetCurrentForm" );
if ( !m_xCurrentForm.is() )
return;
@@ -2198,7 +2152,6 @@ void FmXFormShell::forgetCurrentForm()
//------------------------------------------------------------------------------
void FmXFormShell::impl_updateCurrentForm( const Reference< XForm >& _rxNewCurForm )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_updateCurrentForm" );
if ( impl_checkDisposed() )
return;
@@ -2217,7 +2170,6 @@ void FmXFormShell::impl_updateCurrentForm( const Reference< XForm >& _rxNewCurFo
//------------------------------------------------------------------------------
void FmXFormShell::startListening()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::startListening" );
if ( impl_checkDisposed() )
return;
@@ -2297,7 +2249,6 @@ void FmXFormShell::startListening()
//------------------------------------------------------------------------------
void FmXFormShell::stopListening()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::stopListening" );
if ( impl_checkDisposed() )
return;
@@ -2321,7 +2272,6 @@ void FmXFormShell::stopListening()
//------------------------------------------------------------------------------
void FmXFormShell::ShowSelectionProperties( sal_Bool bShow )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ShowSelectionProperties" );
if ( impl_checkDisposed() )
return;
@@ -2652,7 +2602,6 @@ IMPL_LINK(FmXFormShell, OnSearchContextRequest, FmSearchContext*, pfmscContextIn
//------------------------------------------------------------------------------
void FmXFormShell::elementInserted(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::elementInserted" );
if ( impl_checkDisposed() )
return;
@@ -2666,7 +2615,6 @@ void FmXFormShell::elementInserted(const ContainerEvent& evt) throw(::com::sun::
//------------------------------------------------------------------------------
void FmXFormShell::elementReplaced(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::elementReplaced" );
if ( impl_checkDisposed() )
return;
@@ -2680,7 +2628,6 @@ void FmXFormShell::elementReplaced(const ContainerEvent& evt) throw(::com::sun::
//------------------------------------------------------------------------------
void FmXFormShell::elementRemoved(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::elementRemoved" );
if ( impl_checkDisposed() )
return;
@@ -2693,7 +2640,6 @@ void FmXFormShell::elementRemoved(const ContainerEvent& evt) throw(::com::sun::s
//------------------------------------------------------------------------------
void FmXFormShell::UpdateForms( sal_Bool _bInvalidate )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::UpdateForms" );
if ( impl_checkDisposed() )
return;
@@ -2719,7 +2665,6 @@ void FmXFormShell::UpdateForms( sal_Bool _bInvalidate )
//------------------------------------------------------------------------------
void FmXFormShell::AddElement(const Reference< XInterface>& _xElement)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::AddElement" );
if ( impl_checkDisposed() )
return;
impl_AddElement_nothrow(_xElement);
@@ -2752,7 +2697,6 @@ void FmXFormShell::impl_AddElement_nothrow(const Reference< XInterface>& Element
//------------------------------------------------------------------------------
void FmXFormShell::RemoveElement(const Reference< XInterface>& Element)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::RemoveElement" );
if ( impl_checkDisposed() )
return;
impl_RemoveElement_nothrow(Element);
@@ -2789,7 +2733,6 @@ void FmXFormShell::impl_RemoveElement_nothrow(const Reference< XInterface>& Elem
//------------------------------------------------------------------------------
void FmXFormShell::selectionChanged(const EventObject& rEvent) throw(::com::sun::star::uno::RuntimeException)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::selectionChanged" );
if ( impl_checkDisposed() )
return;
@@ -2831,7 +2774,6 @@ IMPL_LINK(FmXFormShell, OnTimeOut, void*, /*EMPTYTAG*/)
//------------------------------------------------------------------------
void FmXFormShell::SetSelectionDelayed()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetSelectionDelayed" );
if ( impl_checkDisposed() )
return;
@@ -2842,7 +2784,6 @@ void FmXFormShell::SetSelectionDelayed()
//------------------------------------------------------------------------
void FmXFormShell::SetSelection(const SdrMarkList& rMarkList)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetSelection" );
if ( impl_checkDisposed() )
return;
@@ -2853,7 +2794,6 @@ void FmXFormShell::SetSelection(const SdrMarkList& rMarkList)
//------------------------------------------------------------------------
void FmXFormShell::DetermineSelection(const SdrMarkList& rMarkList)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::DetermineSelection" );
if ( setCurrentSelectionFromMark( rMarkList ) && IsPropBrwOpen() )
ShowSelectionProperties( sal_True );
}
@@ -2861,7 +2801,6 @@ void FmXFormShell::DetermineSelection(const SdrMarkList& rMarkList)
//------------------------------------------------------------------------------
sal_Bool FmXFormShell::IsPropBrwOpen() const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsPropBrwOpen" );
if ( impl_checkDisposed() )
return sal_False;
@@ -2898,7 +2837,6 @@ public:
//------------------------------------------------------------------------------
void FmXFormShell::SetDesignMode(sal_Bool bDesign)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetDesignMode" );
if ( impl_checkDisposed() )
return;
@@ -3031,7 +2969,6 @@ Reference< XControl> FmXFormShell::impl_getControl( const Reference< XControlMod
void FmXFormShell::impl_collectFormSearchContexts_nothrow( const Reference< XInterface>& _rxStartingPoint,
const ::rtl::OUString& _rCurrentLevelPrefix, FmFormArray& _out_rForms, ::std::vector< String >& _out_rNames )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_collectFormSearchContexts_nothrow" );
try
{
Reference< XIndexAccess> xContainer( _rxStartingPoint, UNO_QUERY );
@@ -3086,7 +3023,6 @@ void FmXFormShell::impl_collectFormSearchContexts_nothrow( const Reference< XInt
//------------------------------------------------------------------------------
void FmXFormShell::startFiltering()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::startFiltering" );
if ( impl_checkDisposed() )
return;
@@ -3103,12 +3039,14 @@ void FmXFormShell::startFiltering()
else
xContainer = getActiveController()->getContainer();
- FmWinRecList::iterator i = pXView->findWindow(xContainer);
- if (i != pXView->getWindowList().end())
+ PFormViewPageWindowAdapter pAdapter = pXView->findWindow( xContainer );
+ if ( pAdapter.is() )
{
- const ::std::vector< Reference< runtime::XFormController> >& rControllerList = (*i)->GetList();
- for (::std::vector< Reference< runtime::XFormController> >::const_iterator j = rControllerList.begin();
- j != rControllerList.end(); ++j)
+ const ::std::vector< Reference< runtime::XFormController> >& rControllerList = pAdapter->GetList();
+ for ( ::std::vector< Reference< runtime::XFormController> >::const_iterator j = rControllerList.begin();
+ j != rControllerList.end();
+ ++j
+ )
{
Reference< XModeSelector> xModeSelector(*j, UNO_QUERY);
if (xModeSelector.is())
@@ -3161,7 +3099,6 @@ void saveFilter(const Reference< runtime::XFormController >& _rxController)
//------------------------------------------------------------------------------
void FmXFormShell::stopFiltering(sal_Bool bSave)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::stopFiltering" );
if ( impl_checkDisposed() )
return;
@@ -3179,10 +3116,10 @@ void FmXFormShell::stopFiltering(sal_Bool bSave)
else
xContainer = getActiveController()->getContainer();
- FmWinRecList::iterator i = pXView->findWindow(xContainer);
- if (i != pXView->getWindowList().end())
+ PFormViewPageWindowAdapter pAdapter = pXView->findWindow(xContainer);
+ if ( pAdapter.is() )
{
- const ::std::vector< Reference< runtime::XFormController > >& rControllerList = (*i)->GetList();
+ const ::std::vector< Reference< runtime::XFormController > >& rControllerList = pAdapter->GetList();
::std::vector < ::rtl::OUString > aOriginalFilters;
::std::vector < sal_Bool > aOriginalApplyFlags;
@@ -3223,7 +3160,7 @@ void FmXFormShell::stopFiltering(sal_Bool bSave)
}
if (bSave) // execute the filter
{
- const ::std::vector< Reference< runtime::XFormController > > & rControllers = (*i)->GetList();
+ const ::std::vector< Reference< runtime::XFormController > > & rControllers = pAdapter->GetList();
for (::std::vector< Reference< runtime::XFormController > > ::const_iterator j = rControllers.begin();
j != rControllers.end(); ++j)
{
@@ -3300,7 +3237,6 @@ void clearFilter(const Reference< runtime::XFormController >& _rxController)
//------------------------------------------------------------------------------
void FmXFormShell::clearFilter()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::clearFilter" );
if ( impl_checkDisposed() )
return;
@@ -3316,12 +3252,14 @@ void FmXFormShell::clearFilter()
else
xContainer = getActiveController()->getContainer();
- FmWinRecList::iterator i = pXView->findWindow(xContainer);
- if (i != pXView->getWindowList().end())
+ PFormViewPageWindowAdapter pAdapter = pXView->findWindow(xContainer);
+ if ( pAdapter.is() )
{
- const ::std::vector< Reference< runtime::XFormController > > & rControllerList = (*i)->GetList();
- for (::std::vector< Reference< runtime::XFormController > > ::const_iterator j = rControllerList.begin();
- j != rControllerList.end(); ++j)
+ const ::std::vector< Reference< runtime::XFormController > > & rControllerList = pAdapter->GetList();
+ for ( ::std::vector< Reference< runtime::XFormController > > ::const_iterator j = rControllerList.begin();
+ j != rControllerList.end();
+ ++j
+ )
{
::clearFilter(*j);
}
@@ -3331,7 +3269,6 @@ void FmXFormShell::clearFilter()
//------------------------------------------------------------------------------
void FmXFormShell::CreateExternalView()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::CreateExternalView" );
if ( impl_checkDisposed() )
return;
@@ -3746,7 +3683,6 @@ void FmXFormShell::CreateExternalView()
//------------------------------------------------------------------------
void FmXFormShell::implAdjustConfigCache()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::implAdjustConfigCache" );
// get (cache) the wizard usage flag
Sequence< ::rtl::OUString > aNames(1);
aNames[0] = ::rtl::OUString::createFromAscii("FormControlPilotsEnabled");
@@ -3758,7 +3694,6 @@ void FmXFormShell::implAdjustConfigCache()
//------------------------------------------------------------------------
void FmXFormShell::Notify( const com::sun::star::uno::Sequence< rtl::OUString >& _rPropertyNames)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::Notify" );
if ( impl_checkDisposed() )
return;
@@ -3779,7 +3714,6 @@ void FmXFormShell::Commit()
//------------------------------------------------------------------------
void FmXFormShell::SetWizardUsing(sal_Bool _bUseThem)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetWizardUsing" );
m_bUseWizards = _bUseThem;
Sequence< ::rtl::OUString > aNames(1);
@@ -3792,7 +3726,6 @@ void FmXFormShell::SetWizardUsing(sal_Bool _bUseThem)
//------------------------------------------------------------------------
void FmXFormShell::viewDeactivated( FmFormView& _rCurrentView, sal_Bool _bDeactivateController /* = sal_True */ )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::viewDeactivated" );
if ( _rCurrentView.GetImpl() && !_rCurrentView.IsDesignMode() )
{
@@ -3864,7 +3797,6 @@ IMPL_LINK( FmXFormShell, OnFormsCreated, FmFormPage*, /*_pPage*/ )
//------------------------------------------------------------------------
void FmXFormShell::viewActivated( FmFormView& _rCurrentView, sal_Bool _bSyncAction /* = sal_False */ )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::viewActivated" );
FmFormPage* pPage = _rCurrentView.GetCurPage();
@@ -3913,7 +3845,6 @@ void FmXFormShell::viewActivated( FmFormView& _rCurrentView, sal_Bool _bSyncActi
//------------------------------------------------------------------------------
void FmXFormShell::impl_defaultCurrentForm_nothrow()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_defaultCurrentForm_nothrow" );
if ( impl_checkDisposed() )
return;
@@ -3944,7 +3875,6 @@ void FmXFormShell::impl_defaultCurrentForm_nothrow()
//------------------------------------------------------------------------------
void FmXFormShell::smartControlReset( const Reference< XIndexAccess >& _rxModels )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::smartControlReset" );
if (!_rxModels.is())
{
DBG_ERROR("FmXFormShell::smartControlReset: invalid container!");
@@ -4052,7 +3982,6 @@ namespace
//------------------------------------------------------------------------
void FmXFormShell::loadForms( FmFormPage* _pPage, const sal_uInt16 _nBehaviour /* FORMS_LOAD | FORMS_SYNC */ )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::loadForms" );
DBG_ASSERT( ( _nBehaviour & ( FORMS_ASYNC | FORMS_UNLOAD ) ) != ( FORMS_ASYNC | FORMS_UNLOAD ),
"FmXFormShell::loadForms: async loading not supported - this will heavily fail!" );
@@ -4130,41 +4059,35 @@ void FmXFormShell::loadForms( FmFormPage* _pPage, const sal_uInt16 _nBehaviour /
//------------------------------------------------------------------------
void FmXFormShell::ExecuteTextAttribute( SfxRequest& _rReq )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteTextAttribute" );
m_pTextShell->ExecuteTextAttribute( _rReq );
}
//------------------------------------------------------------------------
void FmXFormShell::GetTextAttributeState( SfxItemSet& _rSet )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetTextAttributeState" );
m_pTextShell->GetTextAttributeState( _rSet );
}
//------------------------------------------------------------------------
bool FmXFormShell::IsActiveControl( bool _bCountRichTextOnly ) const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsActiveControl" );
return m_pTextShell->IsActiveControl( _bCountRichTextOnly );
}
//------------------------------------------------------------------------
void FmXFormShell::ForgetActiveControl()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ForgetActiveControl" );
m_pTextShell->ForgetActiveControl();
}
//------------------------------------------------------------------------
void FmXFormShell::SetControlActivationHandler( const Link& _rHdl )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetControlActivationHandler" );
m_pTextShell->SetControlActivationHandler( _rHdl );
}
//------------------------------------------------------------------------
void FmXFormShell::handleShowPropertiesRequest()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::handleShowPropertiesRequest" );
if ( onlyControlsAreMarked() )
ShowSelectionProperties( sal_True );
}
@@ -4172,7 +4095,6 @@ void FmXFormShell::handleShowPropertiesRequest()
//------------------------------------------------------------------------
void FmXFormShell::handleMouseButtonDown( const SdrViewEvent& _rViewEvent )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::handleMouseButtonDown" );
// catch simple double clicks
if ( ( _rViewEvent.nMouseClicks == 2 ) && ( _rViewEvent.nMouseCode == MOUSE_LEFT ) )
{
@@ -4284,7 +4206,6 @@ ControlConversionMenuController::ControlConversionMenuController( sal_uInt16 _nI
//------------------------------------------------------------------------------
ControlConversionMenuController::~ControlConversionMenuController()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "ControlConversionMenuController::~ControlConversionMenuController" );
m_pMainMenu->SetPopupMenu(SID_FM_CHANGECONTROLTYPE, NULL);
delete m_pConversionMenu;
}
diff --git a/svx/source/form/fmsrccfg.cxx b/svx/source/form/fmsrccfg.cxx
index 243b45e099fb..dc396feec29f 100644
--- a/svx/source/form/fmsrccfg.cxx
+++ b/svx/source/form/fmsrccfg.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "fmsrccfg.hxx"
+#include "svx/fmsrccfg.hxx"
#include <svl/filerec.hxx>
#include <com/sun/star/i18n/TransliterationModules.hpp>
#include <comphelper/processfactory.hxx>
diff --git a/svx/source/form/fmsrcimp.cxx b/svx/source/form/fmsrcimp.cxx
index ee870f0c29b0..56957490150d 100644
--- a/svx/source/form/fmsrcimp.cxx
+++ b/svx/source/form/fmsrcimp.cxx
@@ -29,10 +29,10 @@
#include "precompiled_svx.hxx"
#ifndef _SVX_FMRESIDS_HRC
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#endif
#include "svx/fmtools.hxx"
-#include "fmsrccfg.hxx"
+#include "svx/fmsrccfg.hxx"
#include <tools/debug.hxx>
#include <tools/diagnose_ex.h>
#include <tools/wldcrd.hxx>
@@ -63,7 +63,7 @@
#include "fmprop.hrc"
#endif
#include "fmservs.hxx"
-#include "fmsrcimp.hxx"
+#include "svx/fmsrcimp.hxx"
#include <svx/fmsearch.hxx>
#include <comphelper/numbers.hxx>
diff --git a/svx/source/form/fmstring.src b/svx/source/form/fmstring.src
index 8e3df1a8cdf5..91b5d28203a0 100644
--- a/svx/source/form/fmstring.src
+++ b/svx/source/form/fmstring.src
@@ -25,7 +25,7 @@
*
************************************************************************/
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
/* Strings fuer Uebersetzung */
String RID_ERR_CONTEXT_ADDFORM
{
diff --git a/svx/source/form/fmtextcontroldialogs.cxx b/svx/source/form/fmtextcontroldialogs.cxx
index c10bdfe14ec5..d758b5622e0b 100644
--- a/svx/source/form/fmtextcontroldialogs.cxx
+++ b/svx/source/form/fmtextcontroldialogs.cxx
@@ -44,7 +44,7 @@
//#include "tabstpge.hxx"
#endif
-#include "flagsdef.hxx"
+#include "svx/flagsdef.hxx"
#include <svl/intitem.hxx>
#include <com/sun/star/uno/Sequence.hxx>
diff --git a/svx/source/form/fmtextcontrolshell.cxx b/svx/source/form/fmtextcontrolshell.cxx
index 320baea302b7..19ca20dd7983 100644
--- a/svx/source/form/fmtextcontrolshell.cxx
+++ b/svx/source/form/fmtextcontrolshell.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include "fmprop.hrc"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmtextcontroldialogs.hxx"
#include "fmtextcontrolfeature.hxx"
#include "fmtextcontrolshell.hxx"
diff --git a/svx/source/form/fmundo.cxx b/svx/source/form/fmundo.cxx
index e6559850ea5d..e63325f710e9 100644
--- a/svx/source/form/fmundo.cxx
+++ b/svx/source/form/fmundo.cxx
@@ -31,10 +31,10 @@
#include "fmundo.hxx"
#include "fmpgeimp.hxx"
#include "svx/dbtoolsclient.hxx"
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include "fmobj.hxx"
#include "fmprop.hrc"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "svx/fmglob.hxx"
#include "svx/dialmgr.hxx"
#include "svx/fmmodel.hxx"
diff --git a/svx/source/form/fmview.cxx b/svx/source/form/fmview.cxx
index 22681d511b82..f9980284993d 100644
--- a/svx/source/form/fmview.cxx
+++ b/svx/source/form/fmview.cxx
@@ -50,7 +50,7 @@
#include <basic/sbx.hxx>
#include "fmitems.hxx"
#include "fmobj.hxx"
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdpagv.hxx>
#include <svx/svdogrp.hxx>
#include <svx/fmview.hxx>
@@ -76,7 +76,7 @@
#include <vcl/stdtext.hxx>
#include <svx/fmglob.hxx>
#include <svx/sdrpagewindow.hxx>
-#include "sdrpaintwindow.hxx"
+#include "svx/sdrpaintwindow.hxx"
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -139,9 +139,7 @@ void FmFormView::Init()
const SfxPoolItem *pItem=0;
if ( pObjShell->GetMedium()->GetItemSet()->GetItemState( SID_COMPONENTDATA, sal_False, &pItem ) == SFX_ITEM_SET )
{
- Sequence< PropertyValue > aSeq;
- ( ((SfxUnoAnyItem*)pItem)->GetValue() ) >>= aSeq;
- ::comphelper::NamedValueCollection aComponentData( aSeq );
+ ::comphelper::NamedValueCollection aComponentData( ((SfxUnoAnyItem*)pItem)->GetValue() );
bInitDesignMode = aComponentData.getOrDefault( "ApplyFormDesignMode", bInitDesignMode );
}
}
diff --git a/svx/source/form/fmvwimp.cxx b/svx/source/form/fmvwimp.cxx
index 0bf6a35abd98..8e0f6b2a261a 100644
--- a/svx/source/form/fmvwimp.cxx
+++ b/svx/source/form/fmvwimp.cxx
@@ -32,15 +32,15 @@
#include "fmobj.hxx"
#include "fmpgeimp.hxx"
#include "fmprop.hrc"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmservs.hxx"
#include "fmshimp.hxx"
#include "svx/fmtools.hxx"
#include "fmundo.hxx"
#include "fmvwimp.hxx"
#include "formcontrolfactory.hxx"
-#include "sdrpaintwindow.hxx"
-#include "svditer.hxx"
+#include "svx/sdrpaintwindow.hxx"
+#include "svx/svditer.hxx"
#include "svx/dataaccessdescriptor.hxx"
#include "svx/dialmgr.hxx"
#include "svx/fmglob.hxx"
@@ -51,7 +51,7 @@
#include "svx/sdrpagewindow.hxx"
#include "svx/svdogrp.hxx"
#include "svx/svdpagv.hxx"
-#include "xmlexchg.hxx"
+#include "svx/xmlexchg.hxx"
/** === begin UNO includes === **/
#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
@@ -173,20 +173,19 @@ public:
};
//========================================================================
-DBG_NAME(FmXPageViewWinRec)
+DBG_NAME(FormViewPageWindowAdapter)
//------------------------------------------------------------------------
-FmXPageViewWinRec::FmXPageViewWinRec( const ::comphelper::ComponentContext& _rContext, const SdrPageWindow& _rWindow, FmXFormView* _pViewImpl )
+FormViewPageWindowAdapter::FormViewPageWindowAdapter( const ::comphelper::ComponentContext& _rContext, const SdrPageWindow& _rWindow, FmXFormView* _pViewImpl )
: m_xControlContainer( _rWindow.GetControlContainer() ),
m_aContext( _rContext ),
m_pViewImpl( _pViewImpl ),
m_pWindow( dynamic_cast< Window* >( &_rWindow.GetPaintWindow().GetOutputDevice() ) )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::FmXPageViewWinRec" );
- DBG_CTOR(FmXPageViewWinRec,NULL);
+ DBG_CTOR(FormViewPageWindowAdapter,NULL);
// create an XFormController for every form
FmFormPage* pFormPage = dynamic_cast< FmFormPage* >( _rWindow.GetPageView().GetPage() );
- DBG_ASSERT( pFormPage, "FmXPageViewWinRec::FmXPageViewWinRec: no FmFormPage found!" );
+ DBG_ASSERT( pFormPage, "FormViewPageWindowAdapter::FormViewPageWindowAdapter: no FmFormPage found!" );
if ( pFormPage )
{
try
@@ -207,15 +206,14 @@ FmXPageViewWinRec::FmXPageViewWinRec( const ::comphelper::ComponentContext& _rCo
}
}
// -----------------------------------------------------------------------------
-FmXPageViewWinRec::~FmXPageViewWinRec()
+FormViewPageWindowAdapter::~FormViewPageWindowAdapter()
{
- DBG_DTOR(FmXPageViewWinRec,NULL);
+ DBG_DTOR(FormViewPageWindowAdapter,NULL);
}
//------------------------------------------------------------------
-void FmXPageViewWinRec::dispose()
+void FormViewPageWindowAdapter::dispose()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::dispose" );
for ( ::std::vector< Reference< XFormController > >::const_iterator i = m_aControllerList.begin();
i != m_aControllerList.end();
++i
@@ -249,39 +247,34 @@ void FmXPageViewWinRec::dispose()
//------------------------------------------------------------------------------
-sal_Bool SAL_CALL FmXPageViewWinRec::hasElements(void) throw( RuntimeException )
+sal_Bool SAL_CALL FormViewPageWindowAdapter::hasElements(void) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::hasElements" );
return getCount() != 0;
}
//------------------------------------------------------------------------------
-Type SAL_CALL FmXPageViewWinRec::getElementType(void) throw( RuntimeException )
+Type SAL_CALL FormViewPageWindowAdapter::getElementType(void) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getElementType" );
return ::getCppuType((const Reference< XFormController>*)0);
}
// XEnumerationAccess
//------------------------------------------------------------------------------
-Reference< XEnumeration > SAL_CALL FmXPageViewWinRec::createEnumeration(void) throw( RuntimeException )
+Reference< XEnumeration > SAL_CALL FormViewPageWindowAdapter::createEnumeration(void) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::createEnumeration" );
return new ::comphelper::OEnumerationByIndex(this);
}
// XIndexAccess
//------------------------------------------------------------------------------
-sal_Int32 SAL_CALL FmXPageViewWinRec::getCount(void) throw( RuntimeException )
+sal_Int32 SAL_CALL FormViewPageWindowAdapter::getCount(void) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getCount" );
return m_aControllerList.size();
}
//------------------------------------------------------------------------------
-Any SAL_CALL FmXPageViewWinRec::getByIndex(sal_Int32 nIndex) throw( IndexOutOfBoundsException, WrappedTargetException, RuntimeException )
+Any SAL_CALL FormViewPageWindowAdapter::getByIndex(sal_Int32 nIndex) throw( IndexOutOfBoundsException, WrappedTargetException, RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getByIndex" );
if (nIndex < 0 ||
nIndex >= getCount())
throw IndexOutOfBoundsException();
@@ -292,7 +285,7 @@ Any SAL_CALL FmXPageViewWinRec::getByIndex(sal_Int32 nIndex) throw( IndexOutOfBo
}
//------------------------------------------------------------------------
-void SAL_CALL FmXPageViewWinRec::makeVisible( const Reference< XControl >& _Control ) throw (RuntimeException)
+void SAL_CALL FormViewPageWindowAdapter::makeVisible( const Reference< XControl >& _Control ) throw (RuntimeException)
{
::vos::OGuard aSolarGuard(Application::GetSolarMutex());
@@ -331,9 +324,8 @@ Reference< XFormController > getControllerSearchChilds( const Reference< XIndex
// Search the according controller
//------------------------------------------------------------------------
-Reference< XFormController > FmXPageViewWinRec::getController( const Reference< XForm > & xForm ) const
+Reference< XFormController > FormViewPageWindowAdapter::getController( const Reference< XForm > & xForm ) const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getController" );
Reference< XTabControllerModel > xModel(xForm, UNO_QUERY);
for (::std::vector< Reference< XFormController > >::const_iterator i = m_aControllerList.begin();
i != m_aControllerList.end(); i++)
@@ -350,9 +342,9 @@ Reference< XFormController > FmXPageViewWinRec::getController( const Reference<
}
//------------------------------------------------------------------------
-void FmXPageViewWinRec::setController(const Reference< XForm > & xForm, const Reference< XFormController >& _rxParentController )
+void FormViewPageWindowAdapter::setController(const Reference< XForm > & xForm, const Reference< XFormController >& _rxParentController )
{
- DBG_ASSERT( xForm.is(), "FmXPageViewWinRec::setController: there should be a form!" );
+ DBG_ASSERT( xForm.is(), "FormViewPageWindowAdapter::setController: there should be a form!" );
Reference< XIndexAccess > xFormCps(xForm, UNO_QUERY);
if (!xFormCps.is())
return;
@@ -410,10 +402,9 @@ void FmXPageViewWinRec::setController(const Reference< XForm > & xForm, const Re
}
//------------------------------------------------------------------------
-void FmXPageViewWinRec::updateTabOrder( const Reference< XForm >& _rxForm )
+void FormViewPageWindowAdapter::updateTabOrder( const Reference< XForm >& _rxForm )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::updateTabOrder" );
- OSL_PRECOND( _rxForm.is(), "FmXPageViewWinRec::updateTabOrder: illegal argument!" );
+ OSL_PRECOND( _rxForm.is(), "FormViewPageWindowAdapter::updateTabOrder: illegal argument!" );
if ( !_rxForm.is() )
return;
@@ -457,13 +448,11 @@ FmXFormView::FmXFormView(const ::comphelper::ComponentContext& _rContext, FmForm
,m_bFirstActivation( true )
,m_isTabOrderUpdateSuspended( false )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::FmXFormView" );
}
//------------------------------------------------------------------------
void FmXFormView::cancelEvents()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::cancelEvents" );
if ( m_nActivationEvent )
{
Application::RemoveUserEvent( m_nActivationEvent );
@@ -492,7 +481,6 @@ void FmXFormView::cancelEvents()
//------------------------------------------------------------------------
void FmXFormView::notifyViewDying( )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::notifyViewDying" );
DBG_ASSERT( m_pView, "FmXFormView::notifyViewDying: my view already died!" );
m_pView = NULL;
cancelEvents();
@@ -501,7 +489,17 @@ void FmXFormView::notifyViewDying( )
//------------------------------------------------------------------------
FmXFormView::~FmXFormView()
{
- DBG_ASSERT(m_aWinList.size() == 0, "FmXFormView::~FmXFormView: Window list not empty!");
+ DBG_ASSERT( m_aPageWindowAdapters.empty(), "FmXFormView::~FmXFormView: Window list not empty!" );
+ if ( !m_aPageWindowAdapters.empty() )
+ {
+ for ( PageWindowAdapterList::const_iterator loop = m_aPageWindowAdapters.begin();
+ loop != m_aPageWindowAdapters.end();
+ ++loop
+ )
+ {
+ (*loop)->dispose();
+ }
+ }
cancelEvents();
@@ -513,7 +511,6 @@ FmXFormView::~FmXFormView()
//------------------------------------------------------------------------------
void SAL_CALL FmXFormView::disposing(const EventObject& Source) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::disposing" );
if ( m_xWindow.is() && Source.Source == m_xWindow )
removeGridWindowListening();
}
@@ -522,7 +519,6 @@ void SAL_CALL FmXFormView::disposing(const EventObject& Source) throw( RuntimeEx
//------------------------------------------------------------------------------
void SAL_CALL FmXFormView::formActivated(const EventObject& rEvent) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::formActivated" );
if ( m_pView && m_pView->GetFormShell() && m_pView->GetFormShell()->GetImpl() )
m_pView->GetFormShell()->GetImpl()->formActivated( rEvent );
}
@@ -530,7 +526,6 @@ void SAL_CALL FmXFormView::formActivated(const EventObject& rEvent) throw( Runti
//------------------------------------------------------------------------------
void SAL_CALL FmXFormView::formDeactivated(const EventObject& rEvent) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::formDeactivated" );
if ( m_pView && m_pView->GetFormShell() && m_pView->GetFormShell()->GetImpl() )
m_pView->GetFormShell()->GetImpl()->formDeactivated( rEvent );
}
@@ -539,7 +534,6 @@ void SAL_CALL FmXFormView::formDeactivated(const EventObject& rEvent) throw( Run
//------------------------------------------------------------------------------
void SAL_CALL FmXFormView::elementInserted(const ContainerEvent& evt) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::elementInserted" );
try
{
Reference< XControlContainer > xControlContainer( evt.Source, UNO_QUERY_THROW );
@@ -554,11 +548,9 @@ void SAL_CALL FmXFormView::elementInserted(const ContainerEvent& evt) throw( Run
}
else
{
- FmWinRecList::iterator pos = findWindow( xControlContainer );
- if ( pos != m_aWinList.end() )
- {
- (*pos)->updateTabOrder( xForm );
- }
+ PFormViewPageWindowAdapter pAdapter = findWindow( xControlContainer );
+ if ( pAdapter.is() )
+ pAdapter->updateTabOrder( xForm );
}
}
catch( const Exception& )
@@ -570,92 +562,80 @@ void SAL_CALL FmXFormView::elementInserted(const ContainerEvent& evt) throw( Run
//------------------------------------------------------------------------------
void SAL_CALL FmXFormView::elementReplaced(const ContainerEvent& evt) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::elementReplaced" );
elementInserted(evt);
}
//------------------------------------------------------------------------------
void SAL_CALL FmXFormView::elementRemoved(const ContainerEvent& /*evt*/) throw( RuntimeException )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::elementRemoved" );
}
//------------------------------------------------------------------------------
-FmWinRecList::const_iterator FmXFormView::findWindow( const Reference< XControlContainer >& _rxCC ) const
+PFormViewPageWindowAdapter FmXFormView::findWindow( const Reference< XControlContainer >& _rxCC ) const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::findWindow" );
- for (FmWinRecList::const_iterator i = m_aWinList.begin();
- i != m_aWinList.end(); i++)
- {
- if ( _rxCC == (*i)->getControlContainer() )
- return i;
- }
- return m_aWinList.end();
-}
-
-//------------------------------------------------------------------------------
-FmWinRecList::iterator FmXFormView::findWindow( const Reference< XControlContainer >& _rxCC )
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::findWindow" );
- for (FmWinRecList::iterator i = m_aWinList.begin();
- i != m_aWinList.end(); i++)
+ for ( PageWindowAdapterList::const_iterator i = m_aPageWindowAdapters.begin();
+ i != m_aPageWindowAdapters.end();
+ ++i
+ )
{
if ( _rxCC == (*i)->getControlContainer() )
- return i;
+ return *i;
}
- return m_aWinList.end();
+ return NULL;
}
//------------------------------------------------------------------------------
void FmXFormView::addWindow(const SdrPageWindow& rWindow)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::addWindow" );
FmFormPage* pFormPage = PTR_CAST( FmFormPage, rWindow.GetPageView().GetPage() );
if ( !pFormPage )
return;
Reference< XControlContainer > xCC = rWindow.GetControlContainer();
- if ( xCC.is() && findWindow( xCC ) == m_aWinList.end())
+ if ( xCC.is()
+ && ( !findWindow( xCC ).is() )
+ )
{
- FmXPageViewWinRec *pFmRec = new FmXPageViewWinRec( m_aContext, rWindow, this );
- pFmRec->acquire();
-
- m_aWinList.push_back(pFmRec);
+ PFormViewPageWindowAdapter pAdapter = new FormViewPageWindowAdapter( m_aContext, rWindow, this );
+ m_aPageWindowAdapters.push_back( pAdapter );
// Am ControlContainer horchen um Aenderungen mitzbekommen
Reference< XContainer > xContainer( xCC, UNO_QUERY );
- if (xContainer.is())
- xContainer->addContainerListener(this);
+ if ( xContainer.is() )
+ xContainer->addContainerListener( this );
}
}
//------------------------------------------------------------------------------
void FmXFormView::removeWindow( const Reference< XControlContainer >& _rxCC )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::removeWindow" );
// Wird gerufen, wenn
// - in den Design-Modus geschaltet wird
// - ein Window geloescht wird, waehrend man im Design-Modus ist
// - der Control-Container fuer ein Window entfernt wird, waehrend
// der aktive Modus eingeschaltet ist.
- FmWinRecList::iterator i = findWindow( _rxCC );
- if (i != m_aWinList.end())
+
+ for ( PageWindowAdapterList::iterator i = m_aPageWindowAdapters.begin();
+ i != m_aPageWindowAdapters.end();
+ ++i
+ )
{
- // Am ControlContainer horchen um Aenderungen mitzbekommen
+ if ( _rxCC != (*i)->getControlContainer() )
+ continue;
+
Reference< XContainer > xContainer( _rxCC, UNO_QUERY );
- if (xContainer.is())
- xContainer->removeContainerListener(this);
+ if ( xContainer.is() )
+ xContainer->removeContainerListener( this );
(*i)->dispose();
- (*i)->release();
- m_aWinList.erase(i);
+ m_aPageWindowAdapters.erase( i );
+ break;
}
}
//------------------------------------------------------------------------------
void FmXFormView::displayAsyncErrorMessage( const SQLErrorEvent& _rEvent )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::displayAsyncErrorMessage" );
DBG_ASSERT( 0 == m_nErrorMessageEvent, "FmXFormView::displayAsyncErrorMessage: not too fast, please!" );
// This should not happen - usually, the PostUserEvent is faster than any possible user
// interaction which could trigger a new error. If it happens, we need a queue for the events.
@@ -674,7 +654,6 @@ IMPL_LINK(FmXFormView, OnDelayedErrorMessage, void*, /*EMPTYTAG*/)
//------------------------------------------------------------------------------
void FmXFormView::onFirstViewActivation( const FmFormModel* _pDocModel )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::onFirstViewActivation" );
if ( _pDocModel && _pDocModel->GetAutoControlFocus() )
m_nAutoFocusEvent = Application::PostUserEvent( LINK( this, FmXFormView, OnAutoFocus ) );
}
@@ -682,7 +661,6 @@ void FmXFormView::onFirstViewActivation( const FmFormModel* _pDocModel )
//------------------------------------------------------------------------------
void FmXFormView::suspendTabOrderUpdate()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::suspendTabOrderUpdate" );
OSL_ENSURE( !m_isTabOrderUpdateSuspended, "FmXFormView::suspendTabOrderUpdate: nesting not allowed!" );
m_isTabOrderUpdateSuspended = true;
}
@@ -690,7 +668,6 @@ void FmXFormView::suspendTabOrderUpdate()
//------------------------------------------------------------------------------
void FmXFormView::resumeTabOrderUpdate()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::resumeTabOrderUpdate" );
OSL_ENSURE( m_isTabOrderUpdateSuspended, "FmXFormView::resumeTabOrderUpdate: not suspended!" );
m_isTabOrderUpdateSuspended = false;
@@ -700,8 +677,8 @@ void FmXFormView::resumeTabOrderUpdate()
++container
)
{
- FmWinRecList::iterator pos = findWindow( container->first );
- if ( pos == m_aWinList.end() )
+ PFormViewPageWindowAdapter pAdapter = findWindow( container->first );
+ if ( !pAdapter.is() )
continue;
for ( SetOfForms::const_iterator form = container->second.begin();
@@ -709,7 +686,7 @@ void FmXFormView::resumeTabOrderUpdate()
++form
)
{
- (*pos)->updateTabOrder( *form );
+ pAdapter->updateTabOrder( *form );
}
}
m_aNeedTabOrderUpdate.clear();
@@ -730,41 +707,42 @@ IMPL_LINK(FmXFormView, OnActivate, void*, /*EMPTYTAG*/)
if (m_pView->GetFormShell() && m_pView->GetActualOutDev() && m_pView->GetActualOutDev()->GetOutDevType() == OUTDEV_WINDOW)
{
Window* pWindow = const_cast<Window*>(static_cast<const Window*>(m_pView->GetActualOutDev()));
- FmXPageViewWinRec* pFmRec = m_aWinList.size() ? m_aWinList[0] : NULL;
- for (FmWinRecList::const_iterator i = m_aWinList.begin();
- i != m_aWinList.end(); i++)
+ PFormViewPageWindowAdapter pAdapter = m_aPageWindowAdapters.empty() ? NULL : m_aPageWindowAdapters[0];
+ for ( PageWindowAdapterList::const_iterator i = m_aPageWindowAdapters.begin();
+ i != m_aPageWindowAdapters.end();
+ ++i
+ )
{
- if (pWindow == (*i)->getWindow())
- pFmRec =*i;
+ if ( pWindow == (*i)->getWindow() )
+ pAdapter =*i;
}
- if (pFmRec)
+ if ( pAdapter.get() )
{
- for (::std::vector< Reference< XFormController > >::const_iterator i = pFmRec->GetList().begin();
- i != pFmRec->GetList().end(); i++)
+ for ( ::std::vector< Reference< XFormController > >::const_iterator i = pAdapter->GetList().begin();
+ i != pAdapter->GetList().end();
+ ++i
+ )
{
const Reference< XFormController > & xController = *i;
- if (xController.is())
+ if ( !xController.is() )
+ continue;
+
+ // only database forms are to be activated
+ Reference< XRowSet > xForm(xController->getModel(), UNO_QUERY);
+ if ( !xForm.is() || !OStaticDataAccessTools().getRowSetConnection( xForm ).is() )
+ continue;
+
+ Reference< XPropertySet > xFormSet( xForm, UNO_QUERY );
+ ENSURE_OR_CONTINUE( xFormSet.is(), "FmXFormView::OnActivate: a form which does not have properties?" );
+
+ const ::rtl::OUString aSource = ::comphelper::getString( xFormSet->getPropertyValue( FM_PROP_COMMAND ) );
+ if ( aSource.getLength() )
{
- // Nur bei Datenbankformularen erfolgt eine aktivierung
- Reference< XRowSet > xForm(xController->getModel(), UNO_QUERY);
- if (xForm.is() && OStaticDataAccessTools().getRowSetConnection(xForm).is())
- {
- Reference< XPropertySet > xFormSet(xForm, UNO_QUERY);
- if (xFormSet.is())
- {
- // wenn es eine Datenquelle gibt, dann als aktive ::com::sun::star::form setzen
- ::rtl::OUString aSource = ::comphelper::getString(xFormSet->getPropertyValue(FM_PROP_COMMAND));
- if (aSource.getLength())
- {
- // benachrichtigung der Shell
- FmXFormShell* pShImpl = m_pView->GetFormShell()->GetImpl();
- if (pShImpl)
- pShImpl->setActiveController(xController);
- break;
- }
- }
- }
+ FmXFormShell* pShImpl = m_pView->GetFormShell()->GetImpl();
+ if ( pShImpl )
+ pShImpl->setActiveController( xController );
+ break;
}
}
}
@@ -775,7 +753,6 @@ IMPL_LINK(FmXFormView, OnActivate, void*, /*EMPTYTAG*/)
//------------------------------------------------------------------------------
void FmXFormView::Activate(sal_Bool bSync)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::Activate" );
if (m_nActivationEvent)
{
Application::RemoveUserEvent(m_nActivationEvent);
@@ -793,7 +770,6 @@ void FmXFormView::Activate(sal_Bool bSync)
//------------------------------------------------------------------------------
void FmXFormView::Deactivate(BOOL bDeactivateController)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::Deactivate" );
if (m_nActivationEvent)
{
Application::RemoveUserEvent(m_nActivationEvent);
@@ -808,13 +784,11 @@ void FmXFormView::Deactivate(BOOL bDeactivateController)
//------------------------------------------------------------------------------
FmFormShell* FmXFormView::GetFormShell() const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::GetFormShell" );
return m_pView ? m_pView->GetFormShell() : NULL;
}
// -----------------------------------------------------------------------------
void FmXFormView::AutoFocus( sal_Bool _bSync )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::AutoFocus" );
if (m_nAutoFocusEvent)
Application::RemoveUserEvent(m_nAutoFocusEvent);
@@ -927,18 +901,20 @@ namespace
// -----------------------------------------------------------------------------
Reference< XFormController > FmXFormView::getFormController( const Reference< XForm >& _rxForm, const OutputDevice& _rDevice ) const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::getFormController" );
Reference< XFormController > xController;
- for ( FmWinRecList::const_iterator rec = m_aWinList.begin(); rec != m_aWinList.end(); ++rec )
+ for ( PageWindowAdapterList::const_iterator pos = m_aPageWindowAdapters.begin();
+ pos != m_aPageWindowAdapters.end();
+ ++pos
+ )
{
- const FmXPageViewWinRec* pViewWinRec( *rec );
- OSL_ENSURE( pViewWinRec, "FmXFormView::getFormController: invalid PageViewWinRec!" );
- if ( !pViewWinRec || ( pViewWinRec->getWindow() != &_rDevice ) )
+ const PFormViewPageWindowAdapter pAdapter( *pos );
+ ENSURE_OR_CONTINUE( pAdapter.get(), "FmXFormView::getFormController: invalid page window adapter!" );
+ if ( pAdapter->getWindow() != &_rDevice )
// wrong device
continue;
- xController = pViewWinRec->getController( _rxForm );
+ xController = pAdapter->getController( _rxForm );
if ( xController.is() )
break;
}
@@ -960,12 +936,10 @@ IMPL_LINK(FmXFormView, OnAutoFocus, void*, /*EMPTYTAG*/)
FmFormPage* pPage = m_pView ? PTR_CAST( FmFormPage, m_pView->GetSdrPageView()->GetPage() ) : NULL;
Reference< XIndexAccess > xForms( pPage ? Reference< XIndexAccess >( pPage->GetForms(), UNO_QUERY ) : Reference< XIndexAccess >() );
- const FmXPageViewWinRec* pViewWinRec = m_aWinList.size() ? m_aWinList[0] : NULL;
- const Window* pWindow = pViewWinRec ? pViewWinRec->getWindow() : NULL;
+ const PFormViewPageWindowAdapter pAdapter = m_aPageWindowAdapters.empty() ? NULL : m_aPageWindowAdapters[0];
+ const Window* pWindow = pAdapter.get() ? pAdapter->getWindow() : NULL;
- OSL_ENSURE( xForms.is() && pWindow, "FmXFormView::OnAutoFocus: could not collect all essentials!" );
- if ( !xForms.is() || !pWindow )
- return 0L;
+ ENSURE_OR_RETURN( xForms.is() && pWindow, "FmXFormView::OnAutoFocus: could not collect all essentials!", 0L );
try
{
@@ -973,7 +947,7 @@ IMPL_LINK(FmXFormView, OnAutoFocus, void*, /*EMPTYTAG*/)
if ( !xForms->getCount() )
break;
Reference< XForm > xForm( xForms->getByIndex( 0 ), UNO_QUERY_THROW );
- Reference< XTabController > xTabController( pViewWinRec->getController( xForm ), UNO_QUERY_THROW );
+ Reference< XTabController > xTabController( pAdapter->getController( xForm ), UNO_QUERY_THROW );
// go for the first control of the controller
Sequence< Reference< XControl > > aControls( xTabController->getControls() );
@@ -1024,7 +998,6 @@ IMPL_LINK(FmXFormView, OnAutoFocus, void*, /*EMPTYTAG*/)
// -----------------------------------------------------------------------------
void FmXFormView::onCreatedFormObject( FmFormObj& _rFormObject )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::onCreatedFormObject" );
FmFormShell* pShell = m_pView ? m_pView->GetFormShell() : NULL;
FmXFormShell* pShellImpl = pShell ? pShell->GetImpl() : NULL;
OSL_ENSURE( pShellImpl, "FmXFormView::onCreatedFormObject: no form shell!" );
@@ -1155,7 +1128,6 @@ namespace
// -----------------------------------------------------------------------------
SdrObject* FmXFormView::implCreateFieldControl( const ::svx::ODataAccessDescriptor& _rColumnDescriptor )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::implCreateFieldControl" );
// not if we're in design mode
if ( !m_pView->IsDesignMode() )
return NULL;
@@ -1387,7 +1359,6 @@ SdrObject* FmXFormView::implCreateFieldControl( const ::svx::ODataAccessDescript
// -----------------------------------------------------------------------------
SdrObject* FmXFormView::implCreateXFormsControl( const ::svx::OXFormsDescriptor &_rDesc )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::implCreateXFormsControl" );
// not if we're in design mode
if ( !m_pView->IsDesignMode() )
return NULL;
@@ -1523,7 +1494,6 @@ bool FmXFormView::createControlLabelPair( OutputDevice& _rOutDev, sal_Int32 _nXO
const Reference< XDataSource >& _rxDataSource, const ::rtl::OUString& _rDataSourceName,
const ::rtl::OUString& _rCommand, const sal_Int32 _nCommandType )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::createControlLabelPair" );
if ( !createControlLabelPair( m_aContext, _rOutDev, _nXOffsetMM, _nYOffsetMM,
_rxField, _rxNumberFormats, _nControlObjectID, _rFieldPostfix, FmFormInventor, OBJ_FM_FIXEDTEXT,
NULL, NULL, NULL, _rpLabel, _rpControl )
@@ -1551,7 +1521,6 @@ bool FmXFormView::createControlLabelPair( const ::comphelper::ComponentContext&
const ::rtl::OUString& _rFieldPostfix, UINT32 _nInventor, UINT16 _nLabelObjectID,
SdrPage* _pLabelPage, SdrPage* _pControlPage, SdrModel* _pModel, SdrUnoObj*& _rpLabel, SdrUnoObj*& _rpControl)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::createControlLabelPair" );
sal_Int32 nDataType = 0;
::rtl::OUString sFieldName;
Any aFieldName;
@@ -1717,7 +1686,6 @@ void FmXFormView::ObjectRemoveListener::Notify( SfxBroadcaster& /*rBC*/, const S
//------------------------------------------------------------------------------
void FmXFormView::ObjectRemovedInAliveMode( const SdrObject* pObject )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::ObjectRemovedInAliveMode" );
// wenn das entfernte Objekt in meiner MarkList, die ich mir beim Umschalten in den Alive-Mode gemerkt habe, steht,
// muss ich es jetzt da rausnehmen, da ich sonst beim Zurueckschalten versuche, die Markierung wieder zu setzen
// (interesanterweise geht das nur bei gruppierten Objekten schief (beim Zugriff auf deren ObjList GPF), nicht bei einzelnen)
@@ -1740,7 +1708,6 @@ void FmXFormView::ObjectRemovedInAliveMode( const SdrObject* pObject )
//------------------------------------------------------------------------------
void FmXFormView::stopMarkListWatching()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::stopMarkListWatching" );
if ( m_pWatchStoredList )
{
m_pWatchStoredList->EndListeningAll();
@@ -1752,7 +1719,6 @@ void FmXFormView::stopMarkListWatching()
//------------------------------------------------------------------------------
void FmXFormView::startMarkListWatching()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::startMarkListWatching" );
if ( !m_pWatchStoredList )
{
m_pWatchStoredList = new ObjectRemoveListener( this );
@@ -1769,7 +1735,6 @@ void FmXFormView::startMarkListWatching()
//------------------------------------------------------------------------------
void FmXFormView::saveMarkList( sal_Bool _bSmartUnmark )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::saveMarkList" );
if ( m_pView )
{
m_aMark = m_pView->GetMarkedObjectList();
@@ -1828,7 +1793,6 @@ static sal_Bool lcl_hasObject( SdrObjListIter& rIter, SdrObject* pObj )
//------------------------------------------------------------------------------
void FmXFormView::restoreMarkList( SdrMarkList& _rRestoredMarkList )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::restoreMarkList" );
if ( !m_pView )
return;
@@ -1916,7 +1880,6 @@ void FmXFormView::restoreMarkList( SdrMarkList& _rRestoredMarkList )
// -----------------------------------------------------------------------------
void SAL_CALL FmXFormView::focusGained( const FocusEvent& /*e*/ ) throw (RuntimeException)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::focusGained" );
if ( m_xWindow.is() && m_pView )
{
m_pView->SetMoveOutside( TRUE, FmFormView::ImplAccess() );
@@ -1925,7 +1888,6 @@ void SAL_CALL FmXFormView::focusGained( const FocusEvent& /*e*/ ) throw (Runtime
// -----------------------------------------------------------------------------
void SAL_CALL FmXFormView::focusLost( const FocusEvent& /*e*/ ) throw (RuntimeException)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::focusLost" );
// when switch the focus outside the office the mark didn't change
// so we can not remove us as focus listener
if ( m_xWindow.is() && m_pView )
@@ -1936,7 +1898,6 @@ void SAL_CALL FmXFormView::focusLost( const FocusEvent& /*e*/ ) throw (RuntimeEx
// -----------------------------------------------------------------------------
void FmXFormView::removeGridWindowListening()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::removeGridWindowListening" );
if ( m_xWindow.is() )
{
m_xWindow->removeFocusListener(this);
@@ -1951,7 +1912,6 @@ void FmXFormView::removeGridWindowListening()
// -----------------------------------------------------------------------------
DocumentType FmXFormView::impl_getDocumentType() const
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::impl_getDocumentType" );
if ( GetFormShell() && GetFormShell()->GetImpl() )
return GetFormShell()->GetImpl()->getDocumentType();
return eUnknownDocumentType;
diff --git a/svx/source/form/formcontrolfactory.cxx b/svx/source/form/formcontrolfactory.cxx
index feb160482665..857bdc1b2647 100644
--- a/svx/source/form/formcontrolfactory.cxx
+++ b/svx/source/form/formcontrolfactory.cxx
@@ -31,7 +31,7 @@
#include "formcontrolfactory.hxx"
#include "fmcontrollayout.hxx"
#include "fmprop.hrc"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmservs.hxx"
#include "svx/dialmgr.hxx"
#include "svx/svdouno.hxx"
diff --git a/svx/source/form/formcontroller.cxx b/svx/source/form/formcontroller.cxx
index b8292785b457..7087e3d6793f 100644
--- a/svx/source/form/formcontroller.cxx
+++ b/svx/source/form/formcontroller.cxx
@@ -36,7 +36,7 @@
#include "formcontrolling.hxx"
#include "fmprop.hrc"
#include "svx/dialmgr.hxx"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmservs.hxx"
#include "svx/fmtools.hxx"
#include "fmurl.hxx"
@@ -62,6 +62,7 @@
#include <com/sun/star/sdb/RowChangeAction.hpp>
#include <com/sun/star/sdb/XInteractionSupplyParameters.hpp>
#include <com/sun/star/sdbc/ColumnValue.hpp>
+#include <com/sun/star/sdbc/DataType.hpp>
#include <com/sun/star/util/XURLTransformer.hpp>
#include <com/sun/star/form/runtime/FormOperations.hpp>
#include <com/sun/star/form/runtime/FormFeature.hpp>
@@ -80,6 +81,7 @@
#include <comphelper/property.hxx>
#include <comphelper/sequence.hxx>
#include <comphelper/uno3.hxx>
+#include <comphelper/scopeguard.hxx>
#include <cppuhelper/queryinterface.hxx>
#include <cppuhelper/typeprovider.hxx>
#include <toolkit/controls/unocontrol.hxx>
@@ -208,6 +210,7 @@ namespace svxform
namespace FocusChangeReason = ::com::sun::star::awt::FocusChangeReason;
namespace RowChangeAction = ::com::sun::star::sdb::RowChangeAction;
namespace FormFeature = ::com::sun::star::form::runtime::FormFeature;
+ namespace DataType = ::com::sun::star::sdbc::DataType;
//==============================================================================
// ColumnInfo
@@ -583,6 +586,7 @@ FormController::FormController(const Reference< XMultiServiceFactory > & _rxORB
,m_bAttachEvents(sal_True)
,m_bDetachEvents(sal_True)
,m_bAttemptedHandlerCreation( false )
+ ,m_bSuspendFilterTextListening( false )
{
DBG_CTOR( FormController, NULL );
@@ -782,6 +786,9 @@ namespace
// -----------------------------------------------------------------------------
void FormController::impl_setTextOnAllFilter_throw()
{
+ m_bSuspendFilterTextListening = true;
+ ::comphelper::FlagGuard aResetFlag( m_bSuspendFilterTextListening );
+
// reset the text for all controls
::std::for_each( m_aFilterComponents.begin(), m_aFilterComponents.end(), ResetComponentText() );
@@ -855,32 +862,38 @@ void FormController::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) cons
if ( rRow.empty() )
continue;
- if ( aFilter.getLength() )
- aFilter.appendAscii( " OR " );
-
- aFilter.appendAscii( "( " );
+ ::rtl::OUStringBuffer aRowFilter;
for ( FmFilterRow::const_iterator condition = rRow.begin(); condition != rRow.end(); ++condition )
{
// get the field of the controls map
Reference< XControl > xControl( condition->first, UNO_QUERY_THROW );
Reference< XPropertySet > xModelProps( xControl->getModel(), UNO_QUERY_THROW );
Reference< XPropertySet > xField( xModelProps->getPropertyValue( FM_PROP_BOUNDFIELD ), UNO_QUERY_THROW );
- if ( condition != rRow.begin() )
- aFilter.appendAscii( " AND " );
::rtl::OUString sFilterValue( condition->second );
::rtl::OUString sErrorMsg, sCriteria;
- ::rtl::Reference< ISQLParseNode > xParseNode = predicateTree( sErrorMsg, sFilterValue, xFormatter, xField );
+ const ::rtl::Reference< ISQLParseNode > xParseNode =
+ predicateTree( sErrorMsg, sFilterValue, xFormatter, xField );
OSL_ENSURE( xParseNode.is(), "FormController::getFastPropertyValue: could not parse the field value predicate!" );
if ( xParseNode.is() )
{
// don't use a parse context here, we need it unlocalized
xParseNode->parseNodeToStr( sCriteria, xConnection, NULL );
- aFilter.append( sCriteria );
+ if ( condition != rRow.begin() )
+ aRowFilter.appendAscii( " AND " );
+ aRowFilter.append( sCriteria );
}
}
- aFilter.appendAscii( " )" );
+ if ( aRowFilter.getLength() > 0 )
+ {
+ if ( aFilter.getLength() )
+ aFilter.appendAscii( " OR " );
+
+ aFilter.appendAscii( "( " );
+ aFilter.append( aRowFilter.makeStringAndClear() );
+ aFilter.appendAscii( " )" );
+ }
}
}
catch( const Exception& )
@@ -1494,50 +1507,54 @@ void SAL_CALL FormController::textChanged(const TextEvent& e) throw( RuntimeExce
// SYNCHRONIZED -->
::osl::ClearableMutexGuard aGuard( m_aMutex );
OSL_ENSURE( !impl_isDisposed_nofail(), "FormController: already disposed!" );
- if (m_bFiltering)
+ if ( !m_bFiltering )
{
- Reference< XTextComponent > xText(e.Source,UNO_QUERY);
- ::rtl::OUString aText = xText->getText();
-
- if ( m_aFilterRows.empty() )
- appendEmptyDisjunctiveTerm();
+ impl_onModify();
+ return;
+ }
- // Suchen der aktuellen Row
- if ( ( (size_t)m_nCurrentFilterPosition >= m_aFilterRows.size() ) || ( m_nCurrentFilterPosition < 0 ) )
- {
- OSL_ENSURE( false, "FormController::textChanged: m_nCurrentFilterPosition is wrong!" );
- return;
- }
+ if ( m_bSuspendFilterTextListening )
+ return;
- FmFilterRow& rRow = m_aFilterRows[ m_nCurrentFilterPosition ];
+ Reference< XTextComponent > xText(e.Source,UNO_QUERY);
+ ::rtl::OUString aText = xText->getText();
- // do we have a new filter
- if (aText.getLength())
- rRow[xText] = aText;
- else
- {
- // do we have the control in the row
- FmFilterRow::iterator iter = rRow.find(xText);
- // erase the entry out of the row
- if (iter != rRow.end())
- rRow.erase(iter);
- }
+ if ( m_aFilterRows.empty() )
+ appendEmptyDisjunctiveTerm();
- // multiplex the event to our FilterControllerListeners
- FilterEvent aEvent;
- aEvent.Source = *this;
- aEvent.FilterComponent = ::std::find( m_aFilterComponents.begin(), m_aFilterComponents.end(), xText ) - m_aFilterComponents.begin();
- aEvent.DisjunctiveTerm = getActiveTerm();
- aEvent.PredicateExpression = aText;
+ // Suchen der aktuellen Row
+ if ( ( (size_t)m_nCurrentFilterPosition >= m_aFilterRows.size() ) || ( m_nCurrentFilterPosition < 0 ) )
+ {
+ OSL_ENSURE( false, "FormController::textChanged: m_nCurrentFilterPosition is wrong!" );
+ return;
+ }
- aGuard.clear();
- // <-- SYNCHRONIZED
+ FmFilterRow& rRow = m_aFilterRows[ m_nCurrentFilterPosition ];
- // notify the changed filter expression
- m_aFilterListeners.notifyEach( &XFilterControllerListener::predicateExpressionChanged, aEvent );
- }
+ // do we have a new filter
+ if (aText.getLength())
+ rRow[xText] = aText;
else
- impl_onModify();
+ {
+ // do we have the control in the row
+ FmFilterRow::iterator iter = rRow.find(xText);
+ // erase the entry out of the row
+ if (iter != rRow.end())
+ rRow.erase(iter);
+ }
+
+ // multiplex the event to our FilterControllerListeners
+ FilterEvent aEvent;
+ aEvent.Source = *this;
+ aEvent.FilterComponent = ::std::find( m_aFilterComponents.begin(), m_aFilterComponents.end(), xText ) - m_aFilterComponents.begin();
+ aEvent.DisjunctiveTerm = getActiveTerm();
+ aEvent.PredicateExpression = aText;
+
+ aGuard.clear();
+ // <-- SYNCHRONIZED
+
+ // notify the changed filter expression
+ m_aFilterListeners.notifyEach( &XFilterControllerListener::predicateExpressionChanged, aEvent );
}
// XItemListener
diff --git a/svx/source/form/formshell.src b/svx/source/form/formshell.src
index f7e2419aae7d..287f60a277a7 100644
--- a/svx/source/form/formshell.src
+++ b/svx/source/form/formshell.src
@@ -25,7 +25,7 @@
*
************************************************************************/
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include <svx/svxids.hrc>
#include <svx/dialogs.hrc>
#include <sfx2/sfxsids.hrc>
diff --git a/svx/source/form/navigatortree.cxx b/svx/source/form/navigatortree.cxx
index ff60597d70fe..78bbc7a533d9 100644
--- a/svx/source/form/navigatortree.cxx
+++ b/svx/source/form/navigatortree.cxx
@@ -32,12 +32,12 @@
#include <svx/fmmodel.hxx>
#include <svx/fmpage.hxx>
#include <svx/svdpagv.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include "fmhelp.hrc"
#include "fmexpl.hrc"
#include "fmexpl.hxx"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmshimp.hxx"
#include "fmservs.hxx"
#include "fmundo.hxx"
@@ -57,7 +57,7 @@
#include <com/sun/star/script/XEventAttacherManager.hpp>
#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
#include <com/sun/star/datatransfer/XTransferable.hpp>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/svxdlg.hxx> //CHINA001
#include <svx/dialogs.hrc> //CHINA001
diff --git a/svx/source/form/navigatortreemodel.cxx b/svx/source/form/navigatortreemodel.cxx
index 24a7d2c5d3d7..2065295006e9 100644
--- a/svx/source/form/navigatortreemodel.cxx
+++ b/svx/source/form/navigatortreemodel.cxx
@@ -32,7 +32,7 @@
#include <svx/fmmodel.hxx>
#include <svx/fmpage.hxx>
#include <svx/fmglob.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdogrp.hxx>
#include <svx/svdpagv.hxx>
@@ -42,7 +42,7 @@
#include "fmhelp.hrc"
#include "fmexpl.hrc"
#include "fmexpl.hxx"
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#include "fmshimp.hxx"
#include "fmobj.hxx"
#include <sfx2/objsh.hxx>
diff --git a/svx/source/form/sqlparserclient.cxx b/svx/source/form/sqlparserclient.cxx
index 4b187bbb2b7d..a63db6e96d62 100644
--- a/svx/source/form/sqlparserclient.cxx
+++ b/svx/source/form/sqlparserclient.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
#include "sqlparserclient.hxx"
-#include "ParseContext.hxx"
+#include "svx/ParseContext.hxx"
//........................................................................
namespace svxform
diff --git a/svx/source/form/tabwin.cxx b/svx/source/form/tabwin.cxx
index bce51d8d43f5..37c102cb1954 100644
--- a/svx/source/form/tabwin.cxx
+++ b/svx/source/form/tabwin.cxx
@@ -61,7 +61,7 @@
#endif
#ifndef _SVX_FMRESIDS_HRC
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#endif
#include <svx/dialmgr.hxx>
#include <tools/shl.hxx>
diff --git a/svx/source/form/tbxform.cxx b/svx/source/form/tbxform.cxx
index f275fd9efd72..fb13eddd15f0 100644
--- a/svx/source/form/tbxform.cxx
+++ b/svx/source/form/tbxform.cxx
@@ -45,11 +45,11 @@
#ifndef _SVX_DIALOGS_HRC
#include <svx/dialogs.hrc>
#endif
-#include "tbxctl.hxx"
-#include "tbxdraw.hxx"
+#include "svx/tbxctl.hxx"
+#include "svx/tbxdraw.hxx"
#include "tbxform.hxx"
#ifndef _SVX_FMRESIDS_HRC
-#include "fmresids.hrc"
+#include "svx/fmresids.hrc"
#endif
#include "fmitems.hxx"
#ifndef _SVX_FMHELP_HRC
diff --git a/svx/source/form/typemap.cxx b/svx/source/form/typemap.cxx
index f465e9d88dad..c12bb313f862 100644
--- a/svx/source/form/typemap.cxx
+++ b/svx/source/form/typemap.cxx
@@ -38,7 +38,7 @@
#include <editeng/shdditem.hxx>
#include <editeng/postitem.hxx>
#ifndef _SVX_CLIPBOARDCTL_HXX_
-#include "clipfmtitem.hxx"
+#include "svx/clipfmtitem.hxx"
#endif
#include <editeng/fhgtitem.hxx>
#include "editeng/fontitem.hxx"
diff --git a/svx/source/gallery2/galbrws.cxx b/svx/source/gallery2/galbrws.cxx
index b048da9bf022..b972dccd9ab7 100644
--- a/svx/source/gallery2/galbrws.cxx
+++ b/svx/source/gallery2/galbrws.cxx
@@ -38,7 +38,7 @@
#include "svx/gallery1.hxx"
#include "galbrws1.hxx"
#include "galbrws2.hxx"
-#include "galbrws.hxx"
+#include "svx/galbrws.hxx"
// -------------------
// - GallerySplitter -
diff --git a/svx/source/gallery2/galbrws1.cxx b/svx/source/gallery2/galbrws1.cxx
index ccbcd40862de..04f402804b0c 100644
--- a/svx/source/gallery2/galbrws1.cxx
+++ b/svx/source/gallery2/galbrws1.cxx
@@ -35,7 +35,7 @@
#include <sfx2/app.hxx>
#include "helpid.hrc"
#include "svx/gallery1.hxx"
-#include "galtheme.hxx"
+#include "svx/galtheme.hxx"
#include "svx/galmisc.hxx"
#include "galbrws1.hxx"
#include <com/sun/star/util/DateTime.hpp>
diff --git a/svx/source/gallery2/galbrws1.hxx b/svx/source/gallery2/galbrws1.hxx
index 91740fafcb14..2903dcabef59 100644
--- a/svx/source/gallery2/galbrws1.hxx
+++ b/svx/source/gallery2/galbrws1.hxx
@@ -30,7 +30,7 @@
#include <vcl/menu.hxx>
#include <svl/lstner.hxx>
#include <vector>
-#include "galbrws.hxx"
+#include "svx/galbrws.hxx"
// -----------------
// - GalleryButton -
diff --git a/svx/source/gallery2/galbrws2.cxx b/svx/source/gallery2/galbrws2.cxx
index 0483a1bc1425..045b52aa2e53 100644
--- a/svx/source/gallery2/galbrws2.cxx
+++ b/svx/source/gallery2/galbrws2.cxx
@@ -44,11 +44,11 @@
#include "svtools/filter.hxx"
#include <editeng/brshitem.hxx>
#include "helpid.hrc"
-#include "gallery.hxx"
+#include "svx/gallery.hxx"
#include "galobj.hxx"
#include "svx/gallery1.hxx"
-#include "galtheme.hxx"
-#include "galctrl.hxx"
+#include "svx/galtheme.hxx"
+#include "svx/galctrl.hxx"
#include "svx/galmisc.hxx"
#include "galbrws2.hxx"
#include "gallery.hrc"
diff --git a/svx/source/gallery2/galctrl.cxx b/svx/source/gallery2/galctrl.cxx
index 8022cecc0fbe..d6817134fefb 100644
--- a/svx/source/gallery2/galctrl.cxx
+++ b/svx/source/gallery2/galctrl.cxx
@@ -34,9 +34,9 @@
#include <avmedia/mediaplayer.hxx>
#include "helpid.hrc"
#include "galbrws2.hxx"
-#include "galtheme.hxx"
+#include "svx/galtheme.hxx"
#include "svx/galmisc.hxx"
-#include "galctrl.hxx"
+#include "svx/galctrl.hxx"
#include "editeng/AccessibleStringWrap.hxx"
#include <editeng/svxfont.hxx>
#include "galobj.hxx"
diff --git a/svx/source/gallery2/galexpl.cxx b/svx/source/gallery2/galexpl.cxx
index 7e5b6fe5e3a9..cad6780f11f7 100644
--- a/svx/source/gallery2/galexpl.cxx
+++ b/svx/source/gallery2/galexpl.cxx
@@ -31,9 +31,9 @@
#include <unotools/pathoptions.hxx>
#include <sfx2/viewfrm.hxx>
#include "svx/gallery1.hxx"
-#include "galtheme.hxx"
-#include "galbrws.hxx"
-#include "gallery.hxx"
+#include "svx/galtheme.hxx"
+#include "svx/galbrws.hxx"
+#include "svx/gallery.hxx"
#include "galobj.hxx"
// -----------
diff --git a/svx/source/gallery2/gallery1.cxx b/svx/source/gallery2/gallery1.cxx
index 419e160e6765..32ad01aca4a2 100644
--- a/svx/source/gallery2/gallery1.cxx
+++ b/svx/source/gallery2/gallery1.cxx
@@ -35,10 +35,10 @@
#include <unotools/ucbstreamhelper.hxx>
#include <unotools/pathoptions.hxx>
#include <sfx2/docfile.hxx>
-#include "gallery.hxx"
+#include "svx/gallery.hxx"
#include "gallery.hrc"
#include "svx/galmisc.hxx"
-#include "galtheme.hxx"
+#include "svx/galtheme.hxx"
#include "svx/gallery1.hxx"
#include <com/sun/star/sdbc/XResultSet.hpp>
#include <com/sun/star/ucb/XContentAccess.hpp>
diff --git a/svx/source/gallery2/galmisc.cxx b/svx/source/gallery2/galmisc.cxx
index 10dd5949dee2..835c7dc3e731 100644
--- a/svx/source/gallery2/galmisc.cxx
+++ b/svx/source/gallery2/galmisc.cxx
@@ -51,7 +51,7 @@
#include "codec.hxx"
#include "gallery.hrc"
#include "svx/gallery1.hxx"
-#include "galtheme.hxx"
+#include "svx/galtheme.hxx"
#include "svx/galmisc.hxx"
#include <com/sun/star/sdbc/XResultSet.hpp>
#include <com/sun/star/ucb/XContentAccess.hpp>
diff --git a/svx/source/gallery2/galtheme.cxx b/svx/source/gallery2/galtheme.cxx
index 8fd38025f4a5..730c1179a07e 100644
--- a/svx/source/gallery2/galtheme.cxx
+++ b/svx/source/gallery2/galtheme.cxx
@@ -52,7 +52,7 @@
#include <svx/fmmodel.hxx>
#include <svx/fmview.hxx>
#include "svx/galmisc.hxx"
-#include "galtheme.hxx"
+#include "svx/galtheme.hxx"
#include <com/sun/star/sdbc/XResultSet.hpp>
#include <com/sun/star/ucb/XContentAccess.hpp>
#include <com/sun/star/io/XInputStream.hpp>
diff --git a/svx/source/gengal/gengal.cxx b/svx/source/gengal/gengal.cxx
index 4120027c3e35..e7001d176920 100644
--- a/svx/source/gengal/gengal.cxx
+++ b/svx/source/gengal/gengal.cxx
@@ -67,7 +67,7 @@
#include <osl/process.h>
#include <rtl/bootstrap.hxx>
-#include <galtheme.hxx>
+#include <svx/galtheme.hxx>
#include <svx/gallery1.hxx>
using namespace ::vos;
diff --git a/svx/source/inc/fmshimp.hxx b/svx/source/inc/fmshimp.hxx
index 88d2346b9d20..e56f9fd64a36 100644
--- a/svx/source/inc/fmshimp.hxx
+++ b/svx/source/inc/fmshimp.hxx
@@ -65,7 +65,7 @@
#include <svl/svstdarr.hxx>
#include <sfx2/mnuitem.hxx>
#include "svx/fmtools.hxx"
-#include "fmsrccfg.hxx"
+#include "svx/fmsrccfg.hxx"
#include <osl/mutex.hxx>
#include <vos/thread.hxx>
#include <tools/debug.hxx>
diff --git a/svx/source/inc/fmvwimp.hxx b/svx/source/inc/fmvwimp.hxx
index 1131209a384a..8bb682690b36 100644
--- a/svx/source/inc/fmvwimp.hxx
+++ b/svx/source/inc/fmvwimp.hxx
@@ -51,6 +51,7 @@
#include <cppuhelper/implbase3.hxx>
#include <comphelper/uno3.hxx>
#include <comphelper/componentcontext.hxx>
+#include <rtl/ref.hxx>
//class SdrPageViewWinRec;
class SdrPageWindow;
@@ -79,13 +80,13 @@ namespace svx {
}
//==================================================================
-// FmXPageViewWinRec
+// FormViewPageWindowAdapter
//==================================================================
typedef ::cppu::WeakImplHelper2 < ::com::sun::star::container::XIndexAccess
, ::com::sun::star::form::runtime::XFormControllerContext
- > FmXPageViewWinRec_Base;
+ > FormViewPageWindowAdapter_Base;
-class FmXPageViewWinRec : public FmXPageViewWinRec_Base
+class FormViewPageWindowAdapter : public FormViewPageWindowAdapter_Base
{
friend class FmXFormView;
@@ -96,10 +97,10 @@ class FmXPageViewWinRec : public FmXPageViewWinRec_Base
Window* m_pWindow;
protected:
- ~FmXPageViewWinRec();
+ ~FormViewPageWindowAdapter();
public:
- FmXPageViewWinRec( const ::comphelper::ComponentContext& _rContext,
+ FormViewPageWindowAdapter( const ::comphelper::ComponentContext& _rContext,
const SdrPageWindow&, FmXFormView* pView);
//const SdrPageViewWinRec*, FmXFormView* pView);
@@ -130,7 +131,8 @@ protected:
Window* getWindow() const {return m_pWindow;}
};
-typedef ::std::vector<FmXPageViewWinRec*> FmWinRecList;
+typedef ::rtl::Reference< FormViewPageWindowAdapter > PFormViewPageWindowAdapter;
+typedef ::std::vector< PFormViewPageWindowAdapter > PageWindowAdapterList;
typedef ::std::set < ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >
, ::comphelper::OInterfaceCompare< ::com::sun::star::form::XForm >
> SetOfForms;
@@ -150,7 +152,7 @@ class FmXFormView : public ::cppu::WeakImplHelper3<
friend class FmFormView;
friend class FmFormShell;
friend class FmXFormShell;
- friend class FmXPageViewWinRec;
+ friend class FormViewPageWindowAdapter;
class ObjectRemoveListener;
friend class ObjectRemoveListener;
@@ -168,7 +170,8 @@ class FmXFormView : public ::cppu::WeakImplHelper3<
::com::sun::star::sdb::SQLErrorEvent
m_aAsyncError; // error event which is to be displayed asyn. See m_nErrorMessageEvent.
- FmWinRecList m_aWinList; // to be filled in alive mode only
+ PageWindowAdapterList
+ m_aPageWindowAdapters; // to be filled in alive mode only
MapControlContainerToSetOfForms
m_aNeedTabOrderUpdate;
@@ -215,8 +218,7 @@ public:
virtual void SAL_CALL focusLost( const ::com::sun::star::awt::FocusEvent& e ) throw (::com::sun::star::uno::RuntimeException);
FmFormView* getView() const {return m_pView;}
- FmWinRecList::const_iterator findWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& _rxCC ) const;
- const FmWinRecList& getWindowList() const {return m_aWinList;}
+ PFormViewPageWindowAdapter findWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& _rxCC ) const;
::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController >
getFormController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& _rxForm, const OutputDevice& _rDevice ) const;
@@ -246,7 +248,6 @@ public:
);
private:
- FmWinRecList::iterator findWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& _rxCC );
//void addWindow(const SdrPageViewWinRec*);
void addWindow(const SdrPageWindow&);
void removeWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& _rxCC );
diff --git a/svx/source/inc/formcontroller.hxx b/svx/source/inc/formcontroller.hxx
index 82a3516584f7..b0f42a0e97ea 100644
--- a/svx/source/inc/formcontroller.hxx
+++ b/svx/source/inc/formcontroller.hxx
@@ -214,7 +214,8 @@ namespace svxform
sal_Bool m_bFiltering : 1;
sal_Bool m_bAttachEvents : 1;
sal_Bool m_bDetachEvents : 1;
- sal_Bool m_bAttemptedHandlerCreation : 1;
+ bool m_bAttemptedHandlerCreation : 1;
+ bool m_bSuspendFilterTextListening; // no bit field, passed around as reference
// as we want to intercept dispatches of _all_ controls we're responsible for, and an object implementing
// the ::com::sun::star::frame::XDispatchProviderInterceptor interface can intercept only _one_ objects dispatches, we need a helper class
diff --git a/svx/source/inc/sqlparserclient.hxx b/svx/source/inc/sqlparserclient.hxx
index ced2a0708b9c..01e175d51e4e 100644
--- a/svx/source/inc/sqlparserclient.hxx
+++ b/svx/source/inc/sqlparserclient.hxx
@@ -29,7 +29,7 @@
#define SVX_SQLPARSERCLIENT_HXX
#include "svx/dbtoolsclient.hxx"
-#include "ParseContext.hxx"
+#include "svx/ParseContext.hxx"
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
//........................................................................
diff --git a/svx/source/items/chrtitem.cxx b/svx/source/items/chrtitem.cxx
index 8957bd2e3ba0..474bf19f7bd6 100644
--- a/svx/source/items/chrtitem.cxx
+++ b/svx/source/items/chrtitem.cxx
@@ -44,7 +44,7 @@
#include <float.h>
#include <rtl/math.hxx>
-#include "chrtitem.hxx"
+#include "svx/chrtitem.hxx"
using namespace ::rtl;
using namespace ::com::sun::star;
diff --git a/svx/source/items/clipfmtitem.cxx b/svx/source/items/clipfmtitem.cxx
index 086cd1cff161..bc3ca621635b 100644
--- a/svx/source/items/clipfmtitem.cxx
+++ b/svx/source/items/clipfmtitem.cxx
@@ -32,7 +32,7 @@
#define _SVSTDARR_STRINGSDTOR
#include <svl/svstdarr.hxx>
-#include <clipfmtitem.hxx>
+#include <svx/clipfmtitem.hxx>
#include <com/sun/star/frame/status/ClipboardFormats.hpp>
struct SvxClipboardFmtItem_Impl
diff --git a/svx/source/items/drawitem.cxx b/svx/source/items/drawitem.cxx
index 27d7dba45c49..f02848835ffd 100644
--- a/svx/source/items/drawitem.cxx
+++ b/svx/source/items/drawitem.cxx
@@ -33,7 +33,7 @@
#include <svx/svxids.hrc>
-#include "drawitem.hxx"
+#include "svx/drawitem.hxx"
#include <svx/xtable.hxx>
using namespace ::com::sun::star;
diff --git a/svx/source/items/hlnkitem.cxx b/svx/source/items/hlnkitem.cxx
index a67a87021d31..987f5aa6df08 100644
--- a/svx/source/items/hlnkitem.cxx
+++ b/svx/source/items/hlnkitem.cxx
@@ -44,7 +44,7 @@
#include <basic/sbxvar.hxx>
#endif
-#include "hlnkitem.hxx"
+#include "svx/hlnkitem.hxx"
// -----------------------------------------------------------------------
diff --git a/svx/source/items/ofaitem.cxx b/svx/source/items/ofaitem.cxx
index 4a3680cbe58b..e996373eb48e 100644
--- a/svx/source/items/ofaitem.cxx
+++ b/svx/source/items/ofaitem.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "ofaitem.hxx"
+#include "svx/ofaitem.hxx"
OfaPtrItem::OfaPtrItem( USHORT _nWhich, void *_pPtr )
: SfxPoolItem( _nWhich ), pPtr( _pPtr )
diff --git a/svx/source/items/postattr.cxx b/svx/source/items/postattr.cxx
index 5b03bbd6be2d..cab4207d56c5 100644
--- a/svx/source/items/postattr.cxx
+++ b/svx/source/items/postattr.cxx
@@ -31,7 +31,7 @@
// include ---------------------------------------------------------------
#define _SVX_POSTATTR_CXX
-#include "postattr.hxx"
+#include "svx/postattr.hxx"
#include <editeng/itemtype.hxx>
#include <svx/svxitems.hrc>
#include <svx/dialmgr.hxx>
diff --git a/svx/source/items/rotmodit.cxx b/svx/source/items/rotmodit.cxx
index 10a0adf3f0c9..6e6f46cdc373 100644
--- a/svx/source/items/rotmodit.cxx
+++ b/svx/source/items/rotmodit.cxx
@@ -42,7 +42,7 @@
#include <com/sun/star/table/CellOrientation.hpp>
#include <com/sun/star/table/CellAddress.hpp>
-#include "rotmodit.hxx"
+#include "svx/rotmodit.hxx"
using namespace ::rtl;
using namespace ::com::sun::star;
diff --git a/svx/source/items/svxerr.cxx b/svx/source/items/svxerr.cxx
index 317514601aa5..89b4266a1339 100644
--- a/svx/source/items/svxerr.cxx
+++ b/svx/source/items/svxerr.cxx
@@ -31,7 +31,7 @@
// include ---------------------------------------------------------------
#include <tools/shl.hxx>
-#include "svxerr.hxx"
+#include "svx/svxerr.hxx"
#include <svx/dialmgr.hxx>
#include <svx/dialogs.hrc>
diff --git a/svx/source/items/svxerr.src b/svx/source/items/svxerr.src
index 382027a12b51..890e5687021d 100644
--- a/svx/source/items/svxerr.src
+++ b/svx/source/items/svxerr.src
@@ -26,7 +26,7 @@
************************************************************************/
// include ---------------------------------------------------------------
#define __RSC
-#include "svxerr.hxx"
+#include "svx/svxerr.hxx"
#include <svx/dialogs.hrc>
#include <editeng/editerr.hxx>
diff --git a/svx/source/mnuctrls/clipboardctl.cxx b/svx/source/mnuctrls/clipboardctl.cxx
index f6b95067c5e2..db92fd66d425 100644
--- a/svx/source/mnuctrls/clipboardctl.cxx
+++ b/svx/source/mnuctrls/clipboardctl.cxx
@@ -36,8 +36,8 @@
#include <sot/exchange.hxx>
#include <svl/eitem.hxx>
#include <vcl/toolbox.hxx>
-#include <clipboardctl.hxx>
-#include <clipfmtitem.hxx>
+#include <svx/clipboardctl.hxx>
+#include <svx/clipfmtitem.hxx>
#include <svtools/insdlg.hxx>
#include <svx/svxids.hrc>
diff --git a/svx/source/mnuctrls/fntszctl.cxx b/svx/source/mnuctrls/fntszctl.cxx
index 68e7c4d32472..48c1a1158c4c 100644
--- a/svx/source/mnuctrls/fntszctl.cxx
+++ b/svx/source/mnuctrls/fntszctl.cxx
@@ -43,7 +43,7 @@
#include "editeng/fontitem.hxx"
#include "editeng/flstitem.hxx"
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include <svx/dialmgr.hxx>
#define LOGIC OutputDevice::LogicToLogic
diff --git a/svx/source/mnuctrls/makefile.mk b/svx/source/mnuctrls/makefile.mk
index 9c208d9a787c..31c8e532143f 100644
--- a/svx/source/mnuctrls/makefile.mk
+++ b/svx/source/mnuctrls/makefile.mk
@@ -56,7 +56,7 @@ HXX1TARGET=mnuctrls
HXX1EXT= hxx
HXX1EXCL= -E:*include*
HXX1DEPN=\
- $(INC)$/clipboardctl.hxx \
+ $(INC)$/svx/clipboardctl.hxx \
$(INC)$/fntctl.hxx \
$(INC)$/fntszctl.hxx \
$(INC)$/SmartTagCtl.hxx
diff --git a/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx b/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx
index da8518d7f1a1..e24aa1c29de7 100644
--- a/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx
+++ b/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx
@@ -37,7 +37,7 @@
#include <drawinglayer/processor2d/vclprocessor2d.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <svx/sdr/contact/objectcontacttools.hxx>
-#include <unoapi.hxx>
+#include <svx/unoapi.hxx>
//////////////////////////////////////////////////////////////////////////////
@@ -151,6 +151,25 @@ namespace sdr
}
}
+ // VirtualDevice?
+ bool ObjectContactOfObjListPainter::isOutputToVirtualDevice() const
+ {
+ return (OUTDEV_VIRDEV == mrTargetOutputDevice.GetOutDevType());
+ }
+
+ // recording MetaFile?
+ bool ObjectContactOfObjListPainter::isOutputToRecordingMetaFile() const
+ {
+ GDIMetaFile* pMetaFile = mrTargetOutputDevice.GetConnectMetaFile();
+ return (pMetaFile && pMetaFile->IsRecord() && !pMetaFile->IsPause());
+ }
+
+ // pdf export?
+ bool ObjectContactOfObjListPainter::isOutputToPDFFile() const
+ {
+ return (0 != mrTargetOutputDevice.GetPDFWriter());
+ }
+
OutputDevice* ObjectContactOfObjListPainter::TryToGetOutputDevice() const
{
return &mrTargetOutputDevice;
diff --git a/svx/source/sdr/contact/objectcontactofpageview.cxx b/svx/source/sdr/contact/objectcontactofpageview.cxx
index 1652855d84a8..d2264e219c48 100644
--- a/svx/source/sdr/contact/objectcontactofpageview.cxx
+++ b/svx/source/sdr/contact/objectcontactofpageview.cxx
@@ -38,13 +38,13 @@
#include <svx/sdr/animation/objectanimator.hxx>
#include <svx/sdr/event/eventhandler.hxx>
#include <svx/sdrpagewindow.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <drawinglayer/processor2d/vclprocessor2d.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <drawinglayer/primitive2d/transformprimitive2d.hxx>
#include <svx/sdr/contact/objectcontacttools.hxx>
#include <com/sun/star/rendering/XSpriteCanvas.hpp>
-#include <unoapi.hxx>
+#include <svx/unoapi.hxx>
//////////////////////////////////////////////////////////////////////////////
diff --git a/svx/source/sdr/contact/viewcontactofgraphic.cxx b/svx/source/sdr/contact/viewcontactofgraphic.cxx
index 7172b0840476..d4748a14ed98 100644
--- a/svx/source/sdr/contact/viewcontactofgraphic.cxx
+++ b/svx/source/sdr/contact/viewcontactofgraphic.cxx
@@ -44,8 +44,8 @@
#include <svx/sdr/event/eventhandler.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <svx/sdr/primitive2d/sdrgrafprimitive2d.hxx>
-#include "svdstr.hrc"
-#include <svdglob.hxx>
+#include "svx/svdstr.hrc"
+#include <svx/svdglob.hxx>
#include <vcl/svapp.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
diff --git a/svx/source/sdr/contact/viewcontactofsdrobj.cxx b/svx/source/sdr/contact/viewcontactofsdrobj.cxx
index 6d609108e580..3b002e406be1 100644
--- a/svx/source/sdr/contact/viewcontactofsdrobj.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrobj.cxx
@@ -40,7 +40,7 @@
#include <drawinglayer/primitive2d/markerarrayprimitive2d.hxx>
#include <svx/sdr/contact/objectcontactofpageview.hxx>
#include <svx/sdrpagewindow.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/sdr/primitive2d/sdrprimitivetools.hxx>
//////////////////////////////////////////////////////////////////////////////
diff --git a/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx b/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx
index 6fa63f7c073e..5ddd74004461 100644
--- a/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx
@@ -31,7 +31,7 @@
#include <svx/svdoashp.hxx>
#include <svx/sdr/contact/displayinfo.hxx>
#include <svx/sdr/primitive2d/sdrattributecreator.hxx>
-#include <svditer.hxx>
+#include <svx/svditer.hxx>
#include <svx/sdr/primitive2d/sdrcustomshapeprimitive2d.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
diff --git a/svx/source/sdr/contact/viewcontactofsdrpage.cxx b/svx/source/sdr/contact/viewcontactofsdrpage.cxx
index ad65b647001e..abe30839aa43 100644
--- a/svx/source/sdr/contact/viewcontactofsdrpage.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrpage.cxx
@@ -45,8 +45,8 @@
#include <svx/sdr/primitive2d/sdrattributecreator.hxx>
#include <svx/sdr/primitive2d/sdrdecompositiontools.hxx>
#include <vcl/lazydelete.hxx>
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include <svx/svdstr.hrc>
+#include <svx/svdglob.hxx>
#include <drawinglayer/primitive2d/discreteshadowprimitive2d.hxx>
#include <drawinglayer/attribute/sdrfillattribute.hxx>
diff --git a/svx/source/sdr/contact/viewcontactofunocontrol.cxx b/svx/source/sdr/contact/viewcontactofunocontrol.cxx
index 2a4d527fdcdd..fb57864903d1 100644
--- a/svx/source/sdr/contact/viewcontactofunocontrol.cxx
+++ b/svx/source/sdr/contact/viewcontactofunocontrol.cxx
@@ -41,7 +41,7 @@
#include <com/sun/star/awt/XWindow2.hpp>
/** === end UNO includes === **/
-#include "sdrpaintwindow.hxx"
+#include "svx/sdrpaintwindow.hxx"
#include <tools/diagnose_ex.h>
#include <vcl/pdfextoutdevdata.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
diff --git a/svx/source/sdr/contact/viewobjectcontactofgraphic.cxx b/svx/source/sdr/contact/viewobjectcontactofgraphic.cxx
index cd2d9670bf7c..110186d41bf4 100644
--- a/svx/source/sdr/contact/viewobjectcontactofgraphic.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofgraphic.cxx
@@ -177,7 +177,7 @@ namespace sdr
if(rGrafObj.IsLinkedGraphic())
{
// update graphic link
- rGrafObj.ImpUpdateGraphicLink();
+ rGrafObj.ImpUpdateGraphicLink( sal_False );
}
else
{
@@ -196,7 +196,7 @@ namespace sdr
rGrafObj.mbInsidePaint = sal_True;
rGrafObj.ForceSwapIn();
rGrafObj.mbInsidePaint = sal_False;
- }
+ }
bRetval = true;
}
@@ -252,19 +252,27 @@ namespace sdr
// prepare primitive generation with evtl. loading the graphic when it's swapped out
SdrGrafObj& rGrafObj = const_cast< ViewObjectContactOfGraphic* >(this)->getSdrGrafObj();
bool bDoAsynchronGraphicLoading(rGrafObj.GetModel() && rGrafObj.GetModel()->IsSwapGraphics());
- static bool bSuppressAsynchLoading(false);
bool bSwapInDone(false);
+ bool bSwapInExclusive(false);
- if(bDoAsynchronGraphicLoading
- && rGrafObj.IsSwappedOut()
- && rGrafObj.GetPage()
- && rGrafObj.GetPage()->IsMasterPage())
+ if( bDoAsynchronGraphicLoading && rGrafObj.IsSwappedOut() )
{
- // #i102380# force Swap-In for GraphicObjects on MasterPage to have a nicer visualisation
- bDoAsynchronGraphicLoading = false;
+ // sometimes it is needed that each graphic is completely available and swapped in
+ // for these cases a ForceSwapIn is called later at the graphic object
+ if ( rGrafObj.GetPage() && rGrafObj.GetPage()->IsMasterPage() )
+ {
+ // #i102380# force Swap-In for GraphicObjects on MasterPage to have a nicer visualisation
+ bDoAsynchronGraphicLoading = false;
+ }
+ else if ( GetObjectContact().isOutputToPrinter()
+ || GetObjectContact().isOutputToRecordingMetaFile()
+ || GetObjectContact().isOutputToPDFFile() )
+ {
+ bDoAsynchronGraphicLoading = false;
+ bSwapInExclusive = true;
+ }
}
-
- if(bDoAsynchronGraphicLoading && !bSuppressAsynchLoading)
+ if( bDoAsynchronGraphicLoading )
{
bSwapInDone = const_cast< ViewObjectContactOfGraphic* >(this)->impPrepareGraphicWithAsynchroniousLoading();
}
@@ -293,10 +301,8 @@ namespace sdr
}
}
- // if swap in was forced only for printing, swap out again
- const bool bSwapInExclusiveForPrinting(bSwapInDone && GetObjectContact().isOutputToPrinter());
-
- if(bSwapInExclusiveForPrinting)
+ // if swap in was forced only for printing metafile and pdf, swap out again
+ if( bSwapInDone && bSwapInExclusive )
{
rGrafObj.ForceSwapOut();
}
diff --git a/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx b/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx
index 34731f100b5d..945d5ff982b1 100644
--- a/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx
@@ -38,7 +38,7 @@
#include <svx/sdr/contact/objectcontactofobjlistpainter.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <svx/svdpage.hxx>
-#include <unoapi.hxx>
+#include <svx/unoapi.hxx>
#include <drawinglayer/primitive2d/pagepreviewprimitive2d.hxx>
#include <drawinglayer/primitive2d/sdrdecompositiontools2d.hxx>
diff --git a/svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx b/svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx
index ce8d0c79a5f9..6785f69f556b 100644
--- a/svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx
@@ -39,7 +39,7 @@
#include <avmedia/mediaitem.hxx>
#include "sdrmediawindow.hxx"
#include <svx/sdrpagewindow.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
//////////////////////////////////////////////////////////////////////////////
diff --git a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
index 1da80b6c245e..3f849e92b462 100644
--- a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
@@ -38,7 +38,7 @@
#include <svx/svdpagv.hxx>
#include <svx/svdview.hxx>
#include <svx/sdrpagewindow.hxx>
-#include "sdrpaintwindow.hxx"
+#include "svx/sdrpaintwindow.hxx"
/** === begin UNO includes === **/
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
diff --git a/svx/source/sdr/primitive2d/primitivefactory2d.cxx b/svx/source/sdr/primitive2d/primitivefactory2d.cxx
index d6a6867b819e..d148f76576aa 100644
--- a/svx/source/sdr/primitive2d/primitivefactory2d.cxx
+++ b/svx/source/sdr/primitive2d/primitivefactory2d.cxx
@@ -30,7 +30,7 @@
#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
#include <svx/svdobj.hxx>
#include <svx/svdpage.hxx>
-#include <unoapi.hxx>
+#include <svx/unoapi.hxx>
#include <svx/sdr/contact/viewcontact.hxx>
//////////////////////////////////////////////////////////////////////////////
diff --git a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
index 089f75aa8ade..cf34f3345e0a 100644
--- a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
@@ -35,7 +35,7 @@
#include <editeng/editobj.hxx>
#include <editeng/flditem.hxx>
#include <drawinglayer/geometry/viewinformation2d.hxx>
-#include <unoapi.hxx>
+#include <svx/unoapi.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svdoutl.hxx>
diff --git a/svx/source/sdr/properties/e3dsceneproperties.cxx b/svx/source/sdr/properties/e3dsceneproperties.cxx
index 41a3294b2a01..3ee3189ac4a8 100644
--- a/svx/source/sdr/properties/e3dsceneproperties.cxx
+++ b/svx/source/sdr/properties/e3dsceneproperties.cxx
@@ -32,7 +32,7 @@
#include <svl/whiter.hxx>
#include <svx/svddef.hxx>
#include <svx/scene3d.hxx>
-#include <svditer.hxx>
+#include <svx/svditer.hxx>
//////////////////////////////////////////////////////////////////////////////
diff --git a/svx/source/sdr/properties/itemsettools.cxx b/svx/source/sdr/properties/itemsettools.cxx
index eab977681490..37678966bc07 100644
--- a/svx/source/sdr/properties/itemsettools.cxx
+++ b/svx/source/sdr/properties/itemsettools.cxx
@@ -34,7 +34,7 @@
#include <vector>
#include <svx/svdogrp.hxx>
-#include <svditer.hxx>
+#include <svx/svditer.hxx>
//////////////////////////////////////////////////////////////////////////////
// class to remember broadcast start positions
diff --git a/svx/source/sdr/properties/properties.cxx b/svx/source/sdr/properties/properties.cxx
index 576f9745e167..f8c307f26309 100644
--- a/svx/source/sdr/properties/properties.cxx
+++ b/svx/source/sdr/properties/properties.cxx
@@ -31,7 +31,7 @@
#include <svx/sdr/properties/itemsettools.hxx>
#include <svl/itemset.hxx>
#include <svx/svdogrp.hxx>
-#include <svditer.hxx>
+#include <svx/svditer.hxx>
//////////////////////////////////////////////////////////////////////////////
diff --git a/svx/source/src/errtxt.src b/svx/source/src/errtxt.src
new file mode 100644
index 000000000000..004885c45150
--- /dev/null
+++ b/svx/source/src/errtxt.src
@@ -0,0 +1,515 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#define __RSC
+#include <svtools/svtools.hrc>
+#include <svtools/sfxecode.hxx>
+
+// pragma ----------------------------------------------------------------
+Resource RID_ERRCTX
+{
+ String ERRCTX_ERROR
+ {
+ Text [ en-US ] = "Error" ;
+ };
+ String ERRCTX_WARNING
+ {
+ Text [ en-US ] = "Warning" ;
+ };
+ String ERRCTX_SFX_LOADTEMPLATE
+ {
+ Text [ en-US ] = "$(ERR) loading the template $(ARG1)" ;
+ };
+ String ERRCTX_SFX_SAVEDOC
+ {
+ Text [ en-US ] = "$(ERR) saving the document $(ARG1)";
+ };
+ String ERRCTX_SFX_SAVEASDOC
+ {
+ Text [ en-US ] = "$(ERR) saving the document $(ARG1)";
+ };
+ String ERRCTX_SFX_DOCINFO
+ {
+ Text [ en-US ] = "$(ERR) displaying doc. information for document $(ARG1)" ;
+ };
+ String ERRCTX_SFX_DOCTEMPLATE
+ {
+ Text [ en-US ] = "$(ERR) writing document $(ARG1) as template" ;
+ };
+ String ERRCTX_SFX_MOVEORCOPYCONTENTS
+ {
+ Text [ en-US ] = "$(ERR) copying or moving document contents" ;
+ };
+ String ERRCTX_SFX_DOCMANAGER
+ {
+ Text [ en-US ] = "$(ERR) starting the Document Manager" ;
+ };
+ String ERRCTX_SFX_OPENDOC
+ {
+ Text [ en-US ] = "$(ERR) loading document $(ARG1)" ;
+ };
+ String ERRCTX_SFX_NEWDOCDIRECT
+ {
+ Text [ en-US ] = "$(ERR) creating a new document" ;
+ };
+ String ERRCTX_SFX_NEWDOC
+ {
+ Text [ en-US ] = "$(ERR) creating a new document" ;
+ };
+ String ERRCTX_SFX_CREATEOBJSH
+ {
+ Text [ en-US ] = "$(ERR) expanding entry" ;
+ };
+ String ERRCTX_SFX_LOADBASIC
+ {
+ Text [ en-US ] = "$(ERR) loading BASIC of document $(ARG1)" ;
+ };
+ String ERRCTX_SFX_SEARCHADDRESS
+ {
+ Text [ en-US ] = "$(ERR) searching for an address";
+ };
+};
+Resource RID_ERRHDL
+{
+ String ERRCODE_CLASS_ABORT
+ {
+ Text [ en-US ] = "Abort" ;
+ };
+ String ERRCODE_CLASS_NOTEXISTS
+ {
+ Text [ en-US ] = "Nonexistent object" ;
+ };
+ String ERRCODE_CLASS_ALREADYEXISTS
+ {
+ Text [ en-US ] = "Object already exists" ;
+ };
+ String ERRCODE_CLASS_ACCESS
+ {
+ Text [ en-US ] = "Object not accessible" ;
+ };
+ String ERRCODE_CLASS_PATH
+ {
+ Text [ en-US ] = "Inadmissible path" ;
+ };
+ String ERRCODE_CLASS_LOCKING
+ {
+ Text [ en-US ] = "Locking problem" ;
+ };
+ String ERRCODE_CLASS_PARAMETER
+ {
+ Text [ en-US ] = "Wrong parameter" ;
+ };
+ String ERRCODE_CLASS_SPACE
+ {
+ Text [ en-US ] = "Resource exhausted" ;
+ };
+ String ERRCODE_CLASS_NOTSUPPORTED
+ {
+ Text [ en-US ] = "Action not supported" ;
+ };
+ String ERRCODE_CLASS_READ
+ {
+ Text [ en-US ] = "Read-Error" ;
+ };
+ String ERRCODE_CLASS_WRITE
+ {
+ Text [ en-US ] = "Write Error" ;
+ };
+ String ERRCODE_CLASS_UNKNOWN
+ {
+ Text [ en-US ] = "unknown" ;
+ };
+ String ERRCODE_CLASS_VERSION
+ {
+ Text [ en-US ] = "Version Incompatibility" ;
+ };
+ String ERRCODE_CLASS_GENERAL
+ {
+ Text [ en-US ] = "General Error" ;
+ };
+ String ERRCODE_CLASS_FORMAT
+ {
+ Text [ en-US ] = "Incorrect format" ;
+ };
+ String ERRCODE_CLASS_CREATE
+ {
+ Text [ en-US ] = "Error creating object" ;
+ };
+ String ERRCODE_CLASS_SBX
+ {
+ Text [ en-US ] = "Inadmissible value or data type" ;
+ };
+ String ERRCODE_CLASS_RUNTIME
+ {
+ Text [ en-US ] = "BASIC runtime error" ;
+ };
+ String ERRCODE_CLASS_COMPILER
+ {
+ Text [ en-US ] = "BASIC syntax error" ;
+ };
+ String 1
+ {
+ Text [ en-US ] = "General Error" ;
+ };
+ String ERRCODE_IO_GENERAL
+ {
+ Text [ en-US ] = "General input/output error." ;
+ };
+ String ERRCODE_IO_MISPLACEDCHAR
+ {
+ Text [ en-US ] = "Invalid file name." ;
+ };
+ String ERRCODE_IO_NOTEXISTS
+ {
+ Text [ en-US ] = "Nonexistent file." ;
+ };
+ String ERRCODE_IO_ALREADYEXISTS
+ {
+ Text [ en-US ] = "File already exists." ;
+ };
+ String ERRCODE_IO_NOTADIRECTORY
+ {
+ Text [ en-US ] = "The object is not a directory." ;
+ };
+ String ERRCODE_IO_NOTAFILE
+ {
+ Text [ en-US ] = "The object is not a file." ;
+ };
+ String ERRCODE_IO_INVALIDDEVICE
+ {
+ Text [ en-US ] = "The specified device is invalid." ;
+ };
+ String ERRCODE_IO_ACCESSDENIED
+ {
+ Text [ en-US ] = "The object cannot be accessed\ndue to insufficient user rights." ;
+ };
+ String ERRCODE_IO_LOCKVIOLATION
+ {
+ Text [ en-US ] = "Sharing violation while accessing the object." ;
+ };
+ String ERRCODE_IO_OUTOFSPACE
+ {
+ Text [ en-US ] = "No more space on device." ;
+ };
+ String ERRCODE_IO_ISWILDCARD
+ {
+ Text [ en-US ] = "This operation cannot be run on\nfiles containing wildcards." ;
+ };
+ String ERRCODE_IO_NOTSUPPORTED
+ {
+ Text [ en-US ] = "This operation is not supported on this operating system." ;
+ };
+ String ERRCODE_IO_TOOMANYOPENFILES
+ {
+ Text [ en-US ] = "There are too many files open." ;
+ };
+ String ERRCODE_IO_CANTREAD
+ {
+ Text [ en-US ] = "Data could not be read from the file." ;
+ };
+ String ERRCODE_IO_CANTWRITE
+ {
+ Text [ en-US ] = "The file could not be written." ;
+ };
+ String ERRCODE_IO_OUTOFMEMORY
+ {
+ Text [ en-US ] = "The operation could not be run due to insufficient memory." ;
+ };
+ String ERRCODE_IO_CANTSEEK
+ {
+ Text [ en-US ] = "The seek operation could not be run." ;
+ };
+ String ERRCODE_IO_CANTTELL
+ {
+ Text [ en-US ] = "The tell operation could not be run." ;
+ };
+ String ERRCODE_IO_WRONGVERSION
+ {
+ Text [ en-US ] = "Incorrect file version." ;
+ };
+ String ERRCODE_IO_WRONGFORMAT
+ {
+ Text [ en-US ] = "Incorrect file format." ;
+ };
+ String ERRCODE_IO_INVALIDCHAR
+ {
+ Text [ en-US ] = "The file name contains invalid characters." ;
+ };
+ String ERRCODE_IO_UNKNOWN
+ {
+ Text [ en-US ] = "An unknown I/O error has occurred." ;
+ };
+ String ERRCODE_IO_INVALIDACCESS
+ {
+ Text [ en-US ] = "An invalid attempt was made to access the file." ;
+ };
+ String ERRCODE_IO_CANTCREATE
+ {
+ Text [ en-US ] = "The file could not be created." ;
+ };
+ String ERRCODE_IO_INVALIDPARAMETER
+ {
+ Text [ en-US ] = "The operation was started under an invalid parameter." ;
+ };
+ String ERRCODE_IO_ABORT
+ {
+ Text [ en-US ] = "The operation on the file was aborted." ;
+ };
+ String ERRCODE_IO_NOTEXISTSPATH
+ {
+ Text [ en-US ] = "Path to the file does not exist." ;
+ };
+ String ERRCODE_IO_RECURSIVE
+ {
+ Text [ en-US ] = "An object cannot be copied into itself." ;
+ };
+ String ERRCODE_SFX_NOSTDTEMPLATE
+ {
+ Text [ en-US ] = "The default template could not be opened." ;
+ };
+ String ERRCODE_SFX_TEMPLATENOTFOUND
+ {
+ Text [ en-US ] = "The specified template could not be found." ;
+ };
+ String ERRCODE_SFX_NOTATEMPLATE
+ {
+ Text [ en-US ] = "The file cannot be used as template." ;
+ };
+ String ERRCODE_SFX_CANTREADDOCINFO
+ {
+ Text [ en-US ] = "Document information could not be read from the file because\nthe document information format is unknown or because document information does not\nexist." ;
+ };
+ String ERRCODE_SFX_ALREADYOPEN
+ {
+ Text [ en-US ] = "This document has already been opened for editing." ;
+ };
+ String ERRCODE_SFX_WRONGPASSWORD
+ {
+ Text [ en-US ] = "The wrong password has been entered." ;
+ };
+ String ERRCODE_SFX_DOLOADFAILED
+ {
+ Text [ en-US ] = "Error reading file." ;
+ };
+ String ERRCODE_SFX_DOCUMENTREADONLY
+ {
+ Text [ en-US ] = "The document was opened as read-only." ;
+ };
+ String ERRCODE_SFX_OLEGENERAL
+ {
+ Text [ en-US ] = "General OLE Error." ;
+ };
+ String ERRCODE_INET_NAME_RESOLVE
+ {
+ Text [ en-US ] = "The host name $(ARG1) could not be resolved." ;
+ };
+ String ERRCODE_INET_CONNECT
+ {
+ Text [ en-US ] = "Could not establish Internet connection to $(ARG1)." ;
+ };
+ String ERRCODE_INET_READ
+ {
+ Text [ en-US ] = "Error reading data from the Internet.\nServer error message: $(ARG1)." ;
+ };
+ String ERRCODE_INET_WRITE
+ {
+ Text [ en-US ] = "Error transferring data to the Internet.\nServer error message: $(ARG1)." ;
+ };
+ String ERRCODE_INET_GENERAL
+ {
+ Text [ en-US ] = "General Internet error has occurred." ;
+ };
+ String ERRCODE_INET_OFFLINE
+ {
+ Text [ en-US ] = "The requested Internet data is not available in the cache and cannot be transmitted as the Online mode has not be activated." ;
+ };
+ String ERRCODE_SFXMSG_STYLEREPLACE
+ {
+ ExtraData = ERRCODE_MSG_ERROR | ERRCODE_BUTTON_OK_CANCEL ;
+ Text [ en-US ] = "Should the $(ARG1) Style be replaced?" ;
+ };
+ String ERRCODE_SFX_NOFILTER
+ {
+ Text [ en-US ] = "A filter has not been found." ;
+ };
+ String ERRCODE_SFX_CANTFINDORIGINAL
+ {
+ Text [ en-US ] = "The original could not be determined." ;
+ };
+ String ERRCODE_SFX_CANTCREATECONTENT
+ {
+ Text [ en-US ] = "The contents could not be created." ;
+ };
+ String ERRCODE_SFX_CANTCREATELINK
+ {
+ Text [ en-US ] = "The link could not be created." ;
+ };
+ String ERRCODE_SFX_WRONGBMKFORMAT
+ {
+ Text [ en-US ] = "The link format is invalid." ;
+ };
+ String ERRCODE_SFX_WRONGICONFILE
+ {
+ Text [ en-US ] = "The configuration of the icon display is invalid." ;
+ };
+ String ERRCODE_SFX_CANTWRITEICONFILE
+ {
+ Text [ en-US ] = "The configuration of the icon display can not be saved." ;
+ };
+ String ERRCODE_SFX_CANTDELICONFILE
+ {
+ Text [ en-US ] = "The configuration of the icon display could not be deleted." ;
+ };
+ String ERRCODE_SFX_CANTRENAMECONTENT
+ {
+ Text [ en-US ] = "Contents cannot be renamed." ;
+ };
+ String ERRCODE_SFX_INVALIDBMKPATH
+ {
+ Text [ en-US ] = "The bookmark folder is invalid." ;
+ };
+ String ERRCODE_SFX_CANTWRITEURLCFGFILE
+ {
+ Text [ en-US ] = "The configuration of the URLs to be saved locally could not be saved." ;
+ };
+ String ERRCODE_SFX_WRONGURLCFGFORMAT
+ {
+ Text [ en-US ] = "The configuration format of the URLs to be saved locally is invalid." ;
+ };
+ String ERRCODE_SFX_NODOCUMENT
+ {
+ Text [ en-US ] = "This action cannot be applied to a document that does not exist." ;
+ };
+ String ERRCODE_SFX_INVALIDLINK
+ {
+ Text [ en-US ] = "The link refers to an invalid target." ;
+ };
+ String ERRCODE_SFX_INVALIDTRASHPATH
+ {
+ Text [ en-US ] = "The Recycle Bin path is invalid." ;
+ };
+ String ERRCODE_SFX_NOTRESTORABLE
+ {
+ Text [ en-US ] = "The entry could not be restored." ;
+ };
+ String ERRCODE_IO_NAMETOOLONG
+ {
+ Text [ en-US ] = "The file name is too long for the target file system." ;
+ };
+ String ERRCODE_SFX_CONSULTUSER
+ {
+ Text [ en-US ] = "The details for running the function are incomplete." ;
+ };
+ String ERRCODE_SFX_INVALIDSYNTAX
+ {
+ Text [ en-US ] = "The input syntax is invalid." ;
+ };
+ String ERRCODE_SFX_CANTCREATEFOLDER
+ {
+ Text [ en-US ] = "The input syntax is invalid." ;
+ };
+ String ERRCODE_SFX_CANTRENAMEFOLDER
+ {
+ Text [ en-US ] = "The input syntax is invalid." ;
+ };
+ String ERRCODE_SFX_WRONG_CDF_FORMAT
+ {
+ Text [ en-US ] = "The channel document has an invalid format." ;
+ };
+ String ERRCODE_SFX_EMPTY_SERVER
+ {
+ Text [ en-US ] = "The server must not be empty." ;
+ };
+ String ERRCODE_SFX_NO_ABOBOX
+ {
+ Text [ en-US ] = "A subscription folder is required to install a Channel." ;
+ };
+ String ERRCODE_IO_NOTSTORABLEINBINARYFORMAT
+ {
+ Text [ en-US ] = "This document contains attributes that cannot be saved in the selected format.\nPlease save the document in a %PRODUCTNAME %PRODUCTVERSION file format.";
+ };
+ String ERRCODE_SFX_TARGETFILECORRUPTED
+ {
+ Text [ en-US ] = "The file $(FILENAME) cannot be saved. Please check your system settings. You can find an automatically generated backup copy of this file in folder $(PATH) named $(BACKUPNAME).";
+ };
+ String ERRCODE_SFX_NOMOREDOCUMENTSALLOWED
+ {
+ Text [ en-US ] = "The maximum number of documents that can be opened at the same time has been reached. You need to close one or more documents before you can open a new document.";
+ };
+ String ERRCODE_SFX_CANTCREATEBACKUP
+ {
+ Text [ en-US ] = "Could not create backup copy." ;
+ };
+ String ERRCODE_SFX_MACROS_SUPPORT_DISABLED
+ {
+ Text [ en-US ] = "An attempt was made to execute a macro.\nFor security reasons, macro support is disabled.";
+ };
+ String ERRCODE_SFX_DOCUMENT_MACRO_DISABLED
+ {
+ Text [ en-US ] = "This document contains macros.\n\nMacros may contain viruses. Execution of macros is disabled due to the current macro security setting in Tools - Options - %PRODUCTNAME - Security.\n\nTherefore, some functionality may not be available." ;
+ };
+ String ERRCODE_SFX_BROKENSIGNATURE
+ {
+ Text [ en-US ] = "The digitally signed document content and/or macros do not match the current document signature.\n\nThis could be the result of document manipulation or of structural document damage due to data transmission.\n\nWe recommend that you do not trust the content of the current document.\nExecution of macros is disabled for this document.\n " ;
+ };
+ String ERRCODE_SFX_INCOMPLETE_ENCRYPTION
+ {
+ Text [ en-US ] = "The encrypted document contains unexpected non-encrypted streams.\n\nThis could be the result of document manipulation.\n\nWe recommend that you do not trust the content of the current document.\nExecution of macros is disabled for this document.\n " ;
+ };
+
+ String ERRCODE_IO_INVALIDLENGTH
+ {
+ Text [ en-US ] = "Invalid data length." ;
+ };
+ String ERRCODE_IO_CURRENTDIR
+ {
+ Text [ en-US ] = "Function not possible: path contains current directory." ;
+ };
+ String ERRCODE_IO_NOTSAMEDEVICE
+ {
+ Text [ en-US ] = "Function not possible: device (drive) not identical." ;
+ };
+ String ERRCODE_IO_DEVICENOTREADY
+ {
+ Text [ en-US ] = "Device (drive) not ready." ;
+ };
+ String ERRCODE_IO_BADCRC
+ {
+ Text [ en-US ] = "Wrong check amount." ;
+ };
+ String ERRCODE_IO_WRITEPROTECTED
+ {
+ Text [ en-US ] = "Function not possible: write protected." ;
+ };
+ String ERRCODE_SFX_SHARED_NOPASSWORDCHANGE
+ {
+ Text [ en-US ] = "The password of a shared spreadsheet cannot be set or changed.\nDeactivate sharing mode first.";
+ };
+};
+
+// eof ------------------------------------------------------------------------
+
diff --git a/svx/source/src/makefile.mk b/svx/source/src/makefile.mk
index fb96866ca0f7..c41b3e492e00 100644
--- a/svx/source/src/makefile.mk
+++ b/svx/source/src/makefile.mk
@@ -39,8 +39,6 @@ TARGET=ofa
RES1FILELIST=\
$(SRS)$/app.srs \
- $(SOLARCOMMONRESDIR)$/svtools.srs \
- $(SOLARCOMMONRESDIR)$/sfx.srs \
$(SOLARCOMMONRESDIR)$/basic.srs
RESLIB1NAME=$(TARGET)
@@ -51,7 +49,8 @@ RESLIB1SRSFILES=$(RES1FILELIST)
SRS1NAME= app
SRC1FILES= \
- app.src
+ app.src \
+ errtxt.src
.INCLUDE : target.mk
diff --git a/svx/source/stbctrls/insctrl.cxx b/svx/source/stbctrls/insctrl.cxx
index 2ca1c5b5cfdd..157a9bd06f7e 100644
--- a/svx/source/stbctrls/insctrl.cxx
+++ b/svx/source/stbctrls/insctrl.cxx
@@ -41,7 +41,7 @@
#include <svx/dialogs.hrc>
-#include "insctrl.hxx"
+#include "svx/insctrl.hxx"
#include <svx/dialmgr.hxx>
#define PAINT_OFFSET 5
diff --git a/svx/source/stbctrls/makefile.mk b/svx/source/stbctrls/makefile.mk
index 4e125adcd9d8..71c639cecdd3 100644
--- a/svx/source/stbctrls/makefile.mk
+++ b/svx/source/stbctrls/makefile.mk
@@ -61,12 +61,12 @@ HXX1TARGET=stbctrls
HXX1EXT= hxx
HXX1EXCL= -E:*include*
HXX1DEPN=\
- $(INC)$/insctrl.hxx \
- $(INC)$/zoomctrl.hxx \
- $(INC)$/pszctrl.hxx \
- $(INC)$/selctrl.hxx \
- $(INC)$/modctrl.hxx \
- $(INC)$/xmlsecctrl.hxx \
+ $(INC)$/svx/insctrl.hxx \
+ $(INC)$/svx/zoomctrl.hxx \
+ $(INC)$/svx/pszctrl.hxx \
+ $(INC)$/svx/selctrl.hxx \
+ $(INC)$/svx/modctrl.hxx \
+ $(INC)$/svx/xmlsecctrl.hxx \
$(INC)$/zoomsliderctrl.hxx \
# --- Targets -------------------------------------------------------
diff --git a/svx/source/stbctrls/modctrl.cxx b/svx/source/stbctrls/modctrl.cxx
index fbb212e131f0..986b84f7b8dc 100644
--- a/svx/source/stbctrls/modctrl.cxx
+++ b/svx/source/stbctrls/modctrl.cxx
@@ -40,7 +40,7 @@
#include <svx/dialogs.hrc>
-#include "modctrl.hxx"
+#include "svx/modctrl.hxx"
#include <svx/dialmgr.hxx>
SFX_IMPL_STATUSBAR_CONTROL(SvxModifyControl, SfxBoolItem);
diff --git a/svx/source/stbctrls/pszctrl.cxx b/svx/source/stbctrls/pszctrl.cxx
index e980ece5c8b6..43b563f78411 100644
--- a/svx/source/stbctrls/pszctrl.cxx
+++ b/svx/source/stbctrls/pszctrl.cxx
@@ -45,13 +45,13 @@
#include <svl/intitem.hxx>
#define _SVX_PSZCTRL_CXX
-#include "pszctrl.hxx"
+#include "svx/pszctrl.hxx"
#define PAINT_OFFSET 5
#include <editeng/sizeitem.hxx>
#include <svx/dialmgr.hxx>
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include "stbctrls.h"
#include "sfx2/module.hxx"
diff --git a/svx/source/stbctrls/selctrl.cxx b/svx/source/stbctrls/selctrl.cxx
index 980216ce17bf..e56ba9aeaef9 100644
--- a/svx/source/stbctrls/selctrl.cxx
+++ b/svx/source/stbctrls/selctrl.cxx
@@ -39,7 +39,7 @@
#define _SVX_SELCTRL_CXX
-#include "selctrl.hxx"
+#include "svx/selctrl.hxx"
#include <svx/dialmgr.hxx>
#include <svx/dialogs.hrc>
diff --git a/svx/source/stbctrls/xmlsecctrl.cxx b/svx/source/stbctrls/xmlsecctrl.cxx
index 92d8f7ad0746..26daed799c6e 100644
--- a/svx/source/stbctrls/xmlsecctrl.cxx
+++ b/svx/source/stbctrls/xmlsecctrl.cxx
@@ -53,14 +53,14 @@
#include <svx/dialogs.hrc>
#include <svx/dialmgr.hxx>
-#include "xmlsecctrl.hxx"
+#include "svx/xmlsecctrl.hxx"
#include <tools/urlobj.hxx>
#define PAINT_OFFSET 5
//#include <editeng/sizeitem.hxx>
//#include <svx/dialmgr.hxx>
-//#include "dlgutil.hxx"
+//#include "svx/dlgutil.hxx"
//#include "stbctrls.h"
//#include <svx/dialogs.hrc>
diff --git a/svx/source/stbctrls/zoomctrl.cxx b/svx/source/stbctrls/zoomctrl.cxx
index 63cbbb969d2d..fb9fc65583e3 100644
--- a/svx/source/stbctrls/zoomctrl.cxx
+++ b/svx/source/stbctrls/zoomctrl.cxx
@@ -39,7 +39,7 @@
#include <svx/dialogs.hrc>
-#include "zoomctrl.hxx"
+#include "svx/zoomctrl.hxx"
//CHINA001 #include "zoom.hxx"
#include <svx/zoomitem.hxx>
#include "stbctrls.h"
diff --git a/svx/source/svdraw/ActionDescriptionProvider.cxx b/svx/source/svdraw/ActionDescriptionProvider.cxx
index acd60e27680b..ffc753e61276 100644
--- a/svx/source/svdraw/ActionDescriptionProvider.cxx
+++ b/svx/source/svdraw/ActionDescriptionProvider.cxx
@@ -28,9 +28,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "ActionDescriptionProvider.hxx"
-#include "svdglob.hxx"
-#include "svdstr.hrc"
+#include "svx/ActionDescriptionProvider.hxx"
+#include "svx/svdglob.hxx"
+#include "svx/svdstr.hrc"
::rtl::OUString ActionDescriptionProvider::createDescription( ActionType eActionType
, const ::rtl::OUString& rObjectName )
diff --git a/svx/source/svdraw/sdrpagewindow.cxx b/svx/source/svdraw/sdrpagewindow.cxx
index 85513fb3b926..b564421f6d0e 100644
--- a/svx/source/svdraw/sdrpagewindow.cxx
+++ b/svx/source/svdraw/sdrpagewindow.cxx
@@ -39,7 +39,7 @@
#include <svx/svdpage.hxx>
#include <svx/svdview.hxx>
#include <svx/svdpagv.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/sdr/contact/objectcontactofpageview.hxx>
#include <svx/sdr/contact/displayinfo.hxx>
#include <vos/mutex.hxx>
@@ -192,6 +192,10 @@ void SdrPageWindow::PrePaint()
}
}
+void SdrPageWindow::PostPaint()
+{
+}
+
void SdrPageWindow::PrepareRedraw(const Region& rReg)
{
// evtl. give OC the chance to do ProcessDisplay preparations
diff --git a/svx/source/svdraw/sdrpaintwindow.cxx b/svx/source/svdraw/sdrpaintwindow.cxx
index d173c1eea4d5..656ab9f2f27a 100644
--- a/svx/source/svdraw/sdrpaintwindow.cxx
+++ b/svx/source/svdraw/sdrpaintwindow.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/sdr/overlay/overlaymanagerbuffered.hxx>
#include <svx/svdpntv.hxx>
#include <vcl/gdimtf.hxx>
diff --git a/svx/source/svdraw/svdattr.cxx b/svx/source/svdraw/svdattr.cxx
index 3a3935f819f8..1adddfc29b2b 100644
--- a/svx/source/svdraw/svdattr.cxx
+++ b/svx/source/svdraw/svdattr.cxx
@@ -54,11 +54,11 @@
#include <svx/svxids.hrc>
#include <svx/xtable.hxx> // fuer RGB_Color()
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdmodel.hxx> // fuer DEGREE_CHAR
#include <svx/svdtrans.hxx>
-#include "svdglob.hxx" // Stringcache
-#include "svdstr.hrc"
+#include "svx/svdglob.hxx" // Stringcache
+#include "svx/svdstr.hrc"
#include <svx/sdgcpitm.hxx>
#include <editeng/adjitem.hxx>
#include <svx/sdtfchim.hxx>
diff --git a/svx/source/svdraw/svdcrtv.cxx b/svx/source/svdraw/svdcrtv.cxx
index 9fd0edd3aac0..7980668c0b9a 100644
--- a/svx/source/svdraw/svdcrtv.cxx
+++ b/svx/source/svdraw/svdcrtv.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include <svx/svdcrtv.hxx>
-#include "xattr.hxx"
+#include "svx/xattr.hxx"
#include <svx/svdundo.hxx>
#include <svx/svdocapt.hxx> // Spezialbehandlung: Nach dem Create transparente Fuellung
#include <svx/svdoedge.hxx>
@@ -45,7 +45,7 @@
#include <svx/svdopath.hxx>
#include <svx/sdr/overlay/overlaypolypolygon.hxx>
#include <svx/sdr/overlay/overlaymanager.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include "fmobj.hxx"
#include <svx/svdocirc.hxx>
#include <svx/sdr/contact/viewcontact.hxx>
diff --git a/svx/source/svdraw/svddrgmt.cxx b/svx/source/svdraw/svddrgmt.cxx
index d04bf8851795..d41b5b1a1c34 100644
--- a/svx/source/svdraw/svddrgmt.cxx
+++ b/svx/source/svdraw/svddrgmt.cxx
@@ -37,7 +37,7 @@
#include <tools/bigint.hxx>
#include <vcl/svapp.hxx>
-#include "xattr.hxx"
+#include "svx/xattr.hxx"
#include <svx/xpoly.hxx>
#include <svx/svdetc.hxx>
#include <svx/svdtrans.hxx>
@@ -45,8 +45,8 @@
#include <svx/svdmark.hxx>
#include <svx/svdocapt.hxx>
#include <svx/svdpagv.hxx>
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
#include <svx/svddrgv.hxx>
#include <svx/svdundo.hxx>
#include <svx/svdograf.hxx>
@@ -59,7 +59,7 @@
#include <svx/sdr/overlay/overlaymanager.hxx>
#include <svx/sdr/overlay/overlayrollingrectangle.hxx>
#include <svx/sdrpagewindow.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <svx/sdr/contact/viewobjectcontact.hxx>
@@ -68,7 +68,7 @@
#include <svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx>
#include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
#include <svx/sdr/contact/objectcontact.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdopath.hxx>
#include <svx/polypolygoneditor.hxx>
#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
diff --git a/svx/source/svdraw/svddrgv.cxx b/svx/source/svdraw/svddrgv.cxx
index f1b84ac5f98e..f47d30fb3bdd 100644
--- a/svx/source/svdraw/svddrgv.cxx
+++ b/svx/source/svdraw/svddrgv.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include <svx/svddrgv.hxx>
-#include "xattr.hxx"
+#include "svx/xattr.hxx"
#include <svx/xpoly.hxx>
#include <svx/svdetc.hxx>
#include <svx/svdtrans.hxx>
@@ -38,12 +38,12 @@
#include <svx/svdpagv.hxx>
#include <svx/svdopath.hxx>
#include <svx/svdoedge.hxx>
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
#include "svddrgm1.hxx"
#include <svx/obj3d.hxx>
#include <svx/svdoashp.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <svx/polypolygoneditor.hxx>
diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx
index 26966a543f1c..d2c1e7bc52ef 100644
--- a/svx/source/svdraw/svdedtv.cxx
+++ b/svx/source/svdraw/svdedtv.cxx
@@ -40,8 +40,8 @@
#include <svx/svdpagv.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdpoev.hxx> // fuer die PolyPossiblities
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
#include <svx/e3dsceneupdater.hxx>
// #i13033#
diff --git a/svx/source/svdraw/svdedtv1.cxx b/svx/source/svdraw/svdedtv1.cxx
index 1ac6d0b89945..9e149bd8e42d 100644
--- a/svx/source/svdraw/svdedtv1.cxx
+++ b/svx/source/svdraw/svdedtv1.cxx
@@ -40,8 +40,8 @@
#include <svx/rectenum.hxx>
#include <svx/svxids.hrc> // fuer SID_ATTR_TRANSFORM_...
#include <svx/svdattr.hxx> // fuer Get/SetGeoAttr
-#include "svditext.hxx"
-#include "svditer.hxx"
+#include "svx/svditext.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdtrans.hxx>
#include <svx/svdundo.hxx>
#include <svx/svdpage.hxx>
@@ -50,8 +50,8 @@
#include <svx/svdattrx.hxx> // fuer MergeNotPersistAttr
#include <svx/svdetc.hxx> // fuer SearchOutlinerItems
#include <svx/svdopath.hxx> // fuer Crook
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
#include <editeng/eeitem.hxx>
#include <svl/aeitem.hxx>
#include <svl/whiter.hxx>
diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx
index 8cf83c0429cc..afb81b5bc6c2 100644
--- a/svx/source/svdraw/svdedtv2.cxx
+++ b/svx/source/svdraw/svdedtv2.cxx
@@ -36,11 +36,11 @@
#include <svx/svdopath.hxx> // fuer CombineObjects
#include <svx/svdpage.hxx>
#include <svx/svdpagv.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdograf.hxx> // fuer Possibilities
#include <svx/svdoole2.hxx> // und Mtf-Import
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
#include "svdfmtf.hxx"
#include <svx/svdetc.hxx>
#include <sfx2/basedlgs.hxx>
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index 7235310def0b..961c860567f9 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -50,12 +50,12 @@
#include <editeng/editobj.hxx>
#include <editeng/outlobj.hxx>
#include <editeng/scripttypeitem.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdoutl.hxx>
#include <svx/sdtfchim.hxx>
#include <svx/svdotext.hxx>
#include <svx/svdundo.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include "svx/svdpagv.hxx"
#include "svx/svdpage.hxx"
#include "svx/svdetc.hxx" // fuer GetDraftFillColor
@@ -67,16 +67,16 @@
#include <svx/svdoutl.hxx>
#include <svx/svddrgv.hxx> // fuer SetSolidDragging()
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
-#include "globl3d.hxx"
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
+#include "svx/globl3d.hxx"
#include <editeng/outliner.hxx>
#include <editeng/adjitem.hxx>
// #98988#
#include <svtools/colorcfg.hxx>
#include <vcl/svapp.hxx> //add CHINA001
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/svx/source/svdraw/svdetc.cxx b/svx/source/svdraw/svdetc.cxx
index 8a4245919821..74d0cf6046da 100644
--- a/svx/source/svdraw/svdetc.cxx
+++ b/svx/source/svdraw/svdetc.cxx
@@ -31,12 +31,12 @@
#include <com/sun/star/embed/XEmbeddedObject.hpp>
#include <com/sun/star/embed/EmbedStates.hpp>
#include <svx/svdetc.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdmodel.hxx>
#include <svx/svdtrans.hxx>
-#include "svdglob.hxx"
-#include "svdstr.hrc"
-#include "svdviter.hxx"
+#include "svx/svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdviter.hxx"
#include <svx/svdview.hxx>
#include <svx/svdoutl.hxx>
#include <vcl/bmpacc.hxx>
diff --git a/svx/source/svdraw/svdfmtf.cxx b/svx/source/svdraw/svdfmtf.cxx
index 34a77fcd9e62..f10610317578 100644
--- a/svx/source/svdraw/svdfmtf.cxx
+++ b/svx/source/svdraw/svdfmtf.cxx
@@ -57,7 +57,7 @@
#include <svx/svdmodel.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdobj.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdotext.hxx>
#include <svx/svdorect.hxx>
#include <svx/svdocirc.hxx>
diff --git a/svx/source/svdraw/svdglev.cxx b/svx/source/svdraw/svdglev.cxx
index 6eab2ea7ecfa..e90d1972a4cd 100644
--- a/svx/source/svdraw/svdglev.cxx
+++ b/svx/source/svdraw/svdglev.cxx
@@ -32,8 +32,8 @@
#include <math.h>
#include <svx/svdundo.hxx>
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
#include <svx/svdpagv.hxx>
#include <svx/svdglue.hxx>
#include <svx/svdtrans.hxx>
diff --git a/svx/source/svdraw/svdhdl.cxx b/svx/source/svdraw/svdhdl.cxx
index 47a04241e5bb..791d0f5ca8e7 100644
--- a/svx/source/svdraw/svdhdl.cxx
+++ b/svx/source/svdraw/svdhdl.cxx
@@ -41,8 +41,8 @@
#include <vcl/bmpacc.hxx>
#include <svx/sxekitm.hxx>
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
#include <svx/svdmodel.hxx>
#include "gradtrns.hxx"
@@ -62,7 +62,7 @@
#include <svx/sdr/overlay/overlaytriangle.hxx>
#include <svx/sdr/overlay/overlayhatchrect.hxx>
#include <svx/sdrpagewindow.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <vcl/svapp.hxx>
#include <svx/sdr/overlay/overlaypolypolygon.hxx>
#include <vcl/lazydelete.hxx>
diff --git a/svx/source/svdraw/svdibrow.cxx b/svx/source/svdraw/svdibrow.cxx
index fa3dbe852b3a..3ded3a1f90c3 100644
--- a/svx/source/svdraw/svdibrow.cxx
+++ b/svx/source/svdraw/svdibrow.cxx
@@ -36,7 +36,7 @@
#define _STDLIB_H
#endif
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <editeng/flditem.hxx>
#include <editeng/editdata.hxx>
#include <svx/svdpool.hxx>
@@ -66,7 +66,7 @@
#include <svl/rectitem.hxx>
#include <svl/rngitem.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/svx/source/svdraw/svditer.cxx b/svx/source/svdraw/svditer.cxx
index 30c423c7178c..0e7bc872c5a6 100644
--- a/svx/source/svdraw/svditer.cxx
+++ b/svx/source/svdraw/svditer.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdpage.hxx>
#include <svx/svdogrp.hxx>
#include <svx/svdobj.hxx>
diff --git a/svx/source/svdraw/svdlayer.cxx b/svx/source/svdraw/svdlayer.cxx
index 098c036dcad7..2c12a7b5d06c 100644
--- a/svx/source/svdraw/svdlayer.cxx
+++ b/svx/source/svdraw/svdlayer.cxx
@@ -31,8 +31,8 @@
#include <svx/svdlayer.hxx>
#include <svx/svdmodel.hxx> // fuer Broadcasting
-#include "svdglob.hxx" // StringCache
-#include "svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Namen aus der Resource
////////////////////////////////////////////////////////////////////////////////////////////////////
// SetOfByte
diff --git a/svx/source/svdraw/svdmark.cxx b/svx/source/svdraw/svdmark.cxx
index c871865ac87b..d61654e674ea 100644
--- a/svx/source/svdraw/svdmark.cxx
+++ b/svx/source/svdraw/svdmark.cxx
@@ -34,13 +34,13 @@
#include <svx/svdetc.hxx>
#include <svx/svdobj.hxx>
#include <svx/svdpage.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdpagv.hxx>
#include <svx/svdopath.hxx> // zur Abschaltung
#include <svx/svdogrp.hxx> // des Cache bei
#include <svx/svdorect.hxx> // GetMarkDescription
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
////////////////////////////////////////////////////////////////////////////////////////////////////
#include <svx/obj3d.hxx>
diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx
index 8ab385fa329c..7718451ab945 100644
--- a/svx/source/svdraw/svdmodel.cxx
+++ b/svx/source/svdraw/svdmodel.cxx
@@ -49,12 +49,12 @@
#include <svx/xflhtit.hxx>
#include <svx/xlnstit.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <editeng/editeng.hxx> // Fuer EditEngine::CreatePool()
#include <svx/xtable.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdtrans.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdlayer.hxx>
@@ -65,8 +65,8 @@
#include <svx/svdetc.hxx>
#include <svx/svdoutl.hxx>
#include <svx/svdoole2.hxx>
-#include "svdglob.hxx" // Stringcache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // Stringcache
+#include "svx/svdstr.hrc" // Objektname
#include "svdoutlinercache.hxx"
@@ -207,6 +207,8 @@ void SdrModel::ImpCtor(SfxItemPool* pPool, ::comphelper::IEmbeddedHelper* _pEmbe
else
nDefTextHgt = SdrEngineDefaults::GetFontHeight();
+ pItemPool->SetPoolDefaultItem( SdrTextWordWrapItem( sal_False ) );
+
SetTextDefaults();
pLayerAdmin=new SdrLayerAdmin;
pLayerAdmin->SetModel(this);
diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx
index ee9e8f48634b..d51ecbc53dac 100644
--- a/svx/source/svdraw/svdmrkv.cxx
+++ b/svx/source/svdraw/svdmrkv.cxx
@@ -31,8 +31,8 @@
#include <svx/svdmrkv.hxx>
#include <svx/svdetc.hxx>
#include <svx/svdoedge.hxx>
-#include "svdglob.hxx"
-#include "svditext.hxx"
+#include "svx/svdglob.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdview.hxx>
#include <svx/svdpagv.hxx>
#include <svx/svdpage.hxx>
@@ -48,14 +48,14 @@
#include "gradtrns.hxx"
#include <svx/xflftrit.hxx>
#include <svx/dialmgr.hxx>
-#include "svdstr.hrc"
+#include "svx/svdstr.hrc"
#include <svx/svdundo.hxx>
#include <svx/svdopath.hxx>
#include <svx/scene3d.hxx>
#include <svx/svdovirt.hxx>
#include <svx/sdr/overlay/overlayrollingrectangle.hxx>
#include <svx/sdr/overlay/overlaymanager.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/sdrpagewindow.hxx>
#include <svx/sdrhittesthelper.hxx>
diff --git a/svx/source/svdraw/svdmrkv1.cxx b/svx/source/svdraw/svdmrkv1.cxx
index fe271c80534d..f67b35bfdf67 100644
--- a/svx/source/svdraw/svdmrkv1.cxx
+++ b/svx/source/svdraw/svdmrkv1.cxx
@@ -31,7 +31,7 @@
#include <svx/svdmrkv.hxx>
#include <svx/svdetc.hxx>
#include <svx/svdoedge.hxx>
-#include "svdglob.hxx"
+#include "svx/svdglob.hxx"
#include <svx/svdpagv.hxx>
#include <svx/svdpage.hxx>
#include "svddrgm1.hxx"
diff --git a/svx/source/svdraw/svdoashp.cxx b/svx/source/svdraw/svdoashp.cxx
index 6ab27c85aaf0..6a8221136f7c 100644
--- a/svx/source/svdraw/svdoashp.cxx
+++ b/svx/source/svdraw/svdoashp.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
#include <svx/svdoashp.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <svx/unoshape.hxx>
#include <ucbhelper/content.hxx>
#include <ucbhelper/contentbroker.hxx>
@@ -52,22 +52,22 @@
#include <svx/xpoly.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svdpage.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdobj.hxx>
#include <svx/svdtrans.hxx>
#include <svx/svdetc.hxx>
#include <svx/svdattrx.hxx> // NotPersistItems
#include <svx/svdoedge.hxx> // #32383# Die Verbinder nach Move nochmal anbroadcasten
-#include "svdglob.hxx" // StringCache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Objektname
#include <editeng/eeitem.hxx>
#include "editeng/editstat.hxx"
#include <svx/svdoutl.hxx>
#include <editeng/outlobj.hxx>
#include <svx/sdtfchim.hxx>
-#include "../customshapes/EnhancedCustomShapeGeometry.hxx"
-#include "../customshapes/EnhancedCustomShapeTypeNames.hxx"
-#include "../customshapes/EnhancedCustomShape2d.hxx"
+#include "../svx/EnhancedCustomShapeGeometry.hxx"
+#include "../svx/EnhancedCustomShapeTypeNames.hxx"
+#include "../svx/EnhancedCustomShape2d.hxx"
#include <com/sun/star/beans/PropertyValues.hpp>
#include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp>
#include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp>
diff --git a/svx/source/svdraw/svdoattr.cxx b/svx/source/svdraw/svdoattr.cxx
index 81c1ca029ede..09965a1b98a6 100644
--- a/svx/source/svdraw/svdoattr.cxx
+++ b/svx/source/svdraw/svdoattr.cxx
@@ -30,7 +30,7 @@
#include <svx/svdoattr.hxx>
#include <svx/xpool.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdmodel.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdattr.hxx>
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index b9d3e24592ee..0a0c35aec524 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -47,8 +47,8 @@
#include <svx/svdpage.hxx>
#include <svx/svdovirt.hxx> // Fuer Add/Del Ref
#include <svx/svdview.hxx> // fuer Dragging (Ortho abfragen)
-#include "svdglob.hxx" // StringCache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // StringCache
+#include <svx/svdstr.hrc> // Objektname
#include <svx/svdogrp.hxx> // Factory
#include <svx/svdopath.hxx> // Factory
#include <svx/svdoedge.hxx> // Factory
@@ -74,7 +74,7 @@
#include <svx/xlndsit.hxx>
#include <svx/xlnclit.hxx>
#include <svx/xflclit.hxx>
-#include "svditer.hxx"
+#include <svx/svditer.hxx>
#include <svx/xlntrit.hxx>
#include <svx/xfltrit.hxx>
#include <svx/xfltrit.hxx>
diff --git a/svx/source/svdraw/svdocapt.cxx b/svx/source/svdraw/svdocapt.cxx
index b92157823081..fd9ee15b8f2c 100644
--- a/svx/source/svdraw/svdocapt.cxx
+++ b/svx/source/svdraw/svdocapt.cxx
@@ -41,8 +41,8 @@
#include <svx/svddrag.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svdview.hxx> // fuer RectSnap
-#include "svdglob.hxx" // StringCache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Objektname
#include <svx/svdogrp.hxx>
#include <svx/svdpage.hxx>
#include <svx/xflhtit.hxx>
diff --git a/svx/source/svdraw/svdocirc.cxx b/svx/source/svdraw/svdocirc.cxx
index 31582d652dc4..d28039cf1989 100644
--- a/svx/source/svdraw/svdocirc.cxx
+++ b/svx/source/svdraw/svdocirc.cxx
@@ -47,8 +47,8 @@
#include <svx/svdpage.hxx>
#include <svx/svdopath.hxx> // fuer die Objektkonvertierung
#include <svx/svdview.hxx> // Zum Draggen (Ortho)
-#include "svdglob.hxx" // StringCache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Objektname
#include <editeng/eeitem.hxx>
#include "svdoimp.hxx"
#include <svx/sdr/properties/circleproperties.hxx>
diff --git a/svx/source/svdraw/svdoedge.cxx b/svx/source/svdraw/svdoedge.cxx
index 3d254aeb39c4..c7bbc5fab761 100644
--- a/svx/source/svdraw/svdoedge.cxx
+++ b/svx/source/svdraw/svdoedge.cxx
@@ -43,8 +43,8 @@
#include <svx/svdhdl.hxx>
#include <svx/svdtrans.hxx>
#include <svx/svdetc.hxx>
-#include "svdglob.hxx" // StringCache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Objektname
#include <svl/style.hxx>
#include <svl/smplhint.hxx>
#include <editeng/eeitem.hxx>
diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx
index d1f65c30050d..b299d4c7a2ef 100644
--- a/svx/source/svdraw/svdograf.cxx
+++ b/svx/source/svdraw/svdograf.cxx
@@ -45,15 +45,16 @@
#include <vcl/svapp.hxx>
#include <sfx2/linkmgr.hxx>
+#include <sfx2/docfile.hxx>
#include <svx/svdetc.hxx>
-#include "svdglob.hxx"
-#include "svdstr.hrc"
+#include "svx/svdglob.hxx"
+#include "svx/svdstr.hrc"
#include <svx/svdpool.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdmrkv.hxx>
#include <svx/svdpagv.hxx>
-#include "svdviter.hxx"
+#include "svx/svdviter.hxx"
#include <svx/svdview.hxx>
#include "svtools/filter.hxx"
#include <svx/svdograf.hxx>
@@ -69,6 +70,8 @@
#include <svx/sdr/contact/viewcontactofgraphic.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <osl/thread.hxx>
+#include <vos/mutex.hxx>
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::io;
@@ -80,13 +83,48 @@ using namespace ::com::sun::star::io;
#define GRAFSTREAMPOS_INVALID 0xffffffff
#define SWAPGRAPHIC_TIMEOUT 5000
+
// ------------------
// - SdrGraphicLink -
// ------------------
+
+const Graphic ImpLoadLinkedGraphic( const String& rFileName, const String& rFilterName )
+{
+ Graphic aGraphic;
+
+ SfxMedium xMed( rFileName, STREAM_STD_READ, TRUE );
+ xMed.DownLoad();
+
+ SvStream* pInStrm = xMed.GetInStream();
+ if ( pInStrm )
+ {
+ pInStrm->Seek( STREAM_SEEK_TO_BEGIN );
+ GraphicFilter* pGF = GraphicFilter::GetGraphicFilter();
+
+ const USHORT nFilter = rFilterName.Len() && pGF->GetImportFormatCount()
+ ? pGF->GetImportFormatNumber( rFilterName )
+ : GRFILTER_FORMAT_DONTKNOW;
+
+ String aEmptyStr;
+ com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > aFilterData( 1 );
+
+ // Room for improvment:
+ // As this is a linked graphic the GfxLink is not needed if saving/loading our own format.
+ // But this link is required by some filters to access the native graphic (pdf export/ms export),
+ // there we should create a new service to provide this data if needed
+ aFilterData[ 0 ].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CreateNativeLink" ) );
+ aFilterData[ 0 ].Value = Any( sal_True );
+ pGF->ImportGraphic( aGraphic, aEmptyStr, *pInStrm, nFilter, NULL, 0, &aFilterData );
+ }
+ return aGraphic;
+}
+
+class SdrGraphicUpdater;
class SdrGraphicLink : public sfx2::SvBaseLink
{
SdrGrafObj* pGrafObj;
+ SdrGraphicUpdater* pGraphicUpdater;
public:
SdrGraphicLink(SdrGrafObj* pObj);
@@ -95,16 +133,87 @@ public:
virtual void Closed();
virtual void DataChanged( const String& rMimeType,
const ::com::sun::star::uno::Any & rValue );
+ void DataChanged( const Graphic& rGraphic );
BOOL Connect() { return 0 != GetRealObject(); }
- void UpdateSynchron();
+ void UpdateAsynchron();
+ void RemoveGraphicUpdater();
};
+class SdrGraphicUpdater : public ::osl::Thread
+{
+public:
+ SdrGraphicUpdater( const String& rFileName, const String& rFilterName, SdrGraphicLink& );
+ virtual ~SdrGraphicUpdater( void );
+
+ void SAL_CALL Terminate( void );
+
+ sal_Bool GraphicLinkChanged( const String& rFileName ){ return mrFileName != rFileName; };
+
+protected:
+
+ /** is called from the inherited create method and acts as the
+ main function of this thread.
+ */
+ virtual void SAL_CALL run(void);
+
+ /** Called after the thread is terminated via the terminate
+ method. Used to kill the thread by calling delete on this.
+ */
+ virtual void SAL_CALL onTerminated(void);
+
+private:
+
+ ::osl::Mutex maMutex;
+ const String& mrFileName;
+ const String& mrFilterName;
+ SdrGraphicLink& mrGraphicLink;
+
+ volatile bool mbIsTerminated;
+};
+
+SdrGraphicUpdater::SdrGraphicUpdater( const String& rFileName, const String& rFilterName, SdrGraphicLink& rGraphicLink )
+: mrFileName( rFileName )
+, mrFilterName( rFilterName )
+, mrGraphicLink( rGraphicLink )
+, mbIsTerminated( sal_False )
+{
+ create();
+}
+
+SdrGraphicUpdater::~SdrGraphicUpdater( void )
+{
+}
+
+void SdrGraphicUpdater::Terminate()
+{
+ ::osl::MutexGuard aGuard( maMutex );
+ mbIsTerminated = sal_True;
+}
+
+void SAL_CALL SdrGraphicUpdater::onTerminated(void)
+{
+ delete this;
+}
+
+void SAL_CALL SdrGraphicUpdater::run(void)
+{
+ Graphic aGraphic( ImpLoadLinkedGraphic( mrFileName, mrFilterName ) );
+ ::osl::MutexGuard aGuard(maMutex);
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ if ( !mbIsTerminated )
+ {
+ mrGraphicLink.DataChanged( aGraphic );
+ mrGraphicLink.RemoveGraphicUpdater();
+ }
+}
+
// -----------------------------------------------------------------------------
-SdrGraphicLink::SdrGraphicLink(SdrGrafObj* pObj):
- ::sfx2::SvBaseLink( ::sfx2::LINKUPDATE_ONCALL, SOT_FORMATSTR_ID_SVXB ),
- pGrafObj(pObj)
+SdrGraphicLink::SdrGraphicLink(SdrGrafObj* pObj)
+: ::sfx2::SvBaseLink( ::sfx2::LINKUPDATE_ONCALL, SOT_FORMATSTR_ID_SVXB )
+, pGrafObj( pObj )
+, pGraphicUpdater( NULL )
{
SetSynchron( FALSE );
}
@@ -113,6 +222,22 @@ SdrGraphicLink::SdrGraphicLink(SdrGrafObj* pObj):
SdrGraphicLink::~SdrGraphicLink()
{
+ if ( pGraphicUpdater )
+ pGraphicUpdater->Terminate();
+}
+
+// -----------------------------------------------------------------------------
+
+void SdrGraphicLink::DataChanged( const Graphic& rGraphic )
+{
+ pGrafObj->ImpSetLinkedGraphic( rGraphic );
+}
+
+// -----------------------------------------------------------------------------
+
+void SdrGraphicLink::RemoveGraphicUpdater()
+{
+ pGraphicUpdater = NULL;
}
// -----------------------------------------------------------------------------
@@ -135,9 +260,8 @@ void SdrGraphicLink::DataChanged( const String& rMimeType,
}
else if( SotExchange::GetFormatIdFromMimeType( rMimeType ) != sfx2::LinkManager::RegisterStatusInfoId() )
{
- // only repaint, no objectchange
- pGrafObj->ActionChanged();
- // pGrafObj->BroadcastObjectChange();
+ // broadcasting, to update slidesorter
+ pGrafObj->BroadcastObjectChange();
}
}
}
@@ -155,14 +279,20 @@ void SdrGraphicLink::Closed()
// -----------------------------------------------------------------------------
-void SdrGraphicLink::UpdateSynchron()
+void SdrGraphicLink::UpdateAsynchron()
{
if( GetObj() )
{
- String aMimeType( SotExchange::GetFormatMimeType( GetContentType() ));
- ::com::sun::star::uno::Any aValue;
- GetObj()->GetData( aValue, aMimeType, TRUE );
- DataChanged( aMimeType, aValue );
+ if ( pGraphicUpdater )
+ {
+ if ( pGraphicUpdater->GraphicLinkChanged( pGrafObj->GetFileName() ) )
+ {
+ pGraphicUpdater->Terminate();
+ pGraphicUpdater = new SdrGraphicUpdater( pGrafObj->GetFileName(), pGrafObj->GetFilterName(), *this );
+ }
+ }
+ else
+ pGraphicUpdater = new SdrGraphicUpdater( pGrafObj->GetFileName(), pGrafObj->GetFilterName(), *this );
}
}
@@ -447,8 +577,10 @@ void SdrGrafObj::ForceSwapIn() const
const_cast< SdrGrafObj* >( this )->mbIsPreview = sal_False;
}
-
- pGraphic->FireSwapInRequest();
+ if ( pGraphicLink && pGraphic->IsSwappedOut() )
+ ImpUpdateGraphicLink( sal_False );
+ else
+ pGraphic->FireSwapInRequest();
if( pGraphic->IsSwappedOut() ||
( pGraphic->GetType() == GRAPHIC_NONE ) ||
@@ -558,24 +690,36 @@ UINT16 SdrGrafObj::GetObjIdentifier() const
// -----------------------------------------------------------------------------
-sal_Bool SdrGrafObj::ImpUpdateGraphicLink() const
+/* The graphic of the GraphicLink will be loaded. If it is called with
+ bAsynchron = true then the graphic will be set later via DataChanged
+*/
+sal_Bool SdrGrafObj::ImpUpdateGraphicLink( sal_Bool bAsynchron ) const
{
- sal_Bool bRet = sal_False;
-
+ sal_Bool bRet = sal_False;
if( pGraphicLink )
{
- const sal_Bool bIsChanged = pModel->IsChanged();
- pGraphicLink->UpdateSynchron();
- pModel->SetChanged( bIsChanged );
-
+ if ( bAsynchron )
+ pGraphicLink->UpdateAsynchron();
+ else
+ pGraphicLink->DataChanged( ImpLoadLinkedGraphic( aFileName, aFilterName ) );
bRet = sal_True;
}
-
return bRet;
}
// -----------------------------------------------------------------------------
+void SdrGrafObj::ImpSetLinkedGraphic( const Graphic& rGraphic )
+{
+ const sal_Bool bIsChanged = GetModel()->IsChanged();
+ NbcSetGraphic( rGraphic );
+ ActionChanged();
+ BroadcastObjectChange();
+ GetModel()->SetChanged( bIsChanged );
+}
+
+// -----------------------------------------------------------------------------
+
void SdrGrafObj::TakeObjNameSingul(XubString& rName) const
{
switch( pGraphic->GetType() )
@@ -1095,7 +1239,7 @@ IMPL_LINK( SdrGrafObj, ImpSwapHdl, GraphicObject*, pO )
if( ( pGraphic->HasUserData() || pGraphicLink ) &&
( nSwapMode & SDR_SWAPGRAPHICSMODE_PURGE ) )
{
- pRet = NULL;
+ pRet = GRFMGR_AUTOSWAPSTREAM_LINK;
}
else if( nSwapMode & SDR_SWAPGRAPHICSMODE_TEMP )
{
@@ -1180,7 +1324,7 @@ IMPL_LINK( SdrGrafObj, ImpSwapHdl, GraphicObject*, pO )
}
}
}
- else if( !ImpUpdateGraphicLink() )
+ else if( !ImpUpdateGraphicLink( sal_False ) )
{
pRet = GRFMGR_AUTOSWAPSTREAM_TEMP;
}
diff --git a/svx/source/svdraw/svdogrp.cxx b/svx/source/svdraw/svdogrp.cxx
index 4060369f8016..56c49ac7ddee 100644
--- a/svx/source/svdraw/svdogrp.cxx
+++ b/svx/source/svdraw/svdogrp.cxx
@@ -45,14 +45,14 @@
#include <svx/svdmodel.hxx>
#include <svx/svdpage.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdobj.hxx>
#include <svx/svdtrans.hxx>
#include <svx/svdetc.hxx>
#include <svx/svdattrx.hxx> // NotPersistItems
#include <svx/svdoedge.hxx> // #32383# Die Verbinder nach Move nochmal anbroadcasten
-#include "svdglob.hxx" // StringCache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Objektname
#include <svx/svxids.hrc>
#include <svl/whiter.hxx>
diff --git a/svx/source/svdraw/svdomeas.cxx b/svx/source/svdraw/svdomeas.cxx
index 2bcf016d0e4a..ade79ec70878 100644
--- a/svx/source/svdraw/svdomeas.cxx
+++ b/svx/source/svdraw/svdomeas.cxx
@@ -30,7 +30,7 @@
#include <svx/svdomeas.hxx>
#include <math.h>
-#include "svditext.hxx" //
+#include "svx/svditext.hxx" //
#include <svx/xpoly.hxx>
#include <svx/svdtrans.hxx>
#include <svx/svdhdl.hxx>
@@ -40,8 +40,8 @@
#include <svx/svdattrx.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svdview.hxx>
-#include "svdglob.hxx" // StringCache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Objektname
#include <svl/style.hxx>
#include <svl/smplhint.hxx>
#include <editeng/eeitem.hxx>
diff --git a/svx/source/svdraw/svdomedia.cxx b/svx/source/svdraw/svdomedia.cxx
index 9dd615490f9e..8d360e67bed0 100644
--- a/svx/source/svdraw/svdomedia.cxx
+++ b/svx/source/svdraw/svdomedia.cxx
@@ -31,8 +31,8 @@
#include <vcl/svapp.hxx>
#include <svx/svdomedia.hxx>
-#include "svdglob.hxx"
-#include "svdstr.hrc"
+#include "svx/svdglob.hxx"
+#include "svx/svdstr.hrc"
#include <svx/sdr/contact/viewcontactofsdrmediaobj.hxx>
#include <avmedia/mediawindow.hxx>
diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx
index 483c247c064f..216783663603 100644
--- a/svx/source/svdraw/svdoole2.cxx
+++ b/svx/source/svdraw/svdoole2.cxx
@@ -77,8 +77,8 @@
#include <svx/svdpagv.hxx>
#include <svx/svdmodel.hxx>
-#include "svdglob.hxx" // Stringcache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // Stringcache
+#include "svx/svdstr.hrc" // Objektname
#include <svx/svdetc.hxx>
#include <svx/svdview.hxx>
#include "unomlstr.hxx"
diff --git a/svx/source/svdraw/svdopage.cxx b/svx/source/svdraw/svdopage.cxx
index a2d21e6e2269..dbe19ac40efe 100644
--- a/svx/source/svdraw/svdopage.cxx
+++ b/svx/source/svdraw/svdopage.cxx
@@ -29,8 +29,8 @@
#include "precompiled_svx.hxx"
#include <svx/svdopage.hxx>
-#include "svdglob.hxx" // Stringcache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // Stringcache
+#include "svx/svdstr.hrc" // Objektname
#include <svx/svdtrans.hxx>
#include <svx/svdetc.hxx>
#include <svx/svdmodel.hxx>
diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx
index 9d136ef82eae..b3f61c7b0813 100644
--- a/svx/source/svdraw/svdopath.cxx
+++ b/svx/source/svdraw/svdopath.cxx
@@ -41,8 +41,8 @@
#include <svx/svdpage.hxx>
#include <svx/svdhdl.hxx>
#include <svx/svdview.hxx> // fuer MovCreate bei Freihandlinien
-#include "svdglob.hxx" // Stringcache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // Stringcache
+#include "svx/svdstr.hrc" // Objektname
#ifdef _MSC_VER
#pragma optimize ("",off)
diff --git a/svx/source/svdraw/svdorect.cxx b/svx/source/svdraw/svdorect.cxx
index b03dbf5b903a..84dab2cfb165 100644
--- a/svx/source/svdraw/svdorect.cxx
+++ b/svx/source/svdraw/svdorect.cxx
@@ -45,8 +45,8 @@
#include <svx/svdview.hxx> // das
#include <svx/svdundo.hxx> // Macro-Beispiel
#include <svx/svdopath.hxx>
-#include "svdglob.hxx" // Stringcache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // Stringcache
+#include "svx/svdstr.hrc" // Objektname
#include <svx/xflclit.hxx>
#include <svx/xlnclit.hxx>
#include <svx/xlnwtit.hxx>
diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx
index 6a79359e1a00..7b9185ca7d3b 100644
--- a/svx/source/svdraw/svdotext.cxx
+++ b/svx/source/svdraw/svdotext.cxx
@@ -29,15 +29,15 @@
#include "precompiled_svx.hxx"
#include <svx/svdotext.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdpagv.hxx> // fuer Abfrage im Paint, ob das
#include <svx/svdview.hxx> // Objekt gerade editiert wird
#include <svx/svdpage.hxx> // und fuer AnimationHandler (Laufschrift)
#include <svx/svdetc.hxx>
#include <svx/svdoutl.hxx>
#include <svx/svdmodel.hxx> // OutlinerDefaults
-#include "svdglob.hxx" // Stringcache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // Stringcache
+#include "svx/svdstr.hrc" // Objektname
#include <editeng/writingmodeitem.hxx>
#include <svx/sdtfchim.hxx>
#include <svtools/colorcfg.hxx>
diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx
index 3675c7becac4..9bc3bbb4958c 100644
--- a/svx/source/svdraw/svdotextdecomposition.cxx
+++ b/svx/source/svdraw/svdotextdecomposition.cxx
@@ -53,7 +53,7 @@
#include <drawinglayer/primitive2d/wrongspellprimitive2d.hxx>
#include <drawinglayer/primitive2d/graphicprimitive2d.hxx>
#include <drawinglayer/primitive2d/textlayoutdevice.hxx>
-#include <unoapi.hxx>
+#include <svx/unoapi.hxx>
#include <drawinglayer/geometry/viewinformation2d.hxx>
#include <editeng/outlobj.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
diff --git a/svx/source/svdraw/svdotextpathdecomposition.cxx b/svx/source/svdraw/svdotextpathdecomposition.cxx
index 031e8e9dd45b..178af85d2cf4 100644
--- a/svx/source/svdraw/svdotextpathdecomposition.cxx
+++ b/svx/source/svdraw/svdotextpathdecomposition.cxx
@@ -64,7 +64,7 @@
#include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
#include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
#include <editeng/editstat.hxx>
-#include <unoapi.hxx>
+#include <svx/unoapi.hxx>
#include <drawinglayer/geometry/viewinformation2d.hxx>
#include <svx/sdr/attribute/sdrformtextoutlineattribute.hxx>
diff --git a/svx/source/svdraw/svdotxat.cxx b/svx/source/svdraw/svdotxat.cxx
index 13064e890313..8b6dab72d5e9 100644
--- a/svx/source/svdraw/svdotxat.cxx
+++ b/svx/source/svdraw/svdotxat.cxx
@@ -30,7 +30,7 @@
#include <svl/style.hxx>
#include <svx/svdotext.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdmodel.hxx> // fuer GetMaxObjSize und GetStyleSheetPool
#include <svx/svdoutl.hxx>
#include <svx/svdorect.hxx> // fuer SetDirty bei NbcAdjustTextFrameWidthAndHeight
diff --git a/svx/source/svdraw/svdotxdr.cxx b/svx/source/svdraw/svdotxdr.cxx
index 97da16876ac0..0e4feeedd2f3 100644
--- a/svx/source/svdraw/svdotxdr.cxx
+++ b/svx/source/svdraw/svdotxdr.cxx
@@ -33,8 +33,8 @@
#include <svx/svddrag.hxx>
#include <svx/svdview.hxx>
#include <svx/svdorect.hxx> // fuer SetXPolyDirty in MovCreate bei SolidDragging
-#include "svdglob.hxx" // Stringcache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // Stringcache
+#include "svx/svdstr.hrc" // Objektname
#include <svx/svdoashp.hxx>
#include <tools/bigint.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
diff --git a/svx/source/svdraw/svdotxed.cxx b/svx/source/svdraw/svdotxed.cxx
index c7715f37764c..6f749a297aef 100644
--- a/svx/source/svdraw/svdotxed.cxx
+++ b/svx/source/svdraw/svdotxed.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include <svx/svdotext.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdmodel.hxx> // fuer GetMaxObjSize
#include <svx/svdoutl.hxx>
#include <editeng/outliner.hxx>
diff --git a/svx/source/svdraw/svdotxln.cxx b/svx/source/svdraw/svdotxln.cxx
index 7d176fbfe811..57bcc7a22ae8 100644
--- a/svx/source/svdraw/svdotxln.cxx
+++ b/svx/source/svdraw/svdotxln.cxx
@@ -34,7 +34,7 @@
#include <ucbhelper/contentbroker.hxx>
#include <unotools/datetime.hxx>
#include <svx/svdotext.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdmodel.hxx>
#include <editeng/editdata.hxx>
#include <sfx2/lnkbase.hxx>
diff --git a/svx/source/svdraw/svdotxtr.cxx b/svx/source/svdraw/svdotxtr.cxx
index bd1564ab3f4e..4559dacb31d8 100644
--- a/svx/source/svdraw/svdotxtr.cxx
+++ b/svx/source/svdraw/svdotxtr.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include <svx/svdotext.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdtrans.hxx>
#include <svx/svdogrp.hxx>
#include <svx/svdopath.hxx>
@@ -41,7 +41,7 @@
#include <svx/sdr/properties/properties.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <svl/itemset.hxx>
-#include <svditer.hxx>
+#include <svx/svditer.hxx>
#include <drawinglayer/processor2d/textaspolygonextractor2d.hxx>
#include <svx/sdr/contact/viewcontact.hxx>
#include <svx/xflclit.hxx>
diff --git a/svx/source/svdraw/svdouno.cxx b/svx/source/svdraw/svdouno.cxx
index b98e5ba5c1c6..894a5c72926f 100644
--- a/svx/source/svdraw/svdouno.cxx
+++ b/svx/source/svdraw/svdouno.cxx
@@ -47,17 +47,17 @@
#include <svx/svdouno.hxx>
#include <svx/svdpagv.hxx>
#include <svx/svdmodel.hxx>
-#include "svdglob.hxx" // Stringcache
-#include "svdstr.hrc" // Objektname
+#include "svx/svdglob.hxx" // Stringcache
+#include "svx/svdstr.hrc" // Objektname
#include <svx/svdetc.hxx>
#include <svx/svdview.hxx>
#include <svx/svdorect.hxx>
-#include "svdviter.hxx"
+#include "svx/svdviter.hxx"
#include <rtl/ref.hxx>
#include <set>
#include <memory>
#include <svx/sdrpagewindow.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <tools/diagnose_ex.h>
#include <svx/svdograf.hxx>
diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx
index 592f41543132..26190c18aa60 100644
--- a/svx/source/svdraw/svdpage.cxx
+++ b/svx/source/svdraw/svdpage.cxx
@@ -49,7 +49,7 @@
#include <svx/svdograf.hxx> // fuer SwapInAll()
#include <svx/svdoedge.hxx> // Zum kopieren der Konnektoren
#include <svx/svdoole2.hxx> // Sonderbehandlung OLE beim SdrExchangeFormat
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdmodel.hxx>
#include <svx/svdlayer.hxx>
#include <svx/svdotext.hxx>
diff --git a/svx/source/svdraw/svdpagv.cxx b/svx/source/svdraw/svdpagv.cxx
index 03e3dc31a94f..1758cd92745b 100644
--- a/svx/source/svdraw/svdpagv.cxx
+++ b/svx/source/svdraw/svdpagv.cxx
@@ -47,7 +47,7 @@
#include <svx/svdouno.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdview.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdogrp.hxx>
#include <svx/svdtypes.hxx>
@@ -66,7 +66,7 @@
using namespace ::rtl;
using namespace ::com::sun::star;
#include <svx/sdrpagewindow.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
TYPEINIT1(SdrPageView, SfxListener);
DBG_NAME(SdrPageView);
@@ -358,6 +358,21 @@ void SdrPageView::PrePaint()
}
}
+void SdrPageView::PostPaint()
+{
+ const sal_uInt32 nCount(PageWindowCount());
+
+ for(sal_uInt32 a(0); a < nCount; a++)
+ {
+ SdrPageWindow* pCandidate = GetPageWindow(a);
+
+ if(pCandidate)
+ {
+ pCandidate->PostPaint();
+ }
+ }
+}
+
void SdrPageView::CompleteRedraw(SdrPaintWindow& rPaintWindow, const Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector) const
{
if(GetPage())
diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
index 998c687608fc..1d74ed119c33 100755..100644
--- a/svx/source/svdraw/svdpntv.cxx
+++ b/svx/source/svdraw/svdpntv.cxx
@@ -30,7 +30,7 @@
#include <com/sun/star/awt/XWindow.hpp>
#include <svx/svdpntv.hxx>
#include <vcl/msgbox.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svtools/grfmgr.hxx>
#include <svx/svdmodel.hxx>
@@ -54,7 +54,7 @@
#include <svx/svdograf.hxx>
#include <svx/svdattrx.hxx>
#include "svdibrow.hxx"
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/svdouno.hxx>
#include <svx/sdr/overlay/overlayobjectlist.hxx>
#include <svx/sdr/overlay/overlayrollingrectangle.hxx>
@@ -733,6 +733,14 @@ void SdrPaintView::PrePaint()
}
}
+void SdrPaintView::PostPaint()
+{
+ if(mpPageView)
+ {
+ mpPageView->PostPaint();
+ }
+}
+
////////////////////////////////////////////////////////////////////////////////////////////////////
// #define SVX_REPAINT_TIMER_TEST
diff --git a/svx/source/svdraw/svdpoev.cxx b/svx/source/svdraw/svdpoev.cxx
index 27e2884bb90c..3a3942319661 100644
--- a/svx/source/svdraw/svdpoev.cxx
+++ b/svx/source/svdraw/svdpoev.cxx
@@ -34,8 +34,8 @@
#include <svx/svdpage.hxx>
#include <svx/svdopath.hxx>
#include <svx/svdundo.hxx>
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
#include <svx/svdtrans.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
diff --git a/svx/source/svdraw/svdsnpv.cxx b/svx/source/svdraw/svdsnpv.cxx
index 1a8f735887cf..a58081ad0ee0 100644
--- a/svx/source/svdraw/svdsnpv.cxx
+++ b/svx/source/svdraw/svdsnpv.cxx
@@ -35,13 +35,13 @@
#include <svx/svdobj.hxx>
#include <svx/svdpagv.hxx>
#include <svx/svdpage.hxx>
-#include "svditer.hxx"
+#include "svx/svditer.hxx"
#include <svx/sdr/overlay/overlayobjectlist.hxx>
#include <svx/sdr/overlay/overlaycrosshair.hxx>
#include <svx/sdr/overlay/overlayhelpline.hxx>
#include <svx/sdr/overlay/overlaymanager.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
////////////////////////////////////////////////////////////////////////////////////////////////////
// #114409#-1 Migrate PageOrigin
diff --git a/svx/source/svdraw/svdstr.src b/svx/source/svdraw/svdstr.src
index 000e20cf24d4..6690d4a7618b 100644
--- a/svx/source/svdraw/svdstr.src
+++ b/svx/source/svdraw/svdstr.src
@@ -26,7 +26,7 @@
************************************************************************/
/* StarView resource file */
-#include "svdstr.hrc"
+#include "svx/svdstr.hrc"
// Ab hier gecachte Strings
String STR_ObjNameSingulNONE
{
diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx
index 667dd3a340b5..a20ebd9baf65 100644
--- a/svx/source/svdraw/svdundo.cxx
+++ b/svx/source/svdraw/svdundo.cxx
@@ -29,15 +29,15 @@
#include "precompiled_svx.hxx"
#include <svx/svdundo.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdotext.hxx>
#include <svx/svdobj.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdlayer.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svdview.hxx>
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
#include <svx/scene3d.hxx>
#include <editeng/outlobj.hxx>
#include <svx/svdogrp.hxx>
@@ -47,7 +47,7 @@
#include <svl/whiter.hxx>
#include <svx/e3dsceneupdater.hxx>
-#include "svdviter.hxx"
+#include "svx/svdviter.hxx"
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/svx/source/svdraw/svdview.cxx b/svx/source/svdraw/svdview.cxx
index 7a4305b9581f..1320aef9b17b 100644
--- a/svx/source/svdraw/svdview.cxx
+++ b/svx/source/svdraw/svdview.cxx
@@ -29,8 +29,8 @@
#include "precompiled_svx.hxx"
#include <editeng/eeitem.hxx>
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
#include <svx/svdpagv.hxx>
#include <svx/svdmrkv.hxx>
#include <svx/svdedxv.hxx>
@@ -55,7 +55,7 @@
#include <tools/tenccvt.hxx>
#include <svx/sdr/overlay/overlaypolypolygon.hxx>
#include <svx/sdr/overlay/overlaymanager.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/sdrpagewindow.hxx>
#include <svx/sdrhittesthelper.hxx>
diff --git a/svx/source/svdraw/svdviter.cxx b/svx/source/svdraw/svdviter.cxx
index 9c52ee87cf23..ceb192e85683 100644
--- a/svx/source/svdraw/svdviter.cxx
+++ b/svx/source/svdraw/svdviter.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "svdviter.hxx"
+#include "svx/svdviter.hxx"
#include <svx/svdobj.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdmodel.hxx>
@@ -36,7 +36,7 @@
#include <svx/svdpagv.hxx>
#include <svx/svdsob.hxx>
#include <svl/brdcst.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/svx/source/svdraw/svdxcgv.cxx b/svx/source/svdraw/svdxcgv.cxx
index d19b190b3d6a..181b086988db 100644
--- a/svx/source/svdraw/svdxcgv.cxx
+++ b/svx/source/svdraw/svdxcgv.cxx
@@ -30,11 +30,11 @@
#include <vector>
#include <editeng/editeng.hxx>
-#include "xexch.hxx"
+#include "svx/xexch.hxx"
#include <svx/xflclit.hxx>
#include <svx/svdxcgv.hxx>
#include <svx/svdoutl.hxx>
-#include "svditext.hxx"
+#include "svx/svditext.hxx"
#include <svx/svdetc.hxx>
#include <svx/svdundo.hxx>
#include <svx/svdograf.hxx>
@@ -45,9 +45,9 @@
#include <svx/svdpage.hxx>
#include <svx/svdpagv.hxx>
#include <svx/svdtrans.hxx> // Fuer GetMapFactor zum umskalieren bei PasteModel
-#include "svdstr.hrc" // Namen aus der Resource
-#include "svdglob.hxx" // StringCache
-#include "xoutbmp.hxx"
+#include "svx/svdstr.hrc" // Namen aus der Resource
+#include "svx/svdglob.hxx" // StringCache
+#include "svx/xoutbmp.hxx"
#include <vcl/metaact.hxx>
#include <svl/poolitem.hxx>
#include <svl/itempool.hxx>
diff --git a/svx/source/table/accessiblecell.cxx b/svx/source/table/accessiblecell.cxx
index 71b94d021650..ce04c9f6307a 100644
--- a/svx/source/table/accessiblecell.cxx
+++ b/svx/source/table/accessiblecell.cxx
@@ -30,7 +30,7 @@
#include <accessiblecell.hxx>
-#include "DescriptionGenerator.hxx"
+#include "svx/DescriptionGenerator.hxx"
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
diff --git a/svx/source/table/cellcursor.cxx b/svx/source/table/cellcursor.cxx
index 70329213d01a..7fb3a7ffcf70 100644
--- a/svx/source/table/cellcursor.cxx
+++ b/svx/source/table/cellcursor.cxx
@@ -33,8 +33,8 @@
#include "tablelayouter.hxx"
#include "cell.hxx"
#include "svx/svdmodel.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
// -----------------------------------------------------------------------------
diff --git a/svx/source/table/celleditsource.cxx b/svx/source/table/celleditsource.cxx
index 218d8631cb75..4b49088be6e2 100644
--- a/svx/source/table/celleditsource.cxx
+++ b/svx/source/table/celleditsource.cxx
@@ -55,7 +55,7 @@
#include "svx/svdpage.hxx"
#include "editeng/editeng.hxx"
#include "editeng/unotext.hxx"
-#include "sdrpaintwindow.hxx"
+#include "svx/sdrpaintwindow.hxx"
//------------------------------------------------------------------------
diff --git a/svx/source/table/svdotable.cxx b/svx/source/table/svdotable.cxx
index e928f94d88ec..7f9250a90561 100644
--- a/svx/source/table/svdotable.cxx
+++ b/svx/source/table/svdotable.cxx
@@ -63,8 +63,8 @@
#include "svx/framelink.hxx"
#include "svx/sdr/table/tabledesign.hxx"
#include "svx/svdundo.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
#include "editeng/writingmodeitem.hxx"
#include "editeng/frmdiritem.hxx"
#include "svx/xflhtit.hxx"
diff --git a/svx/source/table/tablecontroller.cxx b/svx/source/table/tablecontroller.cxx
index 4a0432c0c15f..a4ba47047efe 100644
--- a/svx/source/table/tablecontroller.cxx
+++ b/svx/source/table/tablecontroller.cxx
@@ -59,15 +59,15 @@
#include "svx/sdrpagewindow.hxx"
#include <svx/selectioncontroller.hxx>
#include <svx/svdmodel.hxx>
-#include "sdrpaintwindow.hxx"
+#include "svx/sdrpaintwindow.hxx"
#include <svx/svxdlg.hxx>
#include <editeng/boxitem.hxx>
#include "cell.hxx"
#include <editeng/borderline.hxx>
#include <editeng/colritem.hxx>
#include "editeng/bolnitem.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
#include "svx/svdpage.hxx"
#include "tableundo.hxx"
#include "tablelayouter.hxx"
diff --git a/svx/source/table/tablehandles.cxx b/svx/source/table/tablehandles.cxx
index 33833f8b81b1..46df8c681db5 100644
--- a/svx/source/table/tablehandles.cxx
+++ b/svx/source/table/tablehandles.cxx
@@ -42,7 +42,7 @@
#include <svx/sdr/overlay/overlayobject.hxx>
#include <svx/sdr/overlay/overlaymanager.hxx>
#include <svx/sdrpagewindow.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/svdmrkv.hxx>
#include <svx/svdpagv.hxx>
#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
diff --git a/svx/source/table/tablelayouter.cxx b/svx/source/table/tablelayouter.cxx
index 5e13bce7101e..7f855752dcf2 100644
--- a/svx/source/table/tablelayouter.cxx
+++ b/svx/source/table/tablelayouter.cxx
@@ -44,8 +44,8 @@
#include "editeng/borderline.hxx"
#include "editeng/boxitem.hxx"
#include "svx/svdmodel.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
using ::rtl::OUString;
using ::com::sun::star::awt::XLayoutConstrains;
diff --git a/svx/source/table/tablemodel.cxx b/svx/source/table/tablemodel.cxx
index 1c8d0aa60dc8..b62d1187e14c 100644
--- a/svx/source/table/tablemodel.cxx
+++ b/svx/source/table/tablemodel.cxx
@@ -46,8 +46,8 @@
#include "tableundo.hxx"
#include "svx/svdotable.hxx"
#include "svx/svdmodel.hxx"
-#include "svdstr.hrc"
-#include "svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
//#define PLEASE_DEBUG_THE_TABLES 1
diff --git a/svx/source/tbxctrls/colrctrl.cxx b/svx/source/tbxctrls/colrctrl.cxx
index bf3612e55250..260a2e2e646c 100644
--- a/svx/source/tbxctrls/colrctrl.cxx
+++ b/svx/source/tbxctrls/colrctrl.cxx
@@ -40,12 +40,12 @@
#include <svx/colrctrl.hxx>
#include <svx/svdview.hxx>
-#include "drawitem.hxx"
+#include "svx/drawitem.hxx"
#include <editeng/colritem.hxx>
-#include "xattr.hxx"
+#include "svx/xattr.hxx"
#include <svx/xtable.hxx>
#include <svx/dialmgr.hxx>
-#include "xexch.hxx"
+#include "svx/xexch.hxx"
#include <vcl/svapp.hxx>
SFX_IMPL_DOCKINGWINDOW( SvxColorChildWindow, SID_COLOR_CONTROL )
diff --git a/svx/source/tbxctrls/extrusioncontrols.cxx b/svx/source/tbxctrls/extrusioncontrols.cxx
index f98fd57a0480..e5bc5045c7b3 100644
--- a/svx/source/tbxctrls/extrusioncontrols.cxx
+++ b/svx/source/tbxctrls/extrusioncontrols.cxx
@@ -39,6 +39,7 @@
#include <vos/mutex.hxx>
+#include <svtools/toolbarmenu.hxx>
#include <vcl/toolbox.hxx>
#include <sfx2/app.hxx>
#include <sfx2/dispatch.hxx>
@@ -65,7 +66,7 @@
////////////
using ::rtl::OUString;
-using ::svtools::ToolbarMenu;
+//using ::svtools::ToolbarMenu;
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
diff --git a/svx/source/tbxctrls/fillctrl.cxx b/svx/source/tbxctrls/fillctrl.cxx
index 31c77e221d62..5b740dbef004 100644
--- a/svx/source/tbxctrls/fillctrl.cxx
+++ b/svx/source/tbxctrls/fillctrl.cxx
@@ -44,8 +44,8 @@
#define TMP_STR_BEGIN '['
#define TMP_STR_END ']'
-#include "drawitem.hxx"
-#include "xattr.hxx"
+#include "svx/drawitem.hxx"
+#include "svx/xattr.hxx"
#include <svx/xtable.hxx>
#include <svx/fillctrl.hxx>
#include <svx/itemwin.hxx>
diff --git a/svx/source/tbxctrls/fontworkgallery.cxx b/svx/source/tbxctrls/fontworkgallery.cxx
index 1216a7863b79..23f2241ab235 100644
--- a/svx/source/tbxctrls/fontworkgallery.cxx
+++ b/svx/source/tbxctrls/fontworkgallery.cxx
@@ -53,10 +53,10 @@
#include <svx/svdview.hxx>
#include <svx/svdoutl.hxx>
-#include "gallery.hxx"
-#include <dlgutil.hxx>
+#include "svx/gallery.hxx"
+#include <svx/dlgutil.hxx>
-#include "fontworkgallery.hxx"
+#include <svx/fontworkgallery.hxx>
#include "fontworkgallery.hrc"
#include <algorithm>
diff --git a/svx/source/tbxctrls/formatpaintbrushctrl.cxx b/svx/source/tbxctrls/formatpaintbrushctrl.cxx
index 0333cc62a374..45e76f8ae6e9 100644
--- a/svx/source/tbxctrls/formatpaintbrushctrl.cxx
+++ b/svx/source/tbxctrls/formatpaintbrushctrl.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "formatpaintbrushctrl.hxx"
+#include "svx/formatpaintbrushctrl.hxx"
// header for class SfxBoolItem
#include <svl/eitem.hxx>
diff --git a/svx/source/tbxctrls/grafctrl.cxx b/svx/source/tbxctrls/grafctrl.cxx
index 849d495e214e..9f8c023c3b3d 100644
--- a/svx/source/tbxctrls/grafctrl.cxx
+++ b/svx/source/tbxctrls/grafctrl.cxx
@@ -64,8 +64,8 @@
#include <svx/svdograf.hxx>
#include <svx/svdundo.hxx>
#include <svx/svdtrans.hxx>
-#include "grafctrl.hxx"
-#include "tbxcolor.hxx"
+#include "svx/grafctrl.hxx"
+#include "svx/tbxcolor.hxx"
// namespaces
using ::rtl::OUString;
diff --git a/svx/source/tbxctrls/itemwin.cxx b/svx/source/tbxctrls/itemwin.cxx
index 9415ddaf1814..26b5a508491e 100644
--- a/svx/source/tbxctrls/itemwin.cxx
+++ b/svx/source/tbxctrls/itemwin.cxx
@@ -49,11 +49,11 @@
#include <svx/xlineit0.hxx>
#include <svx/xlndsit.hxx>
#include <svx/xtable.hxx>
-#include "drawitem.hxx"
+#include "svx/drawitem.hxx"
#include <svx/dialmgr.hxx>
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include <svx/itemwin.hxx>
-#include "linectrl.hxx"
+#include "svx/linectrl.hxx"
#include <svtools/colorcfg.hxx>
#include "linectrl.hrc"
diff --git a/svx/source/tbxctrls/layctrl.cxx b/svx/source/tbxctrls/layctrl.cxx
index 139506028292..04e7e3dc543a 100644
--- a/svx/source/tbxctrls/layctrl.cxx
+++ b/svx/source/tbxctrls/layctrl.cxx
@@ -40,7 +40,7 @@
#include <sfx2/app.hxx>
#include <svx/dialogs.hrc>
-#include "layctrl.hxx"
+#include "svx/layctrl.hxx"
#include <svx/dialmgr.hxx>
#include <comphelper/processfactory.hxx>
#include <svtools/colorcfg.hxx>
diff --git a/svx/source/tbxctrls/lboxctrl.cxx b/svx/source/tbxctrls/lboxctrl.cxx
index 6d05c8bdb946..4fe822f94955 100644
--- a/svx/source/tbxctrls/lboxctrl.cxx
+++ b/svx/source/tbxctrls/lboxctrl.cxx
@@ -46,7 +46,7 @@
#include <svl/slstitm.hxx>
#include <svl/stritem.hxx>
#include <svx/dialmgr.hxx>
-#include <lboxctrl.hxx>
+#include <svx/lboxctrl.hxx>
#ifndef _VCL_MNEMONIC_HXX_
#include <vcl/mnemonic.hxx>
#endif
diff --git a/svx/source/tbxctrls/linectrl.cxx b/svx/source/tbxctrls/linectrl.cxx
index 6deab3eca30b..0b7e6fe7182b 100644
--- a/svx/source/tbxctrls/linectrl.cxx
+++ b/svx/source/tbxctrls/linectrl.cxx
@@ -42,10 +42,10 @@
#include <svx/dialogs.hrc>
#include "helpid.hrc"
-#include "drawitem.hxx"
-#include "xattr.hxx"
+#include "svx/drawitem.hxx"
+#include "svx/xattr.hxx"
#include <svx/xtable.hxx>
-#include "linectrl.hxx"
+#include "svx/linectrl.hxx"
#include <svx/itemwin.hxx>
#include <svx/dialmgr.hxx>
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 5c99e84e6a47..bd0a39200dd1 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -72,7 +72,7 @@
#include <svx/dialogs.hrc>
#include <svx/svxitems.hrc>
#include "helpid.hrc"
-#include "htmlmode.hxx"
+#include "svx/htmlmode.hxx"
#include <svx/xtable.hxx>
#include "editeng/fontitem.hxx"
#include <editeng/fhgtitem.hxx>
@@ -81,9 +81,9 @@
#include <editeng/colritem.hxx>
#include "editeng/flstitem.hxx"
#include "editeng/bolnitem.hxx"
-#include "drawitem.hxx"
+#include "svx/drawitem.hxx"
#include <svx/tbcontrl.hxx>
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include <svx/dialmgr.hxx>
#include "colorwindow.hxx"
#include <memory>
@@ -1800,8 +1800,7 @@ struct SvxStyleToolBoxControl::Impl
static const sal_Char* aCalcStyles[] =
{
"Default",
- "Heading 1",
- "Heading 2",
+ "Heading1",
"Result",
"Result2"
};
@@ -1813,12 +1812,15 @@ struct SvxStyleToolBoxControl::Impl
{
try
{
- Reference< beans::XPropertySet > xStyle;
- xCellStyles->getByName( rtl::OUString::createFromAscii( aCalcStyles[nStyle] )) >>= xStyle;
- ::rtl::OUString sName;
- xStyle->getPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DisplayName")))>>= sName;
- if( sName.getLength() )
- aDefaultStyles.push_back(sName);
+ const rtl::OUString sStyleName( rtl::OUString::createFromAscii( aCalcStyles[nStyle] ) );
+ if( xCellStyles->hasByName( sStyleName ) )
+ {
+ Reference< beans::XPropertySet > xStyle( xCellStyles->getByName( sStyleName), UNO_QUERY_THROW );
+ ::rtl::OUString sName;
+ xStyle->getPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DisplayName"))) >>= sName;
+ if( sName.getLength() )
+ aDefaultStyles.push_back(sName);
+ }
}
catch( const uno::Exception& )
{}
diff --git a/svx/source/tbxctrls/tbxalign.cxx b/svx/source/tbxctrls/tbxalign.cxx
index 3d9d6881eec7..e0bcd03b62fc 100644
--- a/svx/source/tbxctrls/tbxalign.cxx
+++ b/svx/source/tbxctrls/tbxalign.cxx
@@ -32,8 +32,8 @@
#include <svx/dialmgr.hxx>
#include <svx/dialogs.hrc>
-#include "tbxalign.hxx"
-#include "tbxdraw.hxx"
+#include "svx/tbxalign.hxx"
+#include "svx/tbxdraw.hxx"
#include "tbxdraw.hrc"
#include <tools/shl.hxx>
#ifndef _SFX_IMAGEMGR_HXX
diff --git a/svx/source/tbxctrls/tbxcolor.cxx b/svx/source/tbxctrls/tbxcolor.cxx
index 57d791f1babd..83b48b9e57b7 100644
--- a/svx/source/tbxctrls/tbxcolor.cxx
+++ b/svx/source/tbxctrls/tbxcolor.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "tbxcolor.hxx"
+#include "svx/tbxcolor.hxx"
#include <sfx2/viewfrm.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
diff --git a/svx/source/tbxctrls/tbxdrctl.cxx b/svx/source/tbxctrls/tbxdrctl.cxx
index 5160c78ead27..34969ca00bc2 100644
--- a/svx/source/tbxctrls/tbxdrctl.cxx
+++ b/svx/source/tbxctrls/tbxdrctl.cxx
@@ -42,9 +42,9 @@
#include <svx/dialmgr.hxx>
#include <svx/dialogs.hrc>
-#include "tbxctl.hxx"
-#include "tbxdraw.hxx"
-#include "tbxcolor.hxx"
+#include "svx/tbxctl.hxx"
+#include "svx/tbxdraw.hxx"
+#include "svx/tbxcolor.hxx"
#include "tbxdraw.hrc"
#include <com/sun/star/frame/XLayoutManager.hpp>
diff --git a/svx/source/tbxctrls/verttexttbxctrl.cxx b/svx/source/tbxctrls/verttexttbxctrl.cxx
index 579fe9f511cf..14ffdc778361 100644
--- a/svx/source/tbxctrls/verttexttbxctrl.cxx
+++ b/svx/source/tbxctrls/verttexttbxctrl.cxx
@@ -30,7 +30,7 @@
#include <svx/dialmgr.hxx>
#include <svx/dialogs.hrc>
-#include <verttexttbxctrl.hxx>
+#include <svx/verttexttbxctrl.hxx>
#include <svl/languageoptions.hxx>
#include <sfx2/app.hxx>
#include <svl/eitem.hxx>
diff --git a/svx/source/toolbars/extrusionbar.cxx b/svx/source/toolbars/extrusionbar.cxx
index 3005289268b9..74a00bd431c6 100644
--- a/svx/source/toolbars/extrusionbar.cxx
+++ b/svx/source/toolbars/extrusionbar.cxx
@@ -50,7 +50,7 @@
#endif
#include <svx/svdview.hxx>
#include <editeng/colritem.hxx>
-#include "chrtitem.hxx"
+#include "svx/chrtitem.hxx"
#include <svx/extrusionbar.hxx>
#include "extrusiondepthdialog.hxx"
diff --git a/svx/source/toolbars/fontworkbar.cxx b/svx/source/toolbars/fontworkbar.cxx
index 777aead3fa1a..49a4f62609a9 100644
--- a/svx/source/toolbars/fontworkbar.cxx
+++ b/svx/source/toolbars/fontworkbar.cxx
@@ -32,7 +32,7 @@
#include <sfx2/request.hxx>
#include <sfx2/objface.hxx>
#include <sfx2/viewsh.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <com/sun/star/drawing/XShape.hpp>
#include <com/sun/star/drawing/XEnhancedCustomShapeDefaulter.hpp>
#include <svx/dialmgr.hxx>
@@ -48,11 +48,11 @@
#include <editeng/eeitem.hxx>
#include <editeng/charscaleitem.hxx>
#include <editeng/kernitem.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/svxids.hrc>
#include <svx/fontworkbar.hxx>
-#include "fontworkgallery.hxx"
+#include "svx/fontworkgallery.hxx"
using ::rtl::OUString;
@@ -349,7 +349,7 @@ static void impl_execute( SdrView*, SfxRequest& rReq, SdrCustomShapeGeometryItem
}
}
-#include "gallery.hxx"
+#include "svx/gallery.hxx"
#include <svx/fmmodel.hxx>
#include <svx/fmpage.hxx>
#include <svl/itempool.hxx>
diff --git a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx
index dda324cb98d1..4b9e68650180 100644
--- a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx
+++ b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx
@@ -116,7 +116,7 @@ String DictionaryList::makeTabString( const DictionaryEntry& rEntry ) const
void DictionaryList::initDictionaryControl( const Reference< linguistic2::XConversionDictionary>& xDictionary
, ListBox* pPropertyTypeNameListBox )
{
- SetWindowBits( WB_VSCROLL );
+ SetStyle( WB_VSCROLL | WB_TABSTOP );
SetSelectionMode( SINGLE_SELECTION );
SetBorderStyle( WINDOW_BORDER_MONO );
SetHighlightRange();
diff --git a/svx/source/unodraw/UnoGraphicExporter.cxx b/svx/source/unodraw/UnoGraphicExporter.cxx
index c58e86f77fc3..440f6c313e20 100644
--- a/svx/source/unodraw/UnoGraphicExporter.cxx
+++ b/svx/source/unodraw/UnoGraphicExporter.cxx
@@ -46,6 +46,7 @@
#include <com/sun/star/task/XInteractionHandler.hpp>
#include <com/sun/star/task/XInteractionContinuation.hpp>
+#include <comphelper/interaction.hxx>
#include <framework/interaction.hxx>
#include <com/sun/star/drawing/GraphicFilterRequest.hpp>
#include <com/sun/star/util/URL.hpp>
@@ -65,9 +66,9 @@
#include <editeng/numitem.hxx>
#include <svx/svdpagv.hxx>
#include <svx/svdograf.hxx>
-#include "xoutbmp.hxx"
+#include "svx/xoutbmp.hxx"
#include "svtools/filter.hxx"
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <svx/svdpage.hxx>
#include <svx/svdmodel.hxx>
#include <svx/fmview.hxx>
@@ -1066,15 +1067,13 @@ sal_Bool SAL_CALL GraphicExporter::filter( const Sequence< PropertyValue >& aDes
{
Any aInteraction;
Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > lContinuations(1);
- ::framework::ContinuationApprove* pApprove = new ::framework::ContinuationApprove();
+ ::comphelper::OInteractionApprove* pApprove = new ::comphelper::OInteractionApprove();
lContinuations[0] = Reference< XInteractionContinuation >(static_cast< XInteractionContinuation* >(pApprove), UNO_QUERY);
GraphicFilterRequest aErrorCode;
aErrorCode.ErrCode = nStatus;
aInteraction <<= aErrorCode;
- framework::InteractionRequest* pRequest = new framework::InteractionRequest( aInteraction, lContinuations );
- Reference< XInteractionRequest >xRequest( static_cast< XInteractionRequest* >(pRequest), UNO_QUERY );
- aSettings.mxInteractionHandler->handle( xRequest );
+ aSettings.mxInteractionHandler->handle( framework::InteractionRequest::CreateRequest( aInteraction, lContinuations ) );
}
return nStatus == GRFILTER_OK;
}
diff --git a/svx/source/unodraw/UnoNameItemTable.cxx b/svx/source/unodraw/UnoNameItemTable.cxx
index c7eb679e5e63..0ce5b6ca223a 100644
--- a/svx/source/unodraw/UnoNameItemTable.cxx
+++ b/svx/source/unodraw/UnoNameItemTable.cxx
@@ -39,7 +39,7 @@
#include <vos/mutex.hxx>
#include <vcl/svapp.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
using namespace ::com::sun::star;
using namespace ::rtl;
diff --git a/svx/source/unodraw/UnoNamespaceMap.cxx b/svx/source/unodraw/UnoNamespaceMap.cxx
index faf38d64b520..c504a46f29f3 100644
--- a/svx/source/unodraw/UnoNamespaceMap.cxx
+++ b/svx/source/unodraw/UnoNamespaceMap.cxx
@@ -30,7 +30,7 @@
#include <set>
-#include "UnoNamespaceMap.hxx"
+#include "svx/UnoNamespaceMap.hxx"
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
@@ -41,7 +41,7 @@
#include <osl/mutex.hxx>
#include <comphelper/stl_types.hxx>
#include <svl/itempool.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include "editeng/xmlcnitm.hxx"
diff --git a/svx/source/unodraw/XPropertyTable.cxx b/svx/source/unodraw/XPropertyTable.cxx
index 6f69b1405d0e..617d1737a482 100644
--- a/svx/source/unodraw/XPropertyTable.cxx
+++ b/svx/source/unodraw/XPropertyTable.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#include "XPropertyTable.hxx"
+#include "svx/XPropertyTable.hxx"
#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
#include <com/sun/star/drawing/LineDash.hpp>
#include <com/sun/star/awt/Gradient.hpp>
@@ -42,7 +42,7 @@
#include "unopolyhelper.hxx"
#include <svx/xdef.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <editeng/unoprnms.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
diff --git a/svx/source/unodraw/unobtabl.cxx b/svx/source/unodraw/unobtabl.cxx
index 70576f4fab95..793e9a6d858b 100644
--- a/svx/source/unodraw/unobtabl.cxx
+++ b/svx/source/unodraw/unobtabl.cxx
@@ -36,10 +36,10 @@
#include <svx/xbtmpit.hxx>
#include <svx/svdmodel.hxx>
#include <svx/xflhtit.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <svx/unomid.hxx>
#include <editeng/unoprnms.hxx>
-#include "unofill.hxx"
+#include "svx/unofill.hxx"
#include <editeng/memberids.hrc>
using namespace ::com::sun::star;
diff --git a/svx/source/unodraw/unoctabl.cxx b/svx/source/unodraw/unoctabl.cxx
index dbe9c735e2bd..48357f873ce3 100644
--- a/svx/source/unodraw/unoctabl.cxx
+++ b/svx/source/unodraw/unoctabl.cxx
@@ -35,9 +35,9 @@
#include "../customshapes/EnhancedCustomShapeEngine.hxx"
#include <svx/xtable.hxx>
-#include "unoshcol.hxx"
+#include "svx/unoshcol.hxx"
#include "recoveryui.hxx"
-#include "xmlgrhlp.hxx"
+#include "svx/xmlgrhlp.hxx"
#include "tbunocontroller.hxx"
#include "tbunosearchcontrollers.hxx"
diff --git a/svx/source/unodraw/unodtabl.cxx b/svx/source/unodraw/unodtabl.cxx
index 19663ab08ade..9c7637c4d5a9 100644
--- a/svx/source/unodraw/unodtabl.cxx
+++ b/svx/source/unodraw/unodtabl.cxx
@@ -38,7 +38,7 @@
#include <svx/xdash.hxx>
#include <svx/svdmodel.hxx>
-#include "unofill.hxx"
+#include "svx/unofill.hxx"
using namespace ::com::sun::star;
using namespace ::rtl;
diff --git a/svx/source/unodraw/unogtabl.cxx b/svx/source/unodraw/unogtabl.cxx
index 3cd4b13ac38e..bbb575a06410 100644
--- a/svx/source/unodraw/unogtabl.cxx
+++ b/svx/source/unodraw/unogtabl.cxx
@@ -36,7 +36,7 @@
#include <svx/svdmodel.hxx>
#include <svx/xdef.hxx>
#include <svx/xflgrit.hxx>
-#include "unofill.hxx"
+#include "svx/unofill.hxx"
#include <svx/unomid.hxx>
using namespace ::com::sun::star;
diff --git a/svx/source/unodraw/unohtabl.cxx b/svx/source/unodraw/unohtabl.cxx
index b774afe5c7ad..64fbdae052a0 100644
--- a/svx/source/unodraw/unohtabl.cxx
+++ b/svx/source/unodraw/unohtabl.cxx
@@ -37,7 +37,7 @@
#include <svx/xdef.hxx>
#include <svx/xflhtit.hxx>
#include <svx/unomid.hxx>
-#include "unofill.hxx"
+#include "svx/unofill.hxx"
using namespace ::com::sun::star;
using namespace ::rtl;
diff --git a/svx/source/unodraw/unomod.cxx b/svx/source/unodraw/unomod.cxx
index a10d097981f5..195411b1e944 100644
--- a/svx/source/unodraw/unomod.cxx
+++ b/svx/source/unodraw/unomod.cxx
@@ -41,17 +41,17 @@
#include <comphelper/serviceinfohelper.hxx>
#include <cppuhelper/implbase2.hxx>
-#include <unofill.hxx>
+#include <svx/unofill.hxx>
#include <editeng/unonrule.hxx>
#include <svtools/unoimap.hxx>
#include <svx/fmdpage.hxx>
#include <svx/fmmodel.hxx>
#include <svx/fmpage.hxx>
#include <sfx2/sfx.hrc>
-#include <unoapi.hxx>
+#include <svx/unoapi.hxx>
#include <svx/svdmodel.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/svdtypes.hxx>
#include <svx/unoprov.hxx>
#include <svx/unopage.hxx>
diff --git a/svx/source/unodraw/unomtabl.cxx b/svx/source/unodraw/unomtabl.cxx
index 60d19e8d13a9..01375649553b 100644
--- a/svx/source/unodraw/unomtabl.cxx
+++ b/svx/source/unodraw/unomtabl.cxx
@@ -50,9 +50,9 @@
#include <vcl/svapp.hxx>
-#include "unofill.hxx"
+#include "svx/unofill.hxx"
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
using namespace ::com::sun::star;
using namespace ::rtl;
diff --git a/svx/source/unodraw/unopage.cxx b/svx/source/unodraw/unopage.cxx
index 9d5e1695c5cb..a905aa0fd2f4 100644
--- a/svx/source/unodraw/unopage.cxx
+++ b/svx/source/unodraw/unopage.cxx
@@ -49,11 +49,11 @@
#include <svx/svdpagv.hxx>
#include <svx/unopage.hxx>
#include "shapeimpl.hxx"
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/polysc3d.hxx>
#include <svx/unoprov.hxx>
#include <svx/svdopath.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <svx/svdomeas.hxx>
#include <svx/extrud3d.hxx>
#include <svx/lathe3d.hxx>
diff --git a/svx/source/unodraw/unopool.cxx b/svx/source/unodraw/unopool.cxx
index 8c2d7ecde19a..17c32389e311 100644
--- a/svx/source/unodraw/unopool.cxx
+++ b/svx/source/unodraw/unopool.cxx
@@ -36,7 +36,7 @@
#include <rtl/uuid.h>
#include <vos/mutex.hxx>
#include <vcl/svapp.hxx>
-#include "unopool.hxx"
+#include "svx/unopool.hxx"
#include <svx/svdmodel.hxx>
#include <svx/svdpool.hxx>
#include <svx/unoprov.hxx>
@@ -48,7 +48,7 @@
#include <svx/svdetc.hxx>
#include <editeng/editeng.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <memory>
using namespace ::com::sun::star;
diff --git a/svx/source/unodraw/unoprov.cxx b/svx/source/unodraw/unoprov.cxx
index 4be296d51219..ffc6c28f9fec 100644
--- a/svx/source/unodraw/unoprov.cxx
+++ b/svx/source/unodraw/unoprov.cxx
@@ -45,11 +45,11 @@
#include <vcl/svapp.hxx>
#include <comphelper/propertysetinfo.hxx>
#include <svx/dialmgr.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <editeng/unotext.hxx>
#include <svx/unoshprp.hxx>
#include <editeng/editeng.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/dialogs.hrc>
#include <svx/svdpool.hxx>
#include <svx/svdobj.hxx>
diff --git a/svx/source/unodraw/unoshap2.cxx b/svx/source/unodraw/unoshap2.cxx
index 1613f5d652e0..057e5f8b7e6c 100644
--- a/svx/source/unodraw/unoshap2.cxx
+++ b/svx/source/unodraw/unoshap2.cxx
@@ -65,7 +65,7 @@
#include "unopolyhelper.hxx"
// #i29181#
-#include "svdviter.hxx"
+#include "svx/svdviter.hxx"
#include <svx/svdview.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
diff --git a/svx/source/unodraw/unoshap3.cxx b/svx/source/unodraw/unoshap3.cxx
index 92d1706d4e6a..fd8f9dd1d2d9 100644
--- a/svx/source/unodraw/unoshap3.cxx
+++ b/svx/source/unodraw/unoshap3.cxx
@@ -45,7 +45,7 @@
#include <svx/unopage.hxx>
#include <editeng/unoprnms.hxx>
#include <svx/polysc3d.hxx>
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include <svx/cube3d.hxx>
#include <svx/sphere3d.hxx>
#include <svx/lathe3d.hxx>
@@ -324,7 +324,7 @@ static void ConvertObjectToHomogenMatric( E3dObject* pObject, Any& rValue )
}
//----------------------------------------------------------------------
-#include <svditer.hxx>
+#include <svx/svditer.hxx>
struct ImpRememberTransAndRect
{
diff --git a/svx/source/unodraw/unoshap4.cxx b/svx/source/unodraw/unoshap4.cxx
index 96804103f610..79d5b7c5dec9 100644
--- a/svx/source/unodraw/unoshap4.cxx
+++ b/svx/source/unodraw/unoshap4.cxx
@@ -60,11 +60,11 @@
#include <svx/unoshprp.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include "svx/svdpagv.hxx"
#include "svx/svdview.hxx"
-#include "svdglob.hxx"
-#include "svdstr.hrc"
+#include "svx/svdglob.hxx"
+#include "svx/svdstr.hrc"
///////////////////////////////////////////////////////////////////////
diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx
index afb8cbb8723a..0f1482adaf5d 100644
--- a/svx/source/unodraw/unoshape.cxx
+++ b/svx/source/unodraw/unoshape.cxx
@@ -61,7 +61,7 @@
#include "svx/svdogrp.hxx"
#include "svx/scene3d.hxx"
#include "svx/svdmodel.hxx"
-#include "globl3d.hxx"
+#include "svx/globl3d.hxx"
#include "svx/fmglob.hxx"
#include "svx/unopage.hxx"
#include "svx/view3d.hxx"
@@ -72,7 +72,7 @@
#include "svx/unoshprp.hxx"
#include "svx/sxciaitm.hxx" // todo: remove
#include "svx/svdograf.hxx"
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include "svx/svdomeas.hxx"
#include "svx/svdpagv.hxx"
#include "svx/svdpool.hxx"
@@ -90,9 +90,9 @@
#include "svx/xlnedit.hxx"
#include "svx/xlnstit.hxx"
#include "svx/xlndsit.hxx"
-#include "svdglob.hxx"
-#include "svdstr.hrc"
-#include "unomaster.hxx"
+#include "svx/svdglob.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/unomaster.hxx"
#include <editeng/outlobj.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
diff --git a/svx/source/unodraw/unoshcol.cxx b/svx/source/unodraw/unoshcol.cxx
index 3b45753175e6..f42e06cd8619 100644
--- a/svx/source/unodraw/unoshcol.cxx
+++ b/svx/source/unodraw/unoshcol.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include <com/sun/star/document/EventObject.hpp>
-#include "unoshcol.hxx"
+#include "svx/unoshcol.hxx"
#include <svx/unoprov.hxx>
#include <comphelper/serviceinfohelper.hxx>
diff --git a/svx/source/unodraw/unoshtxt.cxx b/svx/source/unodraw/unoshtxt.cxx
index 05551414507c..04770faf694b 100644
--- a/svx/source/unodraw/unoshtxt.cxx
+++ b/svx/source/unodraw/unoshtxt.cxx
@@ -55,7 +55,7 @@
#include <com/sun/star/linguistic2/XLinguServiceManager.hpp>
#include <comphelper/processfactory.hxx>
#include <vos/mutex.hxx>
-#include <sdrpaintwindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
using namespace ::osl;
using namespace ::vos;
diff --git a/svx/source/unodraw/unottabl.cxx b/svx/source/unodraw/unottabl.cxx
index 58dcbc39d03c..46a84bf52fad 100644
--- a/svx/source/unodraw/unottabl.cxx
+++ b/svx/source/unodraw/unottabl.cxx
@@ -35,7 +35,7 @@
#include <svx/svdmodel.hxx>
#include <svx/xflhtit.hxx>
-#include "unofill.hxx"
+#include "svx/unofill.hxx"
#include <svx/unomid.hxx>
#include "UnoNameItemTable.hxx"
diff --git a/svx/source/unogallery/unogalitem.cxx b/svx/source/unogallery/unogalitem.cxx
index 53bd6b99e5fc..ac90eb5ee362 100644
--- a/svx/source/unogallery/unogalitem.cxx
+++ b/svx/source/unogallery/unogalitem.cxx
@@ -30,7 +30,7 @@
#include "unogalitem.hxx"
#include "unogaltheme.hxx"
-#include "galtheme.hxx"
+#include "svx/galtheme.hxx"
#include "svx/galmisc.hxx"
#include <svx/fmmodel.hxx>
#include <rtl/uuid.h>
diff --git a/svx/source/unogallery/unogaltheme.cxx b/svx/source/unogallery/unogaltheme.cxx
index e2596eba84ec..1145be7e3f5e 100644
--- a/svx/source/unogallery/unogaltheme.cxx
+++ b/svx/source/unogallery/unogaltheme.cxx
@@ -32,7 +32,7 @@
#include "unogaltheme.hxx"
#include "unogalitem.hxx"
-#include "galtheme.hxx"
+#include "svx/galtheme.hxx"
#include "svx/gallery1.hxx"
#include "svx/galmisc.hxx"
#include <svx/fmmodel.hxx>
diff --git a/svx/source/xml/xmleohlp.cxx b/svx/source/xml/xmleohlp.cxx
index ff161c0a1b2b..fdeda1dd726b 100644
--- a/svx/source/xml/xmleohlp.cxx
+++ b/svx/source/xml/xmleohlp.cxx
@@ -56,7 +56,7 @@
#include <sot/clsids.hxx>
#endif
#include <map>
-#include "xmleohlp.hxx"
+#include "svx/xmleohlp.hxx"
// -----------
// - Defines -
diff --git a/svx/source/xml/xmlexport.cxx b/svx/source/xml/xmlexport.cxx
index 55a80ec40d89..c3b5bc5e55d0 100644
--- a/svx/source/xml/xmlexport.cxx
+++ b/svx/source/xml/xmlexport.cxx
@@ -44,8 +44,8 @@
#include <unotools/streamwrap.hxx>
#include <sot/storage.hxx>
#include <svx/svdmodel.hxx>
-#include <xmleohlp.hxx>
-#include <xmlgrhlp.hxx>
+#include <svx/xmleohlp.hxx>
+#include <svx/xmlgrhlp.hxx>
#include <svx/unomodel.hxx>
diff --git a/svx/source/xml/xmlgrhlp.cxx b/svx/source/xml/xmlgrhlp.cxx
index bda709dc4abd..a1a7565f314d 100644
--- a/svx/source/xml/xmlgrhlp.cxx
+++ b/svx/source/xml/xmlgrhlp.cxx
@@ -47,7 +47,7 @@
#include <tools/zcodec.hxx>
#include "svtools/filter.hxx"
-#include "xmlgrhlp.hxx"
+#include "svx/xmlgrhlp.hxx"
#include <algorithm>
@@ -707,8 +707,8 @@ void SvXMLGraphicHelper::ImplInsertGraphicURL( const ::rtl::OUString& rURLStr, s
else
{
const String aGraphicObjectId( aPictureStreamName );
- const GraphicObject aGrfObject( ByteString( aGraphicObjectId, RTL_TEXTENCODING_ASCII_US ) );
-
+ const ByteString aAsciiObjectID( aGraphicObjectId, RTL_TEXTENCODING_ASCII_US );
+ const GraphicObject aGrfObject( aAsciiObjectID );
if( aGrfObject.GetType() != GRAPHIC_NONE )
{
String aStreamName( aGraphicObjectId );
@@ -782,6 +782,15 @@ void SvXMLGraphicHelper::ImplInsertGraphicURL( const ::rtl::OUString& rURLStr, s
rURLPair.second = sPictures;
rURLPair.second += aStreamName;
}
+#if OSL_DEBUG_LEVEL > 0
+ else
+ {
+ ByteString sMessage = "graphic object with ID '";
+ sMessage += aAsciiObjectID;
+ sMessage += "' has an unknown type";
+ OSL_ENSURE( false, sMessage.GetBuffer() );
+ }
+#endif
}
maURLSet.insert( aURLString );
diff --git a/svx/source/xml/xmlxtexp.cxx b/svx/source/xml/xmlxtexp.cxx
index 58860317040c..b04b083f486b 100644
--- a/svx/source/xml/xmlxtexp.cxx
+++ b/svx/source/xml/xmlxtexp.cxx
@@ -54,7 +54,7 @@
#include <com/sun/star/embed/XTransactedObject.hpp>
#include <comphelper/processfactory.hxx>
#include <unotools/streamwrap.hxx>
-#include "xmlgrhlp.hxx"
+#include "svx/xmlgrhlp.hxx"
#include "xmlxtexp.hxx"
diff --git a/svx/source/xml/xmlxtimp.cxx b/svx/source/xml/xmlxtimp.cxx
index 58cf00441520..c2071d4bd252 100644
--- a/svx/source/xml/xmlxtimp.cxx
+++ b/svx/source/xml/xmlxtimp.cxx
@@ -60,7 +60,7 @@
#include "xmloff/ImageStyle.hxx"
#include "xmloff/MarkerStyle.hxx"
#include <xmloff/xmlictxt.hxx>
-#include "xmlgrhlp.hxx"
+#include "svx/xmlgrhlp.hxx"
#include "xmloff/attrlist.hxx"
#include "xmlxtimp.hxx"
diff --git a/svx/source/xoutdev/_xoutbmp.cxx b/svx/source/xoutdev/_xoutbmp.cxx
index 1f9bec471c8f..6b3419c7b04e 100644
--- a/svx/source/xoutdev/_xoutbmp.cxx
+++ b/svx/source/xoutdev/_xoutbmp.cxx
@@ -38,7 +38,7 @@
#include <svl/solar.hrc>
#include <sfx2/docfile.hxx>
#include <sfx2/app.hxx>
-#include "xoutbmp.hxx"
+#include "svx/xoutbmp.hxx"
#include <svtools/FilterConfigItem.hxx>
#include <svtools/filter.hxx>
diff --git a/svx/source/xoutdev/xattr.cxx b/svx/source/xoutdev/xattr.cxx
index 627c3ed6fb45..f7ce452ea6e8 100644
--- a/svx/source/xoutdev/xattr.cxx
+++ b/svx/source/xoutdev/xattr.cxx
@@ -44,15 +44,15 @@
#include <editeng/memberids.hrc>
#include <tools/stream.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <svl/style.hxx>
#include "unopolyhelper.hxx"
#include <tools/bigint.hxx>
#include <svl/itemset.hxx>
#include <svx/dialogs.hrc>
-#include "svdstr.hrc"
-#include "xattr.hxx"
+#include "svx/svdstr.hrc"
+#include "svx/xattr.hxx"
#include <svx/xtable.hxx>
#include <svx/dialmgr.hxx>
#include <editeng/itemtype.hxx>
diff --git a/svx/source/xoutdev/xattr2.cxx b/svx/source/xoutdev/xattr2.cxx
index ea91bc120201..0c8fc3e9cbec 100644
--- a/svx/source/xoutdev/xattr2.cxx
+++ b/svx/source/xoutdev/xattr2.cxx
@@ -35,7 +35,7 @@
#include <com/sun/star/uno/Any.hxx>
#include <svx/dialogs.hrc>
-#include "xattr.hxx"
+#include "svx/xattr.hxx"
#include <svx/xtable.hxx>
#include <svx/dialmgr.hxx>
#include <editeng/itemtype.hxx>
diff --git a/svx/source/xoutdev/xattrbmp.cxx b/svx/source/xoutdev/xattrbmp.cxx
index 486602e28256..57c894e00475 100644
--- a/svx/source/xoutdev/xattrbmp.cxx
+++ b/svx/source/xoutdev/xattrbmp.cxx
@@ -38,13 +38,13 @@
#include <editeng/memberids.hrc>
#include <svx/dialogs.hrc>
-#include "xattr.hxx"
+#include "svx/xattr.hxx"
#include <svx/xtable.hxx>
#include <svx/xdef.hxx>
#include <svx/unomid.hxx>
#include <editeng/unoprnms.hxx>
-#include "unoapi.hxx"
+#include "svx/unoapi.hxx"
#include <svx/svdmodel.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
diff --git a/svx/source/xoutdev/xexch.cxx b/svx/source/xoutdev/xexch.cxx
index eec20c0fe80c..8b658918069a 100644
--- a/svx/source/xoutdev/xexch.cxx
+++ b/svx/source/xoutdev/xexch.cxx
@@ -43,7 +43,7 @@
#endif
#include <svl/itemset.hxx>
#include <svx/xdef.hxx>
-#include "xexch.hxx"
+#include "svx/xexch.hxx"
TYPEINIT1_AUTOFACTORY( XFillExchangeData, SvDataCopyStream );
diff --git a/svx/source/xoutdev/xpool.cxx b/svx/source/xoutdev/xpool.cxx
index 47dda35245a4..3d377c88fa4d 100644
--- a/svx/source/xoutdev/xpool.cxx
+++ b/svx/source/xoutdev/xpool.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include <svx/xtable.hxx>
-#include "xattr.hxx"
+#include "svx/xattr.hxx"
#include <svx/xpool.hxx>
#include <svx/svdattr.hxx>
#include <svx/svxids.hrc>
diff --git a/svx/source/xoutdev/xtabbtmp.cxx b/svx/source/xoutdev/xtabbtmp.cxx
index b4a426b0cf11..d61c339f762d 100644
--- a/svx/source/xoutdev/xtabbtmp.cxx
+++ b/svx/source/xoutdev/xtabbtmp.cxx
@@ -31,7 +31,7 @@
#ifndef SVX_LIGHT
#include <com/sun/star/container/XNameContainer.hpp>
-#include "XPropertyTable.hxx"
+#include "svx/XPropertyTable.hxx"
#include <unotools/ucbstreamhelper.hxx>
#include "xmlxtexp.hxx"
diff --git a/svx/source/xoutdev/xtabcolr.cxx b/svx/source/xoutdev/xtabcolr.cxx
index 853d397010b7..2b3ac7ab850b 100644
--- a/svx/source/xoutdev/xtabcolr.cxx
+++ b/svx/source/xoutdev/xtabcolr.cxx
@@ -31,7 +31,7 @@
#ifndef SVX_LIGHT
#include <com/sun/star/container/XNameContainer.hpp>
-#include "XPropertyTable.hxx"
+#include "svx/XPropertyTable.hxx"
#include <unotools/ucbstreamhelper.hxx>
#include <unotools/pathoptions.hxx>
diff --git a/svx/source/xoutdev/xtabdash.cxx b/svx/source/xoutdev/xtabdash.cxx
index 88cec422f49a..3455ed4d3588 100644
--- a/svx/source/xoutdev/xtabdash.cxx
+++ b/svx/source/xoutdev/xtabdash.cxx
@@ -33,7 +33,7 @@
#ifndef SVX_LIGHT
#include <com/sun/star/container/XNameContainer.hpp>
-#include "XPropertyTable.hxx"
+#include "svx/XPropertyTable.hxx"
#include <unotools/ucbstreamhelper.hxx>
#include "xmlxtexp.hxx"
diff --git a/svx/source/xoutdev/xtabgrdt.cxx b/svx/source/xoutdev/xtabgrdt.cxx
index 2a64d4b8855a..3a9f24c6d15a 100644
--- a/svx/source/xoutdev/xtabgrdt.cxx
+++ b/svx/source/xoutdev/xtabgrdt.cxx
@@ -33,7 +33,7 @@
#ifndef SVX_LIGHT
#include <com/sun/star/container/XNameContainer.hpp>
-#include "XPropertyTable.hxx"
+#include "svx/XPropertyTable.hxx"
#include <unotools/ucbstreamhelper.hxx>
#include "xmlxtexp.hxx"
diff --git a/svx/source/xoutdev/xtabhtch.cxx b/svx/source/xoutdev/xtabhtch.cxx
index 703b2db16b1f..ef5beece8dc8 100644
--- a/svx/source/xoutdev/xtabhtch.cxx
+++ b/svx/source/xoutdev/xtabhtch.cxx
@@ -33,7 +33,7 @@
#ifndef SVX_LIGHT
#include <com/sun/star/container/XNameContainer.hpp>
-#include "XPropertyTable.hxx"
+#include "svx/XPropertyTable.hxx"
#include <unotools/ucbstreamhelper.hxx>
#include <vcl/svapp.hxx>
@@ -50,7 +50,7 @@
#include <svx/dialmgr.hxx>
#include <svx/xtable.hxx>
#include <svx/xpool.hxx>
-#include "dlgutil.hxx"
+#include "svx/dlgutil.hxx"
#include <svx/xflhtit.hxx>
#include <svx/xflclit.hxx>
#include <svx/xfillit0.hxx>
diff --git a/svx/source/xoutdev/xtablend.cxx b/svx/source/xoutdev/xtablend.cxx
index 54d359506f77..ac5dcc739e41 100644
--- a/svx/source/xoutdev/xtablend.cxx
+++ b/svx/source/xoutdev/xtablend.cxx
@@ -33,7 +33,7 @@
#ifndef SVX_LIGHT
#include <com/sun/star/container/XNameContainer.hpp>
-#include "XPropertyTable.hxx"
+#include "svx/XPropertyTable.hxx"
#include <unotools/ucbstreamhelper.hxx>
#include "xmlxtexp.hxx"
diff --git a/svx/util/cui.dxp b/svx/util/cui.dxp
deleted file mode 100644
index cfee3729bf0c..000000000000
--- a/svx/util/cui.dxp
+++ /dev/null
@@ -1 +0,0 @@
-CreateDialogFactory
diff --git a/svx/util/cui.flt b/svx/util/cui.flt
deleted file mode 100644
index 8ab7afd3bf61..000000000000
--- a/svx/util/cui.flt
+++ /dev/null
@@ -1,139 +0,0 @@
-lcl
-+getImplementation
-Impl
-IMPL
-START
-CharAttribList
-CharPosArray
-ContentAttribs
-ContentAttribsInfo
-ContentInfo
-ContentNode
-DeletedNodeInfo
-EditAttrib
-EditCharAttrib
-EditDbg
-EditDoc
-EditEngineItemPool
-EditHTMLParser
-EditLine
-EditNodeIdx
-EditPaM
-EditPosition
-EditRTFParser
-EditSel
-EditSpellWrapper
-EditStyleSheet
-EditUndoConnectParas
-EditUndoDelContent
-EditUndoInsertChars
-EditUndoInsertFeature
-EditUndoManager
-EditUndoMoveParagraphs
-EditUndoRemoveChars
-EditUndoRemoveFeature
-EditUndoSetAttribs
-EditUndoSetParaAttribs
-EditUndoSetStyleSheet
-EditUndoSplitPara
-GlobalEditData
-IdleFormattter
-ImpEditEngine
-ImpEditView
-InternalEditStatus
-ParaPortion
-ParagraphList
-RTFPardAttrMapIds
-RTFPlainAttrMapIds
-SelRange
-SortedPositions_SAR
-SvxACorrChars
-SvxColorList
-SvxFontTable
-SvxRTFStyleType
-SvxTabStopArr_SAR
-TextPortionList
-XEditAttrib
-XParaPortionList
-BinTextObject
-DialogsResMgr
-E3dDragMethod
-E3dTriangle
-GetImp
-ImpA
-ImpB
-ImpBrw
-ImpC
-ImpCheck
-ImpColor
-ImpD
-ImpDrag
-ImpEdCtrl
-ImpEdit
-ImpF
-+ImpGetResStr
-ImpGet
-ImpH
-ImpHide
-ImpI
-ImpItem
-ImpJ
-ImpL
-ImpList
-ImpM
-ImpMulti
-ImportInfo
-ImpP
-ImpPaint
-ImpPast
-ImpRecalc
-ImpReset
-ImpRemove
-ImpRef
-ImpReset
-ImpS
-ImpScroll
-ImpSdrGDIMetaFileImport
-ImpSet
-ImpShow
-ImpT
-ImpX
-OLUndoAttr
-OLUndoDepth
-OLUndoExpand
-OLUndoHeight
-OutlinerEditEng
-SdrGraphicLink
-SdrItemBrowser
-SdrOleLink
-SpellCache
-SvFileObject
-WrongList
-WrongRanges
-XIOCompat
-_SdrItemBrowserControl
-_SdrItemBrowserWindow
-+FmXGridControl
-+FmXGridPeer
-FmX
-FmExp
-ODatabaseForm
-WEP
-LIBMAIN
-LibMain
-??_5
-??_7
-??_8
-??_9
-??_C
-??_E
-??_F
-??_G
-??_H
-??_I
-___CT
-_alloc
-_CT
-exception::exception
-_TI2
-___CT
diff --git a/svx/util/dl.flt b/svx/util/dl.flt
deleted file mode 100644
index 8ab7afd3bf61..000000000000
--- a/svx/util/dl.flt
+++ /dev/null
@@ -1,139 +0,0 @@
-lcl
-+getImplementation
-Impl
-IMPL
-START
-CharAttribList
-CharPosArray
-ContentAttribs
-ContentAttribsInfo
-ContentInfo
-ContentNode
-DeletedNodeInfo
-EditAttrib
-EditCharAttrib
-EditDbg
-EditDoc
-EditEngineItemPool
-EditHTMLParser
-EditLine
-EditNodeIdx
-EditPaM
-EditPosition
-EditRTFParser
-EditSel
-EditSpellWrapper
-EditStyleSheet
-EditUndoConnectParas
-EditUndoDelContent
-EditUndoInsertChars
-EditUndoInsertFeature
-EditUndoManager
-EditUndoMoveParagraphs
-EditUndoRemoveChars
-EditUndoRemoveFeature
-EditUndoSetAttribs
-EditUndoSetParaAttribs
-EditUndoSetStyleSheet
-EditUndoSplitPara
-GlobalEditData
-IdleFormattter
-ImpEditEngine
-ImpEditView
-InternalEditStatus
-ParaPortion
-ParagraphList
-RTFPardAttrMapIds
-RTFPlainAttrMapIds
-SelRange
-SortedPositions_SAR
-SvxACorrChars
-SvxColorList
-SvxFontTable
-SvxRTFStyleType
-SvxTabStopArr_SAR
-TextPortionList
-XEditAttrib
-XParaPortionList
-BinTextObject
-DialogsResMgr
-E3dDragMethod
-E3dTriangle
-GetImp
-ImpA
-ImpB
-ImpBrw
-ImpC
-ImpCheck
-ImpColor
-ImpD
-ImpDrag
-ImpEdCtrl
-ImpEdit
-ImpF
-+ImpGetResStr
-ImpGet
-ImpH
-ImpHide
-ImpI
-ImpItem
-ImpJ
-ImpL
-ImpList
-ImpM
-ImpMulti
-ImportInfo
-ImpP
-ImpPaint
-ImpPast
-ImpRecalc
-ImpReset
-ImpRemove
-ImpRef
-ImpReset
-ImpS
-ImpScroll
-ImpSdrGDIMetaFileImport
-ImpSet
-ImpShow
-ImpT
-ImpX
-OLUndoAttr
-OLUndoDepth
-OLUndoExpand
-OLUndoHeight
-OutlinerEditEng
-SdrGraphicLink
-SdrItemBrowser
-SdrOleLink
-SpellCache
-SvFileObject
-WrongList
-WrongRanges
-XIOCompat
-_SdrItemBrowserControl
-_SdrItemBrowserWindow
-+FmXGridControl
-+FmXGridPeer
-FmX
-FmExp
-ODatabaseForm
-WEP
-LIBMAIN
-LibMain
-??_5
-??_7
-??_8
-??_9
-??_C
-??_E
-??_F
-??_G
-??_H
-??_I
-___CT
-_alloc
-_CT
-exception::exception
-_TI2
-___CT
diff --git a/svx/util/makefile.mk b/svx/util/makefile.mk
index 18f52487e483..277581a4a7a7 100644
--- a/svx/util/makefile.mk
+++ b/svx/util/makefile.mk
@@ -75,30 +75,33 @@ SHL1LIBS= \
SHL1STDLIBS= \
- $(EDITENGLIB) \
- $(AVMEDIALIB) \
- $(SFX2LIB) \
- $(XMLOFFLIB) \
- $(BASEGFXLIB) \
- $(DRAWINGLAYERLIB) \
- $(LNGLIB) \
- $(BASICLIB) \
- $(SVTOOLLIB) \
- $(TKLIB) \
- $(VCLLIB) \
- $(SVLLIB) \
- $(SOTLIB) \
- $(UNOTOOLSLIB) \
- $(TOOLSLIB) \
- $(I18NISOLANGLIB) \
- $(I18NPAPERLIB) \
- $(COMPHELPERLIB) \
- $(UCBHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(VOSLIB) \
- $(SALLIB) \
- $(ICUUCLIB)
+ $(AVMEDIALIB) \
+ $(BASEGFXLIB) \
+ $(BASICLIB) \
+ $(COMPHELPERLIB) \
+ $(CPPUHELPERLIB) \
+ $(CPPULIB) \
+ $(DRAWINGLAYERLIB) \
+ $(EDITENGLIB) \
+ $(FWELIB) \
+ $(GOODIESLIB) \
+ $(I18NISOLANGLIB) \
+ $(I18NPAPERLIB) \
+ $(ICUUCLIB) \
+ $(LNGLIB) \
+ $(SALLIB) \
+ $(SFX2LIB) \
+ $(SOTLIB) \
+ $(SVLLIB) \
+ $(SVTOOLLIB) \
+ $(TKLIB) \
+ $(TOOLSLIB) \
+ $(UCBHELPERLIB) \
+ $(UNOTOOLSLIB) \
+ $(VCLLIB) \
+ $(VOSLIB) \
+ $(XMLOFFLIB) \
+
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
@@ -132,29 +135,31 @@ SHL2LIBS+=$(SLB)$/ibrwimp.lib
.ENDIF # (WIN)
SHL2STDLIBS= \
- $(EDITENGLIB) \
- $(SVXCORELIB) \
- $(SFX2LIB) \
- $(XMLOFFLIB) \
- $(BASEGFXLIB) \
- $(DRAWINGLAYERLIB) \
- $(BASICLIB) \
- $(SVTOOLLIB) \
- $(TKLIB) \
- $(VCLLIB) \
- $(SVLLIB) \
- $(SOTLIB) \
- $(UNOTOOLSLIB) \
- $(TOOLSLIB) \
- $(I18NISOLANGLIB) \
- $(XMLSCRIPTLIB) \
- $(COMPHELPERLIB) \
- $(UCBHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(VOSLIB) \
- $(SALLIB) \
- $(ICUUCLIB)
+ $(BASEGFXLIB) \
+ $(BASICLIB) \
+ $(COMPHELPERLIB) \
+ $(CPPUHELPERLIB) \
+ $(CPPULIB) \
+ $(DRAWINGLAYERLIB) \
+ $(EDITENGLIB) \
+ $(GOODIESLIB) \
+ $(I18NISOLANGLIB) \
+ $(ICUUCLIB) \
+ $(SALLIB) \
+ $(SFX2LIB) \
+ $(SOTLIB) \
+ $(SVLLIB) \
+ $(SVTOOLLIB) \
+ $(SVXCORELIB) \
+ $(TKLIB) \
+ $(TOOLSLIB) \
+ $(UCBHELPERLIB) \
+ $(UNOTOOLSLIB) \
+ $(VCLLIB) \
+ $(VOSLIB) \
+ $(XMLOFFLIB) \
+ $(XMLSCRIPTLIB) \
+
.IF "$(GUI)"=="WNT"
SHL2STDLIBS+=$(SHELLLIB)
@@ -185,8 +190,7 @@ SRSFILELIST=\
$(SRS)$/unodraw.srs \
$(SRS)$/accessibility.srs \
$(SRS)$/table.srs \
- $(SRS)$/toolbars.srs \
- $(SOLARCOMMONRESDIR)$/sfx.srs
+ $(SRS)$/toolbars.srs
RESLIB1NAME=svx
RESLIB1IMAGES=$(PRJ)$/res $(PRJ)$/source/svdraw
diff --git a/svx/util/svx.flt b/svx/util/svx.flt
deleted file mode 100644
index 26520493b8ca..000000000000
--- a/svx/util/svx.flt
+++ /dev/null
@@ -1,134 +0,0 @@
-lcl
-+getImplementation
-Impl
-IMPL
-START
-CharAttribList
-CharPosArray
-ContentAttribs
-ContentAttribsInfo
-ContentInfo
-ContentNode
-DeletedNodeInfo
-EditAttrib
-EditCharAttrib
-EditDbg
-EditDoc
-EditEngineItemPool
-EditHTMLParser
-EditLine
-EditNodeIdx
-EditPaM
-EditPosition
-EditRTFParser
-EditSel
-EditSpellWrapper
-EditStyleSheet
-EditUndoConnectParas
-EditUndoDelContent
-EditUndoInsertChars
-EditUndoInsertFeature
-EditUndoManager
-EditUndoMoveParagraphs
-EditUndoRemoveChars
-EditUndoRemoveFeature
-EditUndoSetAttribs
-EditUndoSetParaAttribs
-EditUndoSetStyleSheet
-EditUndoSplitPara
-GlobalEditData
-IdleFormattter
-ImpEditEngine
-ImpEditView
-InternalEditStatus
-ParaPortion
-ParagraphList
-RTFPardAttrMapIds
-RTFPlainAttrMapIds
-SelRange
-SortedPositions_SAR
-SvxACorrChars
-SvxColorList
-SvxFontTable
-SvxRTFStyleType
-SvxTabStopArr_SAR
-TextPortionList
-XEditAttrib
-XParaPortionList
-BinTextObject
-E3dDragMethod
-E3dTriangle
-GetImp
-ImpA
-ImpB
-ImpBrw
-ImpC
-ImpCheck
-ImpColor
-ImpD
-ImpDrag
-ImpEdCtrl
-ImpEdit
-ImpF
-ImpGet
-ImpH
-ImpHide
-ImpI
-ImpItem
-ImpJ
-ImpL
-ImpList
-ImpM
-ImpMulti
-ImportInfo
-ImpP
-ImpPaint
-ImpPast
-ImpRecalc
-ImpReset
-ImpRemove
-ImpRef
-ImpReset
-ImpS
-ImpScroll
-ImpSdrGDIMetaFileImport
-ImpSet
-ImpShow
-ImpT
-ImpX
-OLUndoAttr
-OLUndoDepth
-OLUndoExpand
-OLUndoHeight
-OutlinerEditEng
-SdrGraphicLink
-SdrItemBrowser
-SdrOleLink
-SpellCache
-SvFileObject
-WrongList
-WrongRanges
-XIOCompat
-_SdrItemBrowserControl
-_SdrItemBrowserWindow
-+FmXGridPeer
-+FmXGridControl
-FmX
-FmExp
-ODatabaseForm
-WEP
-LIBMAIN
-LibMain
-??_5
-??_7
-??_8
-??_9
-??_C
-??_E
-??_F
-??_G
-??_H
-??_I
-__CT
-union_impl
-alternative
diff --git a/sysui/desktop/macosx/makefile.mk b/sysui/desktop/macosx/makefile.mk
index 059b3b87bb46..654ac5579df9 100644
--- a/sysui/desktop/macosx/makefile.mk
+++ b/sysui/desktop/macosx/makefile.mk
@@ -64,8 +64,11 @@ ULFDIR:=..$/share
.INCLUDE : target.mk
+.IF "$(ZIP1TARGETN)"!=""
ZIP1TARGETN : Info.plist extract_icons_names.pl
+.ENDIF # "$(ZIP1TARGETN)"!=""
+
ALLTAR : $(COMMONMISC)$/{PkgInfo Info.plist} $(COMMONBIN)$/InfoPlist_{$(alllangiso)}.zip
$(COMMONMISC)$/PkgInfo :
diff --git a/ucb/prj/build.lst b/ucb/prj/build.lst
index 8d8c87f3ae4b..6f2d146aabbf 100644
--- a/ucb/prj/build.lst
+++ b/ucb/prj/build.lst
@@ -1,4 +1,4 @@
-uc ucb : cppuhelper CURL:curl OPENSSL:openssl NEON:neon LIBXML2:libxml2 offapi sal salhelper ucbhelper udkapi comphelper tools NULL
+uc ucb : cppuhelper CURL:curl OPENSSL:openssl NEON:neon LIBXML2:libxml2 LIBXSLT:libxslt offapi sal salhelper ucbhelper udkapi comphelper tools NULL
uc ucb usr1 - all uc_mkout NULL
uc ucb\inc nmake - all uc_inc NULL
uc ucb\source\regexp nmake - all uc_regexp uc_inc NULL
diff --git a/ucb/source/ucp/file/shell.cxx b/ucb/source/ucp/file/shell.cxx
index f324c93b878f..d045380ae7a1 100644
--- a/ucb/source/ucp/file/shell.cxx
+++ b/ucb/source/ucp/file/shell.cxx
@@ -1805,14 +1805,26 @@ shell::write( sal_Int32 CommandId,
{
aFile.close();
err = aFile.open( OpenFlag_Write );
- }
- if( err != osl::FileBase::E_None )
- {
- installError( CommandId,
- TASKHANDLING_NO_OPEN_FILE_FOR_OVERWRITE,
- err );
- return sal_False;
+ if( err != osl::FileBase::E_None )
+ {
+ installError( CommandId,
+ TASKHANDLING_NO_OPEN_FILE_FOR_OVERWRITE,
+ err );
+ return sal_False;
+ }
+
+ // the existing file was just opened and should be overwritten now,
+ // truncate it first
+
+ err = aFile.setSize( 0 );
+ if( err != osl::FileBase::E_None )
+ {
+ installError( CommandId,
+ TASKHANDLING_FILESIZE_FOR_WRITE,
+ err );
+ return sal_False;
+ }
}
}
else
@@ -1844,7 +1856,6 @@ shell::write( sal_Int32 CommandId,
sal_Bool bSuccess = sal_True;
- sal_uInt64 nTotalNumberOfBytes = 0;
sal_uInt64 nWrittenBytes;
sal_Int32 nReadBytes = 0, nRequestedBytes = 32768 /*32k*/;
uno::Sequence< sal_Int8 > seq( nRequestedBytes );
@@ -1901,20 +1912,9 @@ shell::write( sal_Int32 CommandId,
bSuccess = sal_False;
break;
}
-
- nTotalNumberOfBytes += nWrittenBytes;
}
} while( nReadBytes == nRequestedBytes );
- err = aFile.setSize( nTotalNumberOfBytes );
- if( err != osl::FileBase::E_None )
- {
- installError( CommandId,
- TASKHANDLING_FILESIZE_FOR_WRITE,
- err );
- bSuccess = sal_False;
- }
-
err = aFile.close();
if( err != osl::FileBase::E_None )
{
diff --git a/ucb/source/ucp/webdav/LinkSequence.cxx b/ucb/source/ucp/webdav/LinkSequence.cxx
index 39d8d9cecc38..31ec14ba0adf 100644
--- a/ucb/source/ucp/webdav/LinkSequence.cxx
+++ b/ucb/source/ucp/webdav/LinkSequence.cxx
@@ -168,11 +168,7 @@ bool LinkSequence::createFromXML( const rtl::OString & rInData,
rInData.getStr() + nStart,
nEnd - nStart + TOKEN_LENGTH );
-#if NEON_VERSION >= 0x0250
success = !ne_xml_failed( parser );
-#else
- success = !!ne_xml_valid( parser );
-#endif
ne_xml_destroy( parser );
diff --git a/ucb/source/ucp/webdav/LockEntrySequence.cxx b/ucb/source/ucp/webdav/LockEntrySequence.cxx
index 762170e7e057..1e577a47981b 100644
--- a/ucb/source/ucp/webdav/LockEntrySequence.cxx
+++ b/ucb/source/ucp/webdav/LockEntrySequence.cxx
@@ -215,11 +215,7 @@ bool LockEntrySequence::createFromXML( const rtl::OString & rInData,
rInData.getStr() + nStart,
nEnd - nStart + TOKEN_LENGTH );
-#if NEON_VERSION >= 0x0250
success = !ne_xml_failed( parser );
-#else
- success = !!ne_xml_valid( parser );
-#endif
ne_xml_destroy( parser );
diff --git a/ucb/source/ucp/webdav/LockSequence.cxx b/ucb/source/ucp/webdav/LockSequence.cxx
index cd5f12708d58..f95badaf19d2 100644
--- a/ucb/source/ucp/webdav/LockSequence.cxx
+++ b/ucb/source/ucp/webdav/LockSequence.cxx
@@ -35,6 +35,8 @@
using namespace webdav_ucp;
using namespace com::sun::star;
+#define BEEHIVE_BUGS_WORKAROUND
+
//////////////////////////////////////////////////////////////////////////
struct LockSequenceParseContext
@@ -128,7 +130,11 @@ extern "C" int LockSequence_startelement_callback(
extern "C" int LockSequence_chardata_callback(
void *userdata,
int state,
+#ifdef BEEHIVE_BUGS_WORKAROUND
+ const char *buf1,
+#else
const char *buf,
+#endif
size_t len )
{
LockSequenceParseContext * pCtx
@@ -136,6 +142,15 @@ extern "C" int LockSequence_chardata_callback(
if ( !pCtx->pLock )
pCtx->pLock = new ucb::Lock;
+#ifdef BEEHIVE_BUGS_WORKAROUND
+ // Beehive sends XML values containing trailing newlines.
+ if ( buf1[ len - 1 ] == 0x0a )
+ len--;
+
+ char * buf = new char[ len + 1 ]();
+ strncpy( buf, buf1, len );
+#endif
+
switch ( state )
{
case STATE_DEPTH:
@@ -207,7 +222,7 @@ extern "C" int LockSequence_chardata_callback(
pCtx->pLock->Timeout = sal_Int64( -1 );
pCtx->hasTimeout = true;
OSL_ENSURE( sal_False,
- "LockSequence_chardata_callback - Unknown timeout!" );
+ "LockSequence_chardata_callback - Unknown timeout!" );
}
break;
@@ -223,6 +238,11 @@ extern "C" int LockSequence_chardata_callback(
}
}
+
+#ifdef BEEHIVE_BUGS_WORKAROUND
+ delete [] buf;
+#endif
+
return 0; // zero to continue, non-zero to abort parsing
}
@@ -323,11 +343,7 @@ bool LockSequence::createFromXML( const rtl::OString & rInData,
rInData.getStr() + nStart,
nEnd - nStart + TOKEN_LENGTH );
-#if NEON_VERSION >= 0x0250
success = !ne_xml_failed( parser );
-#else
- success = !!ne_xml_valid( parser );
-#endif
ne_xml_destroy( parser );
diff --git a/ucb/source/ucp/webdav/NeonHeadRequest.cxx b/ucb/source/ucp/webdav/NeonHeadRequest.cxx
index 2880a86a727d..1e5294882a03 100644
--- a/ucb/source/ucp/webdav/NeonHeadRequest.cxx
+++ b/ucb/source/ucp/webdav/NeonHeadRequest.cxx
@@ -37,16 +37,15 @@ using namespace com::sun::star;
namespace {
-#if NEON_VERSION >= 0x0250
-void process_headers(ne_request *req,
- DAVResource &rResource,
- const std::vector< ::rtl::OUString > &rHeaderNames)
+void process_headers( ne_request * req,
+ DAVResource & rResource,
+ const std::vector< ::rtl::OUString > & rHeaderNames )
{
- void *cursor = NULL;
- const char *name, *value;
+ void * cursor = NULL;
+ const char * name, *value;
- while ((cursor = ne_response_header_iterate(req, cursor,
- &name, &value)) != NULL) {
+ while ( ( cursor = ne_response_header_iterate( req, cursor,
+ &name, &value ) ) != NULL ) {
rtl::OUString aHeaderName( rtl::OUString::createFromAscii( name ) );
rtl::OUString aHeaderValue( rtl::OUString::createFromAscii( value ) );
@@ -86,69 +85,6 @@ void process_headers(ne_request *req,
}
}
}
-#else
-struct NeonHeadRequestContext
-{
- DAVResource * pResource;
- const std::vector< ::rtl::OUString > * pHeaderNames;
-
- NeonHeadRequestContext( DAVResource * p,
- const std::vector< ::rtl::OUString > * pHeaders )
- : pResource( p ), pHeaderNames( pHeaders ) {}
-};
-
-extern "C" void NHR_ResponseHeaderCatcher( void * userdata,
- const char * value )
-{
- rtl::OUString aHeader( rtl::OUString::createFromAscii( value ) );
- sal_Int32 nPos = aHeader.indexOf( ':' );
-
- if ( nPos != -1 )
- {
- rtl::OUString aHeaderName( aHeader.copy( 0, nPos ) );
-
- NeonHeadRequestContext * pCtx
- = static_cast< NeonHeadRequestContext * >( userdata );
-
- // Note: Empty vector means that all headers are requested.
- bool bIncludeIt = ( pCtx->pHeaderNames->size() == 0 );
-
- if ( !bIncludeIt )
- {
- // Check whether this header was requested.
- std::vector< ::rtl::OUString >::const_iterator it(
- pCtx->pHeaderNames->begin() );
- const std::vector< ::rtl::OUString >::const_iterator end(
- pCtx->pHeaderNames->end() );
-
- while ( it != end )
- {
- if ( (*it) == aHeaderName )
- break;
-
- ++it;
- }
-
- if ( it != end )
- bIncludeIt = true;
- }
-
- if ( bIncludeIt )
- {
- // Create & set the PropertyValue
- DAVPropertyValue thePropertyValue;
- thePropertyValue.Name = aHeaderName;
- thePropertyValue.IsCaseSensitive = false;
-
- if ( nPos < aHeader.getLength() )
- thePropertyValue.Value <<= aHeader.copy( nPos + 1 ).trim();
-
- // Add the newly created PropertyValue
- pCtx->pResource->properties.push_back( thePropertyValue );
- }
- }
-}
-#endif
} // namespace
@@ -156,7 +92,7 @@ extern "C" void NHR_ResponseHeaderCatcher( void * userdata,
// Constructor
// -------------------------------------------------------------------
-NeonHeadRequest::NeonHeadRequest( HttpSession* inSession,
+NeonHeadRequest::NeonHeadRequest( HttpSession * inSession,
const rtl::OUString & inPath,
const std::vector< ::rtl::OUString > &
inHeaderNames,
@@ -174,16 +110,9 @@ NeonHeadRequest::NeonHeadRequest( HttpSession* inSession,
inPath,
RTL_TEXTENCODING_UTF8 ) );
-#if NEON_VERSION < 0x0250
- NeonHeadRequestContext aCtx( &ioResource, &inHeaderNames );
- ne_add_response_header_catcher( req, NHR_ResponseHeaderCatcher, &aCtx );
-#endif
-
nError = ne_request_dispatch( req );
-#if NEON_VERSION >= 0x0250
- process_headers(req, ioResource, inHeaderNames);
-#endif
+ process_headers( req, ioResource, inHeaderNames );
if ( nError == NE_OK && ne_get_status( req )->klass != 2 )
nError = NE_ERROR;
diff --git a/ucb/source/ucp/webdav/NeonPropFindRequest.cxx b/ucb/source/ucp/webdav/NeonPropFindRequest.cxx
index 85b5ea0393e0..f794516d20aa 100644
--- a/ucb/source/ucp/webdav/NeonPropFindRequest.cxx
+++ b/ucb/source/ucp/webdav/NeonPropFindRequest.cxx
@@ -191,22 +191,13 @@ extern "C" int NPFR_propfind_iter( void* userdata,
// -------------------------------------------------------------------
extern "C" void NPFR_propfind_results( void* userdata,
-#if NEON_VERSION >= 0x0260
const ne_uri* uri,
-#else
- const char* href,
-#endif
const NeonPropFindResultSet* set )
{
// @@@ href is not the uri! DAVResource ctor wants uri!
-#if NEON_VERSION >= 0x0260
DAVResource theResource(
OStringToOUString( uri->path, RTL_TEXTENCODING_UTF8 ) );
-#else
- DAVResource theResource(
- OStringToOUString( href, RTL_TEXTENCODING_UTF8 ) );
-#endif
ne_propset_iterate( set, NPFR_propfind_iter, &theResource );
@@ -233,22 +224,13 @@ extern "C" int NPFR_propnames_iter( void* userdata,
// -------------------------------------------------------------------
extern "C" void NPFR_propnames_results( void* userdata,
-#if NEON_VERSION >= 0x0260
const ne_uri* uri,
-#else
- const char* href,
-#endif
const NeonPropFindResultSet* results )
{
// @@@ href is not the uri! DAVResourceInfo ctor wants uri!
// Create entry for the resource.
-#if NEON_VERSION >= 0x0260
DAVResourceInfo theResource(
OStringToOUString( uri->path, RTL_TEXTENCODING_UTF8 ) );
-#else
- DAVResourceInfo theResource(
- OStringToOUString( href, RTL_TEXTENCODING_UTF8 ) );
-#endif
// Fill entry.
ne_propset_iterate( results, NPFR_propnames_iter, &theResource );
diff --git a/ucb/source/ucp/webdav/NeonSession.cxx b/ucb/source/ucp/webdav/NeonSession.cxx
index 254fae546940..dca92a040af0 100644
--- a/ucb/source/ucp/webdav/NeonSession.cxx
+++ b/ucb/source/ucp/webdav/NeonSession.cxx
@@ -184,11 +184,7 @@ struct NeonRequestContext
// A simple Neon response_block_reader for use with an XInputStream
// -------------------------------------------------------------------
-#if NEON_VERSION >= 0x0250
extern "C" int NeonSession_ResponseBlockReader(void * inUserData,
-#else
-extern "C" void NeonSession_ResponseBlockReader(void * inUserData,
-#endif
const char * inBuf,
size_t inLen )
{
@@ -204,9 +200,7 @@ extern "C" void NeonSession_ResponseBlockReader(void * inUserData,
if ( xInputStream.is() )
xInputStream->AddToStream( inBuf, inLen );
}
-#if NEON_VERSION >= 0x0250
return 0;
-#endif
}
// -------------------------------------------------------------------
@@ -214,11 +208,7 @@ extern "C" void NeonSession_ResponseBlockReader(void * inUserData,
// A simple Neon response_block_reader for use with an XOutputStream
// -------------------------------------------------------------------
-#if NEON_VERSION >= 0x0250
extern "C" int NeonSession_ResponseBlockWriter( void * inUserData,
-#else
-extern "C" void NeonSession_ResponseBlockWriter( void * inUserData,
-#endif
const char * inBuf,
size_t inLen )
{
@@ -236,9 +226,7 @@ extern "C" void NeonSession_ResponseBlockWriter( void * inUserData,
xOutputStream->writeBytes( aSeq );
}
}
-#if NEON_VERSION >= 0x0250
return 0;
-#endif
}
// -------------------------------------------------------------------
@@ -1926,17 +1914,11 @@ int NeonSession::GET( ne_session * sess,
void *cursor = NULL;
const char *name, *value;
-#if NEON_VERSION < 0x0250
- if ( getheaders )
- ne_add_response_header_catcher(
- req, runResponseHeaderHandler, userdata );
-#endif
ne_decompress * dc
= ne_decompress_reader( req, ne_accept_2xx, reader, userdata );
ret = ne_request_dispatch( req );
-#if NEON_VERSION >= 0x0250
if ( getheaders )
{
while ( ( cursor = ne_response_header_iterate(
@@ -1948,7 +1930,7 @@ int NeonSession::GET( ne_session * sess,
runResponseHeaderHandler(userdata, buffer);
}
}
-#endif
+
if ( ret == NE_OK && ne_get_status( req )->klass != 2 )
ret = NE_ERROR;
diff --git a/ucb/source/ucp/webdav/NeonUri.cxx b/ucb/source/ucp/webdav/NeonUri.cxx
index 774faa06b9dd..27f24c631161 100644
--- a/ucb/source/ucp/webdav/NeonUri.cxx
+++ b/ucb/source/ucp/webdav/NeonUri.cxx
@@ -59,36 +59,24 @@ using namespace webdav_ucp;
namespace {
const ne_uri g_sUriDefaultsHTTP = { "http",
-#if NEON_VERSION >= 0x0260
NULL,
-#endif
NULL,
DEFAULT_HTTP_PORT,
-#if NEON_VERSION >= 0x0260
NULL,
-#endif
NULL,
NULL };
const ne_uri g_sUriDefaultsHTTPS = { "https",
-#if NEON_VERSION >= 0x0260
NULL,
-#endif
NULL,
DEFAULT_HTTPS_PORT,
-#if NEON_VERSION >= 0x0260
NULL,
-#endif
NULL,
NULL };
const ne_uri g_sUriDefaultsFTP = { "ftp",
-#if NEON_VERSION >= 0x0260
NULL,
-#endif
NULL,
DEFAULT_FTP_PORT,
-#if NEON_VERSION >= 0x0260
NULL,
-#endif
NULL,
NULL };
} // namespace
@@ -174,11 +162,7 @@ void NeonUri::init( const rtl::OString & rUri, const ne_uri * pUri )
pUri->scheme ? pUri->scheme : pUriDefs->scheme,
RTL_TEXTENCODING_UTF8 );
mUserInfo = rtl::OStringToOUString(
-#if NEON_VERSION >= 0x0260
pUri->userinfo ? pUri->userinfo : pUriDefs->userinfo,
-#else
- pUri->authinfo ? pUri->authinfo : pUriDefs->authinfo,
-#endif
RTL_TEXTENCODING_UTF8 );
mHostName = rtl::OStringToOUString(
pUri->host ? pUri->host : pUriDefs->host,
@@ -188,7 +172,6 @@ void NeonUri::init( const rtl::OString & rUri, const ne_uri * pUri )
pUri->path ? pUri->path : pUriDefs->path,
RTL_TEXTENCODING_UTF8 );
-#if NEON_VERSION >= 0x0260
if ( pUri->query )
{
mPath += rtl::OUString::createFromAscii( "?" );
@@ -202,7 +185,6 @@ void NeonUri::init( const rtl::OString & rUri, const ne_uri * pUri )
mPath += rtl::OStringToOUString(
pUri->fragment, RTL_TEXTENCODING_UTF8 );
}
-#endif
}
// -------------------------------------------------------------------
diff --git a/ucb/source/ucp/webdav/UCBDeadPropertyValue.cxx b/ucb/source/ucp/webdav/UCBDeadPropertyValue.cxx
index 1ce4c70e6b21..42f30c665b61 100644
--- a/ucb/source/ucp/webdav/UCBDeadPropertyValue.cxx
+++ b/ucb/source/ucp/webdav/UCBDeadPropertyValue.cxx
@@ -373,11 +373,7 @@ bool UCBDeadPropertyValue::createFromXML( const rtl::OString & rInData,
ne_xml_parse( parser, rInData.getStr(), rInData.getLength() );
-#if NEON_VERSION >= 0x0250
success = !ne_xml_failed( parser );
-#else
- success = !!ne_xml_valid( parser );
-#endif
ne_xml_destroy( parser );
diff --git a/ucb/source/ucp/webdav/webdavcontent.cxx b/ucb/source/ucp/webdav/webdavcontent.cxx
index 26b2a044e7b6..c58ba207199f 100644
--- a/ucb/source/ucp/webdav/webdavcontent.cxx
+++ b/ucb/source/ucp/webdav/webdavcontent.cxx
@@ -1183,7 +1183,7 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
std::auto_ptr< ContentProperties > xProps;
std::auto_ptr< ContentProperties > xCachedProps;
std::auto_ptr< DAVResourceAccess > xResAccess;
- rtl::OUString aEscapedTitle;
+ rtl::OUString aUnescapedTitle;
bool bHasAll = false;
uno::Reference< lang::XMultiServiceFactory > xSMgr;
uno::Reference< ucb::XContentIdentifier > xIdentifier;
@@ -1192,7 +1192,7 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
{
osl::Guard< osl::Mutex > aGuard( m_aMutex );
- aEscapedTitle = NeonUri::unescape( m_aEscapedTitle );
+ aUnescapedTitle = NeonUri::unescape( m_aEscapedTitle );
xSMgr.set( m_xSMgr );
xIdentifier.set( m_xIdentifier );
xProvider.set( m_xProvider.get() );
@@ -1365,7 +1365,7 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
if ( m_eResourceType == NON_DAV )
xProps->addProperties( aMissingProps,
ContentProperties(
- aEscapedTitle,
+ aUnescapedTitle,
false ) );
}
catch ( DAVException const & e )
@@ -1386,32 +1386,33 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
// might trigger HTTP redirect.
// Therefore, title must be updated here.
NeonUri aUri( xResAccess->getURL() );
- aEscapedTitle = aUri.GetPathBaseName();
+ aUnescapedTitle = aUri.GetPathBaseNameUnescaped();
- if ( UNKNOWN == rType )
+ if ( rType == UNKNOWN )
{
- xProps.reset( new ContentProperties( aEscapedTitle ) );
+ xProps.reset( new ContentProperties( aUnescapedTitle ) );
}
// For DAV resources we only know the Title, for non-DAV
// resources we additionally know that it is a document.
- if ( DAV == rType )
+
+ if ( rType == DAV )
{
//xProps.reset(
- // new ContentProperties( aEscapedTitle ) );
+ // new ContentProperties( aUnescapedTitle ) );
xProps->addProperty(
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
- uno::makeAny( aEscapedTitle ),
+ uno::makeAny( aUnescapedTitle ),
true );
}
else
{
if ( !xProps.get() )
- xProps.reset( new ContentProperties( aEscapedTitle, false ) );
+ xProps.reset( new ContentProperties( aUnescapedTitle, false ) );
else
xProps->addProperty(
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
- uno::makeAny( aEscapedTitle ),
+ uno::makeAny( aUnescapedTitle ),
true );
xProps->addProperty(
@@ -1429,7 +1430,7 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
// No server access for just created (not yet committed) objects.
// Only a minimal set of properties supported at this stage.
if (m_bTransient)
- xProps.reset( new ContentProperties( aEscapedTitle,
+ xProps.reset( new ContentProperties( aUnescapedTitle,
m_bCollection ) );
}
@@ -1480,7 +1481,7 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
m_xCachedProps->addProperties( *xProps.get() );
m_xResAccess.reset( new DAVResourceAccess( *xResAccess.get() ) );
- m_aEscapedTitle = aEscapedTitle;
+ m_aEscapedTitle = NeonUri::escapeSegment( aUnescapedTitle );
}
return xResultRow;
@@ -2947,6 +2948,20 @@ uno::Any Content::MapDAVException( const DAVException & e, sal_Bool bWrite )
// Map DAVException...
uno::Any aException;
+ rtl::OUString aURL;
+ if ( m_bTransient )
+ {
+ aURL = getParentURL();
+ if ( aURL.lastIndexOf( '/' ) != ( aURL.getLength() - 1 ) )
+ aURL += rtl::OUString::createFromAscii( "/" );
+
+ aURL += m_aEscapedTitle;
+ }
+ else
+ {
+ aURL = m_xIdentifier->getContentIdentifier();
+ }
+
switch ( e.getStatus() )
{
case SC_NOT_FOUND:
@@ -2954,7 +2969,7 @@ uno::Any Content::MapDAVException( const DAVException & e, sal_Bool bWrite )
uno::Sequence< uno::Any > aArgs( 1 );
aArgs[ 0 ] <<= beans::PropertyValue(
rtl::OUString::createFromAscii("Uri"), -1,
- uno::makeAny(m_xIdentifier->getContentIdentifier()),
+ uno::makeAny(aURL),
beans::PropertyState_DIRECT_VALUE);
aException <<=
@@ -3044,14 +3059,14 @@ uno::Any Content::MapDAVException( const DAVException & e, sal_Bool bWrite )
rtl::OUString::createFromAscii( "Locked!" ),
static_cast< cppu::OWeakObject * >( this ),
task::InteractionClassification_ERROR,
- m_xIdentifier->getContentIdentifier(),
- sal_True );
+ aURL,
+ sal_False ); // not SelfOwned
#else
{
uno::Sequence< uno::Any > aArgs( 1 );
aArgs[ 0 ] <<= beans::PropertyValue(
rtl::OUString::createFromAscii("Uri"), -1,
- uno::makeAny(m_xIdentifier->getContentIdentifier()),
+ uno::makeAny(aURL),
beans::PropertyState_DIRECT_VALUE);
aException <<=
@@ -3071,8 +3086,8 @@ uno::Any Content::MapDAVException( const DAVException & e, sal_Bool bWrite )
rtl::OUString::createFromAscii( "Locked (self)!" ),
static_cast< cppu::OWeakObject * >( this ),
task::InteractionClassification_ERROR,
- m_xIdentifier->getContentIdentifier(),
- sal_True );
+ aURL,
+ sal_True ); // SelfOwned
break;
case DAVException::DAV_NOT_LOCKED:
@@ -3081,7 +3096,7 @@ uno::Any Content::MapDAVException( const DAVException & e, sal_Bool bWrite )
rtl::OUString::createFromAscii( "Not locked!" ),
static_cast< cppu::OWeakObject * >( this ),
task::InteractionClassification_ERROR,
- m_xIdentifier->getContentIdentifier() );
+ aURL );
break;
case DAVException::DAV_LOCK_EXPIRED:
@@ -3090,7 +3105,7 @@ uno::Any Content::MapDAVException( const DAVException & e, sal_Bool bWrite )
rtl::OUString::createFromAscii( "Lock expired!" ),
static_cast< cppu::OWeakObject * >( this ),
task::InteractionClassification_ERROR,
- m_xIdentifier->getContentIdentifier() );
+ aURL );
break;
default:
diff --git a/uui/prj/build.lst b/uui/prj/build.lst
index dbe31cb1b57e..6816f8416bdf 100644
--- a/uui/prj/build.lst
+++ b/uui/prj/build.lst
@@ -1,4 +1,4 @@
-uu uui : l10n vcl svtools NULL
+uu uui : l10n vcl svtools LIBXSLT:libxslt NULL
uu uui usr1 - all uu_mkout NULL
uu uui\source nmake - all uu_source NULL
uu uui\util nmake - all uu_util uu_source NULL
diff --git a/uui/source/filechanged.src b/uui/source/filechanged.src
index fa07c40c0853..74435516a497 100644
--- a/uui/source/filechanged.src
+++ b/uui/source/filechanged.src
@@ -33,7 +33,7 @@
String STR_FILECHANGED_TITLE
{
- Text = "Document Has Been Changed by Others";
+ Text [ en-US ] = "Document Has Been Changed by Others";
};
String STR_FILECHANGED_MSG
{
diff --git a/uui/source/sslwarndlg.src b/uui/source/sslwarndlg.src
index b1fe7f54c020..cbcdeef3a8b1 100644
--- a/uui/source/sslwarndlg.src
+++ b/uui/source/sslwarndlg.src
@@ -41,7 +41,6 @@ ModalDialog DLG_UUI_SSLWARN
Moveable = TRUE ;
OutputSize = TRUE ;
SVLook = TRUE ;
- Pos = MAP_APPFONT( 221, 158 );
Size = MAP_APPFONT( DLG_WIDTH, DLG_HEIGHT );
Text [ en-US ] = "Security Warning: ";
diff --git a/vbahelper/inc/vbahelper/vbadocumentsbase.hxx b/vbahelper/inc/vbahelper/vbadocumentsbase.hxx
index 36bc0a4963ee..8e4554b74b3d 100644
--- a/vbahelper/inc/vbahelper/vbadocumentsbase.hxx
+++ b/vbahelper/inc/vbahelper/vbadocumentsbase.hxx
@@ -57,10 +57,10 @@ public:
// VbaDocumentsBase_BASE
virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ) = 0;
- // XDocumentsBase
- virtual css::uno::Any SAL_CALL Add() throw (css::uno::RuntimeException);
- virtual void SAL_CALL Close( ) throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL Open( const ::rtl::OUString& Filename, const css::uno::Any& ReadOnly, const css::uno::Sequence< css::beans::PropertyValue >& rProps ) throw (css::uno::RuntimeException);
+protected:
+ css::uno::Any createDocument() throw (css::uno::RuntimeException);
+ void closeDocuments() throw (css::uno::RuntimeException);
+ css::uno::Any openDocument( const ::rtl::OUString& Filename, const css::uno::Any& ReadOnly, const css::uno::Sequence< css::beans::PropertyValue >& rProps ) throw (css::uno::RuntimeException);
};
#endif /* SC_VBA_WORKBOOKS_HXX */
diff --git a/vbahelper/inc/vbahelper/vbaeventshelperbase.hxx b/vbahelper/inc/vbahelper/vbaeventshelperbase.hxx
index 89d355db71f9..659837535ace 100755
--- a/vbahelper/inc/vbahelper/vbaeventshelperbase.hxx
+++ b/vbahelper/inc/vbahelper/vbaeventshelperbase.hxx
@@ -58,6 +58,17 @@ public:
// XEventListener
virtual void SAL_CALL disposing( const css::lang::EventObject& aSource ) throw (css::uno::RuntimeException);
+ // little helpers ---------------------------------------------------------
+
+ /** Throws, if the passed sequence does not contain a value at the specified index. */
+ static inline void checkArgument( const css::uno::Sequence< css::uno::Any >& rArgs, sal_Int32 nIndex ) throw (css::lang::IllegalArgumentException)
+ { if( (nIndex < 0) || (nIndex >= rArgs.getLength()) ) throw css::lang::IllegalArgumentException(); }
+
+ /** Throws, if the passed sequence does not contain a value of a specific at the specified index. */
+ template< typename Type >
+ static inline void checkArgumentType( const css::uno::Sequence< css::uno::Any >& rArgs, sal_Int32 nIndex ) throw (css::lang::IllegalArgumentException)
+ { checkArgument( rArgs, nIndex ); if( !rArgs[ nIndex ].has< Type >() ) throw css::lang::IllegalArgumentException(); }
+
protected:
// ------------------------------------------------------------------------
@@ -73,7 +84,7 @@ protected:
/** Registers a supported event handler.
- @param nEventId Event identifier from com.sun.star.script.vba.EventIdentifier.
+ @param nEventId Event identifier from com.sun.star.script.vba.VBAEventId.
@param pcMacroName Name of the associated VBA event handler macro.
@param eType Document event or global event.
@param nCancelIndex 0-based index of Cancel parameter, or -1.
@@ -85,15 +96,6 @@ protected:
sal_Int32 nCancelIndex = -1,
const css::uno::Any& rUserData = css::uno::Any() );
- /** Throws, if the passed sequence does not contain a value at the specified index. */
- static inline void checkArgument( const css::uno::Sequence< css::uno::Any >& rArgs, sal_Int32 nIndex ) throw (css::lang::IllegalArgumentException)
- { if( rArgs.getLength() <= nIndex ) throw css::lang::IllegalArgumentException(); }
-
- /** Throws, if the passed sequence does not contain a value of a specific at the specified index. */
- template< typename Type >
- static inline void checkArgumentType( const css::uno::Sequence< css::uno::Any >& rArgs, sal_Int32 nIndex ) throw (css::lang::IllegalArgumentException)
- { if( (rArgs.getLength() <= nIndex) || !rArgs[ nIndex ].has< Type >() ) throw css::lang::IllegalArgumentException(); }
-
// ------------------------------------------------------------------------
struct EventQueueEntry
@@ -105,10 +107,6 @@ protected:
};
typedef ::std::deque< EventQueueEntry > EventQueue;
- /** Derived classes return whether event processing is enabled. Throws if
- the instance is in an invalid state. */
- virtual bool implEventsEnabled() throw (css::uno::RuntimeException) = 0;
-
/** Derived classes do additional prpeparations and return whether the
event handler has to be called. */
virtual bool implPrepareEvent(
diff --git a/vbahelper/inc/vbahelper/vbahelper.hxx b/vbahelper/inc/vbahelper/vbahelper.hxx
index ccabb9114f2d..4c4a9f5d7204 100644
--- a/vbahelper/inc/vbahelper/vbahelper.hxx
+++ b/vbahelper/inc/vbahelper/vbahelper.hxx
@@ -194,11 +194,8 @@ public:
#define VBA_WIDTH "Width"
class VBAHELPER_DLLPUBLIC UserFormGeometryHelper : public AbstractGeometryAttributes
{
- css::uno::Reference< css::awt::XUnitConversion > mxControlUnits;
- css::uno::Reference< css::beans::XPropertySet > mxModel;
-
- sal_Int32 ConvertLogicToPixel( sal_Int32 nValue, sal_Bool bIsPoint, sal_Bool bIsX, sal_Int16 nSourceUnit );
- sal_Int32 ConvertPixelToLogic( sal_Int32 nValue, sal_Bool bIsPoint, sal_Bool bIsX, sal_Int16 nTargetUnit );
+ css::uno::Reference< css::awt::XWindow > mxWindow;
+ sal_Bool mbDialog;
public:
UserFormGeometryHelper( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::awt::XControl >& xControl );
diff --git a/vbahelper/prj/build.lst b/vbahelper/prj/build.lst
index 20001db859c8..0fadb0c94625 100644
--- a/vbahelper/prj/build.lst
+++ b/vbahelper/prj/build.lst
@@ -1,4 +1,4 @@
-vba vbahelper : oovbaapi basic sfx2 svx filter cppuhelper vcl comphelper svtools tools sal NULL
+vba vbahelper : oovbaapi offuh basic sfx2 svx filter cppuhelper vcl comphelper svtools tools sal LIBXSLT:libxslt NULL
vba vbahelper usr1 - all vba_mkout NULL
#vba vbahelper\inc nmake - all vba_inc NULL
vba vbahelper\source\vbahelper nmake - all vba_vbahelper NULL
diff --git a/vbahelper/source/msforms/makefile.mk b/vbahelper/source/msforms/makefile.mk
index 5fce64649dcb..40a6b8350fd4 100644
--- a/vbahelper/source/msforms/makefile.mk
+++ b/vbahelper/source/msforms/makefile.mk
@@ -70,12 +70,3 @@ SLOFILES=\
.INCLUDE : target.mk
-ALLTAR : \
- $(MISC)$/$(TARGET).don \
-
-$(SLOFILES) : $(MISC)$/$(TARGET).don
-
-$(MISC)$/$(TARGET).don : $(SOLARBINDIR)$/oovbaapi.rdb
- +$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SOLARBINDIR)$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
- echo $@
-
diff --git a/vbahelper/source/msforms/vbacontrol.cxx b/vbahelper/source/msforms/vbacontrol.cxx
index 82b68bbd5be7..ed9f83a7c647 100644
--- a/vbahelper/source/msforms/vbacontrol.cxx
+++ b/vbahelper/source/msforms/vbacontrol.cxx
@@ -227,7 +227,6 @@ void SAL_CALL
ScVbaControl::setLeft( double _left ) throw (uno::RuntimeException)
{
mpGeometryHelper->setLeft( _left );
-
}
double SAL_CALL
diff --git a/vbahelper/source/msforms/vbauserform.cxx b/vbahelper/source/msforms/vbauserform.cxx
index a1333e0a655b..16bc97babd7d 100644
--- a/vbahelper/source/msforms/vbauserform.cxx
+++ b/vbahelper/source/msforms/vbauserform.cxx
@@ -28,7 +28,9 @@
#include "vbauserform.hxx"
#include <com/sun/star/awt/XControl.hpp>
#include <com/sun/star/awt/XControlContainer.hpp>
+#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/beans/PropertyConcept.hpp>
+#include <com/sun/star/util/MeasureUnit.hpp>
#include <basic/sbx.hxx>
#include <basic/sbstar.hxx>
#include <basic/sbmeth.hxx>
@@ -64,9 +66,28 @@ ScVbaUserForm::Show( ) throw (uno::RuntimeException)
{
OSL_TRACE("ScVbaUserForm::Show( )");
short aRet = 0;
- mbDispose = true;
+ mbDispose = true;
+
if ( m_xDialog.is() )
+ {
+ // try to center dialog on model window
+ if( m_xModel.is() ) try
+ {
+ uno::Reference< frame::XController > xController( m_xModel->getCurrentController(), uno::UNO_SET_THROW );
+ uno::Reference< frame::XFrame > xFrame( xController->getFrame(), uno::UNO_SET_THROW );
+ uno::Reference< awt::XWindow > xWindow( xFrame->getContainerWindow(), uno::UNO_SET_THROW );
+ awt::Rectangle aPosSize = xWindow->getPosSize(); // already in pixel
+
+ uno::Reference< awt::XControl > xControl( m_xDialog, uno::UNO_QUERY_THROW );
+ uno::Reference< awt::XWindow > xControlWindow( xControl->getPeer(), uno::UNO_QUERY_THROW );
+ xControlWindow->setPosSize( (aPosSize.Width - getWidth()) / 2.0, (aPosSize.Height - getHeight()) / 2.0, 0, 0, awt::PosSize::POS );
+ }
+ catch( uno::Exception& )
+ {
+ }
+
aRet = m_xDialog->execute();
+ }
OSL_TRACE("ScVbaUserForm::Show() execute returned %d", aRet);
if ( mbDispose )
{
@@ -180,11 +201,14 @@ ScVbaUserForm::getValue( const ::rtl::OUString& aPropertyName ) throw (beans::Un
uno::Reference< awt::XControl > xDialogControl( m_xDialog, uno::UNO_QUERY_THROW );
uno::Reference< awt::XControlContainer > xContainer( m_xDialog, uno::UNO_QUERY_THROW );
uno::Reference< awt::XControl > xControl = xContainer->getControl( aPropertyName );
- ScVbaControlFactory aFac( mxContext, xControl, m_xModel );
- uno::Reference< msforms::XControl > xVBAControl( aFac.createControl( xDialogControl->getModel() ) );
- ScVbaControl* pControl = dynamic_cast< ScVbaControl* >( xVBAControl.get() );
- pControl->setGeometryHelper( new UserFormGeometryHelper( mxContext, xControl ) );
- aResult = uno::makeAny( xVBAControl );
+ if ( xControl.is() )
+ {
+ ScVbaControlFactory aFac( mxContext, xControl, m_xModel );
+ uno::Reference< msforms::XControl > xVBAControl( aFac.createControl( xDialogControl->getModel() ) );
+ ScVbaControl* pControl = dynamic_cast< ScVbaControl* >( xVBAControl.get() );
+ pControl->setGeometryHelper( new UserFormGeometryHelper( mxContext, xControl ) );
+ aResult = uno::makeAny( xVBAControl );
+ }
}
return aResult;
diff --git a/vbahelper/source/vbahelper/makefile.mk b/vbahelper/source/vbahelper/makefile.mk
index 22ed40a3adfa..51fa5b449d23 100644
--- a/vbahelper/source/vbahelper/makefile.mk
+++ b/vbahelper/source/vbahelper/makefile.mk
@@ -71,12 +71,4 @@ SLOFILES=\
.INCLUDE : target.mk
-ALLTAR : \
- $(MISC)$/$(TARGET).don \
-
-$(SLOFILES) : $(MISC)$/$(TARGET).don
-
-$(MISC)$/$(TARGET).don : $(SOLARBINDIR)$/oovbaapi.rdb
- +$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SOLARBINDIR)$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
- echo $@
diff --git a/vbahelper/source/vbahelper/vbaapplicationbase.cxx b/vbahelper/source/vbahelper/vbaapplicationbase.cxx
index 326c150edade..cf6d655ff353 100644
--- a/vbahelper/source/vbahelper/vbaapplicationbase.cxx
+++ b/vbahelper/source/vbahelper/vbaapplicationbase.cxx
@@ -295,54 +295,23 @@ VbaApplicationBase::getVersion() throw (uno::RuntimeException)
void SAL_CALL VbaApplicationBase::Run( const ::rtl::OUString& MacroName, const uno::Any& varg1, const uno::Any& varg2, const uno::Any& varg3, const uno::Any& varg4, const uno::Any& varg5, const uno::Any& varg6, const uno::Any& varg7, const uno::Any& varg8, const uno::Any& varg9, const uno::Any& varg10, const uno::Any& varg11, const uno::Any& varg12, const uno::Any& varg13, const uno::Any& varg14, const uno::Any& varg15, const uno::Any& varg16, const uno::Any& varg17, const uno::Any& varg18, const uno::Any& varg19, const uno::Any& varg20, const uno::Any& varg21, const uno::Any& varg22, const uno::Any& varg23, const uno::Any& varg24, const uno::Any& varg25, const uno::Any& varg26, const uno::Any& varg27, const uno::Any& varg28, const uno::Any& varg29, const uno::Any& varg30 ) throw (uno::RuntimeException)
{
- ::rtl::OUString sSeparator = ::rtl::OUString::createFromAscii("/");
- ::rtl::OUString sMacroSeparator = ::rtl::OUString::createFromAscii("!");
- ::rtl::OUString sMacro_only_Name;
- sal_Int32 Position_MacroSeparator = MacroName.indexOf(sMacroSeparator);
+ ::rtl::OUString aMacroName = MacroName.trim();
+ if (0 == aMacroName.indexOf('!'))
+ aMacroName = aMacroName.copy(1).trim();
- uno::Reference< frame::XModel > aMacroDocumentModel;
- if (-1 != Position_MacroSeparator)
- {
- uno::Reference< container::XEnumerationAccess > xComponentEnumAccess;
- uno::Reference< lang::XMultiComponentFactory > xServiceManager = mxContext->getServiceManager();
- try
- {
- uno::Reference< frame::XDesktop > xDesktop (xServiceManager->createInstanceWithContext( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" )),mxContext ), uno::UNO_QUERY_THROW );
- xComponentEnumAccess = xDesktop->getComponents();
- }
- catch(uno::Exception&)
- {
- }
-
- //rem look for the name of the document in the cmpoonents collection
- uno::Reference < container::XEnumeration > xEnum = xComponentEnumAccess->createEnumeration();
-
- // iterate through the collection by name
- while (xEnum->hasMoreElements())
- {
- // get the next element as a UNO Any
- uno::Any aComponentHelper = xEnum->nextElement();
- uno::Reference <frame::XModel> xDocModel( aComponentHelper, uno::UNO_QUERY_THROW );
-
- // get the name of the sheet from its XNamed interface
- ::rtl::OUString aName = xDocModel->getURL();
-
-
- if (aName.match(MacroName.copy(0,Position_MacroSeparator-1),aName.lastIndexOf(sSeparator)+1))
- {
- aMacroDocumentModel = xDocModel;
- sMacro_only_Name = MacroName.copy(Position_MacroSeparator+1);
- }
- }
- }
- else
+ uno::Reference< frame::XModel > xModel;
+ SbMethod* pMeth = StarBASIC::GetActiveMethod();
+ if ( pMeth )
{
- aMacroDocumentModel = getCurrentDocument();
- sMacro_only_Name = MacroName.copy(0);
+ SbModule* pMod = dynamic_cast< SbModule* >( pMeth->GetParent() );
+ if ( pMod )
+ xModel = StarBASIC::GetModelFromBasic( pMod );
}
+ if ( !xModel.is() )
+ xModel = getCurrentDocument();
- VBAMacroResolvedInfo aMacroInfo = resolveVBAMacro( getSfxObjShell( aMacroDocumentModel ), sMacro_only_Name );
+ VBAMacroResolvedInfo aMacroInfo = resolveVBAMacro( getSfxObjShell( xModel ), aMacroName );
if( aMacroInfo.IsResolved() )
{
// handle the arguments
diff --git a/vbahelper/source/vbahelper/vbacommandbarcontrol.cxx b/vbahelper/source/vbahelper/vbacommandbarcontrol.cxx
index 3f9c7ddeae89..56b89c27bb5b 100644
--- a/vbahelper/source/vbahelper/vbacommandbarcontrol.cxx
+++ b/vbahelper/source/vbahelper/vbacommandbarcontrol.cxx
@@ -91,27 +91,33 @@ ScVbaCommandBarControl::setOnAction( const ::rtl::OUString& _onaction ) throw (u
::sal_Bool SAL_CALL
ScVbaCommandBarControl::getVisible() throw (uno::RuntimeException)
{
- sal_Bool bVisible = sal_True;
+ /*sal_Bool bVisible = sal_True;
uno::Any aValue = getPropertyValue( m_aPropertyValues, rtl::OUString::createFromAscii("IsVisible") );
if( aValue.hasValue() )
aValue >>= bVisible;
- return bVisible;
+ return bVisible;*/
+ return getEnabled();
+
}
void SAL_CALL
ScVbaCommandBarControl::setVisible( ::sal_Bool _visible ) throw (uno::RuntimeException)
{
- uno::Any aValue = getPropertyValue( m_aPropertyValues, rtl::OUString::createFromAscii("IsVisible") );
+ /*uno::Any aValue = getPropertyValue( m_aPropertyValues, rtl::OUString::createFromAscii("IsVisible") );
if( aValue.hasValue() )
{
setPropertyValue( m_aPropertyValues, rtl::OUString::createFromAscii("IsVisible"), uno::makeAny( _visible ) );
ApplyChange();
- }
+ }*/
+ setEnabled( _visible);
}
::sal_Bool SAL_CALL
ScVbaCommandBarControl::getEnabled() throw (uno::RuntimeException)
{
sal_Bool bEnabled = sal_True;
+ rtl::OUString aCommandURLappendix = rtl::OUString::createFromAscii("___");
+ rtl::OUString aCommandURL ;
+
if( m_xParentMenu.is() )
{
// currently only the menu in the MenuBat support Enable/Disable
@@ -121,7 +127,14 @@ ScVbaCommandBarControl::getEnabled() throw (uno::RuntimeException)
else
{
// emulated with Visible
- bEnabled = getVisible();
+ //bEnabled = getVisible();
+ uno::Any aValue = getPropertyValue( m_aPropertyValues, rtl::OUString::createFromAscii("CommandURL") );
+ if (aValue >>= aCommandURL){
+ if (0 == aCommandURL.indexOf(aCommandURLappendix)){
+ bEnabled = sal_False;
+ }
+ }
+
}
return bEnabled;
}
@@ -129,6 +142,9 @@ ScVbaCommandBarControl::getEnabled() throw (uno::RuntimeException)
void SAL_CALL
ScVbaCommandBarControl::setEnabled( sal_Bool _enabled ) throw (uno::RuntimeException)
{
+ rtl::OUString aCommandURL ;
+ rtl::OUString aCommandURLappendix = rtl::OUString::createFromAscii("___");
+ rtl::OUStringBuffer aCommandURLSringBuffer;
if( m_xParentMenu.is() )
{
// currently only the menu in the MenuBat support Enable/Disable
@@ -136,8 +152,20 @@ ScVbaCommandBarControl::setEnabled( sal_Bool _enabled ) throw (uno::RuntimeExcep
}
else
{
+ uno::Any aValue = getPropertyValue( m_aPropertyValues, rtl::OUString::createFromAscii("CommandURL") );
+ if (aValue >>= aCommandURL){
+ if (0 == aCommandURL.indexOf(aCommandURLappendix)){
+ aCommandURL = aCommandURL.copy(3);
+ }
+ if (false == _enabled){
+ aCommandURLSringBuffer = aCommandURLappendix;
+ }
+ aCommandURLSringBuffer.append(aCommandURL);
+ setPropertyValue( m_aPropertyValues, rtl::OUString::createFromAscii("CommandURL"), uno::makeAny( aCommandURLSringBuffer.makeStringAndClear()) );
+ ApplyChange();
+ }
// emulated with Visible
- setVisible( _enabled );
+ //setVisible( _enabled );
}
}
diff --git a/vbahelper/source/vbahelper/vbadocumentbase.cxx b/vbahelper/source/vbahelper/vbadocumentbase.cxx
index 65f7f4bcfbeb..0df38b003556 100644
--- a/vbahelper/source/vbahelper/vbadocumentbase.cxx
+++ b/vbahelper/source/vbahelper/vbadocumentbase.cxx
@@ -28,14 +28,18 @@
#include "vbahelper/vbadocumentbase.hxx"
#include "vbahelper/helperdecl.hxx"
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
#include <com/sun/star/util/XModifiable.hpp>
#include <com/sun/star/util/XProtectable.hpp>
#include <com/sun/star/util/XCloseable.hpp>
+#include <com/sun/star/util/XURLTransformer.hpp>
#include <com/sun/star/frame/XStorable.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/document/XEmbeddedScripts.hpp> //Michael E. Bohn
#include <com/sun/star/beans/XPropertySet.hpp>
+#include <cppuhelper/exc_hlp.hxx>
#include <comphelper/unwrapargs.hxx>
#include <tools/urlobj.hxx>
#include <osl/file.hxx>
@@ -74,7 +78,8 @@ VbaDocumentBase::getName() throw (uno::RuntimeException)
uno::Reference< beans::XPropertySet > xProps( xFrame, uno::UNO_QUERY_THROW );
xProps->getPropertyValue(sTitle ) >>= sName;
sal_Int32 pos = 0;
- sName = sName.getToken(0,' ',pos);
+ sName = sName.getToken(0,'-',pos);
+ sName = sName.trim();
}
return sName;
}
@@ -92,8 +97,8 @@ VbaDocumentBase::getPath() throw (uno::RuntimeException)
::rtl::OUString
VbaDocumentBase::getFullName() throw (uno::RuntimeException)
{
- rtl::OUString sPath;
- ::osl::File::getSystemPathFromFileURL( getModel()->getURL(), sPath );
+ rtl::OUString sPath = getName();
+ //::osl::File::getSystemPathFromFileURL( getModel()->getURL(), sPath );
return sPath;
}
@@ -127,23 +132,56 @@ VbaDocumentBase::Close( const uno::Any &rSaveArg, const uno::Any &rFileArg,
else
xModifiable->setModified( false );
- uno::Reference< util::XCloseable > xCloseable( getModel(), uno::UNO_QUERY );
+ // first try to close the document using UI dispatch functionality
+ sal_Bool bUIClose = sal_False;
+ try
+ {
+ uno::Reference< frame::XController > xController( getModel()->getCurrentController(), uno::UNO_SET_THROW );
+ uno::Reference< frame::XDispatchProvider > xDispatchProvider( xController->getFrame(), uno::UNO_QUERY_THROW );
+
+ uno::Reference< lang::XMultiComponentFactory > xServiceManager( mxContext->getServiceManager(), uno::UNO_SET_THROW );
+ uno::Reference< util::XURLTransformer > xURLTransformer(
+ xServiceManager->createInstanceWithContext(
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ) ),
+ mxContext ),
+ uno::UNO_QUERY_THROW );
- if( xCloseable.is() )
- // use close(boolean DeliverOwnership)
+ util::URL aURL;
+ aURL.Complete = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CloseDoc" ) );
+ xURLTransformer->parseStrict( aURL );
- // The boolean parameter DeliverOwnership tells objects vetoing the close process that they may
- // assume ownership if they object the closure by throwing a CloseVetoException
- // Here we give up ownership. To be on the safe side, catch possible veto exception anyway.
- xCloseable->close(sal_True);
- // If close is not supported by this model - try to dispose it.
- // But if the model disagree with a reset request for the modify state
- // we shouldn't do so. Otherwhise some strange things can happen.
- else
+ uno::Reference< css::frame::XDispatch > xDispatch(
+ xDispatchProvider->queryDispatch( aURL, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_self" ) ), 0 ),
+ uno::UNO_SET_THROW );
+ xDispatch->dispatch( aURL, uno::Sequence< beans::PropertyValue >() );
+ bUIClose = sal_True;
+ }
+ catch( uno::Exception& )
{
- uno::Reference< lang::XComponent > xDisposable ( getModel(), uno::UNO_QUERY );
- if ( xDisposable.is() )
- xDisposable->dispose();
+ }
+
+ if ( !bUIClose )
+ {
+ // if it is not possible to use UI dispatch, try to close the model directly
+ uno::Reference< util::XCloseable > xCloseable( getModel(), uno::UNO_QUERY );
+ if( xCloseable.is() )
+ {
+ // use close(boolean DeliverOwnership)
+
+ // The boolean parameter DeliverOwnership tells objects vetoing the close process that they may
+ // assume ownership if they object the closure by throwing a CloseVetoException
+ // Here we give up ownership. To be on the safe side, catch possible veto exception anyway.
+ xCloseable->close(sal_True);
+ }
+ else
+ {
+ // If close is not supported by this model - try to dispose it.
+ // But if the model disagree with a reset request for the modify state
+ // we shouldn't do so. Otherwhise some strange things can happen.
+ uno::Reference< lang::XComponent > xDisposable ( getModel(), uno::UNO_QUERY );
+ if ( xDisposable.is() )
+ xDisposable->dispose();
+ }
}
}
@@ -181,7 +219,22 @@ void
VbaDocumentBase::setSaved( sal_Bool bSave ) throw (uno::RuntimeException)
{
uno::Reference< util::XModifiable > xModifiable( getModel(), uno::UNO_QUERY_THROW );
- xModifiable->setModified( !bSave );
+ try
+ {
+ xModifiable->setModified( !bSave );
+ }
+ catch ( lang::DisposedException& )
+ {
+ // impossibility to set the modified state on disposed document should not trigger an error
+ }
+ catch ( beans::PropertyVetoException& )
+ {
+ uno::Any aCaught( ::cppu::getCaughtException() );
+ throw lang::WrappedTargetRuntimeException(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can't change modified state of model!" ) ),
+ uno::Reference< uno::XInterface >(),
+ aCaught );
+ }
}
sal_Bool
@@ -213,7 +266,7 @@ VbaDocumentBase::getVBProject() throw (uno::RuntimeException)
{
uno::Sequence< uno::Any > aArgs( 2 );
aArgs[ 0 ] <<= uno::Reference< XHelperInterface >( this );
- aArgs[ 1 ] <<= mxModel;
+ aArgs[ 1 ] <<= getModel();
uno::Reference< lang::XMultiComponentFactory > xServiceManager( mxContext->getServiceManager(), uno::UNO_SET_THROW );
uno::Reference< uno::XInterface > xVBProjects = xServiceManager->createInstanceWithArgumentsAndContext(
::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.VBProject" ) ), aArgs, mxContext );
diff --git a/vbahelper/source/vbahelper/vbadocumentsbase.cxx b/vbahelper/source/vbahelper/vbadocumentsbase.cxx
index 2d4175b90939..f2b70ab231c7 100644
--- a/vbahelper/source/vbahelper/vbadocumentsbase.cxx
+++ b/vbahelper/source/vbahelper/vbadocumentsbase.cxx
@@ -25,6 +25,7 @@
*
************************************************************************/
#include <vbahelper/vbadocumentsbase.hxx>
+#include <comphelper/mediadescriptor.hxx>
#include <comphelper/processfactory.hxx>
#include <cppuhelper/implbase1.hxx>
#include <cppuhelper/implbase3.hxx>
@@ -212,10 +213,9 @@ VbaDocumentsBase::VbaDocumentsBase( const uno::Reference< XHelperInterface >& xP
{
}
-uno::Any SAL_CALL
-VbaDocumentsBase::Add() throw (uno::RuntimeException)
+uno::Any VbaDocumentsBase::createDocument() throw (uno::RuntimeException)
{
- uno::Reference< lang::XMultiComponentFactory > xSMgr(
+ uno::Reference< lang::XMultiComponentFactory > xSMgr(
mxContext->getServiceManager(), uno::UNO_QUERY_THROW );
uno::Reference< frame::XComponentLoader > xLoader(
@@ -229,15 +229,21 @@ VbaDocumentsBase::Add() throw (uno::RuntimeException)
sURL = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("private:factory/scalc") );
else
throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() );
+
+ // prepare the media descriptor
+ ::comphelper::MediaDescriptor aMediaDesc;
+ aMediaDesc[ ::comphelper::MediaDescriptor::PROP_MACROEXECUTIONMODE() ] <<= document::MacroExecMode::USE_CONFIG;
+ aMediaDesc.setComponentDataEntry( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ApplyFormDesignMode" ) ), uno::Any( false ) );
+
+ // craete the new document
uno::Reference< lang::XComponent > xComponent = xLoader->loadComponentFromURL(
sURL ,
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("_blank") ), 0,
- uno::Sequence< beans::PropertyValue >(0) );
+ aMediaDesc.getAsConstPropertyValueList() );
return uno::makeAny( xComponent );
}
-void
-VbaDocumentsBase::Close() throw (uno::RuntimeException)
+void VbaDocumentsBase::closeDocuments() throw (uno::RuntimeException)
{
// #FIXME this *MUST* be wrong documents::close surely closes ALL documents
// in the collection, use of getCurrentDocument here is totally wrong
@@ -251,8 +257,7 @@ VbaDocumentsBase::Close() throw (uno::RuntimeException)
}
// #TODO# #FIXME# can any of the unused params below be used?
-uno::Any
-VbaDocumentsBase::Open( const rtl::OUString& rFileName, const uno::Any& ReadOnly, const uno::Sequence< beans::PropertyValue >& rProps ) throw (uno::RuntimeException)
+uno::Any VbaDocumentsBase::openDocument( const rtl::OUString& rFileName, const uno::Any& ReadOnly, const uno::Sequence< beans::PropertyValue >& rProps ) throw (uno::RuntimeException)
{
// we need to detect if this is a URL, if not then assume its a file path
rtl::OUString aURL;
diff --git a/vbahelper/source/vbahelper/vbaeventshelperbase.cxx b/vbahelper/source/vbahelper/vbaeventshelperbase.cxx
index 16a8671df601..b88086cd6d1d 100755
--- a/vbahelper/source/vbahelper/vbaeventshelperbase.cxx
+++ b/vbahelper/source/vbahelper/vbaeventshelperbase.cxx
@@ -74,10 +74,6 @@ void SAL_CALL VbaEventsHelperBase::processVbaEvent( sal_Int32 nEventId, const un
EventQueue aEventQueue;
aEventQueue.push_back( EventQueueEntry( nEventId, rArgs ) );
- /* bEnabled will track if event processing is enabled. Every event handler
- may disable handling of other events. */
- bool bEnabled = true;
-
/* bCancel will contain the current Cancel value. It is possible that
multiple events will try to modify the Cancel value. Every event
handler receives the Cancel value of the previous event handler. */
@@ -87,10 +83,10 @@ void SAL_CALL VbaEventsHelperBase::processVbaEvent( sal_Int32 nEventId, const un
executed successfully. */
bool bSuccess = false;
- /* Loop as long as there are more events to be processed, and as event
- handling is still enabled. Derived classes may add new events to be
- processed in the virtual implPrepareEvent() function. */
- while( bEnabled && !aEventQueue.empty() )
+ /* Loop as long as there are more events to be processed. Derived classes
+ may add new events to be processed in the virtual implPrepareEvent()
+ function. */
+ while( !aEventQueue.empty() )
{
/* Check that all class members are available, and that we are not
disposed (this may have happened at any time during execution of
@@ -103,14 +99,14 @@ void SAL_CALL VbaEventsHelperBase::processVbaEvent( sal_Int32 nEventId, const un
uno::Sequence< uno::Any > aEventArgs = aEventQueue.front().maArgs;
aEventQueue.pop_front();
- // let derived classes decide whether event processing is still enabled
- bEnabled = implEventsEnabled();
- // let derived classes prepare the event, they may add new events for next iteration
- if( bEnabled && implPrepareEvent( aEventQueue, rInfo, aEventArgs ) )
+ /* Let derived classes prepare the event, they may add new events for
+ next iteration. If false is returned, the event handler must not be
+ called. */
+ bool bEventSuccess = false;
+ if( implPrepareEvent( aEventQueue, rInfo, aEventArgs ) )
{
// search the event handler macro in the document
::rtl::OUString aMacroPath = getEventHandlerPath( rInfo, aEventArgs );
- bool bEventSuccess = false;
if( aMacroPath.getLength() > 0 )
{
// build the argument list
@@ -139,11 +135,11 @@ void SAL_CALL VbaEventsHelperBase::processVbaEvent( sal_Int32 nEventId, const un
bCancel = nNewCancel != 0;
}
}
- // post processing (also, if event handler does not exist, or on error
- implPostProcessEvent( aEventQueue, rInfo, bEventSuccess, bCancel );
// global success, if at least one event handler succeeded
bSuccess |= bEventSuccess;
}
+ // post processing (also, if event handler does not exist, or disabled, or on error
+ implPostProcessEvent( aEventQueue, rInfo, bEventSuccess, bCancel );
}
// if event handlers want to cancel the event, do so regardless of any errors
@@ -200,7 +196,8 @@ const VbaEventsHelperBase::EventHandlerInfo& VbaEventsHelperBase::getEventHandle
append( sal_Unicode( '.' ) ).append( rInfo.maMacroName ).makeStringAndClear();
break;
}
- return resolveVBAMacro( mpShell, aMacroName ).ResolvedMacro();
+ VBAMacroResolvedInfo aMacroInfo = resolveVBAMacro( mpShell, aMacroName, false );
+ return aMacroInfo.IsResolved() ? ::rtl::OUString( aMacroInfo.ResolvedMacro() ) : ::rtl::OUString();
}
void VbaEventsHelperBase::stopListening()
diff --git a/vbahelper/source/vbahelper/vbahelper.cxx b/vbahelper/source/vbahelper/vbahelper.cxx
index 14f4e3ff1363..65974738c3f4 100644
--- a/vbahelper/source/vbahelper/vbahelper.cxx
+++ b/vbahelper/source/vbahelper/vbahelper.cxx
@@ -39,6 +39,9 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/XIntrospection.hpp>
#include <com/sun/star/util/MeasureUnit.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/awt/XDialog.hpp>
+#include <com/sun/star/awt/PosSize.hpp>
#include <ooo/vba/msforms/XShape.hpp>
@@ -989,277 +992,122 @@ sal_Bool setPropertyValue( uno::Sequence< beans::PropertyValue >& aProp, const r
// ====UserFormGeomentryHelper====
//---------------------------------------------
UserFormGeometryHelper::UserFormGeometryHelper( const uno::Reference< uno::XComponentContext >& /*xContext*/, const uno::Reference< awt::XControl >& xControl )
+: mbDialog( uno::Reference< awt::XDialog >( xControl, uno::UNO_QUERY ).is() )
{
if ( !xControl.is() )
- throw uno::RuntimeException();
-
- mxControlUnits.set( xControl->getPeer(), uno::UNO_QUERY_THROW );
- mxModel.set( xControl->getModel(), uno::UNO_QUERY_THROW );
-}
-
-//---------------------------------------------
-sal_Int32 UserFormGeometryHelper::ConvertPixelToLogic( sal_Int32 nValue, sal_Bool bIsPoint, sal_Bool bIsX, sal_Int16 nTargetUnit )
-{
- sal_Int32 nResult = 0;
- if ( bIsPoint )
- {
- // conversion for a point
- awt::Point aPixelPoint( 0, 0 );
- ( bIsX ? aPixelPoint.X : aPixelPoint.Y ) = nValue;
- awt::Point aTargetPoint( 0, 0 );
- aTargetPoint = mxControlUnits->convertPointToLogic( aPixelPoint, nTargetUnit );
-
- nResult = bIsX ? aTargetPoint.X : aTargetPoint.Y;
- }
- else
- {
- // conversion for a size
- awt::Size aPixelSize( 0, 0 );
- ( bIsX ? aPixelSize.Width : aPixelSize.Height ) = nValue;
- awt::Size aTargetSize( 0, 0 );
- aTargetSize = mxControlUnits->convertSizeToLogic( aPixelSize, nTargetUnit );
-
- nResult = bIsX ? aTargetSize.Width : aTargetSize.Height;
- }
+ throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "No control is provided!" ) ),
+ uno::Reference< uno::XInterface >() );
- return nResult;
+ mxWindow.set( xControl->getPeer(), uno::UNO_QUERY_THROW );
}
//---------------------------------------------
-sal_Int32 UserFormGeometryHelper::ConvertLogicToPixel( sal_Int32 nValue, sal_Bool bIsPoint, sal_Bool bIsX, sal_Int16 nSourceUnit )
-{
- sal_Int32 nResult = 0;
- if ( bIsPoint )
- {
- // conversion for a point
- awt::Point aSourcePoint( 0, 0 );
- ( bIsX ? aSourcePoint.X : aSourcePoint.Y ) = nValue;
-
- awt::Point aPixelPoint( 0, 0 );
- aPixelPoint = mxControlUnits->convertPointToPixel( aSourcePoint, nSourceUnit );
-
- nResult = bIsX ? aPixelPoint.X : aPixelPoint.Y;
- }
- else
- {
- // conversion for a size
- awt::Size aSourceSize( 0, 0 );
- ( bIsX ? aSourceSize.Width : aSourceSize.Height ) = nValue;
-
- awt::Size aPixelSize( 0, 0 );
- aPixelSize = mxControlUnits->convertSizeToPixel( aSourceSize, nSourceUnit );
-
- nResult = bIsX ? aPixelSize.Width : aPixelSize.Height;
- }
-
- return nResult;
-}
-//---------------------------------------------
double UserFormGeometryHelper::getLeft()
{
- double nResult = 0;
-
- try
- {
- sal_Int32 nLeft = 0;
- mxModel->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( VBA_LEFT ) ) ) >>= nLeft;
- nResult = ConvertLogicToPixel( nLeft,
- sal_True, // Point
- sal_True, // X
- util::MeasureUnit::APPFONT );
- }
- catch ( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& e )
- {
- throw lang::WrappedTargetException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can not get position X!" ) ),
- uno::Reference< uno::XInterface >(),
- uno::makeAny( e ) );
- }
-
- return nResult;
+ return mxWindow->getPosSize().X;
}
//---------------------------------------------
void UserFormGeometryHelper::setLeft( double nLeft )
{
- try
- {
- mxModel->setPropertyValue(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( VBA_LEFT ) ),
- uno::makeAny( ConvertPixelToLogic( nLeft,
- sal_True, // Point
- sal_True, // X
- util::MeasureUnit::APPFONT ) ) );
- }
- catch ( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& e )
- {
- throw lang::WrappedTargetException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can not set position X!" ) ),
- uno::Reference< uno::XInterface >(),
- uno::makeAny( e ) );
- }
+ mxWindow->setPosSize( nLeft, mxWindow->getPosSize().Y, 0, 0, awt::PosSize::POS );
}
//---------------------------------------------
double UserFormGeometryHelper::getTop()
{
- double nResult = 0;
-
- try
- {
- sal_Int32 nTop = 0;
- mxModel->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( VBA_TOP ) ) ) >>= nTop;
- nResult = ConvertLogicToPixel( nTop,
- sal_True, // Point
- sal_False, // Y
- util::MeasureUnit::APPFONT );
- }
- catch ( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& e )
- {
- throw lang::WrappedTargetException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can not get position Y!" ) ),
- uno::Reference< uno::XInterface >(),
- uno::makeAny( e ) );
- }
-
- return nResult;
+ return mxWindow->getPosSize().Y;
}
//---------------------------------------------
void UserFormGeometryHelper::setTop( double nTop )
{
- try
- {
- mxModel->setPropertyValue(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( VBA_TOP ) ),
- uno::makeAny( ConvertPixelToLogic( nTop,
- sal_True, // Point
- sal_False, // Y
- util::MeasureUnit::APPFONT ) ) );
- }
- catch ( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& e )
- {
- throw lang::WrappedTargetException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can not set position X!" ) ),
- uno::Reference< uno::XInterface >(),
- uno::makeAny( e ) );
- }
+ mxWindow->setPosSize( mxWindow->getPosSize().X, nTop, 0, 0, awt::PosSize::POS );
}
//---------------------------------------------
double UserFormGeometryHelper::getWidth()
{
- double nResult = 0;
-
- try
+ if ( mbDialog )
{
- sal_Int32 nWidth = 0;
- mxModel->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( VBA_WIDTH ) ) ) >>= nWidth;
- nResult = ConvertLogicToPixel( nWidth,
- sal_False, // Size
- sal_True, // X
- util::MeasureUnit::APPFONT );
- }
- catch ( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& e )
- {
- throw lang::WrappedTargetException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can not get width!" ) ),
- uno::Reference< uno::XInterface >(),
- uno::makeAny( e ) );
+ const Window* pWindow = VCLUnoHelper::GetWindow( mxWindow );
+ if ( pWindow )
+ {
+ // get the size with decoration
+ Rectangle aResult = pWindow->GetWindowExtentsRelative( NULL );
+ return aResult.getWidth();
+ }
}
- return nResult;
+ return mxWindow->getPosSize().Width;
}
//---------------------------------------------
-void UserFormGeometryHelper::setWidth( double nWidth)
+void UserFormGeometryHelper::setWidth( double nWidth )
{
- try
- {
- mxModel->setPropertyValue(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( VBA_WIDTH ) ),
- uno::makeAny( ConvertPixelToLogic( nWidth,
- sal_False, // Size
- sal_True, // X
- util::MeasureUnit::APPFONT ) ) );
- }
- catch ( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& e )
+ sal_Int64 nNewWidth = nWidth;
+
+ if ( mbDialog )
{
- throw lang::WrappedTargetException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can not set width!" ) ),
- uno::Reference< uno::XInterface >(),
- uno::makeAny( e ) );
+ const Window* pWindow = VCLUnoHelper::GetWindow( mxWindow );
+ if ( pWindow )
+ {
+ // set the size with decoration
+ Rectangle aRDecor = pWindow->GetWindowExtentsRelative( NULL );
+ if ( !aRDecor.IsEmpty() )
+ {
+ sal_Int64 nDecor = aRDecor.getWidth();
+ sal_Int64 nUnDecor = mxWindow->getPosSize().Width;
+ if ( nWidth < nDecor - nUnDecor )
+ nUnDecor = nDecor - nWidth; // avoid negative size
+ nNewWidth = nWidth + nUnDecor - nDecor;
+ }
+ }
}
+
+ mxWindow->setPosSize( 0, 0, nNewWidth, 0, awt::PosSize::WIDTH );
}
//---------------------------------------------
double UserFormGeometryHelper::getHeight()
{
- double nResult = 0;
-
- try
+ if ( mbDialog )
{
- sal_Int32 nHeight = 0;
- mxModel->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( VBA_HEIGHT ) ) ) >>= nHeight;
- nResult = ConvertLogicToPixel( nHeight,
- sal_False, // Size
- sal_False, // Y
- util::MeasureUnit::APPFONT );
- }
- catch ( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& e )
- {
- throw lang::WrappedTargetException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can not get height!" ) ),
- uno::Reference< uno::XInterface >(),
- uno::makeAny( e ) );
+ const Window* pWindow = VCLUnoHelper::GetWindow( mxWindow );
+ if ( pWindow )
+ {
+ // get the size with decoration
+ Rectangle aResult = pWindow->GetWindowExtentsRelative( NULL );
+ return aResult.getHeight();
+ }
}
- return nResult;
+ return mxWindow->getPosSize().Height;
}
//---------------------------------------------
void UserFormGeometryHelper::setHeight( double nHeight )
{
- try
- {
- mxModel->setPropertyValue(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( VBA_HEIGHT ) ),
- uno::makeAny( ConvertPixelToLogic( nHeight,
- sal_False, // Size
- sal_False, // Y
- util::MeasureUnit::APPFONT ) ) );
- }
- catch ( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& e )
+ sal_Int64 nNewHeight = nHeight;
+ if ( mbDialog )
{
- throw lang::WrappedTargetException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can not set height!" ) ),
- uno::Reference< uno::XInterface >(),
- uno::makeAny( e ) );
+ const Window* pWindow = VCLUnoHelper::GetWindow( mxWindow );
+ if ( pWindow )
+ {
+ // set the size with decoration
+ Rectangle aRDecor = pWindow->GetWindowExtentsRelative( NULL );
+ if ( !aRDecor.IsEmpty() )
+ {
+ sal_Int64 nDecor = aRDecor.getHeight();
+ sal_Int64 nUnDecor = mxWindow->getPosSize().Height;
+ if ( nHeight < nDecor - nUnDecor )
+ nUnDecor = nDecor - nHeight; // avoid negative size
+ nNewHeight = nHeight + nUnDecor - nDecor;
+ }
+ }
}
+
+ mxWindow->setPosSize( 0, 0, 0, nNewHeight, awt::PosSize::HEIGHT );
}
// ============
diff --git a/xmloff/Library_xo.mk b/xmloff/Library_xo.mk
new file mode 100644
index 000000000000..2e335b4175c4
--- /dev/null
+++ b/xmloff/Library_xo.mk
@@ -0,0 +1,401 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,xo))
+
+$(eval $(call gb_Library_set_componentfile,xo,xmloff/util/xo))
+
+$(eval $(call gb_Library_add_package_headers,xo,xmloff_inc))
+
+$(eval $(call gb_Library_add_precompiled_header,xo,$(SRCDIR)/xmloff/inc/pch/precompiled_xmloff))
+
+$(eval $(call gb_Library_set_include,xo,\
+ $$(SOLARINC) \
+ -I. \
+ -I$(WORKDIR)/inc/ \
+ -I$(SRCDIR)/xmloff/inc \
+ -I$(SRCDIR)/xmloff/source/inc \
+ -I$(SRCDIR)/xmloff/inc/pch \
+ -I$(OUTDIR)/inc/offuh \
+ -I$(OUTDIR)/inc \
+))
+
+$(eval $(call gb_Library_set_defs,xo,\
+ $$(DEFS) \
+ -DXMLOFF_DLLIMPLEMENTATION \
+))
+
+$(eval $(call gb_Library_add_linked_libs,xo,\
+ basegfx \
+ comphelper \
+ cppu \
+ cppuhelper \
+ i18nisolang1 \
+ sal \
+ stl \
+ svl \
+ tl \
+ utl \
+ vos3 \
+))
+
+$(eval $(call gb_Library_add_exception_objects,xo,\
+ xmloff/source/chart/ColorPropertySet \
+ xmloff/source/chart/PropertyMaps \
+ xmloff/source/chart/SchXMLAutoStylePoolP \
+ xmloff/source/chart/SchXMLCalculationSettingsContext \
+ xmloff/source/chart/SchXMLChartContext \
+ xmloff/source/chart/SchXMLExport \
+ xmloff/source/chart/SchXMLImport \
+ xmloff/source/chart/SchXMLParagraphContext \
+ xmloff/source/chart/SchXMLPlotAreaContext \
+ xmloff/source/chart/SchXMLSeries2Context \
+ xmloff/source/chart/SchXMLSeriesHelper \
+ xmloff/source/chart/SchXMLTableContext \
+ xmloff/source/chart/SchXMLTextListContext \
+ xmloff/source/chart/SchXMLTools \
+ xmloff/source/chart/XMLAxisPositionPropertyHdl \
+ xmloff/source/chart/XMLChartPropertyContext \
+ xmloff/source/chart/XMLChartStyleContext \
+ xmloff/source/chart/XMLErrorBarStylePropertyHdl \
+ xmloff/source/chart/XMLErrorIndicatorPropertyHdl \
+ xmloff/source/chart/XMLLabelSeparatorContext \
+ xmloff/source/chart/XMLSymbolImageContext \
+ xmloff/source/chart/XMLSymbolTypePropertyHdl \
+ xmloff/source/chart/XMLTextOrientationHdl \
+ xmloff/source/chart/contexts \
+ xmloff/source/chart/transporttypes \
+ xmloff/source/core/DocumentSettingsContext \
+ xmloff/source/core/DomBuilderContext \
+ xmloff/source/core/DomExport \
+ xmloff/source/core/ProgressBarHelper \
+ xmloff/source/core/PropertySetMerger \
+ xmloff/source/core/RDFaExportHelper \
+ xmloff/source/core/RDFaImportHelper \
+ xmloff/source/core/SettingsExportHelper \
+ xmloff/source/core/XMLBase64Export \
+ xmloff/source/core/XMLBase64ImportContext \
+ xmloff/source/core/XMLBasicExportFilter \
+ xmloff/source/core/XMLEmbeddedObjectExportFilter \
+ xmloff/source/core/XMLEmbeddedObjectImportContext \
+ xmloff/source/core/attrlist \
+ xmloff/source/core/facreg \
+ xmloff/source/core/i18nmap \
+ xmloff/source/core/nmspmap \
+ xmloff/source/core/unoatrcn \
+ xmloff/source/core/unointerfacetouniqueidentifiermapper \
+ xmloff/source/core/xmlcnitm \
+ xmloff/source/core/xmlehelp \
+ xmloff/source/core/xmlerror \
+ xmloff/source/core/xmlexp \
+ xmloff/source/core/xmlictxt \
+ xmloff/source/core/xmlimp \
+ xmloff/source/core/xmltkmap \
+ xmloff/source/core/xmltoken \
+ xmloff/source/core/xmluconv \
+ xmloff/source/draw/EnhancedCustomShapeToken \
+ xmloff/source/draw/XMLGraphicsDefaultStyle \
+ xmloff/source/draw/XMLImageMapContext \
+ xmloff/source/draw/XMLImageMapExport \
+ xmloff/source/draw/XMLNumberStyles \
+ xmloff/source/draw/XMLReplacementImageContext \
+ xmloff/source/draw/XMLShapePropertySetContext \
+ xmloff/source/draw/XMLShapeStyleContext \
+ xmloff/source/draw/animationexport \
+ xmloff/source/draw/animationimport \
+ xmloff/source/draw/animexp \
+ xmloff/source/draw/animimp \
+ xmloff/source/draw/descriptionimp \
+ xmloff/source/draw/eventimp \
+ xmloff/source/draw/layerexp \
+ xmloff/source/draw/layerimp \
+ xmloff/source/draw/numithdl \
+ xmloff/source/draw/propimp0 \
+ xmloff/source/draw/sdpropls \
+ xmloff/source/draw/sdxmlexp \
+ xmloff/source/draw/sdxmlimp \
+ xmloff/source/draw/shapeexport \
+ xmloff/source/draw/shapeexport2 \
+ xmloff/source/draw/shapeexport3 \
+ xmloff/source/draw/shapeexport4 \
+ xmloff/source/draw/shapeimport \
+ xmloff/source/draw/viewcontext \
+ xmloff/source/draw/xexptran \
+ xmloff/source/draw/ximp3dobject \
+ xmloff/source/draw/ximp3dscene \
+ xmloff/source/draw/ximpbody \
+ xmloff/source/draw/ximpcustomshape \
+ xmloff/source/draw/ximpgrp \
+ xmloff/source/draw/ximplink \
+ xmloff/source/draw/ximpnote \
+ xmloff/source/draw/ximppage \
+ xmloff/source/draw/ximpshap \
+ xmloff/source/draw/ximpshow \
+ xmloff/source/draw/ximpstyl \
+ xmloff/source/forms/attriblistmerge \
+ xmloff/source/forms/controlelement \
+ xmloff/source/forms/controlpropertyhdl \
+ xmloff/source/forms/controlpropertymap \
+ xmloff/source/forms/elementexport \
+ xmloff/source/forms/elementimport \
+ xmloff/source/forms/eventexport \
+ xmloff/source/forms/eventimport \
+ xmloff/source/forms/formattributes \
+ xmloff/source/forms/formcellbinding \
+ xmloff/source/forms/formenums \
+ xmloff/source/forms/formevents \
+ xmloff/source/forms/formlayerexport \
+ xmloff/source/forms/formlayerimport \
+ xmloff/source/forms/formsimp \
+ xmloff/source/forms/formstyles \
+ xmloff/source/forms/gridcolumnproptranslator \
+ xmloff/source/forms/layerexport \
+ xmloff/source/forms/layerimport \
+ xmloff/source/forms/logging \
+ xmloff/source/forms/officeforms \
+ xmloff/source/forms/propertyexport \
+ xmloff/source/forms/propertyimport \
+ xmloff/source/forms/property_meta_data \
+ xmloff/source/forms/strings \
+ xmloff/source/forms/valueproperties \
+ xmloff/source/forms/handler/form_handler_factory \
+ xmloff/source/forms/handler/property_handler_base \
+ xmloff/source/forms/handler/vcl_date_handler \
+ xmloff/source/forms/handler/vcl_time_handler \
+ xmloff/source/meta/MetaExportComponent \
+ xmloff/source/meta/MetaImportComponent \
+ xmloff/source/meta/xmlmetae \
+ xmloff/source/meta/xmlmetai \
+ xmloff/source/meta/xmlversion \
+ xmloff/source/script/XMLEventExport \
+ xmloff/source/script/XMLEventImportHelper \
+ xmloff/source/script/XMLEventsImportContext \
+ xmloff/source/script/XMLScriptContextFactory \
+ xmloff/source/script/XMLScriptExportHandler \
+ xmloff/source/script/XMLStarBasicContextFactory \
+ xmloff/source/script/XMLStarBasicExportHandler \
+ xmloff/source/script/xmlbasici \
+ xmloff/source/script/xmlscripti \
+ xmloff/source/style/AttributeContainerHandler \
+ xmloff/source/style/DashStyle \
+ xmloff/source/style/DrawAspectHdl \
+ xmloff/source/style/EnumPropertyHdl \
+ xmloff/source/style/FillStyleContext \
+ xmloff/source/style/GradientStyle \
+ xmloff/source/style/HatchStyle \
+ xmloff/source/style/ImageStyle \
+ xmloff/source/style/MarkerStyle \
+ xmloff/source/style/MultiPropertySetHelper \
+ xmloff/source/style/NamedBoolPropertyHdl \
+ xmloff/source/style/PageHeaderFooterContext \
+ xmloff/source/style/PageMasterExportPropMapper \
+ xmloff/source/style/PageMasterImportContext \
+ xmloff/source/style/PageMasterImportPropMapper \
+ xmloff/source/style/PageMasterPropHdl \
+ xmloff/source/style/PageMasterPropHdlFactory \
+ xmloff/source/style/PageMasterPropMapper \
+ xmloff/source/style/PageMasterStyleMap \
+ xmloff/source/style/PagePropertySetContext \
+ xmloff/source/style/SinglePropertySetInfoCache \
+ xmloff/source/style/StyleMap \
+ xmloff/source/style/TransGradientStyle \
+ xmloff/source/style/VisAreaContext \
+ xmloff/source/style/VisAreaExport \
+ xmloff/source/style/WordWrapPropertyHdl \
+ xmloff/source/style/XMLBackgroundImageContext \
+ xmloff/source/style/XMLBackgroundImageExport \
+ xmloff/source/style/XMLBitmapLogicalSizePropertyHandler \
+ xmloff/source/style/XMLBitmapRepeatOffsetPropertyHandler \
+ xmloff/source/style/XMLClipPropertyHandler \
+ xmloff/source/style/XMLConstantsPropertyHandler \
+ xmloff/source/style/XMLElementPropertyContext \
+ xmloff/source/style/XMLFillBitmapSizePropertyHandler \
+ xmloff/source/style/XMLFontAutoStylePool \
+ xmloff/source/style/XMLFontStylesContext \
+ xmloff/source/style/XMLFootnoteSeparatorExport \
+ xmloff/source/style/XMLFootnoteSeparatorImport \
+ xmloff/source/style/XMLIsPercentagePropertyHandler \
+ xmloff/source/style/XMLPageExport \
+ xmloff/source/style/XMLPercentOrMeasurePropertyHandler \
+ xmloff/source/style/XMLRectangleMembersHandler \
+ xmloff/source/style/adjushdl \
+ xmloff/source/style/backhdl \
+ xmloff/source/style/bordrhdl \
+ xmloff/source/style/breakhdl \
+ xmloff/source/style/cdouthdl \
+ xmloff/source/style/chrhghdl \
+ xmloff/source/style/chrlohdl \
+ xmloff/source/style/csmaphdl \
+ xmloff/source/style/durationhdl \
+ xmloff/source/style/escphdl \
+ xmloff/source/style/fonthdl \
+ xmloff/source/style/impastp1 \
+ xmloff/source/style/impastp2 \
+ xmloff/source/style/impastp3 \
+ xmloff/source/style/impastp4 \
+ xmloff/source/style/kernihdl \
+ xmloff/source/style/lspachdl \
+ xmloff/source/style/numehelp \
+ xmloff/source/style/opaquhdl \
+ xmloff/source/style/postuhdl \
+ xmloff/source/style/prhdlfac \
+ xmloff/source/style/prstylei \
+ xmloff/source/style/shadwhdl \
+ xmloff/source/style/shdwdhdl \
+ xmloff/source/style/styleexp \
+ xmloff/source/style/tabsthdl \
+ xmloff/source/style/undlihdl \
+ xmloff/source/style/uniref \
+ xmloff/source/style/weighhdl \
+ xmloff/source/style/xmlaustp \
+ xmloff/source/style/xmlbahdl \
+ xmloff/source/style/xmlexppr \
+ xmloff/source/style/xmlimppr \
+ xmloff/source/style/xmlnume \
+ xmloff/source/style/xmlnumfe \
+ xmloff/source/style/xmlnumfi \
+ xmloff/source/style/xmlnumi \
+ xmloff/source/style/xmlprcon \
+ xmloff/source/style/xmlprhdl \
+ xmloff/source/style/xmlprmap \
+ xmloff/source/style/xmlstyle \
+ xmloff/source/style/xmltabe \
+ xmloff/source/style/xmltabi \
+ xmloff/source/table/XMLTableExport \
+ xmloff/source/table/XMLTableImport \
+ xmloff/source/text/XMLAutoMarkFileContext \
+ xmloff/source/text/XMLAutoTextContainerEventImport \
+ xmloff/source/text/XMLAutoTextEventExport \
+ xmloff/source/text/XMLAutoTextEventImport \
+ xmloff/source/text/XMLCalculationSettingsContext \
+ xmloff/source/text/XMLChangeElementImportContext \
+ xmloff/source/text/XMLChangeImportContext \
+ xmloff/source/text/XMLChangeInfoContext \
+ xmloff/source/text/XMLChangedRegionImportContext \
+ xmloff/source/text/XMLFootnoteBodyImportContext \
+ xmloff/source/text/XMLFootnoteConfigurationImportContext \
+ xmloff/source/text/XMLFootnoteImportContext \
+ xmloff/source/text/XMLIndexAlphabeticalSourceContext \
+ xmloff/source/text/XMLIndexBibliographyConfigurationContext \
+ xmloff/source/text/XMLIndexBibliographyEntryContext \
+ xmloff/source/text/XMLIndexBibliographySourceContext \
+ xmloff/source/text/XMLIndexBodyContext \
+ xmloff/source/text/XMLIndexChapterInfoEntryContext \
+ xmloff/source/text/XMLIndexIllustrationSourceContext \
+ xmloff/source/text/XMLIndexMarkExport \
+ xmloff/source/text/XMLIndexObjectSourceContext \
+ xmloff/source/text/XMLIndexSimpleEntryContext \
+ xmloff/source/text/XMLIndexSourceBaseContext \
+ xmloff/source/text/XMLIndexSpanEntryContext \
+ xmloff/source/text/XMLIndexTOCContext \
+ xmloff/source/text/XMLIndexTOCSourceContext \
+ xmloff/source/text/XMLIndexTOCStylesContext \
+ xmloff/source/text/XMLIndexTabStopEntryContext \
+ xmloff/source/text/XMLIndexTableSourceContext \
+ xmloff/source/text/XMLIndexTemplateContext \
+ xmloff/source/text/XMLIndexTitleTemplateContext \
+ xmloff/source/text/XMLIndexUserSourceContext \
+ xmloff/source/text/XMLLineNumberingExport \
+ xmloff/source/text/XMLLineNumberingImportContext \
+ xmloff/source/text/XMLLineNumberingSeparatorImportContext \
+ xmloff/source/text/XMLPropertyBackpatcher \
+ xmloff/source/text/XMLRedlineExport \
+ xmloff/source/text/XMLSectionExport \
+ xmloff/source/text/XMLSectionFootnoteConfigExport \
+ xmloff/source/text/XMLSectionFootnoteConfigImport \
+ xmloff/source/text/XMLSectionImportContext \
+ xmloff/source/text/XMLSectionSourceDDEImportContext \
+ xmloff/source/text/XMLSectionSourceImportContext \
+ xmloff/source/text/XMLStringBufferImportContext \
+ xmloff/source/text/XMLTextCharStyleNamesElementExport \
+ xmloff/source/text/XMLTextColumnsContext \
+ xmloff/source/text/XMLTextColumnsExport \
+ xmloff/source/text/XMLTextFrameContext \
+ xmloff/source/text/XMLTextFrameHyperlinkContext \
+ xmloff/source/text/XMLTextHeaderFooterContext \
+ xmloff/source/text/XMLTextListAutoStylePool \
+ xmloff/source/text/XMLTextListBlockContext \
+ xmloff/source/text/XMLTextListItemContext \
+ xmloff/source/text/XMLTextMarkImportContext \
+ xmloff/source/text/XMLTextMasterPageContext \
+ xmloff/source/text/XMLTextMasterPageExport \
+ xmloff/source/text/XMLTextMasterStylesContext \
+ xmloff/source/text/XMLTextNumRuleInfo \
+ xmloff/source/text/XMLTextPropertySetContext \
+ xmloff/source/text/XMLTextShapeImportHelper \
+ xmloff/source/text/XMLTextShapeStyleContext \
+ xmloff/source/text/XMLTextTableContext \
+ xmloff/source/text/XMLTrackedChangesImportContext \
+ xmloff/source/text/txtdrope \
+ xmloff/source/text/txtdropi \
+ xmloff/source/text/txtexppr \
+ xmloff/source/text/txtflde \
+ xmloff/source/text/txtfldi \
+ xmloff/source/text/txtftne \
+ xmloff/source/text/txtimp \
+ xmloff/source/text/txtimppr \
+ xmloff/source/text/txtlists \
+ xmloff/source/text/txtparae \
+ xmloff/source/text/txtparai \
+ xmloff/source/text/txtprhdl \
+ xmloff/source/text/txtprmap \
+ xmloff/source/text/txtsecte \
+ xmloff/source/text/txtstyle \
+ xmloff/source/text/txtstyli \
+ xmloff/source/text/txtvfldi \
+ xmloff/source/xforms/SchemaContext \
+ xmloff/source/xforms/SchemaRestrictionContext \
+ xmloff/source/xforms/SchemaSimpleTypeContext \
+ xmloff/source/xforms/TokenContext \
+ xmloff/source/xforms/XFormsBindContext \
+ xmloff/source/xforms/XFormsInstanceContext \
+ xmloff/source/xforms/XFormsModelContext \
+ xmloff/source/xforms/XFormsSubmissionContext \
+ xmloff/source/xforms/xformsapi \
+ xmloff/source/xforms/xformsexport \
+ xmloff/source/xforms/xformsimport \
+))
+
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Library_add_linked_libs,xo,\
+ dl \
+ icuuc \
+ m \
+ pthread \
+))
+endif
+
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_linked_libs,xo,\
+ kernel32 \
+ msvcrt \
+ oldnames \
+ user32 \
+ uwinapi \
+))
+endif
+# vim: set noet ts=4 sw=4:
diff --git a/xmloff/Library_xof.mk b/xmloff/Library_xof.mk
new file mode 100644
index 000000000000..6880eb1a1fd9
--- /dev/null
+++ b/xmloff/Library_xof.mk
@@ -0,0 +1,112 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,xof))
+
+$(eval $(call gb_Library_set_componentfile,xof,xmloff/source/transform/xof))
+
+$(eval $(call gb_Library_set_include,xof,\
+ -I$(SRCDIR)/xmloff/inc/pch \
+ -I$(SRCDIR)/xmloff/inc \
+ -I$(SRCDIR)/xmloff/source/inc \
+ -I$(WORKDIR)/inc/ \
+ $$(INCLUDE) \
+ -I$(OUTDIR)/inc \
+ -I$(OUTDIR)/inc/offuh \
+))
+
+$(eval $(call gb_Library_add_linked_libs,xof,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ sal \
+ salhelper \
+ stl \
+ xo \
+))
+
+$(eval $(call gb_Library_add_exception_objects,xof,\
+ xmloff/source/transform/ChartOASISTContext \
+ xmloff/source/transform/ChartOOoTContext \
+ xmloff/source/transform/ChartPlotAreaOASISTContext \
+ xmloff/source/transform/ChartPlotAreaOOoTContext \
+ xmloff/source/transform/ControlOASISTContext \
+ xmloff/source/transform/ControlOOoTContext \
+ xmloff/source/transform/CreateElemTContext \
+ xmloff/source/transform/DeepTContext \
+ xmloff/source/transform/DlgOASISTContext \
+ xmloff/source/transform/DocumentTContext \
+ xmloff/source/transform/EventMap \
+ xmloff/source/transform/EventOASISTContext \
+ xmloff/source/transform/EventOOoTContext \
+ xmloff/source/transform/FlatTContext \
+ xmloff/source/transform/FormPropOASISTContext \
+ xmloff/source/transform/FormPropOOoTContext \
+ xmloff/source/transform/FrameOASISTContext \
+ xmloff/source/transform/FrameOOoTContext \
+ xmloff/source/transform/IgnoreTContext \
+ xmloff/source/transform/MergeElemTContext \
+ xmloff/source/transform/MetaTContext \
+ xmloff/source/transform/MutableAttrList \
+ xmloff/source/transform/NotesTContext \
+ xmloff/source/transform/OOo2Oasis \
+ xmloff/source/transform/Oasis2OOo \
+ xmloff/source/transform/PersAttrListTContext \
+ xmloff/source/transform/PersMixedContentTContext \
+ xmloff/source/transform/ProcAddAttrTContext \
+ xmloff/source/transform/ProcAttrTContext \
+ xmloff/source/transform/PropertyActionsOASIS \
+ xmloff/source/transform/PropertyActionsOOo \
+ xmloff/source/transform/RenameElemTContext \
+ xmloff/source/transform/StyleOASISTContext \
+ xmloff/source/transform/StyleOOoTContext \
+ xmloff/source/transform/TransformerActions \
+ xmloff/source/transform/TransformerBase \
+ xmloff/source/transform/TransformerContext \
+ xmloff/source/transform/TransformerTokenMap \
+ xmloff/source/transform/XMLFilterRegistration \
+))
+
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Library_add_linked_libs,xof,\
+ icuuc \
+ dl \
+ m \
+ pthread \
+))
+endif
+
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_linked_libs,xof,\
+ kernel32 \
+ msvcrt \
+ oldnames \
+ user32 \
+ uwinapi \
+))
+endif
+# vim: set noet ts=4 sw=4:
diff --git a/xmloff/Makefile b/xmloff/Makefile
new file mode 100644
index 000000000000..a79aff831024
--- /dev/null
+++ b/xmloff/Makefile
@@ -0,0 +1,38 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+ifeq ($(strip $(SOLARENV)),)
+$(error No environment set!)
+endif
+
+gb_PARTIALBUILD := T
+GBUILDDIR := $(SOLARENV)/gbuild
+include $(GBUILDDIR)/gbuild.mk
+
+$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk)))
+
+# vim: set noet sw=4 ts=4:
diff --git a/xmloff/Module_xmloff.mk b/xmloff/Module_xmloff.mk
new file mode 100644
index 000000000000..eacc83068dad
--- /dev/null
+++ b/xmloff/Module_xmloff.mk
@@ -0,0 +1,40 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Module_Module,xmloff))
+
+$(eval $(call gb_Module_add_targets,xmloff,\
+ Library_xo \
+ Library_xof \
+ Package_dtd \
+ Package_inc \
+))
+
+#todo: map file
+#todo: xmlkywd.lib - built, but never used?!
+
+# vim: set noet ts=4 sw=4:
diff --git a/xmloff/Package_dtd.mk b/xmloff/Package_dtd.mk
new file mode 100644
index 000000000000..fbfbe4a1400d
--- /dev/null
+++ b/xmloff/Package_dtd.mk
@@ -0,0 +1,45 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Package_Package,xmloff_dtd,$(SRCDIR)/xmloff/dtd))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/Blocklist.dtd,Blocklist.dtd))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/chart.mod,chart.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/datastyl.mod,datastyl.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/defs.mod,defs.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/drawing.mod,drawing.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/dtypes.mod,dtypes.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/form.mod,form.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/meta.mod,meta.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/nmspace.mod,nmspace.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/office.dtd,office.dtd))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/office.mod,office.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/openoffice-2.0-schema.rng,openoffice-2.0-schema.rng))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/script.mod,script.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/settings.mod,settings.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/style.mod,style.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/table.mod,table.mod))
+$(eval $(call gb_Package_add_file,xmloff_dtd,bin/text.mod,text.mod))
diff --git a/xmloff/Package_inc.mk b/xmloff/Package_inc.mk
new file mode 100644
index 000000000000..ca2d0abe62e2
--- /dev/null
+++ b/xmloff/Package_inc.mk
@@ -0,0 +1,131 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Package_Package,xmloff_inc,$(SRCDIR)/xmloff/inc))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/DashStyle.hxx,xmloff/DashStyle.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/DocumentSettingsContext.hxx,xmloff/DocumentSettingsContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/EnumPropertyHdl.hxx,xmloff/EnumPropertyHdl.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/GradientStyle.hxx,xmloff/GradientStyle.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/HatchStyle.hxx,xmloff/HatchStyle.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/ImageStyle.hxx,xmloff/ImageStyle.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/MarkerStyle.hxx,xmloff/MarkerStyle.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/NamedBoolPropertyHdl.hxx,xmloff/NamedBoolPropertyHdl.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/PageMasterStyleMap.hxx,xmloff/PageMasterStyleMap.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/ProgressBarHelper.hxx,xmloff/ProgressBarHelper.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/PropertySetInfoHash.hxx,xmloff/PropertySetInfoHash.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/PropertySetInfoKey.hxx,xmloff/PropertySetInfoKey.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/SchXMLExportHelper.hxx,xmloff/SchXMLExportHelper.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/SchXMLImportHelper.hxx,xmloff/SchXMLImportHelper.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/SettingsExportHelper.hxx,xmloff/SettingsExportHelper.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/SinglePropertySetInfoCache.hxx,xmloff/SinglePropertySetInfoCache.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/VisAreaContext.hxx,xmloff/VisAreaContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/VisAreaExport.hxx,xmloff/VisAreaExport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/WordWrapPropertyHdl.hxx,xmloff/WordWrapPropertyHdl.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLBase64ImportContext.hxx,xmloff/XMLBase64ImportContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLCharContext.hxx,xmloff/XMLCharContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLConstantsPropertyHandler.hxx,xmloff/XMLConstantsPropertyHandler.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLEmbeddedObjectExportFilter.hxx,xmloff/XMLEmbeddedObjectExportFilter.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLEventExport.hxx,xmloff/XMLEventExport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLEventsImportContext.hxx,xmloff/XMLEventsImportContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLFilterServiceNames.h,xmloff/XMLFilterServiceNames.h))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLFontAutoStylePool.hxx,xmloff/XMLFontAutoStylePool.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLFontStylesContext.hxx,xmloff/XMLFontStylesContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLGraphicsDefaultStyle.hxx,xmloff/XMLGraphicsDefaultStyle.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLPageExport.hxx,xmloff/XMLPageExport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLSettingsExportContext.hxx,xmloff/XMLSettingsExportContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLShapeStyleContext.hxx,xmloff/XMLShapeStyleContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLStringVector.hxx,xmloff/XMLStringVector.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLTextListAutoStylePool.hxx,xmloff/XMLTextListAutoStylePool.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLTextMasterPageContext.hxx,xmloff/XMLTextMasterPageContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLTextMasterPageExport.hxx,xmloff/XMLTextMasterPageExport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLTextMasterStylesContext.hxx,xmloff/XMLTextMasterStylesContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLTextShapeImportHelper.hxx,xmloff/XMLTextShapeImportHelper.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLTextShapeImportHelper.hxx,xmloff/XMLTextShapeImportHelper.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLTextShapeStyleContext.hxx,xmloff/XMLTextShapeStyleContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/XMLTextTableContext.hxx,xmloff/XMLTextTableContext.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/animexp.hxx,xmloff/animexp.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/attrlist.hxx,xmloff/attrlist.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/contextid.hxx,xmloff/contextid.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/controlpropertyhdl.hxx,xmloff/controlpropertyhdl.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/dllapi.h,xmloff/dllapi.h))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/families.hxx,xmloff/families.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/formlayerexport.hxx,xmloff/formlayerexport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/formlayerimport.hxx,xmloff/formlayerimport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/formsimp.hxx,xmloff/formsimp.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/functional.hxx,xmloff/functional.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/i18nmap.hxx,xmloff/i18nmap.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/maptype.hxx,xmloff/maptype.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/nmspmap.hxx,xmloff/nmspmap.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/numehelp.hxx,xmloff/numehelp.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/odffields.hxx,xmloff/odffields.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/prhdlfac.hxx,xmloff/prhdlfac.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/prstylei.hxx,xmloff/prstylei.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/shapeexport.hxx,xmloff/shapeexport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/shapeimport.hxx,xmloff/shapeimport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/styleexp.hxx,xmloff/styleexp.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/table/XMLTableExport.hxx,xmloff/table/XMLTableExport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/table/XMLTableImport.hxx,xmloff/table/XMLTableImport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/txtimp.hxx,xmloff/txtimp.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/txtimppr.hxx,xmloff/txtimppr.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/txtparae.hxx,xmloff/txtparae.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/txtprmap.hxx,xmloff/txtprmap.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/txtstyle.hxx,xmloff/txtstyle.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/txtstyli.hxx,xmloff/txtstyli.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/uniref.hxx,xmloff/uniref.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/unoatrcn.hxx,xmloff/unoatrcn.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xformsexport.hxx,xmloff/xformsexport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xformsimport.hxx,xmloff/xformsimport.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlaustp.hxx,xmloff/xmlaustp.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlcnimp.hxx,xmloff/xmlcnimp.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlcnitm.hxx,xmloff/xmlcnitm.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlement.hxx,xmloff/xmlement.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlerror.hxx,xmloff/xmlerror.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlevent.hxx,xmloff/xmlevent.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlexp.hxx,xmloff/xmlexp.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlexppr.hxx,xmloff/xmlexppr.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlictxt.hxx,xmloff/xmlictxt.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlimp.hxx,xmloff/xmlimp.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlimppr.hxx,xmloff/xmlimppr.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlkywd.hxx,xmloff/xmlkywd.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlmetae.hxx,xmloff/xmlmetae.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlmetai.hxx,xmloff/xmlmetai.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlnmspe.hxx,xmloff/xmlnmspe.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlnume.hxx,xmloff/xmlnume.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlnumfe.hxx,xmloff/xmlnumfe.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlnumfi.hxx,xmloff/xmlnumfi.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlnumi.hxx,xmloff/xmlnumi.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlprcon.hxx,xmloff/xmlprcon.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlprhdl.hxx,xmloff/xmlprhdl.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlprmap.hxx,xmloff/xmlprmap.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlreg.hxx,xmloff/xmlreg.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlscripti.hxx,xmloff/xmlscripti.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmlstyle.hxx,xmloff/xmlstyle.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmltabe.hxx,xmloff/xmltabe.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmltkmap.hxx,xmloff/xmltkmap.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmltoken.hxx,xmloff/xmltoken.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmltypes.hxx,xmloff/xmltypes.hxx))
+$(eval $(call gb_Package_add_file,xmloff_inc,inc/xmloff/xmluconv.hxx,xmloff/xmluconv.hxx))
diff --git a/xmloff/inc/forms/form_handler_factory.hxx b/xmloff/inc/forms/form_handler_factory.hxx
new file mode 100755
index 000000000000..8752b8384fef
--- /dev/null
+++ b/xmloff/inc/forms/form_handler_factory.hxx
@@ -0,0 +1,50 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef XMLOFF_FORM_HANDLER_FACTORY_HXX
+#define XMLOFF_FORM_HANDLER_FACTORY_HXX
+
+#include "forms/property_handler.hxx"
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ //==================================================================================================================
+ //= FormHandlerFactory
+ //==================================================================================================================
+ class FormHandlerFactory
+ {
+ public:
+ static PPropertyHandler getFormPropertyHandler( const PropertyId i_propertyId );
+ };
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
+
+#endif // XMLOFF_FORM_HANDLER_FACTORY_HXX
diff --git a/xmloff/inc/forms/property_handler.hxx b/xmloff/inc/forms/property_handler.hxx
new file mode 100755
index 000000000000..d2675ba58ad0
--- /dev/null
+++ b/xmloff/inc/forms/property_handler.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef XMLOFF_PROPERTY_HANDLER_HXX
+#define XMLOFF_PROPERTY_HANDLER_HXX
+
+#include "forms/property_ids.hxx"
+
+#include <com/sun/star/uno/Any.hxx>
+
+#include <rtl/ref.hxx>
+
+#include <map>
+#include <vector>
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ typedef ::std::map< PropertyId, ::com::sun::star::uno::Any > PropertyValues;
+
+ //==================================================================================================================
+ //= IPropertyHandler
+ //==================================================================================================================
+ class IPropertyHandler : public ::rtl::IReference
+ {
+ public:
+ /** retrieves the XML attribute value for the given property values
+ */
+ virtual ::rtl::OUString
+ getAttributeValue( const PropertyValues& i_propertyValues ) const = 0;
+
+ /** is a convenience method for XML attributes whose value comprises of only one UNO API property
+ */
+ virtual ::rtl::OUString
+ getAttributeValue( const ::com::sun::star::uno::Any& i_propertyValue ) const = 0;
+
+ /** retrieves the values of the properties controlled by an XML attributed, described by a given attribute value
+ */
+ virtual bool
+ getPropertyValues( const ::rtl::OUString i_attributeValue, PropertyValues& o_propertyValues ) const = 0;
+
+ virtual ~IPropertyHandler() { }
+ };
+
+ //==================================================================================================================
+ //= PPropertyHandler
+ //==================================================================================================================
+ typedef ::rtl::Reference< IPropertyHandler > PPropertyHandler;
+
+ //==================================================================================================================
+ //= PropertyHandlerFactory
+ //==================================================================================================================
+ typedef PPropertyHandler (*PropertyHandlerFactory)( const PropertyId i_propertyId );
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
+
+#endif // XMLOFF_PROPERTY_HANDLER_HXX
diff --git a/xmloff/inc/forms/property_ids.hxx b/xmloff/inc/forms/property_ids.hxx
new file mode 100755
index 000000000000..31004f2d9ff2
--- /dev/null
+++ b/xmloff/inc/forms/property_ids.hxx
@@ -0,0 +1,56 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef XMLOFF_PROPERTY_IDS_HXX
+#define XMLOFF_PROPERTY_IDS_HXX
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ //==================================================================================================================
+ //= PropertyId
+ //==================================================================================================================
+ enum PropertyId
+ {
+ PID_DATE_MIN,
+ PID_DATE_MAX,
+ PID_DEFAULT_DATE,
+ PID_DATE,
+ PID_TIME_MIN,
+ PID_TIME_MAX,
+ PID_DEFAULT_TIME,
+ PID_TIME,
+
+ PID_INVALID
+ };
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
+
+#endif // XMLOFF_PROPERTY_IDS_HXX
diff --git a/xmloff/inc/functional.hxx b/xmloff/inc/functional.hxx
deleted file mode 100644
index 7bcbc5c3b210..000000000000
--- a/xmloff/inc/functional.hxx
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _XMLOFF_FUNCTIONAL_HXX
-#define _XMLOFF_FUNCTIONAL_HXX
-
-#include <rtl/ustring.hxx>
-
-/* THIS HEADER IS DEPRECATED. USE comphelper/stl_types.hxx INSTEAD!!! */
-
-/** @#file
- *
- * re-implement STL functors as needed
- *
- * The standard comparison operators from the STL cause warnings with
- * several compilers about our sal_Bool (=unsigned char) being
- * converted to bool (C++ bool). We wish to avoid that.
- */
-
-struct less_functor
-{
- bool operator()(const ::rtl::OUString& x,
- const ::rtl::OUString& y) const
- {
- return 0 != (x<y);
- }
-};
-
-
-#endif
diff --git a/xmloff/inc/makefile.mk b/xmloff/inc/makefile.mk
deleted file mode 100644
index db706e293088..000000000000
--- a/xmloff/inc/makefile.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME=xmloff
-TARGET=inc
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
-.IF "$(ENABLE_PCH)"!=""
-ALLTAR : \
- $(SLO)$/precompiled.pch \
- $(SLO)$/precompiled_ex.pch
-
-.ENDIF # "$(ENABLE_PCH)"!=""
-
diff --git a/xmloff/inc/txtflde.hxx b/xmloff/inc/txtflde.hxx
index 173ccb1696ed..190568c2ed1e 100644
--- a/xmloff/inc/txtflde.hxx
+++ b/xmloff/inc/txtflde.hxx
@@ -33,7 +33,7 @@
#define _XMLOFF_TXTFLDE_HXX
#include <com/sun/star/uno/Reference.h>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <rtl/ustring.hxx>
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/inc/DashStyle.hxx b/xmloff/inc/xmloff/DashStyle.hxx
index f6e39df1d122..f6e39df1d122 100644
--- a/xmloff/inc/DashStyle.hxx
+++ b/xmloff/inc/xmloff/DashStyle.hxx
diff --git a/xmloff/inc/GradientStyle.hxx b/xmloff/inc/xmloff/GradientStyle.hxx
index f4a2fd474225..f4a2fd474225 100644
--- a/xmloff/inc/GradientStyle.hxx
+++ b/xmloff/inc/xmloff/GradientStyle.hxx
diff --git a/xmloff/inc/HatchStyle.hxx b/xmloff/inc/xmloff/HatchStyle.hxx
index 49d7296c3766..49d7296c3766 100644
--- a/xmloff/inc/HatchStyle.hxx
+++ b/xmloff/inc/xmloff/HatchStyle.hxx
diff --git a/xmloff/inc/ImageStyle.hxx b/xmloff/inc/xmloff/ImageStyle.hxx
index 704cc6eec37b..704cc6eec37b 100644
--- a/xmloff/inc/ImageStyle.hxx
+++ b/xmloff/inc/xmloff/ImageStyle.hxx
diff --git a/xmloff/inc/MarkerStyle.hxx b/xmloff/inc/xmloff/MarkerStyle.hxx
index 5d2111ece2e3..5d2111ece2e3 100644
--- a/xmloff/inc/MarkerStyle.hxx
+++ b/xmloff/inc/xmloff/MarkerStyle.hxx
diff --git a/xmloff/inc/VisAreaContext.hxx b/xmloff/inc/xmloff/VisAreaContext.hxx
index 80a0e8c75659..80a0e8c75659 100644
--- a/xmloff/inc/VisAreaContext.hxx
+++ b/xmloff/inc/xmloff/VisAreaContext.hxx
diff --git a/xmloff/inc/VisAreaExport.hxx b/xmloff/inc/xmloff/VisAreaExport.hxx
index 5b8206387435..5b8206387435 100644
--- a/xmloff/inc/VisAreaExport.hxx
+++ b/xmloff/inc/xmloff/VisAreaExport.hxx
diff --git a/xmloff/inc/XMLEmbeddedObjectExportFilter.hxx b/xmloff/inc/xmloff/XMLEmbeddedObjectExportFilter.hxx
index 179f74112dfe..179f74112dfe 100644
--- a/xmloff/inc/XMLEmbeddedObjectExportFilter.hxx
+++ b/xmloff/inc/xmloff/XMLEmbeddedObjectExportFilter.hxx
diff --git a/xmloff/inc/XMLFilterServiceNames.h b/xmloff/inc/xmloff/XMLFilterServiceNames.h
index 525143cd2b09..525143cd2b09 100644
--- a/xmloff/inc/XMLFilterServiceNames.h
+++ b/xmloff/inc/xmloff/XMLFilterServiceNames.h
diff --git a/xmloff/inc/XMLTextListAutoStylePool.hxx b/xmloff/inc/xmloff/XMLTextListAutoStylePool.hxx
index 0b3e631ae095..0b3e631ae095 100644
--- a/xmloff/inc/XMLTextListAutoStylePool.hxx
+++ b/xmloff/inc/xmloff/XMLTextListAutoStylePool.hxx
diff --git a/xmloff/source/text/XMLTextShapeImportHelper.hxx b/xmloff/inc/xmloff/XMLTextShapeImportHelper.hxx
index 96c17334dfcd..96c17334dfcd 100644
--- a/xmloff/source/text/XMLTextShapeImportHelper.hxx
+++ b/xmloff/inc/xmloff/XMLTextShapeImportHelper.hxx
diff --git a/xmloff/inc/xmloff/functional.hxx b/xmloff/inc/xmloff/functional.hxx
new file mode 100644
index 000000000000..7928930f07fe
--- /dev/null
+++ b/xmloff/inc/xmloff/functional.hxx
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _XMLOFF_FUNCTIONAL_HXX
+#define _XMLOFF_FUNCTIONAL_HXX
+
+#include <rtl/ustring.hxx>
+
+/* THIS HEADER IS DEPRECATED. USE comphelper/stl_types.hxx INSTEAD!!! */
+
+/** @#file
+ *
+ * re-implement STL functors as needed
+ *
+ * The standard comparison operators from the STL cause warnings with
+ * several compilers about our sal_Bool (=unsigned char) being
+ * converted to bool (C++ bool). We wish to avoid that.
+ */
+
+struct less_functor
+{
+ bool operator()(const ::rtl::OUString& x,
+ const ::rtl::OUString& y) const
+ {
+ return 0 != (x<y);
+ }
+};
+
+
+#endif
diff --git a/xmloff/inc/i18nmap.hxx b/xmloff/inc/xmloff/i18nmap.hxx
index 331c8bc5a758..331c8bc5a758 100644
--- a/xmloff/inc/i18nmap.hxx
+++ b/xmloff/inc/xmloff/i18nmap.hxx
diff --git a/xmloff/inc/numehelp.hxx b/xmloff/inc/xmloff/numehelp.hxx
index bf0b6d6c6113..bf0b6d6c6113 100644
--- a/xmloff/inc/numehelp.hxx
+++ b/xmloff/inc/xmloff/numehelp.hxx
diff --git a/xmloff/inc/xmloff/txtimp.hxx b/xmloff/inc/xmloff/txtimp.hxx
index 75310d90f0ae..20be794308a3 100644
--- a/xmloff/inc/xmloff/txtimp.hxx
+++ b/xmloff/inc/xmloff/txtimp.hxx
@@ -40,7 +40,7 @@
#include <tools/list.hxx>
#include <xmloff/xmltkmap.hxx>
-// functional.hxx is obsolete and should be replaced by its comphelper
+// xmloff/functional.hxx is obsolete and should be replaced by its comphelper
// counterpart
#include <comphelper/stl_types.hxx>
#include <xmloff/uniref.hxx>
diff --git a/xmloff/inc/txtimppr.hxx b/xmloff/inc/xmloff/txtimppr.hxx
index ca2446a01352..ca2446a01352 100644
--- a/xmloff/inc/txtimppr.hxx
+++ b/xmloff/inc/xmloff/txtimppr.hxx
diff --git a/xmloff/inc/unoatrcn.hxx b/xmloff/inc/xmloff/unoatrcn.hxx
index 250eb2670f88..250eb2670f88 100644
--- a/xmloff/inc/unoatrcn.hxx
+++ b/xmloff/inc/xmloff/unoatrcn.hxx
diff --git a/xmloff/inc/xformsexport.hxx b/xmloff/inc/xmloff/xformsexport.hxx
index 4ee7ac107f88..4ee7ac107f88 100644
--- a/xmloff/inc/xformsexport.hxx
+++ b/xmloff/inc/xmloff/xformsexport.hxx
diff --git a/xmloff/inc/xformsimport.hxx b/xmloff/inc/xmloff/xformsimport.hxx
index 2626c07927d5..2626c07927d5 100644
--- a/xmloff/inc/xformsimport.hxx
+++ b/xmloff/inc/xmloff/xformsimport.hxx
diff --git a/xmloff/inc/xmlcnitm.hxx b/xmloff/inc/xmloff/xmlcnitm.hxx
index 120b9491ae33..120b9491ae33 100644
--- a/xmloff/inc/xmlcnitm.hxx
+++ b/xmloff/inc/xmloff/xmlcnitm.hxx
diff --git a/xmloff/inc/xmlerror.hxx b/xmloff/inc/xmloff/xmlerror.hxx
index 407ef6b3666d..407ef6b3666d 100644
--- a/xmloff/inc/xmlerror.hxx
+++ b/xmloff/inc/xmloff/xmlerror.hxx
diff --git a/xmloff/inc/xmloff/xmlkywd.hxx b/xmloff/inc/xmloff/xmlkywd.hxx
new file mode 100644
index 000000000000..bce52d875b52
--- /dev/null
+++ b/xmloff/inc/xmloff/xmlkywd.hxx
@@ -0,0 +1,1998 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _XMLOFF_XMLKYWD_HXX
+#define _XMLOFF_XMLKYWD_HXX
+
+#include <tools/string.hxx>
+
+/*
+ * THIS FILE IS DEPRECATED. IT IS SUPERSEDED BY XMLTOKEN.HXX.
+ *
+ * Please use xmltoken.hxx / xmltoken.cxx from now on.
+ */
+
+
+/* if XML_DEFINE_KEYWORDS is defined the variables are
+ defined rather than declared. So this file MUST be included
+ WITHOUT this define.
+
+ (Except the xmlkywd.cxx file that actually defines the
+ variables which sets this define.)
+ */
+
+#ifndef XML_DEFINE_KEYWORDS
+#define XML_CONSTASCII_ACTION( n, s ) extern sal_Char __FAR_DATA n[sizeof(s)]
+#else
+#define XML_CONSTASCII_ACTION( n, s ) sal_Char __FAR_DATA n[sizeof(s)] = s
+#endif
+
+// common XML
+XML_CONSTASCII_ACTION( sXML_CDATA, "CDATA" );
+XML_CONSTASCII_ACTION( sXML_WS, " " );
+XML_CONSTASCII_ACTION( sXML_xml, "xml" );
+XML_CONSTASCII_ACTION( sXML_xmlns, "xmlns" );
+XML_CONSTASCII_ACTION( sXML_xml_pi, "version=\"1.0\" encoding=\"UTF-8\"" );
+XML_CONSTASCII_ACTION( sXML_xml_doctype_prefix, "<!DOCTYPE " );
+XML_CONSTASCII_ACTION( sXML_xml_doctype_suffix, " PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"office.dtd\">" );
+
+// namespace prefixes and names
+XML_CONSTASCII_ACTION( sXML_np_office, "office" );
+XML_CONSTASCII_ACTION( sXML_n_office, "http://openoffice.org/2000/office" );
+XML_CONSTASCII_ACTION( sXML_n_office_old, "http://sun.com/xmlns/staroffice/office" );
+XML_CONSTASCII_ACTION( sXML_np_meta, "meta" );
+XML_CONSTASCII_ACTION( sXML_n_meta, "http://openoffice.org/2000/meta" );
+XML_CONSTASCII_ACTION( sXML_n_meta_old, "http://sun.com/xmlns/staroffice/meta" );
+XML_CONSTASCII_ACTION( sXML_np_style, "style" );
+XML_CONSTASCII_ACTION( sXML_n_style, "http://openoffice.org/2000/style" );
+XML_CONSTASCII_ACTION( sXML_n_style_old, "http://sun.com/xmlns/staroffice/style" );
+XML_CONSTASCII_ACTION( sXML_np_number, "number" );
+XML_CONSTASCII_ACTION( sXML_n_number, "http://openoffice.org/2000/datastyle" );
+XML_CONSTASCII_ACTION( sXML_n_number_old, "http://sun.com/xmlns/staroffice/number" );
+XML_CONSTASCII_ACTION( sXML_np_text, "text" );
+XML_CONSTASCII_ACTION( sXML_n_text, "http://openoffice.org/2000/text" );
+XML_CONSTASCII_ACTION( sXML_n_text_old, "http://sun.com/xmlns/staroffice/text" );
+XML_CONSTASCII_ACTION( sXML_np_table, "table" );
+XML_CONSTASCII_ACTION( sXML_n_table, "http://openoffice.org/2000/table" );
+XML_CONSTASCII_ACTION( sXML_n_table_old, "http://sun.com/xmlns/staroffice/table" );
+XML_CONSTASCII_ACTION( sXML_np_draw, "draw" );
+XML_CONSTASCII_ACTION( sXML_n_draw, "http://openoffice.org/2000/drawing" );
+XML_CONSTASCII_ACTION( sXML_np_dr3d, "dr3d" );
+XML_CONSTASCII_ACTION( sXML_n_dr3d, "http://openoffice.org/2000/dr3d" );
+XML_CONSTASCII_ACTION( sXML_n_draw_old, "http://sun.com/xmlns/staroffice/draw" );
+XML_CONSTASCII_ACTION( sXML_np_presentation, "presentation" );
+XML_CONSTASCII_ACTION( sXML_n_presentation, "http://openoffice.org/2000/presentation" );
+XML_CONSTASCII_ACTION( sXML_n_presentation_old, "http://sun.com/xmlns/staroffice/presentation" );
+XML_CONSTASCII_ACTION( sXML_np_chart, "chart" );
+XML_CONSTASCII_ACTION( sXML_n_chart, "http://openoffice.org/2000/chart" );
+XML_CONSTASCII_ACTION( sXML_np_config, "config" );
+XML_CONSTASCII_ACTION( sXML_n_config, "http://openoffice.org/2001/config" );
+XML_CONSTASCII_ACTION( sXML_n_chart_old, "http://sun.com/xmlns/staroffice/chart" );
+XML_CONSTASCII_ACTION( sXML_np_fo, "fo" );
+XML_CONSTASCII_ACTION( sXML_n_fo_old, "http://www.w3.org/1999/XSL/Format/" );
+XML_CONSTASCII_ACTION( sXML_n_fo, "http://www.w3.org/1999/XSL/Format" );
+XML_CONSTASCII_ACTION( sXML_np_xlink, "xlink" );
+XML_CONSTASCII_ACTION( sXML_n_xlink, "http://www.w3.org/1999/xlink" );
+XML_CONSTASCII_ACTION( sXML_n_xlink_old, "http://www.w3.org/1999/xlink/namespace" );
+XML_CONSTASCII_ACTION( sXML_np_dc, "dc" );
+XML_CONSTASCII_ACTION( sXML_n_dc, "http://purl.org/dc/elements/1.1/" );
+XML_CONSTASCII_ACTION( sXML_np_svg, "svg" );
+XML_CONSTASCII_ACTION( sXML_n_svg, "http://www.w3.org/2000/svg" );
+XML_CONSTASCII_ACTION( sXML_namespace_form, "form" );
+XML_CONSTASCII_ACTION( sXML_url_form, "http://openoffice.org/2000/form" );
+XML_CONSTASCII_ACTION( sXML_namespace_script, "script" );
+XML_CONSTASCII_ACTION( sXML_url_script, "http://openoffice.org/2000/script" );
+
+XML_CONSTASCII_ACTION( sXML_np_block_list, "block-list");
+XML_CONSTASCII_ACTION( sXML_n_block_list, "http://openoffice.org/2001/block-list" );
+
+XML_CONSTASCII_ACTION( sXML_np_math, "math");
+XML_CONSTASCII_ACTION( sXML_n_math, "http://www.w3.org/1998/Math/MathML" );
+
+XML_CONSTASCII_ACTION( sXML_np_versions_list, "VL");
+XML_CONSTASCII_ACTION( sXML_n_versions_list, "http://openoffice.org/2001/versions-list" );
+
+// units
+XML_CONSTASCII_ACTION( sXML_unit_mm, "mm" );
+XML_CONSTASCII_ACTION( sXML_unit_m, "m" );
+XML_CONSTASCII_ACTION( sXML_unit_km, "km" );
+XML_CONSTASCII_ACTION( sXML_unit_cm, "cm" );
+XML_CONSTASCII_ACTION( sXML_unit_pt, "pt" );
+XML_CONSTASCII_ACTION( sXML_unit_pc, "pc" );
+XML_CONSTASCII_ACTION( sXML_unit_foot, "ft" );
+XML_CONSTASCII_ACTION( sXML_unit_miles, "mi" );
+XML_CONSTASCII_ACTION( sXML_unit_inch, "inch" );
+
+// any other
+XML_CONSTASCII_ACTION( sXML_1, "1" );
+XML_CONSTASCII_ACTION( sXML_10, "10" );
+XML_CONSTASCII_ACTION( sXML_2, "2" );
+XML_CONSTASCII_ACTION( sXML_3, "3" );
+XML_CONSTASCII_ACTION( sXML_4, "4" );
+XML_CONSTASCII_ACTION( sXML_5, "5" );
+XML_CONSTASCII_ACTION( sXML_6, "6" );
+XML_CONSTASCII_ACTION( sXML_7, "7" );
+XML_CONSTASCII_ACTION( sXML_8, "8" );
+XML_CONSTASCII_ACTION( sXML_9, "9" );
+XML_CONSTASCII_ACTION( sXML_A, "A" );
+XML_CONSTASCII_ACTION( sXML_I, "I" );
+XML_CONSTASCII_ACTION( sXML_IBM437, "IBM437" );
+XML_CONSTASCII_ACTION( sXML_IBM850, "IBM850" );
+XML_CONSTASCII_ACTION( sXML_IBM860, "IBM860" );
+XML_CONSTASCII_ACTION( sXML_IBM861, "IBM861" );
+XML_CONSTASCII_ACTION( sXML_IBM863, "IBM863" );
+XML_CONSTASCII_ACTION( sXML_IBM865, "IBM865" );
+XML_CONSTASCII_ACTION( sXML_ISO_8859_1, "ISO-8859-1" );
+XML_CONSTASCII_ACTION( sXML_OLE2, "ole2" );
+XML_CONSTASCII_ACTION( sXML__colon, ":" );
+XML_CONSTASCII_ACTION( sXML__empty, "" );
+XML_CONSTASCII_ACTION( sXML__unknown_, "_unknown_" );
+XML_CONSTASCII_ACTION( sXML_a, "a" );
+XML_CONSTASCII_ACTION( sXML_abbreviated_name, "abbreviated-name" );
+XML_CONSTASCII_ACTION( sXML_above, "above" );
+XML_CONSTASCII_ACTION( sXML_abs, "abs" );
+XML_CONSTASCII_ACTION( sXML_accent, "accent" );
+XML_CONSTASCII_ACTION( sXML_accentunder, "accentunder" );
+XML_CONSTASCII_ACTION( sXML_acceptance_state, "acceptance-state" );
+XML_CONSTASCII_ACTION( sXML_accepted, "accepted" );
+XML_CONSTASCII_ACTION( sXML_action, "action" );
+XML_CONSTASCII_ACTION( sXML_active, "active" );
+XML_CONSTASCII_ACTION( sXML_active_split_range, "active-split-range" );
+XML_CONSTASCII_ACTION( sXML_active_table, "active-table" );
+XML_CONSTASCII_ACTION( sXML_actuate, "actuate" );
+XML_CONSTASCII_ACTION( sXML_add_in, "add-in" );
+XML_CONSTASCII_ACTION( sXML_add_in_name, "add-in-name" );
+XML_CONSTASCII_ACTION( sXML_address, "address" );
+XML_CONSTASCII_ACTION( sXML_adjustment, "adjustment" );
+XML_CONSTASCII_ACTION( sXML_algorithm, "algorithm" );
+XML_CONSTASCII_ACTION( sXML_align, "align" );
+XML_CONSTASCII_ACTION( sXML_all, "all" );
+XML_CONSTASCII_ACTION( sXML_allow_empty_cell, "allow-empty-cell" );
+XML_CONSTASCII_ACTION( sXML_alphabetical_index, "alphabetical-index" );
+XML_CONSTASCII_ACTION( sXML_alphabetical_index_auto_mark_file, "alphabetical-index-auto-mark-file" );
+XML_CONSTASCII_ACTION( sXML_alphabetical_index_entry_template, "alphabetical-index-entry-template" );
+XML_CONSTASCII_ACTION( sXML_alphabetical_index_mark, "alphabetical-index-mark" );
+XML_CONSTASCII_ACTION( sXML_alphabetical_index_mark_end, "alphabetical-index-mark-end" );
+XML_CONSTASCII_ACTION( sXML_alphabetical_index_mark_start, "alphabetical-index-mark-start" );
+XML_CONSTASCII_ACTION( sXML_alphabetical_index_source, "alphabetical-index-source" );
+XML_CONSTASCII_ACTION( sXML_alphabetical_separators, "alphabetical-separators" );
+XML_CONSTASCII_ACTION( sXML_alternate, "alternate" );
+XML_CONSTASCII_ACTION( sXML_am_pm, "am-pm" );
+XML_CONSTASCII_ACTION( sXML_ambient_color, "ambient-color");
+XML_CONSTASCII_ACTION( sXML_anchor_page_number, "anchor-page-number" );
+XML_CONSTASCII_ACTION( sXML_anchor_type, "anchor-type" );
+XML_CONSTASCII_ACTION( sXML_and, "and" );
+XML_CONSTASCII_ACTION( sXML_animation, "animation" );
+XML_CONSTASCII_ACTION( sXML_animation_direction, "animation-direction" );
+XML_CONSTASCII_ACTION( sXML_animation_start_inside, "animation-start-inside" );
+XML_CONSTASCII_ACTION( sXML_animation_stop_inside, "animation-stop-inside" );
+XML_CONSTASCII_ACTION( sXML_animation_repeat, "animation-repeat" );
+XML_CONSTASCII_ACTION( sXML_animation_delay, "animation-delay" );
+XML_CONSTASCII_ACTION( sXML_animation_steps, "animation-steps" );
+XML_CONSTASCII_ACTION( sXML_annotation, "annotation" );
+XML_CONSTASCII_ACTION( sXML_annotations, "annotations" );
+XML_CONSTASCII_ACTION( sXML_annote, "annote" );
+XML_CONSTASCII_ACTION( sXML_applet, "applet");
+XML_CONSTASCII_ACTION( sXML_applet_name, "applet-name");
+XML_CONSTASCII_ACTION( sXML_application_data, "application-data");
+XML_CONSTASCII_ACTION( sXML_application_xml, "application-xml");
+XML_CONSTASCII_ACTION( sXML_apply, "apply" );
+XML_CONSTASCII_ACTION( sXML_apply_style_name, "apply-style-name" );
+XML_CONSTASCII_ACTION( sXML_aqua, "aqua" );
+XML_CONSTASCII_ACTION( sXML_arccos, "arccos" );
+XML_CONSTASCII_ACTION( sXML_archive, "archive" );
+XML_CONSTASCII_ACTION( sXML_arcsin, "arcsin" );
+XML_CONSTASCII_ACTION( sXML_arctan, "arctan" );
+XML_CONSTASCII_ACTION( sXML_area, "area" );
+XML_CONSTASCII_ACTION( sXML_area_circle, "area-circle" );
+XML_CONSTASCII_ACTION( sXML_area_polygon, "area-polygon" );
+XML_CONSTASCII_ACTION( sXML_area_rectangle, "area-rectangle" );
+XML_CONSTASCII_ACTION( sXML_article, "article" );
+XML_CONSTASCII_ACTION( sXML_as_char, "as-char" );
+XML_CONSTASCII_ACTION( sXML_ascending, "ascending");
+XML_CONSTASCII_ACTION( sXML_attached_axis, "attached-axis" );
+XML_CONSTASCII_ACTION( sXML_attractive, "attractive");
+XML_CONSTASCII_ACTION( sXML_author, "author" );
+XML_CONSTASCII_ACTION( sXML_author_initials, "author-initials" );
+XML_CONSTASCII_ACTION( sXML_author_name, "author-name" );
+XML_CONSTASCII_ACTION( sXML_auto, "auto" );
+XML_CONSTASCII_ACTION( sXML_auto_grow_height, "auto-grow-height" );
+XML_CONSTASCII_ACTION( sXML_auto_grow_width, "auto-grow-width" );
+XML_CONSTASCII_ACTION( sXML_auto_reload, "auto-reload" );
+XML_CONSTASCII_ACTION( sXML_auto_text, "auto-text" );
+XML_CONSTASCII_ACTION( sXML_auto_text_events, "auto-text-events" );
+XML_CONSTASCII_ACTION( sXML_auto_text_group, "auto-text-group" );
+XML_CONSTASCII_ACTION( sXML_auto_text_indent, "auto-text-indent" );
+XML_CONSTASCII_ACTION( sXML_up, "up" );
+XML_CONSTASCII_ACTION( sXML_auto_update, "auto-update" );
+XML_CONSTASCII_ACTION( sXML_automatic, "automatic");
+XML_CONSTASCII_ACTION( sXML_automatic_find_labels, "automatic-find-labels" );
+XML_CONSTASCII_ACTION( sXML_automatic_order, "automatic-order" );
+XML_CONSTASCII_ACTION( sXML_automatic_styles, "automatic-styles" );
+XML_CONSTASCII_ACTION( sXML_automatic_update, "automatic-update" );
+XML_CONSTASCII_ACTION( sXML_average, "average" );
+XML_CONSTASCII_ACTION( sXML_axis, "axis" );
+XML_CONSTASCII_ACTION( sXML_back_scale, "back-scale" );
+XML_CONSTASCII_ACTION( sXML_backface_culling, "backface-culling" );
+XML_CONSTASCII_ACTION( sXML_background, "background" );
+XML_CONSTASCII_ACTION( sXML_background_color, "background-color" );
+XML_CONSTASCII_ACTION( sXML_background_image, "background-image" );
+XML_CONSTASCII_ACTION( sXML_background_no_repeat, "no-repeat" );
+XML_CONSTASCII_ACTION( sXML_background_objects_visible, "background-objects-visible" );
+XML_CONSTASCII_ACTION( sXML_background_repeat, "repeat" );
+XML_CONSTASCII_ACTION( sXML_background_stretch, "stretch" );
+XML_CONSTASCII_ACTION( sXML_background_visible, "background-visible" );
+XML_CONSTASCII_ACTION( sXML_bar, "bar" );
+XML_CONSTASCII_ACTION( sXML_base64Binary, "base64Binary");
+XML_CONSTASCII_ACTION( sXML_base_cell_address, "base-cell-address");
+XML_CONSTASCII_ACTION( sXML_baseline, "baseline" );
+XML_CONSTASCII_ACTION( sXML_before_date_time, "before-date-time" );
+XML_CONSTASCII_ACTION( sXML_below , "below" );
+XML_CONSTASCII_ACTION( sXML_between_date_times, "between-date-times" );
+XML_CONSTASCII_ACTION( sXML_bevel , "bevel" );
+XML_CONSTASCII_ACTION( sXML_bibiliographic_type, "bibiliographic-type" );
+XML_CONSTASCII_ACTION( sXML_bibliography, "bibliography" );
+XML_CONSTASCII_ACTION( sXML_bibliography_configuration, "bibliography-configuration" );
+XML_CONSTASCII_ACTION( sXML_bibliography_data_field, "bibliography-data-field" );
+XML_CONSTASCII_ACTION( sXML_bibliography_entry_template, "bibliography-entry-template" );
+XML_CONSTASCII_ACTION( sXML_bibliography_mark, "bibliography-mark" );
+XML_CONSTASCII_ACTION( sXML_bibliography_source, "bibliography-source" );
+XML_CONSTASCII_ACTION( sXML_bibliography_type, "bibliography-type" );
+XML_CONSTASCII_ACTION( sXML_bind_styles_to_content, "bind-styles-to-content");
+XML_CONSTASCII_ACTION( sXML_bitmap , "bitmap" );
+XML_CONSTASCII_ACTION( sXML_black, "black" );
+XML_CONSTASCII_ACTION( sXML_blend, "blend" );
+XML_CONSTASCII_ACTION( sXML_blinking, "blinking" );
+XML_CONSTASCII_ACTION( sXML_block, "block" );
+XML_CONSTASCII_ACTION( sXML_block_list, "block-list" );
+XML_CONSTASCII_ACTION( sXML_blue , "blue" );
+XML_CONSTASCII_ACTION( sXML_body, "body" );
+XML_CONSTASCII_ACTION( sXML_bold, "bold" );
+XML_CONSTASCII_ACTION( sXML_book, "book" );
+XML_CONSTASCII_ACTION( sXML_booklet, "booklet" );
+XML_CONSTASCII_ACTION( sXML_bookmark, "bookmark" );
+XML_CONSTASCII_ACTION( sXML_bookmark_end, "bookmark-end" );
+XML_CONSTASCII_ACTION( sXML_bookmark_ref, "bookmark-ref" );
+XML_CONSTASCII_ACTION( sXML_bookmark_start, "bookmark-start" );
+XML_CONSTASCII_ACTION( sXML_booktitle, "booktitle" );
+XML_CONSTASCII_ACTION( sXML_boolean, "boolean");
+XML_CONSTASCII_ACTION( sXML_boolean_style, "boolean-style" );
+XML_CONSTASCII_ACTION( sXML_boolean_value, "boolean-value");
+XML_CONSTASCII_ACTION( sXML_border, "border" );
+XML_CONSTASCII_ACTION( sXML_border_bottom, "border-bottom" );
+XML_CONSTASCII_ACTION( sXML_border_color, "border-color" );
+XML_CONSTASCII_ACTION( sXML_border_left, "border-left" );
+XML_CONSTASCII_ACTION( sXML_border_line_width, "border-line-width" );
+XML_CONSTASCII_ACTION( sXML_border_line_width_bottom, "border-line-width-bottom" );
+XML_CONSTASCII_ACTION( sXML_border_line_width_left, "border-line-width-left" );
+XML_CONSTASCII_ACTION( sXML_border_line_width_right, "border-line-width-right" );
+XML_CONSTASCII_ACTION( sXML_border_line_width_top, "border-line-width-top" );
+XML_CONSTASCII_ACTION( sXML_border_right, "border-right" );
+XML_CONSTASCII_ACTION( sXML_border_top, "border-top" );
+XML_CONSTASCII_ACTION( sXML_both, "both");
+XML_CONSTASCII_ACTION( sXML_bottom, "bottom" );
+XML_CONSTASCII_ACTION( sXML_bottom_percent, "bottom percent");
+XML_CONSTASCII_ACTION( sXML_bottom_values, "bottom values");
+XML_CONSTASCII_ACTION( sXML_break_after, "break-after" );
+XML_CONSTASCII_ACTION( sXML_break_before, "break-before" );
+XML_CONSTASCII_ACTION( sXML_break_inside, "break-inside" );
+XML_CONSTASCII_ACTION( sXML_bubble, "bubble" );
+XML_CONSTASCII_ACTION( sXML_bullet_char, "bullet-char" );
+XML_CONSTASCII_ACTION( sXML_bullet_relative_size, "bullet-relative-size" );
+XML_CONSTASCII_ACTION( sXML_buttons, "buttons");
+XML_CONSTASCII_ACTION( sXML_bvar, "bvar");
+XML_CONSTASCII_ACTION( sXML_c, "c" );
+XML_CONSTASCII_ACTION( sXML_cm, "cm" );
+XML_CONSTASCII_ACTION( sXML_calculation_settings, "calculation-settings" );
+XML_CONSTASCII_ACTION( sXML_calendar, "calendar" );
+XML_CONSTASCII_ACTION( sXML_capitalize_entries, "capitalize-entries" );
+XML_CONSTASCII_ACTION( sXML_caption, "caption" );
+XML_CONSTASCII_ACTION( sXML_caption_point_x, "caption-point-x" );
+XML_CONSTASCII_ACTION( sXML_caption_point_y, "caption-point-y" );
+XML_CONSTASCII_ACTION( sXML_caption_sequence_format, "caption-sequence-format" );
+XML_CONSTASCII_ACTION( sXML_caption_sequence_name, "caption-sequence-name" );
+XML_CONSTASCII_ACTION( sXML_case_sensitive, "case-sensitive");
+XML_CONSTASCII_ACTION( sXML_casemap_capitalize, "capitalize" );
+XML_CONSTASCII_ACTION( sXML_casemap_lowercase, "lowercase" );
+XML_CONSTASCII_ACTION( sXML_casemap_normal, "normal" );
+XML_CONSTASCII_ACTION( sXML_casemap_small_caps, "small-caps" );
+XML_CONSTASCII_ACTION( sXML_casemap_uppercase, "uppercase" );
+XML_CONSTASCII_ACTION( sXML_categories, "categories" );
+XML_CONSTASCII_ACTION( sXML_category, "category" );
+XML_CONSTASCII_ACTION( sXML_category_and_value, "category-and-value" );
+XML_CONSTASCII_ACTION( sXML_cell_address, "cell-address");
+XML_CONSTASCII_ACTION( sXML_cell_content_change, "cell-content-change");
+XML_CONSTASCII_ACTION( sXML_cell_content_deletion, "cell-content-deletion");
+XML_CONSTASCII_ACTION( sXML_cell_count, "cell-count");
+XML_CONSTASCII_ACTION( sXML_cell_protect, "cell-protect");
+XML_CONSTASCII_ACTION( sXML_cell_range_address, "cell-range-address");
+XML_CONSTASCII_ACTION( sXML_cell_range_address_list, "cell-range-address-list");
+XML_CONSTASCII_ACTION( sXML_cell_range_source, "cell-range-source");
+XML_CONSTASCII_ACTION( sXML_center, "center" );
+XML_CONSTASCII_ACTION( sXML_chain_next_name, "chain-next-name" );
+XML_CONSTASCII_ACTION( sXML_change, "change" );
+XML_CONSTASCII_ACTION( sXML_change_deletion, "change-deletion" );
+XML_CONSTASCII_ACTION( sXML_change_end, "change-end" );
+XML_CONSTASCII_ACTION( sXML_change_id, "change-id" );
+XML_CONSTASCII_ACTION( sXML_change_info, "change-info" );
+XML_CONSTASCII_ACTION( sXML_change_start, "change-start" );
+XML_CONSTASCII_ACTION( sXML_change_track_table_cell, "change-track-table-cell" );
+XML_CONSTASCII_ACTION( sXML_change_view_conditions, "change-view-conditions" );
+XML_CONSTASCII_ACTION( sXML_change_view_settings, "change-view-settings" );
+XML_CONSTASCII_ACTION( sXML_changed_region, "changed-region" );
+XML_CONSTASCII_ACTION( sXML_chapter, "chapter");
+XML_CONSTASCII_ACTION( sXML_char, "char" );
+XML_CONSTASCII_ACTION( sXML_character_count, "character-count" );
+XML_CONSTASCII_ACTION( sXML_chart, "chart" );
+XML_CONSTASCII_ACTION( sXML_charts, "charts" );
+XML_CONSTASCII_ACTION( sXML_chg_author, "chg-author" );
+XML_CONSTASCII_ACTION( sXML_chg_comment, "chg-comment" );
+XML_CONSTASCII_ACTION( sXML_chg_date_time, "chg-date-time" );
+XML_CONSTASCII_ACTION( sXML_ci, "ci" );
+XML_CONSTASCII_ACTION( sXML_circle, "circle" );
+XML_CONSTASCII_ACTION( sXML_citation_body_style_name, "citation-body-style-name" );
+XML_CONSTASCII_ACTION( sXML_citation_style_name, "citation-style-name" );
+XML_CONSTASCII_ACTION( sXML_class, "class" );
+XML_CONSTASCII_ACTION( sXML_class_id, "class-id" );
+XML_CONSTASCII_ACTION( sXML_clip, "clip" );
+XML_CONSTASCII_ACTION( sXML_clockwise, "clockwise" );
+XML_CONSTASCII_ACTION( sXML_close, "close" );
+XML_CONSTASCII_ACTION( sXML_close_horizontal, "close-horizontal" );
+XML_CONSTASCII_ACTION( sXML_close_vertical, "close-vertical" );
+XML_CONSTASCII_ACTION( sXML_cn, "cn" );
+XML_CONSTASCII_ACTION( sXML_code, "code" );
+XML_CONSTASCII_ACTION( sXML_codebase, "codebase" );
+XML_CONSTASCII_ACTION( sXML_collapse, "collapse" );
+XML_CONSTASCII_ACTION( sXML_color, "color" );
+XML_CONSTASCII_ACTION( sXML_color_inversion , "color-inversion" );
+XML_CONSTASCII_ACTION( sXML_color_mode , "color-mode" );
+XML_CONSTASCII_ACTION( sXML_column, "column" );
+XML_CONSTASCII_ACTION( sXML_column_count, "column-count" );
+XML_CONSTASCII_ACTION( sXML_column_gap, "column-gap" );
+XML_CONSTASCII_ACTION( sXML_column_name, "column-name" );
+XML_CONSTASCII_ACTION( sXML_column_sep, "column-sep" );
+XML_CONSTASCII_ACTION( sXML_column_width, "column-width" );
+XML_CONSTASCII_ACTION( sXML_columns, "columns" );
+XML_CONSTASCII_ACTION( sXML_columnsplit_auto, "auto" );
+XML_CONSTASCII_ACTION( sXML_columnsplit_avoid, "avoid" );
+XML_CONSTASCII_ACTION( sXML_combine_entries, "combine-entries" );
+XML_CONSTASCII_ACTION( sXML_combine_entries_with_dash, "combine-entries-with-dash" );
+XML_CONSTASCII_ACTION( sXML_combine_entries_with_pp, "combine-entries-with-pp" );
+XML_CONSTASCII_ACTION( sXML_comma_separated, "comma-separated" );
+XML_CONSTASCII_ACTION( sXML_command, "command" );
+XML_CONSTASCII_ACTION( sXML_comment, "comment" );
+XML_CONSTASCII_ACTION( sXML_compose, "compose" );
+XML_CONSTASCII_ACTION( sXML_cond_style_name, "cond-style-name" );
+XML_CONSTASCII_ACTION( sXML_condition, "condition" );
+XML_CONSTASCII_ACTION( sXML_condition_source, "condition-source");
+XML_CONSTASCII_ACTION( sXML_condition_source_range_address, "condition-source-range-address");
+XML_CONSTASCII_ACTION( sXML_conditional_text, "conditional-text" );
+XML_CONSTASCII_ACTION( sXML_cone, "cone" );
+XML_CONSTASCII_ACTION( sXML_conference, "conference" );
+XML_CONSTASCII_ACTION( sXML_config_item, "config-item" );
+XML_CONSTASCII_ACTION( sXML_config_item_map_indexed, "config-item-map-indexed" );
+XML_CONSTASCII_ACTION( sXML_config_item_map_named, "config-item-map-named" );
+XML_CONSTASCII_ACTION( sXML_config_item_map_entry, "config-item-map-entry" );
+XML_CONSTASCII_ACTION( sXML_config_item_set, "config-item-set" );
+XML_CONSTASCII_ACTION( sXML_configuration_settings, "configuration-settings" );
+XML_CONSTASCII_ACTION( sXML_conjugate, "conjugate" );
+XML_CONSTASCII_ACTION( sXML_connect_bars, "connect-bars" );
+XML_CONSTASCII_ACTION( sXML_connection_name, "connection-name" );
+XML_CONSTASCII_ACTION( sXML_connector, "connector" );
+XML_CONSTASCII_ACTION( sXML_consecutive_numbering, "consecutive-numbering" );
+XML_CONSTASCII_ACTION( sXML_consolidation, "consolidation" );
+XML_CONSTASCII_ACTION( sXML_constant, "constant" );
+XML_CONSTASCII_ACTION( sXML_contains_error, "contains-error");
+XML_CONSTASCII_ACTION( sXML_contains_header, "contains-header");
+XML_CONSTASCII_ACTION( sXML_content, "content" );
+XML_CONSTASCII_ACTION( sXML_content_validation, "content-validation");
+XML_CONSTASCII_ACTION( sXML_content_validation_name, "validation-name");
+XML_CONSTASCII_ACTION( sXML_content_validations, "content-validations");
+XML_CONSTASCII_ACTION( sXML_continue, "continue" );
+XML_CONSTASCII_ACTION( sXML_continue_numbering, "continue-numbering" );
+XML_CONSTASCII_ACTION( sXML_contour_path, "contour-path" );
+XML_CONSTASCII_ACTION( sXML_contour_polygon, "contour-polygon" );
+XML_CONSTASCII_ACTION( sXML_contrast , "contrast" );
+XML_CONSTASCII_ACTION( sXML_control, "control" );
+XML_CONSTASCII_ACTION( sXML_conversion_mode, "conversion-mode" );
+XML_CONSTASCII_ACTION( sXML_copy_back, "copy-back" );
+XML_CONSTASCII_ACTION( sXML_copy_formulas, "copy-formulas" );
+XML_CONSTASCII_ACTION( sXML_copy_outline_levels, "copy-outline-levels" );
+XML_CONSTASCII_ACTION( sXML_copy_results_only, "copy-results-only" );
+XML_CONSTASCII_ACTION( sXML_copy_styles, "copy-styles" );
+XML_CONSTASCII_ACTION( sXML_corner_radius , "corner-radius" );
+XML_CONSTASCII_ACTION( sXML_correct, "correct");
+XML_CONSTASCII_ACTION( sXML_cos, "cos" );
+XML_CONSTASCII_ACTION( sXML_cosh, "cosh" );
+XML_CONSTASCII_ACTION( sXML_cot, "cot" );
+XML_CONSTASCII_ACTION( sXML_coth, "coth" );
+XML_CONSTASCII_ACTION( sXML_count, "count" );
+XML_CONSTASCII_ACTION( sXML_count_empty_lines, "count-empty-lines" );
+XML_CONSTASCII_ACTION( sXML_count_in_floating_frames, "count-in-floating-frames" );
+XML_CONSTASCII_ACTION( sXML_counterclockwise, "counterclockwise" );
+XML_CONSTASCII_ACTION( sXML_countnums, "countnums" );
+XML_CONSTASCII_ACTION( sXML_country, "country" );
+XML_CONSTASCII_ACTION( sXML_country_asian, "country-asian" );
+XML_CONSTASCII_ACTION( sXML_country_complex, "country-complex" );
+XML_CONSTASCII_ACTION( sXML_covered_table_cell, "covered-table-cell" );
+XML_CONSTASCII_ACTION( sXML_create_date, "create-date" );
+XML_CONSTASCII_ACTION( sXML_create_date_string, "create-date-string" );
+XML_CONSTASCII_ACTION( sXML_creation_date, "creation-date" );
+XML_CONSTASCII_ACTION( sXML_creation_time, "creation-time" );
+XML_CONSTASCII_ACTION( sXML_creator, "creator" );
+XML_CONSTASCII_ACTION( sXML_crossedout_cross, "X" );
+XML_CONSTASCII_ACTION( sXML_crossedout_double, "double-line" );
+XML_CONSTASCII_ACTION( sXML_crossedout_none, "none" );
+XML_CONSTASCII_ACTION( sXML_crossedout_single, "single-line" );
+XML_CONSTASCII_ACTION( sXML_crossedout_slash, "slash" );
+XML_CONSTASCII_ACTION( sXML_crossedout_thick, "thick-line" );
+XML_CONSTASCII_ACTION( sXML_csc, "csc" );
+XML_CONSTASCII_ACTION( sXML_csch, "csch" );
+XML_CONSTASCII_ACTION( sXML_cube, "cube" );
+XML_CONSTASCII_ACTION( sXML_cuboid, "cuboid" );
+XML_CONSTASCII_ACTION( sXML_currency, "currency");
+XML_CONSTASCII_ACTION( sXML_currency_style, "currency-style" );
+XML_CONSTASCII_ACTION( sXML_currency_symbol, "currency-symbol" );
+XML_CONSTASCII_ACTION( sXML_current, "current" );
+XML_CONSTASCII_ACTION( sXML_current_value, "current-value" );
+XML_CONSTASCII_ACTION( sXML_cursor_position, "cursor-position" );
+XML_CONSTASCII_ACTION( sXML_cursor_position_x, "cursor-position-x" );
+XML_CONSTASCII_ACTION( sXML_cursor_position_y, "cursor-position-y" );
+XML_CONSTASCII_ACTION( sXML_custom1, "custom1" );
+XML_CONSTASCII_ACTION( sXML_custom2, "custom2" );
+XML_CONSTASCII_ACTION( sXML_custom3, "custom3" );
+XML_CONSTASCII_ACTION( sXML_custom4, "custom4" );
+XML_CONSTASCII_ACTION( sXML_custom5, "custom5" );
+XML_CONSTASCII_ACTION( sXML_cut_offs, "cut_offs" );
+XML_CONSTASCII_ACTION( sXML_cx, "cx" );
+XML_CONSTASCII_ACTION( sXML_cy, "cy" );
+XML_CONSTASCII_ACTION( sXML_cylinder, "cylinder" );
+XML_CONSTASCII_ACTION( sXML_d, "d" );
+XML_CONSTASCII_ACTION( sXML_dash, "dash" );
+XML_CONSTASCII_ACTION( sXML_dashed, "dashed" );
+XML_CONSTASCII_ACTION( sXML_data, "data");
+XML_CONSTASCII_ACTION( sXML_data_cell_range_address, "data-cell-range-address" );
+XML_CONSTASCII_ACTION( sXML_data_label_number, "data-label-number" );
+XML_CONSTASCII_ACTION( sXML_data_label_symbol, "data-label-symbol" );
+XML_CONSTASCII_ACTION( sXML_data_label_text, "data-label-text" );
+XML_CONSTASCII_ACTION( sXML_data_pilot_field, "data-pilot-field");
+XML_CONSTASCII_ACTION( sXML_data_pilot_level, "data-pilot-level");
+XML_CONSTASCII_ACTION( sXML_data_pilot_member, "data-pilot-member");
+XML_CONSTASCII_ACTION( sXML_data_pilot_members, "data-pilot-members");
+XML_CONSTASCII_ACTION( sXML_data_pilot_subtotal, "data-pilot-subtotal");
+XML_CONSTASCII_ACTION( sXML_data_pilot_subtotals, "data-pilot-subtotals");
+XML_CONSTASCII_ACTION( sXML_data_pilot_table, "data-pilot-table");
+XML_CONSTASCII_ACTION( sXML_data_pilot_tables, "data-pilot-tables");
+XML_CONSTASCII_ACTION( sXML_data_point, "data-point" );
+XML_CONSTASCII_ACTION( sXML_data_style, "data-style" );
+XML_CONSTASCII_ACTION( sXML_data_style_name, "data-style-name" );
+XML_CONSTASCII_ACTION( sXML_data_type, "data-type");
+XML_CONSTASCII_ACTION( sXML_database_display, "database-display" );
+XML_CONSTASCII_ACTION( sXML_database_name, "database-name");
+XML_CONSTASCII_ACTION( sXML_database_next, "database-next" );
+XML_CONSTASCII_ACTION( sXML_database_range, "database-range");
+XML_CONSTASCII_ACTION( sXML_database_ranges, "database-ranges");
+XML_CONSTASCII_ACTION( sXML_database_row_number, "database-row-number" );
+XML_CONSTASCII_ACTION( sXML_database_select, "database-select" );
+XML_CONSTASCII_ACTION( sXML_database_source_query, "database-source-query");
+XML_CONSTASCII_ACTION( sXML_database_source_sql, "database-source-sql");
+XML_CONSTASCII_ACTION( sXML_database_source_table, "database-source-table");
+XML_CONSTASCII_ACTION( sXML_date, "date" );
+XML_CONSTASCII_ACTION( sXML_datetime, "datetime" );
+XML_CONSTASCII_ACTION( sXML_date_adjust, "date-adjust" );
+XML_CONSTASCII_ACTION( sXML_date_style, "date-style" );
+XML_CONSTASCII_ACTION( sXML_date_time, "date-time" );
+XML_CONSTASCII_ACTION( sXML_date_value, "date-value");
+XML_CONSTASCII_ACTION( sXML_day, "day" );
+XML_CONSTASCII_ACTION( sXML_day_of_week, "day-of-week" );
+XML_CONSTASCII_ACTION( sXML_dde_application, "dde-application" );
+XML_CONSTASCII_ACTION( sXML_dde_connection, "dde-connection" );
+XML_CONSTASCII_ACTION( sXML_dde_connection_decl, "dde-connection-decl" );
+XML_CONSTASCII_ACTION( sXML_dde_connection_decls, "dde-connection-decls" );
+XML_CONSTASCII_ACTION( sXML_dde_item, "dde-item" );
+XML_CONSTASCII_ACTION( sXML_dde_link, "dde-link" );
+XML_CONSTASCII_ACTION( sXML_dde_links, "dde-links" );
+XML_CONSTASCII_ACTION( sXML_dde_source, "dde-source" );
+XML_CONSTASCII_ACTION( sXML_dde_topic, "dde-topic" );
+XML_CONSTASCII_ACTION( sXML_decimal_places, "decimal-places" );
+XML_CONSTASCII_ACTION( sXML_decimal_replacement, "decimal-replacement" );
+XML_CONSTASCII_ACTION( sXML_declare, "declare" );
+XML_CONSTASCII_ACTION( sXML_decorate_words_only, "decorate-words-only" );
+XML_CONSTASCII_ACTION( sXML_decorative, "decorative" );
+XML_CONSTASCII_ACTION( sXML_deep, "deep" );
+XML_CONSTASCII_ACTION( sXML_default, "default" );
+XML_CONSTASCII_ACTION( sXML_default_cell_style_name, "default-cell-style-name" );
+XML_CONSTASCII_ACTION( sXML_default_style, "default-style" );
+XML_CONSTASCII_ACTION( sXML_default_style_name, "default-style-name" );
+XML_CONSTASCII_ACTION( sXML_degree, "degree" );
+XML_CONSTASCII_ACTION( sXML_delay, "delay" );
+XML_CONSTASCII_ACTION( sXML_deletion, "deletion" );
+XML_CONSTASCII_ACTION( sXML_deletions, "deletions" );
+XML_CONSTASCII_ACTION( sXML_depth, "depth" );
+XML_CONSTASCII_ACTION( sXML_desc, "desc" );
+XML_CONSTASCII_ACTION( sXML_descending, "descending");
+XML_CONSTASCII_ACTION( sXML_description, "description" );
+XML_CONSTASCII_ACTION( sXML_detective, "detective" );
+XML_CONSTASCII_ACTION( sXML_determinant, "determinant" );
+XML_CONSTASCII_ACTION( sXML_diff, "diff");
+XML_CONSTASCII_ACTION( sXML_diffuse_color, "diffuse-color" );
+XML_CONSTASCII_ACTION( sXML_dependences, "dependences");
+XML_CONSTASCII_ACTION( sXML_dependence, "dependence");
+XML_CONSTASCII_ACTION( sXML_direction, "direction");
+XML_CONSTASCII_ACTION( sXML_disabled, "disabled" );
+XML_CONSTASCII_ACTION( sXML_disc, "disc" );
+XML_CONSTASCII_ACTION( sXML_display, "display" );
+XML_CONSTASCII_ACTION( sXML_display_border, "display-border");
+XML_CONSTASCII_ACTION( sXML_display_details, "display-details");
+XML_CONSTASCII_ACTION( sXML_display_duplicates, "display-duplicates");
+XML_CONSTASCII_ACTION( sXML_display_empty, "display-empty");
+XML_CONSTASCII_ACTION( sXML_display_filter_buttons, "display-filter-buttons");
+XML_CONSTASCII_ACTION( sXML_display_formula, "display-formula" );
+XML_CONSTASCII_ACTION( sXML_display_label, "display-label" );
+XML_CONSTASCII_ACTION( sXML_display_levels, "display-levels" );
+XML_CONSTASCII_ACTION( sXML_display_name, "display-name" );
+XML_CONSTASCII_ACTION( sXML_display_outline_level, "display-outline-level" );
+XML_CONSTASCII_ACTION( sXML_dissolve, "dissolve" );
+XML_CONSTASCII_ACTION( sXML_distance, "distance" );
+XML_CONSTASCII_ACTION( sXML_distribute_letter, "distribute-letter" );
+XML_CONSTASCII_ACTION( sXML_distribute_space, "distribute-space" );
+XML_CONSTASCII_ACTION( sXML_divide, "divide" );
+XML_CONSTASCII_ACTION( sXML_document, "document" );
+XML_CONSTASCII_ACTION( sXML_document_content, "document-content" );
+XML_CONSTASCII_ACTION( sXML_document_meta, "document-meta" );
+XML_CONSTASCII_ACTION( sXML_document_settings, "document-settings" );
+XML_CONSTASCII_ACTION( sXML_document_styles, "document-styles" );
+XML_CONSTASCII_ACTION( sXML_document_statistic, "document-statistic" );
+XML_CONSTASCII_ACTION( sXML_domain, "domain" );
+XML_CONSTASCII_ACTION( sXML_dot, "dot" );
+XML_CONSTASCII_ACTION( sXML_dotted, "dotted" );
+XML_CONSTASCII_ACTION( sXML_double, "double" );
+XML_CONSTASCII_ACTION( sXML_double_sided, "double-sided" );
+XML_CONSTASCII_ACTION( sXML_down, "down" );
+XML_CONSTASCII_ACTION( sXML_draft, "draft");
+XML_CONSTASCII_ACTION( sXML_draw, "draw" );
+XML_CONSTASCII_ACTION( sXML_draw_aspect, "ole-draw-aspect" );
+XML_CONSTASCII_ACTION( sXML_drawing, "drawing" );
+XML_CONSTASCII_ACTION( sXML_drawings, "drawings" );
+XML_CONSTASCII_ACTION( sXML_drawpool , "drawpool" );
+XML_CONSTASCII_ACTION( sXML_drop_cap, "drop-cap" );
+XML_CONSTASCII_ACTION( sXML_dynamic, "dynamic" );
+XML_CONSTASCII_ACTION( sXML_edge_rounding, "edge-rounding" );
+XML_CONSTASCII_ACTION( sXML_editable, "editable" );
+XML_CONSTASCII_ACTION( sXML_editing_cycles, "editing-cycles" );
+XML_CONSTASCII_ACTION( sXML_editing_duration, "editing-duration" );
+XML_CONSTASCII_ACTION( sXML_edition, "edition" );
+XML_CONSTASCII_ACTION( sXML_editor, "editor" );
+XML_CONSTASCII_ACTION( sXML_ellipse , "ellipse" );
+XML_CONSTASCII_ACTION( sXML_email, "email" );
+XML_CONSTASCII_ACTION( sXML_embed, "embed" );
+XML_CONSTASCII_ACTION( sXML_embedded_visible_area, "embedded-visible-area" );
+XML_CONSTASCII_ACTION( sXML_embossed, "embossed" );
+XML_CONSTASCII_ACTION( sXML_emissive_color, "emissive-color" );
+XML_CONSTASCII_ACTION( sXML_empty, "empty");
+XML_CONSTASCII_ACTION( sXML_enabled, "enabled" );
+XML_CONSTASCII_ACTION( sXML_encoding, "encoding" );
+XML_CONSTASCII_ACTION( sXML_end, "end" );
+XML_CONSTASCII_ACTION( sXML_end_angle, "end-angle" );
+XML_CONSTASCII_ACTION( sXML_end_cell_address, "end-cell-address" );
+XML_CONSTASCII_ACTION( sXML_end_color, "end-color" );
+XML_CONSTASCII_ACTION( sXML_end_column, "end-column" );
+XML_CONSTASCII_ACTION( sXML_end_intensity, "end-intensity" );
+XML_CONSTASCII_ACTION( sXML_end_position, "end-position" );
+XML_CONSTASCII_ACTION( sXML_end_row, "end-row" );
+XML_CONSTASCII_ACTION( sXML_end_table, "end-table" );
+XML_CONSTASCII_ACTION( sXML_end_x, "end-x" );
+XML_CONSTASCII_ACTION( sXML_end_y, "end-y" );
+XML_CONSTASCII_ACTION( sXML_endless, "endless" );
+XML_CONSTASCII_ACTION( sXML_endnote, "endnote" );
+XML_CONSTASCII_ACTION( sXML_endnote_body, "endnote-body" );
+XML_CONSTASCII_ACTION( sXML_endnote_citation, "endnote-citation" );
+XML_CONSTASCII_ACTION( sXML_endnote_ref, "endnote-ref" );
+XML_CONSTASCII_ACTION( sXML_endnotes_configuration, "endnotes-configuration");
+XML_CONSTASCII_ACTION( sXML_engraved, "engraved" );
+XML_CONSTASCII_ACTION( sXML_eq, "eq");
+XML_CONSTASCII_ACTION( sXML_equal_author, "equal-author");
+XML_CONSTASCII_ACTION( sXML_equal_comment, "equal-comment");
+XML_CONSTASCII_ACTION( sXML_equal_date, "equal-date");
+XML_CONSTASCII_ACTION( sXML_era, "era" );
+XML_CONSTASCII_ACTION( sXML_ergo_sum, "ergo-sum" );
+XML_CONSTASCII_ACTION( sXML_error_category, "error-category" );
+XML_CONSTASCII_ACTION( sXML_error_lower_indicator, "error-lower-indicator" );
+XML_CONSTASCII_ACTION( sXML_error_lower_limit, "error-lower-limit" );
+XML_CONSTASCII_ACTION( sXML_error_macro, "error-macro" );
+XML_CONSTASCII_ACTION( sXML_error_margin, "error-margin" );
+XML_CONSTASCII_ACTION( sXML_error_message, "error-message" );
+XML_CONSTASCII_ACTION( sXML_error_percentage, "error-percentage" );
+XML_CONSTASCII_ACTION( sXML_error_upper_indicator, "error-upper-indicator" );
+XML_CONSTASCII_ACTION( sXML_error_upper_limit, "error-upper-limit" );
+XML_CONSTASCII_ACTION( sXML_escapement_sub, "sub" );
+XML_CONSTASCII_ACTION( sXML_escapement_super, "super" );
+XML_CONSTASCII_ACTION( sXML_even_page, "even-page" );
+XML_CONSTASCII_ACTION( sXML_event, "event" );
+XML_CONSTASCII_ACTION( sXML_event_name, "event-name" );
+XML_CONSTASCII_ACTION( sXML_events, "events" );
+XML_CONSTASCII_ACTION( sXML_execute, "execute" );
+XML_CONSTASCII_ACTION( sXML_execute_macro, "execute-macro" );
+XML_CONSTASCII_ACTION( sXML_exists, "exists" );
+XML_CONSTASCII_ACTION( sXML_exp, "exp" );
+XML_CONSTASCII_ACTION( sXML_exponential, "exponential" );
+XML_CONSTASCII_ACTION( sXML_expression, "expression");
+XML_CONSTASCII_ACTION( sXML_extra, "extra");
+XML_CONSTASCII_ACTION( sXML_extrude, "extrude" );
+XML_CONSTASCII_ACTION( sXML_factorial, "factorial" );
+XML_CONSTASCII_ACTION( sXML_fade_from_bottom, "fade-from-bottom" );
+XML_CONSTASCII_ACTION( sXML_fade_from_center, "fade-from-center" );
+XML_CONSTASCII_ACTION( sXML_fade_from_left, "fade-from-left" );
+XML_CONSTASCII_ACTION( sXML_fade_from_lowerleft, "fade-from-lowerleft" );
+XML_CONSTASCII_ACTION( sXML_fade_from_lowerright, "fade-from-lowerright" );
+XML_CONSTASCII_ACTION( sXML_fade_from_right, "fade-from-right" );
+XML_CONSTASCII_ACTION( sXML_fade_from_top, "fade-from-top" );
+XML_CONSTASCII_ACTION( sXML_fade_from_upperleft, "fade-from-upperleft" );
+XML_CONSTASCII_ACTION( sXML_fade_from_upperright, "fade-from-upperright" );
+XML_CONSTASCII_ACTION( sXML_fade_to_center, "fade-to-center" );
+XML_CONSTASCII_ACTION( sXML_fade_out, "fade-out" );
+XML_CONSTASCII_ACTION( sXML_false, "false" );
+XML_CONSTASCII_ACTION( sXML_family, "family" );
+XML_CONSTASCII_ACTION( sXML_fast, "fast" );
+XML_CONSTASCII_ACTION( sXML_field_number, "field-number");
+XML_CONSTASCII_ACTION( sXML_file_name, "file-name" );
+XML_CONSTASCII_ACTION( sXML_fill, "fill" );
+XML_CONSTASCII_ACTION( sXML_fill_color , "fill-color" );
+XML_CONSTASCII_ACTION( sXML_fill_gradient_name, "fill-gradient-name" );
+XML_CONSTASCII_ACTION( sXML_fill_hatch_name, "fill-hatch-name" );
+XML_CONSTASCII_ACTION( sXML_fill_hatch_solid, "fill-hatch-solid" );
+XML_CONSTASCII_ACTION( sXML_fill_image, "fill-image" );
+XML_CONSTASCII_ACTION( sXML_fill_image_height, "fill-image-height" );
+XML_CONSTASCII_ACTION( sXML_fill_image_name, "fill-image-name" );
+XML_CONSTASCII_ACTION( sXML_fill_image_width, "fill-image-width" );
+XML_CONSTASCII_ACTION( sXML_filter, "filter");
+XML_CONSTASCII_ACTION( sXML_filter_and, "filter-and");
+XML_CONSTASCII_ACTION( sXML_filter_condition, "filter-condition");
+XML_CONSTASCII_ACTION( sXML_filter_name, "filter-name" );
+XML_CONSTASCII_ACTION( sXML_filter_options, "filter-options" );
+XML_CONSTASCII_ACTION( sXML_filter_or, "filter-or");
+XML_CONSTASCII_ACTION( sXML_first_date_time, "first-date-time");
+XML_CONSTASCII_ACTION( sXML_first_page, "first-page");
+XML_CONSTASCII_ACTION( sXML_first_page_number, "first-page-number");
+XML_CONSTASCII_ACTION( sXML_fit_to_contour, "fit-to-contour");
+XML_CONSTASCII_ACTION( sXML_fit_to_size, "fit-to-size" );
+XML_CONSTASCII_ACTION( sXML_fix, "fix" );
+XML_CONSTASCII_ACTION( sXML_fixed, "fixed" );
+XML_CONSTASCII_ACTION( sXML_flat, "flat" );
+XML_CONSTASCII_ACTION( sXML_float, "float");
+XML_CONSTASCII_ACTION( sXML_floating_frame, "floating-frame");
+XML_CONSTASCII_ACTION( sXML_floor, "floor" );
+XML_CONSTASCII_ACTION( sXML_fn, "fn" );
+XML_CONSTASCII_ACTION( sXML_focal_length, "focal-length");
+XML_CONSTASCII_ACTION( sXML_font_char_width, "font-char-width" );
+XML_CONSTASCII_ACTION( sXML_font_charset, "font-charset" );
+XML_CONSTASCII_ACTION( sXML_font_charset_asian, "font-charset-asian" );
+XML_CONSTASCII_ACTION( sXML_font_charset_complex, "font-charset-complex" );
+XML_CONSTASCII_ACTION( sXML_font_color, "font-color" );
+XML_CONSTASCII_ACTION( sXML_font_decl, "font-decl" );
+XML_CONSTASCII_ACTION( sXML_font_decls, "font-decls" );
+XML_CONSTASCII_ACTION( sXML_font_family, "font-family" );
+XML_CONSTASCII_ACTION( sXML_font_family_asian, "font-family-asian" );
+XML_CONSTASCII_ACTION( sXML_font_family_complex, "font-family-complex" );
+XML_CONSTASCII_ACTION( sXML_font_family_generic, "font-family-generic" );
+XML_CONSTASCII_ACTION( sXML_font_family_generic_asian, "font-family-generic-asian" );
+XML_CONSTASCII_ACTION( sXML_font_family_generic_complex, "font-family-generic-complex" );
+XML_CONSTASCII_ACTION( sXML_font_kerning, "font-kerning" );
+XML_CONSTASCII_ACTION( sXML_font_name, "font-name" );
+XML_CONSTASCII_ACTION( sXML_font_name_asian, "font-name-asian" );
+XML_CONSTASCII_ACTION( sXML_font_name_complex, "font-name-complex" );
+XML_CONSTASCII_ACTION( sXML_font_pitch, "font-pitch" );
+XML_CONSTASCII_ACTION( sXML_font_pitch_asian, "font-pitch-asian" );
+XML_CONSTASCII_ACTION( sXML_font_pitch_complex, "font-pitch-complex" );
+XML_CONSTASCII_ACTION( sXML_font_relief, "font-relief" );
+XML_CONSTASCII_ACTION( sXML_font_size, "font-size" );
+XML_CONSTASCII_ACTION( sXML_font_size_asian, "font-size-asian" );
+XML_CONSTASCII_ACTION( sXML_font_size_complex, "font-size-complex" );
+XML_CONSTASCII_ACTION( sXML_font_size_rel, "font-size-rel" );
+XML_CONSTASCII_ACTION( sXML_font_size_rel_asian, "font-size-rel-asian" );
+XML_CONSTASCII_ACTION( sXML_font_size_rel_complex, "font-size-rel-complex" );
+XML_CONSTASCII_ACTION( sXML_font_style, "font-style" );
+XML_CONSTASCII_ACTION( sXML_font_style_asian, "font-style-asian" );
+XML_CONSTASCII_ACTION( sXML_font_style_complex, "font-style-complex" );
+XML_CONSTASCII_ACTION( sXML_font_style_name, "font-style-name" );
+XML_CONSTASCII_ACTION( sXML_font_style_name_asian, "font-style-name-asian" );
+XML_CONSTASCII_ACTION( sXML_font_style_name_complex, "font-style-name-complex" );
+XML_CONSTASCII_ACTION( sXML_font_variant, "font-variant" );
+XML_CONSTASCII_ACTION( sXML_font_weight, "font-weight" );
+XML_CONSTASCII_ACTION( sXML_font_weight_asian, "font-weight-asian" );
+XML_CONSTASCII_ACTION( sXML_font_weight_complex, "font-weight-complex" );
+XML_CONSTASCII_ACTION( sXML_font_width, "font-width" );
+XML_CONSTASCII_ACTION( sXML_font_word_line_mode, "font-word-line-mode" );
+XML_CONSTASCII_ACTION( sXML_fontfamily, "fontfamily" );
+XML_CONSTASCII_ACTION( sXML_fontsize, "fontsize" );
+XML_CONSTASCII_ACTION( sXML_fontstyle, "fontstyle" );
+XML_CONSTASCII_ACTION( sXML_fontweight, "fontweight" );
+XML_CONSTASCII_ACTION( sXML_fontwork_adjust, "fontwork-adjust" );
+XML_CONSTASCII_ACTION( sXML_fontwork_distance, "fontwork-distance" );
+XML_CONSTASCII_ACTION( sXML_fontwork_form, "fontwork-form" );
+XML_CONSTASCII_ACTION( sXML_fontwork_hide_form, "fontwork-hide-form" );
+XML_CONSTASCII_ACTION( sXML_fontwork_mirror, "fontwork-mirror" );
+XML_CONSTASCII_ACTION( sXML_fontwork_outline, "fontwork-outline" );
+XML_CONSTASCII_ACTION( sXML_fontwork_shadow, "fontwork-shadow" );
+XML_CONSTASCII_ACTION( sXML_fontwork_shadow_color, "fontwork-shadow-color" );
+XML_CONSTASCII_ACTION( sXML_fontwork_shadow_offset_x, "fontwork-shadow-offset-x" );
+XML_CONSTASCII_ACTION( sXML_fontwork_shadow_offset_y, "fontwork-shadow-offset-y" );
+XML_CONSTASCII_ACTION( sXML_fontwork_shadow_transparence, "fontwork-shadow-transparence" );
+XML_CONSTASCII_ACTION( sXML_fontwork_start, "fontwork-start" );
+XML_CONSTASCII_ACTION( sXML_fontwork_style, "fontwork-style" );
+XML_CONSTASCII_ACTION( sXML_footer, "footer" );
+XML_CONSTASCII_ACTION( sXML_footer_left, "footer-left" );
+XML_CONSTASCII_ACTION( sXML_footer_style, "footer-style" );
+XML_CONSTASCII_ACTION( sXML_footnote, "footnote" );
+XML_CONSTASCII_ACTION( sXML_footnote_body, "footnote-body" );
+XML_CONSTASCII_ACTION( sXML_footnote_citation, "footnote-citation" );
+XML_CONSTASCII_ACTION( sXML_footnote_continuation_notice_backward, "footnote-continuation-notice-backward" );
+XML_CONSTASCII_ACTION( sXML_footnote_continuation_notice_forward, "footnote-continuation-notice-forward" );
+XML_CONSTASCII_ACTION( sXML_footnote_max_height, "footnote-max-height" );
+XML_CONSTASCII_ACTION( sXML_distance_after_sep, "distance-after-sep" );
+XML_CONSTASCII_ACTION( sXML_distance_before_sep, "distance-before-sep" );
+XML_CONSTASCII_ACTION( sXML_footnote_ref, "footnote-ref" );
+XML_CONSTASCII_ACTION( sXML_footnote_sep, "footnote-sep" );
+XML_CONSTASCII_ACTION( sXML_footnotes_configuration, "footnotes-configuration");
+XML_CONSTASCII_ACTION( sXML_footnotes_position, "footnotes-position" );
+XML_CONSTASCII_ACTION( sXML_forall, "forall" );
+XML_CONSTASCII_ACTION( sXML_force_manual, "force-manual" );
+XML_CONSTASCII_ACTION( sXML_foreground, "foreground" );
+XML_CONSTASCII_ACTION( sXML_foreign_object, "foreign-object" );
+XML_CONSTASCII_ACTION( sXML_format_change, "format-change" );
+XML_CONSTASCII_ACTION( sXML_format_source, "format-source" );
+XML_CONSTASCII_ACTION( sXML_forms, "forms" );
+XML_CONSTASCII_ACTION( sXML_formula, "formula");
+XML_CONSTASCII_ACTION( sXML_formula_hidden, "formula-hidden");
+XML_CONSTASCII_ACTION( sXML_formulas, "formulas");
+XML_CONSTASCII_ACTION( sXML_fraction, "fraction" );
+XML_CONSTASCII_ACTION( sXML_frame, "frame" );
+XML_CONSTASCII_ACTION( sXML_frame_content, "frame-content" );
+XML_CONSTASCII_ACTION( sXML_frame_display_scrollbar, "frame-display-scrollbar" );
+XML_CONSTASCII_ACTION( sXML_frame_display_border, "frame-display-border" );
+XML_CONSTASCII_ACTION( sXML_frame_margin_horizontal, "frame-margin-horizontal" );
+XML_CONSTASCII_ACTION( sXML_frame_margin_vertical, "frame-margin-vertical" );
+XML_CONSTASCII_ACTION( sXML_frame_end_margin, "frame-end-margin" );
+XML_CONSTASCII_ACTION( sXML_frame_name, "frame-name" );
+XML_CONSTASCII_ACTION( sXML_frame_start_margin, "frame-start-margin" );
+XML_CONSTASCII_ACTION( sXML_freeze, "freeze" );
+XML_CONSTASCII_ACTION( sXML_freeze_position, "freeze-position" );
+XML_CONSTASCII_ACTION( sXML_from_another_table, "from-another-table" );
+XML_CONSTASCII_ACTION( sXML_from_inside, "from-inside" );
+XML_CONSTASCII_ACTION( sXML_from_left, "from-left" );
+XML_CONSTASCII_ACTION( sXML_from_same_table, "from-same-table" );
+XML_CONSTASCII_ACTION( sXML_from_top, "from-top" );
+XML_CONSTASCII_ACTION( sXML_fuchsia, "fuchsia");
+XML_CONSTASCII_ACTION( sXML_full, "full" );
+XML_CONSTASCII_ACTION( sXML_full_screen, "full-screen" );
+XML_CONSTASCII_ACTION( sXML_function, "function");
+XML_CONSTASCII_ACTION( sXML_g , "g" );
+XML_CONSTASCII_ACTION( sXML_gamma , "gamma" );
+XML_CONSTASCII_ACTION( sXML_gap, "gap" );
+XML_CONSTASCII_ACTION( sXML_gap_width, "gap-width" );
+XML_CONSTASCII_ACTION( sXML_gcd, "gcd" );
+XML_CONSTASCII_ACTION( sXML_generator, "generator" );
+XML_CONSTASCII_ACTION( sXML_geq, "geq" );
+XML_CONSTASCII_ACTION( sXML_gouraud, "gouraud");
+XML_CONSTASCII_ACTION( sXML_gradient , "gradient" );
+XML_CONSTASCII_ACTION( sXML_gradient_angle, "angle" );
+XML_CONSTASCII_ACTION( sXML_gradient_border, "border" );
+XML_CONSTASCII_ACTION( sXML_gradient_step_count , "gradient-step-count" );
+XML_CONSTASCII_ACTION( sXML_gradient_style, "gradient-style" );
+XML_CONSTASCII_ACTION( sXML_gradientstyle_axial, "axial" );
+XML_CONSTASCII_ACTION( sXML_gradientstyle_ellipsoid, "ellipsoid" );
+XML_CONSTASCII_ACTION( sXML_gradientstyle_linear, "linear" );
+XML_CONSTASCII_ACTION( sXML_gradientstyle_radial, "radial" );
+XML_CONSTASCII_ACTION( sXML_gradientstyle_rectangular, "rectangular" );
+XML_CONSTASCII_ACTION( sXML_gradientstyle_square, "square" );
+XML_CONSTASCII_ACTION( sXML_grand_total, "grand-total");
+XML_CONSTASCII_ACTION( sXML_graphic , "graphic" );
+XML_CONSTASCII_ACTION( sXML_gray, "gray" );
+XML_CONSTASCII_ACTION( sXML_green , "green" );
+XML_CONSTASCII_ACTION( sXML_greyscale, "greyscale" );
+XML_CONSTASCII_ACTION( sXML_grid, "grid" );
+XML_CONSTASCII_ACTION( sXML_groove, "groove" );
+XML_CONSTASCII_ACTION( sXML_group_by_field_number, "group-by-field-number");
+XML_CONSTASCII_ACTION( sXML_group_name, "group-name" );
+XML_CONSTASCII_ACTION( sXML_grouping, "grouping" );
+XML_CONSTASCII_ACTION( sXML_gt, "gt" );
+XML_CONSTASCII_ACTION( sXML_h, "h" );
+XML_CONSTASCII_ACTION( sXML_hanging, "hanging" );
+XML_CONSTASCII_ACTION( sXML_has_persistent_data, "has-persistent-data");
+XML_CONSTASCII_ACTION( sXML_hatch , "hatch" );
+XML_CONSTASCII_ACTION( sXML_hatch_distance, "distance" );
+XML_CONSTASCII_ACTION( sXML_hatch_style, "style" );
+XML_CONSTASCII_ACTION( sXML_hatchstyle_double, "double" );
+XML_CONSTASCII_ACTION( sXML_hatchstyle_single, "single" );
+XML_CONSTASCII_ACTION( sXML_hatchstyle_triple, "triple" );
+XML_CONSTASCII_ACTION( sXML_header, "header" );
+XML_CONSTASCII_ACTION( sXML_header_left, "header-left" );
+XML_CONSTASCII_ACTION( sXML_header_style, "header-style" );
+XML_CONSTASCII_ACTION( sXML_headers, "headers" );
+XML_CONSTASCII_ACTION( sXML_height, "height" );
+XML_CONSTASCII_ACTION( sXML_help_file_name, "help-file-name" );
+XML_CONSTASCII_ACTION( sXML_help_id, "help-id" );
+XML_CONSTASCII_ACTION( sXML_help_message, "help-message" );
+XML_CONSTASCII_ACTION( sXML_hidden, "hidden" );
+XML_CONSTASCII_ACTION( sXML_hidden_and_protected, "hidden-and-protected");
+XML_CONSTASCII_ACTION( sXML_hidden_paragraph, "hidden-paragraph" );
+XML_CONSTASCII_ACTION( sXML_hidden_text, "hidden-text" );
+XML_CONSTASCII_ACTION( sXML_highlighted_range, "highlighted-range" );
+XML_CONSTASCII_ACTION( sXML_horizontal, "horizontal" );
+XML_CONSTASCII_ACTION( sXML_horizontal_lines, "horizontal-lines" );
+XML_CONSTASCII_ACTION( sXML_horizontal_on_left_pages, "horizontal-on-left-pages" );
+XML_CONSTASCII_ACTION( sXML_horizontal_on_right_pages, "horizontal-on-right-pages" );
+XML_CONSTASCII_ACTION( sXML_horizontal_pos, "horizontal-pos" );
+XML_CONSTASCII_ACTION( sXML_horizontal_rel, "horizontal-rel" );
+XML_CONSTASCII_ACTION( sXML_horizontal_scrollbar_width, "horizontal-scrollbar-width" );
+XML_CONSTASCII_ACTION( sXML_horizontal_segments, "horizontal-segments" );
+XML_CONSTASCII_ACTION( sXML_horizontal_split_mode, "horizontal-split-mode" );
+XML_CONSTASCII_ACTION( sXML_horizontal_split_position, "horizontal-split-position" );
+XML_CONSTASCII_ACTION( sXML_horizontal_stripes, "horizontal-stripes" );
+XML_CONSTASCII_ACTION( sXML_hours, "hours" );
+XML_CONSTASCII_ACTION( sXML_howpublished, "howpublished" );
+XML_CONSTASCII_ACTION( sXML_href, "href" );
+XML_CONSTASCII_ACTION( sXML_html, "html");
+XML_CONSTASCII_ACTION( sXML_hyperlink_behaviour, "hyperlink-behaviour" );
+XML_CONSTASCII_ACTION( sXML_hyphenate, "hyphenate" );
+XML_CONSTASCII_ACTION( sXML_hyphenation_keep, "hyphenation-keep" );
+XML_CONSTASCII_ACTION( sXML_hyphenation_ladder_count, "hyphenation-ladder-count" );
+XML_CONSTASCII_ACTION( sXML_hyphenation_push_char_count, "hyphenation-push-char-count" );
+XML_CONSTASCII_ACTION( sXML_hyphenation_remain_char_count, "hyphenation-remain-char-count" );
+XML_CONSTASCII_ACTION( sXML_i, "i" );
+XML_CONSTASCII_ACTION( sXML_icon, "icon" );
+XML_CONSTASCII_ACTION( sXML_id, "id" );
+XML_CONSTASCII_ACTION( sXML_ident, "ident");
+XML_CONSTASCII_ACTION( sXML_identifier, "identifier" );
+XML_CONSTASCII_ACTION( sXML_identify_categories, "identify-categories");
+XML_CONSTASCII_ACTION( sXML_ideograph_alpha, "ideograph-alpha");
+XML_CONSTASCII_ACTION( sXML_ignore_case, "ignore-case" );
+XML_CONSTASCII_ACTION( sXML_ignore_empty_rows, "ignore-empty-rows");
+XML_CONSTASCII_ACTION( sXML_illustration_index, "illustration-index" );
+XML_CONSTASCII_ACTION( sXML_illustration_index_entry_template, "illustration-index-entry-template" );
+XML_CONSTASCII_ACTION( sXML_illustration_index_source, "illustration-index-source" );
+XML_CONSTASCII_ACTION( sXML_image, "image" );
+XML_CONSTASCII_ACTION( sXML_image_count, "image-count" );
+XML_CONSTASCII_ACTION( sXML_image_map, "image-map" );
+XML_CONSTASCII_ACTION( sXML_implies, "implies" );
+XML_CONSTASCII_ACTION( sXML_in, "in");
+XML_CONSTASCII_ACTION( sXML_in_range, "in-range");
+XML_CONSTASCII_ACTION( sXML_inbook, "inbook" );
+XML_CONSTASCII_ACTION( sXML_incollection, "incollection" );
+XML_CONSTASCII_ACTION( sXML_increment, "increment" );
+XML_CONSTASCII_ACTION( sXML_index, "index");
+XML_CONSTASCII_ACTION( sXML_index_body, "index-body");
+XML_CONSTASCII_ACTION( sXML_index_entry_bibliography, "index-entry-bibliography" );
+XML_CONSTASCII_ACTION( sXML_index_entry_chapter, "index-entry-chapter" );
+XML_CONSTASCII_ACTION( sXML_index_entry_chapter_number, "index-entry-chapter-number" );
+XML_CONSTASCII_ACTION( sXML_index_entry_link_end, "index-entry-link-end" );
+XML_CONSTASCII_ACTION( sXML_index_entry_link_start, "index-entry-link-start" );
+XML_CONSTASCII_ACTION( sXML_index_entry_page_number, "index-entry-page-number" );
+XML_CONSTASCII_ACTION( sXML_index_entry_span, "index-entry-span" );
+XML_CONSTASCII_ACTION( sXML_index_entry_tab_stop, "index-entry-tab-stop" );
+XML_CONSTASCII_ACTION( sXML_index_entry_template, "index-entry-template" );
+XML_CONSTASCII_ACTION( sXML_index_entry_text, "index-entry-text" );
+XML_CONSTASCII_ACTION( sXML_index_name, "index-name" );
+XML_CONSTASCII_ACTION( sXML_index_scope, "index-scope" );
+XML_CONSTASCII_ACTION( sXML_index_source_style, "index-source-style" );
+XML_CONSTASCII_ACTION( sXML_index_source_styles, "index-source-styles" );
+XML_CONSTASCII_ACTION( sXML_index_title, "index-title" );
+XML_CONSTASCII_ACTION( sXML_index_title_template, "index-title-template" );
+XML_CONSTASCII_ACTION( sXML_information, "information" );
+XML_CONSTASCII_ACTION( sXML_initial_creator, "initial-creator" );
+XML_CONSTASCII_ACTION( sXML_inproceedings, "inproceedings" );
+XML_CONSTASCII_ACTION( sXML_insertion, "insertion" );
+XML_CONSTASCII_ACTION( sXML_insertion_cut_off, "insertion-cut-off" );
+XML_CONSTASCII_ACTION( sXML_inset, "inset" );
+XML_CONSTASCII_ACTION( sXML_inside, "inside" );
+XML_CONSTASCII_ACTION( sXML_institution, "institution" );
+XML_CONSTASCII_ACTION( sXML_int, "int" );
+XML_CONSTASCII_ACTION( sXML_intensity, "intensity" );
+XML_CONSTASCII_ACTION( sXML_intersect, "intersect" );
+XML_CONSTASCII_ACTION( sXML_interval, "interval" );
+XML_CONSTASCII_ACTION( sXML_interval_major, "interval-major" );
+XML_CONSTASCII_ACTION( sXML_interval_minor, "interval-minor" );
+XML_CONSTASCII_ACTION( sXML_into_english_number, "into-english-number" );
+XML_CONSTASCII_ACTION( sXML_inverse, "inverse" );
+XML_CONSTASCII_ACTION( sXML_is_active, "is-active");
+XML_CONSTASCII_ACTION( sXML_is_data_layout_field, "is-data-layout-field");
+XML_CONSTASCII_ACTION( sXML_is_hidden, "is-hidden" );
+XML_CONSTASCII_ACTION( sXML_is_selection, "is-selection");
+XML_CONSTASCII_ACTION( sXML_isbn, "isbn" );
+XML_CONSTASCII_ACTION( sXML_italic, "italic" );
+XML_CONSTASCII_ACTION( sXML_iteration, "iteration" );
+XML_CONSTASCII_ACTION( sXML_journal, "journal" );
+XML_CONSTASCII_ACTION( sXML_justified, "justified" );
+XML_CONSTASCII_ACTION( sXML_justify, "justify" );
+XML_CONSTASCII_ACTION( sXML_justify_single_word, "justify-single-word" );
+XML_CONSTASCII_ACTION( sXML_keep_with_next, "keep-with-next" );
+XML_CONSTASCII_ACTION( sXML_kerning_normal, "normal" );
+XML_CONSTASCII_ACTION( sXML_key, "key" );
+XML_CONSTASCII_ACTION( sXML_key1, "key1" );
+XML_CONSTASCII_ACTION( sXML_key2, "key2" );
+XML_CONSTASCII_ACTION( sXML_keyword, "keyword" );
+XML_CONSTASCII_ACTION( sXML_keywords, "keywords" );
+XML_CONSTASCII_ACTION( sXML_km, "km" );
+XML_CONSTASCII_ACTION( sXML_label, "label" );
+XML_CONSTASCII_ACTION( sXML_label_arrangement, "label-arrangement" );
+XML_CONSTASCII_ACTION( sXML_label_cell_address, "label-cell-address" );
+XML_CONSTASCII_ACTION( sXML_label_cell_range_address, "label-cell-range-address" );
+XML_CONSTASCII_ACTION( sXML_label_range, "label-range" );
+XML_CONSTASCII_ACTION( sXML_label_ranges, "label-ranges" );
+XML_CONSTASCII_ACTION( sXML_layer, "layer" );
+XML_CONSTASCII_ACTION( sXML_layer_set, "layer-set" );
+XML_CONSTASCII_ACTION( sXML_lambda, "lambda" );
+XML_CONSTASCII_ACTION( sXML_landscape, "landscape" );
+XML_CONSTASCII_ACTION( sXML_language, "language" );
+XML_CONSTASCII_ACTION( sXML_language_asian, "language-asian" );
+XML_CONSTASCII_ACTION( sXML_language_complex, "language-complex" );
+XML_CONSTASCII_ACTION( sXML_last_column_spanned, "last-column-spanned" );
+XML_CONSTASCII_ACTION( sXML_last_page, "last-page" );
+XML_CONSTASCII_ACTION( sXML_last_row_spanned, "last-row-spanned" );
+XML_CONSTASCII_ACTION( sXML_leader_char, "leader-char" );
+XML_CONSTASCII_ACTION( sXML_left, "left" );
+XML_CONSTASCII_ACTION( sXML_left_outside, "left-outside" );
+XML_CONSTASCII_ACTION( sXML_left_top_position, "left-top-position" );
+XML_CONSTASCII_ACTION( sXML_legend, "legend" );
+XML_CONSTASCII_ACTION( sXML_legend_position, "legend-position" );
+XML_CONSTASCII_ACTION( sXML_length, "length" );
+XML_CONSTASCII_ACTION( sXML_leq, "leq" );
+XML_CONSTASCII_ACTION( sXML_let_text, "let-text" );
+XML_CONSTASCII_ACTION( sXML_letter_kerning, "letter-kerning" );
+XML_CONSTASCII_ACTION( sXML_letter_spacing, "letter-spacing" );
+XML_CONSTASCII_ACTION( sXML_letters, "letters" );
+XML_CONSTASCII_ACTION( sXML_level, "level" );
+XML_CONSTASCII_ACTION( sXML_library, "library" );
+XML_CONSTASCII_ACTION( sXML_library_embedded, "library-embedded" );
+XML_CONSTASCII_ACTION( sXML_library_linked, "library-linked" );
+XML_CONSTASCII_ACTION( sXML_light, "light");
+XML_CONSTASCII_ACTION( sXML_lighting_mode, "lighting-mode");
+XML_CONSTASCII_ACTION( sXML_lime, "lime" );
+XML_CONSTASCII_ACTION( sXML_limit, "limit" );
+XML_CONSTASCII_ACTION( sXML_line, "line" );
+XML_CONSTASCII_ACTION( sXML_line_break, "line-break" );
+XML_CONSTASCII_ACTION( sXML_line_height, "line-height" );
+XML_CONSTASCII_ACTION( sXML_line_height_at_least, "line-height-at-least" );
+XML_CONSTASCII_ACTION( sXML_line_spacing, "line-spacing" );
+XML_CONSTASCII_ACTION( sXML_linear, "linear" );
+XML_CONSTASCII_ACTION( sXML_linenumbering_configuration, "linenumbering-configuration" );
+XML_CONSTASCII_ACTION( sXML_linenumbering_separator, "linenumbering-separator" );
+XML_CONSTASCII_ACTION( sXML_lines, "lines" );
+XML_CONSTASCII_ACTION( sXML_lines_used, "lines-used" );
+XML_CONSTASCII_ACTION( sXML_link_data_style_to_source, "link-data-style-to-source" );
+XML_CONSTASCII_ACTION( sXML_link_to_source_data, "link-to-source-data" );
+XML_CONSTASCII_ACTION( sXML_list, "list");
+XML_CONSTASCII_ACTION( sXML_list_block, "list-block" );
+XML_CONSTASCII_ACTION( sXML_list_header, "list-header" );
+XML_CONSTASCII_ACTION( sXML_list_info, "list-info" );
+XML_CONSTASCII_ACTION( sXML_list_item, "list-item" );
+XML_CONSTASCII_ACTION( sXML_list_level, "list-level" );
+XML_CONSTASCII_ACTION( sXML_list_level_style_bullet, "list-level-style-bullet" );
+XML_CONSTASCII_ACTION( sXML_list_level_style_image, "list-level-style-image" );
+XML_CONSTASCII_ACTION( sXML_list_level_style_number, "list-level-style-number" );
+XML_CONSTASCII_ACTION( sXML_list_name, "list-name" );
+XML_CONSTASCII_ACTION( sXML_list_style, "list-style" );
+XML_CONSTASCII_ACTION( sXML_list_style_name, "list-style-name" );
+XML_CONSTASCII_ACTION( sXML_ln, "ln" );
+XML_CONSTASCII_ACTION( sXML_locked, "locked" );
+XML_CONSTASCII_ACTION( sXML_log, "log" );
+XML_CONSTASCII_ACTION( sXML_logarithmic, "logarithmic" );
+XML_CONSTASCII_ACTION( sXML_logbase, "logbase" );
+XML_CONSTASCII_ACTION( sXML_long, "long" );
+XML_CONSTASCII_ACTION( sXML_lowlimit, "lowlimit" );
+XML_CONSTASCII_ACTION( sXML_lr_tb, "lr-tb" );
+XML_CONSTASCII_ACTION( sXML_lt, "lt");
+XML_CONSTASCII_ACTION( sXML_ltr, "ltr");
+XML_CONSTASCII_ACTION( sXML_luminance , "luminance" );
+XML_CONSTASCII_ACTION( sXML_macro_name, "macro-name");
+XML_CONSTASCII_ACTION( sXML_maction, "maction");
+XML_CONSTASCII_ACTION( sXML_main_entry_style_name, "main-entry-style-name" );
+XML_CONSTASCII_ACTION( sXML_major, "major" );
+XML_CONSTASCII_ACTION( sXML_maligngroup, "maligngroup");
+XML_CONSTASCII_ACTION( sXML_malignmark, "malignmark");
+XML_CONSTASCII_ACTION( sXML_manual, "manual" );
+XML_CONSTASCII_ACTION( sXML_map, "map" );
+XML_CONSTASCII_ACTION( sXML_margin_bottom, "margin-bottom" );
+XML_CONSTASCII_ACTION( sXML_margin_left, "margin-left" );
+XML_CONSTASCII_ACTION( sXML_margin_right, "margin-right" );
+XML_CONSTASCII_ACTION( sXML_margin_top, "margin-top" );
+XML_CONSTASCII_ACTION( sXML_margins, "margins" );
+XML_CONSTASCII_ACTION( sXML_marker, "marker" );
+XML_CONSTASCII_ACTION( sXML_marker_end , "marker-end" );
+XML_CONSTASCII_ACTION( sXML_marker_end_center , "marker-end-center" );
+XML_CONSTASCII_ACTION( sXML_marker_end_width , "marker-end-width" );
+XML_CONSTASCII_ACTION( sXML_marker_start , "marker-start" );
+XML_CONSTASCII_ACTION( sXML_marker_start_center , "marker-start-center" );
+XML_CONSTASCII_ACTION( sXML_marker_start_width , "marker-start-width" );
+XML_CONSTASCII_ACTION( sXML_maroon, "maroon" );
+XML_CONSTASCII_ACTION( sXML_master_page, "master-page" );
+XML_CONSTASCII_ACTION( sXML_master_page_name , "master-page-name" );
+XML_CONSTASCII_ACTION( sXML_master_styles, "master-styles" );
+XML_CONSTASCII_ACTION( sXML_mastersthesis, "mastersthesis" );
+XML_CONSTASCII_ACTION( sXML_match, "match");
+XML_CONSTASCII_ACTION( sXML_math, "math");
+XML_CONSTASCII_ACTION( sXML_matrix, "matrix");
+XML_CONSTASCII_ACTION( sXML_matrix_covered, "matrix-covered");
+XML_CONSTASCII_ACTION( sXML_matrixrow, "matrixrow");
+XML_CONSTASCII_ACTION( sXML_max, "max" );
+XML_CONSTASCII_ACTION( sXML_max_edge, "max-edge");
+XML_CONSTASCII_ACTION( sXML_max_height, "max-height");
+XML_CONSTASCII_ACTION( sXML_max_width, "max-width");
+XML_CONSTASCII_ACTION( sXML_maximum, "maximum" );
+XML_CONSTASCII_ACTION( sXML_maximum_difference, "maximum-difference" );
+XML_CONSTASCII_ACTION( sXML_may_break_between_rows, "may-break-between-rows" );
+XML_CONSTASCII_ACTION( sXML_may_script, "may-script" );
+XML_CONSTASCII_ACTION( sXML_mean, "mean" );
+XML_CONSTASCII_ACTION( sXML_mean_value, "mean-value" );
+XML_CONSTASCII_ACTION( sXML_measure, "measure" );
+XML_CONSTASCII_ACTION( sXML_measure_align, "measure-align" );
+XML_CONSTASCII_ACTION( sXML_measure_vertical_align, "measure-vertical-align" );
+XML_CONSTASCII_ACTION( sXML_median, "median" );
+XML_CONSTASCII_ACTION( sXML_medium, "medium" );
+XML_CONSTASCII_ACTION( sXML_merror, "merror" );
+XML_CONSTASCII_ACTION( sXML_message_type, "message-type" );
+XML_CONSTASCII_ACTION( sXML_meta, "meta" );
+XML_CONSTASCII_ACTION( sXML_mfenced, "mfenced" );
+XML_CONSTASCII_ACTION( sXML_mfrac, "mfrac" );
+XML_CONSTASCII_ACTION( sXML_mi, "mi" ); //MathML Math Identifier
+XML_CONSTASCII_ACTION( sXML_middle, "middle" );
+XML_CONSTASCII_ACTION( sXML_mime_type, "mime-type" );
+XML_CONSTASCII_ACTION( sXML_min, "min" );
+XML_CONSTASCII_ACTION( sXML_min_denominator_digits, "min-denominator-digits" );
+XML_CONSTASCII_ACTION( sXML_min_edge, "min-edge");
+XML_CONSTASCII_ACTION( sXML_min_exponent_digits, "min-exponent-digits" );
+XML_CONSTASCII_ACTION( sXML_min_height, "min-height" );
+XML_CONSTASCII_ACTION( sXML_min_width, "min-width" );
+XML_CONSTASCII_ACTION( sXML_min_integer_digits, "min-integer-digits" );
+XML_CONSTASCII_ACTION( sXML_min_label_distance, "min-label-distance" );
+XML_CONSTASCII_ACTION( sXML_min_label_width, "min-label-width" );
+XML_CONSTASCII_ACTION( sXML_min_line_height, "min-line-height" );
+XML_CONSTASCII_ACTION( sXML_min_numerator_digits, "min-numerator-digits" );
+XML_CONSTASCII_ACTION( sXML_min_row_height, "min-row-height" );
+XML_CONSTASCII_ACTION( sXML_minimum, "minimum" );
+XML_CONSTASCII_ACTION( sXML_minor, "minor" );
+XML_CONSTASCII_ACTION( sXML_minus, "minus" );
+XML_CONSTASCII_ACTION( sXML_minutes, "minutes" );
+XML_CONSTASCII_ACTION( sXML_mirror, "mirror" );
+XML_CONSTASCII_ACTION( sXML_mirrored, "mirrored" );
+XML_CONSTASCII_ACTION( sXML_misc, "misc" );
+XML_CONSTASCII_ACTION( sXML_miter , "miter" );
+XML_CONSTASCII_ACTION( sXML_mmultiscripts, "mmultiscripts" );
+XML_CONSTASCII_ACTION( sXML_mm, "mm" );
+XML_CONSTASCII_ACTION( sXML_mn, "mn" );
+XML_CONSTASCII_ACTION( sXML_mo, "mo" );
+XML_CONSTASCII_ACTION( sXML_mode, "mode" );
+XML_CONSTASCII_ACTION( sXML_modern, "modern" );
+XML_CONSTASCII_ACTION( sXML_modification_date, "modification-date" );
+XML_CONSTASCII_ACTION( sXML_modification_time, "modification-time" );
+XML_CONSTASCII_ACTION( sXML_modulate, "modulate" );
+XML_CONSTASCII_ACTION( sXML_module, "module" );
+XML_CONSTASCII_ACTION( sXML_moment, "moment" );
+XML_CONSTASCII_ACTION( sXML_mono, "mono" );
+XML_CONSTASCII_ACTION( sXML_month, "month" );
+XML_CONSTASCII_ACTION( sXML_move_from_bottom, "move-from-bottom" );
+XML_CONSTASCII_ACTION( sXML_move_from_left, "move-from-left" );
+XML_CONSTASCII_ACTION( sXML_move_from_right, "move-from-right" );
+XML_CONSTASCII_ACTION( sXML_move_from_top, "move-from-top" );
+XML_CONSTASCII_ACTION( sXML_move_protect, "move-protect" );
+XML_CONSTASCII_ACTION( sXML_mover, "mover" );
+XML_CONSTASCII_ACTION( sXML_movement, "movement" );
+XML_CONSTASCII_ACTION( sXML_movement_cut_off, "movement-cut-off" );
+XML_CONSTASCII_ACTION( sXML_mouse_as_pen, "mouse-as-pen" );
+XML_CONSTASCII_ACTION( sXML_mouse_visible, "mouse-visible" );
+XML_CONSTASCII_ACTION( sXML_mpadded, "mpadded");
+XML_CONSTASCII_ACTION( sXML_mphantom, "mphantom");
+XML_CONSTASCII_ACTION( sXML_mprescripts, "mprescripts");
+XML_CONSTASCII_ACTION( sXML_mroot, "mroot");
+XML_CONSTASCII_ACTION( sXML_mrow, "mrow");
+XML_CONSTASCII_ACTION( sXML_ms, "ms");
+XML_CONSTASCII_ACTION( sXML_mspace, "mspace");
+XML_CONSTASCII_ACTION( sXML_msqrt, "msqrt");
+XML_CONSTASCII_ACTION( sXML_mstyle, "mstyle");
+XML_CONSTASCII_ACTION( sXML_msub, "msub");
+XML_CONSTASCII_ACTION( sXML_msubsup, "msubsup");
+XML_CONSTASCII_ACTION( sXML_msup, "msup");
+XML_CONSTASCII_ACTION( sXML_mtable, "mtable");
+XML_CONSTASCII_ACTION( sXML_mtd, "mtd");
+XML_CONSTASCII_ACTION( sXML_mtext, "mtext");
+XML_CONSTASCII_ACTION( sXML_mtr, "mtr");
+XML_CONSTASCII_ACTION( sXML_multi_deletion_spanned, "multi-deletion-spanned");
+XML_CONSTASCII_ACTION( sXML_munder, "munder");
+XML_CONSTASCII_ACTION( sXML_munderover, "munderover");
+XML_CONSTASCII_ACTION( sXML_name, "name" );
+XML_CONSTASCII_ACTION( sXML_name_and_extension, "name-and-extension" );
+XML_CONSTASCII_ACTION( sXML_named_expression, "named-expression");
+XML_CONSTASCII_ACTION( sXML_named_expressions, "named-expressions");
+XML_CONSTASCII_ACTION( sXML_named_range, "named-range");
+XML_CONSTASCII_ACTION( sXML_navy, "navy");
+XML_CONSTASCII_ACTION( sXML_neq, "neq" );
+XML_CONSTASCII_ACTION( sXML_new, "new" );
+XML_CONSTASCII_ACTION( sXML_next, "next" );
+XML_CONSTASCII_ACTION( sXML_next_page, "next-page" );
+XML_CONSTASCII_ACTION( sXML_next_style_name, "next-style-name" );
+XML_CONSTASCII_ACTION( sXML_nohref, "nohref" );
+XML_CONSTASCII_ACTION( sXML_no_limit, "no-limit" );
+XML_CONSTASCII_ACTION( sXML_no_wrap, "no-wrap" );
+XML_CONSTASCII_ACTION( sXML_noempty, "!empty");
+XML_CONSTASCII_ACTION( sXML_nomatch, "!match");
+XML_CONSTASCII_ACTION( sXML_none, "none" );
+XML_CONSTASCII_ACTION( sXML_noprtsubset, "notprsubset" );
+XML_CONSTASCII_ACTION( sXML_normal, "normal" );
+XML_CONSTASCII_ACTION( sXML_normals_direction, "normals-direction" );
+XML_CONSTASCII_ACTION( sXML_normals_kind, "normals-kind" );
+XML_CONSTASCII_ACTION( sXML_not, "not" );
+XML_CONSTASCII_ACTION( sXML_not_equal_date, "not-equal-date" );
+XML_CONSTASCII_ACTION( sXML_note, "note" );
+XML_CONSTASCII_ACTION( sXML_notes, "notes" );
+XML_CONSTASCII_ACTION( sXML_notin, "notin" );
+XML_CONSTASCII_ACTION( sXML_notsubset, "notsubset" );
+XML_CONSTASCII_ACTION( sXML_null_date, "null-date" );
+XML_CONSTASCII_ACTION( sXML_null_year, "null-year" );
+XML_CONSTASCII_ACTION( sXML_num_format, "num-format" );
+XML_CONSTASCII_ACTION( sXML_num_letter_sync, "num-letter-sync" );
+XML_CONSTASCII_ACTION( sXML_num_prefix, "num-prefix" );
+XML_CONSTASCII_ACTION( sXML_num_suffix, "num-suffix" );
+XML_CONSTASCII_ACTION( sXML_number, "number" );
+XML_CONSTASCII_ACTION( sXML_number_and_name, "number-and-name" );
+XML_CONSTASCII_ACTION( sXML_number_columns_repeated, "number-columns-repeated" );
+XML_CONSTASCII_ACTION( sXML_number_columns_spanned, "number-columns-spanned" );
+XML_CONSTASCII_ACTION( sXML_number_lines, "number-lines" );
+XML_CONSTASCII_ACTION( sXML_number_matrix_columns_spanned, "number-matrix-columns-spanned" );
+XML_CONSTASCII_ACTION( sXML_number_matrix_rows_spanned, "number-matrix-rows-spanned" );
+XML_CONSTASCII_ACTION( sXML_number_position, "number-position" );
+XML_CONSTASCII_ACTION( sXML_number_rows_repeated, "number-rows-repeated" );
+XML_CONSTASCII_ACTION( sXML_number_rows_spanned, "number-rows-spanned" );
+XML_CONSTASCII_ACTION( sXML_number_style, "number-style" );
+XML_CONSTASCII_ACTION( sXML_number_wrapped_paragraphs, "number-wrapped-paragraphs" );
+XML_CONSTASCII_ACTION( sXML_numbered_entries, "numbered-entries" );
+XML_CONSTASCII_ACTION( sXML_object, "object" );
+XML_CONSTASCII_ACTION( sXML_object_count, "object-count" );
+XML_CONSTASCII_ACTION( sXML_object_index, "object-index" );
+XML_CONSTASCII_ACTION( sXML_object_index_entry_template, "object-index-entry-template" );
+XML_CONSTASCII_ACTION( sXML_object_index_source, "object-index-source" );
+XML_CONSTASCII_ACTION( sXML_object_name, "object-name");
+XML_CONSTASCII_ACTION( sXML_object_ole, "object-ole" );
+XML_CONSTASCII_ACTION( sXML_objects, "objects" );
+XML_CONSTASCII_ACTION( sXML_odd_page, "odd-page" );
+XML_CONSTASCII_ACTION( sXML_offset, "offset" );
+XML_CONSTASCII_ACTION( sXML_olive, "olive" );
+XML_CONSTASCII_ACTION( sXML_online, "online" );
+XML_CONSTASCII_ACTION( sXML_online_text, "online-text" );
+XML_CONSTASCII_ACTION( sXML_onLoad, "onLoad" );
+XML_CONSTASCII_ACTION( sXML_onRequest, "onRequest" );
+XML_CONSTASCII_ACTION( sXML_on_update_keep_size, "on-update-keep-size");
+XML_CONSTASCII_ACTION( sXML_on_update_keep_styles, "on-update-keep-styles");
+XML_CONSTASCII_ACTION( sXML_opaque_background, "background" );
+XML_CONSTASCII_ACTION( sXML_opaque_foreground, "foreground" );
+XML_CONSTASCII_ACTION( sXML_open, "open" );
+XML_CONSTASCII_ACTION( sXML_open_horizontal, "open-horizontal" );
+XML_CONSTASCII_ACTION( sXML_open_vertical, "open-vertical" );
+XML_CONSTASCII_ACTION( sXML_operation, "operation");
+XML_CONSTASCII_ACTION( sXML_operator, "operator");
+XML_CONSTASCII_ACTION( sXML_optimal, "optimal");
+XML_CONSTASCII_ACTION( sXML_or, "or");
+XML_CONSTASCII_ACTION( sXML_order, "order");
+XML_CONSTASCII_ACTION( sXML_ordered_list, "ordered-list" );
+XML_CONSTASCII_ACTION( sXML_organizations, "organizations" );
+XML_CONSTASCII_ACTION( sXML_orientation, "orientation");
+XML_CONSTASCII_ACTION( sXML_orientation_landscape, "orientation-landscape" );
+XML_CONSTASCII_ACTION( sXML_orientation_portrait, "orientation-portrait" );
+XML_CONSTASCII_ACTION( sXML_origin, "origin" );
+XML_CONSTASCII_ACTION( sXML_orphans, "orphans" );
+XML_CONSTASCII_ACTION( sXML_outline_level, "outline-level" );
+XML_CONSTASCII_ACTION( sXML_outline_level_style, "outline-level-style" );
+XML_CONSTASCII_ACTION( sXML_outline_style, "outline-style" );
+XML_CONSTASCII_ACTION( sXML_outset, "outset" );
+XML_CONSTASCII_ACTION( sXML_outside, "outside" );
+XML_CONSTASCII_ACTION( sXML_overlap, "overlap" );
+XML_CONSTASCII_ACTION( sXML_p, "p" );
+XML_CONSTASCII_ACTION( sXML_package_name, "package-name" );
+XML_CONSTASCII_ACTION( sXML_padding, "padding" );
+XML_CONSTASCII_ACTION( sXML_padding_bottom, "padding-bottom" );
+XML_CONSTASCII_ACTION( sXML_padding_left, "padding-left" );
+XML_CONSTASCII_ACTION( sXML_padding_right, "padding-right" );
+XML_CONSTASCII_ACTION( sXML_padding_top, "padding-top" );
+XML_CONSTASCII_ACTION( sXML_page, "page" );
+XML_CONSTASCII_ACTION( sXML_page_adjust, "page-adjust" );
+XML_CONSTASCII_ACTION( sXML_page_breaks_on_group_change, "page-breaks-on-group-change");
+XML_CONSTASCII_ACTION( sXML_page_content, "page-content" );
+XML_CONSTASCII_ACTION( sXML_page_continuation_string, "page-continuation-string" );
+XML_CONSTASCII_ACTION( sXML_page_count, "page-count" );
+XML_CONSTASCII_ACTION( sXML_page_end_margin, "page-end-margin" );
+XML_CONSTASCII_ACTION( sXML_page_height, "page-height" );
+XML_CONSTASCII_ACTION( sXML_page_master, "page-master" );
+XML_CONSTASCII_ACTION( sXML_page_master_name, "page-master-name" );
+XML_CONSTASCII_ACTION( sXML_page_number, "page-number" );
+XML_CONSTASCII_ACTION( sXML_page_start_margin, "page-start-margin" );
+XML_CONSTASCII_ACTION( sXML_page_style_name, "page-style-name" );
+XML_CONSTASCII_ACTION( sXML_page_thumbnail, "page-thumbnail" );
+XML_CONSTASCII_ACTION( sXML_page_usage, "page-usage" );
+XML_CONSTASCII_ACTION( sXML_page_variable_get, "page-variable-get" );
+XML_CONSTASCII_ACTION( sXML_page_variable_set, "page-variable-set" );
+XML_CONSTASCII_ACTION( sXML_page_view_zoom_value, "page-view-zoom-value" );
+XML_CONSTASCII_ACTION( sXML_page_width, "page-width" );
+XML_CONSTASCII_ACTION( sXML_pages, "pages" );
+XML_CONSTASCII_ACTION( sXML_paper_tray_number, "paper-tray-number" );
+XML_CONSTASCII_ACTION( sXML_paragraph, "paragraph" );
+XML_CONSTASCII_ACTION( sXML_paragraph_content, "paragraph-content" );
+XML_CONSTASCII_ACTION( sXML_paragraph_count, "paragraph-count" );
+XML_CONSTASCII_ACTION( sXML_paragraph_end_margin, "paragraph-end-margin" );
+XML_CONSTASCII_ACTION( sXML_paragraph_start_margin, "paragraph-start-margin" );
+XML_CONSTASCII_ACTION( sXML_param, "param" );
+XML_CONSTASCII_ACTION( sXML_parallel, "parallel" );
+XML_CONSTASCII_ACTION( sXML_parent_style_name, "parent-style-name" );
+XML_CONSTASCII_ACTION( sXML_parse_sql_statement, "parse-sql-statement");
+XML_CONSTASCII_ACTION( sXML_parsed, "parsed" );
+XML_CONSTASCII_ACTION( sXML_pause, "pause" );
+XML_CONSTASCII_ACTION( sXML_partialdiff, "partialdiff");
+XML_CONSTASCII_ACTION( sXML_password, "password");
+XML_CONSTASCII_ACTION( sXML_passwort, "passwort");
+XML_CONSTASCII_ACTION( sXML_path , "path" );
+XML_CONSTASCII_ACTION( sXML_pending , "pending" );
+XML_CONSTASCII_ACTION( sXML_percentage, "percentage");
+XML_CONSTASCII_ACTION( sXML_percentage_style, "percentage-style" );
+XML_CONSTASCII_ACTION( sXML_perspective, "perspective");
+XML_CONSTASCII_ACTION( sXML_phdthesis, "phdthesis" );
+XML_CONSTASCII_ACTION( sXML_phong, "phong");
+XML_CONSTASCII_ACTION( sXML_pie_offset, "pie-offset" );
+XML_CONSTASCII_ACTION( sXML_placeholder, "placeholder" );
+XML_CONSTASCII_ACTION( sXML_placeholder_type, "placeholder-type" );
+XML_CONSTASCII_ACTION( sXML_placing, "placing" );
+XML_CONSTASCII_ACTION( sXML_plain_number, "plain-number" );
+XML_CONSTASCII_ACTION( sXML_plain_number_and_name, "plain-number-and-name" );
+XML_CONSTASCII_ACTION( sXML_plot_area, "plot-area" );
+XML_CONSTASCII_ACTION( sXML_plugin, "plugin" );
+XML_CONSTASCII_ACTION( sXML_plus, "plus" );
+XML_CONSTASCII_ACTION( sXML_points, "points" );
+XML_CONSTASCII_ACTION( sXML_polygon , "polygon" );
+XML_CONSTASCII_ACTION( sXML_polyline , "polyline" );
+XML_CONSTASCII_ACTION( sXML_polynomial, "polynomial" );
+XML_CONSTASCII_ACTION( sXML_pool_id, "pool-id" );
+XML_CONSTASCII_ACTION( sXML_portrait, "portrait" );
+XML_CONSTASCII_ACTION( sXML_position, "position" );
+XML_CONSTASCII_ACTION( sXML_position_bottom, "position-bottom" );
+XML_CONSTASCII_ACTION( sXML_position_left, "position-left" );
+XML_CONSTASCII_ACTION( sXML_position_right, "position-right" );
+XML_CONSTASCII_ACTION( sXML_position_top, "position-top" );
+XML_CONSTASCII_ACTION( sXML_posture_italic, "italic" );
+XML_CONSTASCII_ACTION( sXML_posture_normal, "normal" );
+XML_CONSTASCII_ACTION( sXML_posture_oblique, "oblique" );
+XML_CONSTASCII_ACTION( sXML_power, "power" );
+XML_CONSTASCII_ACTION( sXML_precision_as_shown, "precision-as-shown" );
+XML_CONSTASCII_ACTION( sXML_prefix, "prefix" );
+XML_CONSTASCII_ACTION( sXML_presentation, "presentation" );
+XML_CONSTASCII_ACTION( sXML_presentation_chart , "chart" );
+XML_CONSTASCII_ACTION( sXML_presentation_graphic , "graphic" );
+XML_CONSTASCII_ACTION( sXML_presentation_notes , "notes" );
+XML_CONSTASCII_ACTION( sXML_presentation_object , "object" );
+XML_CONSTASCII_ACTION( sXML_presentation_orgchart , "orgchart" );
+XML_CONSTASCII_ACTION( sXML_presentation_outline , "outline" );
+XML_CONSTASCII_ACTION( sXML_presentation_page , "page" );
+XML_CONSTASCII_ACTION( sXML_presentation_page_layout, "presentation-page-layout" );
+XML_CONSTASCII_ACTION( sXML_presentation_page_layout_name, "presentation-page-layout-name" );
+XML_CONSTASCII_ACTION( sXML_presentation_subtitle , "subtitle" );
+XML_CONSTASCII_ACTION( sXML_presentation_table , "table" );
+XML_CONSTASCII_ACTION( sXML_presentation_title , "title" );
+XML_CONSTASCII_ACTION( sXML_previous, "previous" );
+XML_CONSTASCII_ACTION( sXML_previous_page, "previous-page" );
+XML_CONSTASCII_ACTION( sXML_print, "print" );
+XML_CONSTASCII_ACTION( sXML_printable, "printable" );
+XML_CONSTASCII_ACTION( sXML_print_content, "print-content");
+XML_CONSTASCII_ACTION( sXML_print_date, "print-date" );
+XML_CONSTASCII_ACTION( sXML_print_orientation, "print-orientation");
+XML_CONSTASCII_ACTION( sXML_print_page_order, "print-page-order");
+XML_CONSTASCII_ACTION( sXML_print_range, "print-range");
+XML_CONSTASCII_ACTION( sXML_print_ranges, "print-ranges");
+XML_CONSTASCII_ACTION( sXML_print_time, "print-time" );
+XML_CONSTASCII_ACTION( sXML_printed_by, "printed-by" );
+XML_CONSTASCII_ACTION( sXML_proceedings, "proceedings" );
+XML_CONSTASCII_ACTION( sXML_product, "product" );
+XML_CONSTASCII_ACTION( sXML_projection, "projection");
+XML_CONSTASCII_ACTION( sXML_properties, "properties" );
+XML_CONSTASCII_ACTION( sXML_protect, "protect" );
+XML_CONSTASCII_ACTION( sXML_protect_content, "content" );
+XML_CONSTASCII_ACTION( sXML_protect_position, "position" );
+XML_CONSTASCII_ACTION( sXML_protect_size, "size" );
+XML_CONSTASCII_ACTION( sXML_protected, "protected" );
+XML_CONSTASCII_ACTION( sXML_protection_key, "protection-key" );
+XML_CONSTASCII_ACTION( sXML_prsubset, "prsubset" );
+XML_CONSTASCII_ACTION( sXML_publisher, "publisher" );
+XML_CONSTASCII_ACTION( sXML_punctuation_wrap, "punctuation-wrap" );
+XML_CONSTASCII_ACTION( sXML_purple, "purple" );
+XML_CONSTASCII_ACTION( sXML_pyramid, "pyramid" );
+XML_CONSTASCII_ACTION( sXML_quarter, "quarter" );
+XML_CONSTASCII_ACTION( sXML_query_name, "query-name");
+XML_CONSTASCII_ACTION( sXML_quo_vadis, "quo-vadis" );
+XML_CONSTASCII_ACTION( sXML_quotient, "quotient" );
+XML_CONSTASCII_ACTION( sXML_r, "r" );
+XML_CONSTASCII_ACTION( sXML_radar, "radar" );
+XML_CONSTASCII_ACTION( sXML_random, "random" );
+XML_CONSTASCII_ACTION( sXML_range_address, "range-address");
+XML_CONSTASCII_ACTION( sXML_range_usable_as, "range-usable-as");
+XML_CONSTASCII_ACTION( sXML_recreate_on_edit , "recreate-on-edit" );
+XML_CONSTASCII_ACTION( sXML_rect , "rect" );
+XML_CONSTASCII_ACTION( sXML_red , "red" );
+XML_CONSTASCII_ACTION( sXML_ref_name, "ref-name" );
+XML_CONSTASCII_ACTION( sXML_reference, "reference" );
+XML_CONSTASCII_ACTION( sXML_reference_end, "reference-end" );
+XML_CONSTASCII_ACTION( sXML_reference_format, "reference-format" );
+XML_CONSTASCII_ACTION( sXML_reference_mark, "reference-mark" );
+XML_CONSTASCII_ACTION( sXML_reference_mark_end, "reference-mark-end" );
+XML_CONSTASCII_ACTION( sXML_reference_mark_start, "reference-mark-start" );
+XML_CONSTASCII_ACTION( sXML_reference_ref, "reference-ref" );
+XML_CONSTASCII_ACTION( sXML_reference_start, "reference-start" );
+XML_CONSTASCII_ACTION( sXML_reference_type, "reference-type" );
+XML_CONSTASCII_ACTION( sXML_refresh_delay, "refresh-delay" );
+XML_CONSTASCII_ACTION( sXML_region_center, "region-center" );
+XML_CONSTASCII_ACTION( sXML_region_left, "region-left" );
+XML_CONSTASCII_ACTION( sXML_region_right, "region-right" );
+XML_CONSTASCII_ACTION( sXML_register_true, "register-true" );
+XML_CONSTASCII_ACTION( sXML_register_truth_ref_style_name, "register-truth-ref-style-name" );
+XML_CONSTASCII_ACTION( sXML_regression_type, "regression-type" );
+XML_CONSTASCII_ACTION( sXML_rejected, "rejected" );
+XML_CONSTASCII_ACTION( sXML_rejecting_change_id, "rejecting-change-id" );
+XML_CONSTASCII_ACTION( sXML_rejection, "rejection" );
+XML_CONSTASCII_ACTION( sXML_rel_column_width, "rel-column-width" );
+XML_CONSTASCII_ACTION( sXML_rel_height, "rel-height" );
+XML_CONSTASCII_ACTION( sXML_rel_width, "rel-width" );
+XML_CONSTASCII_ACTION( sXML_relative, "relative" ) ;
+XML_CONSTASCII_ACTION( sXML_relative_tab_stop_position, "relative-tab-stop-position" );
+XML_CONSTASCII_ACTION( sXML_reln, "reln" ) ;
+XML_CONSTASCII_ACTION( sXML_rem, "rem" ) ;
+XML_CONSTASCII_ACTION( sXML_remove_dependents, "remove-dependents" );
+XML_CONSTASCII_ACTION( sXML_remove_precedents, "remove-precedents" );
+XML_CONSTASCII_ACTION( sXML_repeat, "repeat" );
+XML_CONSTASCII_ACTION( sXML_repeat_column, "repeat-column");
+XML_CONSTASCII_ACTION( sXML_repeat_row, "repeat-row");
+XML_CONSTASCII_ACTION( sXML_repeated, "repeated" );
+XML_CONSTASCII_ACTION( sXML_replace, "replace" );
+XML_CONSTASCII_ACTION( sXML_report_type, "report-type" );
+XML_CONSTASCII_ACTION( sXML_restart_on_page, "restart-on-page" );
+XML_CONSTASCII_ACTION( sXML_revision, "revision" );
+XML_CONSTASCII_ACTION( sXML_ridge, "ridge" );
+XML_CONSTASCII_ACTION( sXML_right, "right" );
+XML_CONSTASCII_ACTION( sXML_right_outside, "right-outside" );
+XML_CONSTASCII_ACTION( sXML_ring, "ring" );
+XML_CONSTASCII_ACTION( sXML_role, "role" );
+XML_CONSTASCII_ACTION( sXML_roll_from_bottom, "roll-from-bottom" );
+XML_CONSTASCII_ACTION( sXML_roll_from_left, "roll-from-left" );
+XML_CONSTASCII_ACTION( sXML_roll_from_right, "roll-from-right" );
+XML_CONSTASCII_ACTION( sXML_roman, "roman" );
+XML_CONSTASCII_ACTION( sXML_root, "root" );
+XML_CONSTASCII_ACTION( sXML_rotate, "rotate" );
+XML_CONSTASCII_ACTION( sXML_rotation, "rotation" );
+XML_CONSTASCII_ACTION( sXML_rotation_align, "rotation-align" );
+XML_CONSTASCII_ACTION( sXML_rotation_angle, "rotation-angle" );
+XML_CONSTASCII_ACTION( sXML_round , "round" );
+XML_CONSTASCII_ACTION( sXML_row, "row");
+XML_CONSTASCII_ACTION( sXML_rows, "rows");
+XML_CONSTASCII_ACTION( sXML_row_height, "row-height" );
+XML_CONSTASCII_ACTION( sXML_row_number, "row-number" );
+XML_CONSTASCII_ACTION( sXML_ruby, "ruby" );
+XML_CONSTASCII_ACTION( sXML_ruby_align, "ruby-align" );
+XML_CONSTASCII_ACTION( sXML_ruby_base, "ruby-base" );
+XML_CONSTASCII_ACTION( sXML_ruby_position, "ruby-position" );
+XML_CONSTASCII_ACTION( sXML_ruby_text, "ruby-text" );
+XML_CONSTASCII_ACTION( sXML_run_through, "run-through" );
+XML_CONSTASCII_ACTION( sXML_rx, "rx" );
+XML_CONSTASCII_ACTION( sXML_ry, "ry" );
+XML_CONSTASCII_ACTION( sXML_s, "s" );
+XML_CONSTASCII_ACTION( sXML_scale, "scale" );
+XML_CONSTASCII_ACTION( sXML_scale_min, "scale-min" );
+XML_CONSTASCII_ACTION( sXML_scale_text, "scale-text" );
+XML_CONSTASCII_ACTION( sXML_scale_to, "scale-to" );
+XML_CONSTASCII_ACTION( sXML_scale_to_pages, "scale-to-pages" );
+XML_CONSTASCII_ACTION( sXML_scatter, "scatter" );
+XML_CONSTASCII_ACTION( sXML_scenario, "scenario" );
+XML_CONSTASCII_ACTION( sXML_scenario_ranges, "scenario-ranges" );
+XML_CONSTASCII_ACTION( sXML_scene, "scene");
+XML_CONSTASCII_ACTION( sXML_school, "school" );
+XML_CONSTASCII_ACTION( sXML_scientific_number, "scientific-number" );
+XML_CONSTASCII_ACTION( sXML_score_spaces, "score-spaces" );
+XML_CONSTASCII_ACTION( sXML_script, "script" );
+XML_CONSTASCII_ACTION( sXML_scroll, "scroll" );
+XML_CONSTASCII_ACTION( sXML_sdev, "sdev" );
+XML_CONSTASCII_ACTION( sXML_search_criteria_must_apply_to_whole_cell, "search-criteria-must-apply-to-whole-cell" );
+XML_CONSTASCII_ACTION( sXML_sec, "sec" );
+XML_CONSTASCII_ACTION( sXML_sech, "sech" );
+XML_CONSTASCII_ACTION( sXML_second_date_time, "second-date-time" );
+XML_CONSTASCII_ACTION( sXML_seconds, "seconds" );
+XML_CONSTASCII_ACTION( sXML_section, "section" );
+XML_CONSTASCII_ACTION( sXML_section_desc, "section-desc" );
+XML_CONSTASCII_ACTION( sXML_section_name, "section-name" );
+XML_CONSTASCII_ACTION( sXML_section_source, "section-source" );
+XML_CONSTASCII_ACTION( sXML_select_page, "select-page" );
+XML_CONSTASCII_ACTION( sXML_selector, "selector" );
+XML_CONSTASCII_ACTION( sXML_semantics, "semantics" );
+XML_CONSTASCII_ACTION( sXML_semi_automatic, "semi-automatic" );
+XML_CONSTASCII_ACTION( sXML_sender_city, "sender-city" );
+XML_CONSTASCII_ACTION( sXML_sender_company, "sender-company" );
+XML_CONSTASCII_ACTION( sXML_sender_country, "sender-country" );
+XML_CONSTASCII_ACTION( sXML_sender_email, "sender-email" );
+XML_CONSTASCII_ACTION( sXML_sender_fax, "sender-fax" );
+XML_CONSTASCII_ACTION( sXML_sender_firstname, "sender-firstname" );
+XML_CONSTASCII_ACTION( sXML_sender_initials, "sender-initials" );
+XML_CONSTASCII_ACTION( sXML_sender_lastname, "sender-lastname" );
+XML_CONSTASCII_ACTION( sXML_sender_phone_private, "sender-phone-private" );
+XML_CONSTASCII_ACTION( sXML_sender_phone_work, "sender-phone-work" );
+XML_CONSTASCII_ACTION( sXML_sender_position, "sender-position" );
+XML_CONSTASCII_ACTION( sXML_sender_postal_code, "sender-postal-code" );
+XML_CONSTASCII_ACTION( sXML_sender_state_or_province, "sender-state-or-province" );
+XML_CONSTASCII_ACTION( sXML_sender_street, "sender-street" );
+XML_CONSTASCII_ACTION( sXML_sender_title, "sender-title" );
+XML_CONSTASCII_ACTION( sXML_sep, "sep" );
+XML_CONSTASCII_ACTION( sXML_separation_character, "separation-character" );
+XML_CONSTASCII_ACTION( sXML_separator, "separator" );
+XML_CONSTASCII_ACTION( sXML_sequence, "sequence" );
+XML_CONSTASCII_ACTION( sXML_sequence_decl, "sequence-decl" );
+XML_CONSTASCII_ACTION( sXML_sequence_decls, "sequence-decls" );
+XML_CONSTASCII_ACTION( sXML_sequence_ref, "sequence-ref" );
+XML_CONSTASCII_ACTION( sXML_series, "series" );
+XML_CONSTASCII_ACTION( sXML_series_source, "series-source" );
+XML_CONSTASCII_ACTION( sXML_server_map, "server-map" );
+XML_CONSTASCII_ACTION( sXML_set, "set" );
+XML_CONSTASCII_ACTION( sXML_setdiff, "setdiff" );
+XML_CONSTASCII_ACTION( sXML_settings, "settings" );
+XML_CONSTASCII_ACTION( sXML_shade_mode, "shade-mode");
+XML_CONSTASCII_ACTION( sXML_shadow, "shadow" );
+XML_CONSTASCII_ACTION( sXML_shadow_color , "shadow-color" );
+XML_CONSTASCII_ACTION( sXML_shadow_offset_x , "shadow-offset-x" );
+XML_CONSTASCII_ACTION( sXML_shadow_offset_y , "shadow-offset-y" );
+XML_CONSTASCII_ACTION( sXML_shadow_slant, "shadow-slant");
+XML_CONSTASCII_ACTION( sXML_shadow_transparency , "shadow-transparency" );
+XML_CONSTASCII_ACTION( sXML_shape, "shape" );
+XML_CONSTASCII_ACTION( sXML_shapes, "shapes" );
+XML_CONSTASCII_ACTION( sXML_sheet_name, "sheet-name" );
+XML_CONSTASCII_ACTION( sXML_shininess, "shininess" );
+XML_CONSTASCII_ACTION( sXML_short, "short" );
+XML_CONSTASCII_ACTION( sXML_show, "show" );
+XML_CONSTASCII_ACTION( sXML_show_accepted_changes, "show-accepted-changes" );
+XML_CONSTASCII_ACTION( sXML_show_rejected_changes, "show-rejected-changes" );
+XML_CONSTASCII_ACTION( sXML_show_changes, "show-changes" );
+XML_CONSTASCII_ACTION( sXML_show_changes_by_author, "show-changes-by-author" );
+XML_CONSTASCII_ACTION( sXML_show_changes_by_author_name, "show-changes-by-author-name" );
+XML_CONSTASCII_ACTION( sXML_show_changes_by_comment, "show-changes-by-comment" );
+XML_CONSTASCII_ACTION( sXML_show_changes_by_comment_text, "show-changes-by-comment-text" );
+XML_CONSTASCII_ACTION( sXML_show_changes_by_datetime, "show-changes-by-datetime" );
+XML_CONSTASCII_ACTION( sXML_show_changes_by_datetime_mode, "show-changes-by-datetime-mode" );
+XML_CONSTASCII_ACTION( sXML_show_changes_by_datetime_first_datetime, "show-changes-by-datetime-first-datetime" );
+XML_CONSTASCII_ACTION( sXML_show_changes_by_datetime_second_datetime, "show-changes-by-datetime-second-datetime" );
+XML_CONSTASCII_ACTION( sXML_show_changes_by_ranges, "show-changes-by-ranges" );
+XML_CONSTASCII_ACTION( sXML_show_changes_by_ranges_list, "show-changes-by-ranges-list" );
+XML_CONSTASCII_ACTION( sXML_show_logo, "show-logo" );
+XML_CONSTASCII_ACTION( sXML_show_unit, "show-unit" );
+XML_CONSTASCII_ACTION( sXML_shows, "shows" );
+XML_CONSTASCII_ACTION( sXML_side_by_side, "side-by-side" );
+XML_CONSTASCII_ACTION( sXML_silver, "silver" );
+XML_CONSTASCII_ACTION( sXML_simple, "simple" );
+XML_CONSTASCII_ACTION( sXML_sin, "sin" );
+XML_CONSTASCII_ACTION( sXML_since_date_time, "since-date-time" );
+XML_CONSTASCII_ACTION( sXML_since_save, "since-save" );
+XML_CONSTASCII_ACTION( sXML_sinh, "sinh" );
+XML_CONSTASCII_ACTION( sXML_size, "size" );
+XML_CONSTASCII_ACTION( sXML_size_protect, "size-protect" );
+XML_CONSTASCII_ACTION( sXML_slide, "slide" );
+XML_CONSTASCII_ACTION( sXML_slow, "slow" );
+XML_CONSTASCII_ACTION( sXML_soft_page_break, "soft-page-break" );
+XML_CONSTASCII_ACTION( sXML_solid, "solid" );
+XML_CONSTASCII_ACTION( sXML_solid_type, "solid-type" );
+XML_CONSTASCII_ACTION( sXML_sort, "sort");
+XML_CONSTASCII_ACTION( sXML_sort_ascending, "sort-ascending" );
+XML_CONSTASCII_ACTION( sXML_sort_by, "sort-by");
+XML_CONSTASCII_ACTION( sXML_sort_by_position, "sort-by-position" );
+XML_CONSTASCII_ACTION( sXML_sort_groups, "sort-groups");
+XML_CONSTASCII_ACTION( sXML_sort_key, "sort-key");
+XML_CONSTASCII_ACTION( sXML_sort_by_x_values, "sort-by-x-values" );
+XML_CONSTASCII_ACTION( sXML_source_cell_range, "source-cell-range");
+XML_CONSTASCII_ACTION( sXML_source_cell_range_addresses, "source-cell-range-addresses");
+XML_CONSTASCII_ACTION( sXML_source_field_name, "source-field-name");
+XML_CONSTASCII_ACTION( sXML_source_name, "source-name");
+XML_CONSTASCII_ACTION( sXML_source_range_address, "source-range-address");
+XML_CONSTASCII_ACTION( sXML_source_service, "source-service");
+XML_CONSTASCII_ACTION( sXML_space_before, "space-before" );
+XML_CONSTASCII_ACTION( sXML_span, "span" );
+XML_CONSTASCII_ACTION( sXML_specular, "specular");
+XML_CONSTASCII_ACTION( sXML_specular_color, "specular-color" );
+XML_CONSTASCII_ACTION( sXML_sphere, "sphere" );
+XML_CONSTASCII_ACTION( sXML_spiralin_left, "spiralin-left" );
+XML_CONSTASCII_ACTION( sXML_spiralin_right, "spiralin-right" );
+XML_CONSTASCII_ACTION( sXML_spiralout_left, "spiralout-left" );
+XML_CONSTASCII_ACTION( sXML_spiralout_right, "spiralout-right" );
+XML_CONSTASCII_ACTION( sXML_splines, "splines" );
+XML_CONSTASCII_ACTION( sXML_split, "split" );
+XML_CONSTASCII_ACTION( sXML_split_column, "split-column" );
+XML_CONSTASCII_ACTION( sXML_split_position, "split-position" );
+XML_CONSTASCII_ACTION( sXML_split_row, "split-row" );
+XML_CONSTASCII_ACTION( sXML_spreadsheet , "spreadsheet" );
+XML_CONSTASCII_ACTION( sXML_sql_statement, "sql-statement");
+XML_CONSTASCII_ACTION( sXML_stacked, "stacked" );
+XML_CONSTASCII_ACTION( sXML_stagger_even, "stagger-even" );
+XML_CONSTASCII_ACTION( sXML_stagger_odd, "stagger-odd" );
+XML_CONSTASCII_ACTION( sXML_standard, "standard" );
+XML_CONSTASCII_ACTION( sXML_standard_deviation, "standard-deviation" );
+XML_CONSTASCII_ACTION( sXML_starbasic, "starbasic" );
+XML_CONSTASCII_ACTION( sXML_start, "start" );
+XML_CONSTASCII_ACTION( sXML_start_color, "start-color" );
+XML_CONSTASCII_ACTION( sXML_start_column, "start-column" );
+XML_CONSTASCII_ACTION( sXML_start_intensity, "start-intensity" );
+XML_CONSTASCII_ACTION( sXML_start_numbering_at, "start-numbering-at" );
+XML_CONSTASCII_ACTION( sXML_start_page, "start-page" );
+XML_CONSTASCII_ACTION( sXML_start_position, "start-position" );
+XML_CONSTASCII_ACTION( sXML_start_row, "start-row" );
+XML_CONSTASCII_ACTION( sXML_start_table, "start-table" );
+XML_CONSTASCII_ACTION( sXML_start_value, "start-value" );
+XML_CONSTASCII_ACTION( sXML_start_with_navigator, "start-with-navigator" );
+XML_CONSTASCII_ACTION( sXML_statistics, "statistics" );
+XML_CONSTASCII_ACTION( sXML_status, "status" );
+XML_CONSTASCII_ACTION( sXML_stay_on_top, "stay-on-top" );
+XML_CONSTASCII_ACTION( sXML_stdev, "stdev" );
+XML_CONSTASCII_ACTION( sXML_stdevp, "stdevp" );
+XML_CONSTASCII_ACTION( sXML_steps, "steps" );
+XML_CONSTASCII_ACTION( sXML_stock, "stock" );
+XML_CONSTASCII_ACTION( sXML_stock_updown_bars, "stock-updown-bars" );
+XML_CONSTASCII_ACTION( sXML_stock_with_volume, "stock-with-volume" );
+XML_CONSTASCII_ACTION( sXML_stop, "stop" );
+XML_CONSTASCII_ACTION( sXML_stretch_from_bottom, "stretch-from-bottom" );
+XML_CONSTASCII_ACTION( sXML_stretch_from_left, "stretch-from-left" );
+XML_CONSTASCII_ACTION( sXML_stretch_from_right, "stretch-from-right" );
+XML_CONSTASCII_ACTION( sXML_stretch_from_top, "stretch-from-top" );
+XML_CONSTASCII_ACTION( sXML_stretchy, "stretchy" );
+XML_CONSTASCII_ACTION( sXML_strict , "strict" );
+XML_CONSTASCII_ACTION( sXML_string, "string");
+XML_CONSTASCII_ACTION( sXML_string_value, "string-value");
+XML_CONSTASCII_ACTION( sXML_string_value_if_false, "string-value-if-false" );
+XML_CONSTASCII_ACTION( sXML_string_value_if_true, "string-value-if-true" );
+XML_CONSTASCII_ACTION( sXML_stroke , "stroke" );
+XML_CONSTASCII_ACTION( sXML_stroke_color , "stroke-color" );
+XML_CONSTASCII_ACTION( sXML_stroke_dash , "stroke-dash" );
+XML_CONSTASCII_ACTION( sXML_stroke_linejoin , "stroke-linejoin" );
+XML_CONSTASCII_ACTION( sXML_stroke_opacity, "stroke-opacity" );
+XML_CONSTASCII_ACTION( sXML_stroke_width, "stroke-width" );
+XML_CONSTASCII_ACTION( sXML_structure_protected, "structure-protected" );
+XML_CONSTASCII_ACTION( sXML_style, "style" );
+XML_CONSTASCII_ACTION( sXML_style_name, "style-name" );
+XML_CONSTASCII_ACTION( sXML_styles, "styles" );
+XML_CONSTASCII_ACTION( sXML_stylesheet, "stylesheet" );
+XML_CONSTASCII_ACTION( sXML_sub_table, "sub-table" );
+XML_CONSTASCII_ACTION( sXML_subject, "subject" );
+XML_CONSTASCII_ACTION( sXML_subset, "subset" );
+XML_CONSTASCII_ACTION( sXML_subtitle, "subtitle" );
+XML_CONSTASCII_ACTION( sXML_subtotal_field, "subtotal-field");
+XML_CONSTASCII_ACTION( sXML_subtotal_rule, "subtotal-rule");
+XML_CONSTASCII_ACTION( sXML_subtotal_rules, "subtotal-rules");
+XML_CONSTASCII_ACTION( sXML_suffix, "suffix" );
+XML_CONSTASCII_ACTION( sXML_sum, "sum" );
+XML_CONSTASCII_ACTION( sXML_swiss, "swiss" );
+XML_CONSTASCII_ACTION( sXML_symbol, "symbol" );
+XML_CONSTASCII_ACTION( sXML_symbol_height, "symbol-height" );
+XML_CONSTASCII_ACTION( sXML_symbol_image_name, "symbol-image-name" );
+XML_CONSTASCII_ACTION( sXML_symbol_width, "symbol-width" );
+XML_CONSTASCII_ACTION( sXML_system, "system" );
+XML_CONSTASCII_ACTION( sXML_tab_stop, "tab-stop" );
+XML_CONSTASCII_ACTION( sXML_tab_stops, "tab-stops" );
+XML_CONSTASCII_ACTION( sXML_table, "table" );
+XML_CONSTASCII_ACTION( sXML_tables, "tables" );
+XML_CONSTASCII_ACTION( sXML_table_background, "table-background" );
+XML_CONSTASCII_ACTION( sXML_table_cell, "table-cell" );
+XML_CONSTASCII_ACTION( sXML_table_centering, "table-centering" );
+XML_CONSTASCII_ACTION( sXML_table_column, "table-column" );
+XML_CONSTASCII_ACTION( sXML_table_column_group, "table-column-group" );
+XML_CONSTASCII_ACTION( sXML_table_columns, "table-columns" );
+XML_CONSTASCII_ACTION( sXML_table_count, "table-count" );
+XML_CONSTASCII_ACTION( sXML_table_header, "table-header" );
+XML_CONSTASCII_ACTION( sXML_table_header_columns, "table-header-columns" );
+XML_CONSTASCII_ACTION( sXML_table_header_rows, "table-header-rows" );
+XML_CONSTASCII_ACTION( sXML_table_index, "table-index" );
+XML_CONSTASCII_ACTION( sXML_table_index_entry_template, "table-index-entry-template" );
+XML_CONSTASCII_ACTION( sXML_table_index_source, "table-index-source" );
+XML_CONSTASCII_ACTION( sXML_table_name, "table-name");
+XML_CONSTASCII_ACTION( sXML_table_number_list, "table-number-list");
+XML_CONSTASCII_ACTION( sXML_table_of_content, "table-of-content" );
+XML_CONSTASCII_ACTION( sXML_table_of_content_entry_template, "table-of-content-entry-template" );
+XML_CONSTASCII_ACTION( sXML_table_of_content_source, "table-of-content-source" );
+XML_CONSTASCII_ACTION( sXML_table_page, "table-page" );
+XML_CONSTASCII_ACTION( sXML_table_row, "table-row" );
+XML_CONSTASCII_ACTION( sXML_table_row_group, "table-row-group" );
+XML_CONSTASCII_ACTION( sXML_table_rows, "table-rows" );
+XML_CONSTASCII_ACTION( sXML_table_source, "table-source" );
+XML_CONSTASCII_ACTION( sXML_table_view, "table-view" );
+XML_CONSTASCII_ACTION( sXML_tab_stop_distance, "tab-stop-distance" );
+XML_CONSTASCII_ACTION( sXML_tan, "tan" );
+XML_CONSTASCII_ACTION( sXML_tanh, "tanh" );
+XML_CONSTASCII_ACTION( sXML_target_cell_address, "target-cell-address");
+XML_CONSTASCII_ACTION( sXML_target_frame_name, "target-frame-name" );
+XML_CONSTASCII_ACTION( sXML_target_range_address, "target-range-address");
+XML_CONSTASCII_ACTION( sXML_tb_rl, "tb-rl" );
+XML_CONSTASCII_ACTION( sXML_teal, "teal" );
+XML_CONSTASCII_ACTION( sXML_techreport, "techreport" );
+XML_CONSTASCII_ACTION( sXML_template, "template" );
+XML_CONSTASCII_ACTION( sXML_template_name, "template-name" );
+XML_CONSTASCII_ACTION( sXML_tendsto, "tendsto" );
+XML_CONSTASCII_ACTION( sXML_tex_filter, "texture-filter" );
+XML_CONSTASCII_ACTION( sXML_tex_generation_mode_x, "texture-generation-mode-x" );
+XML_CONSTASCII_ACTION( sXML_tex_generation_mode_y, "texture-generation-mode-y" );
+XML_CONSTASCII_ACTION( sXML_tex_kind, "texture-kind" );
+XML_CONSTASCII_ACTION( sXML_tex_mode, "texture-mode" );
+XML_CONSTASCII_ACTION( sXML_text, "text" );
+XML_CONSTASCII_ACTION( sXML_text_align, "text-align" );
+XML_CONSTASCII_ACTION( sXML_text_align_last, "text-align-last" );
+XML_CONSTASCII_ACTION( sXML_text_align_source, "text-align-source" );
+XML_CONSTASCII_ACTION( sXML_text_autospace, "text-autospace" );
+XML_CONSTASCII_ACTION( sXML_text_background_color, "text-background-color" );
+XML_CONSTASCII_ACTION( sXML_text_blinking, "text-blinking" );
+XML_CONSTASCII_ACTION( sXML_text_box, "text-box" );
+XML_CONSTASCII_ACTION( sXML_text_combine, "text-combine" );
+XML_CONSTASCII_ACTION( sXML_text_combine_end_char, "text-combine-end-char" );
+XML_CONSTASCII_ACTION( sXML_text_combine_start_char, "text-combine-start-char" );
+XML_CONSTASCII_ACTION( sXML_text_content, "text-content" );
+XML_CONSTASCII_ACTION( sXML_text_crossing_out, "text-crossing-out" );
+XML_CONSTASCII_ACTION( sXML_text_emphasize, "text-emphasize" );
+XML_CONSTASCII_ACTION( sXML_text_global, "text-global" );
+XML_CONSTASCII_ACTION( sXML_text_indent, "text-indent" );
+XML_CONSTASCII_ACTION( sXML_text_input, "text-input" );
+XML_CONSTASCII_ACTION( sXML_text_outline, "text-outline" );
+XML_CONSTASCII_ACTION( sXML_text_position, "text-position" );
+XML_CONSTASCII_ACTION( sXML_text_rotation_angle, "text-rotation-angle" );
+XML_CONSTASCII_ACTION( sXML_text_rotation_scale, "text-rotation-scale" );
+XML_CONSTASCII_ACTION( sXML_text_scale, "text-scale" );
+XML_CONSTASCII_ACTION( sXML_text_shadow, "text-shadow" );
+XML_CONSTASCII_ACTION( sXML_text_style, "text-style" );
+XML_CONSTASCII_ACTION( sXML_text_transform, "text-transform" );
+XML_CONSTASCII_ACTION( sXML_text_underline, "text-underline" );
+XML_CONSTASCII_ACTION( sXML_text_underline_color, "text-underline-color" );
+XML_CONSTASCII_ACTION( sXML_textarea_horizontal_align, "textarea-horizontal-align" );
+XML_CONSTASCII_ACTION( sXML_textarea_vertical_align, "textarea-vertical-align" );
+XML_CONSTASCII_ACTION( sXML_textual, "textual" );
+XML_CONSTASCII_ACTION( sXML_thick, "thick" );
+XML_CONSTASCII_ACTION( sXML_thin, "thin" );
+XML_CONSTASCII_ACTION( sXML_three_dimensional, "three-dimensional" );
+XML_CONSTASCII_ACTION( sXML_thumbnail, "thumbnail" );
+XML_CONSTASCII_ACTION( sXML_tick_marks_major_inner, "tick-marks-major-inner" );
+XML_CONSTASCII_ACTION( sXML_tick_marks_major_outer, "tick-marks-major-outer" );
+XML_CONSTASCII_ACTION( sXML_tick_marks_minor_inner, "tick-marks-minor-inner" );
+XML_CONSTASCII_ACTION( sXML_tick_marks_minor_outer, "tick-marks-minor-outer" );
+XML_CONSTASCII_ACTION( sXML_tile_repeat_offset, "tile-repeat-offset" );
+XML_CONSTASCII_ACTION( sXML_time, "time");
+XML_CONSTASCII_ACTION( sXML_time_adjust, "time-adjust" );
+XML_CONSTASCII_ACTION( sXML_time_style, "time-style" );
+XML_CONSTASCII_ACTION( sXML_time_value, "time-value");
+XML_CONSTASCII_ACTION( sXML_times, "times");
+XML_CONSTASCII_ACTION( sXML_title, "title" );
+XML_CONSTASCII_ACTION( sXML_to_another_table, "to-another-table" );
+XML_CONSTASCII_ACTION( sXML_toc_mark, "toc-mark" );
+XML_CONSTASCII_ACTION( sXML_toc_mark_end, "toc-mark-end" );
+XML_CONSTASCII_ACTION( sXML_toc_mark_start, "toc-mark-start" );
+XML_CONSTASCII_ACTION( sXML_top, "top" );
+XML_CONSTASCII_ACTION( sXML_top_percent, "top percent");
+XML_CONSTASCII_ACTION( sXML_top_values, "top values");
+XML_CONSTASCII_ACTION( sXML_trace_dependents, "trace-dependents" );
+XML_CONSTASCII_ACTION( sXML_trace_errors, "trace-errors" );
+XML_CONSTASCII_ACTION( sXML_trace_precedents, "trace-precedents" );
+XML_CONSTASCII_ACTION( sXML_track_changes, "track-changes" );
+XML_CONSTASCII_ACTION( sXML_tracked_changes, "tracked-changes" );
+XML_CONSTASCII_ACTION( sXML_tracked_changes_view_settings, "tracked-changes-view-settings" );
+XML_CONSTASCII_ACTION( sXML_transform , "transform" );
+XML_CONSTASCII_ACTION( sXML_transition_on_click, "transition-on-click" );
+XML_CONSTASCII_ACTION( sXML_transparency, "transparency" );
+XML_CONSTASCII_ACTION( sXML_transparency_name, "transparency-name" );
+XML_CONSTASCII_ACTION( sXML_transparent, "transparent" );
+XML_CONSTASCII_ACTION( sXML_transpose, "transpose" );
+XML_CONSTASCII_ACTION( sXML_true, "true" );
+XML_CONSTASCII_ACTION( sXML_truncate_on_overflow, "truncate-on-overflow" );
+XML_CONSTASCII_ACTION( sXML_ttb, "ttb");
+XML_CONSTASCII_ACTION( sXML_type, "type" );
+XML_CONSTASCII_ACTION( sXML_underline_bold, "bold" );
+XML_CONSTASCII_ACTION( sXML_underline_bold_dash, "bold-dash" );
+XML_CONSTASCII_ACTION( sXML_underline_bold_dot_dash, "bold-dot-dash" );
+XML_CONSTASCII_ACTION( sXML_underline_bold_dot_dot_dash, "bold-dot-dot-dash" );
+XML_CONSTASCII_ACTION( sXML_underline_bold_dotted, "bold-dotted" );
+XML_CONSTASCII_ACTION( sXML_underline_bold_long_dash, "bold-long-dash" );
+XML_CONSTASCII_ACTION( sXML_underline_bold_wave, "bold-wave" );
+XML_CONSTASCII_ACTION( sXML_underline_dash, "dash" );
+XML_CONSTASCII_ACTION( sXML_underline_dot_dash, "dot-dash" );
+XML_CONSTASCII_ACTION( sXML_underline_dot_dot_dash, "dot-dot-dash" );
+XML_CONSTASCII_ACTION( sXML_underline_dotted, "dotted" );
+XML_CONSTASCII_ACTION( sXML_underline_double, "double" );
+XML_CONSTASCII_ACTION( sXML_underline_double_wave, "double-wave" );
+XML_CONSTASCII_ACTION( sXML_underline_long_dash, "long-dash" );
+XML_CONSTASCII_ACTION( sXML_underline_none, "none" );
+XML_CONSTASCII_ACTION( sXML_underline_single, "single" );
+XML_CONSTASCII_ACTION( sXML_underline_small_wave, "small-wave" );
+XML_CONSTASCII_ACTION( sXML_underline_wave, "wave" );
+XML_CONSTASCII_ACTION( sXML_unformatted_text, "unformatted-text" );
+XML_CONSTASCII_ACTION( sXML_union, "union" );
+XML_CONSTASCII_ACTION( sXML_unit, "unit" );
+XML_CONSTASCII_ACTION( sXML_unordered_list, "unordered-list" );
+XML_CONSTASCII_ACTION( sXML_unpublished, "unpublished" );
+XML_CONSTASCII_ACTION( sXML_uplimit, "uplimit" );
+XML_CONSTASCII_ACTION( sXML_url, "url" );
+XML_CONSTASCII_ACTION( sXML_use_caption, "use-caption" );
+XML_CONSTASCII_ACTION( sXML_use_cell_protection, "use-cell-protection" );
+XML_CONSTASCII_ACTION( sXML_use_chart_objects, "use-chart-objects" );
+XML_CONSTASCII_ACTION( sXML_use_condition, "use-condition" );
+XML_CONSTASCII_ACTION( sXML_use_draw_objects, "use-draw-objects" );
+XML_CONSTASCII_ACTION( sXML_use_floating_frames, "use-floating-frames" );
+XML_CONSTASCII_ACTION( sXML_use_graphics, "use-graphics" );
+XML_CONSTASCII_ACTION( sXML_use_image_objects, "use-image-objects" );
+XML_CONSTASCII_ACTION( sXML_use_index_marks, "use-index-marks" );
+XML_CONSTASCII_ACTION( sXML_use_index_source_styles, "use-index-source-styles" );
+XML_CONSTASCII_ACTION( sXML_use_keys_as_entries, "use-keys-as-entries" );
+XML_CONSTASCII_ACTION( sXML_use_label, "use-label" );
+XML_CONSTASCII_ACTION( sXML_use_math_objects, "use-math-objects" );
+XML_CONSTASCII_ACTION( sXML_use_objects, "use-objects" );
+XML_CONSTASCII_ACTION( sXML_use_optimal_column_width, "use-optimal-column-width");
+XML_CONSTASCII_ACTION( sXML_use_optimal_row_height, "use-optimal-row-height");
+XML_CONSTASCII_ACTION( sXML_use_other_objects, "use-other-objects" );
+XML_CONSTASCII_ACTION( sXML_use_soft_page_breaks, "use-soft-page-breaks" );
+XML_CONSTASCII_ACTION( sXML_use_spreadsheet_objects, "use-spreadsheet-objects" );
+XML_CONSTASCII_ACTION( sXML_use_styles, "use-styles" );
+XML_CONSTASCII_ACTION( sXML_use_tables, "use-tables" );
+XML_CONSTASCII_ACTION( sXML_use_window_font_color, "use-window-font-color" );
+XML_CONSTASCII_ACTION( sXML_used_hierarchy, "used-hierarchy");
+XML_CONSTASCII_ACTION( sXML_user_defined, "user-defined" );
+XML_CONSTASCII_ACTION( sXML_user_field_decl, "user-field-decl" );
+XML_CONSTASCII_ACTION( sXML_user_field_decls, "user-field-decls" );
+XML_CONSTASCII_ACTION( sXML_user_field_get, "user-field-get" );
+XML_CONSTASCII_ACTION( sXML_user_field_input, "user-field-input" );
+XML_CONSTASCII_ACTION( sXML_user_index, "user-index" );
+XML_CONSTASCII_ACTION( sXML_user_index_entry_template, "user-index-entry-template" );
+XML_CONSTASCII_ACTION( sXML_user_index_mark, "user-index-mark" );
+XML_CONSTASCII_ACTION( sXML_user_index_mark_end, "user-index-mark-end" );
+XML_CONSTASCII_ACTION( sXML_user_index_mark_start, "user-index-mark-start" );
+XML_CONSTASCII_ACTION( sXML_user_index_source, "user-index-source" );
+XML_CONSTASCII_ACTION( sXML_user_transformed, "user-transformed" );
+XML_CONSTASCII_ACTION( sXML_username, "username");
+XML_CONSTASCII_ACTION( sXML_value, "value");
+XML_CONSTASCII_ACTION( sXML_value_type, "value-type");
+XML_CONSTASCII_ACTION( sXML_values_cell_range_address, "values-cell-range-address" );
+XML_CONSTASCII_ACTION( sXML_var, "var" );
+XML_CONSTASCII_ACTION( sXML_variable, "variable" );
+XML_CONSTASCII_ACTION( sXML_variable_decl, "variable-decl" );
+XML_CONSTASCII_ACTION( sXML_variable_decls, "variable-decls" );
+XML_CONSTASCII_ACTION( sXML_variable_get, "variable-get" );
+XML_CONSTASCII_ACTION( sXML_variable_input, "variable-input" );
+XML_CONSTASCII_ACTION( sXML_variable_set, "variable-set" );
+XML_CONSTASCII_ACTION( sXML_variance, "variance" );
+XML_CONSTASCII_ACTION( sXML_varp, "varp" );
+XML_CONSTASCII_ACTION( sXML_vector, "vector" );
+XML_CONSTASCII_ACTION( sXML_verb, "verb" );
+XML_CONSTASCII_ACTION( sXML_version, "version" );
+XML_CONSTASCII_ACTION( sXML_version_entry, "version-entry" );
+XML_CONSTASCII_ACTION( sXML_version_list, "version-list" );
+XML_CONSTASCII_ACTION( sXML_vertical, "vertical" );
+XML_CONSTASCII_ACTION( sXML_vertical_align, "vertical-align" );
+XML_CONSTASCII_ACTION( sXML_vertical_lines, "vertical-lines" );
+XML_CONSTASCII_ACTION( sXML_vertical_pos, "vertical-pos" );
+XML_CONSTASCII_ACTION( sXML_vertical_rel, "vertical-rel" );
+XML_CONSTASCII_ACTION( sXML_vertical_segments, "vertical-segments" );
+XML_CONSTASCII_ACTION( sXML_vertical_split_mode, "vertical-split-mode" );
+XML_CONSTASCII_ACTION( sXML_vertical_split_position, "vertical-split-position" );
+XML_CONSTASCII_ACTION( sXML_vertical_stripes, "vertical-stripes" );
+XML_CONSTASCII_ACTION( sXML_view, "view" );
+XML_CONSTASCII_ACTION( sXML_viewBox, "viewBox" );
+XML_CONSTASCII_ACTION( sXML_view_id, "view-id" );
+XML_CONSTASCII_ACTION( sXML_view_settings, "view-settings" );
+XML_CONSTASCII_ACTION( sXML_visibility, "visibility" );
+XML_CONSTASCII_ACTION( sXML_visible, "visible" );
+XML_CONSTASCII_ACTION( sXML_visible_area, "visible-area" );
+XML_CONSTASCII_ACTION( sXML_visible_area_height, "visible-area-height" );
+XML_CONSTASCII_ACTION( sXML_visible_area_left, "visible-area-left" );
+XML_CONSTASCII_ACTION( sXML_visible_area_top, "visible-area-top" );
+XML_CONSTASCII_ACTION( sXML_visible_area_width, "visible-area-width" );
+XML_CONSTASCII_ACTION( sXML_visited_style_name, "visited-style-name" );
+XML_CONSTASCII_ACTION( sXML_volatile, "volatile" );
+XML_CONSTASCII_ACTION( sXML_volume, "volume" );
+XML_CONSTASCII_ACTION( sXML_vpn, "vpn");
+XML_CONSTASCII_ACTION( sXML_vrp, "vrp");
+XML_CONSTASCII_ACTION( sXML_vup, "vup");
+XML_CONSTASCII_ACTION( sXML_wall, "wall" );
+XML_CONSTASCII_ACTION( sXML_warning, "warning" );
+XML_CONSTASCII_ACTION( sXML_watermark, "watermark" );
+XML_CONSTASCII_ACTION( sXML_wavyline_from_bottom, "wavyline-from-bottom" );
+XML_CONSTASCII_ACTION( sXML_wavyline_from_left, "wavyline-from-left" );
+XML_CONSTASCII_ACTION( sXML_wavyline_from_right, "wavyline-from-right" );
+XML_CONSTASCII_ACTION( sXML_wavyline_from_top, "wavyline-from-top" );
+XML_CONSTASCII_ACTION( sXML_week_of_year, "week-of-year" );
+XML_CONSTASCII_ACTION( sXML_weight_bold, "bold" );
+XML_CONSTASCII_ACTION( sXML_weight_normal, "normal" );
+XML_CONSTASCII_ACTION( sXML_white, "white" );
+XML_CONSTASCII_ACTION( sXML_whole_page, "whole-page" );
+XML_CONSTASCII_ACTION( sXML_widows, "widows" );
+XML_CONSTASCII_ACTION( sXML_width, "width" );
+XML_CONSTASCII_ACTION( sXML_word, "word" );
+XML_CONSTASCII_ACTION( sXML_word_count, "word-count" );
+XML_CONSTASCII_ACTION( sXML_wrap, "wrap" );
+XML_CONSTASCII_ACTION( sXML_wrap_contour, "wrap-contour" );
+XML_CONSTASCII_ACTION( sXML_wrap_contour_mode, "wrap-contour-mode" );
+XML_CONSTASCII_ACTION( sXML_wrap_option, "wrap-option" );
+XML_CONSTASCII_ACTION( sXML_writing_mode, "writing-mode" );
+XML_CONSTASCII_ACTION( sXML_www, "www" );
+XML_CONSTASCII_ACTION( sXML_x, "x" );
+XML_CONSTASCII_ACTION( sXML_x1, "x1" );
+XML_CONSTASCII_ACTION( sXML_x2, "x2" );
+XML_CONSTASCII_ACTION( sXML_x_mac_roman, "x-mac-roman" );
+XML_CONSTASCII_ACTION( sXML_x_symbol, "x-symbol" );
+XML_CONSTASCII_ACTION( sXML_x_system, "x-system" );
+XML_CONSTASCII_ACTION( sXML_xor, "xor" );
+XML_CONSTASCII_ACTION( sXML_y, "y" );
+XML_CONSTASCII_ACTION( sXML_y1, "y1" );
+XML_CONSTASCII_ACTION( sXML_y2, "y2" );
+XML_CONSTASCII_ACTION( sXML_year, "year" );
+XML_CONSTASCII_ACTION( sXML_yellow, "yellow" );
+XML_CONSTASCII_ACTION( sXML_zero_values, "zero-values" );
+XML_CONSTASCII_ACTION( sXML_zindex, "z-index" );
+XML_CONSTASCII_ACTION( sXML_zoom_type, "zoom-type" );
+XML_CONSTASCII_ACTION( sXML_zoom_value, "zoom-value" );
+
+XML_CONSTASCII_ACTION( sXML_start_shape, "start-shape");
+XML_CONSTASCII_ACTION( sXML_start_glue_point, "start-glue-point");
+XML_CONSTASCII_ACTION( sXML_end_shape, "end-shape");
+XML_CONSTASCII_ACTION( sXML_end_glue_point, "end-glue-point");
+XML_CONSTASCII_ACTION( sXML_line_number, "line-number");
+XML_CONSTASCII_ACTION( sXML_line_skew, "line-skew");
+XML_CONSTASCII_ACTION( sXML_curve, "curve" );
+XML_CONSTASCII_ACTION( sXML_start_line_spacing_horizontal, "start-line-spacing-horizontal" );
+XML_CONSTASCII_ACTION( sXML_start_line_spacing_vertical, "start-line-spacing-vertical" );
+XML_CONSTASCII_ACTION( sXML_end_line_spacing_horizontal, "end-line-spacing-horizontal" );
+XML_CONSTASCII_ACTION( sXML_end_line_spacing_vertical, "end-line-spacing-vertical" );
+XML_CONSTASCII_ACTION( sXML_line_distance, "line-distance" );
+XML_CONSTASCII_ACTION( sXML_guide_overhang, "guide-overhang" );
+XML_CONSTASCII_ACTION( sXML_guide_distance, "guide-distance" );
+XML_CONSTASCII_ACTION( sXML_start_guide, "start-guide" );
+XML_CONSTASCII_ACTION( sXML_end_guide, "end-guide" );
+
+XML_CONSTASCII_ACTION( sXML_dots1, "dots1" );
+XML_CONSTASCII_ACTION( sXML_dots1_length, "dots1-length" );
+XML_CONSTASCII_ACTION( sXML_dots2, "dots2" );
+XML_CONSTASCII_ACTION( sXML_dots2_length, "dots2-length" );
+XML_CONSTASCII_ACTION( sXML_enable_numbering, "enable-numbering" );
+
+XML_CONSTASCII_ACTION( sXML_top_left, "top-left" );
+XML_CONSTASCII_ACTION( sXML_top_right, "top-right" );
+XML_CONSTASCII_ACTION( sXML_bottom_left, "bottom-left" );
+XML_CONSTASCII_ACTION( sXML_bottom_right, "bottom-right" );
+
+XML_CONSTASCII_ACTION( sXML_fill_image_ref_point, "fill-image-ref-point" );
+XML_CONSTASCII_ACTION( sXML_fill_image_ref_point_x, "fill-image-ref-point-x" );
+XML_CONSTASCII_ACTION( sXML_fill_image_ref_point_y, "fill-image-ref-point-y" );
+
+XML_CONSTASCII_ACTION( sXML_from_right, "from-right" );
+XML_CONSTASCII_ACTION( sXML_from_bottom, "from-bottom" );
+XML_CONSTASCII_ACTION( sXML_from_center, "from-center" );
+XML_CONSTASCII_ACTION( sXML_from_upper_left, "from-upper-left" );
+XML_CONSTASCII_ACTION( sXML_from_upper_right, "from-upper-right" );
+XML_CONSTASCII_ACTION( sXML_from_lower_left, "from-lower-left" );
+XML_CONSTASCII_ACTION( sXML_from_lower_right, "from-lower-right" );
+XML_CONSTASCII_ACTION( sXML_to_left, "to-left" );
+XML_CONSTASCII_ACTION( sXML_to_top, "to-top" );
+XML_CONSTASCII_ACTION( sXML_to_right, "to-right" );
+XML_CONSTASCII_ACTION( sXML_to_bottom, "to-bottom" );
+XML_CONSTASCII_ACTION( sXML_to_upper_left, "to-upper-left" );
+XML_CONSTASCII_ACTION( sXML_to_upper_right, "to-upper-right" );
+XML_CONSTASCII_ACTION( sXML_to_lower_right, "to-lower-right" );
+XML_CONSTASCII_ACTION( sXML_to_lower_left, "to-lower-left" );
+XML_CONSTASCII_ACTION( sXML_to_center, "to-center" );
+XML_CONSTASCII_ACTION( sXML_counter_clockwise, "counter-clockwise" );
+
+XML_CONSTASCII_ACTION( sXML_fade, "fade" );
+XML_CONSTASCII_ACTION( sXML_move, "move" );
+XML_CONSTASCII_ACTION( sXML_stripes, "stripes" );
+XML_CONSTASCII_ACTION( sXML_spiral_inward_left, "spiral-inward-left" );
+XML_CONSTASCII_ACTION( sXML_spiral_inward_right, "spiral-inward-right" );
+XML_CONSTASCII_ACTION( sXML_spiral_outward_left, "spiral-outward-left" );
+XML_CONSTASCII_ACTION( sXML_spiral_outward_right, "spiral-outward-right" );
+XML_CONSTASCII_ACTION( sXML_spiral, "spiral" );
+XML_CONSTASCII_ACTION( sXML_spiral_in, "spiral-in" );
+XML_CONSTASCII_ACTION( sXML_spiral_out, "spiral-out" );
+XML_CONSTASCII_ACTION( sXML_wavyline, "wavyline" );
+XML_CONSTASCII_ACTION( sXML_laser, "laser" );
+XML_CONSTASCII_ACTION( sXML_appear, "appear" );
+XML_CONSTASCII_ACTION( sXML_hide, "hide" );
+XML_CONSTASCII_ACTION( sXML_move_short, "move-short" );
+XML_CONSTASCII_ACTION( sXML_checkerboard, "checkerboard" );
+XML_CONSTASCII_ACTION( sXML_stretch, "stretch" );
+
+XML_CONSTASCII_ACTION( sXML_shape_id, "shape-id" );
+XML_CONSTASCII_ACTION( sXML_effect, "effect" );
+XML_CONSTASCII_ACTION( sXML_speed, "speed" );
+XML_CONSTASCII_ACTION( sXML_start_scale, "start-scale" );
+XML_CONSTASCII_ACTION( sXML_show_shape, "show-shape" );
+XML_CONSTASCII_ACTION( sXML_show_text, "show-text" );
+XML_CONSTASCII_ACTION( sXML_hide_shape, "hide-shape" );
+XML_CONSTASCII_ACTION( sXML_hide_text, "hide-text" );
+XML_CONSTASCII_ACTION( sXML_dim, "dim" );
+XML_CONSTASCII_ACTION( sXML_sound, "sound" );
+XML_CONSTASCII_ACTION( sXML_play_full, "play-full" );
+XML_CONSTASCII_ACTION( sXML_path_id, "path-id" );
+
+XML_CONSTASCII_ACTION( sXML_animations, "animations" );
+
+XML_CONSTASCII_ACTION( sXML_kind, "kind" );
+XML_CONSTASCII_ACTION( sXML_start_angle, "start-angle" );
+XML_CONSTASCII_ACTION( sXML_cut, "cut" );
+XML_CONSTASCII_ACTION( sXML_arc, "arc" );
+
+XML_CONSTASCII_ACTION( sXML_upright, "upright" );
+XML_CONSTASCII_ACTION( sXML_slant_x, "slant-x" );
+XML_CONSTASCII_ACTION( sXML_slant_y, "slant-y" );
+XML_CONSTASCII_ACTION( sXML_autosize, "autosize" );
+XML_CONSTASCII_ACTION( sXML_slant, "slant" );
+XML_CONSTASCII_ACTION( sXML_topcircle, "top-circle" );
+XML_CONSTASCII_ACTION( sXML_bottomcircle, "bottom-circle" );
+XML_CONSTASCII_ACTION( sXML_leftcircle, "left-circle" );
+XML_CONSTASCII_ACTION( sXML_rightcircle, "right-circle" );
+XML_CONSTASCII_ACTION( sXML_toparc, "top-arc" );
+XML_CONSTASCII_ACTION( sXML_bottomarc, "bottom-arc" );
+XML_CONSTASCII_ACTION( sXML_leftarc, "left-arc" );
+XML_CONSTASCII_ACTION( sXML_rightarc, "right-arc" );
+XML_CONSTASCII_ACTION( sXML_button1, "button1" );
+XML_CONSTASCII_ACTION( sXML_button2, "button2" );
+XML_CONSTASCII_ACTION( sXML_button3, "button3" );
+XML_CONSTASCII_ACTION( sXML_button4, "button4" );
+
+XML_CONSTASCII_ACTION( sXML_caption_type, "caption-type" );
+XML_CONSTASCII_ACTION( sXML_caption_angle_type, "caption-angle-type" );
+XML_CONSTASCII_ACTION( sXML_caption_angle, "caption-angle" );
+XML_CONSTASCII_ACTION( sXML_caption_gap, "caption-gap" );
+XML_CONSTASCII_ACTION( sXML_caption_escape_direction, "caption-escape-direction" );
+XML_CONSTASCII_ACTION( sXML_caption_escape, "caption-escape" );
+XML_CONSTASCII_ACTION( sXML_caption_line_length, "caption-line-length" );
+XML_CONSTASCII_ACTION( sXML_caption_fit_line_length, "caption-fit-line-length" );
+XML_CONSTASCII_ACTION( sXML_free, "free" );
+
+XML_CONSTASCII_ACTION( sXML_straight_line, "straight-line" );
+XML_CONSTASCII_ACTION( sXML_angled_line, "angled-line" );
+XML_CONSTASCII_ACTION( sXML_angled_connector_line, "angled-connector-line" );
+
+XML_CONSTASCII_ACTION( sXML_data_source_has_labels, "data-source-has-labels" );
+
+XML_CONSTASCII_ACTION( sXML_play, "play" );
+XML_CONSTASCII_ACTION( sXML_handout_master, "handout-master" );
+
+XML_CONSTASCII_ACTION( sXML_escape_direction, "escape-direction" );
+XML_CONSTASCII_ACTION( sXML_glue_point, "glue-point" );
+
+XML_CONSTASCII_ACTION( sXML_text_style_name, "text-style-name" );
+
+XML_CONSTASCII_ACTION( sXML_sort_algorithm, "sort-algorithm" );
+XML_CONSTASCII_ACTION( sXML_roll_from_top, "roll-from-top" );
+
+XML_CONSTASCII_ACTION( sXML_script_data, "script-data" );
+XML_CONSTASCII_ACTION( sXML_libraries, "libraries" );
+XML_CONSTASCII_ACTION( sXML_source_code, "source-code" );
+XML_CONSTASCII_ACTION( sXML_readonly, "readonly" );
+
+XML_CONSTASCII_ACTION( sXML_page_continuation, "page-continuation" );
+
+XML_CONSTASCII_ACTION( sXML_contains, "contains" );
+XML_CONSTASCII_ACTION( sXML_does_not_contain, "does-not-contain" );
+XML_CONSTASCII_ACTION( sXML_begins_with, "begins-with" );
+XML_CONSTASCII_ACTION( sXML_does_not_begin_with, "does-not-begin-with" );
+XML_CONSTASCII_ACTION( sXML_ends_with, "ends-with" );
+XML_CONSTASCII_ACTION( sXML_does_not_end_with, "does-not-end-with" );
+
+#endif
diff --git a/xmloff/inc/xmlnmspe.hxx b/xmloff/inc/xmloff/xmlnmspe.hxx
index 7b7b7e131ec7..7b7b7e131ec7 100644
--- a/xmloff/inc/xmlnmspe.hxx
+++ b/xmloff/inc/xmloff/xmlnmspe.hxx
diff --git a/xmloff/inc/xmlreg.hxx b/xmloff/inc/xmloff/xmlreg.hxx
index 5b835630ab03..5b835630ab03 100644
--- a/xmloff/inc/xmlreg.hxx
+++ b/xmloff/inc/xmloff/xmlreg.hxx
diff --git a/xmloff/inc/xmltabe.hxx b/xmloff/inc/xmloff/xmltabe.hxx
index 988261eb5768..988261eb5768 100644
--- a/xmloff/inc/xmltabe.hxx
+++ b/xmloff/inc/xmloff/xmltabe.hxx
diff --git a/xmloff/inc/xmloff/xmltoken.hxx b/xmloff/inc/xmloff/xmltoken.hxx
index 80238a075973..291c99c7be21 100644
--- a/xmloff/inc/xmloff/xmltoken.hxx
+++ b/xmloff/inc/xmloff/xmltoken.hxx
@@ -3113,6 +3113,9 @@ namespace xmloff { namespace token {
XML_OUTSIDE_MINIMUM,//#i114142#
XML_OUTSIDE_MAXIMUM,//#i114142#
+ XML_MIN_VALUE,
+ XML_MAX_VALUE,
+
XML_TOKEN_END
};
diff --git a/xmloff/inc/xmlversion.hxx b/xmloff/inc/xmlversion.hxx
index e007776ba71f..da30b5e20dd2 100644
--- a/xmloff/inc/xmlversion.hxx
+++ b/xmloff/inc/xmlversion.hxx
@@ -37,7 +37,7 @@
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include <xmlnmspe.hxx>
+#include <xmloff/xmlnmspe.hxx>
#include <xmloff/xmltoken.hxx>
// ------------------------------------------------------------------------
diff --git a/xmloff/prj/build.lst b/xmloff/prj/build.lst
index 7b68ed08ff82..d075f1fc6fcb 100644
--- a/xmloff/prj/build.lst
+++ b/xmloff/prj/build.lst
@@ -1,17 +1,5 @@
-xo xmloff : offapi svl vos NULL
-xo xmloff usr1 - all xo_mkout NULL
-xo xmloff\prj get - all xo_prj NULL
-xo xmloff\inc nmake - all xo_inc NULL
-xo xmloff\source\core nmake - all xo_core xo_inc NULL
-xo xmloff\source\meta nmake - all xo_meta xo_inc NULL
-xo xmloff\source\style nmake - all xo_style xo_inc NULL
-xo xmloff\source\text nmake - all xo_text xo_inc NULL
-xo xmloff\source\draw nmake - all xo_draw xo_inc NULL
-xo xmloff\source\chart nmake - all xo_chart xo_inc NULL
-xo xmloff\source\forms nmake - all xo_forms xo_inc NULL
-xo xmloff\source\script nmake - all xo_script xo_inc NULL
-xo xmloff\source\transform nmake - all xo_transform xo_util xo_inc NULL
-xo xmloff\source\xforms nmake - all xo_xforms xo_inc NULL
-xo xmloff\source\table nmake - all xo_table xo_inc NULL
-xo xmloff\util nmake - all xo_util xo_chart xo_core xo_draw xo_forms xo_meta xo_script xo_style xo_text xo_xforms xo_table NULL
+xo xmloff : LIBXSLT:libxslt offapi svl vos NULL
+zxo xmloff\prj nmake - all xo_prj NULL
+
xo xmloff\qa\unoapi nmake - all xo_qa_unoapi NULL
+
diff --git a/xmloff/prj/d.lst b/xmloff/prj/d.lst
index 9bbfe05f3ac4..e69de29bb2d1 100644
--- a/xmloff/prj/d.lst
+++ b/xmloff/prj/d.lst
@@ -1,120 +0,0 @@
-mkdir: %_DEST%\inc%_EXT%\xmloff
-
-..\%__SRC%\misc\*.map %_DEST%\bin%_EXT%\*.map
-..\%__SRC%\lib\ixo.lib %_DEST%\lib%_EXT%\ixo.lib
-..\%__SRC%\lib\xol.lib %_DEST%\lib%_EXT%\xol.lib
-..\%__SRC%\lib\libxol.a %_DEST%\lib%_EXT%\libxol.a
-..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
-..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%\lib*.so
-..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
-
-..\dtd\* %_DEST%\bin%_EXT%
-
-..\inc\xmloff\odffields.hxx %_DEST%\inc%_EXT%\xmloff\odffields.hxx
-..\inc\xmloff\dllapi.h %_DEST%\inc%_EXT%\xmloff\dllapi.h
-..\inc\xmloff\attrlist.hxx %_DEST%\inc%_EXT%\xmloff\attrlist.hxx
-..\inc\i18nmap.hxx %_DEST%\inc%_EXT%\xmloff\i18nmap.hxx
-..\inc\xmloff\nmspmap.hxx %_DEST%\inc%_EXT%\xmloff\nmspmap.hxx
-..\inc\unoatrcn.hxx %_DEST%\inc%_EXT%\xmloff\unoatrcn.hxx
-..\inc\xmloff\xmlcnimp.hxx %_DEST%\inc%_EXT%\xmloff\xmlcnimp.hxx
-..\inc\xmlcnitm.hxx %_DEST%\inc%_EXT%\xmloff\xmlcnitm.hxx
-..\inc\xmloff\xmlement.hxx %_DEST%\inc%_EXT%\xmloff\xmlement.hxx
-..\inc\xmloff\xmlictxt.hxx %_DEST%\inc%_EXT%\xmloff\xmlictxt.hxx
-..\inc\xmloff\xmlimp.hxx %_DEST%\inc%_EXT%\xmloff\xmlimp.hxx
-..\inc\xmloff\xmlmetae.hxx %_DEST%\inc%_EXT%\xmloff\xmlmetae.hxx
-..\inc\xmloff\xmlmetai.hxx %_DEST%\inc%_EXT%\xmloff\xmlmetai.hxx
-..\inc\xmloff\xmlscripti.hxx %_DEST%\inc%_EXT%\xmloff\xmlscripti.hxx
-..\inc\xmloff\xmlstyle.hxx %_DEST%\inc%_EXT%\xmloff\xmlstyle.hxx
-..\inc\xmloff\xmltkmap.hxx %_DEST%\inc%_EXT%\xmloff\xmltkmap.hxx
-..\inc\xmloff\xmluconv.hxx %_DEST%\inc%_EXT%\xmloff\xmluconv.hxx
-..\inc\xmlnmspe.hxx %_DEST%\inc%_EXT%\xmloff\xmlnmspe.hxx
-..\inc\xmloff\xmlnumfi.hxx %_DEST%\inc%_EXT%\xmloff\xmlnumfi.hxx
-..\inc\xmloff\xmlnumfe.hxx %_DEST%\inc%_EXT%\xmloff\xmlnumfe.hxx
-..\inc\xmloff\xmlexp.hxx %_DEST%\inc%_EXT%\xmloff\xmlexp.hxx
-..\inc\xmlreg.hxx %_DEST%\inc%_EXT%\xmloff\xmlreg.hxx
-..\inc\xmloff\xmlnumi.hxx %_DEST%\inc%_EXT%\xmloff\xmlnumi.hxx
-..\inc\xmloff\xmlnume.hxx %_DEST%\inc%_EXT%\xmloff\xmlnume.hxx
-..\inc\xmltabe.hxx %_DEST%\inc%_EXT%\xmloff\xmltabe.hxx
-..\inc\xmloff\maptype.hxx %_DEST%\inc%_EXT%\xmloff\maptype.hxx
-..\inc\xmloff\uniref.hxx %_DEST%\inc%_EXT%\xmloff\uniref.hxx
-..\inc\xmloff\xmlaustp.hxx %_DEST%\inc%_EXT%\xmloff\xmlaustp.hxx
-..\inc\xmloff\xmlexppr.hxx %_DEST%\inc%_EXT%\xmloff\xmlexppr.hxx
-..\inc\xmloff\xmlimppr.hxx %_DEST%\inc%_EXT%\xmloff\xmlimppr.hxx
-..\inc\xmloff\xmlprcon.hxx %_DEST%\inc%_EXT%\xmloff\xmlprcon.hxx
-..\inc\xmloff\xmlprhdl.hxx %_DEST%\inc%_EXT%\xmloff\xmlprhdl.hxx
-..\inc\xmloff\xmlprmap.hxx %_DEST%\inc%_EXT%\xmloff\xmlprmap.hxx
-..\inc\xmloff\xmltypes.hxx %_DEST%\inc%_EXT%\xmloff\xmltypes.hxx
-..\inc\xmloff\families.hxx %_DEST%\inc%_EXT%\xmloff\families.hxx
-..\inc\xmloff\styleexp.hxx %_DEST%\inc%_EXT%\xmloff\styleexp.hxx
-..\inc\xmloff\txtstyle.hxx %_DEST%\inc%_EXT%\xmloff\txtstyle.hxx
-..\inc\xmloff\prstylei.hxx %_DEST%\inc%_EXT%\xmloff\prstylei.hxx
-..\inc\xmloff\txtstyli.hxx %_DEST%\inc%_EXT%\xmloff\txtstyli.hxx
-..\inc\xmloff\txtprmap.hxx %_DEST%\inc%_EXT%\xmloff\txtprmap.hxx
-..\inc\xmloff\txtparae.hxx %_DEST%\inc%_EXT%\xmloff\txtparae.hxx
-..\inc\xmloff\txtimp.hxx %_DEST%\inc%_EXT%\xmloff\txtimp.hxx
-..\inc\xmloff\prhdlfac.hxx %_DEST%\inc%_EXT%\xmloff\prhdlfac.hxx
-..\inc\xmloff\EnumPropertyHdl.hxx %_DEST%\inc%_EXT%\xmloff\EnumPropertyHdl.hxx
-..\inc\xmloff\NamedBoolPropertyHdl.hxx %_DEST%\inc%_EXT%\xmloff\NamedBoolPropertyHdl.hxx
-..\inc\numehelp.hxx %_DEST%\inc%_EXT%\xmloff\numehelp.hxx
-..\inc\XMLTextListAutoStylePool.hxx %_DEST%\inc%_EXT%\xmloff\XMLTextListAutoStylePool.hxx
-..\inc\xmloff\shapeexport.hxx %_DEST%\inc%_EXT%\xmloff\shapeexport.hxx
-..\inc\xmloff\shapeimport.hxx %_DEST%\inc%_EXT%\xmloff\shapeimport.hxx
-..\inc\xmloff\SchXMLExportHelper.hxx %_DEST%\inc%_EXT%\xmloff\SchXMLExportHelper.hxx
-..\inc\xmloff\SchXMLImportHelper.hxx %_DEST%\inc%_EXT%\xmloff\SchXMLImportHelper.hxx
-..\inc\functional.hxx %_DEST%\inc%_EXT%\xmloff\functional.hxx
-..\inc\xmloff\XMLPageExport.hxx %_DEST%\inc%_EXT%\xmloff\XMLPageExport.hxx
-..\inc\xmloff\PageMasterStyleMap.hxx %_DEST%\inc%_EXT%\xmloff\PageMasterStyleMap.hxx
-..\inc\xmloff\XMLTextMasterPageExport.hxx %_DEST%\inc%_EXT%\xmloff\XMLTextMasterPageExport.hxx
-..\inc\xmloff\XMLTextMasterStylesContext.hxx %_DEST%\inc%_EXT%\xmloff\XMLTextMasterStylesContext.hxx
-..\inc\xmloff\XMLTextMasterPageContext.hxx %_DEST%\inc%_EXT%\xmloff\XMLTextMasterPageContext.hxx
-..\inc\xmloff\XMLTextTableContext.hxx %_DEST%\inc%_EXT%\xmloff\XMLTextTableContext.hxx
-..\source\text\XMLTextShapeImportHelper.hxx %_DEST%\inc%_EXT%\xmloff\XMLTextShapeImportHelper.hxx
-..\inc\xmloff\XMLShapeStyleContext.hxx %_DEST%\inc%_EXT%\xmloff\XMLShapeStyleContext.hxx
-..\inc\xmloff\XMLTextShapeStyleContext.hxx %_DEST%\inc%_EXT%\xmloff\XMLTextShapeStyleContext.hxx
-..\inc\xmloff\XMLFontAutoStylePool.hxx %_DEST%\inc%_EXT%\xmloff\XMLFontAutoStylePool.hxx
-..\inc\xmloff\XMLFontStylesContext.hxx %_DEST%\inc%_EXT%\xmloff\XMLFontStylesContext.hxx
-..\inc\xmloff\ProgressBarHelper.hxx %_DEST%\inc%_EXT%\xmloff\ProgressBarHelper.hxx
-..\inc\xmloff\formlayerexport.hxx %_DEST%\inc%_EXT%\xmloff\formlayerexport.hxx
-..\inc\xmloff\formlayerimport.hxx %_DEST%\inc%_EXT%\xmloff\formlayerimport.hxx
-..\inc\xmloff\animexp.hxx %_DEST%\inc%_EXT%\xmloff\animexp.hxx
-..\inc\xmloff\contextid.hxx %_DEST%\inc%_EXT%\xmloff\contextid.hxx
-..\inc\xmloff\formsimp.hxx %_DEST%\inc%_EXT%\xmloff\formsimp.hxx
-..\inc\VisAreaExport.hxx %_DEST%\inc%_EXT%\xmloff\VisAreaExport.hxx
-..\inc\VisAreaContext.hxx %_DEST%\inc%_EXT%\xmloff\VisAreaContext.hxx
-..\inc\DashStyle.hxx %_DEST%\inc%_EXT%\xmloff\DashStyle.hxx
-..\inc\GradientStyle.hxx %_DEST%\inc%_EXT%\xmloff\GradientStyle.hxx
-..\inc\MarkerStyle.hxx %_DEST%\inc%_EXT%\xmloff\MarkerStyle.hxx
-..\inc\HatchStyle.hxx %_DEST%\inc%_EXT%\xmloff\HatchStyle.hxx
-..\inc\ImageStyle.hxx %_DEST%\inc%_EXT%\xmloff\ImageStyle.hxx
-..\inc\xmloff\SettingsExportHelper.hxx %_DEST%\inc%_EXT%\xmloff\SettingsExportHelper.hxx
-..\inc\xmloff\XMLSettingsExportContext.hxx %_DEST%\inc%_EXT%\xmloff\XMLSettingsExportContext.hxx
-..\inc\xmloff\DocumentSettingsContext.hxx %_DEST%\inc%_EXT%\xmloff\DocumentSettingsContext.hxx
-..\inc\xmloff\XMLGraphicsDefaultStyle.hxx %_DEST%\inc%_EXT%\xmloff\XMLGraphicsDefaultStyle.hxx
-..\inc\XMLEmbeddedObjectExportFilter.hxx %_DEST%\inc%_EXT%\xmloff\XMLEmbeddedObjectExportFilter.hxx
-..\inc\XMLFilterServiceNames.h %_DEST%\inc%_EXT%\xmloff\XMLFilterServiceNames.h
-..\inc\xmloff\XMLBase64ImportContext.hxx %_DEST%\inc%_EXT%\xmloff\XMLBase64ImportContext.hxx
-..\inc\xmloff\xmltoken.hxx %_DEST%\inc%_EXT%\xmloff\xmltoken.hxx
-..\inc\xmloff\XMLEventExport.hxx %_DEST%\inc%_EXT%\xmloff\XMLEventExport.hxx
-..\inc\xmloff\xmlevent.hxx %_DEST%\inc%_EXT%\xmloff\xmlevent.hxx
-..\inc\xmloff\XMLEventsImportContext.hxx %_DEST%\inc%_EXT%\xmloff\XMLEventsImportContext.hxx
-..\inc\xmlerror.hxx %_DEST%\inc%_EXT%\xmloff\xmlerror.hxx
-..\inc\xmloff\SinglePropertySetInfoCache.hxx %_DEST%\inc%_EXT%\xmloff\SinglePropertySetInfoCache.hxx
-..\inc\xmloff\PropertySetInfoHash.hxx %_DEST%\inc%_EXT%\xmloff\PropertySetInfoHash.hxx
-..\inc\xmloff\PropertySetInfoKey.hxx %_DEST%\inc%_EXT%\xmloff\PropertySetInfoKey.hxx
-..\inc\xformsimport.hxx %_DEST%\inc%_EXT%\xmloff\xformsimport.hxx
-..\inc\xformsexport.hxx %_DEST%\inc%_EXT%\xmloff\xformsexport.hxx
-..\inc\xmloff\controlpropertyhdl.hxx %_DEST%\inc%_EXT%\xmloff\controlpropertyhdl.hxx
-..\inc\xmloff\ControlBorderHandler.hxx %_DEST%\inc%_EXT%\xmloff\ControlBorderHandler.hxx
-..\inc\xmloff\XMLConstantsPropertyHandler.hxx %_DEST%\inc%_EXT%\xmloff\XMLConstantsPropertyHandler.hxx
-..\inc\xmloff\XMLStringVector.hxx %_DEST%\inc%_EXT%\xmloff\XMLStringVector.hxx
-..\inc\txtimppr.hxx %_DEST%\inc%_EXT%\xmloff\txtimppr.hxx
-..\inc\xmloff\XMLCharContext.hxx %_DEST%\inc%_EXT%\xmloff\XMLCharContext.hxx
-..\xml\components.xml %_DEST%\xml%_EXT%\components.xml
-
-mkdir: %_DEST%\inc%_EXT%\xmloff\table
-..\inc\xmloff\table\XMLTableExport.hxx %_DEST%\inc%_EXT%\xmloff\table\XMLTableExport.hxx
-..\inc\xmloff\table\XMLTableImport.hxx %_DEST%\inc%_EXT%\xmloff\table\XMLTableImport.hxx
-
-..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
-..\%__SRC%\misc\xo.component %_DEST%\xml%_EXT%\xo.component
-..\%__SRC%\misc\xof.component %_DEST%\xml%_EXT%\xof.component
diff --git a/sfx2/source/inet/makefile.mk b/xmloff/prj/makefile.mk
index 9347e68a2cdb..c73a3d944bbf 100644
--- a/sfx2/source/inet/makefile.mk
+++ b/xmloff/prj/makefile.mk
@@ -25,24 +25,16 @@
#
#*************************************************************************
-PRJ=..$/..
+PRJ=..
+TARGET=prj
-PRJNAME=sfx2
-TARGET=inet
-ENABLE_EXCEPTIONS=TRUE
+.INCLUDE : settings.mk
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-
-SLOFILES = \
- $(SLO)$/inettbc.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
+.IF "$(VERBOSE)"!=""
+VERBOSEFLAG :=
+.ELSE
+VERBOSEFLAG := -s
+.ENDIF
+all:
+ cd $(PRJ) && $(GNUMAKE) $(VERBOSEFLAG) -r -j$(MAXPROCESS) $(gb_MAKETARGET)
diff --git a/xmloff/source/chart/PropertyMap.hxx b/xmloff/source/chart/PropertyMap.hxx
index 79a59ab6910f..8ba1d5a6a510 100644
--- a/xmloff/source/chart/PropertyMap.hxx
+++ b/xmloff/source/chart/PropertyMap.hxx
@@ -28,7 +28,7 @@
#define _PROPERTYMAP_HXX_
#include <xmloff/maptype.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmltypes.hxx>
#include <xmloff/contextid.hxx>
diff --git a/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx b/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
index 2dfe878bf165..78c1ac42430f 100755
--- a/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
+++ b/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
@@ -32,7 +32,7 @@
#include <com/sun/star/util/DateTime.hpp>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/chart/SchXMLChartContext.cxx b/xmloff/source/chart/SchXMLChartContext.cxx
index a2eae1e6d19a..25cbfbc86274 100644
--- a/xmloff/source/chart/SchXMLChartContext.cxx
+++ b/xmloff/source/chart/SchXMLChartContext.cxx
@@ -40,7 +40,7 @@
#include <tools/debug.hxx>
// header for class ByteString
#include <tools/string.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlement.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx
index e6f6fc6d9340..358cb023199c 100644
--- a/xmloff/source/chart/SchXMLExport.cxx
+++ b/xmloff/source/chart/SchXMLExport.cxx
@@ -42,7 +42,7 @@
#include <sot/clsids.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/families.hxx>
#include <xmloff/xmlaustp.hxx>
diff --git a/xmloff/source/chart/SchXMLImport.cxx b/xmloff/source/chart/SchXMLImport.cxx
index cca9e0f35f38..79b53b10bd2d 100644
--- a/xmloff/source/chart/SchXMLImport.cxx
+++ b/xmloff/source/chart/SchXMLImport.cxx
@@ -39,7 +39,7 @@
// header for class ByteString
#include <tools/string.hxx>
#include <comphelper/processfactory.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/chart/SchXMLParagraphContext.cxx b/xmloff/source/chart/SchXMLParagraphContext.cxx
index 7a0449982483..7835f0cbe4d3 100644
--- a/xmloff/source/chart/SchXMLParagraphContext.cxx
+++ b/xmloff/source/chart/SchXMLParagraphContext.cxx
@@ -31,7 +31,7 @@
#include "SchXMLImport.hxx"
#include "SchXMLParagraphContext.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/chart/SchXMLPlotAreaContext.cxx b/xmloff/source/chart/SchXMLPlotAreaContext.cxx
index aaaf698a9146..ec13358635ee 100644
--- a/xmloff/source/chart/SchXMLPlotAreaContext.cxx
+++ b/xmloff/source/chart/SchXMLPlotAreaContext.cxx
@@ -38,7 +38,7 @@
#endif
#include <comphelper/processfactory.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlement.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/chart/SchXMLSeries2Context.cxx b/xmloff/source/chart/SchXMLSeries2Context.cxx
index 5cfc8e855439..2aec62c6f2ef 100644
--- a/xmloff/source/chart/SchXMLSeries2Context.cxx
+++ b/xmloff/source/chart/SchXMLSeries2Context.cxx
@@ -52,7 +52,7 @@
// header for define DBG_ERROR1
#include <tools/debug.hxx>
#include <rtl/ustrbuf.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlimp.hxx>
#ifndef _XMLOFF_NMSPMAP_HX
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/chart/SchXMLTableContext.cxx b/xmloff/source/chart/SchXMLTableContext.cxx
index 6b3fb2c3f2bf..221c9a43f287 100644
--- a/xmloff/source/chart/SchXMLTableContext.cxx
+++ b/xmloff/source/chart/SchXMLTableContext.cxx
@@ -37,7 +37,7 @@
#include "XMLStringBufferImportContext.hxx"
#include <tools/debug.hxx>
#include <rtl/math.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
@@ -704,6 +704,7 @@ private:
public:
SchXMLRangeSomewhereContext( SvXMLImport& rImport,
+ USHORT nPrefix,
const ::rtl::OUString& rLocalName,
::rtl::OUString& rRangeString );
virtual ~SchXMLRangeSomewhereContext();
@@ -818,7 +819,7 @@ SvXMLImportContext* SchXMLTableCellContext::CreateChildContext(
{
//#i113950# previously the range was exported to attribute text:id, but that attribute does not allow arbitrary strings anymore
//so we need to find an alternative to save that range info for copy/paste scenario ... -> use description at an empty group element for now
- pContext = new SchXMLRangeSomewhereContext( GetImport(), rLocalName, maRangeId );
+ pContext = new SchXMLRangeSomewhereContext( GetImport(), nPrefix, rLocalName, maRangeId );
}
else
{
@@ -1188,9 +1189,10 @@ void SchXMLTableHelper::switchRangesFromOuterToInternalIfNecessary(
//---------------------------------------------------------------------------------------------------
SchXMLRangeSomewhereContext::SchXMLRangeSomewhereContext( SvXMLImport& rImport,
+ USHORT nPrefix,
const OUString& rLocalName,
OUString& rRangeString ) :
- SvXMLImportContext( rImport, XML_NAMESPACE_TEXT, rLocalName ),
+ SvXMLImportContext( rImport, nPrefix, rLocalName ),
mrRangeString( rRangeString )
{
}
diff --git a/xmloff/source/chart/SchXMLTextListContext.cxx b/xmloff/source/chart/SchXMLTextListContext.cxx
index 252b513eeffe..7a9007aa3527 100755
--- a/xmloff/source/chart/SchXMLTextListContext.cxx
+++ b/xmloff/source/chart/SchXMLTextListContext.cxx
@@ -32,7 +32,7 @@
#include "SchXMLTextListContext.hxx"
#include "SchXMLParagraphContext.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/chart/SchXMLTools.cxx b/xmloff/source/chart/SchXMLTools.cxx
index 8cd443f83f03..a0be5f4ec6a8 100644
--- a/xmloff/source/chart/SchXMLTools.cxx
+++ b/xmloff/source/chart/SchXMLTools.cxx
@@ -49,7 +49,7 @@
// header for class XMLPropertySetMapper
#include <xmloff/xmlprmap.hxx>
#include <xmloff/xmlexp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlmetai.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
diff --git a/xmloff/source/chart/XMLChartStyleContext.cxx b/xmloff/source/chart/XMLChartStyleContext.cxx
index 87adea123ab4..f97a9da192f0 100644
--- a/xmloff/source/chart/XMLChartStyleContext.cxx
+++ b/xmloff/source/chart/XMLChartStyleContext.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include "XMLChartStyleContext.hxx"
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlnumfi.hxx>
#include <xmloff/families.hxx>
diff --git a/xmloff/source/chart/XMLLabelSeparatorContext.cxx b/xmloff/source/chart/XMLLabelSeparatorContext.cxx
index dfebf77050f1..27ac6bd82b23 100644
--- a/xmloff/source/chart/XMLLabelSeparatorContext.cxx
+++ b/xmloff/source/chart/XMLLabelSeparatorContext.cxx
@@ -32,7 +32,7 @@
#include "SchXMLParagraphContext.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmltkmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/chart/XMLSymbolImageContext.cxx b/xmloff/source/chart/XMLSymbolImageContext.cxx
index 99ce619be43f..1d7421ebc22f 100644
--- a/xmloff/source/chart/XMLSymbolImageContext.cxx
+++ b/xmloff/source/chart/XMLSymbolImageContext.cxx
@@ -30,7 +30,7 @@
#include "XMLSymbolImageContext.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmltkmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/XMLBase64ImportContext.hxx>
diff --git a/xmloff/source/chart/contexts.cxx b/xmloff/source/chart/contexts.cxx
index bbe0bb6ac04a..18dcfa293a3c 100644
--- a/xmloff/source/chart/contexts.cxx
+++ b/xmloff/source/chart/contexts.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include <tools/debug.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlmetai.hxx>
#include <xmloff/xmlstyle.hxx>
#include "SchXMLImport.hxx"
diff --git a/xmloff/source/chart/makefile.mk b/xmloff/source/chart/makefile.mk
deleted file mode 100644
index d523b51b0099..000000000000
--- a/xmloff/source/chart/makefile.mk
+++ /dev/null
@@ -1,70 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ..$/..
-PRJNAME = xmloff
-TARGET = chart
-AUTOSEG = true
-ENABLE_EXCEPTIONS = sal_True
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = $(SLO)$/ColorPropertySet.obj \
- $(SLO)$/SchXMLTools.obj \
- $(SLO)$/SchXMLExport.obj \
- $(SLO)$/SchXMLImport.obj \
- $(SLO)$/contexts.obj \
- $(SLO)$/SchXMLTableContext.obj \
- $(SLO)$/SchXMLChartContext.obj \
- $(SLO)$/SchXMLPlotAreaContext.obj \
- $(SLO)$/SchXMLParagraphContext.obj \
- $(SLO)$/SchXMLTextListContext.obj \
- $(SLO)$/SchXMLSeriesHelper.obj \
- $(SLO)$/SchXMLSeries2Context.obj \
- $(SLO)$/PropertyMaps.obj \
- $(SLO)$/XMLChartStyleContext.obj \
- $(SLO)$/XMLErrorIndicatorPropertyHdl.obj \
- $(SLO)$/XMLErrorBarStylePropertyHdl.obj \
- $(SLO)$/SchXMLAutoStylePoolP.obj \
- $(SLO)$/XMLChartPropertyContext.obj \
- $(SLO)$/XMLSymbolImageContext.obj \
- $(SLO)$/XMLLabelSeparatorContext.obj \
- $(SLO)$/XMLTextOrientationHdl.obj \
- $(SLO)$/XMLSymbolTypePropertyHdl.obj \
- $(SLO)$/XMLAxisPositionPropertyHdl.obj \
- $(SLO)$/SchXMLCalculationSettingsContext.obj \
- $(SLO)$/transporttypes.obj
-
-# --- Targets --------------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/xmloff/source/core/DocumentSettingsContext.cxx b/xmloff/source/core/DocumentSettingsContext.cxx
index 5b17182ddbca..e83cb732e523 100644
--- a/xmloff/source/core/DocumentSettingsContext.cxx
+++ b/xmloff/source/core/DocumentSettingsContext.cxx
@@ -33,7 +33,7 @@
#include <xmloff/DocumentSettingsContext.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
#include <tools/debug.hxx>
diff --git a/xmloff/source/core/DomBuilderContext.cxx b/xmloff/source/core/DomBuilderContext.cxx
index c660bd36cbe7..5a6e6ed80329 100644
--- a/xmloff/source/core/DomBuilderContext.cxx
+++ b/xmloff/source/core/DomBuilderContext.cxx
@@ -32,7 +32,7 @@
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmlimp.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/uno/Reference.hxx>
diff --git a/xmloff/source/core/DomExport.cxx b/xmloff/source/core/DomExport.cxx
index 64131115e3f3..2936951ac091 100644
--- a/xmloff/source/core/DomExport.cxx
+++ b/xmloff/source/core/DomExport.cxx
@@ -32,7 +32,7 @@
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmlexp.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/uno/Reference.hxx>
diff --git a/xmloff/source/core/RDFaExportHelper.cxx b/xmloff/source/core/RDFaExportHelper.cxx
index f603d21258fd..1fbcc506e7ed 100644
--- a/xmloff/source/core/RDFaExportHelper.cxx
+++ b/xmloff/source/core/RDFaExportHelper.cxx
@@ -29,7 +29,7 @@
#include "RDFaExportHelper.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/source/core/SettingsExportHelper.cxx b/xmloff/source/core/SettingsExportHelper.cxx
index 90e1ba583dd5..7541feb38999 100644
--- a/xmloff/source/core/SettingsExportHelper.cxx
+++ b/xmloff/source/core/SettingsExportHelper.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include <xmloff/SettingsExportHelper.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <tools/debug.hxx>
diff --git a/xmloff/source/core/XMLBase64Export.cxx b/xmloff/source/core/XMLBase64Export.cxx
index 9e76298f59a4..3833e9924153 100644
--- a/xmloff/source/core/XMLBase64Export.cxx
+++ b/xmloff/source/core/XMLBase64Export.cxx
@@ -31,7 +31,7 @@
#include <com/sun/star/io/XInputStream.hpp>
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlexp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "XMLBase64Export.hxx"
using namespace ::com::sun::star::uno;
diff --git a/xmloff/source/core/XMLEmbeddedObjectExportFilter.cxx b/xmloff/source/core/XMLEmbeddedObjectExportFilter.cxx
index 03b52828d5b4..a55b6505981f 100644
--- a/xmloff/source/core/XMLEmbeddedObjectExportFilter.cxx
+++ b/xmloff/source/core/XMLEmbeddedObjectExportFilter.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "XMLEmbeddedObjectExportFilter.hxx"
+#include "xmloff/XMLEmbeddedObjectExportFilter.hxx"
using ::rtl::OUString;
diff --git a/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx b/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx
index 532749aa4f1c..83eeb8afb534 100644
--- a/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx
+++ b/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx
@@ -42,11 +42,11 @@
#include <sot/clsids.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <xmloff/attrlist.hxx>
-#include "XMLFilterServiceNames.h"
+#include "xmloff/XMLFilterServiceNames.h"
#include "XMLEmbeddedObjectImportContext.hxx"
using ::rtl::OUString;
diff --git a/xmloff/source/core/facreg.cxx b/xmloff/source/core/facreg.cxx
index 4556e21e8152..5dd1aac9fe12 100644
--- a/xmloff/source/core/facreg.cxx
+++ b/xmloff/source/core/facreg.cxx
@@ -40,7 +40,7 @@
#include <cppuhelper/factory.hxx>
#include <uno/lbnames.h>
-#include "xmlreg.hxx"
+#include "xmloff/xmlreg.hxx"
using namespace rtl;
using namespace com::sun::star;
diff --git a/xmloff/source/core/i18nmap.cxx b/xmloff/source/core/i18nmap.cxx
index 99b954e7aa34..e6dc7930e673 100644
--- a/xmloff/source/core/i18nmap.cxx
+++ b/xmloff/source/core/i18nmap.cxx
@@ -30,7 +30,7 @@
#include <rtl/ustring.hxx>
#include <tools/debug.hxx>
#include <svl/svarray.hxx>
-#include "i18nmap.hxx"
+#include "xmloff/i18nmap.hxx"
using namespace rtl;
diff --git a/xmloff/source/core/makefile.mk b/xmloff/source/core/makefile.mk
deleted file mode 100644
index 4d663d3218d8..000000000000
--- a/xmloff/source/core/makefile.mk
+++ /dev/null
@@ -1,76 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=xmloff
-TARGET=core
-AUTOSEG=true
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/unointerfacetouniqueidentifiermapper.obj \
- $(SLO)$/facreg.obj \
- $(SLO)$/xmlcnitm.obj \
- $(SLO)$/attrlist.obj \
- $(SLO)$/i18nmap.obj \
- $(SLO)$/nmspmap.obj \
- $(SLO)$/unoatrcn.obj \
- $(SLO)$/xmlehelp.obj \
- $(SLO)$/xmlerror.obj \
- $(SLO)$/xmlexp.obj \
- $(SLO)$/xmlictxt.obj \
- $(SLO)$/xmlimp.obj \
- $(SLO)$/xmltkmap.obj \
- $(SLO)$/xmltoken.obj \
- $(SLO)$/xmluconv.obj \
- $(SLO)$/DomBuilderContext.obj \
- $(SLO)$/DomExport.obj \
- $(SLO)$/ProgressBarHelper.obj \
- $(SLO)$/PropertySetMerger.obj \
- $(SLO)$/SettingsExportHelper.obj \
- $(SLO)$/DocumentSettingsContext.obj \
- $(SLO)$/XMLEmbeddedObjectExportFilter.obj \
- $(SLO)$/XMLEmbeddedObjectImportContext.obj \
- $(SLO)$/XMLBase64Export.obj \
- $(SLO)$/XMLBase64ImportContext.obj \
- $(SLO)$/XMLBasicExportFilter.obj \
- $(SLO)$/RDFaImportHelper.obj \
- $(SLO)$/RDFaExportHelper.obj \
-
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/xmloff/source/core/nmspmap.cxx b/xmloff/source/core/nmspmap.cxx
index 9b7bf9824ac6..994db71763ae 100644
--- a/xmloff/source/core/nmspmap.cxx
+++ b/xmloff/source/core/nmspmap.cxx
@@ -36,7 +36,7 @@
#endif
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
using ::rtl::OUString;
diff --git a/xmloff/source/core/unoatrcn.cxx b/xmloff/source/core/unoatrcn.cxx
index a26915b938eb..9b5ca4106c46 100644
--- a/xmloff/source/core/unoatrcn.cxx
+++ b/xmloff/source/core/unoatrcn.cxx
@@ -35,7 +35,7 @@
#include <xmloff/xmlcnimp.hxx>
-#include "unoatrcn.hxx"
+#include "xmloff/unoatrcn.hxx"
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
diff --git a/xmloff/source/core/xmlcnitm.cxx b/xmloff/source/core/xmlcnitm.cxx
index ccf7b3ce68f2..e1bd55ff040b 100644
--- a/xmloff/source/core/xmlcnitm.cxx
+++ b/xmloff/source/core/xmlcnitm.cxx
@@ -32,7 +32,7 @@
#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <xmloff/xmlcnimp.hxx>
-#include "unoatrcn.hxx"
+#include "xmloff/unoatrcn.hxx"
using namespace rtl;
using namespace ::com::sun::star::uno;
diff --git a/xmloff/source/core/xmlerror.cxx b/xmloff/source/core/xmlerror.cxx
index 9bfa151adbbd..7581739aae13 100644
--- a/xmloff/source/core/xmlerror.cxx
+++ b/xmloff/source/core/xmlerror.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <tools/debug.hxx>
#include <rtl/ustring.hxx>
#include <com/sun/star/xml/sax/XLocator.hpp>
diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx
index ac46c740ee97..50e0447d4a9d 100644
--- a/xmloff/source/core/xmlexp.cxx
+++ b/xmloff/source/core/xmlexp.cxx
@@ -48,7 +48,7 @@
#include <xmloff/attrlist.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlnumfe.hxx>
@@ -63,20 +63,20 @@
#include <com/sun/star/container/XIndexContainer.hpp>
#include <com/sun/star/document/XEventsSupplier.hpp>
#include <com/sun/star/document/XViewDataSupplier.hpp>
-#include <GradientStyle.hxx>
-#include <HatchStyle.hxx>
-#include <ImageStyle.hxx>
+#include <xmloff/GradientStyle.hxx>
+#include <xmloff/HatchStyle.hxx>
+#include <xmloff/ImageStyle.hxx>
#include <TransGradientStyle.hxx>
-#include <MarkerStyle.hxx>
-#include <DashStyle.hxx>
+#include <xmloff/MarkerStyle.hxx>
+#include <xmloff/DashStyle.hxx>
#include <xmloff/XMLFontAutoStylePool.hxx>
#include "XMLImageMapExport.hxx"
#include "XMLBase64Export.hxx"
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <com/sun/star/lang/ServiceNotRegisteredException.hpp>
#include <com/sun/star/beans/PropertyAttribute.hpp>
-#include "XMLFilterServiceNames.h"
-#include "XMLEmbeddedObjectExportFilter.hxx"
+#include "xmloff/XMLFilterServiceNames.h"
+#include "xmloff/XMLEmbeddedObjectExportFilter.hxx"
#include "XMLBasicExportFilter.hxx"
#include <vos/mutex.hxx>
#include <rtl/logfile.hxx>
@@ -85,7 +85,7 @@
#include "PropertySetMerger.hxx"
#include "svl/urihelper.hxx"
-#include "xformsexport.hxx"
+#include "xmloff/xformsexport.hxx"
#include <unotools/docinfohelper.hxx>
#include <unotools/bootstrap.hxx>
diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx
index aca5fdb5ece8..ff16d453cae9 100644
--- a/xmloff/source/core/xmlimp.cxx
+++ b/xmloff/source/core/xmlimp.cxx
@@ -37,7 +37,7 @@
#include "unointerfacetouniqueidentifiermapper.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/XMLFontStylesContext.hxx>
#include <xmloff/xmlictxt.hxx>
@@ -49,7 +49,7 @@
#include "StyleMap.hxx"
#include <xmloff/ProgressBarHelper.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/ServiceNotRegisteredException.hpp>
#include <com/sun/star/io/XOutputStream.hpp>
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index d65bafe583df..6cfacbd93905 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -3113,6 +3113,9 @@ namespace xmloff { namespace token {
TOKEN( "outside-minimum", XML_OUTSIDE_MINIMUM ),
TOKEN( "outside-maximum", XML_OUTSIDE_MAXIMUM ),
+ TOKEN( "min-value", XML_MIN_VALUE ),
+ TOKEN( "max-value", XML_MAX_VALUE ),
+
#if OSL_DEBUG_LEVEL > 0
{ 0, NULL, NULL, XML_TOKEN_END }
#else
diff --git a/xmloff/source/core/xmluconv.cxx b/xmloff/source/core/xmluconv.cxx
index 3e2640b01804..c9b5d0d3e9a3 100644
--- a/xmloff/source/core/xmluconv.cxx
+++ b/xmloff/source/core/xmluconv.cxx
@@ -874,32 +874,27 @@ void SvXMLUnitConverter::convertTime( ::rtl::OUStringBuffer& rBuffer,
}
/** convert ISO Time String to double; negative durations allowed */
-sal_Bool SvXMLUnitConverter::convertTime( double& fTime,
- const ::rtl::OUString& rString)
+static bool lcl_convertTime( const ::rtl::OUString& rString, sal_Int32& o_rDays, sal_Int32& o_rHours, sal_Int32& o_rMins,
+ sal_Int32& o_rSecs, sal_Bool& o_rIsNegativeTime, double& o_rFractionalSecs )
{
rtl::OUString aTrimmed = rString.trim().toAsciiUpperCase();
const sal_Unicode* pStr = aTrimmed.getStr();
// negative time duration?
- sal_Bool bIsNegativeDuration = sal_False;
if ( sal_Unicode('-') == (*pStr) )
{
- bIsNegativeDuration = sal_True;
+ o_rIsNegativeTime = sal_True;
pStr++;
}
if ( *(pStr++) != sal_Unicode('P') ) // duration must start with "P"
- return sal_False;
+ return false;
- rtl::OUString sDoubleStr;
- sal_Bool bSuccess = sal_True;
+ ::rtl::OUString sDoubleStr;
+ sal_Bool bSuccess = true;
sal_Bool bDone = sal_False;
sal_Bool bTimePart = sal_False;
sal_Bool bIsFraction = sal_False;
- sal_Int32 nDays = 0;
- sal_Int32 nHours = 0;
- sal_Int32 nMins = 0;
- sal_Int32 nSecs = 0;
sal_Int32 nTemp = 0;
while ( bSuccess && !bDone )
@@ -910,7 +905,7 @@ sal_Bool SvXMLUnitConverter::convertTime( double& fTime,
else if ( sal_Unicode('0') <= c && sal_Unicode('9') >= c )
{
if ( nTemp >= SAL_MAX_INT32 / 10 )
- bSuccess = sal_False;
+ bSuccess = false;
else
{
if ( !bIsFraction )
@@ -928,17 +923,17 @@ sal_Bool SvXMLUnitConverter::convertTime( double& fTime,
{
if ( c == sal_Unicode('H') )
{
- nHours = nTemp;
+ o_rHours = nTemp;
nTemp = 0;
}
else if ( c == sal_Unicode('M') )
{
- nMins = nTemp;
+ o_rMins = nTemp;
nTemp = 0;
}
else if ( (c == sal_Unicode(',')) || (c == sal_Unicode('.')) )
{
- nSecs = nTemp;
+ o_rSecs = nTemp;
nTemp = 0;
bIsFraction = sal_True;
sDoubleStr = OUString(RTL_CONSTASCII_USTRINGPARAM("0."));
@@ -947,13 +942,13 @@ sal_Bool SvXMLUnitConverter::convertTime( double& fTime,
{
if ( !bIsFraction )
{
- nSecs = nTemp;
+ o_rSecs = nTemp;
nTemp = 0;
sDoubleStr = OUString(RTL_CONSTASCII_USTRINGPARAM("0.0"));
}
}
else
- bSuccess = sal_False; // invalid character
+ bSuccess = false; // invalid character
}
else
{
@@ -961,7 +956,7 @@ sal_Bool SvXMLUnitConverter::convertTime( double& fTime,
bTimePart = sal_True;
else if ( c == sal_Unicode('D') )
{
- nDays = nTemp;
+ o_rDays = nTemp;
nTemp = 0;
}
else if ( c == sal_Unicode('Y') || c == sal_Unicode('M') )
@@ -969,14 +964,28 @@ sal_Bool SvXMLUnitConverter::convertTime( double& fTime,
//! how many days is a year or month?
DBG_ERROR("years or months in duration: not implemented");
- bSuccess = sal_False;
+ bSuccess = false;
}
else
- bSuccess = sal_False; // invalid character
+ bSuccess = false; // invalid character
}
}
if ( bSuccess )
+ o_rFractionalSecs = sDoubleStr.toDouble();
+ return bSuccess;
+}
+
+sal_Bool SvXMLUnitConverter::convertTime( double& fTime,
+ const ::rtl::OUString& rString)
+{
+ sal_Int32 nDays = 0;
+ sal_Int32 nHours = 0;
+ sal_Int32 nMins = 0;
+ sal_Int32 nSecs = 0;
+ sal_Bool bIsNegativeDuration = sal_False;
+ double fFractionalSecs = 0.0;
+ if ( lcl_convertTime( rString, nDays, nHours, nMins, nSecs, bIsNegativeDuration, fFractionalSecs ) )
{
if ( nDays )
nHours += nDays * 24; // add the days to the hours part
@@ -985,12 +994,11 @@ sal_Bool SvXMLUnitConverter::convertTime( double& fTime,
double fMin = nMins;
double fSec = nSecs;
double fSec100 = 0.0;
- double fFraction = sDoubleStr.toDouble();
fTempTime = fHour / 24;
fTempTime += fMin / (24 * 60);
fTempTime += fSec / (24 * 60 * 60);
fTempTime += fSec100 / (24 * 60 * 60 * 60);
- fTempTime += fFraction / (24 * 60 * 60);
+ fTempTime += fFractionalSecs / (24 * 60 * 60);
// negative duration?
if ( bIsNegativeDuration )
@@ -999,8 +1007,9 @@ sal_Bool SvXMLUnitConverter::convertTime( double& fTime,
}
fTime = fTempTime;
+ return sal_True;
}
- return bSuccess;
+ return sal_False;
}
/** convert util::DateTime to ISO Time String */
@@ -1022,33 +1031,18 @@ void SvXMLUnitConverter::convertTime( ::rtl::OUStringBuffer& rBuffer,
sal_Bool SvXMLUnitConverter::convertTime( ::com::sun::star::util::DateTime& rDateTime,
const ::rtl::OUString& rString )
{
- double fCalculatedTime = 0.0;
- if( convertTime( fCalculatedTime, rString ) )
- {
- // #101357# declare as volatile to prevent optimization
- // (gcc 3.0.1 Linux)
- volatile double fTempTime = fCalculatedTime;
- fTempTime *= 24;
- double fHoursValue = ::rtl::math::approxFloor (fTempTime);
- fTempTime -= fHoursValue;
- fTempTime *= 60;
- double fMinsValue = ::rtl::math::approxFloor (fTempTime);
- fTempTime -= fMinsValue;
- fTempTime *= 60;
- double fSecsValue = ::rtl::math::approxFloor (fTempTime);
- fTempTime -= fSecsValue;
- double f100SecsValue = 0.0;
-
- if( fTempTime > 0.00001 )
- f100SecsValue = fTempTime;
-
+ sal_Int32 nDays = 0, nHours = 0, nMins = 0, nSecs = 0;
+ sal_Bool bIsNegativeDuration = sal_False;
+ double fFractionalSecs = 0.0;
+ if ( lcl_convertTime( rString, nDays, nHours, nMins, nSecs, bIsNegativeDuration, fFractionalSecs ) )
+ {
rDateTime.Year = 0;
rDateTime.Month = 0;
rDateTime.Day = 0;
- rDateTime.Hours = static_cast < sal_uInt16 > ( fHoursValue );
- rDateTime.Minutes = static_cast < sal_uInt16 > ( fMinsValue );
- rDateTime.Seconds = static_cast < sal_uInt16 > ( fSecsValue );
- rDateTime.HundredthSeconds = static_cast < sal_uInt16 > ( f100SecsValue * 100.0 );
+ rDateTime.Hours = static_cast < sal_uInt16 > ( nHours );
+ rDateTime.Minutes = static_cast < sal_uInt16 > ( nMins );
+ rDateTime.Seconds = static_cast < sal_uInt16 > ( nSecs );
+ rDateTime.HundredthSeconds = static_cast < sal_uInt16 > ( fFractionalSecs * 100.0 );
return sal_True;
}
diff --git a/xmloff/source/draw/XMLGraphicsDefaultStyle.cxx b/xmloff/source/draw/XMLGraphicsDefaultStyle.cxx
index 4b8bcf429057..13ab9f4fd62f 100644
--- a/xmloff/source/draw/XMLGraphicsDefaultStyle.cxx
+++ b/xmloff/source/draw/XMLGraphicsDefaultStyle.cxx
@@ -31,7 +31,7 @@
#include <tools/debug.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#ifndef _XMLOFF_FAMILIES_HXX
@@ -104,6 +104,24 @@ void XMLGraphicsDefaultStyle::SetDefaults()
Reference< XPropertySet > xDefaults( xFact->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.Defaults") ) ), UNO_QUERY );
if( !xDefaults.is() )
return;
+ // SJ: #i114750#
+ sal_Bool bWordWrapDefault = sal_True; // initializing with correct odf fo:wrap-option default
+ sal_Int32 nUPD( 0 );
+ sal_Int32 nBuild( 0 );
+ const bool bBuildIdFound = GetImport().getBuildIds( nUPD, nBuild );
+ if ( bBuildIdFound && (
+ ((nUPD >= 600) && (nUPD < 700))
+ ||
+ ((nUPD == 300) && (nBuild <= 9535))
+ ||
+ ((nUPD > 300) && (nUPD <= 330))
+ ) )
+ bWordWrapDefault = sal_False;
+
+ const OUString sTextWordWrap( RTL_CONSTASCII_USTRINGPARAM( "TextWordWrap" ) );
+ Reference< XPropertySetInfo > xInfo( xDefaults->getPropertySetInfo() );
+ if ( xInfo->hasPropertyByName( sTextWordWrap ) )
+ xDefaults->setPropertyValue( sTextWordWrap, Any( bWordWrapDefault ) );
FillPropertySet( xDefaults );
}
diff --git a/xmloff/source/draw/XMLImageMapContext.cxx b/xmloff/source/draw/XMLImageMapContext.cxx
index 664fb8bba2b8..b36c7776d905 100644
--- a/xmloff/source/draw/XMLImageMapContext.cxx
+++ b/xmloff/source/draw/XMLImageMapContext.cxx
@@ -46,11 +46,11 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmltkmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
#include "xexptran.hxx"
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <xmloff/XMLEventsImportContext.hxx>
#include "XMLStringBufferImportContext.hxx"
#include <tools/debug.hxx>
diff --git a/xmloff/source/draw/XMLImageMapExport.cxx b/xmloff/source/draw/XMLImageMapExport.cxx
index 01d14ecab54e..6114f51acfdc 100644
--- a/xmloff/source/draw/XMLImageMapExport.cxx
+++ b/xmloff/source/draw/XMLImageMapExport.cxx
@@ -45,7 +45,7 @@
#include <com/sun/star/awt/Size.hpp>
#include <com/sun/star/drawing/PointSequence.hpp>
#include <xmloff/xmlexp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/XMLEventExport.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/draw/XMLNumberStyles.cxx b/xmloff/source/draw/XMLNumberStyles.cxx
index 12dc8eeb41f7..a387ace22a95 100644
--- a/xmloff/source/draw/XMLNumberStyles.cxx
+++ b/xmloff/source/draw/XMLNumberStyles.cxx
@@ -30,7 +30,7 @@
#include <tools/debug.hxx>
#include <XMLNumberStylesExport.hxx>
#include <XMLNumberStylesImport.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/source/draw/XMLReplacementImageContext.cxx b/xmloff/source/draw/XMLReplacementImageContext.cxx
index 4eb607e0403b..d1591a10448e 100644
--- a/xmloff/source/draw/XMLReplacementImageContext.cxx
+++ b/xmloff/source/draw/XMLReplacementImageContext.cxx
@@ -32,7 +32,7 @@
#include <com/sun/star/io/XOutputStream.hpp>
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/XMLBase64ImportContext.hxx>
#include "XMLReplacementImageContext.hxx"
diff --git a/xmloff/source/draw/XMLShapeStyleContext.cxx b/xmloff/source/draw/XMLShapeStyleContext.cxx
index 15211495f18d..c9862d1b29ae 100644
--- a/xmloff/source/draw/XMLShapeStyleContext.cxx
+++ b/xmloff/source/draw/XMLShapeStyleContext.cxx
@@ -37,9 +37,9 @@
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmlnumi.hxx>
-#include <xmlnmspe.hxx>
+#include <xmloff/xmlnmspe.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <xmloff/maptype.hxx>
#include "sdpropls.hxx"
diff --git a/xmloff/source/draw/animationexport.cxx b/xmloff/source/draw/animationexport.cxx
index b73f843cfd0f..8aa853ce22af 100644
--- a/xmloff/source/draw/animationexport.cxx
+++ b/xmloff/source/draw/animationexport.cxx
@@ -67,7 +67,7 @@
#include "sdxmlexp_impl.hxx"
#include "sdpropls.hxx"
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlement.hxx>
diff --git a/xmloff/source/draw/animationimport.cxx b/xmloff/source/draw/animationimport.cxx
index 336670ef6f36..1b425786f5c0 100644
--- a/xmloff/source/draw/animationimport.cxx
+++ b/xmloff/source/draw/animationimport.cxx
@@ -67,7 +67,7 @@
#include "sdpropls.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <osl/mutex.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/draw/animexp.cxx b/xmloff/source/draw/animexp.cxx
index 600ab5c7144f..b2611dbc1e8f 100644
--- a/xmloff/source/draw/animexp.cxx
+++ b/xmloff/source/draw/animexp.cxx
@@ -37,7 +37,7 @@
#include <comphelper/extract.hxx>
#include <tools/color.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlement.hxx>
diff --git a/xmloff/source/draw/animimp.cxx b/xmloff/source/draw/animimp.cxx
index 21c8d46e534e..07f93545a352 100644
--- a/xmloff/source/draw/animimp.cxx
+++ b/xmloff/source/draw/animimp.cxx
@@ -41,7 +41,7 @@
#include <comphelper/extract.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
/*
#include <xmloff/xmlement.hxx>
diff --git a/xmloff/source/draw/descriptionimp.cxx b/xmloff/source/draw/descriptionimp.cxx
index 7d17de3a7471..1abc297e6b33 100644
--- a/xmloff/source/draw/descriptionimp.cxx
+++ b/xmloff/source/draw/descriptionimp.cxx
@@ -33,7 +33,7 @@
#include <com/sun/star/xml/sax/XAttributeList.hpp>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include "descriptionimp.hxx"
diff --git a/xmloff/source/draw/eventimp.cxx b/xmloff/source/draw/eventimp.cxx
index 59f7335c5524..f8f127f4e0c9 100644
--- a/xmloff/source/draw/eventimp.cxx
+++ b/xmloff/source/draw/eventimp.cxx
@@ -39,7 +39,7 @@
#include <comphelper/extract.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/nmspmap.hxx>
#include "eventimp.hxx"
diff --git a/xmloff/source/draw/layerexp.cxx b/xmloff/source/draw/layerexp.cxx
index e5393279a0fa..b7d58258e204 100644
--- a/xmloff/source/draw/layerexp.cxx
+++ b/xmloff/source/draw/layerexp.cxx
@@ -33,7 +33,7 @@
#include <com/sun/star/container/XIndexAccess.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlement.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/draw/layerimp.cxx b/xmloff/source/draw/layerimp.cxx
index d4cc3390d5b9..6770a11958d8 100644
--- a/xmloff/source/draw/layerimp.cxx
+++ b/xmloff/source/draw/layerimp.cxx
@@ -36,7 +36,7 @@
#include <comphelper/extract.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/nmspmap.hxx>
#include "layerimp.hxx"
diff --git a/xmloff/source/draw/makefile.mk b/xmloff/source/draw/makefile.mk
deleted file mode 100644
index 3c9f7ae024f9..000000000000
--- a/xmloff/source/draw/makefile.mk
+++ /dev/null
@@ -1,85 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-PRJNAME=xmloff
-TARGET=draw
-AUTOSEG=true
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/animationexport.obj\
- $(SLO)$/animationimport.obj\
- $(SLO)$/XMLNumberStyles.obj\
- $(SLO)$/XMLGraphicsDefaultStyle.obj\
- $(SLO)$/viewcontext.obj\
- $(SLO)$/eventimp.obj\
- $(SLO)$/layerexp.obj\
- $(SLO)$/layerimp.obj\
- $(SLO)$/ximpshow.obj\
- $(SLO)$/animimp.obj\
- $(SLO)$/animexp.obj\
- $(SLO)$/numithdl.obj\
- $(SLO)$/sdxmlimp.obj \
- $(SLO)$/sdxmlexp.obj \
- $(SLO)$/ximpstyl.obj \
- $(SLO)$/ximpbody.obj \
- $(SLO)$/ximpshap.obj \
- $(SLO)$/ximpgrp.obj \
- $(SLO)$/ximp3dscene.obj \
- $(SLO)$/ximp3dobject.obj \
- $(SLO)$/ximpnote.obj \
- $(SLO)$/sdpropls.obj \
- $(SLO)$/propimp0.obj \
- $(SLO)$/xexptran.obj \
- $(SLO)$/shapeexport.obj \
- $(SLO)$/shapeexport2.obj \
- $(SLO)$/shapeexport3.obj \
- $(SLO)$/shapeexport4.obj \
- $(SLO)$/shapeimport.obj \
- $(SLO)$/XMLImageMapExport.obj \
- $(SLO)$/XMLImageMapContext.obj \
- $(SLO)$/XMLShapePropertySetContext.obj \
- $(SLO)$/XMLShapeStyleContext.obj \
- $(SLO)$/ximppage.obj \
- $(SLO)$/ximpcustomshape.obj \
- $(SLO)$/EnhancedCustomShapeToken.obj \
- $(SLO)$/XMLReplacementImageContext.obj \
- $(SLO)$/descriptionimp.obj \
- $(SLO)$/ximplink.obj
-
-# --- Targets --------------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/xmloff/source/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx
index 66c7ad557112..22a6ef13c72f 100644
--- a/xmloff/source/draw/sdpropls.cxx
+++ b/xmloff/source/draw/sdpropls.cxx
@@ -62,7 +62,7 @@
#include "sdpropls.hxx"
#include "propimp0.hxx"
#include <xmloff/xmlexp.hxx>
-#include <xmlnmspe.hxx>
+#include <xmloff/xmlnmspe.hxx>
#include <com/sun/star/drawing/NormalsKind.hpp>
#include <com/sun/star/drawing/TextureProjectionMode.hpp>
#include <com/sun/star/drawing/TextureKind.hpp>
diff --git a/xmloff/source/draw/sdpropls.hxx b/xmloff/source/draw/sdpropls.hxx
index e56379c0781f..6beb7a6fcc14 100644
--- a/xmloff/source/draw/sdpropls.hxx
+++ b/xmloff/source/draw/sdpropls.hxx
@@ -35,7 +35,7 @@
#include <xmloff/xmlement.hxx>
#include <xmloff/prhdlfac.hxx>
#include <xmloff/xmlprmap.hxx>
-#include "XMLTextListAutoStylePool.hxx"
+#include "xmloff/XMLTextListAutoStylePool.hxx"
#include <xmloff/xmlexppr.hxx>
//////////////////////////////////////////////////////////////////////////////
diff --git a/xmloff/source/draw/sdxmlexp.cxx b/xmloff/source/draw/sdxmlexp.cxx
index 02f042569d83..5accd0d2ba64 100644
--- a/xmloff/source/draw/sdxmlexp.cxx
+++ b/xmloff/source/draw/sdxmlexp.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include "unointerfacetouniqueidentifiermapper.hxx"
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlmetae.hxx>
@@ -77,7 +77,7 @@
#include "layerexp.hxx"
-#include "VisAreaExport.hxx"
+#include "xmloff/VisAreaExport.hxx"
#include "XMLNumberStylesExport.hxx"
#include <tools/list.hxx>
#include <tools/string.hxx>
diff --git a/xmloff/source/draw/sdxmlimp.cxx b/xmloff/source/draw/sdxmlimp.cxx
index e27954b18908..578b3eefc719 100644
--- a/xmloff/source/draw/sdxmlimp.cxx
+++ b/xmloff/source/draw/sdxmlimp.cxx
@@ -40,7 +40,7 @@
#include <xmloff/xmlmetai.hxx>
#endif
#include "ximpstyl.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/DocumentSettingsContext.hxx>
@@ -51,7 +51,7 @@
#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
#include "sdpropls.hxx"
#include <xmloff/xmlexppr.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <tools/debug.hxx>
#include <com/sun/star/style/XStyle.hpp>
diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx
index 9017afd27800..aebd513995e3 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -63,7 +63,7 @@
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/drawing/XCustomShapeEngine.hpp>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
diff --git a/xmloff/source/draw/shapeexport2.cxx b/xmloff/source/draw/shapeexport2.cxx
index 0212ba98c9a8..7c6268571a9c 100644
--- a/xmloff/source/draw/shapeexport2.cxx
+++ b/xmloff/source/draw/shapeexport2.cxx
@@ -55,7 +55,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/tuple/b2dtuple.hxx>
diff --git a/xmloff/source/draw/shapeexport3.cxx b/xmloff/source/draw/shapeexport3.cxx
index 4472ad94c957..36ab9c499fe5 100644
--- a/xmloff/source/draw/shapeexport3.cxx
+++ b/xmloff/source/draw/shapeexport3.cxx
@@ -49,7 +49,7 @@
#include <xmloff/xmltoken.hxx>
#include <basegfx/vector/b3dvector.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
diff --git a/xmloff/source/draw/shapeexport4.cxx b/xmloff/source/draw/shapeexport4.cxx
index 238fdebefa55..a57823cd8867 100644
--- a/xmloff/source/draw/shapeexport4.cxx
+++ b/xmloff/source/draw/shapeexport4.cxx
@@ -72,7 +72,7 @@
#include <tools/string.hxx>
#include <basegfx/vector/b3dvector.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "XMLBase64Export.hxx"
using ::rtl::OUString;
diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx
index 240cfa636a54..4265b0826481 100644
--- a/xmloff/source/draw/shapeimport.cxx
+++ b/xmloff/source/draw/shapeimport.cxx
@@ -41,7 +41,7 @@
#include <xmloff/shapeimport.hxx>
#endif
#include <xmloff/xmltkmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "ximpstyl.hxx"
#include "ximpshap.hxx"
diff --git a/xmloff/source/draw/viewcontext.cxx b/xmloff/source/draw/viewcontext.cxx
index 85c9838b31eb..764b03e7a132 100644
--- a/xmloff/source/draw/viewcontext.cxx
+++ b/xmloff/source/draw/viewcontext.cxx
@@ -30,9 +30,9 @@
#include "viewcontext.hxx"
#include "sdxmlimp_impl.hxx"
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
-#include "VisAreaContext.hxx"
+#include "xmloff/VisAreaContext.hxx"
using namespace com::sun::star;
using namespace rtl;
diff --git a/xmloff/source/draw/ximp3dscene.cxx b/xmloff/source/draw/ximp3dscene.cxx
index 83a3f7fdf3b3..37d60c761deb 100644
--- a/xmloff/source/draw/ximp3dscene.cxx
+++ b/xmloff/source/draw/ximp3dscene.cxx
@@ -31,7 +31,7 @@
#include <xmloff/xmluconv.hxx>
#include "xexptran.hxx"
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <com/sun/star/drawing/Direction3D.hpp>
#include <com/sun/star/drawing/CameraGeometry.hpp>
#include "eventimp.hxx"
diff --git a/xmloff/source/draw/ximpcustomshape.cxx b/xmloff/source/draw/ximpcustomshape.cxx
index 99985a2a3466..c0808153cc47 100644
--- a/xmloff/source/draw/ximpcustomshape.cxx
+++ b/xmloff/source/draw/ximpcustomshape.cxx
@@ -41,11 +41,11 @@
#include "EnhancedCustomShapeToken.hxx"
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmltkmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
#include "xexptran.hxx"
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <tools/debug.hxx>
#include <com/sun/star/drawing/Direction3D.hpp>
#include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp>
diff --git a/xmloff/source/draw/ximpgrp.cxx b/xmloff/source/draw/ximpgrp.cxx
index 14ab16c79d84..18a75f3bfe83 100644
--- a/xmloff/source/draw/ximpgrp.cxx
+++ b/xmloff/source/draw/ximpgrp.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include"xmlnmspe.hxx"
+#include"xmloff/xmlnmspe.hxx"
#include "ximpgrp.hxx"
#include <xmloff/xmltoken.hxx>
#include "ximpshap.hxx"
diff --git a/xmloff/source/draw/ximplink.cxx b/xmloff/source/draw/ximplink.cxx
index 0433fa2d200b..89d5349bab64 100644
--- a/xmloff/source/draw/ximplink.cxx
+++ b/xmloff/source/draw/ximplink.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include"xmlnmspe.hxx"
+#include"xmloff/xmlnmspe.hxx"
#include "ximplink.hxx"
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/source/draw/ximppage.cxx b/xmloff/source/draw/ximppage.cxx
index 65966f87df7b..663ad84165e8 100644
--- a/xmloff/source/draw/ximppage.cxx
+++ b/xmloff/source/draw/ximppage.cxx
@@ -37,7 +37,7 @@
#include <xmloff/xmlstyle.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlstyle.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "ximppage.hxx"
#include "ximpshap.hxx"
#include "animimp.hxx"
diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx
index 4bf83bd6f52a..552c731230af 100644
--- a/xmloff/source/draw/ximpshap.cxx
+++ b/xmloff/source/draw/ximpshap.cxx
@@ -71,7 +71,7 @@
#include "PropertySetMerger.hxx"
#include <xmloff/families.hxx>
#include "ximpstyl.hxx"
-#include"xmlnmspe.hxx"
+#include"xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "EnhancedCustomShapeToken.hxx"
#include "XMLReplacementImageContext.hxx"
@@ -82,7 +82,7 @@
#include "descriptionimp.hxx"
#include "ximpcustomshape.hxx"
#include "XMLEmbeddedObjectImportContext.hxx"
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <tools/string.hxx>
#include <com/sun/star/drawing/XEnhancedCustomShapeDefaulter.hpp>
@@ -1926,7 +1926,35 @@ void SdXMLConnectorShapeContext::StartElement(const uno::Reference< xml::sax::XA
SetLayer();
if ( maPath.hasValue() )
- xProps->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("PolyPolygonBezier") ), maPath );
+ {
+ // --> OD #i115492#
+ // Ignore svg:d attribute for text documents created by OpenOffice.org
+ // versions before OOo 3.3, because these OOo versions are storing
+ // svg:d values not using the correct unit.
+ bool bApplySVGD( true );
+ if ( uno::Reference< text::XTextDocument >(GetImport().GetModel(), uno::UNO_QUERY).is() )
+ {
+ sal_Int32 nUPD( 0 );
+ sal_Int32 nBuild( 0 );
+ const bool bBuildIdFound = GetImport().getBuildIds( nUPD, nBuild );
+ if ( GetImport().IsTextDocInOOoFileFormat() ||
+ ( bBuildIdFound &&
+ ( ( nUPD == 641 ) || ( nUPD == 645 ) || // prior OOo 2.0
+ ( nUPD == 680 ) || // OOo 2.x
+ ( nUPD == 300 ) || // OOo 3.0 - OOo 3.0.1
+ ( nUPD == 310 ) || // OOo 3.1 - OOo 3.1.1
+ ( nUPD == 320 ) ) ) ) // OOo 3.2 - OOo 3.2.1
+ {
+ bApplySVGD = false;
+ }
+ }
+
+ if ( bApplySVGD )
+ {
+ xProps->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("PolyPolygonBezier") ), maPath );
+ }
+ // <--
+ }
SdXMLShapeContext::StartElement(xAttrList);
}
diff --git a/xmloff/source/draw/ximpshow.cxx b/xmloff/source/draw/ximpshow.cxx
index 3cc67757d7be..b18ff7d5c837 100644
--- a/xmloff/source/draw/ximpshow.cxx
+++ b/xmloff/source/draw/ximpshow.cxx
@@ -39,7 +39,7 @@
#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
#include <xmloff/xmltoken.hxx>
#include <comphelper/extract.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
#include "ximpshow.hxx"
diff --git a/xmloff/source/draw/ximpstyl.cxx b/xmloff/source/draw/ximpstyl.cxx
index 70c53233590c..2de7fc88c838 100644
--- a/xmloff/source/draw/ximpstyl.cxx
+++ b/xmloff/source/draw/ximpstyl.cxx
@@ -31,7 +31,7 @@
#include "ximpstyl.hxx"
#include <xmloff/XMLShapeStyleContext.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include "ximpnote.hxx"
@@ -55,7 +55,7 @@
#include "layerimp.hxx"
#include <xmloff/XMLGraphicsDefaultStyle.hxx>
#include "XMLNumberStylesImport.hxx"
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
diff --git a/xmloff/source/forms/controlelement.cxx b/xmloff/source/forms/controlelement.cxx
index 84a74fe44a8b..748cf68c23ed 100644
--- a/xmloff/source/forms/controlelement.cxx
+++ b/xmloff/source/forms/controlelement.cxx
@@ -59,6 +59,8 @@ namespace xmloff
case HIDDEN: return "hidden";
case GRID: return "grid";
case VALUERANGE: return "value-range";
+ case TIME: return "time";
+ case DATE: return "date";
default: return "generic-control";
}
diff --git a/xmloff/source/forms/controlelement.hxx b/xmloff/source/forms/controlelement.hxx
index 1816710fb4dc..d226f218f426 100644
--- a/xmloff/source/forms/controlelement.hxx
+++ b/xmloff/source/forms/controlelement.hxx
@@ -63,6 +63,8 @@ namespace xmloff
GRID,
VALUERANGE,
GENERIC_CONTROL,
+ TIME,
+ DATE,
UNKNOWN // must be the last element
};
diff --git a/xmloff/source/forms/controlpropertymap.cxx b/xmloff/source/forms/controlpropertymap.cxx
index 8e81c2a7e19c..aed0b8c4e190 100644
--- a/xmloff/source/forms/controlpropertymap.cxx
+++ b/xmloff/source/forms/controlpropertymap.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/maptype.hxx>
#include <xmloff/xmltypes.hxx>
diff --git a/xmloff/source/forms/elementexport.cxx b/xmloff/source/forms/elementexport.cxx
index 115b06c4c2ad..1126583f9a45 100644
--- a/xmloff/source/forms/elementexport.cxx
+++ b/xmloff/source/forms/elementexport.cxx
@@ -30,12 +30,13 @@
#include "elementexport.hxx"
#include "strings.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "eventexport.hxx"
#include "formenums.hxx"
#include "formcellbinding.hxx"
#include "formcellbinding.hxx"
-#include "xformsexport.hxx"
+#include "xmloff/xformsexport.hxx"
+#include "property_meta_data.hxx"
/** === begin UNO includes === **/
#include <com/sun/star/text/XText.hpp>
@@ -321,6 +322,9 @@ namespace xmloff
#endif
}
+ // "new-style" properties ...
+ exportGenericHandlerAttributes();
+
// common control attributes
exportCommonControlAttributes();
@@ -474,6 +478,84 @@ namespace xmloff
}
//---------------------------------------------------------------------
+ void OControlExport::exportGenericHandlerAttributes()
+ {
+ const Sequence< Property > aProperties = m_xPropertyInfo->getProperties();
+ for ( const Property* prop = aProperties.getConstArray();
+ prop != aProperties.getConstArray() + aProperties.getLength();
+ ++prop
+ )
+ {
+ try
+ {
+ // see if this property can already be handled with an IPropertyHandler (which, on the long
+ // term, should be the case for most, if not all, properties)
+ const PropertyDescription* propDescription = metadata::getPropertyDescription( prop->Name );
+ if ( propDescription == NULL )
+ continue;
+
+ // let the factory provide the concrete handler. Note that caching, if desired, is the task
+ // of the factory
+ PPropertyHandler handler = (*propDescription->factory)( propDescription->propertyId );
+ ENSURE_OR_CONTINUE( handler.get() != NULL,
+ "OControlExport::exportGenericHandlerAttributes: invalid property handler provided by the factory!" );
+
+ ::rtl::OUString attributeValue;
+ if ( propDescription->propertyGroup == NO_GROUP )
+ {
+ // that's a property which has a direct mapping to an attribute
+ if ( !shouldExportProperty( prop->Name ) )
+ // TODO: in the future, we surely need a more sophisticated approach to this, involving the property
+ // handler, or the property description
+ {
+ exportedProperty( prop->Name );
+ continue;
+ }
+
+ const Any propValue = m_xProps->getPropertyValue( prop->Name );
+ attributeValue = handler->getAttributeValue( propValue );
+ }
+ else
+ {
+ // that's a property which is part of a group of properties, whose values, in their entity, comprise
+ // a single attribute value
+
+ // retrieve the descriptions of all other properties which add to the attribute value
+ PropertyDescriptionList descriptions;
+ metadata::getPropertyGroup( propDescription->propertyGroup, descriptions );
+
+ // retrieve the values for all those properties
+ PropertyValues aValues;
+ for ( PropertyDescriptionList::iterator desc = descriptions.begin();
+ desc != descriptions.end();
+ ++desc
+ )
+ {
+ // TODO: XMultiPropertySet?
+ const Any propValue = m_xProps->getPropertyValue( (*desc)->propertyName );
+ aValues[ (*desc)->propertyId ] = propValue;
+ }
+
+ // let the handler translate into an XML attribute value
+ attributeValue = handler->getAttributeValue( aValues );
+ }
+
+ AddAttribute(
+ propDescription->attribute.namespacePrefix,
+ token::GetXMLToken( propDescription->attribute.attributeToken ),
+ attributeValue
+ );
+
+ exportedProperty( prop->Name );
+ }
+ catch( const Exception& )
+ {
+ DBG_UNHANDLED_EXCEPTION();
+ }
+ }
+ }
+
+ //---------------------------------------------------------------------
void OControlExport::exportCommonControlAttributes()
{
size_t i=0;
@@ -1380,21 +1462,35 @@ namespace xmloff
m_nClassId = FormComponentType::CONTROL;
DBG_CHECK_PROPERTY( PROPERTY_CLASSID, sal_Int16 );
m_xProps->getPropertyValue(PROPERTY_CLASSID) >>= m_nClassId;
+ bool knownType = false;
switch (m_nClassId)
{
case FormComponentType::DATEFIELD:
+ m_eType = DATE;
+ knownType = true;
+ // NO BREAK
case FormComponentType::TIMEFIELD:
+ if ( !knownType )
+ {
+ m_eType = TIME;
+ knownType = true;
+ }
+ m_nIncludeSpecial |= SCA_VALIDATION;
+ // NO BREAK
case FormComponentType::NUMERICFIELD:
case FormComponentType::CURRENCYFIELD:
case FormComponentType::PATTERNFIELD:
- m_eType = FORMATTED_TEXT;
+ if ( !knownType )
+ {
+ m_eType = FORMATTED_TEXT;
+ knownType = true;
+ }
// NO BREAK
case FormComponentType::TEXTFIELD:
{ // it's some kind of edit. To know which type we need further investigation
- if (FORMATTED_TEXT != m_eType)
- { // not coming from the previous cases which had a class id .ne. TEXTFIELD
-
+ if ( !knownType )
+ {
// check if it's a formatted field
if (m_xPropertyInfo->hasPropertyByName(PROPERTY_FORMATKEY))
{
@@ -1430,14 +1526,21 @@ namespace xmloff
m_eType = TEXT;
}
}
+ knownType = true;
}
- // attributes which are common to all the four types:
+ // attributes which are common to all the types:
// common attributes
m_nIncludeCommon =
- CCA_NAME | CCA_SERVICE_NAME | CCA_DISABLED | CCA_VALUE |
+ CCA_NAME | CCA_SERVICE_NAME | CCA_DISABLED |
CCA_PRINTABLE | CCA_TAB_INDEX | CCA_TAB_STOP | CCA_TITLE;
+ if ( ( m_nClassId != FormComponentType::DATEFIELD )
+ && ( m_nClassId != FormComponentType::TIMEFIELD )
+ )
+ // date and time field values are handled differently nowadays
+ m_nIncludeCommon |= CCA_VALUE;
+
// database attributes
m_nIncludeDatabase = DA_DATA_FIELD | DA_INPUT_REQUIRED;
@@ -1461,8 +1564,7 @@ namespace xmloff
// max and min values and validation:
if (FORMATTED_TEXT == m_eType)
{ // in general all controls represented as formatted-text have these props
- if (FormComponentType::PATTERNFIELD != m_nClassId)
- // but the PatternField does not have value limits
+ if ( FormComponentType::PATTERNFIELD != m_nClassId ) // except the PatternField
m_nIncludeSpecial |= SCA_MAX_VALUE | SCA_MIN_VALUE;
if (FormComponentType::TEXTFIELD != m_nClassId)
@@ -1471,8 +1573,13 @@ namespace xmloff
}
// if it's not a password field or rich text control, the CurrentValue needs to be stored, too
- if ( PASSWORD != m_eType )
+ if ( ( PASSWORD != m_eType )
+ && ( DATE != m_eType )
+ && ( TIME != m_eType )
+ )
+ {
m_nIncludeCommon |= CCA_CURRENT_VALUE;
+ }
}
break;
diff --git a/xmloff/source/forms/elementexport.hxx b/xmloff/source/forms/elementexport.hxx
index dbd38579593d..960da6c145db 100644
--- a/xmloff/source/forms/elementexport.hxx
+++ b/xmloff/source/forms/elementexport.hxx
@@ -161,6 +161,13 @@ namespace xmloff
*/
void exportSubTags() throw (::com::sun::star::uno::Exception);
+ /** adds the attributes which are handled via generic IPropertyHandlers
+
+ <p>In the future, this really should be *all* attribiutes, instead of this shitload of
+ hand-crafted code we have currently ...</p>
+ */
+ void exportGenericHandlerAttributes();
+
/** adds common control attributes to the XMLExport context given
<p>The attribute list of the context is not cleared initially, this is the responsibility of the caller.</p>
diff --git a/xmloff/source/forms/elementimport.cxx b/xmloff/source/forms/elementimport.cxx
index 934a77f29b64..d917ea31b8c7 100644
--- a/xmloff/source/forms/elementimport.cxx
+++ b/xmloff/source/forms/elementimport.cxx
@@ -28,22 +28,21 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include <algorithm>
#include "elementimport.hxx"
-#include <xmloff/xmlimp.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/xmluconv.hxx>
+#include "xmloff/xmlimp.hxx"
+#include "xmloff/nmspmap.hxx"
+#include "xmloff/xmluconv.hxx"
#include "strings.hxx"
#include "callbacks.hxx"
#include "attriblistmerge.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "eventimport.hxx"
-#include <xmloff/txtstyli.hxx>
+#include "xmloff/txtstyli.hxx"
#include "formenums.hxx"
-#include <xmloff/xmltoken.hxx>
+#include "xmloff/xmltoken.hxx"
#include "gridcolumnproptranslator.hxx"
-#include <comphelper/extract.hxx>
-#include <comphelper/types.hxx>
+#include "property_description.hxx"
+#include "property_meta_data.hxx"
/** === begin UNO includes === **/
#include <com/sun/star/text/XText.hpp>
@@ -54,9 +53,13 @@
#include <com/sun/star/beans/XPropertyContainer.hpp>
#include <com/sun/star/beans/PropertyAttribute.hpp>
/** === end UNO includes === **/
+
#include <tools/urlobj.hxx>
+#include <tools/diagnose_ex.h>
#include <tools/time.hxx>
#include <rtl/logfile.hxx>
+#include <comphelper/extract.hxx>
+#include <comphelper/types.hxx>
#include <algorithm>
#include <functional>
@@ -157,6 +160,7 @@ namespace xmloff
,m_rEventManager(_rEventManager)
,m_pStyleElement( NULL )
,m_xParentContainer(_rxParentContainer)
+ ,m_bImplicitGenericAttributeHandling( true )
{
OSL_ENSURE(m_xParentContainer.is(), "OElementImport::OElementImport: invalid parent container!");
}
@@ -167,17 +171,41 @@ namespace xmloff
}
//---------------------------------------------------------------------
+ ::rtl::OUString OElementImport::determineDefaultServiceName() const
+ {
+ return ::rtl::OUString();
+ }
+
+ //---------------------------------------------------------------------
void OElementImport::StartElement(const Reference< sax::XAttributeList >& _rxAttrList)
{
ENTER_LOG_CONTEXT( "xmloff::OElementImport - importing one element" );
- // call the base class. This should give us enough information (especially the service name)
- // to create our UNO element
- OPropertyImport::StartElement(_rxAttrList);
- // create the element
+ const SvXMLNamespaceMap& rMap = m_rContext.getGlobalContext().GetNamespaceMap();
+ const ::rtl::OUString sImplNameAttribute = rMap.GetQNameByKey( XML_NAMESPACE_FORM, GetXMLToken( XML_CONTROL_IMPLEMENTATION ) );
+ const ::rtl::OUString sControlImplementation = _rxAttrList->getValueByName( sImplNameAttribute );
+
+ // retrieve the service name
+ if ( sControlImplementation.getLength() > 0 )
+ {
+ ::rtl::OUString sOOoImplementationName;
+ const sal_uInt16 nImplPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sControlImplementation, &sOOoImplementationName );
+ m_sServiceName = ( nImplPrefix == XML_NAMESPACE_OOO ) ? sOOoImplementationName : sControlImplementation;
+ }
+
+ if ( !m_sServiceName.getLength() )
+ determineDefaultServiceName();
+
+ // create the object *now*. This allows setting properties in the various handleAttribute methods.
+ // (Though currently not all code is migrated to this pattern, most attributes are still handled
+ // by remembering the value (via implPushBackPropertyValue), and setting the correct property value
+ // later (in OControlImport::StartElement).)
m_xElement = createElement();
- if ( !m_xInfo.is() && m_xElement.is() )
+ if ( m_xElement.is() )
m_xInfo = m_xElement->getPropertySetInfo();
+
+ // call the base class
+ OPropertyImport::StartElement( _rxAttrList );
}
//---------------------------------------------------------------------
@@ -197,26 +225,61 @@ namespace xmloff
if (!m_xElement.is())
return;
+ // apply the non-generic properties
+ implApplySpecificProperties();
+
+ // set the generic properties
+ implApplyGenericProperties();
+
+ // set the style properties
+ if ( m_pStyleElement && m_xElement.is() )
+ {
+ Reference< XPropertySet > xPropTranslation =
+ new OGridColumnPropertyTranslator( Reference< XMultiPropertySet >( m_xElement, UNO_QUERY ) );
+ const_cast< XMLTextStyleContext* >( m_pStyleElement )->FillPropertySet( xPropTranslation );
+
+ const ::rtl::OUString sNumberStyleName = const_cast< XMLTextStyleContext* >( m_pStyleElement )->GetDataStyleName( );
+ if ( sNumberStyleName.getLength() )
+ // the style also has a number (sub) style
+ m_rContext.applyControlNumberStyle( m_xElement, sNumberStyleName );
+ }
+
+ // insert the element into the parent container
+ if (!m_sName.getLength())
+ {
+ OSL_ENSURE(sal_False, "OElementImport::EndElement: did not find a name attribute!");
+ m_sName = implGetDefaultName();
+ }
+
+ m_xParentContainer->insertByName(m_sName, makeAny(m_xElement));
+ LEAVE_LOG_CONTEXT( );
+ }
+
+ //---------------------------------------------------------------------
+ void OElementImport::implApplySpecificProperties()
+ {
+ if ( m_aValues.empty() )
+ return;
+
// set all the properties we collected
#if OSL_DEBUG_LEVEL > 0
// check if the object has all the properties
// (We do this in the non-pro version only. Doing it all the time would be much to expensive)
if ( m_xInfo.is() )
{
- PropertyValueArray::iterator aEnd = m_aValues.end();
+ PropertyValueArray::const_iterator aEnd = m_aValues.end();
for ( PropertyValueArray::iterator aCheck = m_aValues.begin();
aCheck != aEnd;
++aCheck
)
{
OSL_ENSURE(m_xInfo->hasPropertyByName(aCheck->Name),
- ::rtl::OString("OElementImport::EndElement: read a property (")
+ ::rtl::OString("OElementImport::implApplySpecificProperties: read a property (")
+= ::rtl::OString(aCheck->Name.getStr(), aCheck->Name.getLength(), RTL_TEXTENCODING_ASCII_US)
+= ::rtl::OString(") which does not exist on the element!"));
}
}
#endif
- OSL_ENSURE(!m_aValues.empty(), "OElementImport::EndElement: no properties read!");
// set the properties
const Reference< XMultiPropertySet > xMultiProps(m_xElement, UNO_QUERY);
@@ -253,7 +316,7 @@ namespace xmloff
}
catch(Exception&)
{
- OSL_ENSURE(sal_False, "OElementImport::EndElement: could not set the properties (using the XMultiPropertySet)!");
+ OSL_ENSURE(sal_False, "OElementImport::implApplySpecificProperties: could not set the properties (using the XMultiPropertySet)!");
}
}
@@ -274,42 +337,16 @@ namespace xmloff
catch(Exception&)
{
OSL_ENSURE(sal_False,
- ::rtl::OString("OElementImport::EndElement: could not set the property \"")
+ ::rtl::OString("OElementImport::implApplySpecificProperties: could not set the property \"")
+= ::rtl::OString(aPropValues->Name.getStr(), aPropValues->Name.getLength(), RTL_TEXTENCODING_ASCII_US)
+= ::rtl::OString("\"!"));
}
}
}
-
- // set the generic properties
- implImportGenericProperties();
-
- // set the style properties
- if ( m_pStyleElement && m_xElement.is() )
- {
- Reference< XPropertySet > xPropTranslation =
- new OGridColumnPropertyTranslator( Reference< XMultiPropertySet >( m_xElement, UNO_QUERY ) );
- const_cast< XMLTextStyleContext* >( m_pStyleElement )->FillPropertySet( xPropTranslation );
-
- const ::rtl::OUString sNumberStyleName = const_cast< XMLTextStyleContext* >( m_pStyleElement )->GetDataStyleName( );
- if ( sNumberStyleName.getLength() )
- // the style also has a number (sub) style
- m_rContext.applyControlNumberStyle( m_xElement, sNumberStyleName );
- }
-
- // insert the element into the parent container
- if (!m_sName.getLength())
- {
- OSL_ENSURE(sal_False, "OElementImport::EndElement: did not find a name attribute!");
- m_sName = implGetDefaultName();
- }
-
- m_xParentContainer->insertByName(m_sName, makeAny(m_xElement));
- LEAVE_LOG_CONTEXT( );
}
//---------------------------------------------------------------------
- void OElementImport::implImportGenericProperties()
+ void OElementImport::implApplyGenericProperties()
{
if ( m_aGenericValues.empty() )
return;
@@ -334,7 +371,7 @@ namespace xmloff
if ( !xDynamicProperties.is() )
{
#if OSL_DEBUG_LEVEL > 0
- ::rtl::OString aMessage( "OElementImport::implImportGenericProperties: encountered an unknown property (" );
+ ::rtl::OString aMessage( "OElementImport::implApplyGenericProperties: encountered an unknown property (" );
aMessage += ::rtl::OUStringToOString( aPropValues->Name, RTL_TEXTENCODING_ASCII_US );
aMessage += "), but component is no PropertyBag!";
OSL_ENSURE( false, aMessage.getStr() );
@@ -352,7 +389,7 @@ namespace xmloff
m_xInfo = m_xElement->getPropertySetInfo();
}
- // determine the type of the value (source forthe following conversion)
+ // determine the type of the value (source for the following conversion)
TypeClass eValueTypeClass = aPropValues->Value.getValueTypeClass();
const sal_Bool bValueIsSequence = TypeClass_SEQUENCE == eValueTypeClass;
if ( bValueIsSequence )
@@ -361,7 +398,7 @@ namespace xmloff
eValueTypeClass = aSimpleType.getTypeClass();
}
- // determine the type of the property (target forthe following conversion)
+ // determine the type of the property (target for the following conversion)
const Property aProperty( m_xInfo->getPropertyByName( aPropValues->Name ) );
TypeClass ePropTypeClass = aProperty.Type.getTypeClass();
const sal_Bool bPropIsSequence = TypeClass_SEQUENCE == ePropTypeClass;
@@ -373,18 +410,18 @@ namespace xmloff
if ( bPropIsSequence != bValueIsSequence )
{
- OSL_ENSURE( false, "OElementImport::implImportGenericProperties: either both value and property should be a sequence, or none of them!" );
+ OSL_ENSURE( false, "OElementImport::implApplyGenericProperties: either both value and property should be a sequence, or none of them!" );
continue;
}
if ( bValueIsSequence )
{
OSL_ENSURE( eValueTypeClass == TypeClass_ANY,
- "OElementImport::implImportGenericProperties: only ANYs should have been imported as generic list property!" );
+ "OElementImport::implApplyGenericProperties: only ANYs should have been imported as generic list property!" );
// (OPropertyImport should produce only Sequencer< Any >, since it cannot know the real type
OSL_ENSURE( ePropTypeClass == TypeClass_SHORT,
- "OElementImport::implImportGenericProperties: conversion to sequences other than 'sequence< short >' not implemented, yet!" );
+ "OElementImport::implApplyGenericProperties: conversion to sequences other than 'sequence< short >' not implemented, yet!" );
Sequence< Any > aXMLValueList;
aPropValues->Value >>= aXMLValueList;
@@ -427,13 +464,13 @@ namespace xmloff
aPropValues->Value <<= static_cast< sal_Int64 >( nVal );
break;
default:
- OSL_ENSURE( false, "OElementImport::implImportGenericProperties: unsupported value type!" );
+ OSL_ENSURE( false, "OElementImport::implApplyGenericProperties: unsupported value type!" );
break;
}
}
break;
default:
- OSL_ENSURE( false, "OElementImport::implImportGenericProperties: non-double values not supported!" );
+ OSL_ENSURE( false, "OElementImport::implApplyGenericProperties: non-double values not supported!" );
break;
}
}
@@ -484,38 +521,117 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void OElementImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
+ PropertyGroups::const_iterator OElementImport::impl_matchPropertyGroup( const PropertyGroups& i_propertyGroups ) const
{
- if (!m_sServiceName.getLength() &&
- token::IsXMLToken( _rLocalName, token::XML_CONTROL_IMPLEMENTATION))
- { // it's the service name
+ ENSURE_OR_RETURN( m_xInfo.is(), "OElementImport::impl_matchPropertyGroup: no property set info!", i_propertyGroups.end() );
- ::rtl::OUString sImplName;
- const sal_uInt16 nImplPrefix =
- GetImport().GetNamespaceMap().GetKeyByAttrName( _rValue,
- &sImplName );
- m_sServiceName = XML_NAMESPACE_OOO==nImplPrefix ? sImplName
- :_rValue;
+ for ( PropertyGroups::const_iterator group = i_propertyGroups.begin();
+ group != i_propertyGroups.end();
+ ++group
+ )
+ {
+ bool missingProp = false;
+ for ( PropertyDescriptionList::const_iterator prop = group->begin();
+ prop != group->end();
+ ++prop
+ )
+ {
+ if ( !m_xInfo->hasPropertyByName( (*prop)->propertyName ) )
+ {
+ missingProp = true;
+ break;
+ }
+ }
+
+ if ( missingProp )
+ // try next group
+ continue;
+
+ return group;
}
- else
+
+ return i_propertyGroups.end();
+ }
+
+ //---------------------------------------------------------------------
+ bool OElementImport::tryGenericAttribute( sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue )
+ {
+ // the generic approach (which I hope all props will be migrated to, on the medium term): property handlers
+ const AttributeDescription attribute( metadata::getAttributeDescription( _nNamespaceKey, _rLocalName ) );
+ if ( attribute.attributeToken != XML_TOKEN_INVALID )
{
- if (!m_sName.getLength() &&
- token::IsXMLToken( _rLocalName, token::XML_NAME))
- // remember the name for later use in EndElement
- m_sName = _rValue;
+ PropertyGroups propertyGroups;
+ metadata::getPropertyGroupList( attribute, propertyGroups );
+ const PropertyGroups::const_iterator pos = impl_matchPropertyGroup( propertyGroups );
+ if ( pos == propertyGroups.end() )
+ return false;
- // maybe it's the style attribute?
- if ( token::IsXMLToken( _rLocalName, token::XML_TEXT_STYLE_NAME ) )
+ do
{
- const SvXMLStyleContext* pStyleContext = m_rContext.getStyleElement( _rValue );
- OSL_ENSURE( pStyleContext, "OPropertyImport::handleAttribute: do not know the style!" );
- // remember the element for later usage.
- m_pStyleElement = PTR_CAST( XMLTextStyleContext, pStyleContext );
+ const PropertyDescriptionList& rProperties( *pos );
+ const PropertyDescription* first = *rProperties.begin();
+ ENSURE_OR_BREAK( first != NULL, "OElementImport::handleAttribute: invalid property description!" );
+ const PPropertyHandler handler = (*first->factory)( first->propertyId );
+ ENSURE_OR_BREAK( handler.get() != NULL, "OElementImport::handleAttribute: invalid property handler!" );
+
+ PropertyValues aValues;
+ for ( PropertyDescriptionList::const_iterator propDesc = rProperties.begin();
+ propDesc != rProperties.end();
+ ++propDesc
+ )
+ {
+ aValues[ (*propDesc)->propertyId ] = Any();
+ }
+ if ( handler->getPropertyValues( _rValue, aValues ) )
+ {
+ for ( PropertyDescriptionList::const_iterator propDesc = rProperties.begin();
+ propDesc != rProperties.end();
+ ++propDesc
+ )
+ {
+ implPushBackPropertyValue( (*propDesc)->propertyName, aValues[ (*propDesc)->propertyId ] );
+ }
+ }
}
- else
- // let the base class handle it
- OPropertyImport::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
+ while ( false );
+
+ // handled
+ return true;
}
+ return false;
+ }
+
+ //---------------------------------------------------------------------
+ bool OElementImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
+ {
+ if ( token::IsXMLToken( _rLocalName, token::XML_CONTROL_IMPLEMENTATION ) )
+ // ignore this, it has already been handled in OElementImport::StartElement
+ return true;
+
+ if ( token::IsXMLToken( _rLocalName, token::XML_NAME ) )
+ {
+ if ( !m_sName.getLength() )
+ // remember the name for later use in EndElement
+ m_sName = _rValue;
+ return true;
+ }
+
+ // maybe it's the style attribute?
+ if ( token::IsXMLToken( _rLocalName, token::XML_TEXT_STYLE_NAME ) )
+ {
+ const SvXMLStyleContext* pStyleContext = m_rContext.getStyleElement( _rValue );
+ OSL_ENSURE( pStyleContext, "OElementImport::handleAttribute: do not know the style!" );
+ // remember the element for later usage.
+ m_pStyleElement = PTR_CAST( XMLTextStyleContext, pStyleContext );
+ return true;
+ }
+
+ if ( m_bImplicitGenericAttributeHandling )
+ if ( tryGenericAttribute( _nNamespaceKey, _rLocalName, _rValue ) )
+ return true;
+
+ // let the base class handle it
+ return OPropertyImport::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
}
//---------------------------------------------------------------------
@@ -553,7 +669,7 @@ namespace xmloff
{
::rtl::OUString sLocalAttrName = ::rtl::OUString::createFromAscii(_pAttributeName);
if ( !encounteredAttribute( sLocalAttrName ) )
- handleAttribute( XML_NAMESPACE_FORM, sLocalAttrName, ::rtl::OUString::createFromAscii( _pAttributeDefault ) );
+ OSL_VERIFY( handleAttribute( XML_NAMESPACE_FORM, sLocalAttrName, ::rtl::OUString::createFromAscii( _pAttributeDefault ) ) );
}
}
@@ -566,6 +682,7 @@ namespace xmloff
:OElementImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer)
,m_eElementType(OControlElement::UNKNOWN)
{
+ disableImplicitGenericAttributeHandling();
}
//---------------------------------------------------------------------
@@ -574,6 +691,38 @@ namespace xmloff
:OElementImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer)
,m_eElementType(_eType)
{
+ disableImplicitGenericAttributeHandling();
+ }
+
+ //---------------------------------------------------------------------
+ ::rtl::OUString OControlImport::determineDefaultServiceName() const
+ {
+ const sal_Char* pServiceName = NULL;
+ switch ( m_eElementType )
+ {
+ case OControlElement::TEXT:
+ case OControlElement::TEXT_AREA:
+ case OControlElement::PASSWORD: pServiceName = "com.sun.star.form.component.TextField"; break;
+ case OControlElement::FILE: pServiceName = "com.sun.star.form.component.FileControl"; break;
+ case OControlElement::FORMATTED_TEXT: pServiceName = "com.sun.star.form.component.FormattedField"; break;
+ case OControlElement::FIXED_TEXT: pServiceName = "com.sun.star.form.component.FixedText"; break;
+ case OControlElement::COMBOBOX: pServiceName = "com.sun.star.form.component.ComboBox"; break;
+ case OControlElement::LISTBOX: pServiceName = "com.sun.star.form.component.ListBox"; break;
+ case OControlElement::BUTTON: pServiceName = "com.sun.star.form.component.CommandButton"; break;
+ case OControlElement::IMAGE: pServiceName = "com.sun.star.form.component.ImageButton"; break;
+ case OControlElement::CHECKBOX: pServiceName = "com.sun.star.form.component.CheckBox"; break;
+ case OControlElement::RADIO: pServiceName = "com.sun.star.form.component.RadioButton"; break;
+ case OControlElement::FRAME: pServiceName = "com.sun.star.form.component.GroupBox"; break;
+ case OControlElement::IMAGE_FRAME: pServiceName = "com.sun.star.form.component.DatabaseImageControl"; break;
+ case OControlElement::HIDDEN: pServiceName = "com.sun.star.form.component.HiddenControl"; break;
+ case OControlElement::GRID: pServiceName = "com.sun.star.form.component.GridControl"; break;
+ case OControlElement::TIME: pServiceName = "com.sun.star.form.component.DateField"; break;
+ case OControlElement::DATE: pServiceName = "com.sun.star.form.component.TimeField"; break;
+ default: break;
+ }
+ if ( pServiceName != NULL )
+ return ::rtl::OUString::createFromAscii( pServiceName );
+ return ::rtl::OUString();
}
//---------------------------------------------------------------------
@@ -584,7 +733,7 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void OControlImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
+ bool OControlImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
{
static const sal_Char* pLinkedCellAttributeName = OAttributeMetaData::getBindingAttributeName(BA_LINKED_CELL);
@@ -601,66 +750,84 @@ namespace xmloff
m_sControlId = _rValue;
}
}
+ return true;
}
- else if ( _rLocalName.equalsAscii( pLinkedCellAttributeName ) )
+
+ if ( _rLocalName.equalsAscii( pLinkedCellAttributeName ) )
{ // it's the address of a spreadsheet cell
m_sBoundCellAddress = _rValue;
+ return true;
}
- else if ( _nNamespaceKey == XML_NAMESPACE_XFORMS && IsXMLToken( _rLocalName, XML_BIND ) )
+
+ if ( _nNamespaceKey == XML_NAMESPACE_XFORMS && IsXMLToken( _rLocalName, XML_BIND ) )
{
m_sBindingID = _rValue;
+ return true;
}
- else if ( _nNamespaceKey == XML_NAMESPACE_FORM && IsXMLToken( _rLocalName, XML_XFORMS_LIST_SOURCE ) )
+
+ if ( _nNamespaceKey == XML_NAMESPACE_FORM && IsXMLToken( _rLocalName, XML_XFORMS_LIST_SOURCE ) )
{
m_sListBindingID = _rValue;
+ return true;
}
- else if ( (_nNamespaceKey == XML_NAMESPACE_FORM && IsXMLToken( _rLocalName, XML_XFORMS_SUBMISSION ) ) ||
- ( _nNamespaceKey == XML_NAMESPACE_XFORMS && IsXMLToken( _rLocalName, XML_SUBMISSION ) ) )
+
+ if ( ( ( _nNamespaceKey == XML_NAMESPACE_FORM )
+ && IsXMLToken( _rLocalName, XML_XFORMS_SUBMISSION )
+ )
+ || ( ( _nNamespaceKey == XML_NAMESPACE_XFORMS )
+ && IsXMLToken( _rLocalName, XML_SUBMISSION )
+ )
+ )
{
m_sSubmissionID = _rValue;
+ return true;
}
- else
+
+ if ( OElementImport::tryGenericAttribute( _nNamespaceKey, _rLocalName, _rValue ) )
+ return true;
+
+ static const sal_Char* pValueAttributeName = OAttributeMetaData::getCommonControlAttributeName(CCA_VALUE);
+ static const sal_Char* pCurrentValueAttributeName = OAttributeMetaData::getCommonControlAttributeName(CCA_CURRENT_VALUE);
+ static const sal_Char* pMinValueAttributeName = OAttributeMetaData::getSpecialAttributeName(SCA_MIN_VALUE);
+ static const sal_Char* pMaxValueAttributeName = OAttributeMetaData::getSpecialAttributeName(SCA_MAX_VALUE);
+ static const sal_Char* pRepeatDelayAttributeName = OAttributeMetaData::getSpecialAttributeName( SCA_REPEAT_DELAY );
+
+ sal_Int32 nHandle = -1;
+ if ( _rLocalName.equalsAscii( pValueAttributeName ) )
+ nHandle = PROPID_VALUE;
+ else if ( _rLocalName.equalsAscii( pCurrentValueAttributeName ) )
+ nHandle = PROPID_CURRENT_VALUE;
+ else if ( _rLocalName.equalsAscii( pMinValueAttributeName ) )
+ nHandle = PROPID_MIN_VALUE;
+ else if ( _rLocalName.equalsAscii( pMaxValueAttributeName ) )
+ nHandle = PROPID_MAX_VALUE;
+ if ( nHandle != -1 )
{
- static const sal_Char* pValueAttributeName = OAttributeMetaData::getCommonControlAttributeName(CCA_VALUE);
- static const sal_Char* pCurrentValueAttributeName = OAttributeMetaData::getCommonControlAttributeName(CCA_CURRENT_VALUE);
- static const sal_Char* pMinValueAttributeName = OAttributeMetaData::getSpecialAttributeName(SCA_MIN_VALUE);
- static const sal_Char* pMaxValueAttributeName = OAttributeMetaData::getSpecialAttributeName(SCA_MAX_VALUE);
- static const sal_Char* pRepeatDelayAttributeName = OAttributeMetaData::getSpecialAttributeName( SCA_REPEAT_DELAY );
-
- sal_Int32 nHandle = -1;
- if ( _rLocalName.equalsAscii( pValueAttributeName ) )
- nHandle = PROPID_VALUE;
- else if ( _rLocalName.equalsAscii( pCurrentValueAttributeName ) )
- nHandle = PROPID_CURRENT_VALUE;
- else if ( _rLocalName.equalsAscii( pMinValueAttributeName ) )
- nHandle = PROPID_MIN_VALUE;
- else if ( _rLocalName.equalsAscii( pMaxValueAttributeName ) )
- nHandle = PROPID_MAX_VALUE;
- if ( nHandle != -1 )
+ // for the moment, simply remember the name and the value
+ PropertyValue aProp;
+ aProp.Name = _rLocalName;
+ aProp.Handle = nHandle;
+ aProp.Value <<= _rValue;
+ m_aValueProperties.push_back(aProp);
+ return true;
+ }
+
+ if ( _rLocalName.equalsAscii( pRepeatDelayAttributeName ) )
+ {
+ ::Time aTime;
+ sal_Int32 nFractions = 0;
+ if ( SvXMLUnitConverter::convertTimeDuration( _rValue, aTime, &nFractions ) )
{
- // for the moment, simply remember the name and the value
PropertyValue aProp;
- aProp.Name = _rLocalName;
- aProp.Handle = nHandle;
- aProp.Value <<= _rValue;
- m_aValueProperties.push_back(aProp);
- }
- else if ( _rLocalName.equalsAscii( pRepeatDelayAttributeName ) )
- {
- ::Time aTime;
- sal_Int32 nFractions = 0;
- if ( SvXMLUnitConverter::convertTimeDuration( _rValue, aTime, &nFractions ) )
- {
- PropertyValue aProp;
- aProp.Name = PROPERTY_REPEAT_DELAY;
- aProp.Value <<= (sal_Int32)( ( ( aTime.GetMSFromTime() / 1000 ) * 1000 ) + nFractions );
+ aProp.Name = PROPERTY_REPEAT_DELAY;
+ aProp.Value <<= (sal_Int32)( ( ( aTime.GetMSFromTime() / 1000 ) * 1000 ) + nFractions );
- implPushBackPropertyValue(aProp);
- }
+ implPushBackPropertyValue(aProp);
}
- else
- OElementImport::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
+ return true;
}
+
+ return OElementImport::handleAttribute( _nNamespaceKey, _rLocalName, _rValue );
}
//---------------------------------------------------------------------
@@ -713,6 +880,7 @@ namespace xmloff
++aValueProps
)
{
+ bool bSuccess = false;
switch (aValueProps->Handle)
{
case PROPID_VALUE:
@@ -722,6 +890,7 @@ namespace xmloff
if (!bRetrievedValues)
{
getValuePropertyNames(m_eElementType, nClassId, pCurrentValueProperty, pValueProperty);
+ ENSURE_OR_BREAK( pCurrentValueProperty && pValueProperty, "OControlImport::StartElement: illegal value property names!" );
bRetrievedValues = sal_True;
}
OSL_ENSURE((PROPID_VALUE != aValueProps->Handle) || pValueProperty,
@@ -734,6 +903,7 @@ namespace xmloff
aValueProps->Name = ::rtl::OUString::createFromAscii(pValueProperty);
else
aValueProps->Name = ::rtl::OUString::createFromAscii(pCurrentValueProperty);
+ bSuccess = true;
}
break;
case PROPID_MIN_VALUE:
@@ -743,6 +913,7 @@ namespace xmloff
if (!bRetrievedValueLimits)
{
getValueLimitPropertyNames(nClassId, pMinValueProperty, pMaxValueProperty);
+ ENSURE_OR_BREAK( pMinValueProperty && pMaxValueProperty, "OControlImport::StartElement: illegal value limit property names!" );
bRetrievedValueLimits = sal_True;
}
OSL_ENSURE((PROPID_MIN_VALUE != aValueProps->Handle) || pMinValueProperty,
@@ -755,10 +926,14 @@ namespace xmloff
aValueProps->Name = ::rtl::OUString::createFromAscii(pMinValueProperty);
else
aValueProps->Name = ::rtl::OUString::createFromAscii(pMaxValueProperty);
+ bSuccess = true;
}
break;
}
+ if ( !bSuccess )
+ continue;
+
// translate the value
implTranslateValueProperty(m_xInfo, *aValueProps);
// add the property to the base class' array
@@ -980,7 +1155,7 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void OImagePositionImport::handleAttribute( sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName,
+ bool OImagePositionImport::handleAttribute( sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue )
{
if ( _rLocalName == GetXMLToken( XML_IMAGE_POSITION ) )
@@ -990,16 +1165,19 @@ namespace xmloff
_rValue, OEnumMapper::getEnumMap( OEnumMapper::epImagePosition )
) >>= m_nImagePosition );
m_bHaveImagePosition = sal_True;
+ return true;
}
- else if ( _rLocalName == GetXMLToken( XML_IMAGE_ALIGN ) )
+
+ if ( _rLocalName == GetXMLToken( XML_IMAGE_ALIGN ) )
{
OSL_VERIFY( PropertyConversion::convertString(
m_rContext.getGlobalContext(), ::getCppuType( &m_nImageAlign ),
_rValue, OEnumMapper::getEnumMap( OEnumMapper::epImageAlign )
) >>= m_nImageAlign );
+ return true;
}
- else
- OControlImport::handleAttribute( _nNamespaceKey, _rLocalName, _rValue );
+
+ return OControlImport::handleAttribute( _nNamespaceKey, _rLocalName, _rValue );
}
//---------------------------------------------------------------------
@@ -1047,14 +1225,16 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void OReferredControlImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName,
+ bool OReferredControlImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue)
{
static const ::rtl::OUString s_sReferenceAttributeName = ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_FOR));
if (_rLocalName == s_sReferenceAttributeName)
+ {
m_sReferringControls = _rValue;
- else
- OControlImport::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
+ return true;
+ }
+ return OControlImport::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
}
//=====================================================================
@@ -1068,7 +1248,7 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void OPasswordImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
+ bool OPasswordImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
{
static const ::rtl::OUString s_sEchoCharAttributeName = ::rtl::OUString::createFromAscii(OAttributeMetaData::getSpecialAttributeName(SCA_ECHO_CHAR));
if (_rLocalName == s_sEchoCharAttributeName)
@@ -1083,9 +1263,9 @@ namespace xmloff
else
aEchoChar.Value <<= (sal_Int16)0;
implPushBackPropertyValue(aEchoChar);
+ return true;
}
- else
- OControlImport::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
+ return OControlImport::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
}
//=====================================================================
@@ -1099,7 +1279,7 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void ORadioImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
+ bool ORadioImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
{
// need special handling for the State & CurrentState properties:
// they're stored as booleans, but expected to be int16 properties
@@ -1122,9 +1302,9 @@ namespace xmloff
implPushBackPropertyValue(aNewValue);
}
+ return true;
}
- else
- OImagePositionImport::handleAttribute( _nNamespaceKey, _rLocalName, _rValue );
+ return OImagePositionImport::handleAttribute( _nNamespaceKey, _rLocalName, _rValue );
}
//=====================================================================
@@ -1138,7 +1318,7 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void OURLReferenceImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
+ bool OURLReferenceImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
{
static const sal_Char* s_pTargetLocationAttributeName = OAttributeMetaData::getCommonControlAttributeName( CCA_TARGET_LOCATION );
static const sal_Char* s_pImageDataAttributeName = OAttributeMetaData::getCommonControlAttributeName( CCA_IMAGE_DATA );
@@ -1157,18 +1337,18 @@ namespace xmloff
if ( bMakeAbsolute && ( _rValue.getLength() > 0 ) )
{
// make a global URL out of the local one
- ::rtl::OUString sAdjustedValue;
- // only resolve image related url
- // we don't want say form url targets to be resolved
- // using ResolveGraphicObjectURL
- if ( 0 == _rLocalName.compareToAscii( s_pImageDataAttributeName ) )
- sAdjustedValue = m_rContext.getGlobalContext().ResolveGraphicObjectURL( _rValue, sal_False );
- else
- sAdjustedValue = m_rContext.getGlobalContext().GetAbsoluteReference( _rValue );
- OImagePositionImport::handleAttribute( _nNamespaceKey, _rLocalName, sAdjustedValue );
+ ::rtl::OUString sAdjustedValue;
+ // only resolve image related url
+ // we don't want say form url targets to be resolved
+ // using ResolveGraphicObjectURL
+ if ( 0 == _rLocalName.compareToAscii( s_pImageDataAttributeName ) )
+ sAdjustedValue = m_rContext.getGlobalContext().ResolveGraphicObjectURL( _rValue, sal_False );
+ else
+ sAdjustedValue = m_rContext.getGlobalContext().GetAbsoluteReference( _rValue );
+ return OImagePositionImport::handleAttribute( _nNamespaceKey, _rLocalName, sAdjustedValue );
}
- else
- OImagePositionImport::handleAttribute( _nNamespaceKey, _rLocalName, _rValue );
+
+ return OImagePositionImport::handleAttribute( _nNamespaceKey, _rLocalName, _rValue );
}
//=====================================================================
@@ -1205,14 +1385,14 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void OValueRangeImport::handleAttribute( sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue )
+ bool OValueRangeImport::handleAttribute( sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue )
{
if ( _rLocalName.equalsAscii( OAttributeMetaData::getSpecialAttributeName( SCA_STEP_SIZE ) ) )
{
GetImport().GetMM100UnitConverter().convertNumber( m_nStepSizeValue, _rValue );
+ return true;
}
- else
- OControlImport::handleAttribute( _nNamespaceKey, _rLocalName, _rValue );
+ return OControlImport::handleAttribute( _nNamespaceKey, _rLocalName, _rValue );
}
//---------------------------------------------------------------------
@@ -1535,7 +1715,7 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void OListAndComboImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
+ bool OListAndComboImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
{
static const sal_Char* pListSourceAttributeName = OAttributeMetaData::getDatabaseAttributeName(DA_LIST_SOURCE);
if ( _rLocalName.equalsAscii(pListSourceAttributeName) )
@@ -1560,12 +1740,16 @@ namespace xmloff
}
implPushBackPropertyValue( aListSource );
+ return true;
}
- else if ( _rLocalName.equalsAscii( OAttributeMetaData::getBindingAttributeName( BA_LIST_CELL_RANGE ) ) )
+
+ if ( _rLocalName.equalsAscii( OAttributeMetaData::getBindingAttributeName( BA_LIST_CELL_RANGE ) ) )
{
m_sCellListSource = _rValue;
+ return true;
}
- else if ( _rLocalName.equalsAscii( OAttributeMetaData::getBindingAttributeName( BA_LIST_LINKING_TYPE ) ) )
+
+ if ( _rLocalName.equalsAscii( OAttributeMetaData::getBindingAttributeName( BA_LIST_LINKING_TYPE ) ) )
{
sal_Int16 nLinkageType = 0;
PropertyConversion::convertString(
@@ -1576,9 +1760,10 @@ namespace xmloff
) >>= nLinkageType;
m_bLinkWithIndexes = ( nLinkageType != 0 );
+ return true;
}
- else
- OControlImport::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
+
+ return OControlImport::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
}
//---------------------------------------------------------------------
@@ -1776,7 +1961,9 @@ namespace xmloff
|| (OControlElement::FORMATTED_TEXT == _eType)
|| (OControlElement::CHECKBOX == _eType)
|| (OControlElement::LISTBOX == _eType)
- || (OControlElement::COMBOBOX == _eType),
+ || (OControlElement::COMBOBOX == _eType)
+ || (OControlElement::TIME == _eType)
+ || (OControlElement::DATE == _eType),
"OColumnWrapperImport::implCreateChildContext: invalid or unrecognized sub element!");
switch (_eType)
@@ -1871,19 +2058,25 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void OFormImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
+ bool OFormImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
{
// handle the master/details field attributes (they're way too special to let the OPropertyImport handle them)
static const ::rtl::OUString s_sMasterFieldsAttributeName = ::rtl::OUString::createFromAscii(OAttributeMetaData::getFormAttributeName(faMasterFields));
static const ::rtl::OUString s_sDetailFieldsAttributeName = ::rtl::OUString::createFromAscii(OAttributeMetaData::getFormAttributeName(faDetailFiels));
- if (s_sMasterFieldsAttributeName == _rLocalName)
+ if ( s_sMasterFieldsAttributeName == _rLocalName )
+ {
implTranslateStringListProperty(PROPERTY_MASTERFIELDS, _rValue);
- else if (s_sDetailFieldsAttributeName == _rLocalName)
+ return true;
+ }
+
+ if ( s_sDetailFieldsAttributeName == _rLocalName )
+ {
implTranslateStringListProperty(PROPERTY_DETAILFIELDS, _rValue);
+ return true;
+ }
- else
- OFormImport_Base::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
+ return OFormImport_Base::handleAttribute(_nNamespaceKey, _rLocalName, _rValue);
}
//---------------------------------------------------------------------
diff --git a/xmloff/source/forms/elementimport.hxx b/xmloff/source/forms/elementimport.hxx
index 12631288b85f..3226044808b9 100644
--- a/xmloff/source/forms/elementimport.hxx
+++ b/xmloff/source/forms/elementimport.hxx
@@ -31,6 +31,9 @@
#include "propertyimport.hxx"
#include "controlelement.hxx"
#include "valueproperties.hxx"
+#include "eventimport.hxx"
+#include "logging.hxx"
+#include "property_description.hxx"
/** === begin UNO includes === **/
#include <com/sun/star/text/XTextCursor.hpp>
@@ -39,9 +42,8 @@
#include <com/sun/star/form/XGridColumnFactory.hpp>
#include <com/sun/star/script/XEventAttacherManager.hpp>
/** === end UNO includes === **/
+
#include <comphelper/stl_types.hxx>
-#include "eventimport.hxx"
-#include "logging.hxx"
class XMLTextStyleContext;
//.........................................................................
@@ -83,22 +85,25 @@ namespace xmloff
,public OStackedLogging
{
protected:
- ::rtl::OUString m_sServiceName; // the service name as extracted from the service-name attribute
- ::rtl::OUString m_sName; // the name of the object (redundant, already contained in the base class' array)
+ ::rtl::OUString m_sServiceName; // the service name as extracted from the service-name attribute
+ ::rtl::OUString m_sName; // the name of the object (redundant, already contained in the base class' array)
OFormLayerXMLImport_Impl& m_rFormImport; // the form import context
- IEventAttacherManager& m_rEventManager; // the event attacher manager
+ IEventAttacherManager& m_rEventManager; // the event attacher manager
const XMLTextStyleContext* m_pStyleElement; // the XML element which describes the style we encountered
// while reading our element
+ /// the parent container to insert the new element into
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >
- m_xParentContainer;
- // the parent container to insert the new element into
+ m_xParentContainer;
- ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
- m_xInfo;
+ /// the element we're creating. Valid after StartElement
::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
- m_xElement; // the element we're creating. Valid after StartElement
+ m_xElement;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
+ m_xInfo;
+
+ bool m_bImplicitGenericAttributeHandling;
public:
/** ctor
@@ -132,7 +137,7 @@ namespace xmloff
virtual void EndElement();
// OPropertyImport overridables
- virtual void handleAttribute(sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute(sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue);
@@ -158,13 +163,28 @@ namespace xmloff
*/
void simulateDefaultedAttribute(const sal_Char* _pAttributeName, const ::rtl::OUString& _rPropertyName, const sal_Char* _pAttributeDefault);
+ /** to be called from within handleAttribute, checks whether the given attribute is covered by our generic
+ attribute handler mechanisms
+ */
+ bool tryGenericAttribute( sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue );
+
+ /** controls whether |handleAttribute| implicitly calls |tryGenericAttribute|, or whether the derived class
+ must do this explicitly at a suitable place in its own |handleAttribute|
+ */
+ void disableImplicitGenericAttributeHandling() { m_bImplicitGenericAttributeHandling = false; }
+
private:
::rtl::OUString implGetDefaultName() const;
- void implImportGenericProperties();
+ void implApplyGenericProperties();
+ void implApplySpecificProperties();
/** sets the style properties which have been read for the element (if any)
*/
void implSetStyleProperties( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxObject );
+
+ PropertyGroups::const_iterator impl_matchPropertyGroup( const PropertyGroups& i_propertyGroups ) const;
+
+ virtual ::rtl::OUString determineDefaultServiceName() const;
};
//=====================================================================
@@ -225,7 +245,7 @@ namespace xmloff
virtual void EndElement();
// OPropertyImport overridables
- virtual void handleAttribute(sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute(sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue);
@@ -239,6 +259,8 @@ namespace xmloff
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >& _rxPropInfo,
::com::sun::star::beans::PropertyValue& /* [in/out] */ _rPropValue);
+ virtual ::rtl::OUString determineDefaultServiceName() const;
+
/** registers the given cell address as value binding address for our element
<p>The default implementation simply calls registerCellValueBinding at our import
@@ -265,7 +287,6 @@ namespace xmloff
// OElementImport overridables
virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
createElement();
-
};
// TODO:
@@ -295,7 +316,7 @@ namespace xmloff
const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& _rxAttrList);
// OPropertyImport overridables
- virtual void handleAttribute( sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute( sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue
);
@@ -321,7 +342,7 @@ namespace xmloff
const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& _rxAttrList);
// OPropertyImport overridables
- virtual void handleAttribute(sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute(sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue);
};
@@ -339,7 +360,7 @@ namespace xmloff
);
// OPropertyImport overridables
- virtual void handleAttribute(sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute(sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue);
};
@@ -358,7 +379,7 @@ namespace xmloff
protected:
// OPropertyImport overridables
- virtual void handleAttribute(sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute(sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue);
};
@@ -380,7 +401,7 @@ namespace xmloff
protected:
// OPropertyImport overridables
- virtual void handleAttribute(sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute(sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue);
};
@@ -430,7 +451,7 @@ namespace xmloff
const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& _rxAttrList );
// OPropertyImport overridables
- virtual void handleAttribute( sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute( sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue );
};
@@ -516,7 +537,7 @@ namespace xmloff
virtual void EndElement();
// OPropertyImport overridables
- virtual void handleAttribute(sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute(sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue);
@@ -715,7 +736,7 @@ namespace xmloff
sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName);
// OPropertyImport overridables
- virtual void handleAttribute(sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute(sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue);
diff --git a/xmloff/source/forms/formattributes.cxx b/xmloff/source/forms/formattributes.cxx
index 0e2ef69ab9f8..e27f03f01de9 100644
--- a/xmloff/source/forms/formattributes.cxx
+++ b/xmloff/source/forms/formattributes.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include "formattributes.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <rtl/ustrbuf.hxx>
#include <rtl/logfile.hxx>
diff --git a/xmloff/source/forms/formevents.cxx b/xmloff/source/forms/formevents.cxx
index fcccef5065a8..5e46fbaab8d8 100644
--- a/xmloff/source/forms/formevents.cxx
+++ b/xmloff/source/forms/formevents.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include "formevents.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlevent.hxx>
//.........................................................................
diff --git a/xmloff/source/forms/formlayerexport.cxx b/xmloff/source/forms/formlayerexport.cxx
index ad5ff7eb4dae..50245fad1d2a 100644
--- a/xmloff/source/forms/formlayerexport.cxx
+++ b/xmloff/source/forms/formlayerexport.cxx
@@ -32,7 +32,7 @@
#include <xmloff/formlayerexport.hxx>
#include "strings.hxx"
#include "elementexport.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlexp.hxx>
#include "layerexport.hxx"
#include "propertyexport.hxx"
diff --git a/xmloff/source/forms/formsimp.cxx b/xmloff/source/forms/formsimp.cxx
index d1f3e8225e67..3028cd507890 100644
--- a/xmloff/source/forms/formsimp.cxx
+++ b/xmloff/source/forms/formsimp.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include <com/sun/star/xml/sax/XAttributeList.hpp>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#ifndef _XMLOFF_ANIMIMP_HXX
diff --git a/xmloff/source/forms/handler/form_handler_factory.cxx b/xmloff/source/forms/handler/form_handler_factory.cxx
new file mode 100644
index 000000000000..72a9edf38f42
--- /dev/null
+++ b/xmloff/source/forms/handler/form_handler_factory.cxx
@@ -0,0 +1,90 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "precompiled_xmloff.hxx"
+
+#include "forms/form_handler_factory.hxx"
+#include "vcl_date_handler.hxx"
+#include "vcl_time_handler.hxx"
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ namespace
+ {
+ static PPropertyHandler s_pVCLDateHandler = NULL;
+ static PPropertyHandler s_pVCLTimeHandler = NULL;
+ }
+
+ //==================================================================================================================
+ //= FormHandlerFactory
+ //==================================================================================================================
+ //------------------------------------------------------------------------------------------------------------------
+ PPropertyHandler FormHandlerFactory::getFormPropertyHandler( const PropertyId i_propertyId )
+ {
+ PPropertyHandler pHandler( NULL );
+
+ switch ( i_propertyId )
+ {
+ case PID_DATE_MIN:
+ case PID_DATE_MAX:
+ case PID_DEFAULT_DATE:
+ case PID_DATE:
+ if ( s_pVCLDateHandler.get() == NULL )
+ {
+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if ( s_pVCLDateHandler == NULL )
+ s_pVCLDateHandler = new VCLDateHandler();
+ }
+ pHandler = s_pVCLDateHandler;
+ break;
+
+ case PID_TIME_MIN:
+ case PID_TIME_MAX:
+ case PID_DEFAULT_TIME:
+ case PID_TIME:
+ if ( s_pVCLTimeHandler.get() == NULL )
+ {
+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if ( s_pVCLTimeHandler == NULL )
+ s_pVCLTimeHandler = new VCLTimeHandler();
+ }
+ pHandler = s_pVCLTimeHandler;
+ break;
+
+ default:
+ OSL_ENSURE( false, "FormHandlerFactory::getFormPropertyHandler: unknown property ID!" );
+ break;
+ }
+
+ return pHandler;
+ }
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
diff --git a/xmloff/source/forms/handler/property_handler_base.cxx b/xmloff/source/forms/handler/property_handler_base.cxx
new file mode 100644
index 000000000000..d599e0e259fe
--- /dev/null
+++ b/xmloff/source/forms/handler/property_handler_base.cxx
@@ -0,0 +1,61 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "precompiled_xmloff.hxx"
+
+#include "property_handler_base.hxx"
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ //==================================================================================================================
+ //= PropertyHandlerBase
+ //==================================================================================================================
+ //------------------------------------------------------------------------------------------------------------------
+ PropertyHandlerBase::~PropertyHandlerBase()
+ {
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ oslInterlockedCount SAL_CALL PropertyHandlerBase::acquire()
+ {
+ return osl_incrementInterlockedCount( &m_refCount );
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ oslInterlockedCount SAL_CALL PropertyHandlerBase::release()
+ {
+ oslInterlockedCount decremented = osl_decrementInterlockedCount( &m_refCount );
+ if ( 0 == decremented )
+ delete this;
+ return decremented;
+ }
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
diff --git a/xmloff/source/forms/handler/property_handler_base.hxx b/xmloff/source/forms/handler/property_handler_base.hxx
new file mode 100644
index 000000000000..01f2a9e843f6
--- /dev/null
+++ b/xmloff/source/forms/handler/property_handler_base.hxx
@@ -0,0 +1,64 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef XMLOFF_PROPERTY_HANDLER_BASE_HXX
+#define XMLOFF_PROPERTY_HANDLER_BASE_HXX
+
+#include "forms/property_handler.hxx"
+
+#include <osl/interlck.h>
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ //==================================================================================================================
+ //= PropertyHandlerBase
+ //==================================================================================================================
+ class PropertyHandlerBase : public IPropertyHandler
+ {
+ protected:
+ PropertyHandlerBase()
+ :m_refCount( 0 )
+ {
+ }
+
+ virtual ~PropertyHandlerBase();
+
+ // IReference
+ virtual oslInterlockedCount SAL_CALL acquire();
+ virtual oslInterlockedCount SAL_CALL release();
+
+ private:
+ oslInterlockedCount m_refCount;
+ };
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
+
+#endif // XMLOFF_PROPERTY_HANDLER_BASE_HXX
diff --git a/xmloff/source/forms/handler/vcl_date_handler.cxx b/xmloff/source/forms/handler/vcl_date_handler.cxx
new file mode 100644
index 000000000000..a8404ed04e05
--- /dev/null
+++ b/xmloff/source/forms/handler/vcl_date_handler.cxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "precompiled_xmloff.hxx"
+
+#include "vcl_date_handler.hxx"
+#include "xmloff/xmluconv.hxx"
+
+#include <com/sun/star/util/DateTime.hpp>
+
+#include <tools/diagnose_ex.h>
+#include <tools/date.hxx>
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ using ::com::sun::star::uno::Any;
+ using ::com::sun::star::uno::makeAny;
+ using ::com::sun::star::util::DateTime;
+
+ //==================================================================================================================
+ //= VCLDateHandler
+ //==================================================================================================================
+ //------------------------------------------------------------------------------------------------------------------
+ VCLDateHandler::VCLDateHandler()
+ {
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ ::rtl::OUString VCLDateHandler::getAttributeValue( const PropertyValues& /*i_propertyValues*/ ) const
+ {
+ OSL_ENSURE( false, "VCLDateHandler::getAttributeValue: unexpected call!" );
+ return ::rtl::OUString();
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ ::rtl::OUString VCLDateHandler::getAttributeValue( const Any& i_propertyValue ) const
+ {
+ sal_Int32 nVCLDate(0);
+ OSL_VERIFY( i_propertyValue >>= nVCLDate );
+ ::Date aVCLDate( nVCLDate );
+
+ DateTime aDateTime; // default-inited to 0
+ aDateTime.Day = aVCLDate.GetDay();
+ aDateTime.Month = aVCLDate.GetMonth();
+ aDateTime.Year = aVCLDate.GetYear();
+
+ ::rtl::OUStringBuffer aBuffer;
+ SvXMLUnitConverter::convertDateTime( aBuffer, aDateTime, sal_False );
+ return aBuffer.makeStringAndClear();
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ bool VCLDateHandler::getPropertyValues( const ::rtl::OUString i_attributeValue, PropertyValues& o_propertyValues ) const
+ {
+ sal_Int32 nVCLDate(0);
+
+ DateTime aDateTime;
+ if ( SvXMLUnitConverter::convertDateTime( aDateTime, i_attributeValue ) )
+ {
+ ::Date aVCLDate( aDateTime.Day, aDateTime.Month, aDateTime.Year );
+ nVCLDate = aVCLDate.GetDate();
+ }
+ else
+ {
+ // compatibility format, before we wrote those values in XML-schema compatible form
+ if ( !SvXMLUnitConverter::convertNumber( nVCLDate, i_attributeValue ) )
+ {
+ OSL_ENSURE( false, "VCLDateHandler::getPropertyValues: unknown date format (no XML-schema date, no legacy integer)!" );
+ return false;
+ }
+ }
+
+ const Any aPropertyValue( makeAny( nVCLDate ) );
+
+ OSL_ENSURE( o_propertyValues.size() == 1, "VCLDateHandler::getPropertyValues: date strings represent exactly one property - not more, not less!" );
+ for ( PropertyValues::iterator prop = o_propertyValues.begin();
+ prop != o_propertyValues.end();
+ ++prop
+ )
+ {
+ prop->second = aPropertyValue;
+ }
+ return true;
+ }
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
diff --git a/xmloff/source/forms/handler/vcl_date_handler.hxx b/xmloff/source/forms/handler/vcl_date_handler.hxx
new file mode 100644
index 000000000000..44a7f7395ceb
--- /dev/null
+++ b/xmloff/source/forms/handler/vcl_date_handler.hxx
@@ -0,0 +1,55 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef XMLOFF_VCL_DATE_HANDLER_HXX
+#define XMLOFF_VCL_DATE_HANDLER_HXX
+
+#include "property_handler_base.hxx"
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ //==================================================================================================================
+ //= VCLDateHandler
+ //==================================================================================================================
+ class VCLDateHandler : public PropertyHandlerBase
+ {
+ public:
+ VCLDateHandler();
+
+ // IPropertyHandler
+ virtual ::rtl::OUString getAttributeValue( const PropertyValues& i_propertyValues ) const;
+ virtual ::rtl::OUString getAttributeValue( const ::com::sun::star::uno::Any& i_propertyValue ) const;
+ virtual bool getPropertyValues( const ::rtl::OUString i_attributeValue, PropertyValues& o_propertyValues ) const;
+ };
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
+
+#endif // XMLOFF_VCL_DATE_HANDLER_HXX
diff --git a/xmloff/source/forms/handler/vcl_time_handler.cxx b/xmloff/source/forms/handler/vcl_time_handler.cxx
new file mode 100644
index 000000000000..98ea739d04a4
--- /dev/null
+++ b/xmloff/source/forms/handler/vcl_time_handler.cxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "precompiled_xmloff.hxx"
+
+#include "vcl_time_handler.hxx"
+#include "xmloff/xmluconv.hxx"
+
+#include <com/sun/star/util/DateTime.hpp>
+
+#include <tools/diagnose_ex.h>
+#include <tools/time.hxx>
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ using ::com::sun::star::uno::Any;
+ using ::com::sun::star::uno::makeAny;
+ using ::com::sun::star::util::DateTime;
+
+ //==================================================================================================================
+ //= VCLTimeHandler
+ //==================================================================================================================
+ //------------------------------------------------------------------------------------------------------------------
+ VCLTimeHandler::VCLTimeHandler()
+ {
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ ::rtl::OUString VCLTimeHandler::getAttributeValue( const PropertyValues& /*i_propertyValues*/ ) const
+ {
+ OSL_ENSURE( false, "VCLTimeHandler::getAttributeValue: unexpected call!" );
+ return ::rtl::OUString();
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ ::rtl::OUString VCLTimeHandler::getAttributeValue( const Any& i_propertyValue ) const
+ {
+ sal_Int32 nVCLTime(0);
+ OSL_VERIFY( i_propertyValue >>= nVCLTime );
+ ::Time aVCLTime( nVCLTime );
+
+ DateTime aDateTime; // default-inited to 0
+ aDateTime.Hours = aVCLTime.GetHour();
+ aDateTime.Minutes = aVCLTime.GetMin();
+ aDateTime.Seconds = aVCLTime.GetSec();
+ aDateTime.HundredthSeconds = aVCLTime.Get100Sec();
+
+ ::rtl::OUStringBuffer aBuffer;
+ SvXMLUnitConverter::convertTime( aBuffer, aDateTime );
+ return aBuffer.makeStringAndClear();
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ bool VCLTimeHandler::getPropertyValues( const ::rtl::OUString i_attributeValue, PropertyValues& o_propertyValues ) const
+ {
+ sal_Int32 nVCLTime(0);
+
+ DateTime aDateTime;
+ if ( SvXMLUnitConverter::convertTime( aDateTime, i_attributeValue ) )
+ {
+ ::Time aVCLTime( aDateTime.Hours, aDateTime.Minutes, aDateTime.Seconds, aDateTime.HundredthSeconds );
+ nVCLTime = aVCLTime.GetTime();
+ }
+ else
+ {
+ // compatibility format, before we wrote those values in XML-schema compatible form
+ if ( !SvXMLUnitConverter::convertNumber( nVCLTime, i_attributeValue ) )
+ {
+ OSL_ENSURE( false, "VCLTimeHandler::getPropertyValues: unknown time format (no XML-schema time, no legacy integer)!" );
+ return false;
+ }
+ }
+
+ const Any aPropertyValue( makeAny( nVCLTime ) );
+
+ OSL_ENSURE( o_propertyValues.size() == 1, "VCLTimeHandler::getPropertyValues: time strings represent exactly one property - not more, not less!" );
+ for ( PropertyValues::iterator prop = o_propertyValues.begin();
+ prop != o_propertyValues.end();
+ ++prop
+ )
+ {
+ prop->second = aPropertyValue;
+ }
+ return true;
+ }
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
diff --git a/xmloff/source/forms/handler/vcl_time_handler.hxx b/xmloff/source/forms/handler/vcl_time_handler.hxx
new file mode 100644
index 000000000000..7ed6f0aa5730
--- /dev/null
+++ b/xmloff/source/forms/handler/vcl_time_handler.hxx
@@ -0,0 +1,55 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef XMLOFF_VCL_TIME_HANDLER_HXX
+#define XMLOFF_VCL_TIME_HANDLER_HXX
+
+#include "property_handler_base.hxx"
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ //==================================================================================================================
+ //= VCLTimeHandler
+ //==================================================================================================================
+ class VCLTimeHandler : public PropertyHandlerBase
+ {
+ public:
+ VCLTimeHandler();
+
+ // IPropertyHandler
+ virtual ::rtl::OUString getAttributeValue( const PropertyValues& i_propertyValues ) const;
+ virtual ::rtl::OUString getAttributeValue( const ::com::sun::star::uno::Any& i_propertyValue ) const;
+ virtual bool getPropertyValues( const ::rtl::OUString i_attributeValue, PropertyValues& o_propertyValues ) const;
+ };
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
+
+#endif // XMLOFF_VCL_TIME_HANDLER_HXX
diff --git a/xmloff/source/forms/layerexport.cxx b/xmloff/source/forms/layerexport.cxx
index 9d024a3e2c2e..d4f0e86534ab 100644
--- a/xmloff/source/forms/layerexport.cxx
+++ b/xmloff/source/forms/layerexport.cxx
@@ -33,7 +33,7 @@
#include "strings.hxx"
#include <xmloff/xmlexp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlprmap.hxx>
#include <xmloff/prhdlfac.hxx>
@@ -54,7 +54,7 @@
#include <xmloff/XMLEventExport.hxx>
#include "formevents.hxx"
#include <xmloff/xmlnumfe.hxx>
-#include "xformsexport.hxx"
+#include "xmloff/xformsexport.hxx"
/** === begin UNO includes === **/
#include <com/sun/star/text/XText.hpp>
diff --git a/xmloff/source/forms/layerimport.cxx b/xmloff/source/forms/layerimport.cxx
index 77d60f83ee49..cf5155f6a9a1 100644
--- a/xmloff/source/forms/layerimport.cxx
+++ b/xmloff/source/forms/layerimport.cxx
@@ -58,9 +58,9 @@
#include "controlpropertymap.hxx"
#include "formevents.hxx"
#include "formcellbinding.hxx"
-#include "xformsimport.hxx"
+#include "xmloff/xformsimport.hxx"
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <rtl/logfile.hxx>
#include <algorithm>
diff --git a/xmloff/source/forms/makefile.mk b/xmloff/source/forms/makefile.mk
deleted file mode 100644
index 6b6aa68d7281..000000000000
--- a/xmloff/source/forms/makefile.mk
+++ /dev/null
@@ -1,70 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=xmloff
-TARGET=forms
-
-ENABLE_EXCEPTIONS=sal_True
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/officeforms.obj \
- $(SLO)$/formevents.obj \
- $(SLO)$/eventimport.obj \
- $(SLO)$/eventexport.obj \
- $(SLO)$/controlpropertyhdl.obj \
- $(SLO)$/controlpropertymap.obj \
- $(SLO)$/valueproperties.obj \
- $(SLO)$/attriblistmerge.obj \
- $(SLO)$/controlelement.obj \
- $(SLO)$/formlayerexport.obj \
- $(SLO)$/layerexport.obj \
- $(SLO)$/elementexport.obj \
- $(SLO)$/propertyexport.obj \
- $(SLO)$/elementimport.obj \
- $(SLO)$/layerimport.obj \
- $(SLO)$/propertyimport.obj \
- $(SLO)$/formlayerimport.obj \
- $(SLO)$/formattributes.obj \
- $(SLO)$/formenums.obj \
- $(SLO)$/formsimp.obj \
- $(SLO)$/strings.obj \
- $(SLO)$/logging.obj \
- $(SLO)$/formcellbinding.obj \
- $(SLO)$/gridcolumnproptranslator.obj \
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/xmloff/source/forms/officeforms.cxx b/xmloff/source/forms/officeforms.cxx
index 856c737ea28f..fcb6a79de597 100644
--- a/xmloff/source/forms/officeforms.cxx
+++ b/xmloff/source/forms/officeforms.cxx
@@ -30,7 +30,7 @@
#include "officeforms.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/forms/property_description.hxx b/xmloff/source/forms/property_description.hxx
new file mode 100644
index 000000000000..4edab2e649f7
--- /dev/null
+++ b/xmloff/source/forms/property_description.hxx
@@ -0,0 +1,140 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef XMLOFF_PROPERTY_DESCRIPTION_HXX
+#define XMLOFF_PROPERTY_DESCRIPTION_HXX
+
+#include "forms/property_handler.hxx"
+#include "property_group.hxx"
+
+#include "xmloff/xmltoken.hxx"
+
+#include <vector>
+#include <list>
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ //==================================================================================================================
+ //= PropertyDescription
+ //==================================================================================================================
+ struct AttributeDescription
+ {
+ sal_uInt16 namespacePrefix; // usually XML_NAMESPACE_FORM
+ ::xmloff::token::XMLTokenEnum attributeToken;
+
+ AttributeDescription()
+ :namespacePrefix( 0 )
+ ,attributeToken( ::xmloff::token::XML_TOKEN_INVALID )
+ {
+ }
+
+ AttributeDescription(
+ const sal_uInt16 i_namespacePrefix,
+ const ::xmloff::token::XMLTokenEnum i_attributeToken
+ )
+ :namespacePrefix( i_namespacePrefix )
+ ,attributeToken( i_attributeToken )
+ {
+ }
+ };
+
+ //..................................................................................................................
+ inline bool operator==( const AttributeDescription& i_lhs, const AttributeDescription& i_rhs )
+ {
+ return ( i_lhs.namespacePrefix == i_rhs.namespacePrefix )
+ && ( i_lhs.attributeToken == i_rhs.attributeToken );
+ }
+
+ //==================================================================================================================
+ //= PropertyDescription
+ //==================================================================================================================
+ struct PropertyDescription
+ {
+ /// is the name of the property
+ const ::rtl::OUString propertyName;
+ /** denotes the attribute which represents the property. Note that multiple properties might comprise a single
+ attribute value.
+ */
+ const AttributeDescription attribute;
+ /// is the factory for creating a handler for reading and writing the property
+ const PropertyHandlerFactory factory;
+ /// the unique ID of the property. The property meta data table must not contain two entries with the same property ID
+ const PropertyId propertyId;
+ /** the group which the property belongs to. Multiple properties belonging to the same group will, all together,
+ define the attribute value to be written into the ODF file.
+
+ Consequently, properties which have the same |propertyGroup| value must also have the same |attribute|
+ and the same |factory| value, with the only exception being NO_GROUP properties.
+
+ Note that the other direction is not given: It is perfectly legitimate to map the same attribute to different
+ (disjunct) property groups.
+ */
+ const PropertyGroup propertyGroup;
+
+ PropertyDescription()
+ :propertyName()
+ ,attribute()
+ ,factory( NULL )
+ ,propertyId( PID_INVALID )
+ ,propertyGroup( NO_GROUP )
+ {
+ }
+
+ PropertyDescription(
+ const ::rtl::OUString& i_propertyName,
+ const sal_uInt16 i_namespacePrefix,
+ const ::xmloff::token::XMLTokenEnum i_attributeToken,
+ const PropertyHandlerFactory i_factory,
+ const PropertyId i_propertyId,
+ const PropertyGroup i_propertyGroup
+ )
+ :propertyName( i_propertyName )
+ ,attribute( i_namespacePrefix, i_attributeToken )
+ ,factory( i_factory )
+ ,propertyId( i_propertyId )
+ ,propertyGroup( i_propertyGroup )
+ {
+ }
+ };
+
+ //==================================================================================================================
+ //= PropertyDescriptionList
+ //==================================================================================================================
+ typedef ::std::vector< const PropertyDescription* > PropertyDescriptionList;
+
+ //==================================================================================================================
+ //= PropertyGroups
+ //==================================================================================================================
+ typedef ::std::list< PropertyDescriptionList > PropertyGroups;
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
+
+#endif // XMLOFF_PROPERTY_DESCRIPTION_HXX
diff --git a/xmloff/source/forms/property_group.hxx b/xmloff/source/forms/property_group.hxx
new file mode 100644
index 000000000000..bca354f14e92
--- /dev/null
+++ b/xmloff/source/forms/property_group.hxx
@@ -0,0 +1,47 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef XMLOFF_PROPERTY_GROUP_HXX
+#define XMLOFF_PROPERTY_GROUP_HXX
+
+//......................................................................................................................
+namespace xmloff
+{
+//......................................................................................................................
+
+ //==================================================================================================================
+ //= PropertyGroup
+ //==================================================================================================================
+ enum PropertyGroup
+ {
+ NO_GROUP
+ };
+
+//......................................................................................................................
+} // namespace xmloff
+//......................................................................................................................
+
+#endif // XMLOFF_PROPERTY_GROUP_HXX
diff --git a/xmloff/source/forms/property_meta_data.cxx b/xmloff/source/forms/property_meta_data.cxx
new file mode 100644
index 000000000000..5930d123578c
--- /dev/null
+++ b/xmloff/source/forms/property_meta_data.cxx
@@ -0,0 +1,270 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "precompiled_xmloff.hxx"
+
+#include "property_description.hxx"
+#include "forms/form_handler_factory.hxx"
+#include "strings.hxx"
+#include "xmloff/xmltoken.hxx"
+#include "xmloff/xmlnmspe.hxx"
+
+#include <tools/diagnose_ex.h>
+#include <tools/debug.hxx>
+
+#include <hash_map>
+
+//......................................................................................................................
+namespace xmloff { namespace metadata
+{
+//......................................................................................................................
+
+ using namespace ::xmloff::token;
+
+#define FORM_SINGLE_PROPERTY( id, att ) \
+ PropertyDescription( PROPERTY_##id, XML_NAMESPACE_FORM, att, &FormHandlerFactory::getFormPropertyHandler, PID_##id, NO_GROUP )
+
+ //==================================================================================================================
+ //= property meta data
+ //==================================================================================================================
+ //------------------------------------------------------------------------------------------------------------------
+ namespace
+ {
+ const PropertyDescription* lcl_getPropertyMetaData()
+ {
+ static const PropertyDescription s_propertyMetaData[] =
+ {
+ FORM_SINGLE_PROPERTY( DATE_MIN, XML_MIN_VALUE ),
+ FORM_SINGLE_PROPERTY( DATE_MAX, XML_MAX_VALUE ),
+ FORM_SINGLE_PROPERTY( DEFAULT_DATE, XML_VALUE ),
+ FORM_SINGLE_PROPERTY( DATE, XML_CURRENT_VALUE ),
+ FORM_SINGLE_PROPERTY( TIME_MIN, XML_MIN_VALUE ),
+ FORM_SINGLE_PROPERTY( TIME_MAX, XML_MAX_VALUE ),
+ FORM_SINGLE_PROPERTY( DEFAULT_TIME, XML_VALUE ),
+ FORM_SINGLE_PROPERTY( TIME, XML_CURRENT_VALUE ),
+
+ PropertyDescription()
+ };
+ return s_propertyMetaData;
+ }
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ namespace
+ {
+ // TODO: instead of having all of the below static, it should be some per-instance data. This way, the
+ // approach used here would scale much better.
+ // That is, if you have multiple "meta data instances", which manage a small, but closed set of properties,
+ // then looking looking through those multiple instances would probably be faster than searching within
+ // one big instance, since in this case, every instance can quickly decide whether it is responsible
+ // for some attribute or property, and otherwise delegate to the next instance.
+
+ //..............................................................................................................
+ typedef ::std::hash_map< ::rtl::OUString, const PropertyDescription*, ::rtl::OUStringHash > DescriptionsByName;
+
+ //..............................................................................................................
+ const DescriptionsByName& lcl_getPropertyDescriptions()
+ {
+ DBG_TESTSOLARMUTEX();
+ static DescriptionsByName s_propertyDescriptionsByName;
+ if ( s_propertyDescriptionsByName.empty() )
+ {
+ const PropertyDescription* desc = lcl_getPropertyMetaData();
+ while ( desc->propertyName.getLength() != 0 )
+ {
+ s_propertyDescriptionsByName[ desc->propertyName ] = desc;
+ ++desc;
+ }
+ }
+ return s_propertyDescriptionsByName;
+ }
+
+ //..............................................................................................................
+ typedef ::std::map< PropertyGroup, PropertyDescriptionList > IndexedPropertyGroups;
+
+ //..............................................................................................................
+ const IndexedPropertyGroups& lcl_getIndexedPropertyGroups()
+ {
+ DBG_TESTSOLARMUTEX();
+ static IndexedPropertyGroups s_indexedPropertyGroups;
+ if ( s_indexedPropertyGroups.empty() )
+ {
+ const PropertyDescription* desc = lcl_getPropertyMetaData();
+ while ( desc->propertyName.getLength() != 0 )
+ {
+ if ( desc->propertyGroup != NO_GROUP )
+ s_indexedPropertyGroups[ desc->propertyGroup ].push_back( desc );
+ ++desc;
+ }
+ }
+ return s_indexedPropertyGroups;
+ }
+
+ //..............................................................................................................
+ typedef ::std::hash_map< ::rtl::OUString, XMLTokenEnum, ::rtl::OUStringHash > ReverseTokenLookup;
+
+ //..............................................................................................................
+ const ReverseTokenLookup& getReverseTokenLookup()
+ {
+ DBG_TESTSOLARMUTEX();
+ static ReverseTokenLookup s_reverseTokenLookup;
+ if ( s_reverseTokenLookup.empty() )
+ {
+ const PropertyDescription* desc = lcl_getPropertyMetaData();
+ while ( desc->propertyName.getLength() != 0 )
+ {
+ s_reverseTokenLookup[ token::GetXMLToken( desc->attribute.attributeToken ) ] = desc->attribute.attributeToken;
+ ++desc;
+ }
+ }
+ return s_reverseTokenLookup;
+ }
+
+ //..............................................................................................................
+ struct AttributeHash : public ::std::unary_function< AttributeDescription, size_t >
+ {
+ size_t operator()( const AttributeDescription& i_attribute ) const
+ {
+ return size_t( i_attribute.attributeToken * 100 ) + size_t( i_attribute.namespacePrefix );
+ }
+ };
+
+ //..............................................................................................................
+ typedef ::std::hash_multimap< AttributeDescription, PropertyGroup, AttributeHash > AttributeGroups;
+
+ //..............................................................................................................
+ const AttributeGroups& lcl_getAttributeGroups()
+ {
+ DBG_TESTSOLARMUTEX();
+ static AttributeGroups s_attributeGroups;
+ if ( s_attributeGroups.empty() )
+ {
+ const PropertyDescription* desc = lcl_getPropertyMetaData();
+ while ( desc->propertyName.getLength() != 0 )
+ {
+ if ( desc->propertyGroup != NO_GROUP )
+ s_attributeGroups.insert( AttributeGroups::value_type( desc->attribute, desc->propertyGroup ) );
+ ++desc;
+ }
+ }
+ return s_attributeGroups;
+ }
+
+ //..............................................................................................................
+ typedef ::std::hash_map< AttributeDescription, PropertyGroups, AttributeHash > AttributesWithoutGroup;
+
+ //..............................................................................................................
+ const AttributesWithoutGroup& lcl_getAttributesWithoutGroups()
+ {
+ DBG_TESTSOLARMUTEX();
+ static AttributesWithoutGroup s_attributesWithoutGroup;
+ if ( s_attributesWithoutGroup.empty() )
+ {
+ const PropertyDescription* desc = lcl_getPropertyMetaData();
+ while ( desc->propertyName.getLength() != 0 )
+ {
+ if ( desc->propertyGroup == NO_GROUP )
+ {
+ PropertyDescriptionList singleElementList;
+ singleElementList.push_back( desc );
+
+ s_attributesWithoutGroup[ desc->attribute ].push_back( singleElementList );
+ }
+ ++desc;
+ }
+ }
+ return s_attributesWithoutGroup;
+ }
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ const PropertyDescription* getPropertyDescription( const ::rtl::OUString& i_propertyName )
+ {
+ const DescriptionsByName& rAllDescriptions( lcl_getPropertyDescriptions() );
+ DescriptionsByName::const_iterator pos = rAllDescriptions.find( i_propertyName );
+ if ( pos != rAllDescriptions.end() )
+ return pos->second;
+ return NULL;
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ void getPropertyGroup( const PropertyGroup i_propertyGroup, PropertyDescriptionList& o_propertyDescriptions )
+ {
+ OSL_ENSURE( i_propertyGroup != NO_GROUP, "xmloff::metadata::getPropertyGroup: illegal group!" );
+
+ const IndexedPropertyGroups& rPropertyGroups( lcl_getIndexedPropertyGroups() );
+ const IndexedPropertyGroups::const_iterator pos = rPropertyGroups.find( i_propertyGroup );
+ if ( pos != rPropertyGroups.end() )
+ o_propertyDescriptions = pos->second;
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ void getPropertyGroupList( const AttributeDescription& i_attribute, PropertyGroups& o_propertyGroups )
+ {
+ const AttributeGroups& rAttributeGroups = lcl_getAttributeGroups();
+
+ ::std::pair< AttributeGroups::const_iterator, AttributeGroups::const_iterator >
+ range = rAttributeGroups.equal_range( i_attribute );
+
+ if ( range.first == range.second )
+ {
+ // the attribute is not used for any non-trivial group, which means it is mapped directly to
+ // a single property
+ const AttributesWithoutGroup& attributesWithoutGroups( lcl_getAttributesWithoutGroups() );
+ const AttributesWithoutGroup::const_iterator pos = attributesWithoutGroups.find( i_attribute );
+ if ( pos != attributesWithoutGroups.end() )
+ o_propertyGroups = pos->second;
+ }
+ else
+ {
+ const IndexedPropertyGroups& rPropertyGroups = lcl_getIndexedPropertyGroups();
+ for ( AttributeGroups::const_iterator group = range.first; group != range.second; ++group )
+ {
+ const PropertyGroup propGroup = group->second;
+ const IndexedPropertyGroups::const_iterator groupPos = rPropertyGroups.find( propGroup );
+ ENSURE_OR_CONTINUE( groupPos != rPropertyGroups.end(), "getPropertyGroupList: inconsistency!" );
+ o_propertyGroups.push_back( groupPos->second );
+ }
+ }
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ AttributeDescription getAttributeDescription( const sal_uInt16 i_namespacePrefix, const ::rtl::OUString& i_attributeName )
+ {
+ AttributeDescription attribute;
+ const ReverseTokenLookup& rTokenLookup( getReverseTokenLookup() );
+ const ReverseTokenLookup::const_iterator pos = rTokenLookup.find( i_attributeName );
+ if ( pos != rTokenLookup.end() )
+ {
+ attribute.namespacePrefix = i_namespacePrefix;
+ attribute.attributeToken = pos->second;
+ }
+ return attribute;
+ }
+
+//......................................................................................................................
+} } // namespace xmloff::metadata
+//......................................................................................................................
diff --git a/xmloff/source/forms/property_meta_data.hxx b/xmloff/source/forms/property_meta_data.hxx
new file mode 100644
index 000000000000..f246a7bfd745
--- /dev/null
+++ b/xmloff/source/forms/property_meta_data.hxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef XMLOFF_PROPERTY_META_DATA_HXX
+#define XMLOFF_PROPERTY_META_DATA_HXX
+
+#include "property_description.hxx"
+
+//......................................................................................................................
+namespace xmloff { namespace metadata
+{
+//......................................................................................................................
+
+ const PropertyDescription* getPropertyDescription( const ::rtl::OUString& i_propertyName );
+
+ /** retries the descriptions of all properties which add to the given XML attribute
+
+ <p>Effectively, the complete property map is search for all entries which have the given
+ namespace/attribute values.</p>
+ */
+ void getPropertyGroup(
+ const PropertyGroup i_propertyGroup,
+ PropertyDescriptionList& o_propertyDescriptions
+ );
+
+ /** retrieves all known property groups which are mapped to the given attribute
+ */
+ void getPropertyGroupList(
+ const AttributeDescription& i_attribute,
+ PropertyGroups& o_propertyGroups
+ );
+
+ /** retrieves the attribute descriptor for the attribute given by namespace prefix and attribute name
+ */
+ AttributeDescription
+ getAttributeDescription( const sal_uInt16 i_namespacePrefix, const ::rtl::OUString& i_attributeName );
+
+//......................................................................................................................
+} } // namespace xmloff::metadata
+//......................................................................................................................
+
+#endif // XMLOFF_PROPERTY_META_DATA_HXX
diff --git a/xmloff/source/forms/propertyexport.cxx b/xmloff/source/forms/propertyexport.cxx
index 2a485566cf9d..bab88b47a82f 100644
--- a/xmloff/source/forms/propertyexport.cxx
+++ b/xmloff/source/forms/propertyexport.cxx
@@ -32,12 +32,11 @@
#include "propertyexport.hxx"
#include <xmloff/xmlexp.hxx>
#include "strings.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/families.hxx>
#include <osl/diagnose.h>
#include <com/sun/star/beans/PropertyAttribute.hpp>
-#include <com/sun/star/beans/XPropertyState.hpp>
#include <com/sun/star/util/Date.hpp>
#include <com/sun/star/util/Time.hpp>
#include <com/sun/star/util/DateTime.hpp>
@@ -72,6 +71,8 @@ namespace xmloff
OPropertyExport::OPropertyExport(IFormsExportContext& _rContext, const Reference< XPropertySet >& _rxProps)
:m_rContext(_rContext)
,m_xProps(_rxProps)
+ ,m_xPropertyInfo( m_xProps->getPropertySetInfo() )
+ ,m_xPropertyState( _rxProps, UNO_QUERY )
{
// caching
::rtl::OUStringBuffer aBuffer;
@@ -80,7 +81,6 @@ namespace xmloff
m_rContext.getGlobalContext().GetMM100UnitConverter().convertBool(aBuffer, sal_False);
m_sValueFalse = aBuffer.makeStringAndClear();
- m_xPropertyInfo = m_xProps->getPropertySetInfo();
OSL_ENSURE(m_xPropertyInfo.is(), "OPropertyExport::OPropertyExport: need an XPropertySetInfo!");
// collect the properties which need to be exported
@@ -88,6 +88,18 @@ namespace xmloff
}
//---------------------------------------------------------------------
+ bool OPropertyExport::shouldExportProperty( const ::rtl::OUString& i_propertyName ) const
+ {
+ // if the property state is DEFAULT, it does not need to be written - at least
+ // if it's a built-in property, and not a dynamically-added one.
+ bool bIsDefaultValue = m_xPropertyState.is()
+ && ( PropertyState_DEFAULT_VALUE == m_xPropertyState->getPropertyState( i_propertyName ) );
+ bool bIsDynamicProperty = m_xPropertyInfo.is()
+ && ( ( m_xPropertyInfo->getPropertyByName( i_propertyName ).Attributes & PropertyAttribute::REMOVEABLE ) != 0 );
+ return ( !bIsDefaultValue || bIsDynamicProperty );
+ }
+
+ //---------------------------------------------------------------------
void OPropertyExport::exportRemainingProperties()
{
// the properties tag (will be created if we have at least one no-default property)
@@ -95,9 +107,6 @@ namespace xmloff
try
{
- Reference< XPropertyState > xPropertyState( m_xProps, UNO_QUERY );
- Reference< XPropertySetInfo > xPSI( m_xProps->getPropertySetInfo() );
-
Any aValue;
::rtl::OUString sValue;
@@ -112,13 +121,7 @@ namespace xmloff
#if OSL_DEBUG_LEVEL > 0
const ::rtl::OUString sPropertyName = *aProperty; (void)sPropertyName;
#endif
- // if the property state is DEFAULT, it does not need to be written - at least
- // if it's a built-in property, and not a dynamically-added one.
- bool bIsDefaultValue = xPropertyState.is()
- && ( PropertyState_DEFAULT_VALUE == xPropertyState->getPropertyState( *aProperty ) );
- bool bIsDynamicProperty = xPSI.is()
- && ( ( xPSI->getPropertyByName( *aProperty ).Attributes & PropertyAttribute::REMOVEABLE ) != 0 );
- if ( bIsDefaultValue && !bIsDynamicProperty )
+ if ( !shouldExportProperty( *aProperty ) )
continue;
// now that we have the first sub-tag we need the form:properties element
diff --git a/xmloff/source/forms/propertyexport.hxx b/xmloff/source/forms/propertyexport.hxx
index 9fc7117cb93a..2db1b42338a0 100644
--- a/xmloff/source/forms/propertyexport.hxx
+++ b/xmloff/source/forms/propertyexport.hxx
@@ -31,6 +31,7 @@
#include "formattributes.hxx"
#include <comphelper/stl_types.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/beans/XPropertyState.hpp>
#include <callbacks.hxx>
#include <xmloff/xmlexp.hxx>
#include "callbacks.hxx"
@@ -74,10 +75,12 @@ namespace xmloff
protected:
IFormsExportContext& m_rContext;
- ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
- m_xProps;
- ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
- m_xPropertyInfo;
+ const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ m_xProps;
+ const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
+ m_xPropertyInfo;
+ const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState >
+ m_xPropertyState;
// caching
::rtl::OUString m_sValueTrue;
@@ -308,6 +311,14 @@ namespace xmloff
const sal_Unicode _aQuoteCharacter = '"',
const sal_Unicode _aListSeparator = ',');
+ /** determines whether the given property is to be exported
+
+ <p>Currently, the method simply checks whether the property's state is <em>not</em> PropertyState.DEFAULT,
+ or whether the property is a dynamic property (i.e. added via an <code>XPropertyContainer</code>).
+ So, take care when using the method - the heuristics is not applicable for all properties.</p>
+ */
+ bool shouldExportProperty( const ::rtl::OUString& i_propertyName ) const;
+
/** tries to convert an arbitrary <type scope="com.sun:star.uno">Any</type> into an string
<p>If the type contained in the Any is not supported, the returned string will be empty. In the
diff --git a/xmloff/source/forms/propertyimport.cxx b/xmloff/source/forms/propertyimport.cxx
index 45fa2f5b4744..1fdb85067f3d 100644
--- a/xmloff/source/forms/propertyimport.cxx
+++ b/xmloff/source/forms/propertyimport.cxx
@@ -34,7 +34,7 @@
#include <osl/diagnose.h>
#include <comphelper/extract.hxx>
#include "callbacks.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <tools/date.hxx>
#include <tools/time.hxx>
#include <tools/datetime.hxx>
@@ -349,7 +349,7 @@ _rChars
}
//---------------------------------------------------------------------
-void OPropertyImport::handleAttribute(sal_uInt16 /*_nNamespaceKey*/, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
+bool OPropertyImport::handleAttribute(sal_uInt16 /*_nNamespaceKey*/, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue)
{
const OAttribute2Property::AttributeAssignment* pProperty = m_rContext.getAttributeMap().getAttributeTranslation(_rLocalName);
if (pProperty)
@@ -361,18 +361,21 @@ void OPropertyImport::handleAttribute(sal_uInt16 /*_nNamespaceKey*/, const ::rtl
// convert the value string into the target type
aNewValue.Value = PropertyConversion::convertString(m_rContext.getGlobalContext(), pProperty->aPropertyType, _rValue, pProperty->pEnumMap, pProperty->bInverseSemantics);
implPushBackPropertyValue( aNewValue );
+ return true;
}
-#if OSL_DEBUG_LEVEL > 0
- else if (!token::IsXMLToken(_rLocalName, token::XML_TYPE)) // xlink:type is valid but ignored for <form:form>
+ if (!token::IsXMLToken(_rLocalName, token::XML_TYPE)) // xlink:type is valid but ignored for <form:form>
{
+#if OSL_DEBUG_LEVEL > 0
::rtl::OString sMessage( "OPropertyImport::handleAttribute: Can't handle the following:\n" );
sMessage += ::rtl::OString( " Attribute name: " );
sMessage += ::rtl::OString( _rLocalName.getStr(), _rLocalName.getLength(), osl_getThreadTextEncoding() );
sMessage += ::rtl::OString( "\n value: " );
sMessage += ::rtl::OString( _rValue.getStr(), _rValue.getLength(), osl_getThreadTextEncoding() );
OSL_ENSURE( sal_False, sMessage.getStr() );
- }
#endif
+ return false;
+ }
+ return true;
}
//=====================================================================
diff --git a/xmloff/source/forms/propertyimport.hxx b/xmloff/source/forms/propertyimport.hxx
index 30bc8bb1d617..d46c0068f090 100644
--- a/xmloff/source/forms/propertyimport.hxx
+++ b/xmloff/source/forms/propertyimport.hxx
@@ -119,7 +119,7 @@ namespace xmloff
@param _rValue
attribute value
*/
- virtual void handleAttribute(sal_uInt16 _nNamespaceKey,
+ virtual bool handleAttribute(sal_uInt16 _nNamespaceKey,
const ::rtl::OUString& _rLocalName,
const ::rtl::OUString& _rValue);
diff --git a/xmloff/source/forms/valueproperties.cxx b/xmloff/source/forms/valueproperties.cxx
index 1c44db963944..8bf9ae7bcd57 100644
--- a/xmloff/source/forms/valueproperties.cxx
+++ b/xmloff/source/forms/valueproperties.cxx
@@ -65,16 +65,6 @@ namespace xmloff
}
break;
- case FormComponentType::DATEFIELD:
- _rpCurrentValuePropertyName = PROPERTY_DATE;
- _rpValuePropertyName = PROPERTY_DEFAULT_DATE;
- break;
-
- case FormComponentType::TIMEFIELD:
- _rpCurrentValuePropertyName = PROPERTY_TIME;
- _rpValuePropertyName = PROPERTY_DEFAULT_TIME;
- break;
-
case FormComponentType::NUMERICFIELD:
case FormComponentType::CURRENCYFIELD:
_rpCurrentValuePropertyName = PROPERTY_VALUE;
@@ -108,6 +98,10 @@ namespace xmloff
_rpCurrentValuePropertyName = PROPERTY_SPINVALUE;
_rpValuePropertyName = PROPERTY_DEFAULT_SPINVALUE;
break;
+
+ default:
+ OSL_ENSURE( false, "OValuePropertiesMetaData::getValuePropertyNames: unsupported component type!" );
+ break;
}
}
@@ -119,16 +113,6 @@ namespace xmloff
_rpMinValuePropertyName = _rpMaxValuePropertyName = NULL;
switch (_nFormComponentType)
{
- case FormComponentType::DATEFIELD:
- _rpMinValuePropertyName = PROPERTY_DATE_MIN;
- _rpMaxValuePropertyName = PROPERTY_DATE_MAX;
- break;
-
- case FormComponentType::TIMEFIELD:
- _rpMinValuePropertyName = PROPERTY_TIME_MIN;
- _rpMaxValuePropertyName = PROPERTY_TIME_MAX;
- break;
-
case FormComponentType::NUMERICFIELD:
case FormComponentType::CURRENCYFIELD:
_rpMinValuePropertyName = PROPERTY_VALUE_MIN;
@@ -149,6 +133,10 @@ namespace xmloff
_rpMinValuePropertyName = PROPERTY_SPINVALUE_MIN;
_rpMaxValuePropertyName = PROPERTY_SPINVALUE_MAX;
break;
+
+ default:
+ OSL_ENSURE( false, "OValuePropertiesMetaData::getValueLimitPropertyNames: unsupported component type!" );
+ break;
}
}
@@ -175,7 +163,15 @@ namespace xmloff
break;
case FormComponentType::DATEFIELD:
+ _rpValuePropertyName = PROPERTY_DATE;
+ _rpDefaultValuePropertyName = PROPERTY_DEFAULT_DATE;
+ break;
+
case FormComponentType::TIMEFIELD:
+ _rpValuePropertyName = PROPERTY_TIME;
+ _rpDefaultValuePropertyName = PROPERTY_DEFAULT_TIME;
+ break;
+
case FormComponentType::NUMERICFIELD:
case FormComponentType::CURRENCYFIELD:
case FormComponentType::PATTERNFIELD:
diff --git a/xmloff/source/meta/MetaExportComponent.cxx b/xmloff/source/meta/MetaExportComponent.cxx
index 772d5907bd91..66717ae3aaf8 100644
--- a/xmloff/source/meta/MetaExportComponent.cxx
+++ b/xmloff/source/meta/MetaExportComponent.cxx
@@ -45,7 +45,7 @@
//#endif
#include <comphelper/genericpropertyset.hxx>
#include <rtl/ustrbuf.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlmetae.hxx>
diff --git a/xmloff/source/meta/MetaImportComponent.cxx b/xmloff/source/meta/MetaImportComponent.cxx
index b61e8d113042..d27d2c33b239 100644
--- a/xmloff/source/meta/MetaImportComponent.cxx
+++ b/xmloff/source/meta/MetaImportComponent.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include "MetaImportComponent.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlmetai.hxx>
diff --git a/xmloff/source/meta/makefile.mk b/xmloff/source/meta/makefile.mk
deleted file mode 100644
index 5efb538c9856..000000000000
--- a/xmloff/source/meta/makefile.mk
+++ /dev/null
@@ -1,53 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=xmloff
-TARGET=meta
-AUTOSEG=true
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/xmlmetae.obj \
- $(SLO)$/xmlmetai.obj \
- $(SLO)$/MetaExportComponent.obj \
- $(SLO)$/MetaImportComponent.obj \
- $(SLO)$/xmlversion.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/xmloff/source/meta/xmlmetae.cxx b/xmloff/source/meta/xmlmetae.cxx
index aab4686339ba..55e7cd97f810 100644
--- a/xmloff/source/meta/xmlmetae.cxx
+++ b/xmloff/source/meta/xmlmetae.cxx
@@ -39,7 +39,7 @@
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <com/sun/star/beans/XPropertyAccess.hpp>
#include <com/sun/star/beans/StringPair.hpp>
diff --git a/xmloff/source/meta/xmlmetai.cxx b/xmloff/source/meta/xmlmetai.cxx
index 3872d3862b7e..e2ba207e5cd6 100644
--- a/xmloff/source/meta/xmlmetai.cxx
+++ b/xmloff/source/meta/xmlmetai.cxx
@@ -39,7 +39,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
using ::rtl::OUString;
diff --git a/xmloff/source/script/XMLEventExport.cxx b/xmloff/source/script/XMLEventExport.cxx
index f126fd566e94..2675ecb4b98f 100644
--- a/xmloff/source/script/XMLEventExport.cxx
+++ b/xmloff/source/script/XMLEventExport.cxx
@@ -43,7 +43,7 @@
#include <tools/debug.hxx>
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/script/XMLEventImportHelper.cxx b/xmloff/source/script/XMLEventImportHelper.cxx
index cdd2906760a0..3dfbab60952f 100644
--- a/xmloff/source/script/XMLEventImportHelper.cxx
+++ b/xmloff/source/script/XMLEventImportHelper.cxx
@@ -34,8 +34,8 @@
#include <tools/debug.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
-#include "xmlerror.hxx"
+#include "xmloff/xmlnmspe.hxx"
+#include "xmloff/xmlerror.hxx"
using ::rtl::OUString;
using ::com::sun::star::xml::sax::XAttributeList;
diff --git a/xmloff/source/script/XMLEventsImportContext.cxx b/xmloff/source/script/XMLEventsImportContext.cxx
index b22cd6262558..301bef53856d 100644
--- a/xmloff/source/script/XMLEventsImportContext.cxx
+++ b/xmloff/source/script/XMLEventsImportContext.cxx
@@ -39,9 +39,9 @@
#include <tools/debug.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
using namespace ::com::sun::star::uno;
using namespace ::xmloff::token;
diff --git a/xmloff/source/script/XMLScriptContextFactory.cxx b/xmloff/source/script/XMLScriptContextFactory.cxx
index 0baf71cb8b96..60e08a208f72 100644
--- a/xmloff/source/script/XMLScriptContextFactory.cxx
+++ b/xmloff/source/script/XMLScriptContextFactory.cxx
@@ -32,7 +32,7 @@
#include <tools/debug.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/source/script/XMLScriptExportHandler.cxx b/xmloff/source/script/XMLScriptExportHandler.cxx
index e04467d1e491..9cfc7211f3b9 100644
--- a/xmloff/source/script/XMLScriptExportHandler.cxx
+++ b/xmloff/source/script/XMLScriptExportHandler.cxx
@@ -36,7 +36,7 @@
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
using namespace ::com::sun::star::uno;
diff --git a/xmloff/source/script/XMLStarBasicContextFactory.cxx b/xmloff/source/script/XMLStarBasicContextFactory.cxx
index 94a794675d01..a957b4bd060f 100644
--- a/xmloff/source/script/XMLStarBasicContextFactory.cxx
+++ b/xmloff/source/script/XMLStarBasicContextFactory.cxx
@@ -32,7 +32,7 @@
#include <tools/debug.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/source/script/XMLStarBasicExportHandler.cxx b/xmloff/source/script/XMLStarBasicExportHandler.cxx
index ee945f4a74cc..13d6948ba98e 100644
--- a/xmloff/source/script/XMLStarBasicExportHandler.cxx
+++ b/xmloff/source/script/XMLStarBasicExportHandler.cxx
@@ -36,7 +36,7 @@
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
using namespace ::com::sun::star::uno;
diff --git a/xmloff/source/script/makefile.mk b/xmloff/source/script/makefile.mk
deleted file mode 100644
index 4109ae6fc554..000000000000
--- a/xmloff/source/script/makefile.mk
+++ /dev/null
@@ -1,56 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=xmloff
-TARGET=script
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/XMLEventExport.obj \
- $(SLO)$/XMLEventImportHelper.obj \
- $(SLO)$/XMLEventsImportContext.obj \
- $(SLO)$/XMLScriptContextFactory.obj \
- $(SLO)$/XMLScriptExportHandler.obj \
- $(SLO)$/XMLStarBasicContextFactory.obj \
- $(SLO)$/XMLStarBasicExportHandler.obj \
- $(SLO)$/xmlscripti.obj \
- $(SLO)$/xmlbasici.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/xmloff/source/script/xmlscripti.cxx b/xmloff/source/script/xmlscripti.cxx
index 7768b1d67aab..d498922afa15 100644
--- a/xmloff/source/script/xmlscripti.cxx
+++ b/xmloff/source/script/xmlscripti.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include <xmloff/xmlscripti.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/style/DashStyle.cxx b/xmloff/source/style/DashStyle.cxx
index 49ff7e5a2cbc..9ac798381e0c 100644
--- a/xmloff/source/style/DashStyle.cxx
+++ b/xmloff/source/style/DashStyle.cxx
@@ -29,11 +29,11 @@
#include "precompiled_xmloff.hxx"
#include <com/sun/star/drawing/DashStyle.hpp>
#include <com/sun/star/drawing/LineDash.hpp>
-#include "DashStyle.hxx"
+#include "xmloff/DashStyle.hxx"
#include <xmloff/attrlist.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlimp.hxx>
diff --git a/xmloff/source/style/FillStyleContext.cxx b/xmloff/source/style/FillStyleContext.cxx
index 416042cfb9bc..7038f1b74495 100644
--- a/xmloff/source/style/FillStyleContext.cxx
+++ b/xmloff/source/style/FillStyleContext.cxx
@@ -30,15 +30,15 @@
#include <com/sun/star/container/XNameContainer.hpp>
#include "FillStyleContext.hxx"
#include <xmloff/xmlimp.hxx>
-#include "GradientStyle.hxx"
-#include "HatchStyle.hxx"
-#include "ImageStyle.hxx"
+#include "xmloff/GradientStyle.hxx"
+#include "xmloff/HatchStyle.hxx"
+#include "xmloff/ImageStyle.hxx"
#include "TransGradientStyle.hxx"
-#include "MarkerStyle.hxx"
-#include "DashStyle.hxx"
+#include "xmloff/MarkerStyle.hxx"
+#include "xmloff/DashStyle.hxx"
#include <xmloff/families.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/XMLBase64ImportContext.hxx>
using namespace ::com::sun::star;
diff --git a/xmloff/source/style/GradientStyle.cxx b/xmloff/source/style/GradientStyle.cxx
index 30da28ac5465..6e3921593644 100644
--- a/xmloff/source/style/GradientStyle.cxx
+++ b/xmloff/source/style/GradientStyle.cxx
@@ -27,12 +27,12 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "GradientStyle.hxx"
+#include "xmloff/GradientStyle.hxx"
#include <com/sun/star/awt/Gradient.hpp>
#include <xmloff/attrlist.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <rtl/ustrbuf.hxx>
#include <rtl/ustring.hxx>
diff --git a/xmloff/source/style/HatchStyle.cxx b/xmloff/source/style/HatchStyle.cxx
index 5351c345c16e..7785d70f2596 100644
--- a/xmloff/source/style/HatchStyle.cxx
+++ b/xmloff/source/style/HatchStyle.cxx
@@ -27,11 +27,11 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "HatchStyle.hxx"
+#include "xmloff/HatchStyle.hxx"
#include <com/sun/star/drawing/Hatch.hpp>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlimp.hxx>
diff --git a/xmloff/source/style/ImageStyle.cxx b/xmloff/source/style/ImageStyle.cxx
index 509b925198c4..f6716bfbcfd4 100644
--- a/xmloff/source/style/ImageStyle.cxx
+++ b/xmloff/source/style/ImageStyle.cxx
@@ -27,12 +27,12 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "ImageStyle.hxx"
+#include "xmloff/ImageStyle.hxx"
#include <com/sun/star/awt/XBitmap.hpp>
#include <xmloff/attrlist.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
-#include"xmlnmspe.hxx"
+#include"xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlimp.hxx>
diff --git a/xmloff/source/style/MarkerStyle.cxx b/xmloff/source/style/MarkerStyle.cxx
index 7f134bd65176..f0f32bb18c25 100644
--- a/xmloff/source/style/MarkerStyle.cxx
+++ b/xmloff/source/style/MarkerStyle.cxx
@@ -27,12 +27,12 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "MarkerStyle.hxx"
+#include "xmloff/MarkerStyle.hxx"
#include "xexptran.hxx"
#include <xmloff/attrlist.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlimp.hxx>
diff --git a/xmloff/source/style/PageHeaderFooterContext.cxx b/xmloff/source/style/PageHeaderFooterContext.cxx
index c5f556df501d..b8939b4cf889 100644
--- a/xmloff/source/style/PageHeaderFooterContext.cxx
+++ b/xmloff/source/style/PageHeaderFooterContext.cxx
@@ -36,7 +36,7 @@
#ifndef _XMLOFF_PAGEPHEADERFOOTERCONTEXT_HXX
#include "PageHeaderFooterContext.hxx"
#endif
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "PagePropertySetContext.hxx"
diff --git a/xmloff/source/style/PageMasterImportContext.cxx b/xmloff/source/style/PageMasterImportContext.cxx
index e784e4f5085f..bcbb05012fec 100644
--- a/xmloff/source/style/PageMasterImportContext.cxx
+++ b/xmloff/source/style/PageMasterImportContext.cxx
@@ -30,7 +30,7 @@
#include "PageMasterImportContext.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "PageMasterPropHdl.hxx"
#include "PagePropertySetContext.hxx"
diff --git a/xmloff/source/style/PageMasterStyleMap.cxx b/xmloff/source/style/PageMasterStyleMap.cxx
index 99065c9d3481..6dbda70f5125 100644
--- a/xmloff/source/style/PageMasterStyleMap.cxx
+++ b/xmloff/source/style/PageMasterStyleMap.cxx
@@ -31,7 +31,7 @@
#ifndef _XMLOFF_PAGEMASTERSTYLEMAP_HXX
#include <xmloff/PageMasterStyleMap.hxx>
#endif
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
using namespace ::xmloff::token;
diff --git a/xmloff/source/style/TransGradientStyle.cxx b/xmloff/source/style/TransGradientStyle.cxx
index 1357fee3e7f7..073315761076 100644
--- a/xmloff/source/style/TransGradientStyle.cxx
+++ b/xmloff/source/style/TransGradientStyle.cxx
@@ -32,7 +32,7 @@
#include <xmloff/attrlist.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <rtl/ustrbuf.hxx>
#include <rtl/ustring.hxx>
#include <tools/debug.hxx>
diff --git a/xmloff/source/style/VisAreaContext.cxx b/xmloff/source/style/VisAreaContext.cxx
index 8688d2fc95ea..795d9905243e 100644
--- a/xmloff/source/style/VisAreaContext.cxx
+++ b/xmloff/source/style/VisAreaContext.cxx
@@ -32,9 +32,9 @@
// INCLUDE ---------------------------------------------------------------
-#include "VisAreaContext.hxx"
+#include "xmloff/VisAreaContext.hxx"
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlimp.hxx>
diff --git a/xmloff/source/style/VisAreaExport.cxx b/xmloff/source/style/VisAreaExport.cxx
index a45b63f50242..6bdcb18c7f43 100644
--- a/xmloff/source/style/VisAreaExport.cxx
+++ b/xmloff/source/style/VisAreaExport.cxx
@@ -28,9 +28,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include <com/sun/star/awt/Rectangle.hpp>
-#include "VisAreaExport.hxx"
+#include "xmloff/VisAreaExport.hxx"
#include <xmloff/xmlexp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/style/XMLBackgroundImageContext.cxx b/xmloff/source/style/XMLBackgroundImageContext.cxx
index 9d48f2ce531b..d8f84b1d9840 100644
--- a/xmloff/source/style/XMLBackgroundImageContext.cxx
+++ b/xmloff/source/style/XMLBackgroundImageContext.cxx
@@ -31,7 +31,7 @@
#include <com/sun/star/io/XOutputStream.hpp>
#include <xmloff/xmltkmap.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/style/XMLBackgroundImageExport.cxx b/xmloff/source/style/XMLBackgroundImageExport.cxx
index dd61d4f3feb5..45039f348603 100644
--- a/xmloff/source/style/XMLBackgroundImageExport.cxx
+++ b/xmloff/source/style/XMLBackgroundImageExport.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include <com/sun/star/style/GraphicLocation.hpp>
-#include <xmlnmspe.hxx>
+#include <xmloff/xmlnmspe.hxx>
#include <xmloff/xmltoken.hxx>
#include <rtl/ustrbuf.hxx>
#include <xmloff/xmlexp.hxx>
diff --git a/xmloff/source/style/XMLFontAutoStylePool.cxx b/xmloff/source/style/XMLFontAutoStylePool.cxx
index 3c8a55effd47..ad01b5b1e9d3 100644
--- a/xmloff/source/style/XMLFontAutoStylePool.cxx
+++ b/xmloff/source/style/XMLFontAutoStylePool.cxx
@@ -27,12 +27,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-
#include <tools/debug.hxx>
#include <svl/cntnrsrt.hxx>
#include <tools/fontenum.hxx>
-
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include "fonthdl.hxx"
diff --git a/xmloff/source/style/XMLFontStylesContext.cxx b/xmloff/source/style/XMLFontStylesContext.cxx
index 49dd6ddac91e..c36fd4c55fab 100644
--- a/xmloff/source/style/XMLFontStylesContext.cxx
+++ b/xmloff/source/style/XMLFontStylesContext.cxx
@@ -34,7 +34,7 @@
#include <rtl/logfile.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "fonthdl.hxx"
#include <xmloff/xmlimp.hxx>
diff --git a/xmloff/source/style/XMLFootnoteSeparatorExport.cxx b/xmloff/source/style/XMLFootnoteSeparatorExport.cxx
index 42d4e2cec221..b576c697732c 100644
--- a/xmloff/source/style/XMLFootnoteSeparatorExport.cxx
+++ b/xmloff/source/style/XMLFootnoteSeparatorExport.cxx
@@ -30,7 +30,7 @@
#include "XMLFootnoteSeparatorExport.hxx"
#include <tools/debug.hxx>
#include <xmloff/xmlexp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlprmap.hxx>
diff --git a/xmloff/source/style/XMLFootnoteSeparatorImport.cxx b/xmloff/source/style/XMLFootnoteSeparatorImport.cxx
index 33fb40fbfc3a..7293c1198cea 100644
--- a/xmloff/source/style/XMLFootnoteSeparatorImport.cxx
+++ b/xmloff/source/style/XMLFootnoteSeparatorImport.cxx
@@ -39,7 +39,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlprmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/maptype.hxx>
diff --git a/xmloff/source/style/XMLPageExport.cxx b/xmloff/source/style/XMLPageExport.cxx
index bc5bdaf6d69f..915b2291461f 100644
--- a/xmloff/source/style/XMLPageExport.cxx
+++ b/xmloff/source/style/XMLPageExport.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include <xmloff/XMLPageExport.hxx>
#include <tools/debug.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
#include <com/sun/star/style/XStyle.hpp>
diff --git a/xmloff/source/style/impastp4.cxx b/xmloff/source/style/impastp4.cxx
index 0eb615ea2834..3e429ca65417 100644
--- a/xmloff/source/style/impastp4.cxx
+++ b/xmloff/source/style/impastp4.cxx
@@ -31,7 +31,7 @@
#include <xmloff/xmlaustp.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/attrlist.hxx>
#include "impastpl.hxx"
#include <xmloff/xmlexppr.hxx>
diff --git a/xmloff/source/style/makefile.mk b/xmloff/source/style/makefile.mk
deleted file mode 100644
index 75a1c35aeefc..000000000000
--- a/xmloff/source/style/makefile.mk
+++ /dev/null
@@ -1,219 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=xmloff
-TARGET=style
-
-ENABLE_EXCEPTIONS=sal_True
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-CXXFILES = \
- XMLPercentOrMeasurePropertyHandler.cxx \
- XMLIsPercentagePropertyHandler.cxx \
- XMLRectangleMembersHandler.cxx \
- adjushdl.cxx \
- backhdl.cxx \
- bordrhdl.cxx \
- breakhdl.cxx \
- cdouthdl.cxx \
- chrhghdl.cxx \
- chrlohdl.cxx \
- csmaphdl.cxx \
- escphdl.cxx \
- fonthdl.cxx \
- impastp1.cxx \
- impastp2.cxx \
- impastp3.cxx \
- impastp4.cxx \
- kernihdl.cxx \
- lspachdl.cxx \
- numehelp.cxx \
- opaquhdl.cxx \
- postuhdl.cxx \
- prhdlfac.cxx \
- prstylei.cxx \
- shadwhdl.cxx \
- shdwdhdl.cxx \
- styleexp.cxx \
- tabsthdl.cxx \
- undlihdl.cxx \
- uniref.cxx \
- weighhdl.cxx \
- xmlaustp.cxx \
- xmlbahdl.cxx \
- xmlexppr.cxx \
- xmlimppr.cxx \
- xmlnume.cxx \
- xmlnumfe.cxx \
- xmlnumfi.cxx \
- xmlnumi.cxx \
- xmlprcon.cxx \
- xmlprhdl.cxx \
- xmlprmap.cxx \
- xmlstyle.cxx \
- xmltabe.cxx \
- xmltabi.cxx \
- DashStyle.cxx \
- EnumPropertyHdl.cxx \
- FillStyleContext.cxx \
- GradientStyle.cxx \
- HatchStyle.cxx \
- ImageStyle.cxx \
- MarkerStyle.cxx \
- MultiPropertySetHelper.cxx \
- SinglePropertySetInfoCache.cxx \
- DashStyle.cxx \
- AttributeContainerHandler.cxx \
- NamedBoolPropertyHdl.cxx \
- TransGradientStyle.cxx \
- XMLBackgroundImageContext.cxx \
- XMLBackgroundImageExport.cxx \
- XMLClipPropertyHandler.cxx \
- XMLConstantsPropertyHandler.cxx \
- XMLElementPropertyContext.cxx \
- XMLFootnoteSeparatorExport.cxx \
- XMLFootnoteSeparatorImport.cxx \
- XMLFontAutoStylePool.cxx \
- XMLFontStylesContext.cxx \
- XMLPageExport.cxx \
- PageMasterPropHdl.cxx \
- PageMasterPropHdlFactory.cxx \
- PageMasterStyleMap.cxx \
- PageMasterPropMapper.cxx \
- PageMasterExportPropMapper.cxx \
- PageMasterImportPropMapper.cxx \
- PageMasterImportContext.cxx \
- PagePropertySetContext.cxx \
- PageHeaderFooterContext.cxx \
- StyleMap.cxx \
- XMLBitmapRepeatOffsetPropertyHandler.cxx \
- XMLFillBitmapSizePropertyHandler.cxx \
- XMLBitmapLogicalSizePropertyHandler.cxx \
- durationhdl.cxx \
- VisAreaExport.cxx \
- VisAreaContext.cxx \
- DrawAspectHdl.cxx
-
-
-SLOFILES = \
- $(SLO)$/XMLPercentOrMeasurePropertyHandler.obj \
- $(SLO)$/XMLIsPercentagePropertyHandler.obj \
- $(SLO)$/XMLRectangleMembersHandler.obj \
- $(SLO)$/adjushdl.obj \
- $(SLO)$/backhdl.obj \
- $(SLO)$/bordrhdl.obj \
- $(SLO)$/breakhdl.obj \
- $(SLO)$/cdouthdl.obj \
- $(SLO)$/chrhghdl.obj \
- $(SLO)$/chrlohdl.obj \
- $(SLO)$/csmaphdl.obj \
- $(SLO)$/escphdl.obj \
- $(SLO)$/fonthdl.obj \
- $(SLO)$/impastp1.obj \
- $(SLO)$/impastp2.obj \
- $(SLO)$/impastp3.obj \
- $(SLO)$/impastp4.obj \
- $(SLO)$/kernihdl.obj \
- $(SLO)$/lspachdl.obj \
- $(SLO)$/numehelp.obj \
- $(SLO)$/opaquhdl.obj \
- $(SLO)$/postuhdl.obj \
- $(SLO)$/prhdlfac.obj \
- $(SLO)$/prstylei.obj \
- $(SLO)$/shadwhdl.obj \
- $(SLO)$/shdwdhdl.obj \
- $(SLO)$/styleexp.obj \
- $(SLO)$/tabsthdl.obj \
- $(SLO)$/undlihdl.obj \
- $(SLO)$/uniref.obj \
- $(SLO)$/weighhdl.obj \
- $(SLO)$/xmlaustp.obj \
- $(SLO)$/xmlbahdl.obj \
- $(SLO)$/xmlexppr.obj \
- $(SLO)$/xmlimppr.obj \
- $(SLO)$/xmlnume.obj \
- $(SLO)$/xmlnumfe.obj \
- $(SLO)$/xmlnumfi.obj \
- $(SLO)$/xmlnumi.obj \
- $(SLO)$/xmlprcon.obj \
- $(SLO)$/xmlprhdl.obj \
- $(SLO)$/xmlprmap.obj \
- $(SLO)$/xmlstyle.obj \
- $(SLO)$/xmltabe.obj \
- $(SLO)$/xmltabi.obj \
- $(SLO)$/DashStyle.obj \
- $(SLO)$/EnumPropertyHdl.obj \
- $(SLO)$/FillStyleContext.obj \
- $(SLO)$/GradientStyle.obj \
- $(SLO)$/HatchStyle.obj \
- $(SLO)$/ImageStyle.obj \
- $(SLO)$/MarkerStyle.obj \
- $(SLO)$/MultiPropertySetHelper.obj \
- $(SLO)$/SinglePropertySetInfoCache.obj \
- $(SLO)$/NamedBoolPropertyHdl.obj \
- $(SLO)$/TransGradientStyle.obj \
- $(SLO)$/XMLBackgroundImageContext.obj \
- $(SLO)$/XMLBackgroundImageExport.obj \
- $(SLO)$/XMLClipPropertyHandler.obj \
- $(SLO)$/XMLConstantsPropertyHandler.obj \
- $(SLO)$/AttributeContainerHandler.obj \
- $(SLO)$/XMLElementPropertyContext.obj \
- $(SLO)$/XMLFootnoteSeparatorExport.obj \
- $(SLO)$/XMLFootnoteSeparatorImport.obj \
- $(SLO)$/XMLFontAutoStylePool.obj \
- $(SLO)$/XMLFontStylesContext.obj \
- $(SLO)$/XMLPageExport.obj \
- $(SLO)$/PageMasterPropHdl.obj \
- $(SLO)$/PageMasterPropHdlFactory.obj \
- $(SLO)$/PageMasterStyleMap.obj \
- $(SLO)$/PageMasterPropMapper.obj \
- $(SLO)$/PageMasterExportPropMapper.obj \
- $(SLO)$/PageMasterImportPropMapper.obj \
- $(SLO)$/PageMasterImportContext.obj \
- $(SLO)$/PagePropertySetContext.obj \
- $(SLO)$/PageHeaderFooterContext.obj \
- $(SLO)$/StyleMap.obj \
- $(SLO)$/WordWrapPropertyHdl.obj \
- $(SLO)$/XMLBitmapRepeatOffsetPropertyHandler.obj \
- $(SLO)$/XMLFillBitmapSizePropertyHandler.obj \
- $(SLO)$/XMLBitmapLogicalSizePropertyHandler.obj \
- $(SLO)$/durationhdl.obj \
- $(SLO)$/VisAreaExport.obj \
- $(SLO)$/VisAreaContext.obj \
- $(SLO)$/DrawAspectHdl.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/xmloff/source/style/numehelp.cxx b/xmloff/source/style/numehelp.cxx
index 8d333f82a156..be98184a41dc 100644
--- a/xmloff/source/style/numehelp.cxx
+++ b/xmloff/source/style/numehelp.cxx
@@ -28,10 +28,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "numehelp.hxx"
+#include "xmloff/numehelp.hxx"
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlexp.hxx>
diff --git a/xmloff/source/style/prstylei.cxx b/xmloff/source/style/prstylei.cxx
index 3eb2ddb71a8d..9c736bf8f226 100644
--- a/xmloff/source/style/prstylei.cxx
+++ b/xmloff/source/style/prstylei.cxx
@@ -33,7 +33,7 @@
#ifndef __SGI_STL_SET
#include <set>
#endif
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlprcon.hxx>
#include <com/sun/star/style/XStyle.hpp>
@@ -49,7 +49,7 @@
#include <xmloff/prstylei.hxx>
#endif
#include <xmloff/attrlist.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
diff --git a/xmloff/source/style/styleexp.cxx b/xmloff/source/style/styleexp.cxx
index 6cbf34301d5e..ad26398f911c 100644
--- a/xmloff/source/style/styleexp.cxx
+++ b/xmloff/source/style/styleexp.cxx
@@ -33,7 +33,7 @@
#include <svl/svstdarr.hxx>
#endif
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#ifndef _XMLOFF_XMLITMAP_HXX
//#include "xmlitmap.hxx"
diff --git a/xmloff/source/style/xmlaustp.cxx b/xmloff/source/style/xmlaustp.cxx
index c30f7c631a71..c9ff7b92dade 100644
--- a/xmloff/source/style/xmlaustp.cxx
+++ b/xmloff/source/style/xmlaustp.cxx
@@ -34,10 +34,10 @@
#include "impastpl.hxx"
#include <xmloff/xmlaustp.hxx>
#include <xmloff/families.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlexp.hxx>
-#include "XMLTextListAutoStylePool.hxx"
+#include "xmloff/XMLTextListAutoStylePool.hxx"
#ifndef _XMLOFF_PAGEMASTERSTYLEMAP_HXX
#include <xmloff/PageMasterStyleMap.hxx>
diff --git a/xmloff/source/style/xmlexppr.cxx b/xmloff/source/style/xmlexppr.cxx
index 94898b89ca04..23c55cc4ef04 100644
--- a/xmloff/source/style/xmlexppr.cxx
+++ b/xmloff/source/style/xmlexppr.cxx
@@ -43,7 +43,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/attrlist.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmlprmap.hxx>
#include <xmloff/PropertySetInfoHash.hxx>
diff --git a/xmloff/source/style/xmlimppr.cxx b/xmloff/source/style/xmlimppr.cxx
index 4675f9bf3c80..79b2974706e5 100644
--- a/xmloff/source/style/xmlimppr.cxx
+++ b/xmloff/source/style/xmlimppr.cxx
@@ -40,10 +40,10 @@
#include <xmloff/xmlimppr.hxx>
#include <xmloff/xmlimp.hxx>
-#include "unoatrcn.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/unoatrcn.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <tools/debug.hxx>
#include "xmloff/contextid.hxx"
diff --git a/xmloff/source/style/xmlnume.cxx b/xmloff/source/style/xmlnume.cxx
index 02d9bebdbd0a..d4e880f09b52 100644
--- a/xmloff/source/style/xmlnume.cxx
+++ b/xmloff/source/style/xmlnume.cxx
@@ -50,11 +50,11 @@
#include <tools/debug.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include "fonthdl.hxx"
-#include "XMLTextListAutoStylePool.hxx"
+#include "xmloff/XMLTextListAutoStylePool.hxx"
#include <xmloff/xmlnume.hxx>
#include <xmloff/xmlexp.hxx>
#include <tools/fontenum.hxx>
diff --git a/xmloff/source/style/xmlnumfe.cxx b/xmloff/source/style/xmlnumfe.cxx
index ce1da8bc2d23..9b22f1a39e29 100644
--- a/xmloff/source/style/xmlnumfe.cxx
+++ b/xmloff/source/style/xmlnumfe.cxx
@@ -49,7 +49,7 @@
#include <com/sun/star/i18n/NativeNumberXmlAttributes.hpp>
#include <xmloff/xmlnumfe.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/attrlist.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx
index 8ad404d2591b..492210236be6 100644
--- a/xmloff/source/style/xmlnumfi.cxx
+++ b/xmloff/source/style/xmlnumfi.cxx
@@ -45,7 +45,7 @@
#include <xmloff/xmlnumfi.hxx>
#include <xmloff/xmltkmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/style/xmlnumi.cxx b/xmloff/source/style/xmlnumi.cxx
index 72efeabaaca4..0d45fdc289d0 100644
--- a/xmloff/source/style/xmlnumi.cxx
+++ b/xmloff/source/style/xmlnumi.cxx
@@ -51,12 +51,12 @@
#include <xmloff/xmltkmap.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlimp.hxx>
#include <xmloff/XMLBase64ImportContext.hxx>
#include <xmloff/xmltoken.hxx>
-#include "i18nmap.hxx"
+#include <xmloff/i18nmap.hxx>
#include <xmloff/xmluconv.hxx>
#include "fonthdl.hxx"
#include <xmloff/XMLFontStylesContext.hxx>
diff --git a/xmloff/source/style/xmlstyle.cxx b/xmloff/source/style/xmlstyle.cxx
index 108b21f43120..4977a37e45f3 100644
--- a/xmloff/source/style/xmlstyle.cxx
+++ b/xmloff/source/style/xmlstyle.cxx
@@ -46,7 +46,7 @@
#include <svl/cntnrsrt.hxx>
#include <svl/itemset.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#ifndef _XMLOFF_FAMILIES_HXX
diff --git a/xmloff/source/style/xmltabe.cxx b/xmloff/source/style/xmltabe.cxx
index 43390b58f006..64c294c3da2f 100644
--- a/xmloff/source/style/xmltabe.cxx
+++ b/xmloff/source/style/xmltabe.cxx
@@ -33,11 +33,11 @@
#include <com/sun/star/style/TabAlign.hpp>
#include <rtl/ustrbuf.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlexp.hxx>
-#include "xmltabe.hxx"
+#include "xmloff/xmltabe.hxx"
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
diff --git a/xmloff/source/style/xmltabi.cxx b/xmloff/source/style/xmltabi.cxx
index 72f5e6f1f2e5..24402e61c240 100644
--- a/xmloff/source/style/xmltabi.cxx
+++ b/xmloff/source/style/xmltabi.cxx
@@ -31,11 +31,11 @@
#include <rtl/ustrbuf.hxx>
#include <xmloff/xmltkmap.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlimp.hxx>
#include <com/sun/star/style/TabStop.hpp>
#include <xmloff/xmltoken.hxx>
-#include "i18nmap.hxx"
+#include "xmloff/i18nmap.hxx"
#include <xmloff/xmluconv.hxx>
#include "xmltabi.hxx"
diff --git a/xmloff/source/table/XMLTableExport.cxx b/xmloff/source/table/XMLTableExport.cxx
index f21bbda26300..d0550814d8dc 100644
--- a/xmloff/source/table/XMLTableExport.cxx
+++ b/xmloff/source/table/XMLTableExport.cxx
@@ -47,7 +47,7 @@
#include <com/sun/star/beans/XPropertySetInfo.hpp>
#include "xmloff/table/XMLTableExport.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlprmap.hxx>
#include <xmloff/xmlexppr.hxx>
#include <xmloff/xmlexp.hxx>
diff --git a/xmloff/source/table/XMLTableImport.cxx b/xmloff/source/table/XMLTableImport.cxx
index 90e4ed6deedf..da24e582389f 100644
--- a/xmloff/source/table/XMLTableImport.cxx
+++ b/xmloff/source/table/XMLTableImport.cxx
@@ -48,7 +48,7 @@
#include "xmloff/prstylei.hxx"
#include "xmloff/xmlimp.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "table.hxx"
#include <boost/shared_ptr.hpp>
diff --git a/xmloff/source/table/makefile.mk b/xmloff/source/table/makefile.mk
deleted file mode 100644
index 6f8c8efab7b6..000000000000
--- a/xmloff/source/table/makefile.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-PRJNAME=xmloff
-TARGET=table
-AUTOSEG=true
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/XMLTableExport.obj\
- $(SLO)$/XMLTableImport.obj
-
-# --- Targets --------------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/xmloff/source/table/tabledesignsimporter.cxx b/xmloff/source/table/tabledesignsimporter.cxx
deleted file mode 100644
index e522a9ddde78..000000000000
--- a/xmloff/source/table/tabledesignsimporter.cxx
+++ /dev/null
@@ -1,103 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
-#include <com/sun/star/table/XTableRows.hpp>
-#include <com/sun/star/table/XMergeableCell.hpp>
-#include <com/sun/star/table/XMergeableCellRange.hpp>
-#include <com/sun/star/table/XTable.hpp>
-#include <com/sun/star/text/XText.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-
-#include "xmloff/table/XMLTableImport.hxx"
-#include "xmloff/xmltkmap.hxx"
-#include "xmloff/maptype.hxx"
-#include "xmloff/xmlprmap.hxx"
-#include "xmloff/txtimp.hxx"
-#include "xmloff/xmlimp.hxx"
-#include "xmloff/nmspmap.hxx"
-#include "xmloff/xmlstyle.hxx"
-#include "xmloff/prstylei.hxx"
-#include "xmloff/xmlimp.hxx"
-
-#include "xmlnmspe.hxx"
-#include "table.hxx"
-
-#include <boost/shared_ptr.hpp>
-
-// --------------------------------------------------------------------
-
-using ::rtl::OUString;
-using namespace ::xmloff::token;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::table;
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::text;
-using namespace ::com::sun::star::style;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::container;
-
-// --------------------------------------------------------------------
-
-class TabelDesignsImporter : public SvXMLImport
-{
- TabelDesignsImporter( const Reference< XMultiServiceFactory > & rSMgr );
- ~TabelDesignsImporter() throw ();
-
- SvXMLImportContext* CreateContext(sal_uInt16 nPrefix, const OUString& rLocalName, const Reference<XAttributeList>& xAttrList);
-}
-
-// --------------------------------------------------------------------
-
-TabelDesignsImporter::TabelDesignsImporter( const Reference< XMultiServiceFactory > & rSMgr )
-: SvXMLImport( rSMgr, true )
-{
- // add namespaces
- GetNamespaceMap().Add(
- GetXMLToken(XML_NP_PRESENTATION),
- GetXMLToken(XML_N_PRESENTATION),
- XML_NAMESPACE_PRESENTATION);
-}
-
-// --------------------------------------------------------------------
-
-TabelDesignsImporter::~TabelDesignsImporter()
-{
-}
-
-// --------------------------------------------------------------------
-
-SvXMLImportContext* TabelDesignsImporter::CreateContext(sal_uInt16 nPrefix, const OUString& rLocalName, const Reference<XAttributeList>& xAttrList)
-{
-}
-
-// --------------------------------------------------------------------
diff --git a/xmloff/source/text/XMLAutoMarkFileContext.cxx b/xmloff/source/text/XMLAutoMarkFileContext.cxx
index c0688c4b2259..505a7e6b0281 100644
--- a/xmloff/source/text/XMLAutoMarkFileContext.cxx
+++ b/xmloff/source/text/XMLAutoMarkFileContext.cxx
@@ -31,7 +31,7 @@
#include <xmloff/xmlimp.hxx>
#include <rtl/ustring.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/xml/sax/XAttributeList.hpp>
diff --git a/xmloff/source/text/XMLAutoTextContainerEventImport.cxx b/xmloff/source/text/XMLAutoTextContainerEventImport.cxx
index d06a61217529..ed8e414bcb44 100644
--- a/xmloff/source/text/XMLAutoTextContainerEventImport.cxx
+++ b/xmloff/source/text/XMLAutoTextContainerEventImport.cxx
@@ -32,7 +32,7 @@
#include <com/sun/star/xml/sax/XAttributeList.hpp>
#include <com/sun/star/container/XNameReplace.hpp>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/XMLEventsImportContext.hxx>
diff --git a/xmloff/source/text/XMLAutoTextEventExport.cxx b/xmloff/source/text/XMLAutoTextEventExport.cxx
index 125d0a63c43c..dcef23ba5734 100644
--- a/xmloff/source/text/XMLAutoTextEventExport.cxx
+++ b/xmloff/source/text/XMLAutoTextEventExport.cxx
@@ -46,7 +46,7 @@
//#include <comphelper/processfactory.hxx>
//#endif
#include <rtl/ustrbuf.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/XMLEventExport.hxx>
diff --git a/xmloff/source/text/XMLAutoTextEventImport.cxx b/xmloff/source/text/XMLAutoTextEventImport.cxx
index 9833376eea5c..ffd7f2985070 100644
--- a/xmloff/source/text/XMLAutoTextEventImport.cxx
+++ b/xmloff/source/text/XMLAutoTextEventImport.cxx
@@ -34,7 +34,7 @@
#include <com/sun/star/uno/XInterface.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include "XMLAutoTextContainerEventImport.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <tools/debug.hxx>
diff --git a/xmloff/source/text/XMLCalculationSettingsContext.cxx b/xmloff/source/text/XMLCalculationSettingsContext.cxx
index 03ed535d2785..af1b2b0cf7c4 100644
--- a/xmloff/source/text/XMLCalculationSettingsContext.cxx
+++ b/xmloff/source/text/XMLCalculationSettingsContext.cxx
@@ -32,7 +32,7 @@
#include <com/sun/star/text/XTextDocument.hpp>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLChangeElementImportContext.cxx b/xmloff/source/text/XMLChangeElementImportContext.cxx
index 49780ad5c91a..061a9a1f9172 100644
--- a/xmloff/source/text/XMLChangeElementImportContext.cxx
+++ b/xmloff/source/text/XMLChangeElementImportContext.cxx
@@ -32,7 +32,7 @@
#include "XMLChangeInfoContext.hxx"
#include <com/sun/star/uno/Reference.h>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/source/text/XMLChangeImportContext.cxx b/xmloff/source/text/XMLChangeImportContext.cxx
index b30291b736be..9aee1c843369 100644
--- a/xmloff/source/text/XMLChangeImportContext.cxx
+++ b/xmloff/source/text/XMLChangeImportContext.cxx
@@ -31,7 +31,7 @@
#include <com/sun/star/text/XTextRange.hpp>
#include <tools/debug.hxx>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/source/text/XMLChangeInfoContext.cxx b/xmloff/source/text/XMLChangeInfoContext.cxx
index 847ab28c9bde..39fcb9cdc2d0 100644
--- a/xmloff/source/text/XMLChangeInfoContext.cxx
+++ b/xmloff/source/text/XMLChangeInfoContext.cxx
@@ -31,7 +31,7 @@
#include "XMLChangedRegionImportContext.hxx"
#include "XMLStringBufferImportContext.hxx"
#include <com/sun/star/uno/Reference.h>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
diff --git a/xmloff/source/text/XMLChangedRegionImportContext.cxx b/xmloff/source/text/XMLChangedRegionImportContext.cxx
index 52e4ccc8e048..9560a8159a0e 100644
--- a/xmloff/source/text/XMLChangedRegionImportContext.cxx
+++ b/xmloff/source/text/XMLChangedRegionImportContext.cxx
@@ -33,7 +33,7 @@
#include <com/sun/star/util/DateTime.hpp>
#include <com/sun/star/text/XTextCursor.hpp>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLFootnoteBodyImportContext.cxx b/xmloff/source/text/XMLFootnoteBodyImportContext.cxx
index bfd436652253..5f48619c3946 100644
--- a/xmloff/source/text/XMLFootnoteBodyImportContext.cxx
+++ b/xmloff/source/text/XMLFootnoteBodyImportContext.cxx
@@ -36,7 +36,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <com/sun/star/xml/sax/XAttributeList.hpp>
using ::rtl::OUString;
diff --git a/xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx b/xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx
index 131494a82b6a..9fa2cc660e03 100644
--- a/xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx
+++ b/xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx
@@ -35,7 +35,7 @@
#include <rtl/ustrbuf.hxx>
#include <tools/debug.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#ifndef _XMLOFF_FAMILIES_HXX
diff --git a/xmloff/source/text/XMLFootnoteImportContext.cxx b/xmloff/source/text/XMLFootnoteImportContext.cxx
index 9a015e20a55c..5f7389a7b799 100644
--- a/xmloff/source/text/XMLFootnoteImportContext.cxx
+++ b/xmloff/source/text/XMLFootnoteImportContext.cxx
@@ -36,7 +36,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "XMLFootnoteBodyImportContext.hxx"
diff --git a/xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx b/xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx
index aaebd7a27dca..52147bc8caf2 100644
--- a/xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx
@@ -38,7 +38,7 @@
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLIndexBibliographyConfigurationContext.cxx b/xmloff/source/text/XMLIndexBibliographyConfigurationContext.cxx
index cbd959b65084..23e11530d73f 100644
--- a/xmloff/source/text/XMLIndexBibliographyConfigurationContext.cxx
+++ b/xmloff/source/text/XMLIndexBibliographyConfigurationContext.cxx
@@ -35,7 +35,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <tools/debug.hxx>
diff --git a/xmloff/source/text/XMLIndexBibliographyEntryContext.cxx b/xmloff/source/text/XMLIndexBibliographyEntryContext.cxx
index f17bcd4dedf1..2fafdf44c10f 100644
--- a/xmloff/source/text/XMLIndexBibliographyEntryContext.cxx
+++ b/xmloff/source/text/XMLIndexBibliographyEntryContext.cxx
@@ -35,7 +35,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <com/sun/star/text/BibliographyDataField.hpp>
diff --git a/xmloff/source/text/XMLIndexBibliographySourceContext.cxx b/xmloff/source/text/XMLIndexBibliographySourceContext.cxx
index dae235996d10..a617c150fd4e 100644
--- a/xmloff/source/text/XMLIndexBibliographySourceContext.cxx
+++ b/xmloff/source/text/XMLIndexBibliographySourceContext.cxx
@@ -38,7 +38,7 @@
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLIndexChapterInfoEntryContext.cxx b/xmloff/source/text/XMLIndexChapterInfoEntryContext.cxx
index 0c0e815870be..bc5cb36ecb81 100644
--- a/xmloff/source/text/XMLIndexChapterInfoEntryContext.cxx
+++ b/xmloff/source/text/XMLIndexChapterInfoEntryContext.cxx
@@ -35,7 +35,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <com/sun/star/text/ChapterFormat.hpp>
diff --git a/xmloff/source/text/XMLIndexIllustrationSourceContext.cxx b/xmloff/source/text/XMLIndexIllustrationSourceContext.cxx
index 8f9af9f5243b..40c32701d50a 100644
--- a/xmloff/source/text/XMLIndexIllustrationSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexIllustrationSourceContext.cxx
@@ -35,7 +35,7 @@
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLIndexMarkExport.cxx b/xmloff/source/text/XMLIndexMarkExport.cxx
index c7b3d9e3c135..325e7a66f83f 100644
--- a/xmloff/source/text/XMLIndexMarkExport.cxx
+++ b/xmloff/source/text/XMLIndexMarkExport.cxx
@@ -34,7 +34,7 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/XPropertySetInfo.hpp>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLIndexObjectSourceContext.cxx b/xmloff/source/text/XMLIndexObjectSourceContext.cxx
index f44154193e33..15301ffb2fe6 100644
--- a/xmloff/source/text/XMLIndexObjectSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexObjectSourceContext.cxx
@@ -38,7 +38,7 @@
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLIndexSimpleEntryContext.cxx b/xmloff/source/text/XMLIndexSimpleEntryContext.cxx
index b043c0b83dea..4284eabe3571 100644
--- a/xmloff/source/text/XMLIndexSimpleEntryContext.cxx
+++ b/xmloff/source/text/XMLIndexSimpleEntryContext.cxx
@@ -35,7 +35,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLIndexSourceBaseContext.cxx b/xmloff/source/text/XMLIndexSourceBaseContext.cxx
index 3ee80500d21f..f9e04bd0a488 100644
--- a/xmloff/source/text/XMLIndexSourceBaseContext.cxx
+++ b/xmloff/source/text/XMLIndexSourceBaseContext.cxx
@@ -38,7 +38,7 @@
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLIndexTOCContext.cxx b/xmloff/source/text/XMLIndexTOCContext.cxx
index ad9f7ce10d7a..2699111ab47a 100644
--- a/xmloff/source/text/XMLIndexTOCContext.cxx
+++ b/xmloff/source/text/XMLIndexTOCContext.cxx
@@ -49,10 +49,10 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/prstylei.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <xmloff/xmluconv.hxx>
#include <rtl/ustring.hxx>
diff --git a/xmloff/source/text/XMLIndexTOCSourceContext.cxx b/xmloff/source/text/XMLIndexTOCSourceContext.cxx
index c52a3f1ee2ab..84296ff24241 100644
--- a/xmloff/source/text/XMLIndexTOCSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexTOCSourceContext.cxx
@@ -38,7 +38,7 @@
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLIndexTOCStylesContext.cxx b/xmloff/source/text/XMLIndexTOCStylesContext.cxx
index 0a7e010e59fb..755bd280a539 100644
--- a/xmloff/source/text/XMLIndexTOCStylesContext.cxx
+++ b/xmloff/source/text/XMLIndexTOCStylesContext.cxx
@@ -35,7 +35,7 @@
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLIndexTabStopEntryContext.cxx b/xmloff/source/text/XMLIndexTabStopEntryContext.cxx
index f2702a81ed20..301e7af3f96d 100644
--- a/xmloff/source/text/XMLIndexTabStopEntryContext.cxx
+++ b/xmloff/source/text/XMLIndexTabStopEntryContext.cxx
@@ -35,7 +35,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <rtl/ustring.hxx>
diff --git a/xmloff/source/text/XMLIndexTableSourceContext.cxx b/xmloff/source/text/XMLIndexTableSourceContext.cxx
index 240e702d2b2a..b87514c79eda 100644
--- a/xmloff/source/text/XMLIndexTableSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexTableSourceContext.cxx
@@ -42,7 +42,7 @@
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLIndexTemplateContext.cxx b/xmloff/source/text/XMLIndexTemplateContext.cxx
index cb94747c68a5..05bf7f5495da 100644
--- a/xmloff/source/text/XMLIndexTemplateContext.cxx
+++ b/xmloff/source/text/XMLIndexTemplateContext.cxx
@@ -39,7 +39,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <tools/debug.hxx>
diff --git a/xmloff/source/text/XMLIndexTitleTemplateContext.cxx b/xmloff/source/text/XMLIndexTitleTemplateContext.cxx
index 029660b0ccd5..333c141f8843 100644
--- a/xmloff/source/text/XMLIndexTitleTemplateContext.cxx
+++ b/xmloff/source/text/XMLIndexTitleTemplateContext.cxx
@@ -31,7 +31,7 @@
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/source/text/XMLIndexUserSourceContext.cxx b/xmloff/source/text/XMLIndexUserSourceContext.cxx
index 2554229781b0..b87551307d73 100644
--- a/xmloff/source/text/XMLIndexUserSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexUserSourceContext.cxx
@@ -38,7 +38,7 @@
#include <xmloff/xmlictxt.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLLineNumberingExport.cxx b/xmloff/source/text/XMLLineNumberingExport.cxx
index 637cdf0b781e..dd0386d48aab 100644
--- a/xmloff/source/text/XMLLineNumberingExport.cxx
+++ b/xmloff/source/text/XMLLineNumberingExport.cxx
@@ -33,7 +33,7 @@
#include <com/sun/star/style/LineNumberPosition.hpp>
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlnume.hxx>
diff --git a/xmloff/source/text/XMLLineNumberingImportContext.cxx b/xmloff/source/text/XMLLineNumberingImportContext.cxx
index 55dc9db9b254..cc1e11389750 100644
--- a/xmloff/source/text/XMLLineNumberingImportContext.cxx
+++ b/xmloff/source/text/XMLLineNumberingImportContext.cxx
@@ -35,7 +35,7 @@
#include <com/sun/star/style/NumberingType.hpp>
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlnumi.hxx>
diff --git a/xmloff/source/text/XMLLineNumberingSeparatorImportContext.cxx b/xmloff/source/text/XMLLineNumberingSeparatorImportContext.cxx
index c07b1e64e14c..4c2b62c5ec35 100644
--- a/xmloff/source/text/XMLLineNumberingSeparatorImportContext.cxx
+++ b/xmloff/source/text/XMLLineNumberingSeparatorImportContext.cxx
@@ -31,7 +31,7 @@
#include "XMLLineNumberingImportContext.hxx"
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLRedlineExport.cxx b/xmloff/source/text/XMLRedlineExport.cxx
index 67970330f3ef..7dee1ba94069 100644
--- a/xmloff/source/text/XMLRedlineExport.cxx
+++ b/xmloff/source/text/XMLRedlineExport.cxx
@@ -42,7 +42,7 @@
#include <com/sun/star/text/XTextSection.hpp>
#include <com/sun/star/util/DateTime.hpp>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/XMLSectionExport.cxx b/xmloff/source/text/XMLSectionExport.cxx
index 7cf96abea2e2..aee5f991b48e 100644
--- a/xmloff/source/text/XMLSectionExport.cxx
+++ b/xmloff/source/text/XMLSectionExport.cxx
@@ -53,7 +53,7 @@
#include <com/sun/star/text/XChapterNumberingSupplier.hpp>
#include <com/sun/star/text/ChapterFormat.hpp> //i90246
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/families.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/text/XMLSectionFootnoteConfigExport.cxx b/xmloff/source/text/XMLSectionFootnoteConfigExport.cxx
index 9ec1adfb75eb..ce702d714857 100644
--- a/xmloff/source/text/XMLSectionFootnoteConfigExport.cxx
+++ b/xmloff/source/text/XMLSectionFootnoteConfigExport.cxx
@@ -37,7 +37,7 @@
#include <xmloff/txtprmap.hxx>
#endif
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlnume.hxx>
diff --git a/xmloff/source/text/XMLSectionFootnoteConfigImport.cxx b/xmloff/source/text/XMLSectionFootnoteConfigImport.cxx
index 838c113a590f..24e87dfde17a 100644
--- a/xmloff/source/text/XMLSectionFootnoteConfigImport.cxx
+++ b/xmloff/source/text/XMLSectionFootnoteConfigImport.cxx
@@ -39,7 +39,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlprmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/maptype.hxx>
#include <xmloff/xmlnumi.hxx>
diff --git a/xmloff/source/text/XMLSectionImportContext.cxx b/xmloff/source/text/XMLSectionImportContext.cxx
index 4b9b94b1ced7..890c55140ee4 100644
--- a/xmloff/source/text/XMLSectionImportContext.cxx
+++ b/xmloff/source/text/XMLSectionImportContext.cxx
@@ -34,7 +34,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/prstylei.hxx>
diff --git a/xmloff/source/text/XMLSectionSourceDDEImportContext.cxx b/xmloff/source/text/XMLSectionSourceDDEImportContext.cxx
index de61e78e564b..25f456a5d584 100644
--- a/xmloff/source/text/XMLSectionSourceDDEImportContext.cxx
+++ b/xmloff/source/text/XMLSectionSourceDDEImportContext.cxx
@@ -34,7 +34,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include <com/sun/star/uno/Reference.h>
diff --git a/xmloff/source/text/XMLSectionSourceImportContext.cxx b/xmloff/source/text/XMLSectionSourceImportContext.cxx
index 53a56da11be7..7c2023228c2b 100644
--- a/xmloff/source/text/XMLSectionSourceImportContext.cxx
+++ b/xmloff/source/text/XMLSectionSourceImportContext.cxx
@@ -34,7 +34,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/beans/XPropertySet.hpp>
diff --git a/xmloff/source/text/XMLStringBufferImportContext.cxx b/xmloff/source/text/XMLStringBufferImportContext.cxx
index bec9e86d2bd9..cd63a9b48a82 100644
--- a/xmloff/source/text/XMLStringBufferImportContext.cxx
+++ b/xmloff/source/text/XMLStringBufferImportContext.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include "XMLStringBufferImportContext.hxx"
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
using ::rtl::OUString;
diff --git a/xmloff/source/text/XMLTextCharStyleNamesElementExport.cxx b/xmloff/source/text/XMLTextCharStyleNamesElementExport.cxx
index fd891e447c60..e4ed313d70de 100644
--- a/xmloff/source/text/XMLTextCharStyleNamesElementExport.cxx
+++ b/xmloff/source/text/XMLTextCharStyleNamesElementExport.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include "XMLTextCharStyleNamesElementExport.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmlexp.hxx>
diff --git a/xmloff/source/text/XMLTextColumnsContext.cxx b/xmloff/source/text/XMLTextColumnsContext.cxx
index 55f3426cf200..48175ae33e4f 100644
--- a/xmloff/source/text/XMLTextColumnsContext.cxx
+++ b/xmloff/source/text/XMLTextColumnsContext.cxx
@@ -35,7 +35,7 @@
#include <xmloff/xmltkmap.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmltoken.hxx>
#include "XMLTextColumnsContext.hxx"
diff --git a/xmloff/source/text/XMLTextColumnsExport.cxx b/xmloff/source/text/XMLTextColumnsExport.cxx
index 9e99c98e5df8..695bdf47578f 100644
--- a/xmloff/source/text/XMLTextColumnsExport.cxx
+++ b/xmloff/source/text/XMLTextColumnsExport.cxx
@@ -38,7 +38,7 @@
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlexp.hxx>
#include "XMLTextColumnsExport.hxx"
diff --git a/xmloff/source/text/XMLTextFrameContext.cxx b/xmloff/source/text/XMLTextFrameContext.cxx
index accaa49d5ea4..3216c6f05618 100644
--- a/xmloff/source/text/XMLTextFrameContext.cxx
+++ b/xmloff/source/text/XMLTextFrameContext.cxx
@@ -42,7 +42,7 @@
#include <com/sun/star/text/VertOrientation.hpp>
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
#include "XMLAnchorTypePropHdl.hxx"
@@ -50,7 +50,7 @@
#include <xmloff/XMLBase64ImportContext.hxx>
#include "XMLReplacementImageContext.hxx"
#include <xmloff/prstylei.hxx>
-#include "i18nmap.hxx"
+#include "xmloff/i18nmap.hxx"
#include "xexptran.hxx"
#include <xmloff/shapeimport.hxx>
#include <xmloff/XMLEventsImportContext.hxx>
diff --git a/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx b/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx
index 6ded2b4d5cbd..15cc68c9e675 100644
--- a/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx
+++ b/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
#include "XMLTextFrameContext.hxx"
diff --git a/xmloff/source/text/XMLTextHeaderFooterContext.cxx b/xmloff/source/text/XMLTextHeaderFooterContext.cxx
index 9fcd63290e10..de74248f787b 100644
--- a/xmloff/source/text/XMLTextHeaderFooterContext.cxx
+++ b/xmloff/source/text/XMLTextHeaderFooterContext.cxx
@@ -30,7 +30,7 @@
#include <com/sun/star/text/XText.hpp>
#include <com/sun/star/text/XRelativeTextContentRemove.hpp>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "XMLTextHeaderFooterContext.hxx"
#ifndef _XMLOFF_TEXTTABLECONTEXT_HXX_
#include <xmloff/XMLTextTableContext.hxx>
diff --git a/xmloff/source/text/XMLTextListAutoStylePool.cxx b/xmloff/source/text/XMLTextListAutoStylePool.cxx
index ce9d48e2ec87..29d14258fd60 100644
--- a/xmloff/source/text/XMLTextListAutoStylePool.cxx
+++ b/xmloff/source/text/XMLTextListAutoStylePool.cxx
@@ -34,7 +34,7 @@
#include <com/sun/star/container/XIndexReplace.hpp>
#include <rtl/ustrbuf.hxx>
#include <xmloff/xmlnume.hxx>
-#include "XMLTextListAutoStylePool.hxx"
+#include "xmloff/XMLTextListAutoStylePool.hxx"
#include <xmloff/xmlexp.hxx>
using ::rtl::OUString;
@@ -185,7 +185,15 @@ XMLTextListAutoStylePool::XMLTextListAutoStylePool( SvXMLExport& rExp ) :
XMLTextListAutoStylePool::~XMLTextListAutoStylePool()
{
+ // The XMLTextListAutoStylePoolEntry_Impl object in the pool need delete explicitly in dtor.
+ ULONG nCount = pPool->Count();
+ while ( nCount-- )
+ delete pPool->Remove(nCount);
delete pPool;
+
+ nCount = pNames->Count();
+ while ( nCount-- )
+ delete pNames->Remove(nCount);
delete pNames;
}
diff --git a/xmloff/source/text/XMLTextListBlockContext.cxx b/xmloff/source/text/XMLTextListBlockContext.cxx
index fd2cb58b257f..25b0ba3078ea 100644
--- a/xmloff/source/text/XMLTextListBlockContext.cxx
+++ b/xmloff/source/text/XMLTextListBlockContext.cxx
@@ -35,7 +35,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmlnumi.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "XMLTextListItemContext.hxx"
#include "XMLTextListBlockContext.hxx"
diff --git a/xmloff/source/text/XMLTextListItemContext.cxx b/xmloff/source/text/XMLTextListItemContext.cxx
index b9a6dc1915e5..d8effc0180de 100644
--- a/xmloff/source/text/XMLTextListItemContext.cxx
+++ b/xmloff/source/text/XMLTextListItemContext.cxx
@@ -30,7 +30,7 @@
#include <tools/debug.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "txtparai.hxx"
#include "txtlists.hxx"
diff --git a/xmloff/source/text/XMLTextMarkImportContext.cxx b/xmloff/source/text/XMLTextMarkImportContext.cxx
index 74a6e1943949..e9db515955c1 100644
--- a/xmloff/source/text/XMLTextMarkImportContext.cxx
+++ b/xmloff/source/text/XMLTextMarkImportContext.cxx
@@ -38,8 +38,8 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/odffields.hxx>
-#include "xmlnmspe.hxx"
#include <com/sun/star/xml/sax/XAttributeList.hpp>
#include <com/sun/star/text/XTextContent.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
diff --git a/xmloff/source/text/XMLTextMasterPageContext.cxx b/xmloff/source/text/XMLTextMasterPageContext.cxx
index fc18e17fefd3..ba097f542098 100644
--- a/xmloff/source/text/XMLTextMasterPageContext.cxx
+++ b/xmloff/source/text/XMLTextMasterPageContext.cxx
@@ -32,7 +32,7 @@
#include <com/sun/star/style/PageStyleLayout.hpp>
#include <com/sun/star/beans/XMultiPropertyStates.hpp>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/XMLTextMasterPageContext.hxx>
#include "XMLTextHeaderFooterContext.hxx"
diff --git a/xmloff/source/text/XMLTextMasterPageExport.cxx b/xmloff/source/text/XMLTextMasterPageExport.cxx
index fba75ca74e1a..dbffabc3d920 100644
--- a/xmloff/source/text/XMLTextMasterPageExport.cxx
+++ b/xmloff/source/text/XMLTextMasterPageExport.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include <tools/debug.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <com/sun/star/text/XText.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
diff --git a/xmloff/source/text/XMLTextMasterStylesContext.cxx b/xmloff/source/text/XMLTextMasterStylesContext.cxx
index f66f5df75d37..38428dabb8d1 100644
--- a/xmloff/source/text/XMLTextMasterStylesContext.cxx
+++ b/xmloff/source/text/XMLTextMasterStylesContext.cxx
@@ -31,7 +31,7 @@
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/text/XMLTextNumRuleInfo.cxx b/xmloff/source/text/XMLTextNumRuleInfo.cxx
index 482d94d05889..cbb0d976a836 100644
--- a/xmloff/source/text/XMLTextNumRuleInfo.cxx
+++ b/xmloff/source/text/XMLTextNumRuleInfo.cxx
@@ -36,7 +36,7 @@
#include <com/sun/star/container/XNamed.hpp>
#include "XMLTextNumRuleInfo.hxx"
// --> OD 2008-04-25 #refactorlists#
-#include "XMLTextListAutoStylePool.hxx"
+#include "xmloff/XMLTextListAutoStylePool.hxx"
// <--
using ::rtl::OUString;
diff --git a/xmloff/source/text/XMLTextShapeImportHelper.cxx b/xmloff/source/text/XMLTextShapeImportHelper.cxx
index e398effbf44c..3c5df81cb597 100644
--- a/xmloff/source/text/XMLTextShapeImportHelper.cxx
+++ b/xmloff/source/text/XMLTextShapeImportHelper.cxx
@@ -41,7 +41,7 @@
#include "XMLAnchorTypePropHdl.hxx"
#include <com/sun/star/drawing/XDrawPageSupplier.hpp>
#include <com/sun/star/drawing/XShapes.hpp>
-#include "XMLTextShapeImportHelper.hxx"
+#include "xmloff/XMLTextShapeImportHelper.hxx"
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
diff --git a/xmloff/source/text/XMLTextShapeStyleContext.cxx b/xmloff/source/text/XMLTextShapeStyleContext.cxx
index baff019aa8fb..85d342ba5693 100644
--- a/xmloff/source/text/XMLTextShapeStyleContext.cxx
+++ b/xmloff/source/text/XMLTextShapeStyleContext.cxx
@@ -31,7 +31,7 @@
#ifndef _COM_SUN_STAR_DOCUMENT_XEVENTSSUPPLIER_HPP
#include <com/sun/star/document/XEventsSupplier.hpp>
#endif
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "XMLTextPropertySetContext.hxx"
#include <xmloff/xmlimp.hxx>
diff --git a/xmloff/source/text/XMLTrackedChangesImportContext.cxx b/xmloff/source/text/XMLTrackedChangesImportContext.cxx
index ed207fed6c37..9fc143bf4330 100644
--- a/xmloff/source/text/XMLTrackedChangesImportContext.cxx
+++ b/xmloff/source/text/XMLTrackedChangesImportContext.cxx
@@ -32,7 +32,7 @@
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/uno/Sequence.h>
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/source/text/makefile.mk b/xmloff/source/text/makefile.mk
deleted file mode 100644
index 658de220445f..000000000000
--- a/xmloff/source/text/makefile.mk
+++ /dev/null
@@ -1,127 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=xmloff
-TARGET=text
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-
-SLOFILES = \
- $(SLO)$/txtdrope.obj \
- $(SLO)$/txtdropi.obj \
- $(SLO)$/txtexppr.obj \
- $(SLO)$/txtflde.obj \
- $(SLO)$/txtfldi.obj \
- $(SLO)$/txtftne.obj \
- $(SLO)$/txtimp.obj \
- $(SLO)$/txtimppr.obj \
- $(SLO)$/txtlists.obj \
- $(SLO)$/txtparae.obj \
- $(SLO)$/txtparai.obj \
- $(SLO)$/txtprhdl.obj \
- $(SLO)$/txtprmap.obj \
- $(SLO)$/txtsecte.obj \
- $(SLO)$/txtstyle.obj \
- $(SLO)$/txtstyli.obj \
- $(SLO)$/txtvfldi.obj \
- $(SLO)$/XMLAutoMarkFileContext.obj \
- $(SLO)$/XMLAutoTextEventExport.obj \
- $(SLO)$/XMLAutoTextEventImport.obj \
- $(SLO)$/XMLAutoTextContainerEventImport.obj \
- $(SLO)$/XMLChangedRegionImportContext.obj \
- $(SLO)$/XMLChangeElementImportContext.obj \
- $(SLO)$/XMLChangeInfoContext.obj \
- $(SLO)$/XMLFootnoteBodyImportContext.obj \
- $(SLO)$/XMLFootnoteConfigurationImportContext.obj \
- $(SLO)$/XMLFootnoteImportContext.obj \
- $(SLO)$/XMLIndexAlphabeticalSourceContext.obj \
- $(SLO)$/XMLIndexBodyContext.obj \
- $(SLO)$/XMLIndexBibliographyConfigurationContext.obj \
- $(SLO)$/XMLIndexBibliographyEntryContext.obj \
- $(SLO)$/XMLIndexBibliographySourceContext.obj \
- $(SLO)$/XMLIndexChapterInfoEntryContext.obj \
- $(SLO)$/XMLIndexIllustrationSourceContext.obj \
- $(SLO)$/XMLIndexMarkExport.obj \
- $(SLO)$/XMLIndexObjectSourceContext.obj \
- $(SLO)$/XMLIndexSimpleEntryContext.obj \
- $(SLO)$/XMLIndexSpanEntryContext.obj \
- $(SLO)$/XMLIndexSourceBaseContext.obj \
- $(SLO)$/XMLIndexTOCContext.obj \
- $(SLO)$/XMLIndexTOCSourceContext.obj \
- $(SLO)$/XMLIndexTOCStylesContext.obj \
- $(SLO)$/XMLIndexTableSourceContext.obj \
- $(SLO)$/XMLIndexTabStopEntryContext.obj \
- $(SLO)$/XMLIndexTemplateContext.obj \
- $(SLO)$/XMLIndexTitleTemplateContext.obj \
- $(SLO)$/XMLIndexUserSourceContext.obj \
- $(SLO)$/XMLLineNumberingExport.obj \
- $(SLO)$/XMLLineNumberingImportContext.obj \
- $(SLO)$/XMLLineNumberingSeparatorImportContext.obj \
- $(SLO)$/XMLPropertyBackpatcher.obj \
- $(SLO)$/XMLRedlineExport.obj \
- $(SLO)$/XMLSectionExport.obj \
- $(SLO)$/XMLSectionFootnoteConfigExport.obj \
- $(SLO)$/XMLSectionFootnoteConfigImport.obj \
- $(SLO)$/XMLSectionImportContext.obj \
- $(SLO)$/XMLSectionSourceDDEImportContext.obj \
- $(SLO)$/XMLSectionSourceImportContext.obj \
- $(SLO)$/XMLTextCharStyleNamesElementExport.obj \
- $(SLO)$/XMLTextColumnsContext.obj \
- $(SLO)$/XMLTextColumnsExport.obj \
- $(SLO)$/XMLTextFrameContext.obj \
- $(SLO)$/XMLTextFrameHyperlinkContext.obj \
- $(SLO)$/XMLTextHeaderFooterContext.obj \
- $(SLO)$/XMLTextListAutoStylePool.obj \
- $(SLO)$/XMLTextListBlockContext.obj \
- $(SLO)$/XMLTextListItemContext.obj \
- $(SLO)$/XMLTextMarkImportContext.obj \
- $(SLO)$/XMLTextMasterPageContext.obj \
- $(SLO)$/XMLTextMasterPageExport.obj \
- $(SLO)$/XMLTextMasterStylesContext.obj \
- $(SLO)$/XMLTextNumRuleInfo.obj \
- $(SLO)$/XMLTextPropertySetContext.obj \
- $(SLO)$/XMLTextShapeImportHelper.obj \
- $(SLO)$/XMLTextShapeStyleContext.obj \
- $(SLO)$/XMLTextTableContext.obj \
- $(SLO)$/XMLChangeImportContext.obj \
- $(SLO)$/XMLStringBufferImportContext.obj \
- $(SLO)$/XMLTrackedChangesImportContext.obj \
- $(SLO)$/XMLCalculationSettingsContext.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/xmloff/source/text/txtdrope.cxx b/xmloff/source/text/txtdrope.cxx
index 88d633317afd..1c31ad94dd1d 100644
--- a/xmloff/source/text/txtdrope.cxx
+++ b/xmloff/source/text/txtdrope.cxx
@@ -33,7 +33,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmluconv.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "txtdrope.hxx"
using namespace ::com::sun::star;
diff --git a/xmloff/source/text/txtdropi.cxx b/xmloff/source/text/txtdropi.cxx
index 759401f637ff..1968a7e7b1a0 100644
--- a/xmloff/source/text/txtdropi.cxx
+++ b/xmloff/source/text/txtdropi.cxx
@@ -32,7 +32,7 @@
#include <xmloff/xmltkmap.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmltoken.hxx>
diff --git a/xmloff/source/text/txtexppr.cxx b/xmloff/source/text/txtexppr.cxx
index 07f0bcb52576..7b3c7e828683 100644
--- a/xmloff/source/text/txtexppr.cxx
+++ b/xmloff/source/text/txtexppr.cxx
@@ -32,18 +32,10 @@
#include <com/sun/star/table/BorderLine.hpp>
#include <com/sun/star/text/SizeType.hpp>
#include <com/sun/star/text/WrapTextMode.hpp>
-#ifndef _COM_SUN_STAR_TEXT_TEXTCONTENTANCHORTYPE_HPP
#include <com/sun/star/text/TextContentAnchorType.hpp>
-#endif
-#ifndef _COM_SUN_STAR_AWT_FONTFAMILY_HPP
#include <com/sun/star/awt/FontFamily.hpp>
-#endif
-#ifndef _COM_SUN_STAR_AWT_FONTPITCH_HPP
#include <com/sun/star/awt/FontPitch.hpp>
-#endif
-#ifndef _COM_SUN_STAR_AWT_FONTUNDERLINE_HPP
#include <com/sun/star/awt/FontUnderline.hpp>
-#endif
#include <com/sun/star/text/XChapterNumberingSupplier.hpp>
#include "txtexppr.hxx"
#include <xmloff/xmlexp.hxx>
diff --git a/xmloff/source/text/txtexppr.hxx b/xmloff/source/text/txtexppr.hxx
index a45057db5a5e..583727713fbf 100644
--- a/xmloff/source/text/txtexppr.hxx
+++ b/xmloff/source/text/txtexppr.hxx
@@ -30,7 +30,7 @@
#include <xmloff/xmlexppr.hxx>
#include "txtdrope.hxx"
-#include "xmltabe.hxx"
+#include "xmloff/xmltabe.hxx"
#include "XMLTextColumnsExport.hxx"
#ifndef _XMLOFF_XMLBACKGROUNDIMAGEEXPORT_HXX
#include "XMLBackgroundImageExport.hxx"
diff --git a/xmloff/source/text/txtflde.cxx b/xmloff/source/text/txtflde.cxx
index 694d4599f4bb..173c2f780162 100644
--- a/xmloff/source/text/txtflde.cxx
+++ b/xmloff/source/text/txtflde.cxx
@@ -39,7 +39,7 @@
#include <xmloff/xmlement.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlnume.hxx>
-#include "numehelp.hxx"
+#include "xmloff/numehelp.hxx"
#include <xmloff/families.hxx>
#include <xmloff/XMLEventExport.hxx>
diff --git a/xmloff/source/text/txtfldi.cxx b/xmloff/source/text/txtfldi.cxx
index d15e568b56f7..c269ad97455f 100644
--- a/xmloff/source/text/txtfldi.cxx
+++ b/xmloff/source/text/txtfldi.cxx
@@ -38,7 +38,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmlnumi.hxx>
#include <xmloff/txtimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/text/txtftne.cxx b/xmloff/source/text/txtftne.cxx
index 9940046b81c1..df9a03f25fdd 100644
--- a/xmloff/source/text/txtftne.cxx
+++ b/xmloff/source/text/txtftne.cxx
@@ -51,7 +51,7 @@
#include <com/sun/star/text/FootnoteNumbering.hpp>
#include <com/sun/star/container/XNameReplace.hpp>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlnumfe.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx
index 87710d310d76..d3591ece238c 100644
--- a/xmloff/source/text/txtimp.cxx
+++ b/xmloff/source/text/txtimp.cxx
@@ -58,7 +58,7 @@
#include <com/sun/star/ucb/XAnyCompareFactory.hpp>
#include <com/sun/star/container/XNamed.hpp>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/txtstyli.hxx>
#include <xmloff/families.hxx>
#include <xmloff/xmlnumfi.hxx>
@@ -69,10 +69,10 @@
#include "txtparai.hxx"
#include <xmloff/txtimp.hxx>
#include <xmloff/txtprmap.hxx>
-#include "txtimppr.hxx"
+#include "xmloff/txtimppr.hxx"
#include <xmloff/xmlimp.hxx>
#include "txtvfldi.hxx"
-#include "i18nmap.hxx"
+#include "xmloff/i18nmap.hxx"
#include "XMLTextListItemContext.hxx"
#include "XMLTextListBlockContext.hxx"
#include "XMLTextFrameContext.hxx"
diff --git a/xmloff/source/text/txtimppr.cxx b/xmloff/source/text/txtimppr.cxx
index 4a338c6cf832..dceac7a26890 100644
--- a/xmloff/source/text/txtimppr.cxx
+++ b/xmloff/source/text/txtimppr.cxx
@@ -37,7 +37,7 @@
#include <xmloff/XMLFontStylesContext.hxx>
#include <xmloff/txtprmap.hxx>
#include <xmloff/xmlimp.hxx>
-#include "txtimppr.hxx"
+#include "xmloff/txtimppr.hxx"
#define XML_LINE_LEFT 0
#define XML_LINE_RIGHT 1
diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx
index 4b6eba9a5f43..89b5c5c1ee48 100644
--- a/xmloff/source/text/txtparae.cxx
+++ b/xmloff/source/text/txtparae.cxx
@@ -90,7 +90,7 @@
#include <com/sun/star/text/XEndnotesSupplier.hpp>
#include <com/sun/star/drawing/XControlShape.hpp>
#include <com/sun/star/util/DateTime.hpp>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmlaustp.hxx>
#include <xmloff/families.hxx>
#include "txtexppr.hxx"
@@ -106,7 +106,7 @@
#include <xmloff/txtprmap.hxx>
#include "XMLImageMapExport.hxx"
#include "XMLTextNumRuleInfo.hxx"
-#include "XMLTextListAutoStylePool.hxx"
+#include "xmloff/XMLTextListAutoStylePool.hxx"
#include <xmloff/txtparae.hxx>
#include "XMLSectionExport.hxx"
#include "XMLIndexMarkExport.hxx"
diff --git a/xmloff/source/text/txtparai.cxx b/xmloff/source/text/txtparai.cxx
index 566c94ed166a..697d3e6cd069 100644
--- a/xmloff/source/text/txtparai.cxx
+++ b/xmloff/source/text/txtparai.cxx
@@ -49,7 +49,7 @@
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/txtimp.hxx>
#include "txtparai.hxx"
#include "txtfldi.hxx"
diff --git a/xmloff/source/text/txtprmap.cxx b/xmloff/source/text/txtprmap.cxx
index a14b64e05d90..fbc53ef3e16e 100644
--- a/xmloff/source/text/txtprmap.cxx
+++ b/xmloff/source/text/txtprmap.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include <tools/debug.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#ifndef _XMLOFF_TXTPRHDL_HXX
#include "txtprhdl.hxx"
diff --git a/xmloff/source/text/txtsecte.cxx b/xmloff/source/text/txtsecte.cxx
index 74e6fc706f6b..b18d3fab086d 100644
--- a/xmloff/source/text/txtsecte.cxx
+++ b/xmloff/source/text/txtsecte.cxx
@@ -50,7 +50,7 @@
#include <com/sun/star/text/SectionFileLink.hpp>
#include <com/sun/star/container/XNamed.hpp>
#include <com/sun/star/text/XDocumentIndex.hpp>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/families.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/text/txtstyle.cxx b/xmloff/source/text/txtstyle.cxx
index eb4e59f2dd16..b771a3ea17a2 100644
--- a/xmloff/source/text/txtstyle.cxx
+++ b/xmloff/source/text/txtstyle.cxx
@@ -28,47 +28,21 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#ifndef _TOOLS_DEBUG_HXX
-//#include <tools/debug.hxx>
-#endif
#include <com/sun/star/style/ParagraphStyleCategory.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/XPropertySetInfo.hpp>
#include <com/sun/star/beans/XPropertyState.hpp>
#include <com/sun/star/style/XStyle.hpp>
-
-
#include <xmloff/xmltoken.hxx>
-
-#ifndef _XMLOFF_PROPERTYSETMAPPER_HXX
-//#include <xmloff/xmlprmap.hxx>
-#endif
-#ifndef _XMLOFF_XMLSMSPE_HXX
-#include "xmlnmspe.hxx"
-#endif
-#ifndef _XMLOFF_FAMILIES_HXX
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/families.hxx>
-#endif
-#ifndef _XMLOFF_TXTPRMAP_HXX
-//#include <xmloff/txtprmap.hxx>
-#endif
-#ifndef _XMLOFF_TXTPARAE_HXX
#include <xmloff/txtparae.hxx>
-#endif
#include <xmloff/xmlnume.hxx>
#include <xmloff/xmlexp.hxx>
-#ifndef _XMLOFF_XMLSECTIONEXPORT_HXX
#include "XMLSectionExport.hxx"
-#endif
#include "XMLLineNumberingExport.hxx"
#include "txtexppr.hxx"
-#ifndef _XMLOFF_TXTPRMAP_HXX
#include <xmloff/txtprmap.hxx>
-#endif
-
-#ifndef _XMLOFF_STYLEEXP_HXX
-//#include <xmloff/styleexp.hxx>
-#endif
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
diff --git a/xmloff/source/text/txtstyli.cxx b/xmloff/source/text/txtstyli.cxx
index 0be1b25a42be..601bef9cdf63 100644
--- a/xmloff/source/text/txtstyli.cxx
+++ b/xmloff/source/text/txtstyli.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include "XMLTextPropertySetContext.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "xmloff/XMLEventsImportContext.hxx"
#include "xmloff/attrlist.hxx"
#include "xmloff/families.hxx"
diff --git a/xmloff/source/text/txtvfldi.cxx b/xmloff/source/text/txtvfldi.cxx
index 0b27e0ce8dcd..a2cc3cbc4bfd 100644
--- a/xmloff/source/text/txtvfldi.cxx
+++ b/xmloff/source/text/txtvfldi.cxx
@@ -36,9 +36,9 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/txtimp.hxx>
#include <xmloff/xmlnumi.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
-#include "i18nmap.hxx"
+#include "xmloff/i18nmap.hxx"
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlement.hxx>
diff --git a/xmloff/source/transform/ChartOASISTContext.cxx b/xmloff/source/transform/ChartOASISTContext.cxx
index a294ee6e9388..26a07e1920d4 100644
--- a/xmloff/source/transform/ChartOASISTContext.cxx
+++ b/xmloff/source/transform/ChartOASISTContext.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include "ChartOASISTContext.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "ActionMapTypesOASIS.hxx"
#include "AttrTransformerAction.hxx"
#include "TransformerActions.hxx"
diff --git a/xmloff/source/transform/ChartOOoTContext.cxx b/xmloff/source/transform/ChartOOoTContext.cxx
index 832cd1e216a1..5e5420002d7d 100644
--- a/xmloff/source/transform/ChartOOoTContext.cxx
+++ b/xmloff/source/transform/ChartOOoTContext.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include "ChartOOoTContext.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#ifndef _XMLOFF_ACTIONMAPTYPESOOo_HXX
#include "ActionMapTypesOOo.hxx"
#endif
diff --git a/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx b/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx
index fa33d0c45b54..d1fea38db7f8 100644
--- a/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx
+++ b/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx
@@ -30,7 +30,7 @@
#include "ChartPlotAreaOASISTContext.hxx"
#include "TransformerBase.hxx"
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "DeepTContext.hxx"
#include "ActionMapTypesOASIS.hxx"
diff --git a/xmloff/source/transform/ChartPlotAreaOOoTContext.cxx b/xmloff/source/transform/ChartPlotAreaOOoTContext.cxx
index b920d3fd7868..19c4fa580e3a 100644
--- a/xmloff/source/transform/ChartPlotAreaOOoTContext.cxx
+++ b/xmloff/source/transform/ChartPlotAreaOOoTContext.cxx
@@ -30,7 +30,7 @@
#include "ChartPlotAreaOOoTContext.hxx"
#include "TransformerBase.hxx"
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "DeepTContext.hxx"
#include "ActionMapTypesOOo.hxx"
diff --git a/xmloff/source/transform/ControlOASISTContext.cxx b/xmloff/source/transform/ControlOASISTContext.cxx
index 8cf8e0df7815..4b87cb4fe80b 100644
--- a/xmloff/source/transform/ControlOASISTContext.cxx
+++ b/xmloff/source/transform/ControlOASISTContext.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include "ActionMapTypesOASIS.hxx"
#include "AttrTransformerAction.hxx"
diff --git a/xmloff/source/transform/ControlOOoTContext.cxx b/xmloff/source/transform/ControlOOoTContext.cxx
index 94d6ae1862b6..2317cf52cf50 100644
--- a/xmloff/source/transform/ControlOOoTContext.cxx
+++ b/xmloff/source/transform/ControlOOoTContext.cxx
@@ -30,7 +30,7 @@
#include "ControlOOoTContext.hxx"
#include "IgnoreTContext.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "ActionMapTypesOOo.hxx"
#include "ElemTransformerAction.hxx"
#include "TransformerActions.hxx"
diff --git a/xmloff/source/transform/DlgOASISTContext.cxx b/xmloff/source/transform/DlgOASISTContext.cxx
index 08d6682a7491..bfe62162847a 100644
--- a/xmloff/source/transform/DlgOASISTContext.cxx
+++ b/xmloff/source/transform/DlgOASISTContext.cxx
@@ -29,7 +29,7 @@
#include "precompiled_xmloff.hxx"
#include "DlgOASISTContext.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "ActionMapTypesOASIS.hxx"
#include "AttrTransformerAction.hxx"
#include "TransformerActions.hxx"
diff --git a/xmloff/source/transform/DocumentTContext.cxx b/xmloff/source/transform/DocumentTContext.cxx
index 33b5b2c5dd24..5e4d749826ac 100644
--- a/xmloff/source/transform/DocumentTContext.cxx
+++ b/xmloff/source/transform/DocumentTContext.cxx
@@ -34,7 +34,7 @@
#include <com/sun/star/beans/XPropertySetInfo.hpp>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#ifndef _XMLOFF_TRANSFOERMERBASE_HXX
#include "TransformerBase.hxx"
diff --git a/xmloff/source/transform/EventMap.cxx b/xmloff/source/transform/EventMap.cxx
index c8bb7694bc6b..6c18e8e559ba 100644
--- a/xmloff/source/transform/EventMap.cxx
+++ b/xmloff/source/transform/EventMap.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include "EventMap.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
XMLTransformerEventMapEntry aTransformerEventMap[] =
diff --git a/xmloff/source/transform/EventOASISTContext.cxx b/xmloff/source/transform/EventOASISTContext.cxx
index cee3f19f4d29..24488b7694be 100644
--- a/xmloff/source/transform/EventOASISTContext.cxx
+++ b/xmloff/source/transform/EventOASISTContext.cxx
@@ -30,7 +30,7 @@
#include "EventOASISTContext.hxx"
#include "EventMap.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "ActionMapTypesOASIS.hxx"
#include "AttrTransformerAction.hxx"
#include "TransformerActions.hxx"
diff --git a/xmloff/source/transform/EventOOoTContext.cxx b/xmloff/source/transform/EventOOoTContext.cxx
index 8f90bc66e475..3b63935817c8 100644
--- a/xmloff/source/transform/EventOOoTContext.cxx
+++ b/xmloff/source/transform/EventOOoTContext.cxx
@@ -30,7 +30,7 @@
#include "EventOOoTContext.hxx"
#include "EventMap.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#ifndef _XMLOFF_ACTIONMAPTYPESOOo_HXX
#include "ActionMapTypesOOo.hxx"
#endif
diff --git a/xmloff/source/transform/FormPropOASISTContext.cxx b/xmloff/source/transform/FormPropOASISTContext.cxx
index 57ec2b33cf20..518618f4059d 100644
--- a/xmloff/source/transform/FormPropOASISTContext.cxx
+++ b/xmloff/source/transform/FormPropOASISTContext.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include "ActionMapTypesOASIS.hxx"
#include "AttrTransformerAction.hxx"
diff --git a/xmloff/source/transform/FormPropOOoTContext.cxx b/xmloff/source/transform/FormPropOOoTContext.cxx
index bbe70d7789de..54682b3e0c03 100644
--- a/xmloff/source/transform/FormPropOOoTContext.cxx
+++ b/xmloff/source/transform/FormPropOOoTContext.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include "IgnoreTContext.hxx"
#ifndef _XMLOFF_ACTIONMAPTYPESOOo_HXX
diff --git a/xmloff/source/transform/FrameOASISTContext.cxx b/xmloff/source/transform/FrameOASISTContext.cxx
index 084af4ab595c..3c9439111aec 100644
--- a/xmloff/source/transform/FrameOASISTContext.cxx
+++ b/xmloff/source/transform/FrameOASISTContext.cxx
@@ -30,7 +30,7 @@
#include "FrameOASISTContext.hxx"
#include "IgnoreTContext.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "ActionMapTypesOASIS.hxx"
#include "ElemTransformerAction.hxx"
#include "TransformerActions.hxx"
diff --git a/xmloff/source/transform/FrameOOoTContext.cxx b/xmloff/source/transform/FrameOOoTContext.cxx
index bda9526e366d..b36d0c29f258 100644
--- a/xmloff/source/transform/FrameOOoTContext.cxx
+++ b/xmloff/source/transform/FrameOOoTContext.cxx
@@ -30,7 +30,7 @@
#include "FrameOOoTContext.hxx"
#include "IgnoreTContext.hxx"
#include "MutableAttrList.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include "ActionMapTypesOOo.hxx"
#include "AttrTransformerAction.hxx"
diff --git a/xmloff/source/transform/MergeElemTContext.cxx b/xmloff/source/transform/MergeElemTContext.cxx
index 337bce70e32a..a88194952499 100644
--- a/xmloff/source/transform/MergeElemTContext.cxx
+++ b/xmloff/source/transform/MergeElemTContext.cxx
@@ -36,7 +36,7 @@
#include "AttrTransformerAction.hxx"
#include "ElemTransformerAction.hxx"
#include "IgnoreTContext.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
using ::rtl::OUString;
using namespace ::com::sun::star::uno;
diff --git a/xmloff/source/transform/MetaTContext.cxx b/xmloff/source/transform/MetaTContext.cxx
index 3ee3d6f082d6..e05312cb3413 100644
--- a/xmloff/source/transform/MetaTContext.cxx
+++ b/xmloff/source/transform/MetaTContext.cxx
@@ -33,7 +33,7 @@
#include <com/sun/star/xml/sax/XAttributeList.hpp>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#ifndef _XMLOFF_TRANSFOERMERBASE_HXX
#include "TransformerBase.hxx"
diff --git a/xmloff/source/transform/MetaTContext.hxx b/xmloff/source/transform/MetaTContext.hxx
index b2a0317175ed..5af650cb50b7 100644
--- a/xmloff/source/transform/MetaTContext.hxx
+++ b/xmloff/source/transform/MetaTContext.hxx
@@ -29,7 +29,7 @@
#define _XMLOFF_METATCONTEXT_HXX
#include <rtl/ref.hxx>
-#include "functional.hxx"
+#include "xmloff/functional.hxx"
#include <map>
diff --git a/xmloff/source/transform/NotesTContext.cxx b/xmloff/source/transform/NotesTContext.cxx
index 31457e3ce229..31ccbdf48c5b 100644
--- a/xmloff/source/transform/NotesTContext.cxx
+++ b/xmloff/source/transform/NotesTContext.cxx
@@ -33,7 +33,7 @@
#include <com/sun/star/xml/sax/XAttributeList.hpp>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#ifndef _XMLOFF_TRANSFOERMERBASE_HXX
#include "TransformerBase.hxx"
diff --git a/xmloff/source/transform/OOo2Oasis.cxx b/xmloff/source/transform/OOo2Oasis.cxx
index 4afa5a40c2ca..103202c48866 100644
--- a/xmloff/source/transform/OOo2Oasis.cxx
+++ b/xmloff/source/transform/OOo2Oasis.cxx
@@ -31,7 +31,7 @@
#include <rtl/ustrbuf.hxx>
#include <comphelper/processfactory.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "MutableAttrList.hxx"
#include "DeepTContext.hxx"
diff --git a/xmloff/source/transform/Oasis2OOo.cxx b/xmloff/source/transform/Oasis2OOo.cxx
index 5292c931a609..4f0bd1303afb 100644
--- a/xmloff/source/transform/Oasis2OOo.cxx
+++ b/xmloff/source/transform/Oasis2OOo.cxx
@@ -31,7 +31,7 @@
#include <rtl/uuid.h>
#include <rtl/ustrbuf.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/xmltoken.hxx>
#include "DeepTContext.hxx"
#include "MetaTContext.hxx"
diff --git a/xmloff/source/transform/PropertyActionsOASIS.cxx b/xmloff/source/transform/PropertyActionsOASIS.cxx
index e544836a043c..3abafaa5a13e 100644
--- a/xmloff/source/transform/PropertyActionsOASIS.cxx
+++ b/xmloff/source/transform/PropertyActionsOASIS.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "PropType.hxx"
#include "FamilyType.hxx"
#include "PropertyActionsOASIS.hxx"
diff --git a/xmloff/source/transform/PropertyActionsOOo.cxx b/xmloff/source/transform/PropertyActionsOOo.cxx
index bb3e66ff13b6..bc91561de206 100644
--- a/xmloff/source/transform/PropertyActionsOOo.cxx
+++ b/xmloff/source/transform/PropertyActionsOOo.cxx
@@ -27,7 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "PropType.hxx"
#include "PropertyActionsOOo.hxx"
diff --git a/xmloff/source/transform/StyleOASISTContext.cxx b/xmloff/source/transform/StyleOASISTContext.cxx
index 6c0aba3bb798..ca444e176a0b 100644
--- a/xmloff/source/transform/StyleOASISTContext.cxx
+++ b/xmloff/source/transform/StyleOASISTContext.cxx
@@ -34,7 +34,7 @@
#include <rtl/ustrbuf.hxx>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "PropType.hxx"
#include "DeepTContext.hxx"
#include "ProcAttrTContext.hxx"
diff --git a/xmloff/source/transform/StyleOOoTContext.cxx b/xmloff/source/transform/StyleOOoTContext.cxx
index d3a5af703812..dc0cfb75a100 100644
--- a/xmloff/source/transform/StyleOOoTContext.cxx
+++ b/xmloff/source/transform/StyleOOoTContext.cxx
@@ -33,7 +33,7 @@
#include <com/sun/star/xml/sax/XAttributeList.hpp>
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "PropType.hxx"
#include "DeepTContext.hxx"
#include "RenameElemTContext.hxx"
diff --git a/xmloff/source/transform/TransformerBase.cxx b/xmloff/source/transform/TransformerBase.cxx
index 9a743f7e9067..61bb73120da6 100644
--- a/xmloff/source/transform/TransformerBase.cxx
+++ b/xmloff/source/transform/TransformerBase.cxx
@@ -33,7 +33,7 @@
#include <com/sun/star/i18n/UnicodeType.hpp>
#include <comphelper/processfactory.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include "IgnoreTContext.hxx"
#include "RenameElemTContext.hxx"
#include "ProcAttrTContext.hxx"
diff --git a/xmloff/source/transform/XMLFilterRegistration.cxx b/xmloff/source/transform/XMLFilterRegistration.cxx
index 50e14db40e5d..f201474015fc 100644
--- a/xmloff/source/transform/XMLFilterRegistration.cxx
+++ b/xmloff/source/transform/XMLFilterRegistration.cxx
@@ -141,12 +141,12 @@ extern "C"
{
#endif
-void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** )
+SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** )
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
+SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
void * pRet = NULL;
if( pServiceManager )
diff --git a/xmloff/source/transform/makefile.mk b/xmloff/source/transform/makefile.mk
deleted file mode 100644
index 031549fcb39b..000000000000
--- a/xmloff/source/transform/makefile.mk
+++ /dev/null
@@ -1,103 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := xmloff
-TARGET := xof
-LIBTARGET=NO
-ENABLE_EXCEPTIONS := TRUE
-
-.INCLUDE: settings.mk
-
-SHL1TARGET = $(TARGET)$(DLLPOSTFIX)
-SHL1OBJS = \
- $(SLO)$/ChartOASISTContext.obj \
- $(SLO)$/ChartOOoTContext.obj \
- $(SLO)$/ChartPlotAreaOASISTContext.obj \
- $(SLO)$/ChartPlotAreaOOoTContext.obj \
- $(SLO)$/ControlOASISTContext.obj \
- $(SLO)$/ControlOOoTContext.obj \
- $(SLO)$/CreateElemTContext.obj \
- $(SLO)$/DeepTContext.obj \
- $(SLO)$/DlgOASISTContext.obj \
- $(SLO)$/DocumentTContext.obj \
- $(SLO)$/EventMap.obj \
- $(SLO)$/EventOASISTContext.obj \
- $(SLO)$/EventOOoTContext.obj \
- $(SLO)$/FlatTContext.obj \
- $(SLO)$/FormPropOASISTContext.obj \
- $(SLO)$/FormPropOOoTContext.obj \
- $(SLO)$/FrameOASISTContext.obj \
- $(SLO)$/FrameOOoTContext.obj \
- $(SLO)$/IgnoreTContext.obj \
- $(SLO)$/MergeElemTContext.obj \
- $(SLO)$/MetaTContext.obj \
- $(SLO)$/MutableAttrList.obj \
- $(SLO)$/NotesTContext.obj \
- $(SLO)$/OOo2Oasis.obj \
- $(SLO)$/Oasis2OOo.obj \
- $(SLO)$/PersAttrListTContext.obj \
- $(SLO)$/PersMixedContentTContext.obj \
- $(SLO)$/ProcAddAttrTContext.obj \
- $(SLO)$/ProcAttrTContext.obj \
- $(SLO)$/PropertyActionsOASIS.obj \
- $(SLO)$/PropertyActionsOOo.obj \
- $(SLO)$/RenameElemTContext.obj \
- $(SLO)$/StyleOASISTContext.obj \
- $(SLO)$/StyleOOoTContext.obj \
- $(SLO)$/TransformerActions.obj \
- $(SLO)$/TransformerBase.obj \
- $(SLO)$/TransformerContext.obj \
- $(SLO)$/TransformerTokenMap.obj \
- $(SLO)$/XMLFilterRegistration.obj
-
-SHL1STDLIBS = \
- $(COMPHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(SALHELPERLIB) \
- $(SALLIB)
-.IF ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2"
- SHL1STDLIBS += -lxo$(DLLPOSTFIX)
-.ELSE
- SHL1STDLIBS += ixo.lib
-.ENDIF
-SHL1VERSIONMAP = $(SOLARENV)/src/component.map
-SHL1IMPLIB = i$(SHL1TARGET)
-DEF1NAME = $(SHL1TARGET)
-
-SLOFILES = $(SHL1OBJS)
-
-.INCLUDE: target.mk
-
-ALLTAR : $(MISC)/xof.component
-
-$(MISC)/xof.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- xof.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt xof.component
diff --git a/xmloff/source/xforms/SchemaContext.cxx b/xmloff/source/xforms/SchemaContext.cxx
index 3f418700f18f..14f12bc5df69 100644
--- a/xmloff/source/xforms/SchemaContext.cxx
+++ b/xmloff/source/xforms/SchemaContext.cxx
@@ -34,7 +34,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
-#include <xmlnmspe.hxx>
+#include <xmloff/xmlnmspe.hxx>
#include <xmloff/xmltkmap.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/xforms/SchemaRestrictionContext.cxx b/xmloff/source/xforms/SchemaRestrictionContext.cxx
index 5ae063347f68..0663aa2531f4 100644
--- a/xmloff/source/xforms/SchemaRestrictionContext.cxx
+++ b/xmloff/source/xforms/SchemaRestrictionContext.cxx
@@ -33,7 +33,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
-#include <xmlnmspe.hxx>
+#include <xmloff/xmlnmspe.hxx>
#include <xmloff/xmltkmap.hxx>
#include <xmloff/xmluconv.hxx>
#include <xmloff/xmlimp.hxx>
diff --git a/xmloff/source/xforms/SchemaSimpleTypeContext.cxx b/xmloff/source/xforms/SchemaSimpleTypeContext.cxx
index 504bba0a40c2..821dd768fbf9 100644
--- a/xmloff/source/xforms/SchemaSimpleTypeContext.cxx
+++ b/xmloff/source/xforms/SchemaSimpleTypeContext.cxx
@@ -33,7 +33,7 @@
#include "SchemaRestrictionContext.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
-#include <xmlnmspe.hxx>
+#include <xmloff/xmlnmspe.hxx>
#include <xmloff/xmltkmap.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/xforms/TokenContext.cxx b/xmloff/source/xforms/TokenContext.cxx
index eb0721beea18..d1310effeeb8 100644
--- a/xmloff/source/xforms/TokenContext.cxx
+++ b/xmloff/source/xforms/TokenContext.cxx
@@ -31,7 +31,7 @@
#include <xmloff/xmltkmap.hxx>
#include <xmloff/xmlimp.hxx>
#include <xmloff/nmspmap.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <tools/debug.hxx>
diff --git a/xmloff/source/xforms/XFormsBindContext.cxx b/xmloff/source/xforms/XFormsBindContext.cxx
index 281624dd45db..67bbf8f70b84 100644
--- a/xmloff/source/xforms/XFormsBindContext.cxx
+++ b/xmloff/source/xforms/XFormsBindContext.cxx
@@ -33,10 +33,10 @@
#include "xformsapi.hxx"
#include <xmloff/xmlimp.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmltkmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <com/sun/star/container/XNameContainer.hpp>
diff --git a/xmloff/source/xforms/XFormsInstanceContext.cxx b/xmloff/source/xforms/XFormsInstanceContext.cxx
index 2c1e67222cfa..06cabce7267f 100644
--- a/xmloff/source/xforms/XFormsInstanceContext.cxx
+++ b/xmloff/source/xforms/XFormsInstanceContext.cxx
@@ -41,10 +41,10 @@
#include <com/sun/star/xforms/XModel.hpp>
#include <tools/debug.hxx>
-#include <xmlnmspe.hxx>
+#include <xmloff/xmlnmspe.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlimp.hxx>
-#include <xmlerror.hxx>
+#include <xmloff/xmlerror.hxx>
#include <xmloff/nmspmap.hxx>
diff --git a/xmloff/source/xforms/XFormsModelContext.cxx b/xmloff/source/xforms/XFormsModelContext.cxx
index 4bb9e68d3eb0..074cbd7ddb8d 100644
--- a/xmloff/source/xforms/XFormsModelContext.cxx
+++ b/xmloff/source/xforms/XFormsModelContext.cxx
@@ -37,10 +37,10 @@
#include "xformsapi.hxx"
#include <xmloff/xmlimp.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/xml/dom/XDocument.hpp>
diff --git a/xmloff/source/xforms/XFormsSubmissionContext.cxx b/xmloff/source/xforms/XFormsSubmissionContext.cxx
index d0ac82626a55..7835cf5dc0a7 100644
--- a/xmloff/source/xforms/XFormsSubmissionContext.cxx
+++ b/xmloff/source/xforms/XFormsSubmissionContext.cxx
@@ -33,10 +33,10 @@
#include "xformsapi.hxx"
#include <xmloff/xmlimp.hxx>
-#include "xmlerror.hxx"
+#include "xmloff/xmlerror.hxx"
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmltkmap.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/xforms/makefile.mk b/xmloff/source/xforms/makefile.mk
deleted file mode 100644
index f1238a6036bb..000000000000
--- a/xmloff/source/xforms/makefile.mk
+++ /dev/null
@@ -1,58 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=xmloff
-TARGET=xforms
-AUTOSEG=true
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/xformsapi.obj \
- $(SLO)$/XFormsBindContext.obj \
- $(SLO)$/xformsimport.obj \
- $(SLO)$/XFormsModelContext.obj \
- $(SLO)$/XFormsInstanceContext.obj \
- $(SLO)$/XFormsSubmissionContext.obj \
- $(SLO)$/SchemaContext.obj \
- $(SLO)$/SchemaRestrictionContext.obj \
- $(SLO)$/SchemaSimpleTypeContext.obj \
- $(SLO)$/TokenContext.obj \
- $(SLO)$/xformsexport.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/xmloff/source/xforms/xformsapi.cxx b/xmloff/source/xforms/xformsapi.cxx
index 085418608359..794798c5366a 100644
--- a/xmloff/source/xforms/xformsapi.cxx
+++ b/xmloff/source/xforms/xformsapi.cxx
@@ -45,7 +45,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/nmspmap.hxx>
-#include <xmlnmspe.hxx>
+#include <xmloff/xmlnmspe.hxx>
#include <xmloff/xmltkmap.hxx>
using rtl::OUString;
diff --git a/xmloff/source/xforms/xformsexport.cxx b/xmloff/source/xforms/xformsexport.cxx
index 572b312505b0..3d90170f11f4 100644
--- a/xmloff/source/xforms/xformsexport.cxx
+++ b/xmloff/source/xforms/xformsexport.cxx
@@ -28,14 +28,14 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_xmloff.hxx"
-#include "xformsexport.hxx"
+#include "xmloff/xformsexport.hxx"
#include "XFormsModelExport.hxx"
#include "xformsapi.hxx"
#include <xmloff/xmlexp.hxx>
#include <xmloff/xmltoken.hxx>
-#include "xmlnmspe.hxx"
+#include "xmloff/xmlnmspe.hxx"
#include <xmloff/nmspmap.hxx>
#include "DomExport.hxx"
#include <xmloff/xmluconv.hxx>
diff --git a/xmloff/source/xforms/xformsimport.cxx b/xmloff/source/xforms/xformsimport.cxx
index 600b738b455a..84908444498e 100644
--- a/xmloff/source/xforms/xformsimport.cxx
+++ b/xmloff/source/xforms/xformsimport.cxx
@@ -31,7 +31,7 @@
#include "XFormsModelContext.hxx"
#include <vector>
#include <utility>
-#include "xformsimport.hxx"
+#include "xmloff/xformsimport.hxx"
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/form/binding/XValueBinding.hpp>
diff --git a/xmloff/util/makefile.mk b/xmloff/util/makefile.mk
deleted file mode 100644
index 857067985c50..000000000000
--- a/xmloff/util/makefile.mk
+++ /dev/null
@@ -1,96 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=xmloff
-TARGET=xo
-USE_DEFFILE=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
-
-# --- Allgemein ----------------------------------------------------
-.IF "$(L10N_framework)"==""
-LIB1TARGET= $(SLB)$/xo.lib
-LIB1FILES= \
- $(SLB)$/core.lib \
- $(SLB)$/meta.lib \
- $(SLB)$/script.lib \
- $(SLB)$/style.lib \
- $(SLB)$/text.lib \
- $(SLB)$/draw.lib \
- $(SLB)$/chart.lib \
- $(SLB)$/forms.lib \
- $(SLB)$/xforms.lib \
- $(SLB)$/table.lib
-
-# --- Shared-Library -----------------------------------------------
-
-SHL1TARGET= xo$(DLLPOSTFIX)
-SHL1IMPLIB= i$(TARGET)
-SHL1USE_EXPORTS=name
-
-SHL1STDLIBS= \
- $(TOOLSLIB) \
- $(I18NISOLANGLIB) \
- $(VOSLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB)\
- $(COMPHELPERLIB)\
- $(SVLLIB) \
- $(SALLIB) \
- $(UNOTOOLSLIB) \
- $(BASEGFXLIB)
-
-# SCO: the linker does know about weak symbols, but we can't ignore multiple defined symbols
-.IF "(OS)"=="SCO"
-SHL1STDLIBS+=-licg617mxp
-.ENDIF
-
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1LIBS= $(LIB1TARGET)
-
-# --- Def-File ---------------------------------------------------------
-
-DEF1NAME =$(SHL1TARGET)
-DEFLIB1NAME =xo
-DEF1DES =XML Office Lib
-
-# --- Targets ----------------------------------------------------------
-.ENDIF
-.INCLUDE : target.mk
-
-ALLTAR : $(MISC)/xo.component
-
-$(MISC)/xo.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- xo.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt xo.component
diff --git a/xmlscript/prj/build.lst b/xmlscript/prj/build.lst
index f3410c668633..388a59f134ff 100644
--- a/xmlscript/prj/build.lst
+++ b/xmlscript/prj/build.lst
@@ -1,4 +1,4 @@
-xt xmlscript : comphelper tools offapi NULL
+xt xmlscript : comphelper tools offapi LIBXSLT:libxslt NULL
xt xmlscript usr1 - all xt_mkout NULL
xt xmlscript\inc nmake - all xt_inc NULL
xt xmlscript\source\xml_helper nmake - all xt_xml_helper xt_inc NULL