summaryrefslogtreecommitdiff
path: root/framework/inc/xml
diff options
context:
space:
mode:
Diffstat (limited to 'framework/inc/xml')
-rw-r--r--framework/inc/xml/acceleratorconfigurationreader.hxx220
-rw-r--r--framework/inc/xml/acceleratorconfigurationwriter.hxx119
-rw-r--r--framework/inc/xml/eventsdocumenthandler.hxx188
-rw-r--r--framework/inc/xml/imagesdocumenthandler.hxx204
-rw-r--r--framework/inc/xml/menudocumenthandler.hxx319
-rw-r--r--framework/inc/xml/saxnamespacefilter.hxx105
-rw-r--r--framework/inc/xml/statusbardocumenthandler.hxx185
-rw-r--r--framework/inc/xml/toolboxconfigurationdefines.hxx112
-rw-r--r--framework/inc/xml/toolboxdocumenthandler.hxx214
-rw-r--r--framework/inc/xml/xmlnamespaces.hxx66
10 files changed, 1732 insertions, 0 deletions
diff --git a/framework/inc/xml/acceleratorconfigurationreader.hxx b/framework/inc/xml/acceleratorconfigurationreader.hxx
new file mode 100644
index 000000000000..745dea7ecee9
--- /dev/null
+++ b/framework/inc/xml/acceleratorconfigurationreader.hxx
@@ -0,0 +1,220 @@
+/*************************************************************************
+ *
+ * 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_ACCELERATORCONFIGURATIONREADER_HXX_
+#define _FRAMEWORK_XML_ACCELERATORCONFIGURATIONREADER_HXX_
+
+//_______________________________________________
+// own includes
+
+#include <accelerators/acceleratorcache.hxx>
+#include <accelerators/keymapping.hxx>
+#include <macros/xinterface.hxx>
+#include <threadhelp/threadhelpbase.hxx>
+#include <general.h>
+
+//_______________________________________________
+// interface includes
+
+#ifndef __COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
+#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
+#endif
+
+#ifndef __COM_SUN_STAR_XML_SAX_XLOCATOR_HPP_
+#include <com/sun/star/xml/sax/XLocator.hpp>
+#endif
+
+//_______________________________________________
+// other includes
+#include <salhelper/singletonref.hxx>
+#include <cppuhelper/weak.hxx>
+#include <rtl/ustring.hxx>
+
+namespace framework{
+
+class AcceleratorConfigurationReader : public css::xml::sax::XDocumentHandler
+ , private ThreadHelpBase
+ , public ::cppu::OWeakObject
+{
+ //-------------------------------------------
+ // const, types
+
+ private:
+
+ //---------------------------------------
+ /** @short classification of XML elements. */
+ enum EXMLElement
+ {
+ E_ELEMENT_ACCELERATORLIST,
+ E_ELEMENT_ITEM
+ };
+
+ //---------------------------------------
+ /** @short classification of XML attributes. */
+ enum EXMLAttribute
+ {
+ E_ATTRIBUTE_KEYCODE,
+ E_ATTRIBUTE_MOD_SHIFT,
+ E_ATTRIBUTE_MOD_MOD1,
+ E_ATTRIBUTE_MOD_MOD2,
+ E_ATTRIBUTE_MOD_MOD3,
+ E_ATTRIBUTE_URL
+ };
+
+ //---------------------------------------
+ /** @short some namespace defines */
+ enum EAcceleratorXMLNamespace
+ {
+ E_NAMESPACE_ACCEL,
+ E_NAMESPACE_XLINK
+ };
+
+ //-------------------------------------------
+ // member
+
+ private:
+
+ //---------------------------------------
+ /** @short needed to read the xml configuration. */
+ css::uno::Reference< css::xml::sax::XDocumentHandler > m_xReader;
+
+ //---------------------------------------
+ /** @short reference to the outside container, where this
+ reader/writer must work on. */
+ AcceleratorCache& m_rContainer;
+
+ //---------------------------------------
+ /** @short used to detect if an accelerator list
+ occures recursive inside xml. */
+ sal_Bool m_bInsideAcceleratorList;
+
+ //---------------------------------------
+ /** @short used to detect if an accelerator item
+ occures recursive inside xml. */
+ sal_Bool m_bInsideAcceleratorItem;
+
+ //---------------------------------------
+ /** @short is used to map key codes to its
+ string representation.
+
+ @descr To perform this operatio is
+ created only one times and holded
+ alive forever ...*/
+ ::salhelper::SingletonRef< KeyMapping > m_rKeyMapping;
+
+ //---------------------------------------
+ /** @short provide informations abou the parsing state.
+
+ @descr We use it to find out the line and column, where
+ an error occure.
+ */
+ css::uno::Reference< css::xml::sax::XLocator > m_xLocator;
+
+/* SfxAcceleratorItemList& m_aReadAcceleratorList;
+*/
+
+ //-------------------------------------------
+ // interface
+
+ public:
+
+ //---------------------------------------
+ /** @short connect this new reader/writer instance
+ to an outside container, which should be used
+ flushed to the underlying XML configuration or
+ filled from there.
+
+ @param rContainer
+ a reference to the outside container.
+ */
+ AcceleratorConfigurationReader(AcceleratorCache& rContainer);
+
+ //---------------------------------------
+ /** @short does nothing real ... */
+ virtual ~AcceleratorConfigurationReader();
+
+ //---------------------------------------
+ // XInterface
+ FWK_DECLARE_XINTERFACE
+
+ //---------------------------------------
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument()
+ throw(css::xml::sax::SAXException,
+ css::uno::RuntimeException );
+
+ virtual void SAL_CALL endDocument()
+ throw(css::xml::sax::SAXException,
+ css::uno::RuntimeException );
+
+ virtual void SAL_CALL startElement(const ::rtl::OUString& sElement ,
+ const css::uno::Reference< css::xml::sax::XAttributeList >& xAttributeList)
+ throw(css::xml::sax::SAXException,
+ css::uno::RuntimeException );
+
+ virtual void SAL_CALL endElement(const ::rtl::OUString& sElement)
+ throw(css::xml::sax::SAXException,
+ css::uno::RuntimeException );
+
+ virtual void SAL_CALL characters(const ::rtl::OUString& sChars)
+ throw(css::xml::sax::SAXException,
+ css::uno::RuntimeException );
+
+ virtual void SAL_CALL ignorableWhitespace(const ::rtl::OUString& sWhitespaces)
+ throw(css::xml::sax::SAXException,
+ css::uno::RuntimeException );
+
+ virtual void SAL_CALL processingInstruction(const ::rtl::OUString& sTarget,
+ const ::rtl::OUString& sData )
+ throw(css::xml::sax::SAXException,
+ css::uno::RuntimeException );
+
+ virtual void SAL_CALL setDocumentLocator(const css::uno::Reference< css::xml::sax::XLocator >& xLocator)
+ throw(css::xml::sax::SAXException,
+ css::uno::RuntimeException );
+
+ //-------------------------------------------
+ // helper
+
+ private:
+
+ //---------------------------------------
+ /** TODO document me */
+ static EXMLElement implst_classifyElement(const ::rtl::OUString& sElement);
+
+ //---------------------------------------
+ /** TODO document me */
+ static EXMLAttribute implst_classifyAttribute(const ::rtl::OUString& sAttribute);
+
+ //---------------------------------------
+ /** TODO document me */
+ ::rtl::OUString implts_getErrorLineString();
+};
+
+} // namespace framework
+
+#endif // _FRAMEWORK_XML_ACCELERATORCONFIGURATIONREADER_HXX_
diff --git a/framework/inc/xml/acceleratorconfigurationwriter.hxx b/framework/inc/xml/acceleratorconfigurationwriter.hxx
new file mode 100644
index 000000000000..caba9b8fa02f
--- /dev/null
+++ b/framework/inc/xml/acceleratorconfigurationwriter.hxx
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * 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_ACCELERATORCONFIGURATIONWRITER_HXX_
+#define _FRAMEWORK_XML_ACCELERATORCONFIGURATIONWRITER_HXX_
+
+//_______________________________________________
+// own includes
+
+#include <accelerators/acceleratorcache.hxx>
+#include <accelerators/keymapping.hxx>
+#include <threadhelp/threadhelpbase.hxx>
+#include <general.h>
+
+//_______________________________________________
+// interface includes
+
+#ifndef __COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
+#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
+#endif
+
+//_______________________________________________
+// other includes
+#include <salhelper/singletonref.hxx>
+#include <rtl/ustring.hxx>
+
+namespace framework{
+
+class AcceleratorConfigurationWriter : private ThreadHelpBase
+{
+ //-------------------------------------------
+ // member
+
+ private:
+
+ //---------------------------------------
+ /** @short needed to write the xml configuration. */
+ css::uno::Reference< css::xml::sax::XDocumentHandler > m_xConfig;
+
+ //---------------------------------------
+ /** @short reference to the outside container, where this
+ writer must work on. */
+ const AcceleratorCache& m_rContainer;
+
+ //---------------------------------------
+ /** @short is used to map key codes to its
+ string representation.
+
+ @descr To perform this operatio is
+ created only one times and holded
+ alive forever ...*/
+ ::salhelper::SingletonRef< KeyMapping > m_rKeyMapping;
+
+ //-------------------------------------------
+ // interface
+
+ public:
+
+ //---------------------------------------
+ /** @short connect this new writer instance
+ to an outside container, which should be
+ flushed to the underlying XML configuration.
+
+ @param rContainer
+ a reference to the outside container.
+
+ @param xConfig
+ used to write the configuration there.
+ */
+ AcceleratorConfigurationWriter(const AcceleratorCache& rContainer,
+ const css::uno::Reference< css::xml::sax::XDocumentHandler >& xConfig );
+
+ //---------------------------------------
+ /** @short does nothing real ... */
+ virtual ~AcceleratorConfigurationWriter();
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual void flush();
+
+ //-------------------------------------------
+ // helper
+
+ private:
+
+ //---------------------------------------
+ /** @short TODO */
+ void impl_ts_writeKeyCommandPair(const css::awt::KeyEvent& aKey ,
+ const ::rtl::OUString& sCommand,
+ const css::uno::Reference< css::xml::sax::XDocumentHandler >& xConfig );
+};
+
+} // namespace framework
+
+#endif // _FRAMEWORK_XML_ACCELERATORCONFIGURATIONWRITER_HXX_
diff --git a/framework/inc/xml/eventsdocumenthandler.hxx b/framework/inc/xml/eventsdocumenthandler.hxx
new file mode 100644
index 000000000000..ffce5c1a348b
--- /dev/null
+++ b/framework/inc/xml/eventsdocumenthandler.hxx
@@ -0,0 +1,188 @@
+/*************************************************************************
+ *
+ * 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_EVENTSDOCUMENTHANDLER_HXX_
+#define __FRAMEWORK_XML_EVENTSDOCUMENTHANDLER_HXX_
+
+#ifndef __FRAMEWORK_XML_TOOLBOXCONFIGURATION_HXX_
+#include <framework/eventsconfiguration.hxx>
+#endif
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#ifndef __COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
+#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
+#endif
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+#include <threadhelp/threadhelpbase.hxx>
+#include <rtl/ustring.hxx>
+#include <cppuhelper/implbase1.hxx>
+
+#include <hash_map>
+#include <stdtypes.h>
+
+#include <framework/fwedllapi.h>
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework{
+
+//*****************************************************************************************************************
+// Hash code function for using in all hash maps of follow implementation.
+
+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:
+ enum Events_XML_Entry
+ {
+ EV_ELEMENT_EVENTS,
+ EV_ELEMENT_EVENT,
+ EV_ATTRIBUTE_TYPE,
+ EV_ATTRIBUTE_NAME,
+ XL_ATTRIBUTE_HREF,
+ XL_ATTRIBUTE_TYPE,
+ EV_ATTRIBUTE_MACRONAME,
+ EV_ATTRIBUTE_LIBRARY,
+ EV_XML_ENTRY_COUNT
+ };
+
+ enum Event_XML_Namespace
+ {
+ EV_NS_EVENT,
+ EV_NS_XLINK,
+ EV_XML_NAMESPACES_COUNT
+ };
+
+ OReadEventsDocumentHandler( EventsConfig& aItems );
+
+
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endDocument(void)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL startElement(
+ const rtl::OUString& aName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endElement(const rtl::OUString& aName)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL characters(const rtl::OUString& aChars)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL ignorableWhitespace(const rtl::OUString& aWhitespaces)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL processingInstruction(const rtl::OUString& aTarget,
+ const rtl::OUString& aData)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setDocumentLocator(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > &xLocator)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ protected:
+ virtual ~OReadEventsDocumentHandler();
+
+ private:
+ ::rtl::OUString getErrorLineString();
+
+ class EventsHashMap : public ::std::hash_map< ::rtl::OUString ,
+ Events_XML_Entry ,
+ OUStringHashCode ,
+ ::std::equal_to< ::rtl::OUString > >
+ {
+ public:
+ inline void free()
+ {
+ EventsHashMap().swap( *this );
+ }
+ };
+
+ sal_Bool m_bEventsStartFound;
+ sal_Bool m_bEventsEndFound;
+ sal_Bool m_bEventStartFound;
+ EventsHashMap m_aEventsMap;
+ EventsConfig& m_aEventItems;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
+};
+
+class FWE_DLLPUBLIC OWriteEventsDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
+{
+ public:
+ OWriteEventsDocumentHandler(
+ const EventsConfig& aItems,
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > );
+ virtual ~OWriteEventsDocumentHandler();
+
+ void WriteEventsDocument() throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ protected:
+ virtual void WriteEvent(
+ const ::rtl::OUString& aEventName,
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aPropertyValue ) throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ const EventsConfig& m_aItems;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > m_xWriteDocumentHandler;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > m_xEmptyList;
+ ::rtl::OUString m_aXMLEventNS;
+ ::rtl::OUString m_aXMLXlinkNS;
+ ::rtl::OUString m_aAttributeType;
+ ::rtl::OUString m_aAttributeURL;
+ ::rtl::OUString m_aAttributeLanguage;
+ ::rtl::OUString m_aAttributeLinkType;
+ ::rtl::OUString m_aAttributeMacroName;
+ ::rtl::OUString m_aAttributeLibrary;
+ ::rtl::OUString m_aAttributeName;
+};
+
+} // namespace framework
+
+#endif
diff --git a/framework/inc/xml/imagesdocumenthandler.hxx b/framework/inc/xml/imagesdocumenthandler.hxx
new file mode 100644
index 000000000000..59d1e4abdb3a
--- /dev/null
+++ b/framework/inc/xml/imagesdocumenthandler.hxx
@@ -0,0 +1,204 @@
+/*************************************************************************
+ *
+ * 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_IMAGEDOCUMENTHANDLER_HXX_
+#define __FRAMEWORK_XML_IMAGEDOCUMENTHANDLER_HXX_
+
+#include <framework/fwedllapi.h>
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#ifndef __COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
+#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
+#endif
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+#include <framework/imagesconfiguration.hxx>
+#include <threadhelp/threadhelpbase.hxx>
+#include <rtl/ustring.hxx>
+#include <cppuhelper/implbase1.hxx>
+
+#include <hash_map>
+#include <stdtypes.h>
+
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework{
+
+//*****************************************************************************************************************
+// Hash code function for using in all hash maps of follow implementation.
+
+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:
+ enum Image_XML_Entry
+ {
+ IMG_ELEMENT_IMAGECONTAINER,
+ IMG_ELEMENT_IMAGES,
+ IMG_ELEMENT_ENTRY,
+ IMG_ELEMENT_EXTERNALIMAGES,
+ IMG_ELEMENT_EXTERNALENTRY,
+ IMG_ATTRIBUTE_HREF,
+ IMG_ATTRIBUTE_MASKCOLOR,
+ IMG_ATTRIBUTE_COMMAND,
+ IMG_ATTRIBUTE_BITMAPINDEX,
+ IMG_ATTRIBUTE_MASKURL,
+ IMG_ATTRIBUTE_MASKMODE,
+ IMG_ATTRIBUTE_HIGHCONTRASTURL,
+ IMG_ATTRIBUTE_HIGHCONTRASTMASKURL,
+ IMG_XML_ENTRY_COUNT
+ };
+
+ enum Image_XML_Namespace
+ {
+ IMG_NS_IMAGE,
+ IMG_NS_XLINK,
+ TBL_XML_NAMESPACES_COUNT
+ };
+
+ OReadImagesDocumentHandler( ImageListsDescriptor& aItems );
+ virtual ~OReadImagesDocumentHandler();
+
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endDocument(void)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL startElement(
+ const rtl::OUString& aName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endElement(const rtl::OUString& aName)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL characters(const rtl::OUString& aChars)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL ignorableWhitespace(const rtl::OUString& aWhitespaces)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL processingInstruction(const rtl::OUString& aTarget,
+ const rtl::OUString& aData)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setDocumentLocator(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > &xLocator)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ private:
+ ::rtl::OUString getErrorLineString();
+
+ class ImageHashMap : public ::std::hash_map< ::rtl::OUString ,
+ Image_XML_Entry ,
+ OUStringHashCode ,
+ ::std::equal_to< ::rtl::OUString > >
+ {
+ public:
+ inline void free()
+ {
+ ImageHashMap().swap( *this );
+ }
+ };
+
+ sal_Bool m_bImageContainerStartFound;
+ sal_Bool m_bImageContainerEndFound;
+ sal_Bool m_bImagesStartFound;
+ sal_Bool m_bImagesEndFound;
+ sal_Bool m_bImageStartFound;
+ sal_Bool m_bExternalImagesStartFound;
+ sal_Bool m_bExternalImagesEndFound;
+ sal_Bool m_bExternalImageStartFound;
+ sal_Int32 m_nHashMaskModeBitmap;
+ sal_Int32 m_nHashMaskModeColor;
+ ImageHashMap m_aImageMap;
+ ImageListsDescriptor& m_aImageList;
+ ImageListItemDescriptor* m_pImages;
+ ExternalImageItemListDescriptor* m_pExternalImages;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
+};
+
+class FWE_DLLPUBLIC OWriteImagesDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
+{
+ public:
+ OWriteImagesDocumentHandler(
+ const ImageListsDescriptor& aItems,
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > );
+ virtual ~OWriteImagesDocumentHandler();
+
+ void WriteImagesDocument() throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ protected:
+ virtual void WriteImageList( const ImageListItemDescriptor* ) throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void WriteExternalImageList( const ExternalImageItemListDescriptor* ) throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void WriteImage( const ImageItemDescriptor* ) throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void WriteExternalImage( const ExternalImageItemDescriptor* ) throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ const ImageListsDescriptor& m_aImageListsItems;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > m_xWriteDocumentHandler;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > m_xEmptyList;
+ ::rtl::OUString m_aXMLXlinkNS;
+ ::rtl::OUString m_aXMLImageNS;
+ ::rtl::OUString m_aAttributeType;
+ ::rtl::OUString m_aAttributeXlinkType;
+ ::rtl::OUString m_aAttributeValueSimple;
+};
+
+} // namespace framework
+
+#endif
diff --git a/framework/inc/xml/menudocumenthandler.hxx b/framework/inc/xml/menudocumenthandler.hxx
new file mode 100644
index 000000000000..5c6064cdd4f1
--- /dev/null
+++ b/framework/inc/xml/menudocumenthandler.hxx
@@ -0,0 +1,319 @@
+/*************************************************************************
+ *
+ * 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_MENUDOCUMENTHANDLER_HXX_
+#define __FRAMEWORK_XML_MENUDOCUMENTHANDLER_HXX_
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#ifndef __COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
+#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
+#endif
+#include <com/sun/star/container/XIndexContainer.hpp>
+#include <com/sun/star/lang/XSingleComponentFactory.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/uno/Sequence.h>
+#include <com/sun/star/uno/XComponentContext.hpp>
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+#include <threadhelp/threadhelpbase.hxx>
+#include <rtl/ustring.hxx>
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <framework/fwedllapi.h>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework{
+
+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:
+ ReadMenuDocumentHandlerBase();
+ virtual ~ReadMenuDocumentHandlerBase();
+
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException ) = 0;
+
+ virtual void SAL_CALL endDocument(void)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException ) = 0;
+
+ virtual void SAL_CALL startElement(
+ const rtl::OUString& aName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException ) = 0;
+
+ virtual void SAL_CALL endElement(const rtl::OUString& aName)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException ) = 0;
+
+ virtual void SAL_CALL characters(const rtl::OUString& aChars)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException ) = 0;
+
+ virtual void SAL_CALL ignorableWhitespace(const rtl::OUString& aWhitespaces)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL processingInstruction(const rtl::OUString& aTarget,
+ const rtl::OUString& aData)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setDocumentLocator(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > &xLocator)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ protected:
+ ::rtl::OUString getErrorLineString();
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler> m_xReader;
+ void initPropertyCommon( com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > &rProps,
+ const rtl::OUString &rCommandURL, const rtl::OUString &rHelpId,
+ const rtl::OUString &rLabel, sal_Int16 nItemStyleBits );
+ private:
+ rtl::OUString m_aType;
+ rtl::OUString m_aLabel;
+ rtl::OUString m_aContainer;
+ rtl::OUString m_aHelpURL;
+ rtl::OUString m_aCommandURL;
+ rtl::OUString m_aStyle;
+ ::com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > m_aItemProp;
+};
+
+
+class FWE_DLLPUBLIC OReadMenuDocumentHandler : public ReadMenuDocumentHandlerBase
+{
+ public:
+ // #110897#
+ OReadMenuDocumentHandler(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+ const com::sun::star::uno::Reference< com::sun::star::container::XIndexContainer >& rItemContainer );
+ virtual ~OReadMenuDocumentHandler();
+
+ // #110897#
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& getServiceFactory();
+
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endDocument(void)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL startElement(
+ const rtl::OUString& aName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endElement(const rtl::OUString& aName)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL characters(const rtl::OUString& aChars)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ private:
+ int m_nElementDepth;
+ sal_Bool m_bMenuBarMode;
+ com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > m_xMenuBarContainer;
+ com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > m_xContainerFactory;
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& mxServiceFactory;
+}; // OReadMenuDocumentHandler
+
+
+class FWE_DLLPUBLIC OReadMenuBarHandler : public ReadMenuDocumentHandlerBase
+{
+ public:
+ // #110897#
+ OReadMenuBarHandler(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+ const com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& rMenuBarContainer,
+ const com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory >& rContainerFactory );
+ virtual ~OReadMenuBarHandler();
+
+ // #110897#
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& getServiceFactory();
+
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endDocument(void)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL startElement(
+ const rtl::OUString& aName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endElement(const rtl::OUString& aName)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL characters(const rtl::OUString& aChars)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ private:
+ int m_nElementDepth;
+ sal_Bool m_bMenuMode;
+ com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > m_xMenuBarContainer;
+ com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > m_xContainerFactory;
+
+ // #110897#
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& mxServiceFactory;
+}; // OReadMenuBarHandler
+
+
+class FWE_DLLPUBLIC OReadMenuHandler : public ReadMenuDocumentHandlerBase
+{
+ public:
+ OReadMenuHandler( const com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& rMenuContainer,
+ const com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory >& rContainerFactory );
+ virtual ~OReadMenuHandler();
+
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endDocument(void)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL startElement(
+ const rtl::OUString& aName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endElement(const rtl::OUString& aName)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL characters(const rtl::OUString& aChars)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ private:
+ int m_nElementDepth;
+ sal_Bool m_bMenuPopupMode;
+ com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > m_xMenuContainer;
+ com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > m_xContainerFactory;
+}; // OReadMenuHandler
+
+
+class FWE_DLLPUBLIC OReadMenuPopupHandler : public ReadMenuDocumentHandlerBase
+{
+ public:
+ OReadMenuPopupHandler( const com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& rMenuContainer,
+ const com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory >& rContainerFactory );
+ virtual ~OReadMenuPopupHandler();
+
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL startElement(
+ const rtl::OUString& aName,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endElement(const rtl::OUString& aName)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL characters(const rtl::OUString& aChars)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ private:
+ enum NextElementClose { ELEM_CLOSE_NONE, ELEM_CLOSE_MENUITEM, ELEM_CLOSE_MENUSEPARATOR };
+
+ int m_nElementDepth;
+ sal_Bool m_bMenuMode;
+ com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > m_xMenuContainer;
+ com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > m_xContainerFactory;
+ com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xComponentContext;
+ NextElementClose m_nNextElementExpected;
+}; // OReadMenuPopupHandler
+
+
+class FWE_DLLPUBLIC OWriteMenuDocumentHandler
+{
+ public:
+ OWriteMenuDocumentHandler(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& rMenuBarContainer,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler >& rDocumentHandler );
+ virtual ~OWriteMenuDocumentHandler();
+
+ void WriteMenuDocument() throw
+ ( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
+ protected:
+ virtual void WriteMenu( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& rSubMenuContainer ) throw
+ ( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
+
+ virtual void WriteMenuItem( const rtl::OUString& aCommandURL, const rtl::OUString& aLabel, const rtl::OUString& aHelpURL, sal_Int16 nStyle = 0 );
+ virtual void WriteMenuSeparator();
+
+ com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > m_xMenuBarContainer;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > m_xWriteDocumentHandler;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > m_xEmptyList;
+ ::rtl::OUString m_aAttributeType;
+};
+
+} // namespace framework
+
+#endif // #ifndef __FRAMEWORK_XML_MENUDOCUMENTHANDLER_HXX_
diff --git a/framework/inc/xml/saxnamespacefilter.hxx b/framework/inc/xml/saxnamespacefilter.hxx
new file mode 100644
index 000000000000..f4bdfcf677e9
--- /dev/null
+++ b/framework/inc/xml/saxnamespacefilter.hxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * 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_SERVICES_SAXNAMESPACEFILTER_HXX_
+#define __FRAMEWORK_SERVICES_SAXNAMESPACEFILTER_HXX_
+
+#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
+#include <threadhelp/threadhelpbase.hxx>
+#include <xml/xmlnamespaces.hxx>
+#include <rtl/ustring.hxx>
+#include <vcl/menu.hxx>
+#include <cppuhelper/implbase1.hxx>
+
+#include <stack>
+#include <framework/fwedllapi.h>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework
+{
+
+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:
+ SaxNamespaceFilter( ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler >& rSax1DocumentHandler );
+ virtual ~SaxNamespaceFilter();
+
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endDocument(void)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL startElement(
+ const rtl::OUString& aName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endElement(const rtl::OUString& aName)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL characters(const rtl::OUString& aChars)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL ignorableWhitespace(const rtl::OUString& aWhitespaces)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL processingInstruction(const rtl::OUString& aTarget,
+ const rtl::OUString& aData)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setDocumentLocator(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > &xLocator)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ protected:
+ typedef ::std::stack< XMLNamespaces > NamespaceStack;
+
+ ::rtl::OUString getErrorLineString();
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler> xDocumentHandler;
+ NamespaceStack m_aNamespaceStack;
+ sal_Int32 m_nDepth;
+};
+
+}
+
+#endif // __FRAMEWORK_SERVICES_SAXNAMESPACEFILTER_HXX_
diff --git a/framework/inc/xml/statusbardocumenthandler.hxx b/framework/inc/xml/statusbardocumenthandler.hxx
new file mode 100644
index 000000000000..82c2d0c55111
--- /dev/null
+++ b/framework/inc/xml/statusbardocumenthandler.hxx
@@ -0,0 +1,185 @@
+/*************************************************************************
+ *
+ * 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_STATUSBARDOCUMENTHANDLER_HXX_
+#define __FRAMEWORK_XML_STATUSBARDOCUMENTHANDLER_HXX_
+
+#ifndef __FRAMEWORK_XML_STATUSBARCONFIGURATION_HXX_
+#include <framework/statusbarconfiguration.hxx>
+#endif
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+
+#ifndef __COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
+#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
+#endif
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+#include <threadhelp/threadhelpbase.hxx>
+#include <rtl/ustring.hxx>
+#include <cppuhelper/implbase1.hxx>
+
+#include <hash_map>
+#include <stdtypes.h>
+#include <framework/fwedllapi.h>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework{
+
+//*****************************************************************************************************************
+// Hash code function for using in all hash maps of follow implementation.
+
+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:
+ enum StatusBar_XML_Entry
+ {
+ SB_ELEMENT_STATUSBAR,
+ SB_ELEMENT_STATUSBARITEM,
+ SB_ATTRIBUTE_URL,
+ SB_ATTRIBUTE_ALIGN,
+ SB_ATTRIBUTE_STYLE,
+ SB_ATTRIBUTE_AUTOSIZE,
+ SB_ATTRIBUTE_OWNERDRAW,
+ SB_ATTRIBUTE_WIDTH,
+ SB_ATTRIBUTE_OFFSET,
+ SB_ATTRIBUTE_HELPURL,
+ SB_XML_ENTRY_COUNT
+ };
+
+ enum StatusBar_XML_Namespace
+ {
+ SB_NS_STATUSBAR,
+ SB_NS_XLINK,
+ SB_XML_NAMESPACES_COUNT
+ };
+
+ OReadStatusBarDocumentHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& aStatusBarItems );
+ virtual ~OReadStatusBarDocumentHandler();
+
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endDocument(void)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL startElement(
+ const rtl::OUString& aName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endElement(const rtl::OUString& aName)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL characters(const rtl::OUString& aChars)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL ignorableWhitespace(const rtl::OUString& aWhitespaces)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL processingInstruction(const rtl::OUString& aTarget,
+ const rtl::OUString& aData)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setDocumentLocator(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > &xLocator)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ private:
+ ::rtl::OUString getErrorLineString();
+
+ class StatusBarHashMap : public ::std::hash_map< ::rtl::OUString ,
+ StatusBar_XML_Entry ,
+ OUStringHashCode ,
+ ::std::equal_to< ::rtl::OUString > >
+ {
+ public:
+ inline void free()
+ {
+ StatusBarHashMap().swap( *this );
+ }
+ };
+
+ sal_Bool m_bStatusBarStartFound;
+ sal_Bool m_bStatusBarEndFound;
+ sal_Bool m_bStatusBarItemStartFound;
+ StatusBarHashMap m_aStatusBarMap;
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > m_aStatusBarItems;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
+};
+
+class FWE_DLLPUBLIC OWriteStatusBarDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
+{
+ public:
+ OWriteStatusBarDocumentHandler(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& rStatusBarItems,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler >& rWriteDocHandler );
+ virtual ~OWriteStatusBarDocumentHandler();
+
+ void WriteStatusBarDocument() throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ protected:
+ virtual void WriteStatusBarItem(
+ const rtl::OUString& rCommandURL,
+ const rtl::OUString& rHelpURL,
+ sal_Int16 nOffset,
+ sal_Int16 nStyle,
+ sal_Int16 nWidth ) throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > m_aStatusBarItems;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > m_xWriteDocumentHandler;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > m_xEmptyList;
+ ::rtl::OUString m_aXMLStatusBarNS;
+ ::rtl::OUString m_aXMLXlinkNS;
+ ::rtl::OUString m_aAttributeType;
+ ::rtl::OUString m_aAttributeURL;
+};
+
+} // namespace framework
+
+#endif
diff --git a/framework/inc/xml/toolboxconfigurationdefines.hxx b/framework/inc/xml/toolboxconfigurationdefines.hxx
new file mode 100644
index 000000000000..0b514b927bc1
--- /dev/null
+++ b/framework/inc/xml/toolboxconfigurationdefines.hxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * 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_
+
+#define XMLNS_TOOLBAR "http://openoffice.org/2001/toolbar"
+#define XMLNS_XLINK "http://www.w3.org/1999/xlink"
+#define XMLNS_TOOLBAR_PREFIX "toolbar:"
+#define XMLNS_XLINK_PREFIX "xlink:"
+
+#define XMLNS_FILTER_SEPARATOR "^"
+
+#define ELEMENT_TOOLBAR "toolbar"
+#define ELEMENT_TOOLBARITEM "toolbaritem"
+#define ELEMENT_TOOLBARSPACE "toolbarspace"
+#define ELEMENT_TOOLBARBREAK "toolbarbreak"
+#define ELEMENT_TOOLBARSEPARATOR "toolbarseparator"
+
+#define ELEMENT_TOOLBARLAYOUTS "toolbarlayouts"
+#define ELEMENT_TOOLBARLAYOUT "toolbarlayout"
+#define ELEMENT_TOOLBARCONFIGITEMS "toolbarconfigitems"
+#define ELEMENT_TOOLBARCONFIGITEM "toolbarconfigitem"
+
+#define ATTRIBUTE_UINAME "uiname"
+
+#define ATTRIBUTE_BITMAP "bitmap"
+#define ATTRIBUTE_TEXT "text"
+#define ATTRIBUTE_URL "href"
+#define ATTRIBUTE_ITEMBITS "property"
+#define ATTRIBUTE_VISIBLE "visible"
+#define ATTRIBUTE_WIDTH "width"
+#define ATTRIBUTE_USER "userdefined"
+#define ATTRIBUTE_HELPID "helpid"
+#define ATTRIBUTE_TOOLTIP "tooltip"
+#define ATTRIBUTE_ITEMSTYLE "style"
+
+#define ATTRIBUTE_ID "id"
+#define ATTRIBUTE_FLOATINGPOSLEFT "floatingposleft"
+#define ATTRIBUTE_FLOATINGPOSTOP "floatingpostop"
+#define ATTRIBUTE_TOOLBARNAME "toolbarname"
+#define ATTRIBUTE_CONTEXT "context"
+#define ATTRIBUTE_FLOATINGLINES "floatinglines"
+#define ATTRIBUTE_DOCKINGLINES "dockinglines"
+#define ATTRIBUTE_ALIGN "align"
+#define ATTRIBUTE_FLOATING "floating"
+#define ATTRIBUTE_BUTTONTYPE "style"
+#define ATTRIBUTE_USERDEFNAME "userdefname"
+
+#define ELEMENT_NS_TOOLBAR "toolbar:toolbar"
+#define ELEMENT_NS_TOOLBARITEM "toolbar:toolbaritem"
+#define ELEMENT_NS_TOOLBARSPACE "toolbar:toolbarspace"
+#define ELEMENT_NS_TOOLBARBREAK "toolbar:toolbarbreak"
+#define ELEMENT_NS_TOOLBARSEPARATOR "toolbar:toolbarseparator"
+
+#define ELEMENT_NS_TOOLBARLAYOUTS "toolbar:toolbarlayouts"
+#define ELEMENT_NS_TOOLBARLAYOUT "toolbar:toolbarlayout"
+#define ELEMENT_NS_TOOLBARCONFIGITEMS "toolbar:toolbarconfigitems"
+#define ELEMENT_NS_TOOLBARCONFIGITEM "toolbar:toolbarconfigitem"
+
+#define ATTRIBUTE_XMLNS_TOOLBAR "xmlns:toolbar"
+#define ATTRIBUTE_XMLNS_XLINK "xmlns:xlink"
+
+#define ATTRIBUTE_TYPE_CDATA "CDATA"
+
+#define ATTRIBUTE_BOOLEAN_TRUE "true"
+#define ATTRIBUTE_BOOLEAN_FALSE "false"
+
+#define ATTRIBUTE_ALIGN_LEFT "left"
+#define ATTRIBUTE_ALIGN_RIGHT "right"
+#define ATTRIBUTE_ALIGN_TOP "top"
+#define ATTRIBUTE_ALIGN_BOTTOM "bottom"
+
+#define ATTRIBUTE_STYLE_TEXT "text"
+#define ATTRIBUTE_STYLE_SYMBOL "symbol"
+#define ATTRIBUTE_STYLE_SYMBOLTEXT "symboltext"
+#define ATTRIBUTE_STYLE_SYMBOLPLUSTEXT "symbol+text"
+
+#define ATTRIBUTE_ITEMSTYLE_RADIO "radio"
+#define ATTRIBUTE_ITEMSTYLE_AUTO "auto"
+#define ATTRIBUTE_ITEMSTYLE_LEFT "left"
+#define ATTRIBUTE_ITEMSTYLE_AUTOSIZE "autosize"
+#define ATTRIBUTE_ITEMSTYLE_DROPDOWN "dropdown"
+#define ATTRIBUTE_ITEMSTYLE_REPEAT "repeat"
+#define ATTRIBUTE_ITEMSTYLE_TEXT "text"
+#define ATTRIBUTE_ITEMSTYLE_DROPDOWNONLY "dropdownonly"
+#define ATTRIBUTE_ITEMSTYLE_IMAGE "image"
+
+#endif // __FRAMEWORK_XML_TOOLBOXCONFIGURATIONDEFINES_HXX_
diff --git a/framework/inc/xml/toolboxdocumenthandler.hxx b/framework/inc/xml/toolboxdocumenthandler.hxx
new file mode 100644
index 000000000000..d90d91cee036
--- /dev/null
+++ b/framework/inc/xml/toolboxdocumenthandler.hxx
@@ -0,0 +1,214 @@
+/*************************************************************************
+ *
+ * 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_TOOLBOXDOCUMENTHANDLER_HXX_
+#define __FRAMEWORK_XML_TOOLBOXDOCUMENTHANDLER_HXX_
+
+#include <framework/toolboxconfiguration.hxx>
+
+//_________________________________________________________________________________________________________________
+// interface includes
+//_________________________________________________________________________________________________________________
+#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+
+//_________________________________________________________________________________________________________________
+// other includes
+//_________________________________________________________________________________________________________________
+#include <threadhelp/threadhelpbase.hxx>
+#include <rtl/ustring.hxx>
+#include <cppuhelper/implbase1.hxx>
+#include <stdtypes.h>
+#include <framework/fwedllapi.h>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework{
+
+//*****************************************************************************************************************
+// Hash code function for using in all hash maps of follow implementation.
+
+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:
+ enum ToolBox_XML_Entry
+ {
+ TB_ELEMENT_TOOLBAR,
+ TB_ELEMENT_TOOLBARITEM,
+ TB_ELEMENT_TOOLBARSPACE,
+ TB_ELEMENT_TOOLBARBREAK,
+ TB_ELEMENT_TOOLBARSEPARATOR,
+ TB_ATTRIBUTE_TEXT,
+ TB_ATTRIBUTE_BITMAP,
+ TB_ATTRIBUTE_URL,
+ TB_ATTRIBUTE_ITEMBITS,
+ TB_ATTRIBUTE_VISIBLE,
+ TB_ATTRIBUTE_WIDTH,
+ TB_ATTRIBUTE_USER,
+ TB_ATTRIBUTE_HELPID,
+ TB_ATTRIBUTE_STYLE,
+ TB_ATTRIBUTE_UINAME,
+ TB_ATTRIBUTE_TOOLTIP,
+ TB_XML_ENTRY_COUNT
+ };
+
+ enum ToolBox_XML_Namespace
+ {
+ TB_NS_TOOLBAR,
+ TB_NS_XLINK,
+ TB_XML_NAMESPACES_COUNT
+ };
+
+ OReadToolBoxDocumentHandler( const ::com::sun::star::uno::Reference< com::sun::star::container::XIndexContainer >& rItemContainer );
+ virtual ~OReadToolBoxDocumentHandler();
+
+ // XDocumentHandler
+ virtual void SAL_CALL startDocument(void)
+ throw ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endDocument(void)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL startElement(
+ const rtl::OUString& aName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL endElement(const rtl::OUString& aName)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL characters(const rtl::OUString& aChars)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL ignorableWhitespace(const rtl::OUString& aWhitespaces)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL processingInstruction(const rtl::OUString& aTarget,
+ const rtl::OUString& aData)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setDocumentLocator(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > &xLocator)
+ throw( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ private:
+ ::rtl::OUString getErrorLineString();
+
+ class ToolBoxHashMap : public ::std::hash_map< ::rtl::OUString ,
+ ToolBox_XML_Entry ,
+ OUStringHashCode ,
+ ::std::equal_to< ::rtl::OUString > >
+ {
+ public:
+ inline void free()
+ {
+ ToolBoxHashMap().swap( *this );
+ }
+ };
+
+ sal_Bool m_bToolBarStartFound : 1;
+ sal_Bool m_bToolBarEndFound : 1;
+ sal_Bool m_bToolBarItemStartFound : 1;
+ sal_Bool m_bToolBarSpaceStartFound : 1;
+ sal_Bool m_bToolBarBreakStartFound : 1;
+ sal_Bool m_bToolBarSeparatorStartFound : 1;
+ ToolBoxHashMap m_aToolBoxMap;
+ com::sun::star::uno::Reference< com::sun::star::container::XIndexContainer > m_rItemContainer;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
+
+ sal_Int32 m_nHashCode_Style_Radio;
+ sal_Int32 m_nHashCode_Style_Auto;
+ sal_Int32 m_nHashCode_Style_Left;
+ sal_Int32 m_nHashCode_Style_AutoSize;
+ sal_Int32 m_nHashCode_Style_DropDown;
+ sal_Int32 m_nHashCode_Style_Repeat;
+ sal_Int32 m_nHashCode_Style_DropDownOnly;
+ sal_Int32 m_nHashCode_Style_Text;
+ sal_Int32 m_nHashCode_Style_Image;
+ rtl::OUString m_aType;
+ rtl::OUString m_aLabel;
+ rtl::OUString m_aStyle;
+ rtl::OUString m_aHelpURL;
+ rtl::OUString m_aTooltip;
+ rtl::OUString m_aIsVisible;
+ rtl::OUString m_aCommandURL;
+};
+
+
+class FWE_DLLPUBLIC OWriteToolBoxDocumentHandler : private ThreadHelpBase // Struct for right initalization of lock member! Must be first of baseclasses.
+{
+ public:
+ OWriteToolBoxDocumentHandler(
+ const ::com::sun::star::uno::Reference< com::sun::star::container::XIndexAccess >& rItemAccess,
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler >& rDocumentHandler );
+ virtual ~OWriteToolBoxDocumentHandler();
+
+ void WriteToolBoxDocument() throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ protected:
+ virtual void WriteToolBoxItem( const rtl::OUString& aCommandURL, const rtl::OUString& aLabel, const rtl::OUString& aHelpURL, const rtl::OUString& aTooltip, sal_Int16 nStyle,
+ sal_Int16 nWidth, sal_Bool bVisible ) throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void WriteToolBoxSpace() throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void WriteToolBoxBreak() throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ virtual void WriteToolBoxSeparator() throw
+ ( ::com::sun::star::xml::sax::SAXException,
+ ::com::sun::star::uno::RuntimeException );
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > m_xWriteDocumentHandler;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > m_xEmptyList;
+ com::sun::star::uno::Reference< com::sun::star::container::XIndexAccess > m_rItemAccess;
+ ::rtl::OUString m_aXMLToolbarNS;
+ ::rtl::OUString m_aXMLXlinkNS;
+ ::rtl::OUString m_aAttributeType;
+ ::rtl::OUString m_aAttributeURL;
+};
+
+} // namespace framework
+
+#endif
diff --git a/framework/inc/xml/xmlnamespaces.hxx b/framework/inc/xml/xmlnamespaces.hxx
new file mode 100644
index 000000000000..bcb9ec4cb5e3
--- /dev/null
+++ b/framework/inc/xml/xmlnamespaces.hxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * 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_XMLNAMESPACES_HXX_
+#define __FRAMEWORK_XML_XMLNAMESPACES_HXX_
+
+#include <com/sun/star/xml/sax/SAXException.hpp>
+
+#include <map>
+#include <framework/fwedllapi.h>
+
+namespace framework
+{
+
+class FWE_DLLPUBLIC XMLNamespaces
+{
+ public:
+ XMLNamespaces();
+ XMLNamespaces( const XMLNamespaces& );
+ virtual ~XMLNamespaces();
+
+ void addNamespace( const ::rtl::OUString& aName, const ::rtl::OUString& aValue )
+ throw( ::com::sun::star::xml::sax::SAXException );
+
+ ::rtl::OUString applyNSToAttributeName( const ::rtl::OUString& ) const
+ throw( ::com::sun::star::xml::sax::SAXException );
+ ::rtl::OUString applyNSToElementName( const ::rtl::OUString& ) const
+ throw( ::com::sun::star::xml::sax::SAXException );
+
+ private:
+ typedef ::std::map< ::rtl::OUString, ::rtl::OUString > NamespaceMap;
+
+ ::rtl::OUString getNamespaceValue( const ::rtl::OUString& aNamespace ) const
+ throw( ::com::sun::star::xml::sax::SAXException );
+
+ ::rtl::OUString m_aDefaultNamespace;
+ NamespaceMap m_aNamespaceMap;
+};
+
+}
+
+#endif // __FRAMEWORK_XML_XMLNAMESPACES_HXX_