summaryrefslogtreecommitdiff
path: root/framework/source/xml
diff options
context:
space:
mode:
authorMathias Bauer <mba@openoffice.org>2010-04-16 23:01:28 +0200
committerMathias Bauer <mba@openoffice.org>2010-04-16 23:01:28 +0200
commit39e9098c77157ea38411a237a6b52e0f76f12ce1 (patch)
tree9dbcd58a44a141701a05260517acba699d88e992 /framework/source/xml
parent9c10c47f9cfb8f7641f0bb16908e0d19ad7d08ec (diff)
CWS gnumake2: export all symbols in framework using declspec
Diffstat (limited to 'framework/source/xml')
-rw-r--r--framework/source/xml/eventsconfiguration.cxx168
-rw-r--r--framework/source/xml/eventsdocumenthandler.cxx555
-rw-r--r--framework/source/xml/imagesconfiguration.cxx241
-rw-r--r--framework/source/xml/imagesdocumenthandler.cxx854
-rw-r--r--framework/source/xml/makefile.mk17
-rw-r--r--framework/source/xml/menuconfiguration.cxx190
-rw-r--r--framework/source/xml/menudocumenthandler.cxx914
-rw-r--r--framework/source/xml/saxnamespacefilter.cxx201
-rw-r--r--framework/source/xml/statusbarconfiguration.cxx169
-rw-r--r--framework/source/xml/statusbardocumenthandler.cxx701
-rw-r--r--framework/source/xml/toolboxconfiguration.cxx160
-rw-r--r--framework/source/xml/toolboxdocumenthandler.cxx829
-rw-r--r--framework/source/xml/toolboxlayoutdocumenthandler.cxx61
-rw-r--r--framework/source/xml/xmlnamespaces.cxx194
14 files changed, 2 insertions, 5252 deletions
diff --git a/framework/source/xml/eventsconfiguration.cxx b/framework/source/xml/eventsconfiguration.cxx
deleted file mode 100644
index beebd7963dfe..000000000000
--- a/framework/source/xml/eventsconfiguration.cxx
+++ /dev/null
@@ -1,168 +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: eventsconfiguration.cxx,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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_framework.hxx"
-#include <xml/eventsconfiguration.hxx>
-#include <xml/eventsdocumenthandler.hxx>
-#include <services.h>
-
-#ifndef __FRAMEWORK_XML_SAXNAMESPACEFILTER_HXX_
-#include <xml/saxnamespacefilter.hxx>
-#endif
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-#include <com/sun/star/xml/sax/XParser.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-//_________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________
-
-#ifndef _UNOTOOLS_PROCESSFACTORY_HXX
-#include <comphelper/processfactory.hxx>
-#endif
-#include <unotools/streamwrap.hxx>
-#include <tools/debug.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::io;
-
-
-namespace framework
-{
-
-static Reference< XParser > GetSaxParser(
- // #110897#
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
- )
-{
- //Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
- //return Reference< XParser >( xServiceManager->createInstance( SERVICENAME_SAXPARSER), UNO_QUERY);
- return Reference< XParser >( xServiceFactory->createInstance( SERVICENAME_SAXPARSER), UNO_QUERY);
-}
-
-static Reference< XDocumentHandler > GetSaxWriter(
- // #110897#
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
- )
-{
- //Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
- //return Reference< XDocumentHandler >( xServiceManager->createInstance( SERVICENAME_SAXWRITER), UNO_QUERY) ;
- return Reference< XDocumentHandler >( xServiceFactory->createInstance( SERVICENAME_SAXWRITER), UNO_QUERY) ;
-}
-
-// #110897#
-sal_Bool EventsConfiguration::LoadEventsConfig(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
- SvStream& rInStream, EventsConfig& aItems )
-{
- Reference< XParser > xParser( GetSaxParser( xServiceFactory ) );
- Reference< XInputStream > xInputStream(
- (::cppu::OWeakObject *)new utl::OInputStreamWrapper( rInStream ),
- UNO_QUERY );
-
- // connect stream to input stream to the parser
- InputSource aInputSource;
-
- aInputSource.aInputStream = xInputStream;
-
- // create namespace filter and set events document handler inside to support xml namespaces
- Reference< XDocumentHandler > xDocHandler( new OReadEventsDocumentHandler( aItems ));
- Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
-
- // connect parser and filter
- xParser->setDocumentHandler( xFilter );
-
- try
- {
- xParser->parseStream( aInputSource );
- return sal_True;
- }
- catch ( RuntimeException& )
- {
- return sal_False;
- }
- catch( SAXException& )
- {
- return sal_False;
- }
- catch( ::com::sun::star::io::IOException& )
- {
- return sal_False;
- }
-}
-
-// #110897#
-sal_Bool EventsConfiguration::StoreEventsConfig(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
- SvStream& rOutStream, const EventsConfig& aItems )
-{
- Reference< XDocumentHandler > xWriter( GetSaxWriter( xServiceFactory ) );
-
- Reference< XOutputStream > xOutputStream(
- (::cppu::OWeakObject *)new utl::OOutputStreamWrapper( rOutStream ),
- UNO_QUERY );
-
- Reference< ::com::sun::star::io::XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
- xDataSource->setOutputStream( xOutputStream );
-
- try
- {
- OWriteEventsDocumentHandler aWriteEventsDocumentHandler( aItems, xWriter );
- aWriteEventsDocumentHandler.WriteEventsDocument();
- return sal_True;
- }
- catch ( RuntimeException& )
- {
- return sal_False;
- }
- catch ( SAXException& )
- {
- return sal_False;
- }
- catch ( ::com::sun::star::io::IOException& )
- {
- return sal_False;
- }
-}
-
-}
-
diff --git a/framework/source/xml/eventsdocumenthandler.cxx b/framework/source/xml/eventsdocumenthandler.cxx
deleted file mode 100644
index a741b2096e86..000000000000
--- a/framework/source/xml/eventsdocumenthandler.cxx
+++ /dev/null
@@ -1,555 +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: eventsdocumenthandler.cxx,v $
- * $Revision: 1.11 $
- *
- * 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/eventsdocumenthandler.hxx>
-#include <macros/debug.hxx>
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-
-#ifndef __COM_SUN_STAR_XML_SAX_XEXTENDEDDOCUMENTHANDLER_HPP_
-#include <com/sun/star/xml/sax/XExtendedDocumentHandler.hpp>
-#endif
-
-//_________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________
-
-#include <sal/config.h>
-#include <vcl/svapp.hxx>
-#include <vcl/toolbox.hxx>
-
-#include <comphelper/attributelist.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::xml::sax;
-
-
-#define XMLNS_EVENT "http://openoffice.org/2001/event"
-#define XMLNS_XLINK "http://www.w3.org/1999/xlink"
-#define XMLNS_EVENT_PREFIX "event:"
-#define XMLNS_XLINK_PREFIX "xlink:"
-
-#define ATTRIBUTE_XMLNS_EVENT "xmlns:event"
-#define ATTRIBUTE_XMLNS_XLINK "xmlns:xlink"
-
-#define XMLNS_FILTER_SEPARATOR "^"
-
-#define ELEMENT_EVENTS "events"
-#define ELEMENT_EVENT "event"
-
-#define ATTRIBUTE_LANGUAGE "language"
-#define ATTRIBUTE_LIBRARY "library"
-#define ATTRIBUTE_NAME "name"
-#define ATTRIBUTE_HREF "href"
-#define ATTRIBUTE_TYPE "type"
-#define ATTRIBUTE_MACRONAME "macro-name"
-
-#define ELEMENT_NS_EVENTS "event:events"
-#define ELEMENT_NS_EVENT "event:event"
-
-#define ATTRIBUTE_TYPE_CDATA "CDATA"
-
-#define EVENTS_DOCTYPE "<!DOCTYPE event:events PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"event.dtd\">"
-
-// Property names for events
-#define PROP_EVENT_TYPE "EventType"
-#define PROP_LIBRARY "Library"
-#define PROP_SCRIPT "Script"
-#define PROP_MACRO_NAME "MacroName"
-#define STAR_BASIC "StarBasic"
-#define JAVA_SCRIPT "JavaScript"
-
-
-namespace framework
-{
-
-struct EventEntryProperty
-{
- OReadEventsDocumentHandler::Event_XML_Namespace nNamespace;
- char aEntryName[20];
-};
-
-static EventEntryProperty EventEntries[OReadEventsDocumentHandler::EV_XML_ENTRY_COUNT] =
-{
- { OReadEventsDocumentHandler::EV_NS_EVENT, ELEMENT_EVENTS },
- { OReadEventsDocumentHandler::EV_NS_EVENT, ELEMENT_EVENT },
- { OReadEventsDocumentHandler::EV_NS_EVENT, ATTRIBUTE_LANGUAGE },
- { OReadEventsDocumentHandler::EV_NS_EVENT, ATTRIBUTE_NAME },
- { OReadEventsDocumentHandler::EV_NS_XLINK, ATTRIBUTE_HREF },
- { OReadEventsDocumentHandler::EV_NS_XLINK, ATTRIBUTE_TYPE },
- { OReadEventsDocumentHandler::EV_NS_EVENT, ATTRIBUTE_MACRONAME },
- { OReadEventsDocumentHandler::EV_NS_EVENT, ATTRIBUTE_LIBRARY }
-};
-
-
-OReadEventsDocumentHandler::OReadEventsDocumentHandler( EventsConfig& aItems ) :
- ThreadHelpBase( &Application::GetSolarMutex() ),
- m_aEventItems( aItems )
-{
- ::rtl::OUString aNamespaceEvent( RTL_CONSTASCII_USTRINGPARAM( XMLNS_EVENT ));
- ::rtl::OUString aNamespaceXLink( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK ));
- ::rtl::OUString aSeparator( RTL_CONSTASCII_USTRINGPARAM( XMLNS_FILTER_SEPARATOR ));
-
- // create hash map
- for ( int i = 0; i < (int)EV_XML_ENTRY_COUNT; i++ )
- {
- if ( EventEntries[i].nNamespace == EV_NS_EVENT )
- {
- ::rtl::OUString temp( aNamespaceEvent );
- temp += aSeparator;
- temp += ::rtl::OUString::createFromAscii( EventEntries[i].aEntryName );
- m_aEventsMap.insert( EventsHashMap::value_type( temp, (Events_XML_Entry)i ) );
- }
- else
- {
- ::rtl::OUString temp( aNamespaceXLink );
- temp += aSeparator;
- temp += ::rtl::OUString::createFromAscii( EventEntries[i].aEntryName );
- m_aEventsMap.insert( EventsHashMap::value_type( temp, (Events_XML_Entry)i ) );
- }
- }
-
- m_bEventsStartFound = sal_False;
- m_bEventsEndFound = sal_False;
- m_bEventStartFound = sal_False;
-}
-
-OReadEventsDocumentHandler::~OReadEventsDocumentHandler()
-{
-}
-
-// XDocumentHandler
-void SAL_CALL OReadEventsDocumentHandler::startDocument(void)
-throw ( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadEventsDocumentHandler::endDocument(void)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- if (( m_bEventsStartFound && !m_bEventsEndFound ) ||
- ( !m_bEventsStartFound && m_bEventsEndFound ) )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "No matching start or end element 'event:events' found!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-void SAL_CALL OReadEventsDocumentHandler::startElement(
- const ::rtl::OUString& aName, const Reference< XAttributeList > &xAttribs )
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- EventsHashMap::const_iterator pEventEntry = m_aEventsMap.find( aName );
- if ( pEventEntry != m_aEventsMap.end() )
- {
- switch ( pEventEntry->second )
- {
- case EV_ELEMENT_EVENTS:
- {
- if ( m_bEventsStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'event:events' cannot be embeded into 'event:events'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bEventsStartFound = sal_True;
- }
- break;
-
- case EV_ELEMENT_EVENT:
- {
- if ( !m_bEventsStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'event:event' must be embeded into element 'event:events'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- if ( m_bEventStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element event:event is not a container!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- ::rtl::OUString aLanguage;
- ::rtl::OUString aURL;
- ::rtl::OUString aMacroName;
- ::rtl::OUString aLibrary;
- ::rtl::OUString aEventName;
-
- m_bEventStartFound = sal_True;
-
- long nIndex = m_aEventItems.aEventNames.getLength();
- long nPropCount = 2; // every event config entry needs at least 2 properties
- Sequence< PropertyValue > aEventProperties( nPropCount );
-
- m_aEventItems.aEventNames.realloc( nIndex + 1 );
-
- for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
- {
- pEventEntry = m_aEventsMap.find( xAttribs->getNameByIndex( n ) );
- if ( pEventEntry != m_aEventsMap.end() )
- {
- switch ( pEventEntry->second )
- {
- case EV_ATTRIBUTE_TYPE:
- {
- aLanguage = xAttribs->getValueByIndex( n );
- }
- break;
-
- case EV_ATTRIBUTE_NAME:
- {
- aEventName = xAttribs->getValueByIndex( n );
- }
- break;
-
- case XL_ATTRIBUTE_HREF:
- {
- aURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- case EV_ATTRIBUTE_MACRONAME:
- {
- aMacroName = xAttribs->getValueByIndex( n );
- }
- break;
-
- case EV_ATTRIBUTE_LIBRARY:
- {
- aLibrary = xAttribs->getValueByIndex( n );
- }
- break;
-
- default:
- break; // nothing to do
- }
- }
- } // for
-
- ::rtl::OUString aRequiredAttributeName;
- if ( aLanguage.getLength() == 0 )
- aRequiredAttributeName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE ));
- else if ( aEventName.getLength() == 0 )
- aRequiredAttributeName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NAME ));
-
- // check for missing attribute values
- if ( aRequiredAttributeName.getLength() > 0 )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute "));
- aErrorMessage += aRequiredAttributeName;
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " must have a value!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- Any a;
-
- // set properties
- a <<= aLanguage;
- aEventProperties[0].Value <<= a;
- aEventProperties[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( PROP_EVENT_TYPE ));
-
- a <<= aMacroName;
- aEventProperties[1].Value <<= a;
- aEventProperties[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( PROP_MACRO_NAME ));
-
- if ( aLibrary.getLength() > 0 )
- {
- ++nPropCount;
- aEventProperties.realloc( nPropCount );
- a <<= aLibrary;
- aEventProperties[nPropCount-1].Value <<= a;
- aEventProperties[nPropCount-1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( PROP_LIBRARY ));
- }
-
- if ( aURL.getLength() > 0 )
- {
- ++nPropCount;
- aEventProperties.realloc( nPropCount );
- a <<= aURL;
- aEventProperties[nPropCount-1].Value <<= a;
- aEventProperties[nPropCount-1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( PROP_SCRIPT ));
- }
-
- // set event name
- m_aEventItems.aEventNames[ nIndex ] = aEventName;
-
- m_aEventItems.aEventsProperties.realloc( nIndex + 1 );
- a <<= aEventProperties;
- m_aEventItems.aEventsProperties[ nIndex ] = a;
- }
- break;
-
- default:
- break;
- }
- }
-}
-
-void SAL_CALL OReadEventsDocumentHandler::endElement(const ::rtl::OUString& aName)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- EventsHashMap::const_iterator pEventEntry = m_aEventsMap.find( aName );
- if ( pEventEntry != m_aEventsMap.end() )
- {
- switch ( pEventEntry->second )
- {
- case EV_ELEMENT_EVENTS:
- {
- if ( !m_bEventsStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'event:events' found, but no start element" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bEventsStartFound = sal_False;
- }
- break;
-
- case EV_ELEMENT_EVENT:
- {
- if ( !m_bEventStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'event:event' found, but no start element" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bEventStartFound = sal_False;
- }
- break;
-
- default:
- break; // impossible case
- }
- }
-}
-
-void SAL_CALL OReadEventsDocumentHandler::characters(const ::rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadEventsDocumentHandler::ignorableWhitespace(const ::rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadEventsDocumentHandler::processingInstruction(
- const ::rtl::OUString& /*aTarget*/, const ::rtl::OUString& /*aData*/ )
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadEventsDocumentHandler::setDocumentLocator(
- const Reference< XLocator > &xLocator)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- m_xLocator = xLocator;
-}
-
-::rtl::OUString OReadEventsDocumentHandler::getErrorLineString()
-{
- ResetableGuard aGuard( m_aLock );
-
- char buffer[32];
-
- if ( m_xLocator.is() )
- {
- snprintf( buffer, sizeof(buffer), "Line: %ld - ", static_cast<long>(m_xLocator->getLineNumber() ));
- return ::rtl::OUString::createFromAscii( buffer );
- }
- else
- return ::rtl::OUString();
-}
-
-
-//_________________________________________________________________________________________________________________
-// OWriteEventsDocumentHandler
-//_________________________________________________________________________________________________________________
-
-OWriteEventsDocumentHandler::OWriteEventsDocumentHandler(
- const EventsConfig& aItems,
- Reference< XDocumentHandler > rWriteDocumentHandler ) :
- ThreadHelpBase( &Application::GetSolarMutex() ),
- m_aItems( aItems ),
- m_xWriteDocumentHandler( rWriteDocumentHandler )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- m_xEmptyList = Reference< XAttributeList >( (XAttributeList *) pList, UNO_QUERY );
- m_aAttributeType = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
- m_aXMLXlinkNS = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK_PREFIX ));
- m_aXMLEventNS = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_EVENT_PREFIX ));
-}
-
-OWriteEventsDocumentHandler::~OWriteEventsDocumentHandler()
-{
-}
-
-void OWriteEventsDocumentHandler::WriteEventsDocument() throw
-( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- m_xWriteDocumentHandler->startDocument();
-
- // write DOCTYPE line!
- Reference< XExtendedDocumentHandler > xExtendedDocHandler( m_xWriteDocumentHandler, UNO_QUERY );
- if ( xExtendedDocHandler.is() )
- {
- xExtendedDocHandler->unknown( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( EVENTS_DOCTYPE )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- }
-
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_EVENT )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_EVENT )) );
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_XLINK )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK )) );
-
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EVENTS )), pList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- Sequence< PropertyValue > aEventProperties;
-
- for ( int i = 0; i < m_aItems.aEventNames.getLength(); i++ )
- {
- if ( m_aItems.aEventsProperties[i] >>= aEventProperties )
- WriteEvent( m_aItems.aEventNames[i], aEventProperties );
- }
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EVENTS )) );
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endDocument();
-}
-
-//_________________________________________________________________________________________________________________
-// protected member functions
-//_________________________________________________________________________________________________________________
-
-void OWriteEventsDocumentHandler::WriteEvent( const ::rtl::OUString& aEventName, const Sequence< PropertyValue >& aPropertyValues ) throw
-( SAXException, RuntimeException )
-{
- if ( aPropertyValues.getLength() > 0 )
- {
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- if ( m_aAttributeURL.getLength() == 0 )
- {
- m_aAttributeURL = m_aXMLXlinkNS;
- m_aAttributeURL += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HREF ));
- m_aAttributeLinkType = m_aXMLXlinkNS;
- m_aAttributeLinkType += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE ));
- m_aAttributeLanguage = m_aXMLEventNS;
- m_aAttributeLanguage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_LANGUAGE ));
- m_aAttributeMacroName = m_aXMLEventNS;
- m_aAttributeMacroName += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MACRONAME ));
- m_aAttributeLibrary = m_aXMLEventNS;
- m_aAttributeLibrary += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_LIBRARY ));
- m_aAttributeName = m_aXMLEventNS;
- m_aAttributeName += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NAME ));
- }
-
- pList->AddAttribute( m_aAttributeName, m_aAttributeType, aEventName );
-
- sal_Bool bURLSet = sal_False;
- ::rtl::OUString aValue;
- ::rtl::OUString aName;
-
- // save attributes
- for ( int i = 0; i < aPropertyValues.getLength(); i++ )
- {
- aPropertyValues[i].Value >>= aValue;
- if ( aPropertyValues[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( PROP_EVENT_TYPE )))
- pList->AddAttribute( m_aAttributeLanguage, m_aAttributeType, aValue );
- else if ( aPropertyValues[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( PROP_MACRO_NAME )) &&
- aValue.getLength() > 0 )
- pList->AddAttribute( m_aAttributeMacroName, m_aAttributeType, aValue );
- else if ( aPropertyValues[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( PROP_LIBRARY )) &&
- aValue.getLength() > 0 )
- pList->AddAttribute( m_aAttributeLibrary, m_aAttributeType, aValue );
- else if ( aPropertyValues[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( PROP_SCRIPT )))
- {
- pList->AddAttribute( m_aAttributeURL, m_aAttributeType, aValue );
- bURLSet = sal_True;
- }
- }
-
- if ( bURLSet )
- pList->AddAttribute( m_aAttributeLinkType, m_aAttributeType, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "simple" )) );
-
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EVENT )), xList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EVENT )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- }
-}
-
-} // namespace framework
-
diff --git a/framework/source/xml/imagesconfiguration.cxx b/framework/source/xml/imagesconfiguration.cxx
deleted file mode 100644
index 9f35a522677c..000000000000
--- a/framework/source/xml/imagesconfiguration.cxx
+++ /dev/null
@@ -1,241 +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: imagesconfiguration.cxx,v $
- * $Revision: 1.9 $
- *
- * 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 <xml/imagesconfiguration.hxx>
-#include <services.h>
-
-#ifndef __FRAMEWORK_CLASSES_IMAGESDOCUMENTHANDLER_HXX_
-#include <xml/imagesdocumenthandler.hxx>
-#endif
-#include <xml/saxnamespacefilter.hxx>
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-#include <com/sun/star/xml/sax/XParser.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-//_________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________
-
-#ifndef _UNOTOOLS_PROCESSFACTORY_HXX
-#include <comphelper/processfactory.hxx>
-#endif
-#include <unotools/streamwrap.hxx>
-#include <tools/debug.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::io;
-
-
-namespace framework
-{
-
-SV_IMPL_PTRARR( ImageItemListDescriptor, ImageItemDescriptorPtr );
-SV_IMPL_PTRARR( ExternalImageItemListDescriptor, ExternalImageItemDescriptorPtr );
-SV_IMPL_PTRARR( ImageListDescriptor, ImageListItemDescriptorPtr );
-
-static Reference< XParser > GetSaxParser(
- // #110897#
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
- )
-{
- //Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
- //return Reference< XParser >( xServiceManager->createInstance( SERVICENAME_SAXPARSER), UNO_QUERY);
- return Reference< XParser >( xServiceFactory->createInstance( SERVICENAME_SAXPARSER), UNO_QUERY);
-}
-
-static Reference< XDocumentHandler > GetSaxWriter(
- // #110897#
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
- )
-{
- //Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
- //return Reference< XDocumentHandler >( xServiceManager->createInstance( SERVICENAME_SAXWRITER), UNO_QUERY) ;
- return Reference< XDocumentHandler >( xServiceFactory->createInstance( SERVICENAME_SAXWRITER), UNO_QUERY) ;
-}
-
-// #110897#
-sal_Bool ImagesConfiguration::LoadImages(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
- SvStream& rInStream, ImageListsDescriptor& aItems )
-{
- Reference< XParser > xParser( GetSaxParser( xServiceFactory ) );
- Reference< XInputStream > xInputStream(
- (::cppu::OWeakObject *)new utl::OInputStreamWrapper( rInStream ),
- UNO_QUERY );
-
- // connect stream to input stream to the parser
- InputSource aInputSource;
-
- aInputSource.aInputStream = xInputStream;
-
- // create namespace filter and set document handler inside to support xml namespaces
- Reference< XDocumentHandler > xDocHandler( new OReadImagesDocumentHandler( aItems ));
- Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
-
- // connect parser and filter
- xParser->setDocumentHandler( xFilter );
-
- try
- {
- xParser->parseStream( aInputSource );
- return sal_True;
- }
- catch ( RuntimeException& )
- {
- return sal_False;
- }
- catch( SAXException& )
- {
- return sal_False;
- }
- catch( ::com::sun::star::io::IOException& )
- {
- return sal_False;
- }
-}
-
-
-// #110897#
-sal_Bool ImagesConfiguration::StoreImages(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
- SvStream& rOutStream, const ImageListsDescriptor& aItems )
-{
- Reference< XDocumentHandler > xWriter( GetSaxWriter( xServiceFactory ) );
-
- Reference< XOutputStream > xOutputStream(
- (::cppu::OWeakObject *)new utl::OOutputStreamWrapper( rOutStream ),
- UNO_QUERY );
-
- Reference< ::com::sun::star::io::XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
- xDataSource->setOutputStream( xOutputStream );
-
- try
- {
- OWriteImagesDocumentHandler aWriteImagesDocumentHandler( aItems, xWriter );
- aWriteImagesDocumentHandler.WriteImagesDocument();
- return sal_True;
- }
- catch ( RuntimeException& )
- {
- return sal_False;
- }
- catch ( SAXException& )
- {
- return sal_False;
- }
- catch ( ::com::sun::star::io::IOException& )
- {
- return sal_False;
- }
-}
-
-sal_Bool ImagesConfiguration::LoadImages(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
- const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rInputStream,
- ImageListsDescriptor& rItems )
-{
- Reference< XParser > xParser( GetSaxParser( xServiceFactory ) );
-
- // connect stream to input stream to the parser
- InputSource aInputSource;
-
- aInputSource.aInputStream = rInputStream;
-
- // create namespace filter and set document handler inside to support xml namespaces
- Reference< XDocumentHandler > xDocHandler( new OReadImagesDocumentHandler( rItems ));
- Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
-
- // connect parser and filter
- xParser->setDocumentHandler( xFilter );
-
- try
- {
- xParser->parseStream( aInputSource );
- return sal_True;
- }
- catch ( RuntimeException& )
- {
- return sal_False;
- }
- catch( SAXException& )
- {
- return sal_False;
- }
- catch( ::com::sun::star::io::IOException& )
- {
- return sal_False;
- }
-}
-
-sal_Bool ImagesConfiguration::StoreImages(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
- const ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream >& rOutputStream,
- const ImageListsDescriptor& rItems )
-{
- Reference< XDocumentHandler > xWriter( GetSaxWriter( xServiceFactory ) );
-
- Reference< ::com::sun::star::io::XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
- xDataSource->setOutputStream( rOutputStream );
-
- try
- {
- OWriteImagesDocumentHandler aWriteImagesDocumentHandler( rItems, xWriter );
- aWriteImagesDocumentHandler.WriteImagesDocument();
- return sal_True;
- }
- catch ( RuntimeException& )
- {
- return sal_False;
- }
- catch ( SAXException& )
- {
- return sal_False;
- }
- catch ( ::com::sun::star::io::IOException& )
- {
- return sal_False;
- }
-}
-
-}
-
diff --git a/framework/source/xml/imagesdocumenthandler.cxx b/framework/source/xml/imagesdocumenthandler.cxx
deleted file mode 100644
index eff0a1f45ab5..000000000000
--- a/framework/source/xml/imagesdocumenthandler.cxx
+++ /dev/null
@@ -1,854 +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: imagesdocumenthandler.cxx,v $
- * $Revision: 1.11 $
- *
- * 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/imagesdocumenthandler.hxx>
-#include <macros/debug.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>
-#include <rtl/ustrbuf.hxx>
-
-#include <comphelper/attributelist.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::xml::sax;
-
-#define ELEMENT_IMAGECONTAINER "imagescontainer"
-#define ELEMENT_IMAGES "images"
-#define ELEMENT_ENTRY "entry"
-#define ELEMENT_EXTERNALIMAGES "externalimages"
-#define ELEMENT_EXTERNALENTRY "externalentry"
-
-#define ELEMENT_NS_IMAGESCONTAINER "image:imagescontainer"
-#define ELEMENT_NS_IMAGES "image:images"
-#define ELEMENT_NS_ENTRY "image:entry"
-#define ELEMENT_NS_EXTERNALIMAGES "image:externalimages"
-#define ELEMENT_NS_EXTERNALENTRY "image:externalentry"
-
-#define ATTRIBUTE_HREF "href"
-#define ATTRIBUTE_MASKCOLOR "maskcolor"
-#define ATTRIBUTE_COMMAND "command"
-#define ATTRIBUTE_BITMAPINDEX "bitmap-index"
-#define ATTRIBUTE_MASKURL "maskurl"
-#define ATTRIBUTE_MASKMODE "maskmode"
-#define ATTRIBUTE_HIGHCONTRASTURL "highcontrasturl"
-#define ATTRIBUTE_HIGHCONTRASTMASKURL "highcontrastmaskurl"
-#define ATTRIBUTE_TYPE_CDATA "CDATA"
-
-#define ATTRIBUTE_MASKMODE_BITMAP "maskbitmap"
-#define ATTRIBUTE_MASKMODE_COLOR "maskcolor"
-
-#define ATTRIBUTE_XMLNS_IMAGE "xmlns:image"
-#define ATTRIBUTE_XMLNS_XLINK "xmlns:xlink"
-
-#define ATTRIBUTE_XLINK_TYPE "xlink:type"
-#define ATTRIBUTE_XLINK_TYPE_VALUE "simple"
-
-#define XMLNS_IMAGE "http://openoffice.org/2001/image"
-#define XMLNS_XLINK "http://www.w3.org/1999/xlink"
-#define XMLNS_IMAGE_PREFIX "image:"
-#define XMLNS_XLINK_PREFIX "xlink:"
-
-#define XMLNS_FILTER_SEPARATOR "^"
-
-#define IMAGES_DOCTYPE "<!DOCTYPE image:imagecontainer PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"image.dtd\">"
-
-namespace framework
-{
-
-struct ImageXMLEntryProperty
-{
- OReadImagesDocumentHandler::Image_XML_Namespace nNamespace;
- char aEntryName[20];
-};
-
-ImageXMLEntryProperty ImagesEntries[OReadImagesDocumentHandler::IMG_XML_ENTRY_COUNT] =
-{
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ELEMENT_IMAGECONTAINER },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ELEMENT_IMAGES },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ELEMENT_ENTRY },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ELEMENT_EXTERNALIMAGES },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ELEMENT_EXTERNALENTRY },
- { OReadImagesDocumentHandler::IMG_NS_XLINK, ATTRIBUTE_HREF },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_MASKCOLOR },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_COMMAND },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_BITMAPINDEX },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_MASKURL },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_MASKMODE },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_HIGHCONTRASTURL },
- { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_HIGHCONTRASTMASKURL }
-};
-
-
-OReadImagesDocumentHandler::OReadImagesDocumentHandler( ImageListsDescriptor& aItems ) :
- ThreadHelpBase( &Application::GetSolarMutex() ),
- m_aImageList( aItems ),
- m_pImages( 0 ),
- m_pExternalImages( 0 )
-{
- m_aImageList.pImageList = NULL;
- m_aImageList.pExternalImageList = NULL;
-
- m_nHashMaskModeBitmap = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE_BITMAP )).hashCode();
- m_nHashMaskModeColor = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE_COLOR )).hashCode();
-
- // create hash map to speed up lookup
- for ( int i = 0; i < (int)IMG_XML_ENTRY_COUNT; i++ )
- {
- ::rtl::OUStringBuffer temp( 20 );
-
- if ( ImagesEntries[i].nNamespace == IMG_NS_IMAGE )
- temp.appendAscii( XMLNS_IMAGE );
- else
- temp.appendAscii( XMLNS_XLINK );
-
- temp.appendAscii( XMLNS_FILTER_SEPARATOR );
- temp.appendAscii( ImagesEntries[i].aEntryName );
- m_aImageMap.insert( ImageHashMap::value_type( temp.makeStringAndClear(), (Image_XML_Entry)i ) );
- }
-
- // reset states
- m_bImageContainerStartFound = sal_False;
- m_bImageContainerEndFound = sal_False;
- m_bImagesStartFound = sal_False;
- m_bImagesEndFound = sal_False;
- m_bImageStartFound = sal_False;
- m_bExternalImagesStartFound = sal_False;
- m_bExternalImagesEndFound = sal_False;
- m_bExternalImageStartFound = sal_False;
-}
-
-OReadImagesDocumentHandler::~OReadImagesDocumentHandler()
-{
-}
-
-// XDocumentHandler
-void SAL_CALL OReadImagesDocumentHandler::startDocument(void)
-throw ( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadImagesDocumentHandler::endDocument(void)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- if (( m_bImageContainerStartFound && !m_bImageContainerEndFound ) ||
- ( !m_bImageContainerStartFound && m_bImageContainerEndFound ) )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "No matching start or end element 'image:imagecontainer' found!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-void SAL_CALL OReadImagesDocumentHandler::startElement(
- const ::rtl::OUString& aName, const Reference< XAttributeList > &xAttribs )
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- ImageHashMap::const_iterator pImageEntry = m_aImageMap.find( aName ) ;
- if ( pImageEntry != m_aImageMap.end() )
- {
- switch ( pImageEntry->second )
- {
- case IMG_ELEMENT_IMAGECONTAINER:
- {
- // image:imagecontainer element (container element for all further image elements)
- if ( m_bImageContainerStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:imagecontainer' cannot be embeded into 'image:imagecontainer'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bImageContainerStartFound = sal_True;
- }
- break;
-
- case IMG_ELEMENT_IMAGES:
- {
- if ( !m_bImageContainerStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:images' must be embeded into element 'image:imagecontainer'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- if ( m_bImagesStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:images' cannot be embeded into 'image:images'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- if ( !m_aImageList.pImageList )
- m_aImageList.pImageList = new ImageListDescriptor;
-
- m_bImagesStartFound = sal_True;
- m_pImages = new ImageListItemDescriptor;
-
- for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
- {
- pImageEntry = m_aImageMap.find( xAttribs->getNameByIndex( n ) );
- if ( pImageEntry != m_aImageMap.end() )
- {
- switch ( pImageEntry->second )
- {
- case IMG_ATTRIBUTE_HREF:
- {
- m_pImages->aURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- case IMG_ATTRIBUTE_MASKCOLOR:
- {
- ::rtl::OUString aColor = xAttribs->getValueByIndex( n );
-
- if ( aColor.getLength() > 0 )
- {
- if ( aColor.getStr()[0] == '#' )
- {
- // the color value is given as #rrggbb and used the hexadecimal system!!
- sal_uInt32 nColor = aColor.copy( 1 ).toInt32( 16 );
-
- m_pImages->aMaskColor = Color( COLORDATA_RGB( nColor ) );
- }
- }
- }
- break;
-
- case IMG_ATTRIBUTE_MASKURL:
- {
- m_pImages->aMaskURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- case IMG_ATTRIBUTE_MASKMODE:
- {
- sal_Int32 nHashCode = xAttribs->getValueByIndex( n ).hashCode();
- if ( nHashCode == m_nHashMaskModeBitmap )
- m_pImages->nMaskMode = ImageMaskMode_Bitmap;
- else if ( nHashCode == m_nHashMaskModeColor )
- m_pImages->nMaskMode = ImageMaskMode_Color;
- else
- {
- delete m_pImages;
- m_pImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Attribute image:maskmode must be 'maskcolor' or 'maskbitmap'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- break;
-
- case IMG_ATTRIBUTE_HIGHCONTRASTURL:
- {
- m_pImages->aHighContrastURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- case IMG_ATTRIBUTE_HIGHCONTRASTMASKURL:
- {
- m_pImages->aHighContrastMaskURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- default:
- break;
- }
- }
- } // for
-
- if ( m_pImages->aURL.Len() == 0 )
- {
- delete m_pImages;
- m_pImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute xlink:href must have a value!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- break;
-
- case IMG_ELEMENT_ENTRY:
- {
- // Check that image:entry is embeded into image:images!
- if ( !m_bImagesStartFound )
- {
- delete m_pImages;
- m_pImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:entry' must be embeded into element 'image:images'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- if ( !m_pImages->pImageItemList )
- m_pImages->pImageItemList = new ImageItemListDescriptor;
-
- m_bImageStartFound = sal_True;
-
- // Create new image item descriptor
- ImageItemDescriptor* pItem = new ImageItemDescriptor;
- pItem->nIndex = -1;
-
- // Read attributes for this image definition
- for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
- {
- pImageEntry = m_aImageMap.find( xAttribs->getNameByIndex( n ) );
- if ( pImageEntry != m_aImageMap.end() )
- {
- switch ( pImageEntry->second )
- {
- case IMG_ATTRIBUTE_COMMAND:
- {
- pItem->aCommandURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- case IMG_ATTRIBUTE_BITMAPINDEX:
- {
- pItem->nIndex = xAttribs->getValueByIndex( n ).toInt32();
- }
- break;
-
- default:
- break;
- }
- }
- }
-
- // Check required attribute "bitmap-index"
- if ( pItem->nIndex < 0 )
- {
- delete pItem;
- delete m_pImages;
- m_pImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute 'image:bitmap-index' must have a value >= 0!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- // Check required attribute "command"
- if ( pItem->aCommandURL.Len() == 0 )
- {
- delete pItem;
- delete m_pImages;
- m_pImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute 'image:command' must have a value!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- if ( m_pImages )
- m_pImages->pImageItemList->Insert( pItem, m_pImages->pImageItemList->Count() );
- }
- break;
-
- case IMG_ELEMENT_EXTERNALIMAGES:
- {
- // Check that image:externalimages is embeded into image:imagecontainer
- if ( !m_bImageContainerStartFound )
- {
- delete m_pImages;
- m_pImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:externalimages' must be embeded into element 'image:imagecontainer'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- // Check that image:externalentry is NOT embeded into image:externalentry
- if ( m_bExternalImagesStartFound )
- {
- delete m_pImages;
- m_pImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:externalimages' cannot be embeded into 'image:externalimages'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- // Create unique external image container
- m_bExternalImagesStartFound = sal_True;
- m_pExternalImages = new ExternalImageItemListDescriptor;
- }
- break;
-
- case IMG_ELEMENT_EXTERNALENTRY:
- {
- if ( !m_bExternalImagesStartFound )
- {
- delete m_pImages;
- delete m_pExternalImages;
- m_pImages = NULL;
- m_pExternalImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:externalentry' must be embeded into 'image:externalimages'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- if ( m_bExternalImageStartFound )
- {
- delete m_pImages;
- delete m_pExternalImages;
- m_pImages = NULL;
- m_pExternalImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:externalentry' cannot be embeded into 'image:externalentry'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bExternalImageStartFound = sal_True;
-
- ExternalImageItemDescriptor* pItem = new ExternalImageItemDescriptor;
-
- // Read attributes for this external image definition
- for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
- {
- pImageEntry = m_aImageMap.find( xAttribs->getNameByIndex( n ) );
- if ( pImageEntry != m_aImageMap.end() )
- {
- switch ( pImageEntry->second )
- {
- case IMG_ATTRIBUTE_COMMAND:
- {
- pItem->aCommandURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- case IMG_ATTRIBUTE_HREF:
- {
- pItem->aURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- default:
- break;
- }
- }
- }
-
- // Check required attribute "command"
- if ( pItem->aCommandURL.Len() == 0 )
- {
- delete pItem;
- delete m_pImages;
- delete m_pExternalImages;
- m_pImages = NULL;
- m_pExternalImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute 'image:command' must have a value!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- // Check required attribute "href"
- if ( pItem->aURL.Len() == 0 )
- {
- delete pItem;
- delete m_pImages;
- delete m_pExternalImages;
- m_pImages = NULL;
- m_pExternalImages = NULL;
-
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute 'xlink:href' must have a value!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- if ( m_pExternalImages )
- m_pExternalImages->Insert( pItem, m_pExternalImages->Count() );
- }
- break;
-
- default:
- break;
- }
- }
-}
-
-void SAL_CALL OReadImagesDocumentHandler::endElement(const ::rtl::OUString& aName)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- ImageHashMap::const_iterator pImageEntry = m_aImageMap.find( aName ) ;
- if ( pImageEntry != m_aImageMap.end() )
- {
- switch ( pImageEntry->second )
- {
- case IMG_ELEMENT_IMAGECONTAINER:
- {
- m_bImageContainerEndFound = sal_True;
- }
- break;
-
- case IMG_ELEMENT_IMAGES:
- {
- if ( m_pImages )
- {
- if ( m_aImageList.pImageList )
- m_aImageList.pImageList->Insert( m_pImages, m_aImageList.pImageList->Count() );
- m_pImages = NULL;
- }
- m_bImagesStartFound = sal_False;
- }
- break;
-
- case IMG_ELEMENT_ENTRY:
- {
- m_bImageStartFound = sal_False;
- }
- break;
-
- case IMG_ELEMENT_EXTERNALIMAGES:
- {
- if ( m_pExternalImages && !m_aImageList.pExternalImageList )
- {
- if ( !m_aImageList.pExternalImageList )
- m_aImageList.pExternalImageList = m_pExternalImages;
- }
-
- m_bExternalImagesStartFound = sal_False;
- m_pExternalImages = NULL;
- }
- break;
-
- case IMG_ELEMENT_EXTERNALENTRY:
- {
- m_bExternalImageStartFound = sal_False;
- }
- break;
-
- default:
- break;
- }
- }
-}
-
-void SAL_CALL OReadImagesDocumentHandler::characters(const ::rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadImagesDocumentHandler::ignorableWhitespace(const ::rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadImagesDocumentHandler::processingInstruction(
- const ::rtl::OUString& /*aTarget*/, const ::rtl::OUString& /*aData*/ )
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadImagesDocumentHandler::setDocumentLocator(
- const Reference< XLocator > &xLocator)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- m_xLocator = xLocator;
-}
-
-::rtl::OUString OReadImagesDocumentHandler::getErrorLineString()
-{
- ResetableGuard aGuard( m_aLock );
-
- char buffer[32];
-
- if ( m_xLocator.is() )
- {
- snprintf( buffer, sizeof(buffer), "Line: %ld - ", static_cast<long>( m_xLocator->getLineNumber() ));
- return ::rtl::OUString::createFromAscii( buffer );
- }
- else
- return ::rtl::OUString();
-}
-
-
-//_________________________________________________________________________________________________________________
-// OWriteImagesDocumentHandler
-//_________________________________________________________________________________________________________________
-
-OWriteImagesDocumentHandler::OWriteImagesDocumentHandler(
- const ImageListsDescriptor& aItems,
- Reference< XDocumentHandler > rWriteDocumentHandler ) :
- ThreadHelpBase( &Application::GetSolarMutex() ),
- m_aImageListsItems( aItems ),
- m_xWriteDocumentHandler( rWriteDocumentHandler )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- m_xEmptyList = Reference< XAttributeList >( (XAttributeList *) pList, UNO_QUERY );
- m_aAttributeType = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
- m_aXMLImageNS = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_IMAGE_PREFIX ));
- m_aXMLXlinkNS = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK_PREFIX ));
- m_aAttributeXlinkType = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XLINK_TYPE ));
- m_aAttributeValueSimple = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XLINK_TYPE_VALUE ));
-}
-
-OWriteImagesDocumentHandler::~OWriteImagesDocumentHandler()
-{
-}
-
-void OWriteImagesDocumentHandler::WriteImagesDocument() throw
-( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- m_xWriteDocumentHandler->startDocument();
-
- // write DOCTYPE line!
- Reference< XExtendedDocumentHandler > xExtendedDocHandler( m_xWriteDocumentHandler, UNO_QUERY );
- if ( xExtendedDocHandler.is() )
- {
- xExtendedDocHandler->unknown( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMAGES_DOCTYPE )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- }
-
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_IMAGE )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_IMAGE )) );
-
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_XLINK )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK )) );
-
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_IMAGESCONTAINER )), pList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- if ( m_aImageListsItems.pImageList )
- {
- ImageListDescriptor* pImageList = m_aImageListsItems.pImageList;
-
- for ( USHORT i = 0; i < m_aImageListsItems.pImageList->Count(); i++ )
- {
- const ImageListItemDescriptor* pImageItems = (*pImageList)[i];
- WriteImageList( pImageItems );
- }
- }
-
- if ( m_aImageListsItems.pExternalImageList )
- {
- WriteExternalImageList( m_aImageListsItems.pExternalImageList );
- }
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_IMAGESCONTAINER )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endDocument();
-}
-
-//_________________________________________________________________________________________________________________
-// protected member functions
-//_________________________________________________________________________________________________________________
-
-void OWriteImagesDocumentHandler::WriteImageList( const ImageListItemDescriptor* pImageList ) throw
-( SAXException, RuntimeException )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- // save required attributes
- pList->AddAttribute( m_aAttributeXlinkType,
- m_aAttributeType,
- m_aAttributeValueSimple );
-
- pList->AddAttribute( m_aXMLXlinkNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HREF )),
- m_aAttributeType,
- pImageList->aURL );
-
- if ( pImageList->nMaskMode == ImageMaskMode_Bitmap )
- {
- pList->AddAttribute( m_aXMLImageNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE_BITMAP )) );
-
- pList->AddAttribute( m_aXMLImageNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKURL )),
- m_aAttributeType,
- pImageList->aMaskURL );
-
- if ( pImageList->aHighContrastMaskURL.Len() > 0 )
- {
- pList->AddAttribute( m_aXMLImageNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HIGHCONTRASTMASKURL )),
- m_aAttributeType,
- pImageList->aHighContrastMaskURL );
- }
- }
- else
- {
- ::rtl::OUStringBuffer aColorStrBuffer( 8 );
- sal_Int64 nValue = pImageList->aMaskColor.GetRGBColor();
-
- aColorStrBuffer.appendAscii( "#" );
- aColorStrBuffer.append( ::rtl::OUString::valueOf( nValue, 16 ));
-
- pList->AddAttribute( m_aXMLImageNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKCOLOR )),
- m_aAttributeType,
- aColorStrBuffer.makeStringAndClear() );
-
- pList->AddAttribute( m_aXMLImageNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE_COLOR )) );
- }
-
- if ( pImageList->aHighContrastURL.Len() > 0 )
- {
- pList->AddAttribute( m_aXMLImageNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HIGHCONTRASTURL )),
- m_aAttributeType,
- pImageList->aHighContrastURL );
- }
-
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_IMAGES )), xList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- ImageItemListDescriptor* pImageItemList = pImageList->pImageItemList;
- if ( pImageItemList )
- {
- for ( USHORT i = 0; i < pImageItemList->Count(); i++ )
- WriteImage( (*pImageItemList)[i] );
- }
-
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_IMAGES )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-}
-
-void OWriteImagesDocumentHandler::WriteImage( const ImageItemDescriptor* pImage ) throw
-( SAXException, RuntimeException )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- pList->AddAttribute( m_aXMLImageNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_BITMAPINDEX )),
- m_aAttributeType,
- ::rtl::OUString::valueOf( (sal_Int32)pImage->nIndex ) );
-
- pList->AddAttribute( m_aXMLImageNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_COMMAND )),
- m_aAttributeType,
- pImage->aCommandURL );
-
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_ENTRY )), xList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_ENTRY )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-}
-
-void OWriteImagesDocumentHandler::WriteExternalImageList( const ExternalImageItemListDescriptor* pExternalImageList ) throw
-( SAXException, RuntimeException )
-{
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EXTERNALIMAGES )), m_xEmptyList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- for ( USHORT i = 0; i < pExternalImageList->Count(); i++ )
- {
- ExternalImageItemDescriptor* pItem = (*pExternalImageList)[i];
- WriteExternalImage( pItem );
- }
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EXTERNALIMAGES )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-}
-
-void OWriteImagesDocumentHandler::WriteExternalImage( const ExternalImageItemDescriptor* pExternalImage ) throw
-( SAXException, RuntimeException )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- // save required attributes
- pList->AddAttribute( m_aAttributeXlinkType,
- m_aAttributeType,
- m_aAttributeValueSimple );
-
- if ( pExternalImage->aURL.Len() > 0 )
- {
- pList->AddAttribute( m_aXMLXlinkNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HREF )),
- m_aAttributeType,
- pExternalImage->aURL );
- }
-
- if ( pExternalImage->aCommandURL.Len() > 0 )
- {
- pList->AddAttribute( m_aXMLImageNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_COMMAND )),
- m_aAttributeType,
- pExternalImage->aCommandURL );
- }
-
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EXTERNALENTRY )), xList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EXTERNALENTRY )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-}
-
-} // namespace framework
-
-
-
-
diff --git a/framework/source/xml/makefile.mk b/framework/source/xml/makefile.mk
index 2d610ca0f3d9..4f37b22f40fc 100644
--- a/framework/source/xml/makefile.mk
+++ b/framework/source/xml/makefile.mk
@@ -41,21 +41,8 @@ ENABLE_EXCEPTIONS= TRUE
# --- 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)$/toolboxlayoutdocumenthandler.obj \
- $(SLO)$/saxnamespacefilter.obj \
- $(SLO)$/xmlnamespaces.obj \
- $(SLO)$/acceleratorconfigurationreader.obj \
- $(SLO)$/acceleratorconfigurationwriter.obj
+ $(SLO)$/acceleratorconfigurationreader.obj \
+ $(SLO)$/acceleratorconfigurationwriter.obj \
# --- Targets ------------------------------------------------------
diff --git a/framework/source/xml/menuconfiguration.cxx b/framework/source/xml/menuconfiguration.cxx
deleted file mode 100644
index dcaf354891f6..000000000000
--- a/framework/source/xml/menuconfiguration.cxx
+++ /dev/null
@@ -1,190 +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: menuconfiguration.cxx,v $
- * $Revision: 1.7 $
- *
- * 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 <xml/menuconfiguration.hxx>
-
-#ifndef __FRAMEWORK_CLASSES_BMKMENU_HXX_
-#include <classes/bmkmenu.hxx>
-#endif
-#include <classes/addonmenu.hxx>
-#include <xml/menudocumenthandler.hxx>
-#include <xml/saxnamespacefilter.hxx>
-#include <services.h>
-
-#ifndef _FRAMEWORK_UIELEMENT_ROOTITEMCONTAINER_HXX_
-#include <uielement/rootitemcontainer.hxx>
-#endif
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-#include <com/sun/star/xml/sax/XParser.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/frame/XFrame.hpp>
-
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::io;
-
-namespace framework
-{
-
-BOOL MenuConfiguration::IsPickListItemId( USHORT nId )
-{
- return (( START_ITEMID_PICKLIST <= nId ) && ( nId <= END_ITEMID_PICKLIST ));
-}
-
-BOOL MenuConfiguration::IsWindowListItemId( USHORT nId )
-{
- return (( START_ITEMID_WINDOWLIST <= nId ) && ( nId <= END_ITEMID_WINDOWLIST ));
-}
-
-
-MenuConfiguration::MenuConfiguration(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rServiceManager )
-: m_rxServiceManager( rServiceManager )
-{
-}
-
-
-MenuConfiguration::~MenuConfiguration()
-{
-}
-
-
-Reference< XIndexAccess > MenuConfiguration::CreateMenuBarConfigurationFromXML(
- Reference< XInputStream >& rInputStream )
-throw ( WrappedTargetException )
-{
- Reference< XParser > xParser( m_rxServiceManager->createInstance(SERVICENAME_SAXPARSER),UNO_QUERY);
-
- // connect stream to input stream to the parser
- InputSource aInputSource;
-
- aInputSource.aInputStream = rInputStream;
-
-
- // create menu bar
- Reference< XIndexContainer > xItemContainer( static_cast< cppu::OWeakObject *>( new RootItemContainer()), UNO_QUERY );
-
- // create namespace filter and set menudocument handler inside to support xml namespaces
-
- // #110897# Reference< XDocumentHandler > xDocHandler( new OReadMenuDocumentHandler( xItemContainer ));
- Reference< XDocumentHandler > xDocHandler( new OReadMenuDocumentHandler( m_rxServiceManager, xItemContainer ));
-
- Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
-
- // connect parser and filter
- xParser->setDocumentHandler( xFilter );
-
- try
- {
- xParser->parseStream( aInputSource );
- return Reference< XIndexAccess >( xItemContainer, UNO_QUERY );
- }
- catch ( RuntimeException& e )
- {
- throw WrappedTargetException( e.Message, Reference< XInterface >(), Any() );
- }
- catch( SAXException& e )
- {
- SAXException aWrappedSAXException;
-
- if ( !( e.WrappedException >>= aWrappedSAXException ))
- throw WrappedTargetException( e.Message, Reference< XInterface >(), Any() );
- else
- throw WrappedTargetException( aWrappedSAXException.Message, Reference< XInterface >(), Any() );
- }
- catch( ::com::sun::star::io::IOException& e )
- {
- throw WrappedTargetException( e.Message, Reference< XInterface >(), Any() );
- }
-}
-
-PopupMenu* MenuConfiguration::CreateBookmarkMenu(
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame,
- const ::rtl::OUString& aURL )
-throw ( ::com::sun::star::lang::WrappedTargetException )
-{
- if ( aURL == BOOKMARK_NEWMENU )
- return new BmkMenu( rFrame, BmkMenu::BMK_NEWMENU );
- else if ( aURL == BOOKMARK_WIZARDMENU )
- return new BmkMenu( rFrame, BmkMenu::BMK_WIZARDMENU );
- else
- return NULL;
-}
-
-void MenuConfiguration::StoreMenuBarConfigurationToXML(
- Reference< XIndexAccess >& rMenuBarConfiguration,
- Reference< XOutputStream >& rOutputStream )
-throw ( WrappedTargetException )
-{
- Reference< XDocumentHandler > xWriter;
-
- xWriter = Reference< XDocumentHandler >( m_rxServiceManager->createInstance(
- SERVICENAME_SAXWRITER), UNO_QUERY) ;
-
- Reference< XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
- xDataSource->setOutputStream( rOutputStream );
-
- try
- {
- OWriteMenuDocumentHandler aWriteMenuDocumentHandler( rMenuBarConfiguration, xWriter );
- aWriteMenuDocumentHandler.WriteMenuDocument();
- }
- catch ( RuntimeException& e )
- {
- throw WrappedTargetException( e.Message, Reference< XInterface >(), Any() );
- }
- catch ( SAXException& e )
- {
- throw WrappedTargetException( e.Message, Reference< XInterface >(), Any() );
- }
- catch ( ::com::sun::star::io::IOException& e )
- {
- throw WrappedTargetException( e.Message, Reference< XInterface >(), Any() );
- }
-}
-
-}
-
diff --git a/framework/source/xml/menudocumenthandler.cxx b/framework/source/xml/menudocumenthandler.cxx
deleted file mode 100644
index 2422d516d0ac..000000000000
--- a/framework/source/xml/menudocumenthandler.cxx
+++ /dev/null
@@ -1,914 +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: menudocumenthandler.cxx,v $
- * $Revision: 1.15 $
- *
- * 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 <xml/menudocumenthandler.hxx>
-#include <xml/menuconfiguration.hxx>
-#include <classes/addonmenu.hxx>
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-
-#include <com/sun/star/xml/sax/XExtendedDocumentHandler.hpp>
-#include <com/sun/star/lang/XSingleComponentFactory.hpp>
-#include <com/sun/star/ui/ItemType.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-//_________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________
-#include <comphelper/processfactory.hxx>
-#include <rtl/logfile.hxx>
-#include <comphelper/attributelist.hxx>
-
-//_________________________________________________________________________________________________________________
-// defines
-//_________________________________________________________________________________________________________________
-
-#define XMLNS_MENU "http://openoffice.org/2001/menu"
-#define XMLNS_PREFIX "menu:"
-
-#define ELEMENT_MENUBAR "http://openoffice.org/2001/menu^menubar"
-#define ELEMENT_MENU "http://openoffice.org/2001/menu^menu"
-#define ELEMENT_MENUPOPUP "http://openoffice.org/2001/menu^menupopup"
-#define ELEMENT_MENUITEM "http://openoffice.org/2001/menu^menuitem"
-#define ELEMENT_MENUSEPARATOR "http://openoffice.org/2001/menu^menuseparator"
-
-#define ELEMENT_NS_MENUBAR "menu:menubar"
-#define ELEMENT_NS_MENU "menu:menu"
-#define ELEMENT_NS_MENUPOPUP "menu:menupopup"
-#define ELEMENT_NS_MENUITEM "menu:menuitem"
-#define ELEMENT_NS_MENUSEPARATOR "menu:menuseparator"
-
-#define ATTRIBUTE_ID "http://openoffice.org/2001/menu^id"
-#define ATTRIBUTE_LABEL "http://openoffice.org/2001/menu^label"
-#define ATTRIBUTE_HELPID "http://openoffice.org/2001/menu^helpid"
-#define ATTRIBUTE_LINEBREAK "http://openoffice.org/2001/menu^linebreak"
-
-#define ATTRIBUTE_NS_ID "menu:id"
-#define ATTRIBUTE_NS_LABEL "menu:label"
-#define ATTRIBUTE_NS_HELPID "menu:helpid"
-#define ATTRIBUTE_NS_LINEBREAK "menu:linebreak"
-
-#define ATTRIBUTE_XMLNS_MENU "xmlns:menu"
-
-#define ATTRIBUTE_TYPE_CDATA "CDATA"
-
-#define MENUBAR_DOCTYPE "<!DOCTYPE menu:menubar PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"menubar.dtd\">"
-
-// Property names of a menu/menu item ItemDescriptor
-static const char ITEM_DESCRIPTOR_COMMANDURL[] = "CommandURL";
-static const char ITEM_DESCRIPTOR_HELPURL[] = "HelpURL";
-static const char ITEM_DESCRIPTOR_CONTAINER[] = "ItemDescriptorContainer";
-static const char ITEM_DESCRIPTOR_LABEL[] = "Label";
-static const char ITEM_DESCRIPTOR_TYPE[] = "Type";
-
-// special popup menus (filled during runtime) must be saved as an empty popup menu or menuitem!!!
-static const sal_Int32 CMD_PROTOCOL_SIZE = 5;
-static const char CMD_PROTOCOL[] = ".uno:";
-static const char ADDDIRECT_CMD[] = ".uno:AddDirect" ;
-static const char AUTOPILOTMENU_CMD[] = ".uno:AutoPilotMenu" ;
-static const char FILEMENU_CMD[] = ".uno:Picklist" ;
-static const char WINDOWMENU_CMD[] = ".uno:WindowList" ;
-
-//_________________________________________________________________________________________________________________
-// using namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::ui;
-
-namespace framework
-{
-
-static void ExtractMenuParameters( const Sequence< PropertyValue > rProp,
- ::rtl::OUString& rCommandURL,
- ::rtl::OUString& rLabel,
- ::rtl::OUString& rHelpURL,
- Reference< XIndexAccess >& rSubMenu,
- sal_Int16& rType )
-{
- for ( sal_Int32 i = 0; i < rProp.getLength(); i++ )
- {
- if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_COMMANDURL ))
- {
- rProp[i].Value >>= rCommandURL;
- rCommandURL = rCommandURL.intern();
- }
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_HELPURL ))
- {
- rProp[i].Value >>= rHelpURL;
- }
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_CONTAINER ))
- {
- rProp[i].Value >>= rSubMenu;
- }
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_LABEL ))
- {
- rProp[i].Value >>= rLabel;
- }
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_TYPE ))
- {
- rProp[i].Value >>= rType;
- }
- }
-}
-
-
-// -----------------------------------------------------------------------------
-// Base class implementation
-
-ReadMenuDocumentHandlerBase::ReadMenuDocumentHandlerBase() :
- m_xLocator( 0 ),
- m_xReader( 0 ),
- m_aType( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_TYPE )),
- m_aLabel( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_LABEL )),
- m_aContainer( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_CONTAINER )),
- m_aHelpURL( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_HELPURL )),
- m_aCommandURL( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_COMMANDURL ))
-{
-}
-
-ReadMenuDocumentHandlerBase::~ReadMenuDocumentHandlerBase()
-{
-}
-
-void SAL_CALL ReadMenuDocumentHandlerBase::ignorableWhitespace(
- const ::rtl::OUString& )
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL ReadMenuDocumentHandlerBase::processingInstruction(
- const ::rtl::OUString& /*aTarget*/, const ::rtl::OUString& /*aData*/ )
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL ReadMenuDocumentHandlerBase::setDocumentLocator(
- const Reference< XLocator > &xLocator)
-throw( SAXException, RuntimeException )
-{
- m_xLocator = xLocator;
-}
-
-::rtl::OUString ReadMenuDocumentHandlerBase::getErrorLineString()
-{
- char buffer[32];
-
- if ( m_xLocator.is() )
- {
- snprintf( buffer, sizeof(buffer), "Line: %ld - ", static_cast<long>( m_xLocator->getLineNumber() ));
- return ::rtl::OUString::createFromAscii( buffer );
- }
- else
- return ::rtl::OUString();
-}
-
-void ReadMenuDocumentHandlerBase::initPropertyCommon(
- Sequence< PropertyValue > &rProps, const rtl::OUString &rCommandURL,
- const rtl::OUString &rHelpId, const rtl::OUString &rLabel)
-{
- rProps[0].Name = m_aCommandURL;
- rProps[1].Name = m_aHelpURL;
- rProps[2].Name = m_aContainer;
- rProps[3].Name = m_aLabel;
- rProps[4].Name = m_aType;
-
- // Common values
- rProps[0].Value <<= rCommandURL.intern();
- rProps[1].Value <<= rHelpId;
- rProps[2].Value <<= Reference< XIndexContainer >();
- rProps[3].Value <<= rLabel;
- rProps[4].Value <<= ::com::sun::star::ui::ItemType::DEFAULT;
-}
-
-// -----------------------------------------------------------------------------
-
-OReadMenuDocumentHandler::OReadMenuDocumentHandler(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
- const Reference< XIndexContainer >& rMenuBarContainer )
-: m_nElementDepth( 0 ),
- m_bMenuBarMode( sal_False ),
- m_xMenuBarContainer( rMenuBarContainer ),
- m_xContainerFactory( rMenuBarContainer, UNO_QUERY ),
- mxServiceFactory(xServiceFactory)
-{
-}
-
-// #110897#
-const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& OReadMenuDocumentHandler::getServiceFactory()
-{
- // #110897#
- return mxServiceFactory;
-}
-
-OReadMenuDocumentHandler::~OReadMenuDocumentHandler()
-{
-}
-
-
-void SAL_CALL OReadMenuDocumentHandler::startDocument(void)
- throw ( SAXException, RuntimeException )
-{
-}
-
-
-void SAL_CALL OReadMenuDocumentHandler::endDocument(void)
- throw( SAXException, RuntimeException )
-{
- if ( m_nElementDepth > 0 )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "A closing element is missing!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-
-void SAL_CALL OReadMenuDocumentHandler::startElement(
- const ::rtl::OUString& aName, const Reference< XAttributeList > &xAttrList )
-throw( SAXException, RuntimeException )
-{
- if ( m_bMenuBarMode )
- {
- ++m_nElementDepth;
- m_xReader->startElement( aName, xAttrList );
- }
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUBAR )))
- {
- ++m_nElementDepth;
- m_bMenuBarMode = sal_True;
-
- // #110897# m_xReader = Reference< XDocumentHandler >( new OReadMenuBarHandler( m_xMenuBarContainer, m_xContainerFactory ));
- m_xReader = Reference< XDocumentHandler >( new OReadMenuBarHandler( getServiceFactory(), m_xMenuBarContainer, m_xContainerFactory ));
-
- m_xReader->startDocument();
- }
-}
-
-
-void SAL_CALL OReadMenuDocumentHandler::characters(const rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-
-void SAL_CALL OReadMenuDocumentHandler::endElement( const ::rtl::OUString& aName )
- throw( SAXException, RuntimeException )
-{
- if ( m_bMenuBarMode )
- {
- --m_nElementDepth;
- m_xReader->endElement( aName );
- if ( 0 == m_nElementDepth )
- {
- m_xReader->endDocument();
- m_xReader = Reference< XDocumentHandler >();
- m_bMenuBarMode = sal_False;
- if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUBAR )))
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menubar expected!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- }
-}
-
-
-// -----------------------------------------------------------------------------
-
-
-// #110897#
-OReadMenuBarHandler::OReadMenuBarHandler(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
- const Reference< XIndexContainer >& rMenuBarContainer,
- const Reference< XSingleComponentFactory >& rFactory )
-: m_nElementDepth( 0 ),
- m_bMenuMode( sal_False ),
- m_xMenuBarContainer( rMenuBarContainer ),
- m_xContainerFactory( rFactory ),
- mxServiceFactory( xServiceFactory )
-{
-}
-
-// #110897#
-const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& OReadMenuBarHandler::getServiceFactory()
-{
- // #110897#
- return mxServiceFactory;
-}
-
-OReadMenuBarHandler::~OReadMenuBarHandler()
-{
-}
-
-
-void SAL_CALL OReadMenuBarHandler::startDocument(void)
- throw ( SAXException, RuntimeException )
-{
-}
-
-
-void SAL_CALL OReadMenuBarHandler::endDocument(void)
- throw( SAXException, RuntimeException )
-{
-}
-
-
-void SAL_CALL OReadMenuBarHandler::startElement(
- const ::rtl::OUString& rName, const Reference< XAttributeList > &xAttrList )
-throw( SAXException, RuntimeException )
-{
- if ( m_bMenuMode )
- {
- ++m_nElementDepth;
- m_xReader->startElement( rName, xAttrList );
- }
- else if ( rName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENU )))
- {
- ++m_nElementDepth;
-
- ::rtl::OUString aHelpId;
- ::rtl::OUString aCommandId;
- ::rtl::OUString aLabel;
-
- m_bMenuMode = sal_True;
-
- // Container must be factory to create sub container
- Reference< XComponentContext > xComponentContext;
- Reference< XPropertySet > xProps( ::comphelper::getProcessServiceFactory(), UNO_QUERY );
- xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))) >>=
- xComponentContext;
-
- Reference< XIndexContainer > xSubItemContainer;
- if ( m_xContainerFactory.is() )
- xSubItemContainer = Reference< XIndexContainer >( m_xContainerFactory->createInstanceWithContext( xComponentContext ), UNO_QUERY );
-
- if ( xSubItemContainer.is() )
- {
- // read attributes for menu
- for ( sal_Int16 i=0; i< xAttrList->getLength(); i++ )
- {
- ::rtl::OUString aName = xAttrList->getNameByIndex( i );
- ::rtl::OUString aValue = xAttrList->getValueByIndex( i );
- if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ID )))
- aCommandId = aValue;
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_LABEL )))
- aLabel = aValue;
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_HELPID )))
- aHelpId = aValue;
- }
-
- if ( aCommandId.getLength() > 0 )
- {
- Sequence< PropertyValue > aSubMenuProp( 5 );
- initPropertyCommon( aSubMenuProp, aCommandId, aHelpId, aLabel );
- aSubMenuProp[2].Value <<= xSubItemContainer;
-
- m_xMenuBarContainer->insertByIndex( m_xMenuBarContainer->getCount(), makeAny( aSubMenuProp ) );
- }
- else
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "attribute id for element menu required!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_xReader = Reference< XDocumentHandler >( new OReadMenuHandler( xSubItemContainer, m_xContainerFactory ));
- m_xReader->startDocument();
- }
- }
- else
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "element menu expected!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-
-void SAL_CALL OReadMenuBarHandler::characters(const rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-
-void OReadMenuBarHandler::endElement( const ::rtl::OUString& aName )
- throw( SAXException, RuntimeException )
-{
- if ( m_bMenuMode )
- {
- --m_nElementDepth;
- if ( 0 == m_nElementDepth )
- {
- m_xReader->endDocument();
- m_xReader = Reference< XDocumentHandler >();
- m_bMenuMode = sal_False;
- if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENU )))
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menu expected!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- else
- m_xReader->endElement( aName );
- }
-}
-
-
-// -----------------------------------------------------------------------------
-
-
-OReadMenuHandler::OReadMenuHandler(
- const Reference< XIndexContainer >& rMenuContainer,
- const Reference< XSingleComponentFactory >& rFactory ) :
- m_nElementDepth( 0 ),
- m_bMenuPopupMode( sal_False ),
- m_xMenuContainer( rMenuContainer ),
- m_xContainerFactory( rFactory )
-{
-}
-
-
-OReadMenuHandler::~OReadMenuHandler()
-{
-}
-
-
-void SAL_CALL OReadMenuHandler::startDocument(void)
- throw ( SAXException, RuntimeException )
-{
-}
-
-
-void SAL_CALL OReadMenuHandler::endDocument(void)
- throw( SAXException, RuntimeException)
-{
-}
-
-
-void SAL_CALL OReadMenuHandler::startElement(
- const ::rtl::OUString& aName, const Reference< XAttributeList > &xAttrList )
-throw( SAXException, RuntimeException )
-{
- if ( m_bMenuPopupMode )
- {
- ++m_nElementDepth;
- m_xReader->startElement( aName, xAttrList );
- }
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUPOPUP )))
- {
- ++m_nElementDepth;
- m_bMenuPopupMode = sal_True;
- m_xReader = Reference< XDocumentHandler >( new OReadMenuPopupHandler( m_xMenuContainer, m_xContainerFactory ));
- m_xReader->startDocument();
- }
- else
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "unknown element found!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-
-void SAL_CALL OReadMenuHandler::characters(const rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-
-void SAL_CALL OReadMenuHandler::endElement( const ::rtl::OUString& aName )
- throw( SAXException, RuntimeException )
-{
- if ( m_bMenuPopupMode )
- {
- --m_nElementDepth;
- if ( 0 == m_nElementDepth )
- {
- m_xReader->endDocument();
- m_xReader = Reference< XDocumentHandler >();
- m_bMenuPopupMode = sal_False;
- if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUPOPUP )))
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menupopup expected!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- else
- m_xReader->endElement( aName );
- }
-}
-
-
-// -----------------------------------------------------------------------------
-
-
-OReadMenuPopupHandler::OReadMenuPopupHandler(
- const Reference< XIndexContainer >& rMenuContainer,
- const Reference< XSingleComponentFactory >& rFactory ) :
- m_nElementDepth( 0 ),
- m_bMenuMode( sal_False ),
- m_xMenuContainer( rMenuContainer ),
- m_xContainerFactory( rFactory ),
- m_nNextElementExpected( ELEM_CLOSE_NONE )
-{
-}
-
-
-OReadMenuPopupHandler::~OReadMenuPopupHandler()
-{
-}
-
-
-void SAL_CALL OReadMenuPopupHandler::startDocument(void)
- throw ( SAXException, RuntimeException )
-{
-}
-
-
-void SAL_CALL OReadMenuPopupHandler::endDocument(void)
- throw( SAXException, RuntimeException)
-{
-}
-
-void SAL_CALL OReadMenuPopupHandler::startElement(
- const ::rtl::OUString& rName, const Reference< XAttributeList > &xAttrList )
-throw( SAXException, RuntimeException )
-{
- ++m_nElementDepth;
-
- if ( m_bMenuMode )
- m_xReader->startElement( rName, xAttrList );
- else if ( rName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENU )))
- {
- ::rtl::OUString aHelpId;
- ::rtl::OUString aCommandId;
- ::rtl::OUString aLabel;
-
- m_bMenuMode = sal_True;
-
- // Container must be factory to create sub container
- if ( !m_xComponentContext.is() )
- {
- const Reference< XPropertySet > xProps( ::comphelper::getProcessServiceFactory(), UNO_QUERY_THROW );
- m_xComponentContext.set(xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))), UNO_QUERY_THROW );
- }
-
- Reference< XIndexContainer > xSubItemContainer;
- if ( m_xContainerFactory.is() )
- xSubItemContainer = Reference< XIndexContainer >( m_xContainerFactory->createInstanceWithContext( m_xComponentContext ), UNO_QUERY );
-
- // read attributes for menu
- for ( sal_Int16 i=0; i< xAttrList->getLength(); i++ )
- {
- ::rtl::OUString aName = xAttrList->getNameByIndex( i );
- ::rtl::OUString aValue = xAttrList->getValueByIndex( i );
- if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ID )))
- aCommandId = aValue;
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_LABEL )))
- aLabel = aValue;
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_HELPID )))
- aHelpId = aValue;
- }
-
- if ( aCommandId.getLength() > 0 )
- {
- Sequence< PropertyValue > aSubMenuProp( 5 );
- initPropertyCommon( aSubMenuProp, aCommandId, aHelpId, aLabel );
- aSubMenuProp[2].Value <<= xSubItemContainer;
-
- m_xMenuContainer->insertByIndex( m_xMenuContainer->getCount(), makeAny( aSubMenuProp ) );
- }
- else
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "attribute id for element menu required!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_xReader = Reference< XDocumentHandler >( new OReadMenuHandler( xSubItemContainer, m_xContainerFactory ));
- m_xReader->startDocument();
- }
- else if ( rName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUITEM )))
- {
- ::rtl::OUString aHelpId;
- ::rtl::OUString aCommandId;
- ::rtl::OUString aLabel;
-
- // read attributes for menu item
- for ( sal_Int16 i=0; i< xAttrList->getLength(); i++ )
- {
- ::rtl::OUString aName = xAttrList->getNameByIndex( i );
- ::rtl::OUString aValue = xAttrList->getValueByIndex( i );
- if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ID )))
- aCommandId = aValue;
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_LABEL )))
- aLabel = aValue;
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_HELPID )))
- aHelpId = aValue;
- }
-
- if ( aCommandId.getLength() > 0 )
- {
- Sequence< PropertyValue > aMenuItem( 5 );
- initPropertyCommon( aMenuItem, aCommandId, aHelpId, aLabel );
- aMenuItem[2].Value <<= Reference< XIndexContainer >();
-
- m_xMenuContainer->insertByIndex( m_xMenuContainer->getCount(), makeAny( aMenuItem ) );
- }
-
- m_nNextElementExpected = ELEM_CLOSE_MENUITEM;
- }
- else if ( rName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUSEPARATOR )))
- {
- Sequence< PropertyValue > aMenuSeparator( 1 );
- aMenuSeparator[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_TYPE ));
- aMenuSeparator[0].Value <<= ::com::sun::star::ui::ItemType::SEPARATOR_LINE;
-
- m_xMenuContainer->insertByIndex( m_xMenuContainer->getCount(), makeAny( aMenuSeparator ) );
-
- m_nNextElementExpected = ELEM_CLOSE_MENUSEPARATOR;
- }
- else
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "unknown element found!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-
-void SAL_CALL OReadMenuPopupHandler::characters(const rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-
-void SAL_CALL OReadMenuPopupHandler::endElement( const ::rtl::OUString& aName )
- throw( SAXException, RuntimeException )
-{
- --m_nElementDepth;
- if ( m_bMenuMode )
- {
- if ( 0 == m_nElementDepth )
- {
- m_xReader->endDocument();
- m_xReader = Reference< XDocumentHandler >();
- m_bMenuMode = sal_False;
- if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENU )))
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menu expected!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- else
- m_xReader->endElement( aName );
- }
- else
- {
- if ( m_nNextElementExpected == ELEM_CLOSE_MENUITEM )
- {
- if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUITEM )))
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menuitem expected!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- else if ( m_nNextElementExpected == ELEM_CLOSE_MENUSEPARATOR )
- {
- if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUSEPARATOR )))
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menuseparator expected!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
-
- m_nNextElementExpected = ELEM_CLOSE_NONE;
- }
-}
-
-
-// --------------------------------- Write XML ---------------------------------
-
-
-OWriteMenuDocumentHandler::OWriteMenuDocumentHandler(
- const Reference< XIndexAccess >& rMenuBarContainer,
- const Reference< XDocumentHandler >& rDocumentHandler ) :
- m_xMenuBarContainer( rMenuBarContainer ),
- m_xWriteDocumentHandler( rDocumentHandler )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- m_xEmptyList = Reference< XAttributeList >( (XAttributeList *) pList, UNO_QUERY );
- m_aAttributeType = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
-}
-
-
-OWriteMenuDocumentHandler::~OWriteMenuDocumentHandler()
-{
-}
-
-
-void OWriteMenuDocumentHandler::WriteMenuDocument()
-throw ( SAXException, RuntimeException )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > rList( (XAttributeList *) pList , UNO_QUERY );
-
- m_xWriteDocumentHandler->startDocument();
-
- // write DOCTYPE line!
- Reference< XExtendedDocumentHandler > xExtendedDocHandler( m_xWriteDocumentHandler, UNO_QUERY );
- if ( xExtendedDocHandler.is() )
- {
- xExtendedDocHandler->unknown( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( MENUBAR_DOCTYPE )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- }
-
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_MENU )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_MENU )) );
-
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NS_ID )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "menubar" )) );
-
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUBAR )), pList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- WriteMenu( m_xMenuBarContainer );
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUBAR )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endDocument();
-}
-
-
-void OWriteMenuDocumentHandler::WriteMenu( const Reference< XIndexAccess >& rMenuContainer )
-throw ( SAXException, RuntimeException )
-{
- sal_Int32 nItemCount = rMenuContainer->getCount();
- sal_Bool bSeparator = sal_False;
- Any aAny;
-
- for ( sal_Int32 nItemPos = 0; nItemPos < nItemCount; nItemPos++ )
- {
- Sequence< PropertyValue > aProps;
- aAny = rMenuContainer->getByIndex( nItemPos );
- if ( aAny >>= aProps )
- {
- ::rtl::OUString aCommandURL;
- ::rtl::OUString aLabel;
- ::rtl::OUString aHelpURL;
- sal_Int16 nType( ::com::sun::star::ui::ItemType::DEFAULT );
- Reference< XIndexAccess > xSubMenu;
-
- ExtractMenuParameters( aProps, aCommandURL, aLabel, aHelpURL, xSubMenu, nType );
- if ( xSubMenu.is() )
- {
- if ( aCommandURL.equalsAscii( ADDDIRECT_CMD ) ||
- aCommandURL.equalsAscii( AUTOPILOTMENU_CMD ))
- {
- WriteMenuItem( aCommandURL, aLabel, aHelpURL );
- bSeparator = sal_False;
- }
- else if (( aCommandURL.getLength() > 0 ) && !AddonPopupMenu::IsCommandURLPrefix ( aCommandURL ))
- {
- ::comphelper::AttributeList* pListMenu = new ::comphelper::AttributeList;
- Reference< XAttributeList > xListMenu( (XAttributeList *)pListMenu , UNO_QUERY );
-
- pListMenu->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NS_ID )),
- m_aAttributeType,
- aCommandURL );
-
- if ( !( aCommandURL.copy( CMD_PROTOCOL_SIZE ).equalsAscii( CMD_PROTOCOL )))
- pListMenu->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NS_LABEL )),
- m_aAttributeType,
- aLabel );
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENU )), xListMenu );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUPOPUP )), m_xEmptyList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- WriteMenu( xSubMenu );
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUPOPUP )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENU )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- bSeparator = FALSE;
- }
- }
- else
- {
- if ( nType == ::com::sun::star::ui::ItemType::DEFAULT )
- {
- if ( aCommandURL.getLength() > 0 )
- {
- bSeparator = FALSE;
- WriteMenuItem( aCommandURL, aLabel, aHelpURL );
- }
- }
- else if ( !bSeparator )
- {
- // Don't write two separators together
- WriteMenuSeparator();
- bSeparator = TRUE;
- }
- }
- }
- }
-}
-
-
-void OWriteMenuDocumentHandler::WriteMenuItem( const ::rtl::OUString& aCommandURL, const ::rtl::OUString& aLabel, const ::rtl::OUString& aHelpURL)
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NS_ID )),
- m_aAttributeType,
- aCommandURL );
-
- if ( aHelpURL.getLength() > 0 )
- {
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NS_HELPID )),
- m_aAttributeType,
- aHelpURL );
- }
-
- if (( aLabel.getLength() > 0 ) && !( aCommandURL.copy( CMD_PROTOCOL_SIZE ).equalsAscii( CMD_PROTOCOL )))
- {
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NS_LABEL )),
- m_aAttributeType,
- aLabel );
- }
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUITEM )), xList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUITEM )) );
-}
-
-
-void OWriteMenuDocumentHandler::WriteMenuSeparator()
-{
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUSEPARATOR )), m_xEmptyList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUSEPARATOR )) );
-}
-
-} // namespace framework
-
diff --git a/framework/source/xml/saxnamespacefilter.cxx b/framework/source/xml/saxnamespacefilter.cxx
deleted file mode 100644
index 46c69fb750ea..000000000000
--- a/framework/source/xml/saxnamespacefilter.cxx
+++ /dev/null
@@ -1,201 +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: saxnamespacefilter.cxx,v $
- * $Revision: 1.10 $
- *
- * 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"
-
-/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble
- with solaris headers ...
-*/
-#include <vector>
-
-#include <stdio.h>
-
-#include <xml/saxnamespacefilter.hxx>
-
-#include <comphelper/attributelist.hxx>
-
-#include <vcl/svapp.hxx>
-#include <rtl/logfile.hxx>
-
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::uno;
-
-const ::rtl::OUString aXMLAttributeNamespace( RTL_CONSTASCII_USTRINGPARAM( "xmlns" ));
-const ::rtl::OUString aXMLAttributeType( RTL_CONSTASCII_USTRINGPARAM( "CDATA" ));
-
-namespace framework{
-
-
-SaxNamespaceFilter::SaxNamespaceFilter( Reference< XDocumentHandler >& rSax1DocumentHandler ) :
- ThreadHelpBase( &Application::GetSolarMutex() ),
- m_xLocator( 0 ),
- xDocumentHandler( rSax1DocumentHandler ),
- m_nDepth( 0 )
-{
-}
-
-SaxNamespaceFilter::~SaxNamespaceFilter()
-{
-}
-
-// XDocumentHandler
-void SAL_CALL SaxNamespaceFilter::startDocument(void)
- throw ( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL SaxNamespaceFilter::endDocument(void)
- throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL SaxNamespaceFilter::startElement(
- const rtl::OUString& rName, const Reference< XAttributeList > &xAttribs )
- throw( SAXException, RuntimeException )
-{
- XMLNamespaces aXMLNamespaces;
- if ( !m_aNamespaceStack.empty() )
- aXMLNamespaces = m_aNamespaceStack.top();
-
- ::comphelper::AttributeList* pNewList = new ::comphelper::AttributeList();
-
- // examine all namespaces for this level
- ::std::vector< sal_Int16 > aAttributeIndexes;
- {
- for ( sal_Int16 i=0; i< xAttribs->getLength(); i++ )
- {
- ::rtl::OUString aName = xAttribs->getNameByIndex( i );
- if ( aName.compareTo( aXMLAttributeNamespace, aXMLAttributeNamespace.getLength() ) == 0 )
- aXMLNamespaces.addNamespace( aName, xAttribs->getValueByIndex( i ));
- else
- aAttributeIndexes.push_back( i );
- }
- }
-
- // current namespaces for this level
- m_aNamespaceStack.push( aXMLNamespaces );
-
- try
- {
- // apply namespaces to all remaing attributes
- for ( ::std::vector< sal_Int16 >::const_iterator i(
- aAttributeIndexes.begin());
- i != aAttributeIndexes.end(); ++i )
- {
- ::rtl::OUString aAttributeName = xAttribs->getNameByIndex( *i );
- ::rtl::OUString aValue = xAttribs->getValueByIndex( *i );
- ::rtl::OUString aNamespaceAttributeName = aXMLNamespaces.applyNSToAttributeName( aAttributeName );
- pNewList->AddAttribute( aNamespaceAttributeName, aXMLAttributeType, aValue );
- }
- }
- catch ( SAXException& e )
- {
- e.Message = ::rtl::OUString( getErrorLineString() + e.Message );
- throw e;
- }
-
- ::rtl::OUString aNamespaceElementName;
-
- try
- {
- aNamespaceElementName = aXMLNamespaces.applyNSToElementName( rName );
- }
- catch ( SAXException& e )
- {
- e.Message = ::rtl::OUString( getErrorLineString() + e.Message );
- throw e;
- }
-
- xDocumentHandler->startElement( aNamespaceElementName, pNewList );
-}
-
-void SAL_CALL SaxNamespaceFilter::endElement(const rtl::OUString& aName)
- throw( SAXException, RuntimeException )
-{
- XMLNamespaces& aXMLNamespaces = m_aNamespaceStack.top();
- ::rtl::OUString aNamespaceElementName;
-
- try
- {
- aNamespaceElementName = aXMLNamespaces.applyNSToElementName( aName );
- }
- catch ( SAXException& e )
- {
- e.Message = ::rtl::OUString( getErrorLineString() + e.Message );
- throw e;
- }
-
- xDocumentHandler->endElement( aNamespaceElementName );
- m_aNamespaceStack.pop();
-}
-
-void SAL_CALL SaxNamespaceFilter::characters(const rtl::OUString& aChars)
- throw( SAXException, RuntimeException )
-{
- xDocumentHandler->characters( aChars );
-}
-
-void SAL_CALL SaxNamespaceFilter::ignorableWhitespace(const rtl::OUString& aWhitespaces)
- throw( SAXException, RuntimeException )
-{
- xDocumentHandler->ignorableWhitespace( aWhitespaces );
-}
-
-void SAL_CALL SaxNamespaceFilter::processingInstruction(
- const rtl::OUString& aTarget, const rtl::OUString& aData)
- throw( SAXException, RuntimeException )
-{
- xDocumentHandler->processingInstruction( aTarget, aData );
-}
-
-void SAL_CALL SaxNamespaceFilter::setDocumentLocator(
- const Reference< XLocator > &xLocator)
- throw( SAXException, RuntimeException )
-{
- m_xLocator = xLocator;
- xDocumentHandler->setDocumentLocator( xLocator );
-}
-
-::rtl::OUString SaxNamespaceFilter::getErrorLineString()
-{
- char buffer[32];
-
- if ( m_xLocator.is() )
- {
- snprintf( buffer, sizeof(buffer), "Line: %ld - ", static_cast<long>( m_xLocator->getLineNumber() ));
- return ::rtl::OUString::createFromAscii( buffer );
- }
- else
- return ::rtl::OUString();
-}
-
-} // namespace
-
diff --git a/framework/source/xml/statusbarconfiguration.cxx b/framework/source/xml/statusbarconfiguration.cxx
deleted file mode 100644
index 352f17e21fbf..000000000000
--- a/framework/source/xml/statusbarconfiguration.cxx
+++ /dev/null
@@ -1,169 +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: statusbarconfiguration.cxx,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.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_framework.hxx"
-#include <xml/statusbarconfiguration.hxx>
-#include <xml/statusbardocumenthandler.hxx>
-#include <xml/saxnamespacefilter.hxx>
-#include <services.h>
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-#include <com/sun/star/xml/sax/XParser.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-//_________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________
-
-#ifndef _UNOTOOLS_PROCESSFACTORY_HXX
-#include <comphelper/processfactory.hxx>
-#endif
-#include <unotools/streamwrap.hxx>
-#include <tools/debug.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::container;
-
-
-namespace framework
-{
-
-SV_IMPL_PTRARR( StatusBarDescriptor, StatusBarItemDescriptorPtr);
-
-static Reference< XParser > GetSaxParser(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
- )
-{
- return Reference< XParser >( xServiceFactory->createInstance( SERVICENAME_SAXPARSER), UNO_QUERY);
-}
-
-static Reference< XDocumentHandler > GetSaxWriter(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
- )
-{
- return Reference< XDocumentHandler >( xServiceFactory->createInstance( SERVICENAME_SAXWRITER), UNO_QUERY) ;
-}
-
-sal_Bool StatusBarConfiguration::LoadStatusBar(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&,
- SvStream&, StatusBarDescriptor& )
-{
- // obsolete - only support linkage of binary filters!
- return sal_True;
-}
-
-sal_Bool StatusBarConfiguration::StoreStatusBar(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&,
- SvStream&, const StatusBarDescriptor& )
-{
- // obsolete - only support linkage of binary filters!
- return sal_True;
-}
-
-sal_Bool StatusBarConfiguration::LoadStatusBar(
- const Reference< XMultiServiceFactory >& xServiceFactory,
- const Reference< XInputStream >& xInputStream,
- const Reference< XIndexContainer >& rStatusbarConfiguration )
-{
- Reference< XParser > xParser( GetSaxParser( xServiceFactory ) );
-
- // connect stream to input stream to the parser
- InputSource aInputSource;
- aInputSource.aInputStream = xInputStream;
-
- // create namespace filter and set menudocument handler inside to support xml namespaces
- Reference< XDocumentHandler > xDocHandler( new OReadStatusBarDocumentHandler( rStatusbarConfiguration ));
- Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
-
- // connect parser and filter
- xParser->setDocumentHandler( xFilter );
-
- try
- {
- xParser->parseStream( aInputSource );
- return sal_True;
- }
- catch ( RuntimeException& )
- {
- return sal_False;
- }
- catch( SAXException& )
- {
- return sal_False;
- }
- catch( ::com::sun::star::io::IOException& )
- {
- return sal_False;
- }
-}
-
-sal_Bool StatusBarConfiguration::StoreStatusBar(
- const Reference< XMultiServiceFactory >& xServiceFactory,
- const Reference< XOutputStream >& xOutputStream,
- const Reference< XIndexAccess >& rStatusbarConfiguration )
-{
- Reference< XDocumentHandler > xWriter( GetSaxWriter( xServiceFactory ) );
- Reference< ::com::sun::star::io::XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
- xDataSource->setOutputStream( xOutputStream );
-
- try
- {
- OWriteStatusBarDocumentHandler aWriteStatusBarDocumentHandler( rStatusbarConfiguration, xWriter );
- aWriteStatusBarDocumentHandler.WriteStatusBarDocument();
- return sal_True;
- }
- catch ( RuntimeException& )
- {
- return sal_False;
- }
- catch ( SAXException& )
- {
- return sal_False;
- }
- catch ( ::com::sun::star::io::IOException& )
- {
- return sal_False;
- }
-}
-}
-
diff --git a/framework/source/xml/statusbardocumenthandler.cxx b/framework/source/xml/statusbardocumenthandler.cxx
deleted file mode 100644
index cf5793a80903..000000000000
--- a/framework/source/xml/statusbardocumenthandler.cxx
+++ /dev/null
@@ -1,701 +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: statusbardocumenthandler.cxx,v $
- * $Revision: 1.14 $
- *
- * 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/statusbardocumenthandler.hxx>
-#include <macros/debug.hxx>
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-
-#ifndef __COM_SUN_STAR_XML_SAX_XEXTENDEDDOCUMENTHANDLER_HPP_
-#include <com/sun/star/xml/sax/XExtendedDocumentHandler.hpp>
-#endif
-#include <com/sun/star/ui/ItemStyle.hpp>
-#include <com/sun/star/ui/ItemType.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-
-//_________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________
-#include <vcl/svapp.hxx>
-#include <vcl/status.hxx>
-
-#include <comphelper/attributelist.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::ui;
-using namespace ::com::sun::star::container;
-
-#define XMLNS_STATUSBAR "http://openoffice.org/2001/statusbar"
-#define XMLNS_XLINK "http://www.w3.org/1999/xlink"
-#define XMLNS_STATUSBAR_PREFIX "statusbar:"
-#define XMLNS_XLINK_PREFIX "xlink:"
-
-#define XMLNS_FILTER_SEPARATOR "^"
-
-#define ELEMENT_STATUSBAR "statusbar"
-#define ELEMENT_STATUSBARITEM "statusbaritem"
-
-#define ATTRIBUTE_ALIGN "align"
-#define ATTRIBUTE_STYLE "style"
-#define ATTRIBUTE_URL "href"
-#define ATTRIBUTE_WIDTH "width"
-#define ATTRIBUTE_OFFSET "offset"
-#define ATTRIBUTE_AUTOSIZE "autosize"
-#define ATTRIBUTE_OWNERDRAW "ownerdraw"
-#define ATTRIBUTE_HELPURL "helpid"
-
-#define ELEMENT_NS_STATUSBAR "statusbar:statusbar"
-#define ELEMENT_NS_STATUSBARITEM "statusbar:statusbaritem"
-
-#define ATTRIBUTE_XMLNS_STATUSBAR "xmlns:statusbar"
-#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_CENTER "center"
-
-#define ATTRIBUTE_STYLE_IN "in"
-#define ATTRIBUTE_STYLE_OUT "out"
-#define ATTRIBUTE_STYLE_FLAT "flat"
-
-#define STATUSBAR_DOCTYPE "<!DOCTYPE statusbar:statusbar PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"statusbar.dtd\">"
-
-namespace framework
-{
-
-// Property names of a menu/menu item ItemDescriptor
-static const char ITEM_DESCRIPTOR_COMMANDURL[] = "CommandURL";
-static const char ITEM_DESCRIPTOR_HELPURL[] = "HelpURL";
-static const char ITEM_DESCRIPTOR_OFFSET[] = "Offset";
-static const char ITEM_DESCRIPTOR_STYLE[] = "Style";
-static const char ITEM_DESCRIPTOR_WIDTH[] = "Width";
-static const char ITEM_DESCRIPTOR_TYPE[] = "Type";
-
-static void ExtractStatusbarItemParameters(
- const Sequence< PropertyValue > rProp,
- ::rtl::OUString& rCommandURL,
- ::rtl::OUString& rHelpURL,
- sal_Int16& rOffset,
- sal_Int16& rStyle,
- sal_Int16& rWidth )
-{
- for ( sal_Int32 i = 0; i < rProp.getLength(); i++ )
- {
- if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_COMMANDURL ))
- {
- rProp[i].Value >>= rCommandURL;
- rCommandURL = rCommandURL.intern();
- }
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_HELPURL ))
- {
- rProp[i].Value >>= rHelpURL;
- }
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_OFFSET ))
- {
- rProp[i].Value >>= rOffset;
- }
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_STYLE ))
- {
- rProp[i].Value >>= rStyle;
- }
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_WIDTH ))
- {
- rProp[i].Value >>= rWidth;
- }
- }
-}
-
-struct StatusBarEntryProperty
-{
- OReadStatusBarDocumentHandler::StatusBar_XML_Namespace nNamespace;
- char aEntryName[20];
-};
-
-StatusBarEntryProperty StatusBarEntries[OReadStatusBarDocumentHandler::SB_XML_ENTRY_COUNT] =
-{
- { OReadStatusBarDocumentHandler::SB_NS_STATUSBAR, ELEMENT_STATUSBAR },
- { OReadStatusBarDocumentHandler::SB_NS_STATUSBAR, ELEMENT_STATUSBARITEM },
- { OReadStatusBarDocumentHandler::SB_NS_XLINK, ATTRIBUTE_URL },
- { OReadStatusBarDocumentHandler::SB_NS_STATUSBAR, ATTRIBUTE_ALIGN },
- { OReadStatusBarDocumentHandler::SB_NS_STATUSBAR, ATTRIBUTE_STYLE },
- { OReadStatusBarDocumentHandler::SB_NS_STATUSBAR, ATTRIBUTE_AUTOSIZE },
- { OReadStatusBarDocumentHandler::SB_NS_STATUSBAR, ATTRIBUTE_OWNERDRAW },
- { OReadStatusBarDocumentHandler::SB_NS_STATUSBAR, ATTRIBUTE_WIDTH },
- { OReadStatusBarDocumentHandler::SB_NS_STATUSBAR, ATTRIBUTE_OFFSET },
- { OReadStatusBarDocumentHandler::SB_NS_STATUSBAR, ATTRIBUTE_HELPURL }
-};
-
-
-OReadStatusBarDocumentHandler::OReadStatusBarDocumentHandler(
- const Reference< XIndexContainer >& rStatusBarItems ) :
- ThreadHelpBase( &Application::GetSolarMutex() ),
- m_aStatusBarItems( rStatusBarItems )
-{
- ::rtl::OUString aNamespaceStatusBar( RTL_CONSTASCII_USTRINGPARAM( XMLNS_STATUSBAR ));
- ::rtl::OUString aNamespaceXLink( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK ));
- ::rtl::OUString aSeparator( RTL_CONSTASCII_USTRINGPARAM( XMLNS_FILTER_SEPARATOR ));
-
- // create hash map
- for ( int i = 0; i < (int)SB_XML_ENTRY_COUNT; i++ )
- {
- if ( StatusBarEntries[i].nNamespace == SB_NS_STATUSBAR )
- {
- ::rtl::OUString temp( aNamespaceStatusBar );
- temp += aSeparator;
- temp += ::rtl::OUString::createFromAscii( StatusBarEntries[i].aEntryName );
- m_aStatusBarMap.insert( StatusBarHashMap::value_type( temp, (StatusBar_XML_Entry)i ) );
- }
- else
- {
- ::rtl::OUString temp( aNamespaceXLink );
- temp += aSeparator;
- temp += ::rtl::OUString::createFromAscii( StatusBarEntries[i].aEntryName );
- m_aStatusBarMap.insert( StatusBarHashMap::value_type( temp, (StatusBar_XML_Entry)i ) );
- }
- }
-
- m_bStatusBarStartFound = sal_False;
- m_bStatusBarEndFound = sal_False;
- m_bStatusBarItemStartFound = sal_False;
-}
-
-OReadStatusBarDocumentHandler::~OReadStatusBarDocumentHandler()
-{
-}
-
-// XDocumentHandler
-void SAL_CALL OReadStatusBarDocumentHandler::startDocument(void)
-throw ( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadStatusBarDocumentHandler::endDocument(void)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- if (( m_bStatusBarStartFound && !m_bStatusBarEndFound ) ||
- ( !m_bStatusBarStartFound && m_bStatusBarEndFound ) )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "No matching start or end element 'statusbar' found!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-void SAL_CALL OReadStatusBarDocumentHandler::startElement(
- const ::rtl::OUString& aName, const Reference< XAttributeList > &xAttribs )
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- StatusBarHashMap::const_iterator pStatusBarEntry = m_aStatusBarMap.find( aName ) ;
- if ( pStatusBarEntry != m_aStatusBarMap.end() )
- {
- switch ( pStatusBarEntry->second )
- {
- case SB_ELEMENT_STATUSBAR:
- {
- if ( m_bStatusBarStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'statusbar:statusbar' cannot be embeded into 'statusbar:statusbar'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bStatusBarStartFound = sal_True;
- }
- break;
-
- case SB_ELEMENT_STATUSBARITEM:
- {
- if ( !m_bStatusBarStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'statusbar:statusbaritem' must be embeded into element 'statusbar:statusbar'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- if ( m_bStatusBarItemStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element statusbar:statusbaritem is not a container!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- ::rtl::OUString aCommandURL;
- ::rtl::OUString aHelpURL;
- sal_Int16 nItemBits( ItemStyle::ALIGN_CENTER|ItemStyle::DRAW_IN3D );
- sal_Int16 nWidth( 0 );
- sal_Int16 nOffset( STATUSBAR_OFFSET );
- sal_Bool bCommandURL( sal_False );
-
- m_bStatusBarItemStartFound = sal_True;
- for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
- {
- pStatusBarEntry = m_aStatusBarMap.find( xAttribs->getNameByIndex( n ) );
- if ( pStatusBarEntry != m_aStatusBarMap.end() )
- {
- switch ( pStatusBarEntry->second )
- {
- case SB_ATTRIBUTE_URL:
- {
- bCommandURL = sal_True;
- aCommandURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- case SB_ATTRIBUTE_ALIGN:
- {
- if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ALIGN_LEFT )) )
- {
- nItemBits |= ItemStyle::ALIGN_LEFT;
- nItemBits &= ~ItemStyle::ALIGN_CENTER;
- }
- else if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ALIGN_CENTER )) )
- {
- nItemBits |= ItemStyle::ALIGN_CENTER;
- nItemBits &= ~ItemStyle::ALIGN_LEFT;
- }
- else if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ALIGN_RIGHT )) )
- {
- nItemBits |= ItemStyle::ALIGN_RIGHT;
- }
- else
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Attribute statusbar:align must have one value of 'left','right' or 'center'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- break;
-
- case SB_ATTRIBUTE_STYLE:
- {
- if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_STYLE_IN )) )
- {
- nItemBits |= ItemStyle::DRAW_IN3D;
- nItemBits &= ~ItemStyle::DRAW_OUT3D;
- }
- else if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_STYLE_OUT )) )
- {
- nItemBits |= ItemStyle::DRAW_OUT3D;
- nItemBits &= ~ItemStyle::DRAW_IN3D;
- }
- else if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_STYLE_FLAT )) )
- {
- nItemBits |= ItemStyle::DRAW_FLAT;
- }
- else
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Attribute statusbar:autosize must have value 'true' or 'false'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- break;
-
- case SB_ATTRIBUTE_AUTOSIZE:
- {
- if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_BOOLEAN_TRUE )) )
- nItemBits |= ItemStyle::AUTO_SIZE;
- else if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_BOOLEAN_FALSE )) )
- nItemBits &= ~ItemStyle::AUTO_SIZE;
- else
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Attribute statusbar:autosize must have value 'true' or 'false'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- break;
-
- case SB_ATTRIBUTE_OWNERDRAW:
- {
- if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_BOOLEAN_TRUE )) )
- nItemBits |= ItemStyle::OWNER_DRAW;
- else if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_BOOLEAN_FALSE )) )
- nItemBits &= ~ItemStyle::OWNER_DRAW;
- else
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Attribute statusbar:ownerdraw must have value 'true' or 'false'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- break;
-
- case SB_ATTRIBUTE_WIDTH:
- {
- nWidth = (sal_Int16)(xAttribs->getValueByIndex( n ).toInt32());
- }
- break;
-
- case SB_ATTRIBUTE_OFFSET:
- {
- nOffset = (sal_Int16)(xAttribs->getValueByIndex( n ).toInt32());
- }
- break;
-
- case SB_ATTRIBUTE_HELPURL:
- {
- aHelpURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- default:
- break;
- }
- }
- } // for
-
- if ( !bCommandURL )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute statusbar:url must have a value!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- else
- {
- Sequence< PropertyValue > aStatusbarItemProp( 6 );
- aStatusbarItemProp[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_COMMANDURL ));
- aStatusbarItemProp[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_HELPURL ));
- aStatusbarItemProp[2].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_OFFSET ));
- aStatusbarItemProp[3].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_STYLE ));
- aStatusbarItemProp[4].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_WIDTH ));
- aStatusbarItemProp[5].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_TYPE ));
-
- aStatusbarItemProp[0].Value <<= aCommandURL;
- aStatusbarItemProp[1].Value <<= aHelpURL;
- aStatusbarItemProp[2].Value <<= nOffset;
- aStatusbarItemProp[3].Value <<= nItemBits;
- aStatusbarItemProp[4].Value <<= nWidth;
- aStatusbarItemProp[5].Value = makeAny( ::com::sun::star::ui::ItemType::DEFAULT );
-
- m_aStatusBarItems->insertByIndex( m_aStatusBarItems->getCount(), makeAny( aStatusbarItemProp ) );
- }
- }
- break;
-
- default:
- break;
- }
- }
-}
-
-void SAL_CALL OReadStatusBarDocumentHandler::endElement(const ::rtl::OUString& aName)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- StatusBarHashMap::const_iterator pStatusBarEntry = m_aStatusBarMap.find( aName ) ;
- if ( pStatusBarEntry != m_aStatusBarMap.end() )
- {
- switch ( pStatusBarEntry->second )
- {
- case SB_ELEMENT_STATUSBAR:
- {
- if ( !m_bStatusBarStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'statusbar' found, but no start element 'statusbar'" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bStatusBarStartFound = sal_False;
- }
- break;
-
- case SB_ELEMENT_STATUSBARITEM:
- {
- if ( !m_bStatusBarItemStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'statusbar:statusbaritem' found, but no start element 'statusbar:statusbaritem'" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bStatusBarItemStartFound = sal_False;
- }
- break;
-
- default:
- break;
- }
- }
-}
-
-void SAL_CALL OReadStatusBarDocumentHandler::characters(const ::rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadStatusBarDocumentHandler::ignorableWhitespace(const ::rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadStatusBarDocumentHandler::processingInstruction(
- const ::rtl::OUString& /*aTarget*/, const ::rtl::OUString& /*aData*/ )
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadStatusBarDocumentHandler::setDocumentLocator(
- const Reference< XLocator > &xLocator)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- m_xLocator = xLocator;
-}
-
-::rtl::OUString OReadStatusBarDocumentHandler::getErrorLineString()
-{
- ResetableGuard aGuard( m_aLock );
-
- char buffer[32];
-
- if ( m_xLocator.is() )
- {
- snprintf( buffer, sizeof(buffer), "Line: %ld - ", static_cast<long>( m_xLocator->getLineNumber() ));
- return ::rtl::OUString::createFromAscii( buffer );
- }
- else
- return ::rtl::OUString();
-}
-
-
-//_________________________________________________________________________________________________________________
-// OWriteStatusBarDocumentHandler
-//_________________________________________________________________________________________________________________
-
-OWriteStatusBarDocumentHandler::OWriteStatusBarDocumentHandler(
- const Reference< XIndexAccess >& aStatusBarItems,
- const Reference< XDocumentHandler >& rWriteDocumentHandler ) :
- ThreadHelpBase( &Application::GetSolarMutex() ),
- m_aStatusBarItems( aStatusBarItems ),
- m_xWriteDocumentHandler( rWriteDocumentHandler )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- m_xEmptyList = Reference< XAttributeList >( (XAttributeList *) pList, UNO_QUERY );
- m_aAttributeType = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
- m_aXMLXlinkNS = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK_PREFIX ));
- m_aXMLStatusBarNS = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_STATUSBAR_PREFIX ));
-}
-
-OWriteStatusBarDocumentHandler::~OWriteStatusBarDocumentHandler()
-{
-}
-
-void OWriteStatusBarDocumentHandler::WriteStatusBarDocument() throw
-( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- m_xWriteDocumentHandler->startDocument();
-
- // write DOCTYPE line!
- Reference< XExtendedDocumentHandler > xExtendedDocHandler( m_xWriteDocumentHandler, UNO_QUERY );
- if ( xExtendedDocHandler.is() )
- {
- xExtendedDocHandler->unknown( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( STATUSBAR_DOCTYPE )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- }
-
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_STATUSBAR )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_STATUSBAR )) );
-
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_XLINK )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK )) );
-
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_STATUSBAR )), pList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- sal_Int32 nItemCount = m_aStatusBarItems->getCount();
- Any aAny;
-
- for ( sal_Int32 nItemPos = 0; nItemPos < nItemCount; nItemPos++ )
- {
- Sequence< PropertyValue > aProps;
- aAny = m_aStatusBarItems->getByIndex( nItemPos );
- if ( aAny >>= aProps )
- {
- ::rtl::OUString aCommandURL;
- ::rtl::OUString aHelpURL;
- sal_Int16 nStyle( ItemStyle::ALIGN_CENTER|ItemStyle::DRAW_IN3D );
- sal_Int16 nWidth( 0 );
- sal_Int16 nOffset( STATUSBAR_OFFSET );
-
- ExtractStatusbarItemParameters(
- aProps,
- aCommandURL,
- aHelpURL,
- nOffset,
- nStyle,
- nWidth );
-
- if ( aCommandURL.getLength() > 0 )
- WriteStatusBarItem( aCommandURL, aHelpURL, nOffset, nStyle, nWidth );
- }
- }
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_STATUSBAR )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endDocument();
-}
-
-//_________________________________________________________________________________________________________________
-// protected member functions
-//_________________________________________________________________________________________________________________
-
-void OWriteStatusBarDocumentHandler::WriteStatusBarItem(
- const rtl::OUString& rCommandURL,
- const rtl::OUString& /*rHelpURL*/,
- sal_Int16 nOffset,
- sal_Int16 nStyle,
- sal_Int16 nWidth )
-throw ( SAXException, RuntimeException )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- if ( m_aAttributeURL.getLength() == 0 )
- {
- m_aAttributeURL = m_aXMLXlinkNS;
- m_aAttributeURL += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_URL ));
- }
-
- // save required attribute (URL)
- pList->AddAttribute( m_aAttributeURL, m_aAttributeType, rCommandURL );
-
- // alignment
- if ( nStyle & ItemStyle::ALIGN_RIGHT )
- {
- pList->AddAttribute( m_aXMLStatusBarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_ALIGN )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_ALIGN_RIGHT )) );
- }
- else if ( nStyle & ItemStyle::ALIGN_CENTER )
- {
- pList->AddAttribute( m_aXMLStatusBarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_ALIGN )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_ALIGN_CENTER )) );
- }
- else
- {
- pList->AddAttribute( m_aXMLStatusBarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_ALIGN )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_ALIGN_LEFT )) );
- }
-
- // style ( SIB_IN is default )
- if ( nStyle & ItemStyle::DRAW_FLAT )
- {
- pList->AddAttribute( m_aXMLStatusBarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_STYLE )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_STYLE_FLAT )) );
- }
- else if ( nStyle & ItemStyle::DRAW_OUT3D )
- {
- pList->AddAttribute( m_aXMLStatusBarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_STYLE )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_STYLE_OUT )) );
- }
-
- // autosize (default FALSE)
- if ( nStyle & ItemStyle::AUTO_SIZE )
- {
- pList->AddAttribute( m_aXMLStatusBarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_AUTOSIZE )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_BOOLEAN_TRUE )) );
- }
-
- // ownerdraw (default FALSE)
- if ( nStyle & ItemStyle::OWNER_DRAW )
- {
- pList->AddAttribute( m_aXMLStatusBarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_OWNERDRAW )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_BOOLEAN_TRUE )) );
- }
-
- // width (default 0)
- if ( nWidth > 0 )
- {
- pList->AddAttribute( m_aXMLStatusBarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_WIDTH )),
- m_aAttributeType,
- ::rtl::OUString::valueOf( (sal_Int32)nWidth ) );
- }
-
- // offset (default STATUSBAR_OFFSET)
- if ( nOffset != STATUSBAR_OFFSET )
- {
- pList->AddAttribute( m_aXMLStatusBarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_OFFSET )),
- m_aAttributeType,
- ::rtl::OUString::valueOf( (sal_Int32)nOffset ) );
- }
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_STATUSBARITEM )), xList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_STATUSBARITEM )) );
-}
-
-} // namespace framework
-
diff --git a/framework/source/xml/toolboxconfiguration.cxx b/framework/source/xml/toolboxconfiguration.cxx
deleted file mode 100644
index 1c6ba1e1cfab..000000000000
--- a/framework/source/xml/toolboxconfiguration.cxx
+++ /dev/null
@@ -1,160 +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: toolboxconfiguration.cxx,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.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_framework.hxx"
-#include <xml/toolboxconfiguration.hxx>
-#include <xml/toolboxdocumenthandler.hxx>
-#include <xml/toolboxlayoutdocumenthandler.hxx>
-#include <xml/saxnamespacefilter.hxx>
-#include <services.h>
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-#include <com/sun/star/xml/sax/XParser.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-//_________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________
-
-#ifndef _UNOTOOLS_PROCESSFACTORY_HXX
-#include <comphelper/processfactory.hxx>
-#endif
-#include <unotools/streamwrap.hxx>
-#include <tools/debug.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::container;
-
-
-namespace framework
-{
-
-static Reference< XParser > GetSaxParser(
- // #110897#
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
- )
-{
- return Reference< XParser >( xServiceFactory->createInstance( SERVICENAME_SAXPARSER), UNO_QUERY);
-}
-
-static Reference< XDocumentHandler > GetSaxWriter(
- // #110897#
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
- )
-{
- return Reference< XDocumentHandler >( xServiceFactory->createInstance( SERVICENAME_SAXWRITER), UNO_QUERY) ;
-}
-
-// #110897#
-sal_Bool ToolBoxConfiguration::LoadToolBox(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
- const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rInputStream,
- const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& rToolbarConfiguration )
-{
- Reference< XParser > xParser( GetSaxParser( xServiceFactory ) );
-
- // connect stream to input stream to the parser
- InputSource aInputSource;
-
- aInputSource.aInputStream = rInputStream;
-
- // create namespace filter and set menudocument handler inside to support xml namespaces
- Reference< XDocumentHandler > xDocHandler( new OReadToolBoxDocumentHandler( rToolbarConfiguration ));
- Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
-
- // connect parser and filter
- xParser->setDocumentHandler( xFilter );
-
- try
- {
- xParser->parseStream( aInputSource );
- return sal_True;
- }
- catch ( RuntimeException& )
- {
- return sal_False;
- }
- catch( SAXException& )
- {
- return sal_False;
- }
- catch( ::com::sun::star::io::IOException& )
- {
- return sal_False;
- }
-}
-
-
-// #110897#
-sal_Bool ToolBoxConfiguration::StoreToolBox(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
- const ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream >& rOutputStream,
- const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& rToolbarConfiguration )
-{
- Reference< XDocumentHandler > xWriter( GetSaxWriter( xServiceFactory ) );
-
- Reference< ::com::sun::star::io::XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
- xDataSource->setOutputStream( rOutputStream );
-
- try
- {
- OWriteToolBoxDocumentHandler aWriteToolBoxDocumentHandler( rToolbarConfiguration, xWriter );
- aWriteToolBoxDocumentHandler.WriteToolBoxDocument();
- return sal_True;
- }
- catch ( RuntimeException& )
- {
- return sal_False;
- }
- catch ( SAXException& )
- {
- return sal_False;
- }
- catch ( ::com::sun::star::io::IOException& )
- {
- return sal_False;
- }
-}
-
-}
-
diff --git a/framework/source/xml/toolboxdocumenthandler.cxx b/framework/source/xml/toolboxdocumenthandler.cxx
deleted file mode 100644
index 78d6f8158413..000000000000
--- a/framework/source/xml/toolboxdocumenthandler.cxx
+++ /dev/null
@@ -1,829 +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: toolboxdocumenthandler.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"
-
-#include <stdio.h>
-
-//_________________________________________________________________________________________________________________
-// my own includes
-//_________________________________________________________________________________________________________________
-
-#include <threadhelp/resetableguard.hxx>
-#include <xml/toolboxdocumenthandler.hxx>
-#include <macros/debug.hxx>
-#include <xml/toolboxconfigurationdefines.hxx>
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-#include <com/sun/star/xml/sax/XExtendedDocumentHandler.hpp>
-#include <com/sun/star/ui/ItemType.hpp>
-#include <com/sun/star/ui/ItemStyle.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-//_________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________
-
-#include <sal/config.h>
-#include <vcl/svapp.hxx>
-#include <vcl/toolbox.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <comphelper/attributelist.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespace
-//_________________________________________________________________________________________________________________
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::xml::sax;
-
-
-#define TOOLBAR_DOCTYPE "<!DOCTYPE toolbar:toolbar PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"toolbar.dtd\">"
-
-namespace framework
-{
-
-// Property names of a menu/menu item ItemDescriptor
-static const char ITEM_DESCRIPTOR_COMMANDURL[] = "CommandURL";
-static const char ITEM_DESCRIPTOR_HELPURL[] = "HelpURL";
-static const char ITEM_DESCRIPTOR_LABEL[] = "Label";
-static const char ITEM_DESCRIPTOR_TYPE[] = "Type";
-static const char ITEM_DESCRIPTOR_STYLE[] = "Style";
-static const char ITEM_DESCRIPTOR_VISIBLE[] = "IsVisible";
-static const char ITEM_DESCRIPTOR_WIDTH[] = "Width";
-
-static void ExtractToolbarParameters( const Sequence< PropertyValue > rProp,
- ::rtl::OUString& rCommandURL,
- ::rtl::OUString& rLabel,
- ::rtl::OUString& rHelpURL,
- sal_Int16& rWidth,
- sal_Bool& rVisible,
- sal_Int16& rType )
-{
- for ( sal_Int32 i = 0; i < rProp.getLength(); i++ )
- {
- if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_COMMANDURL ))
- {
- rProp[i].Value >>= rCommandURL;
- rCommandURL = rCommandURL.intern();
- }
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_HELPURL ))
- rProp[i].Value >>= rHelpURL;
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_LABEL ))
- rProp[i].Value >>= rLabel;
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_TYPE ))
- rProp[i].Value >>= rType;
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_VISIBLE ))
- rProp[i].Value >>= rVisible;
- else if ( rProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_WIDTH ))
- rProp[i].Value >>= rWidth;
- }
-}
-
-struct ToolBarEntryProperty
-{
- OReadToolBoxDocumentHandler::ToolBox_XML_Namespace nNamespace;
- char aEntryName[20];
-};
-
-ToolBarEntryProperty ToolBoxEntries[OReadToolBoxDocumentHandler::TB_XML_ENTRY_COUNT] =
-{
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ELEMENT_TOOLBAR },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ELEMENT_TOOLBARITEM },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ELEMENT_TOOLBARSPACE },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ELEMENT_TOOLBARBREAK },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ELEMENT_TOOLBARSEPARATOR },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ATTRIBUTE_TEXT },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ATTRIBUTE_BITMAP },
- { OReadToolBoxDocumentHandler::TB_NS_XLINK, ATTRIBUTE_URL },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ATTRIBUTE_ITEMBITS },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ATTRIBUTE_VISIBLE },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ATTRIBUTE_WIDTH },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ATTRIBUTE_USER },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ATTRIBUTE_HELPID },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ATTRIBUTE_ITEMSTYLE },
- { OReadToolBoxDocumentHandler::TB_NS_TOOLBAR, ATTRIBUTE_UINAME }
-};
-
-OReadToolBoxDocumentHandler::OReadToolBoxDocumentHandler( const Reference< XIndexContainer >& rItemContainer ) :
- ThreadHelpBase( &Application::GetSolarMutex() ),
- m_rItemContainer( rItemContainer ),
- m_aType( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_TYPE )),
- m_aLabel( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_LABEL )),
- m_aStyle( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_STYLE )),
- m_aHelpURL( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_HELPURL )),
- m_aIsVisible( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_VISIBLE )),
- m_aCommandURL( RTL_CONSTASCII_USTRINGPARAM( ITEM_DESCRIPTOR_COMMANDURL ))
- {
- ::rtl::OUString aNamespaceToolBar( RTL_CONSTASCII_USTRINGPARAM( XMLNS_TOOLBAR ));
- ::rtl::OUString aNamespaceXLink( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK ));
- ::rtl::OUString aSeparator( RTL_CONSTASCII_USTRINGPARAM( XMLNS_FILTER_SEPARATOR ));
-
- // create hash map
- for ( int i = 0; i < (int)TB_XML_ENTRY_COUNT; i++ )
- {
- if ( ToolBoxEntries[i].nNamespace == TB_NS_TOOLBAR )
- {
- ::rtl::OUString temp( aNamespaceToolBar );
- temp += aSeparator;
- temp += ::rtl::OUString::createFromAscii( ToolBoxEntries[i].aEntryName );
- m_aToolBoxMap.insert( ToolBoxHashMap::value_type( temp, (ToolBox_XML_Entry)i ) );
- }
- else
- {
- ::rtl::OUString temp( aNamespaceXLink );
- temp += aSeparator;
- temp += ::rtl::OUString::createFromAscii( ToolBoxEntries[i].aEntryName );
- m_aToolBoxMap.insert( ToolBoxHashMap::value_type( temp, (ToolBox_XML_Entry)i ) );
- }
- }
-
- // pre-calculate a hash code for all style strings to speed up xml read process
- m_nHashCode_Style_Radio = ::rtl::OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_RADIO ).hashCode();
- m_nHashCode_Style_Auto = ::rtl::OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_AUTO ).hashCode();
- m_nHashCode_Style_Left = ::rtl::OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_LEFT ).hashCode();
- m_nHashCode_Style_AutoSize = ::rtl::OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_AUTOSIZE ).hashCode();
- m_nHashCode_Style_DropDown = ::rtl::OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_DROPDOWN ).hashCode();
- m_nHashCode_Style_Repeat = ::rtl::OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_REPEAT ).hashCode();
- m_nHashCode_Style_DropDownOnly = ::rtl::OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_DROPDOWNONLY ).hashCode();
-
- m_bToolBarStartFound = sal_False;
- m_bToolBarEndFound = sal_False;
- m_bToolBarItemStartFound = sal_False;
- m_bToolBarSpaceStartFound = sal_False;
- m_bToolBarBreakStartFound = sal_False;
- m_bToolBarSeparatorStartFound = sal_False;
-}
-
-OReadToolBoxDocumentHandler::~OReadToolBoxDocumentHandler()
-{
-}
-
-// XDocumentHandler
-void SAL_CALL OReadToolBoxDocumentHandler::startDocument(void)
-throw ( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadToolBoxDocumentHandler::endDocument(void)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- if (( m_bToolBarStartFound && !m_bToolBarEndFound ) ||
- ( !m_bToolBarStartFound && m_bToolBarEndFound ) )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "No matching start or end element 'toolbar' found!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-void SAL_CALL OReadToolBoxDocumentHandler::startElement(
- const ::rtl::OUString& aName, const Reference< XAttributeList > &xAttribs )
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- ToolBoxHashMap::const_iterator pToolBoxEntry = m_aToolBoxMap.find( aName ) ;
- if ( pToolBoxEntry != m_aToolBoxMap.end() )
- {
- switch ( pToolBoxEntry->second )
- {
- case TB_ELEMENT_TOOLBAR:
- {
- if ( m_bToolBarStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'toolbar:toolbar' cannot be embeded into 'toolbar:toolbar'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- else
- {
- // Check if we have a UI name set in our XML file
- ::rtl::OUString aUIName;
- for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
- {
- pToolBoxEntry = m_aToolBoxMap.find( xAttribs->getNameByIndex( n ) );
- if ( pToolBoxEntry != m_aToolBoxMap.end() )
- {
- switch ( pToolBoxEntry->second )
- {
- case TB_ATTRIBUTE_UINAME:
- aUIName = xAttribs->getValueByIndex( n );
- break;
- default:
- break;
- }
- }
- }
-
- if ( aUIName.getLength() > 0 )
- {
- // Try to set UI name as a container property
- Reference< XPropertySet > xPropSet( m_rItemContainer, UNO_QUERY );
- if ( xPropSet.is() )
- {
- try
- {
- xPropSet->setPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "UIName" )), makeAny( aUIName ) );
- }
- catch ( UnknownPropertyException& )
- {
- }
- }
- }
- }
-
- m_bToolBarStartFound = sal_True;
- }
- break;
-
- case TB_ELEMENT_TOOLBARITEM:
- {
- if ( !m_bToolBarStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'toolbar:toolbaritem' must be embeded into element 'toolbar:toolbar'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- if ( m_bToolBarSeparatorStartFound ||
- m_bToolBarBreakStartFound ||
- m_bToolBarSpaceStartFound ||
- m_bToolBarItemStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element toolbar:toolbaritem is not a container!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- ::rtl::OUString aAttribute;
- sal_Bool bAttributeURL = sal_False;
-
- m_bToolBarItemStartFound = sal_True;
- ::rtl::OUString aLabel;
- ::rtl::OUString aCommandURL;
- ::rtl::OUString aHelpURL;
- ::rtl::OUString aBitmapName;
- sal_uInt16 nItemBits( 0 );
- sal_uInt16 nWidth( 0 );
- sal_uInt16 nUserDef( 0 );
- sal_Bool bVisible( sal_True );
-
- for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
- {
- pToolBoxEntry = m_aToolBoxMap.find( xAttribs->getNameByIndex( n ) );
- if ( pToolBoxEntry != m_aToolBoxMap.end() )
- {
- switch ( pToolBoxEntry->second )
- {
- case TB_ATTRIBUTE_TEXT:
- {
- aLabel = xAttribs->getValueByIndex( n );
- }
- break;
-
- case TB_ATTRIBUTE_BITMAP:
- {
- aBitmapName = xAttribs->getValueByIndex( n );
- }
- break;
-
- case TB_ATTRIBUTE_URL:
- {
- bAttributeURL = sal_True;
- aCommandURL = xAttribs->getValueByIndex( n ).intern();
- }
- break;
-
- case TB_ATTRIBUTE_ITEMBITS:
- {
- nItemBits = (USHORT)(xAttribs->getValueByIndex( n ).toInt32());
- }
- break;
-
- case TB_ATTRIBUTE_VISIBLE:
- {
- if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_BOOLEAN_TRUE )) )
- bVisible = sal_True;
- else if ( xAttribs->getValueByIndex( n ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_BOOLEAN_FALSE )) )
- bVisible = sal_False;
- else
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Attribute toolbar:visible must have value 'true' or 'false'!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- break;
-
- case TB_ATTRIBUTE_WIDTH:
- {
- nWidth = (USHORT)(xAttribs->getValueByIndex( n ).toInt32());
- }
- break;
-
- case TB_ATTRIBUTE_USER:
- {
- nUserDef = (USHORT)(xAttribs->getValueByIndex( n ).toInt32());
- }
- break;
-
- case TB_ATTRIBUTE_HELPID:
- {
- aHelpURL = xAttribs->getValueByIndex( n );
- }
- break;
-
- case TB_ATTRIBUTE_STYLE:
- {
- // read space seperated item style list
- ::rtl::OUString aTemp = xAttribs->getValueByIndex( n );
- sal_Int32 nIndex = 0;
-
- do
- {
- ::rtl::OUString aToken = aTemp.getToken( 0, ' ', nIndex );
- if ( aToken.getLength() > 0 )
- {
- sal_Int32 nHashCode = aToken.hashCode();
- if ( nHashCode == m_nHashCode_Style_Radio )
- nItemBits |= ::com::sun::star::ui::ItemStyle::RADIO_CHECK;
- else if ( nHashCode == m_nHashCode_Style_Left )
- nItemBits |= ::com::sun::star::ui::ItemStyle::ALIGN_LEFT;
- else if ( nHashCode == m_nHashCode_Style_AutoSize )
- nItemBits |= ::com::sun::star::ui::ItemStyle::AUTO_SIZE;
- else if ( nHashCode == m_nHashCode_Style_DropDown )
- nItemBits |= ::com::sun::star::ui::ItemStyle::DROP_DOWN;
- else if ( nHashCode == m_nHashCode_Style_Repeat )
- nItemBits |= ::com::sun::star::ui::ItemStyle::REPEAT;
- else if ( nHashCode == m_nHashCode_Style_DropDownOnly )
- nItemBits |= ::com::sun::star::ui::ItemStyle::DROPDOWN_ONLY;
- }
- }
- while ( nIndex >= 0 );
- }
- break;
-
- default:
- break;
- }
- }
- } // for
-
- if ( !bAttributeURL )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute toolbar:url must have a value!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- if ( aCommandURL.getLength() > 0 )
- {
- Sequence< PropertyValue > aToolbarItemProp( 6 );
- aToolbarItemProp[0].Name = m_aCommandURL;
- aToolbarItemProp[1].Name = m_aHelpURL;
- aToolbarItemProp[2].Name = m_aLabel;
- aToolbarItemProp[3].Name = m_aType;
- aToolbarItemProp[4].Name = m_aStyle;
- aToolbarItemProp[5].Name = m_aIsVisible;
-
- aToolbarItemProp[0].Value <<= aCommandURL;
- aToolbarItemProp[1].Value <<= aHelpURL;
- aToolbarItemProp[2].Value <<= aLabel;
- aToolbarItemProp[3].Value = makeAny( ::com::sun::star::ui::ItemType::DEFAULT );
- aToolbarItemProp[4].Value <<= nItemBits;
- aToolbarItemProp[5].Value <<= bVisible;
-
- m_rItemContainer->insertByIndex( m_rItemContainer->getCount(), makeAny( aToolbarItemProp ) );
- }
- }
- break;
-
- case TB_ELEMENT_TOOLBARSPACE:
- {
- if ( m_bToolBarSeparatorStartFound ||
- m_bToolBarBreakStartFound ||
- m_bToolBarSpaceStartFound ||
- m_bToolBarItemStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element toolbar:toolbarspace is not a container!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bToolBarSpaceStartFound = sal_True;
-
- Sequence< PropertyValue > aToolbarItemProp( 2 );
- aToolbarItemProp[0].Name = m_aCommandURL;
- aToolbarItemProp[1].Name = m_aType;
-
- aToolbarItemProp[0].Value <<= rtl::OUString();
- aToolbarItemProp[1].Value <<= ::com::sun::star::ui::ItemType::SEPARATOR_SPACE;
-
- m_rItemContainer->insertByIndex( m_rItemContainer->getCount(), makeAny( aToolbarItemProp ) );
- }
- break;
-
- case TB_ELEMENT_TOOLBARBREAK:
- {
- if ( m_bToolBarSeparatorStartFound ||
- m_bToolBarBreakStartFound ||
- m_bToolBarSpaceStartFound ||
- m_bToolBarItemStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element toolbar:toolbarbreak is not a container!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bToolBarBreakStartFound = sal_True;
-
- Sequence< PropertyValue > aToolbarItemProp( 2 );
- aToolbarItemProp[0].Name = m_aCommandURL;
- aToolbarItemProp[1].Name = m_aType;
-
- aToolbarItemProp[0].Value <<= rtl::OUString();
- aToolbarItemProp[1].Value <<= ::com::sun::star::ui::ItemType::SEPARATOR_LINEBREAK;
-
- m_rItemContainer->insertByIndex( m_rItemContainer->getCount(), makeAny( aToolbarItemProp ) );
- }
- break;
-
- case TB_ELEMENT_TOOLBARSEPARATOR:
- {
- if ( m_bToolBarSeparatorStartFound ||
- m_bToolBarBreakStartFound ||
- m_bToolBarSpaceStartFound ||
- m_bToolBarItemStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element toolbar:toolbarseparator is not a container!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bToolBarSeparatorStartFound = sal_True;
-
- Sequence< PropertyValue > aToolbarItemProp( 2 );
- aToolbarItemProp[0].Name = m_aCommandURL;
- aToolbarItemProp[1].Name = m_aType;
-
- aToolbarItemProp[0].Value <<= rtl::OUString();
- aToolbarItemProp[1].Value <<= ::com::sun::star::ui::ItemType::SEPARATOR_LINE;
-
- m_rItemContainer->insertByIndex( m_rItemContainer->getCount(), makeAny( aToolbarItemProp ) );
- }
- break;
-
- default:
- break;
- }
- }
-}
-
-void SAL_CALL OReadToolBoxDocumentHandler::endElement(const ::rtl::OUString& aName)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- ToolBoxHashMap::const_iterator pToolBoxEntry = m_aToolBoxMap.find( aName ) ;
- if ( pToolBoxEntry != m_aToolBoxMap.end() )
- {
- switch ( pToolBoxEntry->second )
- {
- case TB_ELEMENT_TOOLBAR:
- {
- if ( !m_bToolBarStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'toolbar' found, but no start element 'toolbar'" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bToolBarStartFound = sal_False;
- }
- break;
-
- case TB_ELEMENT_TOOLBARITEM:
- {
- if ( !m_bToolBarItemStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'toolbar:toolbaritem' found, but no start element 'toolbar:toolbaritem'" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bToolBarItemStartFound = sal_False;
- }
- break;
-
- case TB_ELEMENT_TOOLBARBREAK:
- {
- if ( !m_bToolBarBreakStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'toolbar:toolbarbreak' found, but no start element 'toolbar:toolbarbreak'" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bToolBarBreakStartFound = sal_False;
- }
- break;
-
- case TB_ELEMENT_TOOLBARSPACE:
- {
- if ( !m_bToolBarSpaceStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'toolbar:toolbarspace' found, but no start element 'toolbar:toolbarspace'" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bToolBarSpaceStartFound = sal_False;
- }
- break;
-
- case TB_ELEMENT_TOOLBARSEPARATOR:
- {
- if ( !m_bToolBarSeparatorStartFound )
- {
- ::rtl::OUString aErrorMessage = getErrorLineString();
- aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'toolbar:toolbarseparator' found, but no start element 'toolbar:toolbarseparator'" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-
- m_bToolBarSeparatorStartFound = sal_False;
- }
- break;
-
- default:
- break;
- }
- }
-}
-
-void SAL_CALL OReadToolBoxDocumentHandler::characters(const ::rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadToolBoxDocumentHandler::ignorableWhitespace(const ::rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadToolBoxDocumentHandler::processingInstruction(
- const ::rtl::OUString& /*aTarget*/, const ::rtl::OUString& /*aData*/ )
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadToolBoxDocumentHandler::setDocumentLocator(
- const Reference< XLocator > &xLocator)
-throw( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- m_xLocator = xLocator;
-}
-
-::rtl::OUString OReadToolBoxDocumentHandler::getErrorLineString()
-{
- ResetableGuard aGuard( m_aLock );
-
- char buffer[32];
-
- if ( m_xLocator.is() )
- {
- snprintf( buffer, sizeof(buffer), "Line: %ld - ", static_cast<long>( m_xLocator->getLineNumber() ));
- return ::rtl::OUString::createFromAscii( buffer );
- }
- else
- return ::rtl::OUString();
-}
-
-
-//_________________________________________________________________________________________________________________
-// OWriteToolBoxDocumentHandler
-//_________________________________________________________________________________________________________________
-
-OWriteToolBoxDocumentHandler::OWriteToolBoxDocumentHandler(
- const Reference< XIndexAccess >& rItemAccess,
- Reference< XDocumentHandler >& rWriteDocumentHandler ) :
- ThreadHelpBase( &Application::GetSolarMutex() ),
- m_xWriteDocumentHandler( rWriteDocumentHandler ),
- m_rItemAccess( rItemAccess )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- m_xEmptyList = Reference< XAttributeList >( (XAttributeList *) pList, UNO_QUERY );
- m_aAttributeType = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
- m_aXMLXlinkNS = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK_PREFIX ));
- m_aXMLToolbarNS = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_TOOLBAR_PREFIX ));
-}
-
-OWriteToolBoxDocumentHandler::~OWriteToolBoxDocumentHandler()
-{
-}
-
-void OWriteToolBoxDocumentHandler::WriteToolBoxDocument() throw
-( SAXException, RuntimeException )
-{
- ResetableGuard aGuard( m_aLock );
-
- m_xWriteDocumentHandler->startDocument();
-
- // write DOCTYPE line!
- Reference< XExtendedDocumentHandler > xExtendedDocHandler( m_xWriteDocumentHandler, UNO_QUERY );
- if ( xExtendedDocHandler.is() )
- {
- xExtendedDocHandler->unknown( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( TOOLBAR_DOCTYPE )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- }
-
- ::rtl::OUString aUIName;
- Reference< XPropertySet > xPropSet( m_rItemAccess, UNO_QUERY );
- if ( xPropSet.is() )
- {
- try
- {
- xPropSet->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "UIName" ))) >>= aUIName;
- }
- catch ( UnknownPropertyException& )
- {
- }
- }
-
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_TOOLBAR )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_TOOLBAR )) );
-
- pList->AddAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_XLINK )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK )) );
-
- if ( aUIName.getLength() > 0 )
- pList->AddAttribute( m_aXMLToolbarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_UINAME )),
- m_aAttributeType,
- aUIName );
-
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBAR )), pList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
-
- sal_Int32 nItemCount = m_rItemAccess->getCount();
- Any aAny;
-
- for ( sal_Int32 nItemPos = 0; nItemPos < nItemCount; nItemPos++ )
- {
- Sequence< PropertyValue > aProps;
- aAny = m_rItemAccess->getByIndex( nItemPos );
- if ( aAny >>= aProps )
- {
- ::rtl::OUString aCommandURL;
- ::rtl::OUString aLabel;
- ::rtl::OUString aHelpURL;
- sal_Bool bVisible( sal_True );
- sal_Int16 nType( ::com::sun::star::ui::ItemType::DEFAULT );
- sal_Int16 nWidth( 0 );
-
- ExtractToolbarParameters( aProps, aCommandURL, aLabel, aHelpURL, nWidth, bVisible, nType );
- if ( nType == ::com::sun::star::ui::ItemType::DEFAULT )
- WriteToolBoxItem( aCommandURL, aLabel, aHelpURL, nWidth, bVisible );
- else if ( nType == ::com::sun::star::ui::ItemType::SEPARATOR_SPACE )
- WriteToolBoxSpace();
- else if ( nType == ::com::sun::star::ui::ItemType::SEPARATOR_LINE )
- WriteToolBoxSeparator();
- else if ( nType == ::com::sun::star::ui::ItemType::SEPARATOR_LINEBREAK )
- WriteToolBoxBreak();
- }
- }
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBAR )) );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endDocument();
-}
-
-//_________________________________________________________________________________________________________________
-// protected member functions
-//_________________________________________________________________________________________________________________
-
-void OWriteToolBoxDocumentHandler::WriteToolBoxItem(
- const ::rtl::OUString& rCommandURL,
- const ::rtl::OUString& rLabel,
- const ::rtl::OUString& rHelpURL,
- sal_Int16 nWidth,
- sal_Bool bVisible )
-throw ( SAXException, RuntimeException )
-{
- ::comphelper::AttributeList* pList = new ::comphelper::AttributeList;
- Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
-
- if ( m_aAttributeURL.getLength() == 0 )
- {
- m_aAttributeURL = m_aXMLXlinkNS;
- m_aAttributeURL += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_URL ));
- }
-
- // save required attribute (URL)
- pList->AddAttribute( m_aAttributeURL, m_aAttributeType, rCommandURL );
-
- if ( rLabel.getLength() > 0 )
- {
- pList->AddAttribute( m_aXMLToolbarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TEXT )),
- m_aAttributeType,
- rLabel );
- }
-
- if ( bVisible == sal_False )
- {
- pList->AddAttribute( m_aXMLToolbarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_VISIBLE )),
- m_aAttributeType,
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_BOOLEAN_FALSE )) );
- }
-
- if ( rHelpURL.getLength() > 0 )
- {
- pList->AddAttribute( m_aXMLToolbarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HELPID )),
- m_aAttributeType,
- rHelpURL );
- }
-
- if ( nWidth > 0 )
- {
- pList->AddAttribute( m_aXMLToolbarNS + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_WIDTH )),
- m_aAttributeType,
- ::rtl::OUString::valueOf( sal_Int32( nWidth )) );
- }
-
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARITEM )), xList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARITEM )) );
-}
-
-void OWriteToolBoxDocumentHandler::WriteToolBoxSpace() throw
-( SAXException, RuntimeException )
-{
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARSPACE )), m_xEmptyList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARSPACE )) );
-}
-
-void OWriteToolBoxDocumentHandler::WriteToolBoxBreak() throw
-( SAXException, RuntimeException )
-{
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARBREAK )), m_xEmptyList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARBREAK )) );
-}
-
-void OWriteToolBoxDocumentHandler::WriteToolBoxSeparator() throw
-( SAXException, RuntimeException )
-{
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->startElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARSEPARATOR )), m_xEmptyList );
- m_xWriteDocumentHandler->ignorableWhitespace( ::rtl::OUString() );
- m_xWriteDocumentHandler->endElement( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARSEPARATOR )) );
-}
-
-} // namespace framework
-
diff --git a/framework/source/xml/toolboxlayoutdocumenthandler.cxx b/framework/source/xml/toolboxlayoutdocumenthandler.cxx
deleted file mode 100644
index 5fb9d7677a83..000000000000
--- a/framework/source/xml/toolboxlayoutdocumenthandler.cxx
+++ /dev/null
@@ -1,61 +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: toolboxlayoutdocumenthandler.cxx,v $
- * $Revision: 1.7 $
- *
- * 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/xml/xmlnamespaces.cxx
deleted file mode 100644
index ba4c6b8ede9b..000000000000
--- a/framework/source/xml/xmlnamespaces.cxx
+++ /dev/null
@@ -1,194 +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: xmlnamespaces.cxx,v $
- * $Revision: 1.6 $
- *
- * 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 <xml/xmlnamespaces.hxx>
-
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::uno;
-
-const ::rtl::OUString aXMLAttributeNamespace( RTL_CONSTASCII_USTRINGPARAM( "xmlns" ));
-
-namespace framework
-{
-
-XMLNamespaces::XMLNamespaces()
-{
-}
-
-XMLNamespaces::XMLNamespaces( const XMLNamespaces& aXMLNamespaces )
-{
- m_aDefaultNamespace = aXMLNamespaces.m_aDefaultNamespace;
- m_aNamespaceMap = aXMLNamespaces.m_aNamespaceMap;
-}
-
-XMLNamespaces::~XMLNamespaces()
-{
-}
-
-void XMLNamespaces::addNamespace( const ::rtl::OUString& aName, const ::rtl::OUString& aValue ) throw( SAXException )
-{
- NamespaceMap::iterator p;
- ::rtl::OUString aNamespaceName( aName );
- sal_Int32 nXMLNamespaceLength = aXMLAttributeNamespace.getLength();
-
- // delete preceding "xmlns"
- if ( aNamespaceName.compareTo( aXMLAttributeNamespace, nXMLNamespaceLength ) == 0 )
- {
- if ( aNamespaceName.getLength() == nXMLNamespaceLength )
- {
- aNamespaceName = ::rtl::OUString();
- }
- else if ( aNamespaceName.getLength() >= nXMLNamespaceLength+2 )
- {
- aNamespaceName = aNamespaceName.copy( nXMLNamespaceLength+1 );
- }
- else
- {
- // a xml namespace without name is not allowed (e.g. "xmlns:" )
- ::rtl::OUString aErrorMessage( RTL_CONSTASCII_USTRINGPARAM( "A xml namespace without name is not allowed!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
-
- if ( aValue.getLength() == 0 && aNamespaceName.getLength() > 0 )
- {
- // namespace should be reseted - as xml draft states this is only allowed
- // for the default namespace - check and throw exception if check fails
- ::rtl::OUString aErrorMessage( RTL_CONSTASCII_USTRINGPARAM( "Clearing xml namespace only allowed for default namespace!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- else
- {
- if ( aNamespaceName.getLength() == 0 )
- m_aDefaultNamespace = aValue;
- else
- {
- p = m_aNamespaceMap.find( aNamespaceName );
- if ( p != m_aNamespaceMap.end() )
- {
- // replace current namespace definition
- m_aNamespaceMap.erase( p );
- m_aNamespaceMap.insert( NamespaceMap::value_type( aNamespaceName, aValue ));
- }
- else
- {
- m_aNamespaceMap.insert( NamespaceMap::value_type( aNamespaceName, aValue ));
- }
- }
- }
-}
-
-::rtl::OUString XMLNamespaces::applyNSToAttributeName( const ::rtl::OUString& aName ) const throw( SAXException )
-{
- // xml draft: there is no default namespace for attributes!
-
- int index;
- if (( index = aName.indexOf( ':' )) > 0 )
- {
- if ( aName.getLength() > index+1 )
- {
- ::rtl::OUString aAttributeName = getNamespaceValue( aName.copy( 0, index ) );
- aAttributeName += ::rtl::OUString::createFromAscii( "^" );
- aAttributeName += aName.copy( index+1 );
- return aAttributeName;
- }
- else
- {
- // attribute with namespace but without name "namespace:" is not allowed!!
- ::rtl::OUString aErrorMessage( RTL_CONSTASCII_USTRINGPARAM( "Attribute has no name only preceding namespace!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
-
- return aName;
-}
-
-::rtl::OUString XMLNamespaces::applyNSToElementName( const ::rtl::OUString& aName ) const throw( SAXException )
-{
- // xml draft: element names can have a default namespace
-
- int index = aName.indexOf( ':' );
- ::rtl::OUString aNamespace;
- ::rtl::OUString aElementName = aName;
-
- if ( index > 0 )
- aNamespace = getNamespaceValue( aName.copy( 0, index ) );
- else
- aNamespace = m_aDefaultNamespace;
-
- if ( aNamespace.getLength() > 0 )
- {
- aElementName = aNamespace;
- aElementName += ::rtl::OUString::createFromAscii( "^" );
- }
- else
- return aName;
-
- if ( index > 0 )
- {
- if ( aName.getLength() > index+1 )
- aElementName += aName.copy( index+1 );
- else
- {
- // attribute with namespace but without a name is not allowed (e.g. "cfg:" )
- ::rtl::OUString aErrorMessage( RTL_CONSTASCII_USTRINGPARAM( "Attribute has no name only preceding namespace!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- else
- aElementName += aName;
-
- return aElementName;
-}
-
-::rtl::OUString XMLNamespaces::getNamespaceValue( const ::rtl::OUString& aNamespace ) const throw( SAXException )
-{
- if ( aNamespace.getLength() == 0 )
- return m_aDefaultNamespace;
- else
- {
- NamespaceMap::const_iterator p;
- p = m_aNamespaceMap.find( aNamespace );
- if ( p != m_aNamespaceMap.end() )
- return p->second;
- else
- {
- // namespace not defined => throw exception!
- ::rtl::OUString aErrorMessage( RTL_CONSTASCII_USTRINGPARAM( "XML namespace used but not defined!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
-}
-
-}
-