diff options
author | Rüdiger Timm <rt@openoffice.org> | 2004-09-20 09:04:27 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2004-09-20 09:04:27 +0000 |
commit | 75efc3009c6a554e20d5d7e3e065ba68a781203b (patch) | |
tree | 47e36d5805f9af9f9ca502d832ad7132512857f3 /framework/inc | |
parent | c5f3b883365e1fba075a8fcc4e35171491826055 (diff) |
INTEGRATION: CWS keyconfig01 (1.1.2); FILE ADDED
2004/06/04 09:29:05 as 1.1.2.1: #i29863# first revision
Diffstat (limited to 'framework/inc')
-rw-r--r-- | framework/inc/xml/acceleratorconfigurationreader.hxx | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/framework/inc/xml/acceleratorconfigurationreader.hxx b/framework/inc/xml/acceleratorconfigurationreader.hxx new file mode 100644 index 000000000000..a67d1328c0b4 --- /dev/null +++ b/framework/inc/xml/acceleratorconfigurationreader.hxx @@ -0,0 +1,276 @@ +/************************************************************************* + * + * $RCSfile: acceleratorconfigurationreader.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: rt $ $Date: 2004-09-20 10:04:27 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _FRAMEWORK_XML_ACCELERATORCONFIGURATIONREADER_HXX_ +#define _FRAMEWORK_XML_ACCELERATORCONFIGURATIONREADER_HXX_ + +//_______________________________________________ +// own includes + +#ifndef __FRAMEWORK_ACCELERATORS_ACCELERATORCACHE_HXX_ +#include <accelerators/acceleratorcache.hxx> +#endif + +#ifndef __FRAMEWORK_ACCELERATORS_KEYMAPPING_HXX_ +#include <accelerators/keymapping.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XINTERFACE_HXX_ +#include <macros/xinterface.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ +#include <threadhelp/threadhelpbase.hxx> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +//_______________________________________________ +// interface includes + +#ifndef __COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_ +#include <com/sun/star/xml/sax/XDocumentHandler.hpp> +#endif + +#ifndef __COM_SUN_STAR_XML_SAX_XLOCATOR_HPP_ +#include <com/sun/star/xml/sax/XLocator.hpp> +#endif + +//_______________________________________________ +// other includes + +#ifndef _SALHELPER_SINGLETONREF_HXX_ +#include <salhelper/singletonref.hxx> +#endif + +#ifndef _CPPUHELPER_WEAK_HXX_ +#include <cppuhelper/weak.hxx> +#endif + +#ifndef _RTL_USTRING_ +#include <rtl/ustring.hxx> +#endif + +namespace framework{ + +class AcceleratorConfigurationReader : public css::xml::sax::XDocumentHandler + , private ThreadHelpBase + , public ::cppu::OWeakObject +{ + //------------------------------------------- + // const, types + + private: + + //--------------------------------------- + /** @short classification of XML elements. */ + enum EXMLElement + { + E_ELEMENT_ACCELERATORLIST, + E_ELEMENT_ITEM + }; + + //--------------------------------------- + /** @short classification of XML attributes. */ + enum EXMLAttribute + { + E_ATTRIBUTE_KEYCODE, + E_ATTRIBUTE_MOD_SHIFT, + E_ATTRIBUTE_MOD_MOD1, + E_ATTRIBUTE_MOD_MOD2, + E_ATTRIBUTE_URL + }; + + //--------------------------------------- + /** @short some namespace defines */ + enum EAcceleratorXMLNamespace + { + E_NAMESPACE_ACCEL, + E_NAMESPACE_XLINK + }; + + //------------------------------------------- + // member + + private: + + //--------------------------------------- + /** @short needed to read the xml configuration. */ + css::uno::Reference< css::xml::sax::XDocumentHandler > m_xReader; + + //--------------------------------------- + /** @short reference to the outside container, where this + reader/writer must work on. */ + AcceleratorCache& m_rContainer; + + //--------------------------------------- + /** @short used to detect if an accelerator list + occures recursive inside xml. */ + sal_Bool m_bInsideAcceleratorList; + + //--------------------------------------- + /** @short used to detect if an accelerator item + occures recursive inside xml. */ + sal_Bool m_bInsideAcceleratorItem; + + //--------------------------------------- + /** @short is used to map key codes to its + string representation. + + @descr To perform this operatio is + created only one times and holded + alive forever ...*/ + ::salhelper::SingletonRef< KeyMapping > m_rKeyMapping; + + //--------------------------------------- + /** @short provide informations abou the parsing state. + + @descr We use it to find out the line and column, where + an error occure. + */ + css::uno::Reference< css::xml::sax::XLocator > m_xLocator; + +/* SfxAcceleratorItemList& m_aReadAcceleratorList; +*/ + + //------------------------------------------- + // interface + + public: + + //--------------------------------------- + /** @short connect this new reader/writer instance + to an outside container, which should be used + flushed to the underlying XML configuration or + filled from there. + + @param rContainer + a reference to the outside container. + */ + AcceleratorConfigurationReader(AcceleratorCache& rContainer); + + //--------------------------------------- + /** @short does nothing real ... */ + virtual ~AcceleratorConfigurationReader(); + + //--------------------------------------- + // XInterface + DECLARE_XINTERFACE + + //--------------------------------------- + // XDocumentHandler + virtual void SAL_CALL startDocument() + throw(css::xml::sax::SAXException, + css::uno::RuntimeException ); + + virtual void SAL_CALL endDocument() + throw(css::xml::sax::SAXException, + css::uno::RuntimeException ); + + virtual void SAL_CALL startElement(const ::rtl::OUString& sElement , + const css::uno::Reference< css::xml::sax::XAttributeList >& xAttributeList) + throw(css::xml::sax::SAXException, + css::uno::RuntimeException ); + + virtual void SAL_CALL endElement(const ::rtl::OUString& sElement) + throw(css::xml::sax::SAXException, + css::uno::RuntimeException ); + + virtual void SAL_CALL characters(const ::rtl::OUString& sChars) + throw(css::xml::sax::SAXException, + css::uno::RuntimeException ); + + virtual void SAL_CALL ignorableWhitespace(const ::rtl::OUString& sWhitespaces) + throw(css::xml::sax::SAXException, + css::uno::RuntimeException ); + + virtual void SAL_CALL processingInstruction(const ::rtl::OUString& sTarget, + const ::rtl::OUString& sData ) + throw(css::xml::sax::SAXException, + css::uno::RuntimeException ); + + virtual void SAL_CALL setDocumentLocator(const css::uno::Reference< css::xml::sax::XLocator >& xLocator) + throw(css::xml::sax::SAXException, + css::uno::RuntimeException ); + + //------------------------------------------- + // helper + + private: + + //--------------------------------------- + /** TODO document me */ + static EXMLElement implst_classifyElement(const ::rtl::OUString& sElement); + + //--------------------------------------- + /** TODO document me */ + static EXMLAttribute implst_classifyAttribute(const ::rtl::OUString& sAttribute); + + //--------------------------------------- + /** TODO document me */ + ::rtl::OUString implts_getErrorLineString(); +}; + +} // namespace framework + +#endif // _FRAMEWORK_XML_ACCELERATORCONFIGURATIONREADER_HXX_ |