diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:57:58 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:57:58 +0100 |
commit | 32835b23716bb48eb6457dd8bbda235eda6a9968 (patch) | |
tree | 9e9f67205cd5b72f1031721273e1534a3a1e5b0f /sw/source/core/unocore/unocoll.cxx | |
parent | ba7c4b7bde85c5eb34ab64698dc9b7df88762319 (diff) |
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'sw/source/core/unocore/unocoll.cxx')
-rw-r--r-- | sw/source/core/unocore/unocoll.cxx | 1993 |
1 files changed, 0 insertions, 1993 deletions
diff --git a/sw/source/core/unocore/unocoll.cxx b/sw/source/core/unocore/unocoll.cxx deleted file mode 100644 index 11c7b90358..0000000000 --- a/sw/source/core/unocore/unocoll.cxx +++ /dev/null @@ -1,1993 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_sw.hxx" - -#include <swtypes.hxx> -#include <cmdid.h> -#include <hintids.hxx> -#include <svx/svxids.hrc> -#include <doc.hxx> -#include <docary.hxx> -#include <fmtcol.hxx> -#include <poolfmt.hxx> -#include <unocoll.hxx> -#include <unosett.hxx> -#include <fmtanchr.hxx> -#include <ndtxt.hxx> -#include <section.hxx> -#include <IMark.hxx> -#include <ftnidx.hxx> -#include <fmtftn.hxx> -#include <txtftn.hxx> -#include <fmtpdsc.hxx> -#include <pagedesc.hxx> -#include <osl/mutex.hxx> -#include <com/sun/star/text/XTextTableCursor.hpp> -#include <com/sun/star/text/XTextTablesSupplier.hpp> -#include <com/sun/star/text/TableColumnSeparator.hpp> -#include <com/sun/star/text/XTextTable.hpp> -#include <svl/PasswordHelper.hxx> -#include <svtools/unoimap.hxx> -#include <svtools/unoevent.hxx> -#include <unotbl.hxx> -#include <unostyle.hxx> -#include <unofield.hxx> -#include <unoidx.hxx> -#include <unoframe.hxx> -#include <unofootnote.hxx> -#include <vcl/svapp.hxx> -#include <fmtcntnt.hxx> -#include <authfld.hxx> -#include <SwXTextDefaults.hxx> -#include <unochart.hxx> -#include <comphelper/makesequence.hxx> -#include <comphelper/sequence.hxx> -#include <list> -#include <iterator> -#include <unosection.hxx> -#include <unoparagraph.hxx> -#include <unobookmark.hxx> -#include <unorefmark.hxx> -#include <unometa.hxx> -#include "docsh.hxx" -#include <switerator.hxx> -#include <com/sun/star/document/XCodeNameQuery.hpp> -#include <com/sun/star/drawing/XDrawPageSupplier.hpp> -#include <com/sun/star/form/XFormsSupplier.hpp> -#include <com/sun/star/script/ModuleInfo.hpp> -#include <com/sun/star/script/ModuleType.hpp> -#include <com/sun/star/script/ScriptEventDescriptor.hpp> -#include <com/sun/star/script/vba/XVBAModuleInfo.hpp> -#include <vbahelper/vbaaccesshelper.hxx> -#include <basic/basmgr.hxx> -#include <comphelper/processfactory.hxx> - -using ::rtl::OUString; -using namespace ::com::sun::star; -using namespace ::com::sun::star::document; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::text; -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::lang; - -using rtl::OUString; - -class SwVbaCodeNameProvider : public ::cppu::WeakImplHelper1< document::XCodeNameQuery > -{ - SwDocShell* mpDocShell; - rtl::OUString msThisDocumentCodeName; -public: - SwVbaCodeNameProvider( SwDocShell* pDocShell ) : mpDocShell( pDocShell ) {} - // XCodeNameQuery - rtl::OUString SAL_CALL getCodeNameForObject( const uno::Reference< uno::XInterface >& xIf ) throw( uno::RuntimeException ) - { - // Initialise the code name - if ( msThisDocumentCodeName.getLength() == 0 ) - { - try - { - uno::Reference< beans::XPropertySet > xProps( mpDocShell->GetModel(), uno::UNO_QUERY_THROW ); - uno::Reference< container::XNameAccess > xLibContainer( xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BasicLibraries") ) ), uno::UNO_QUERY_THROW ); - rtl::OUString sProjectName( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Standard") ) ); - if ( mpDocShell->GetBasicManager()->GetName().Len() ) - sProjectName = mpDocShell->GetBasicManager()->GetName(); - - uno::Reference< container::XNameAccess > xLib( xLibContainer->getByName( sProjectName ), uno::UNO_QUERY_THROW ); - uno::Sequence< rtl::OUString > sModuleNames = xLib->getElementNames(); - uno::Reference< script::vba::XVBAModuleInfo > xVBAModuleInfo( xLib, uno::UNO_QUERY ); - - for ( sal_Int32 i=0; i < sModuleNames.getLength(); ++i ) - { - script::ModuleInfo mInfo; - - if ( xVBAModuleInfo->hasModuleInfo( sModuleNames[ i ] ) && xVBAModuleInfo->getModuleInfo( sModuleNames[ i ] ).ModuleType == script::ModuleType::DOCUMENT ) - { - msThisDocumentCodeName = sModuleNames[ i ]; - break; - } - } - } - catch( uno::Exception& ) - { - } - } - rtl::OUString sCodeName; - if ( mpDocShell ) - { - OSL_TRACE( "*** In ScVbaCodeNameProvider::getCodeNameForObject"); - // need to find the page ( and index ) for this control - uno::Reference< drawing::XDrawPageSupplier > xSupplier( mpDocShell->GetModel(), uno::UNO_QUERY_THROW ); - uno::Reference< container::XIndexAccess > xIndex( xSupplier->getDrawPage(), uno::UNO_QUERY_THROW ); - - bool bMatched = false; - uno::Sequence< script::ScriptEventDescriptor > aFakeEvents; - try - { - uno::Reference< form::XFormsSupplier > xFormSupplier( xIndex, uno::UNO_QUERY_THROW ); - uno::Reference< container::XIndexAccess > xFormIndex( xFormSupplier->getForms(), uno::UNO_QUERY_THROW ); - // get the www-standard container - uno::Reference< container::XIndexAccess > xFormControls( xFormIndex->getByIndex(0), uno::UNO_QUERY_THROW ); - sal_Int32 nCntrls = xFormControls->getCount(); - for( sal_Int32 cIndex = 0; cIndex < nCntrls; ++cIndex ) - { - uno::Reference< uno::XInterface > xControl( xFormControls->getByIndex( cIndex ), uno::UNO_QUERY_THROW ); - bMatched = ( xControl == xIf ); - if ( bMatched ) - { - sCodeName = msThisDocumentCodeName; - break; - } - } - } - catch( uno::Exception& ) {} - } - // Probably should throw here ( if !bMatched ) - return sCodeName; - } -}; - -typedef boost::unordered_map< rtl::OUString, rtl::OUString, rtl::OUStringHash > StringHashMap; -class SwVbaProjectNameProvider : public ::cppu::WeakImplHelper1< container::XNameContainer > -{ - SwDocShell* mpDocShell; - StringHashMap mTemplateToProject; -public: - SwVbaProjectNameProvider( SwDocShell* pDocShell ) : mpDocShell( pDocShell ) - { - } - virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException ) - { - return ( mTemplateToProject.find( aName ) != mTemplateToProject.end() ); - } - virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) - { - if ( !hasByName( aName ) ) - throw container::NoSuchElementException(); - return uno::makeAny( mTemplateToProject.find( aName )->second ); - } - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (::com::sun::star::uno::RuntimeException) - { - uno::Sequence< rtl::OUString > aElements( mTemplateToProject.size() ); - StringHashMap::iterator it_end = mTemplateToProject.end(); - sal_Int32 index = 0; - for ( StringHashMap::iterator it = mTemplateToProject.begin(); it != it_end; ++it, ++index ) - aElements[ index ] = it->first; - return aElements; - } - - virtual void SAL_CALL insertByName( const rtl::OUString& aName, const uno::Any& aElement ) throw ( com::sun::star::lang::IllegalArgumentException, com::sun::star::container::ElementExistException, com::sun::star::lang::WrappedTargetException ) - { - - rtl::OUString sProjectName; - aElement >>= sProjectName; - OSL_TRACE("** Template cache inserting template name %s with project %s" - , rtl::OUStringToOString( aName, RTL_TEXTENCODING_UTF8 ).getStr() - , rtl::OUStringToOString( sProjectName, RTL_TEXTENCODING_UTF8 ).getStr() ); - mTemplateToProject[ aName ] = sProjectName; - } - - virtual void SAL_CALL removeByName( const rtl::OUString& Name ) throw ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::WrappedTargetException ) - { - if ( !hasByName( Name ) ) - throw container::NoSuchElementException(); - mTemplateToProject.erase( Name ); - } - virtual void SAL_CALL replaceByName( const rtl::OUString& aName, const uno::Any& aElement ) throw ( com::sun::star::lang::IllegalArgumentException, com::sun::star::container::NoSuchElementException, com::sun::star::lang::WrappedTargetException ) - { - if ( !hasByName( aName ) ) - throw container::NoSuchElementException(); - insertByName( aName, aElement ); // insert will overwrite - } - // XElemenAccess - virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException) - { - return ::getCppuType((const rtl::OUString*)0); - } - virtual ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException ) - { - - return ( mTemplateToProject.size() > 0 ); - } - -}; - -class SwVbaObjectForCodeNameProvider : public ::cppu::WeakImplHelper1< container::XNameAccess > -{ - SwDocShell* mpDocShell; -public: - SwVbaObjectForCodeNameProvider( SwDocShell* pDocShell ) : mpDocShell( pDocShell ) - { - // #FIXME #TODO is the code name for ThisDocument read anywhere? - } - - virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException ) - { - // #FIXME #TODO we really need to be checking against the codename for - // ThisDocument - if ( aName.equals( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ThisDocument" ) ) ) ) - return sal_True; - return sal_False; - } - ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) - { - if ( !hasByName( aName ) ) - throw container::NoSuchElementException(); - uno::Sequence< uno::Any > aArgs( 2 ); - aArgs[0] = uno::Any( uno::Reference< uno::XInterface >() ); - aArgs[1] = uno::Any( mpDocShell->GetModel() ); - uno::Reference< uno::XInterface > xDocObj = ooo::vba::createVBAUnoAPIServiceWithArgs( mpDocShell, "ooo.vba.word.Document" , aArgs ); - OSL_TRACE("Creating Object ( ooo.vba.word.Document ) 0x%x", xDocObj.get() ); - return uno::makeAny( xDocObj ); - } - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (::com::sun::star::uno::RuntimeException) - { - uno::Sequence< rtl::OUString > aNames; - return aNames; - } - // XElemenAccess - virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException){ return uno::Type(); } - virtual ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException ) { return sal_True; } - -}; - -struct ProvNamesId_Type -{ - const char * pName; - sal_uInt16 nType; -}; - -// note: this thing is indexed as an array, so do not insert/remove entries! -const ProvNamesId_Type aProvNamesId[] = -{ - { "com.sun.star.text.TextTable", SW_SERVICE_TYPE_TEXTTABLE }, - { "com.sun.star.text.TextFrame", SW_SERVICE_TYPE_TEXTFRAME }, - { "com.sun.star.text.GraphicObject", SW_SERVICE_TYPE_GRAPHIC }, - { "com.sun.star.text.TextEmbeddedObject", SW_SERVICE_TYPE_OLE }, - { "com.sun.star.text.Bookmark", SW_SERVICE_TYPE_BOOKMARK }, - { "com.sun.star.text.Footnote", SW_SERVICE_TYPE_FOOTNOTE }, - { "com.sun.star.text.Endnote", SW_SERVICE_TYPE_ENDNOTE }, - { "com.sun.star.text.DocumentIndexMark", SW_SERVICE_TYPE_INDEXMARK }, - { "com.sun.star.text.DocumentIndex", SW_SERVICE_TYPE_INDEX }, - { "com.sun.star.text.ReferenceMark", SW_SERVICE_REFERENCE_MARK }, - { "com.sun.star.style.CharacterStyle", SW_SERVICE_STYLE_CHARACTER_STYLE }, - { "com.sun.star.style.ParagraphStyle", SW_SERVICE_STYLE_PARAGRAPH_STYLE }, - { "com.sun.star.style.FrameStyle", SW_SERVICE_STYLE_FRAME_STYLE }, - { "com.sun.star.style.PageStyle", SW_SERVICE_STYLE_PAGE_STYLE }, - { "com.sun.star.style.NumberingStyle", SW_SERVICE_STYLE_NUMBERING_STYLE }, - { "com.sun.star.text.ContentIndexMark", SW_SERVICE_CONTENT_INDEX_MARK }, - { "com.sun.star.text.ContentIndex", SW_SERVICE_CONTENT_INDEX }, - { "com.sun.star.text.UserIndexMark", SW_SERVICE_USER_INDEX_MARK }, - { "com.sun.star.text.UserIndex", SW_SERVICE_USER_INDEX }, - { "com.sun.star.text.TextSection", SW_SERVICE_TEXT_SECTION }, - { "com.sun.star.text.TextField.DateTime", SW_SERVICE_FIELDTYPE_DATETIME }, - { "com.sun.star.text.TextField.User", SW_SERVICE_FIELDTYPE_USER }, - { "com.sun.star.text.TextField.SetExpression", SW_SERVICE_FIELDTYPE_SET_EXP }, - { "com.sun.star.text.TextField.GetExpression", SW_SERVICE_FIELDTYPE_GET_EXP }, - { "com.sun.star.text.TextField.FileName", SW_SERVICE_FIELDTYPE_FILE_NAME }, - { "com.sun.star.text.TextField.PageNumber", SW_SERVICE_FIELDTYPE_PAGE_NUM }, - { "com.sun.star.text.TextField.Author", SW_SERVICE_FIELDTYPE_AUTHOR }, - { "com.sun.star.text.TextField.Chapter", SW_SERVICE_FIELDTYPE_CHAPTER }, - { "", SW_SERVICE_FIELDTYPE_DUMMY_0 }, - { "com.sun.star.text.TextField.GetReference", SW_SERVICE_FIELDTYPE_GET_REFERENCE }, - { "com.sun.star.text.TextField.ConditionalText", SW_SERVICE_FIELDTYPE_CONDITIONED_TEXT }, - { "com.sun.star.text.TextField.Annotation", SW_SERVICE_FIELDTYPE_ANNOTATION }, - { "com.sun.star.text.TextField.Input", SW_SERVICE_FIELDTYPE_INPUT }, - { "com.sun.star.text.TextField.Macro", SW_SERVICE_FIELDTYPE_MACRO }, - { "com.sun.star.text.TextField.DDE", SW_SERVICE_FIELDTYPE_DDE }, - { "com.sun.star.text.TextField.HiddenParagraph", SW_SERVICE_FIELDTYPE_HIDDEN_PARA }, - { "" /*com.sun.star.text.TextField.DocumentInfo"*/, SW_SERVICE_FIELDTYPE_DOC_INFO }, - { "com.sun.star.text.TextField.TemplateName", SW_SERVICE_FIELDTYPE_TEMPLATE_NAME }, - { "com.sun.star.text.TextField.ExtendedUser", SW_SERVICE_FIELDTYPE_USER_EXT }, - { "com.sun.star.text.TextField.ReferencePageSet", SW_SERVICE_FIELDTYPE_REF_PAGE_SET }, - { "com.sun.star.text.TextField.ReferencePageGet", SW_SERVICE_FIELDTYPE_REF_PAGE_GET }, - { "com.sun.star.text.TextField.JumpEdit", SW_SERVICE_FIELDTYPE_JUMP_EDIT }, - { "com.sun.star.text.TextField.Script", SW_SERVICE_FIELDTYPE_SCRIPT }, - { "com.sun.star.text.TextField.DatabaseNextSet", SW_SERVICE_FIELDTYPE_DATABASE_NEXT_SET }, - { "com.sun.star.text.TextField.DatabaseNumberOfSet", SW_SERVICE_FIELDTYPE_DATABASE_NUM_SET }, - { "com.sun.star.text.TextField.DatabaseSetNumber", SW_SERVICE_FIELDTYPE_DATABASE_SET_NUM }, - { "com.sun.star.text.TextField.Database", SW_SERVICE_FIELDTYPE_DATABASE }, - { "com.sun.star.text.TextField.DatabaseName", SW_SERVICE_FIELDTYPE_DATABASE_NAME }, - { "com.sun.star.text.TextField.TableFormula", SW_SERVICE_FIELDTYPE_TABLE_FORMULA }, - { "com.sun.star.text.TextField.PageCount", SW_SERVICE_FIELDTYPE_PAGE_COUNT }, - { "com.sun.star.text.TextField.ParagraphCount", SW_SERVICE_FIELDTYPE_PARAGRAPH_COUNT }, - { "com.sun.star.text.TextField.WordCount", SW_SERVICE_FIELDTYPE_WORD_COUNT }, - { "com.sun.star.text.TextField.CharacterCount", SW_SERVICE_FIELDTYPE_CHARACTER_COUNT }, - { "com.sun.star.text.TextField.TableCount", SW_SERVICE_FIELDTYPE_TABLE_COUNT }, - { "com.sun.star.text.TextField.GraphicObjectCount", SW_SERVICE_FIELDTYPE_GRAPHIC_OBJECT_COUNT }, - { "com.sun.star.text.TextField.EmbeddedObjectCount", SW_SERVICE_FIELDTYPE_EMBEDDED_OBJECT_COUNT }, - { "com.sun.star.text.TextField.DocInfo.ChangeAuthor", SW_SERVICE_FIELDTYPE_DOCINFO_CHANGE_AUTHOR }, - { "com.sun.star.text.TextField.DocInfo.ChangeDateTime", SW_SERVICE_FIELDTYPE_DOCINFO_CHANGE_DATE_TIME }, - { "com.sun.star.text.TextField.DocInfo.EditTime", SW_SERVICE_FIELDTYPE_DOCINFO_EDIT_TIME }, - { "com.sun.star.text.TextField.DocInfo.Description", SW_SERVICE_FIELDTYPE_DOCINFO_DESCRIPTION }, - { "com.sun.star.text.TextField.DocInfo.CreateAuthor", SW_SERVICE_FIELDTYPE_DOCINFO_CREATE_AUTHOR }, - { "com.sun.star.text.TextField.DocInfo.CreateDateTime", SW_SERVICE_FIELDTYPE_DOCINFO_CREATE_DATE_TIME }, - { "", SW_SERVICE_FIELDTYPE_DUMMY_0 }, - { "", SW_SERVICE_FIELDTYPE_DUMMY_1 }, - { "", SW_SERVICE_FIELDTYPE_DUMMY_2 }, - { "", SW_SERVICE_FIELDTYPE_DUMMY_3 }, - { "com.sun.star.text.TextField.DocInfo.Custom", SW_SERVICE_FIELDTYPE_DOCINFO_CUSTOM }, - { "com.sun.star.text.TextField.DocInfo.PrintAuthor", SW_SERVICE_FIELDTYPE_DOCINFO_PRINT_AUTHOR }, - { "com.sun.star.text.TextField.DocInfo.PrintDateTime", SW_SERVICE_FIELDTYPE_DOCINFO_PRINT_DATE_TIME }, - { "com.sun.star.text.TextField.DocInfo.KeyWords", SW_SERVICE_FIELDTYPE_DOCINFO_KEY_WORDS }, - { "com.sun.star.text.TextField.DocInfo.Subject", SW_SERVICE_FIELDTYPE_DOCINFO_SUBJECT }, - { "com.sun.star.text.TextField.DocInfo.Title", SW_SERVICE_FIELDTYPE_DOCINFO_TITLE }, - { "com.sun.star.text.TextField.DocInfo.Revision", SW_SERVICE_FIELDTYPE_DOCINFO_REVISION }, - { "com.sun.star.text.TextField.Bibliography", SW_SERVICE_FIELDTYPE_BIBLIOGRAPHY }, - { "com.sun.star.text.TextField.CombinedCharacters", SW_SERVICE_FIELDTYPE_COMBINED_CHARACTERS }, - { "com.sun.star.text.TextField.DropDown", SW_SERVICE_FIELDTYPE_DROPDOWN }, - { "com.sun.star.text.textfield.MetadataField", SW_SERVICE_FIELDTYPE_METAFIELD }, - { "", SW_SERVICE_FIELDTYPE_DUMMY_4 }, - { "", SW_SERVICE_FIELDTYPE_DUMMY_5 }, - { "", SW_SERVICE_FIELDTYPE_DUMMY_6 }, - { "", SW_SERVICE_FIELDTYPE_DUMMY_7 }, - { "com.sun.star.text.FieldMaster.User", SW_SERVICE_FIELDMASTER_USER }, - { "com.sun.star.text.FieldMaster.DDE", SW_SERVICE_FIELDMASTER_DDE }, - { "com.sun.star.text.FieldMaster.SetExpression", SW_SERVICE_FIELDMASTER_SET_EXP }, - { "com.sun.star.text.FieldMaster.Database", SW_SERVICE_FIELDMASTER_DATABASE }, - { "com.sun.star.text.FieldMaster.Bibliography", SW_SERVICE_FIELDMASTER_BIBLIOGRAPHY }, - { "", SW_SERVICE_FIELDMASTER_DUMMY2 }, - { "", SW_SERVICE_FIELDMASTER_DUMMY3 }, - { "", SW_SERVICE_FIELDMASTER_DUMMY4 }, - { "", SW_SERVICE_FIELDMASTER_DUMMY5 }, - { "com.sun.star.text.IllustrationsIndex", SW_SERVICE_INDEX_ILLUSTRATIONS }, - { "com.sun.star.text.ObjectIndex", SW_SERVICE_INDEX_OBJECTS }, - { "com.sun.star.text.TableIndex", SW_SERVICE_INDEX_TABLES }, - { "com.sun.star.text.Bibliography", SW_SERVICE_INDEX_BIBLIOGRAPHY }, - { "com.sun.star.text.Paragraph", SW_SERVICE_PARAGRAPH }, - { "com.sun.star.text.TextField.InputUser", SW_SERVICE_FIELDTYPE_INPUT_USER }, - { "com.sun.star.text.TextField.HiddenText", SW_SERVICE_FIELDTYPE_HIDDEN_TEXT }, - { "com.sun.star.style.ConditionalParagraphStyle", SW_SERVICE_STYLE_CONDITIONAL_PARAGRAPH_STYLE }, - { "com.sun.star.text.NumberingRules", SW_SERVICE_NUMBERING_RULES }, - { "com.sun.star.text.TextColumns", SW_SERVICE_TEXT_COLUMNS }, - { "com.sun.star.text.IndexHeaderSection", SW_SERVICE_INDEX_HEADER_SECTION }, - { "com.sun.star.text.Defaults", SW_SERVICE_DEFAULTS }, - { "com.sun.star.image.ImageMapRectangleObject", SW_SERVICE_IMAP_RECTANGLE }, - { "com.sun.star.image.ImageMapCircleObject", SW_SERVICE_IMAP_CIRCLE }, - { "com.sun.star.image.ImageMapPolygonObject", SW_SERVICE_IMAP_POLYGON }, - { "com.sun.star.text.TextGraphicObject", SW_SERVICE_TYPE_TEXT_GRAPHIC }, - { "com.sun.star.chart2.data.DataProvider", SW_SERVICE_CHART2_DATA_PROVIDER }, - { "com.sun.star.text.Fieldmark", SW_SERVICE_TYPE_FIELDMARK }, - { "com.sun.star.text.FormFieldmark", SW_SERVICE_TYPE_FORMFIELDMARK }, - { "com.sun.star.text.InContentMetadata", SW_SERVICE_TYPE_META }, - { "ooo.vba.VBAObjectModuleObjectProvider", SW_SERVICE_VBAOBJECTPROVIDER }, - { "ooo.vba.VBACodeNameProvider", SW_SERVICE_VBACODENAMEPROVIDER }, - { "ooo.vba.VBAProjectNameProvider", SW_SERVICE_VBAPROJECTNAMEPROVIDER }, - { "ooo.vba.VBAGlobals", SW_SERVICE_VBAGLOBALS }, - - // case-correct versions of the service names (see #i67811) - { CSS_TEXT_TEXTFIELD_DATE_TIME, SW_SERVICE_FIELDTYPE_DATETIME }, - { CSS_TEXT_TEXTFIELD_USER, SW_SERVICE_FIELDTYPE_USER }, - { CSS_TEXT_TEXTFIELD_SET_EXPRESSION, SW_SERVICE_FIELDTYPE_SET_EXP }, - { CSS_TEXT_TEXTFIELD_GET_EXPRESSION, SW_SERVICE_FIELDTYPE_GET_EXP }, - { CSS_TEXT_TEXTFIELD_FILE_NAME, SW_SERVICE_FIELDTYPE_FILE_NAME }, - { CSS_TEXT_TEXTFIELD_PAGE_NUMBER, SW_SERVICE_FIELDTYPE_PAGE_NUM }, - { CSS_TEXT_TEXTFIELD_AUTHOR, SW_SERVICE_FIELDTYPE_AUTHOR }, - { CSS_TEXT_TEXTFIELD_CHAPTER, SW_SERVICE_FIELDTYPE_CHAPTER }, - { CSS_TEXT_TEXTFIELD_GET_REFERENCE, SW_SERVICE_FIELDTYPE_GET_REFERENCE }, - { CSS_TEXT_TEXTFIELD_CONDITIONAL_TEXT, SW_SERVICE_FIELDTYPE_CONDITIONED_TEXT }, - { CSS_TEXT_TEXTFIELD_ANNOTATION, SW_SERVICE_FIELDTYPE_ANNOTATION }, - { CSS_TEXT_TEXTFIELD_INPUT, SW_SERVICE_FIELDTYPE_INPUT }, - { CSS_TEXT_TEXTFIELD_MACRO, SW_SERVICE_FIELDTYPE_MACRO }, - { CSS_TEXT_TEXTFIELD_DDE, SW_SERVICE_FIELDTYPE_DDE }, - { CSS_TEXT_TEXTFIELD_HIDDEN_PARAGRAPH, SW_SERVICE_FIELDTYPE_HIDDEN_PARA }, - { CSS_TEXT_TEXTFIELD_TEMPLATE_NAME, SW_SERVICE_FIELDTYPE_TEMPLATE_NAME }, - { CSS_TEXT_TEXTFIELD_EXTENDED_USER, SW_SERVICE_FIELDTYPE_USER_EXT }, - { CSS_TEXT_TEXTFIELD_REFERENCE_PAGE_SET, SW_SERVICE_FIELDTYPE_REF_PAGE_SET }, - { CSS_TEXT_TEXTFIELD_REFERENCE_PAGE_GET, SW_SERVICE_FIELDTYPE_REF_PAGE_GET }, - { CSS_TEXT_TEXTFIELD_JUMP_EDIT, SW_SERVICE_FIELDTYPE_JUMP_EDIT }, - { CSS_TEXT_TEXTFIELD_SCRIPT, SW_SERVICE_FIELDTYPE_SCRIPT }, - { CSS_TEXT_TEXTFIELD_DATABASE_NEXT_SET, SW_SERVICE_FIELDTYPE_DATABASE_NEXT_SET }, - { CSS_TEXT_TEXTFIELD_DATABASE_NUMBER_OF_SET, SW_SERVICE_FIELDTYPE_DATABASE_NUM_SET }, - { CSS_TEXT_TEXTFIELD_DATABASE_SET_NUMBER, SW_SERVICE_FIELDTYPE_DATABASE_SET_NUM }, - { CSS_TEXT_TEXTFIELD_DATABASE, SW_SERVICE_FIELDTYPE_DATABASE }, - { CSS_TEXT_TEXTFIELD_DATABASE_NAME, SW_SERVICE_FIELDTYPE_DATABASE_NAME }, - { CSS_TEXT_TEXTFIELD_TABLE_FORMULA, SW_SERVICE_FIELDTYPE_TABLE_FORMULA }, - { CSS_TEXT_TEXTFIELD_PAGE_COUNT, SW_SERVICE_FIELDTYPE_PAGE_COUNT }, - { CSS_TEXT_TEXTFIELD_PARAGRAPH_COUNT, SW_SERVICE_FIELDTYPE_PARAGRAPH_COUNT }, - { CSS_TEXT_TEXTFIELD_WORD_COUNT, SW_SERVICE_FIELDTYPE_WORD_COUNT }, - { CSS_TEXT_TEXTFIELD_CHARACTER_COUNT, SW_SERVICE_FIELDTYPE_CHARACTER_COUNT }, - { CSS_TEXT_TEXTFIELD_TABLE_COUNT, SW_SERVICE_FIELDTYPE_TABLE_COUNT }, - { CSS_TEXT_TEXTFIELD_GRAPHIC_OBJECT_COUNT, SW_SERVICE_FIELDTYPE_GRAPHIC_OBJECT_COUNT }, - { CSS_TEXT_TEXTFIELD_EMBEDDED_OBJECT_COUNT, SW_SERVICE_FIELDTYPE_EMBEDDED_OBJECT_COUNT }, - { CSS_TEXT_TEXTFIELD_DOCINFO_CHANGE_AUTHOR, SW_SERVICE_FIELDTYPE_DOCINFO_CHANGE_AUTHOR }, - { CSS_TEXT_TEXTFIELD_DOCINFO_CHANGE_DATE_TIME, SW_SERVICE_FIELDTYPE_DOCINFO_CHANGE_DATE_TIME }, - { CSS_TEXT_TEXTFIELD_DOCINFO_EDIT_TIME, SW_SERVICE_FIELDTYPE_DOCINFO_EDIT_TIME }, - { CSS_TEXT_TEXTFIELD_DOCINFO_DESCRIPTION, SW_SERVICE_FIELDTYPE_DOCINFO_DESCRIPTION }, - { CSS_TEXT_TEXTFIELD_DOCINFO_CREATE_AUTHOR, SW_SERVICE_FIELDTYPE_DOCINFO_CREATE_AUTHOR }, - { CSS_TEXT_TEXTFIELD_DOCINFO_CREATE_DATE_TIME, SW_SERVICE_FIELDTYPE_DOCINFO_CREATE_DATE_TIME }, - { CSS_TEXT_TEXTFIELD_DOCINFO_PRINT_AUTHOR, SW_SERVICE_FIELDTYPE_DOCINFO_PRINT_AUTHOR }, - { CSS_TEXT_TEXTFIELD_DOCINFO_PRINT_DATE_TIME, SW_SERVICE_FIELDTYPE_DOCINFO_PRINT_DATE_TIME }, - { CSS_TEXT_TEXTFIELD_DOCINFO_KEY_WORDS, SW_SERVICE_FIELDTYPE_DOCINFO_KEY_WORDS }, - { CSS_TEXT_TEXTFIELD_DOCINFO_SUBJECT, SW_SERVICE_FIELDTYPE_DOCINFO_SUBJECT }, - { CSS_TEXT_TEXTFIELD_DOCINFO_TITLE, SW_SERVICE_FIELDTYPE_DOCINFO_TITLE }, - { CSS_TEXT_TEXTFIELD_DOCINFO_REVISION, SW_SERVICE_FIELDTYPE_DOCINFO_REVISION }, - { CSS_TEXT_TEXTFIELD_DOCINFO_CUSTOM, SW_SERVICE_FIELDTYPE_DOCINFO_CUSTOM }, - { CSS_TEXT_TEXTFIELD_BIBLIOGRAPHY, SW_SERVICE_FIELDTYPE_BIBLIOGRAPHY }, - { CSS_TEXT_TEXTFIELD_COMBINED_CHARACTERS, SW_SERVICE_FIELDTYPE_COMBINED_CHARACTERS }, - { CSS_TEXT_TEXTFIELD_DROP_DOWN, SW_SERVICE_FIELDTYPE_DROPDOWN }, - { CSS_TEXT_TEXTFIELD_INPUT_USER, SW_SERVICE_FIELDTYPE_INPUT_USER }, - { CSS_TEXT_TEXTFIELD_HIDDEN_TEXT, SW_SERVICE_FIELDTYPE_HIDDEN_TEXT }, - { CSS_TEXT_FIELDMASTER_USER, SW_SERVICE_FIELDMASTER_USER }, - { CSS_TEXT_FIELDMASTER_DDE, SW_SERVICE_FIELDMASTER_DDE }, - { CSS_TEXT_FIELDMASTER_SET_EXPRESSION, SW_SERVICE_FIELDMASTER_SET_EXP }, - { CSS_TEXT_FIELDMASTER_DATABASE, SW_SERVICE_FIELDMASTER_DATABASE }, - { CSS_TEXT_FIELDMASTER_BIBLIOGRAPHY, SW_SERVICE_FIELDMASTER_BIBLIOGRAPHY } -}; - -const SvEventDescription* lcl_GetSupportedMacroItems() -{ - static const SvEventDescription aMacroDescriptionsImpl[] = - { - { SFX_EVENT_MOUSEOVER_OBJECT, "OnMouseOver" }, - { SFX_EVENT_MOUSEOUT_OBJECT, "OnMouseOut" }, - { 0, NULL } - }; - - return aMacroDescriptionsImpl; -} - -/****************************************************************** - * SwXServiceProvider - ******************************************************************/ -OUString SwXServiceProvider::GetProviderName(sal_uInt16 nObjectType) -{ - SolarMutexGuard aGuard; - OUString sRet; - sal_uInt16 nEntries = SAL_N_ELEMENTS(aProvNamesId); - if(nObjectType < nEntries) - sRet = rtl::OUString::createFromAscii(aProvNamesId[nObjectType].pName); - return sRet; -} - -uno::Sequence<OUString> SwXServiceProvider::GetAllServiceNames() -{ - sal_uInt16 nEntries = SAL_N_ELEMENTS(aProvNamesId); - uno::Sequence<OUString> aRet(nEntries); - OUString* pArray = aRet.getArray(); - sal_uInt16 n = 0; - for(sal_uInt16 i = 0; i < nEntries; i++) - { - String sProv(rtl::OUString::createFromAscii(aProvNamesId[i].pName)); - if(sProv.Len()) - { - pArray[n] = sProv; - n++; - } - } - aRet.realloc(n); - return aRet; - -} - -sal_uInt16 SwXServiceProvider::GetProviderType(const OUString& rServiceName) -{ - sal_uInt16 nEntries = SAL_N_ELEMENTS(aProvNamesId); - for(sal_uInt16 i = 0; i < nEntries; i++ ) - { - if( COMPARE_EQUAL == rServiceName.compareToAscii(aProvNamesId[i].pName)) - return aProvNamesId[i].nType; - } - return SW_SERVICE_INVALID; -} - -uno::Reference< uno::XInterface > SwXServiceProvider::MakeInstance(sal_uInt16 nObjectType, SwDoc* pDoc) -{ - SolarMutexGuard aGuard; - uno::Reference< uno::XInterface > xRet; - switch(nObjectType) - { - case SW_SERVICE_TYPE_TEXTTABLE: - { - SwXTextTable* pTextTable = new SwXTextTable(); - xRet = (cppu::OWeakObject*)pTextTable; - } - break; - case SW_SERVICE_TYPE_TEXTFRAME: - { - SwXTextFrame* pTextFrame = new SwXTextFrame( pDoc ); - xRet = (cppu::OWeakObject*)(SwXFrame*)pTextFrame; - } - break; - case SW_SERVICE_TYPE_GRAPHIC : - case SW_SERVICE_TYPE_TEXT_GRAPHIC /* #i47503# */ : - { - SwXTextGraphicObject* pGraphic = new SwXTextGraphicObject( pDoc ); - xRet = (cppu::OWeakObject*)(SwXFrame*)pGraphic; - - } - break; - case SW_SERVICE_TYPE_OLE : - { - SwXTextEmbeddedObject* pOle = new SwXTextEmbeddedObject( pDoc ); - xRet = (cppu::OWeakObject*)(SwXFrame*)pOle; - } - break; - case SW_SERVICE_TYPE_BOOKMARK : - { - SwXBookmark* pBookmark = new SwXBookmark; - xRet = (cppu::OWeakObject*)pBookmark; - } - break; - case SW_SERVICE_TYPE_FIELDMARK : - { - SwXFieldmark* pFieldmark = new SwXFieldmark(false); - xRet = (cppu::OWeakObject*)pFieldmark; - } - break; - case SW_SERVICE_TYPE_FORMFIELDMARK : - { - SwXFieldmark* pFieldmark = new SwXFieldmark(true); - xRet = (cppu::OWeakObject*)pFieldmark; - } - break; - case SW_SERVICE_VBAOBJECTPROVIDER : - { - SwVbaObjectForCodeNameProvider* pObjProv = new SwVbaObjectForCodeNameProvider( pDoc->GetDocShell() ); - xRet = (cppu::OWeakObject*)pObjProv; - } - break; - case SW_SERVICE_VBACODENAMEPROVIDER : - { - if ( pDoc->GetDocShell() && ooo::vba::isAlienWordDoc( *pDoc->GetDocShell() ) ) - { - SwVbaCodeNameProvider* pObjProv = new SwVbaCodeNameProvider( pDoc->GetDocShell() ); - xRet = (cppu::OWeakObject*)pObjProv; - } - } - break; - case SW_SERVICE_VBAPROJECTNAMEPROVIDER : - { - uno::Reference< container::XNameContainer > xProjProv = pDoc->GetVBATemplateToProjectCache(); - if ( !xProjProv.is() && pDoc->GetDocShell() && ooo::vba::isAlienWordDoc( *pDoc->GetDocShell() ) ) - { - xProjProv = new SwVbaProjectNameProvider( pDoc->GetDocShell() ); - pDoc->SetVBATemplateToProjectCache( xProjProv ); - } - //xRet = (cppu::OWeakObject*)xProjProv; - xRet = xProjProv; - } - break; - case SW_SERVICE_VBAGLOBALS : - { - if ( pDoc ) - { - uno::Any aGlobs; - if ( !pDoc->GetDocShell()->GetBasicManager()->GetGlobalUNOConstant( "VBAGlobals", aGlobs ) ) - { - uno::Sequence< uno::Any > aArgs(1); - aArgs[ 0 ] <<= pDoc->GetDocShell()->GetModel(); - aGlobs <<= ::comphelper::getProcessServiceFactory()->createInstanceWithArguments( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.Globals")), aArgs ); - pDoc->GetDocShell()->GetBasicManager()->SetGlobalUNOConstant( "VBAGlobals", aGlobs ); - } - aGlobs >>= xRet; - } - } - break; - - case SW_SERVICE_TYPE_FOOTNOTE : - xRet = (cppu::OWeakObject*)new SwXFootnote(sal_False); - break; - case SW_SERVICE_TYPE_ENDNOTE : - xRet = (cppu::OWeakObject*)new SwXFootnote(sal_True); - break; - case SW_SERVICE_CONTENT_INDEX_MARK : - case SW_SERVICE_USER_INDEX_MARK : - case SW_SERVICE_TYPE_INDEXMARK: - { - TOXTypes eType = TOX_INDEX; - if(SW_SERVICE_CONTENT_INDEX_MARK== nObjectType) - eType = TOX_CONTENT; - else if(SW_SERVICE_USER_INDEX_MARK == nObjectType) - eType = TOX_USER; - xRet = (cppu::OWeakObject*)new SwXDocumentIndexMark(eType); - } - break; - case SW_SERVICE_CONTENT_INDEX : - case SW_SERVICE_USER_INDEX : - case SW_SERVICE_TYPE_INDEX : - case SW_SERVICE_INDEX_ILLUSTRATIONS: - case SW_SERVICE_INDEX_OBJECTS : - case SW_SERVICE_INDEX_TABLES: - case SW_SERVICE_INDEX_BIBLIOGRAPHY : - { - TOXTypes eType = TOX_INDEX; - if(SW_SERVICE_CONTENT_INDEX == nObjectType) - eType = TOX_CONTENT; - else if(SW_SERVICE_USER_INDEX == nObjectType) - eType = TOX_USER; - else if(SW_SERVICE_INDEX_ILLUSTRATIONS == nObjectType) - { - eType = TOX_ILLUSTRATIONS; - } - else if(SW_SERVICE_INDEX_OBJECTS == nObjectType) - { - eType = TOX_OBJECTS; - } - else if(SW_SERVICE_INDEX_BIBLIOGRAPHY == nObjectType) - { - eType = TOX_AUTHORITIES; - } - else if(SW_SERVICE_INDEX_TABLES == nObjectType) - { - eType = TOX_TABLES; - } - xRet = (cppu::OWeakObject*)new SwXDocumentIndex(eType, *pDoc); - } - break; - case SW_SERVICE_INDEX_HEADER_SECTION : - case SW_SERVICE_TEXT_SECTION : - xRet = SwXTextSection::CreateXTextSection(0, - (SW_SERVICE_INDEX_HEADER_SECTION == nObjectType)); - - break; - case SW_SERVICE_REFERENCE_MARK : - xRet = (cppu::OWeakObject*)new SwXReferenceMark(0, 0); - break; - case SW_SERVICE_STYLE_CHARACTER_STYLE: - case SW_SERVICE_STYLE_PARAGRAPH_STYLE: - case SW_SERVICE_STYLE_CONDITIONAL_PARAGRAPH_STYLE: - case SW_SERVICE_STYLE_FRAME_STYLE: - case SW_SERVICE_STYLE_PAGE_STYLE: - case SW_SERVICE_STYLE_NUMBERING_STYLE: - { - SfxStyleFamily eFamily = SFX_STYLE_FAMILY_CHAR; - switch(nObjectType) - { - case SW_SERVICE_STYLE_PARAGRAPH_STYLE: - case SW_SERVICE_STYLE_CONDITIONAL_PARAGRAPH_STYLE: - eFamily = SFX_STYLE_FAMILY_PARA; - break; - case SW_SERVICE_STYLE_FRAME_STYLE: - eFamily = SFX_STYLE_FAMILY_FRAME; - break; - case SW_SERVICE_STYLE_PAGE_STYLE: - eFamily = SFX_STYLE_FAMILY_PAGE; - break; - case SW_SERVICE_STYLE_NUMBERING_STYLE: - eFamily = SFX_STYLE_FAMILY_PSEUDO; - break; - } - SwXStyle* pNewStyle = SFX_STYLE_FAMILY_PAGE == eFamily ? - new SwXPageStyle(pDoc->GetDocShell()) : - eFamily == SFX_STYLE_FAMILY_FRAME ? - new SwXFrameStyle ( pDoc ): - new SwXStyle( pDoc, eFamily, nObjectType == SW_SERVICE_STYLE_CONDITIONAL_PARAGRAPH_STYLE); - xRet = (cppu::OWeakObject*)pNewStyle; - } - break; -// SW_SERVICE_DUMMY_5 -// SW_SERVICE_DUMMY_6 -// SW_SERVICE_DUMMY_7 -// SW_SERVICE_DUMMY_8 -// SW_SERVICE_DUMMY_9 - case SW_SERVICE_FIELDTYPE_DATETIME: - case SW_SERVICE_FIELDTYPE_USER: - case SW_SERVICE_FIELDTYPE_SET_EXP: - case SW_SERVICE_FIELDTYPE_GET_EXP: - case SW_SERVICE_FIELDTYPE_FILE_NAME: - case SW_SERVICE_FIELDTYPE_PAGE_NUM: - case SW_SERVICE_FIELDTYPE_AUTHOR: - case SW_SERVICE_FIELDTYPE_CHAPTER: - case SW_SERVICE_FIELDTYPE_GET_REFERENCE: - case SW_SERVICE_FIELDTYPE_CONDITIONED_TEXT: - case SW_SERVICE_FIELDTYPE_INPUT: - case SW_SERVICE_FIELDTYPE_MACRO: - case SW_SERVICE_FIELDTYPE_DDE: - case SW_SERVICE_FIELDTYPE_HIDDEN_PARA: - case SW_SERVICE_FIELDTYPE_DOC_INFO: - case SW_SERVICE_FIELDTYPE_TEMPLATE_NAME: - case SW_SERVICE_FIELDTYPE_USER_EXT: - case SW_SERVICE_FIELDTYPE_REF_PAGE_SET: - case SW_SERVICE_FIELDTYPE_REF_PAGE_GET: - case SW_SERVICE_FIELDTYPE_JUMP_EDIT: - case SW_SERVICE_FIELDTYPE_SCRIPT: - case SW_SERVICE_FIELDTYPE_DATABASE_NEXT_SET: - case SW_SERVICE_FIELDTYPE_DATABASE_NUM_SET: - case SW_SERVICE_FIELDTYPE_DATABASE_SET_NUM: - case SW_SERVICE_FIELDTYPE_DATABASE: - case SW_SERVICE_FIELDTYPE_DATABASE_NAME: - case SW_SERVICE_FIELDTYPE_PAGE_COUNT : - case SW_SERVICE_FIELDTYPE_PARAGRAPH_COUNT : - case SW_SERVICE_FIELDTYPE_WORD_COUNT : - case SW_SERVICE_FIELDTYPE_CHARACTER_COUNT : - case SW_SERVICE_FIELDTYPE_TABLE_COUNT : - case SW_SERVICE_FIELDTYPE_GRAPHIC_OBJECT_COUNT : - case SW_SERVICE_FIELDTYPE_EMBEDDED_OBJECT_COUNT : - case SW_SERVICE_FIELDTYPE_DOCINFO_CHANGE_AUTHOR : - case SW_SERVICE_FIELDTYPE_DOCINFO_CHANGE_DATE_TIME : - case SW_SERVICE_FIELDTYPE_DOCINFO_EDIT_TIME : - case SW_SERVICE_FIELDTYPE_DOCINFO_DESCRIPTION : - case SW_SERVICE_FIELDTYPE_DOCINFO_CREATE_AUTHOR : - case SW_SERVICE_FIELDTYPE_DOCINFO_CREATE_DATE_TIME : - case SW_SERVICE_FIELDTYPE_DOCINFO_CUSTOM : - case SW_SERVICE_FIELDTYPE_DOCINFO_PRINT_AUTHOR : - case SW_SERVICE_FIELDTYPE_DOCINFO_PRINT_DATE_TIME : - case SW_SERVICE_FIELDTYPE_DOCINFO_KEY_WORDS : - case SW_SERVICE_FIELDTYPE_DOCINFO_SUBJECT : - case SW_SERVICE_FIELDTYPE_DOCINFO_TITLE : - case SW_SERVICE_FIELDTYPE_DOCINFO_REVISION : - case SW_SERVICE_FIELDTYPE_BIBLIOGRAPHY: - case SW_SERVICE_FIELDTYPE_INPUT_USER : - case SW_SERVICE_FIELDTYPE_HIDDEN_TEXT : - case SW_SERVICE_FIELDTYPE_COMBINED_CHARACTERS : - case SW_SERVICE_FIELDTYPE_DROPDOWN : - case SW_SERVICE_FIELDTYPE_TABLE_FORMULA: - xRet = (cppu::OWeakObject*)new SwXTextField(nObjectType); - break; - case SW_SERVICE_FIELDTYPE_ANNOTATION: - xRet = (cppu::OWeakObject*)new SwXTextField(nObjectType, pDoc); - break; - case SW_SERVICE_FIELDMASTER_USER: - case SW_SERVICE_FIELDMASTER_DDE: - case SW_SERVICE_FIELDMASTER_SET_EXP : - case SW_SERVICE_FIELDMASTER_DATABASE: - { - sal_uInt16 nResId = USHRT_MAX; - switch(nObjectType) - { - case SW_SERVICE_FIELDMASTER_USER: nResId = RES_USERFLD; break; - case SW_SERVICE_FIELDMASTER_DDE: nResId = RES_DDEFLD; break; - case SW_SERVICE_FIELDMASTER_SET_EXP : nResId = RES_SETEXPFLD; break; - case SW_SERVICE_FIELDMASTER_DATABASE: nResId = RES_DBFLD; break; - } - xRet = (cppu::OWeakObject*)new SwXFieldMaster(pDoc, nResId); - } - break; - case SW_SERVICE_FIELDMASTER_BIBLIOGRAPHY: - { - SwFieldType* pType = pDoc->GetFldType(RES_AUTHORITY, aEmptyStr, sal_True); - if(!pType) - { - SwAuthorityFieldType aType(pDoc); - pType = pDoc->InsertFldType(aType); - } - else - { - SwXFieldMaster* pMaster = SwIterator<SwXFieldMaster,SwFieldType>::FirstElement( *pType ); - if(pMaster) - xRet = (cppu::OWeakObject*)pMaster; - } - if(!xRet.is()) - xRet = (cppu::OWeakObject*)new SwXFieldMaster(*pType, pDoc); - } - break; - case SW_SERVICE_PARAGRAPH : - xRet = (cppu::OWeakObject*)new SwXParagraph(); - break; - case SW_SERVICE_NUMBERING_RULES : - xRet = (cppu::OWeakObject*)new SwXNumberingRules(*pDoc); - break; - case SW_SERVICE_TEXT_COLUMNS : - xRet = (cppu::OWeakObject*)new SwXTextColumns(0); - break; - case SW_SERVICE_DEFAULTS: - xRet = (cppu::OWeakObject*)new SwXTextDefaults( pDoc ); - break; - case SW_SERVICE_IMAP_RECTANGLE : - xRet = SvUnoImageMapRectangleObject_createInstance( lcl_GetSupportedMacroItems() ); - break; - case SW_SERVICE_IMAP_CIRCLE : - xRet = SvUnoImageMapCircleObject_createInstance( lcl_GetSupportedMacroItems() ); - break; - case SW_SERVICE_IMAP_POLYGON : - xRet = SvUnoImageMapPolygonObject_createInstance( lcl_GetSupportedMacroItems() ); - break; - case SW_SERVICE_CHART2_DATA_PROVIDER : - // #i64497# If a chart is in a temporary document during clipoard - // paste, there should be no data provider, so that own data is used - // This should not happen during copy/paste, as this will unlink - // charts using table data. - OSL_ASSERT( pDoc->GetDocShell()->GetCreateMode() != SFX_CREATE_MODE_EMBEDDED ); - if( pDoc->GetDocShell()->GetCreateMode() != SFX_CREATE_MODE_EMBEDDED ) - xRet = (cppu::OWeakObject*) pDoc->GetChartDataProvider( true /* create - if not yet available */ ); - break; - case SW_SERVICE_TYPE_META: - xRet = static_cast< ::cppu::OWeakObject* >( new SwXMeta(pDoc) ); - break; - case SW_SERVICE_FIELDTYPE_METAFIELD: - xRet = static_cast< ::cppu::OWeakObject* >(new SwXMetaField(pDoc)); - break; - default: - throw uno::RuntimeException(); - } - return xRet; -} - -/****************************************************************** - * SwXTextTables - ******************************************************************/ -//SMART_UNO_IMPLEMENTATION( SwXTextTables, UsrObject ); -SwXTextTables::SwXTextTables(SwDoc* pDc) : - SwUnoCollection(pDc) -{ - -} - -SwXTextTables::~SwXTextTables() -{ - -} - -sal_Int32 SwXTextTables::getCount(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - sal_Int32 nRet = 0; - if(IsValid()) - nRet = GetDoc()->GetTblFrmFmtCount(sal_True); - return nRet; -} - -uno::Any SAL_CALL SwXTextTables::getByIndex(sal_Int32 nIndex) - throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - uno::Any aRet; - if(IsValid()) - { - if(0 <= nIndex && GetDoc()->GetTblFrmFmtCount(sal_True) > nIndex) - { - SwFrmFmt& rFmt = GetDoc()->GetTblFrmFmt( static_cast< xub_StrLen >(nIndex), sal_True); - uno::Reference< XTextTable > xTbl = SwXTextTables::GetObject(rFmt); - aRet.setValue( &xTbl, - ::getCppuType((uno::Reference< XTextTable>*)0)); - } - else - throw IndexOutOfBoundsException(); - } - else - throw uno::RuntimeException(); - return aRet; -} - -uno::Any SwXTextTables::getByName(const OUString& rItemName) - throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - uno::Any aRet; - if(IsValid()) - { - sal_uInt16 nCount = GetDoc()->GetTblFrmFmtCount(sal_True); - uno::Reference< XTextTable > xTbl; - for( sal_uInt16 i = 0; i < nCount; i++) - { - String aName(rItemName); - SwFrmFmt& rFmt = GetDoc()->GetTblFrmFmt(i, sal_True); - if(aName == rFmt.GetName()) - { - xTbl = SwXTextTables::GetObject(rFmt); - aRet.setValue(&xTbl, - ::getCppuType(( uno::Reference< XTextTable >*)0)); - break; - } - } - if(!xTbl.is()) - throw NoSuchElementException(); - } - else - throw uno::RuntimeException(); - return aRet; -} - -uno::Sequence< OUString > SwXTextTables::getElementNames(void) - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - sal_uInt16 nCount = GetDoc()->GetTblFrmFmtCount(sal_True); - uno::Sequence<OUString> aSeq(nCount); - if(nCount) - { - OUString* pArray = aSeq.getArray(); - for( sal_uInt16 i = 0; i < nCount; i++) - { - SwFrmFmt& rFmt = GetDoc()->GetTblFrmFmt(i, sal_True); - - pArray[i] = OUString(rFmt.GetName()); - } - } - return aSeq; -} - -sal_Bool SwXTextTables::hasByName(const OUString& rName) - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - sal_Bool bRet= sal_False; - if(IsValid()) - { - sal_uInt16 nCount = GetDoc()->GetTblFrmFmtCount(sal_True); - for( sal_uInt16 i = 0; i < nCount; i++) - { - String aName(rName); - SwFrmFmt& rFmt = GetDoc()->GetTblFrmFmt(i, sal_True); - if(aName == rFmt.GetName()) - { - bRet = sal_True; - break; - } - } - } - else - throw uno::RuntimeException(); - return bRet; -} - -uno::Type SAL_CALL - SwXTextTables::getElementType( ) - throw(uno::RuntimeException) -{ - return ::getCppuType((uno::Reference<XTextTable>*)0); -} - -sal_Bool SwXTextTables::hasElements(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return 0 != GetDoc()->GetTblFrmFmtCount(sal_True); -} - -OUString SwXTextTables::getImplementationName(void) throw( uno::RuntimeException ) -{ - return C2U("SwXTextTables"); -} - -sal_Bool SwXTextTables::supportsService(const OUString& rServiceName) throw( uno::RuntimeException ) -{ - return rServiceName == C2U("com.sun.star.text.TextTables"); -} - -uno::Sequence< OUString > SwXTextTables::getSupportedServiceNames(void) throw( uno::RuntimeException ) -{ - uno::Sequence< OUString > aRet(1); - OUString* pArr = aRet.getArray(); - pArr[0] = C2U("com.sun.star.text.TextTables"); - return aRet; -} - -XTextTable* SwXTextTables::GetObject( SwFrmFmt& rFmt ) -{ - SolarMutexGuard aGuard; - SwXTextTable* pTbl = SwIterator<SwXTextTable,SwFmt>::FirstElement( rFmt ); - if( !pTbl ) - pTbl = new SwXTextTable(rFmt); - return pTbl ; -} - -/****************************************************************** - * SwXFrameEnumeration - ******************************************************************/ -namespace -{ - template<FlyCntType T> struct UnoFrameWrap_traits {}; - - template<> - struct UnoFrameWrap_traits<FLYCNTTYPE_FRM> - { - typedef SwXTextFrame core_frame_t; - typedef XTextFrame uno_frame_t; - static inline bool filter(const SwNode* const pNode) { return !pNode->IsNoTxtNode(); }; - }; - - template<> - struct UnoFrameWrap_traits<FLYCNTTYPE_GRF> - { - typedef SwXTextGraphicObject core_frame_t; - typedef XTextContent uno_frame_t; - static inline bool filter(const SwNode* const pNode) { return pNode->IsGrfNode(); }; - }; - - template<> - struct UnoFrameWrap_traits<FLYCNTTYPE_OLE> - { - typedef SwXTextEmbeddedObject core_frame_t; - typedef XEmbeddedObjectSupplier uno_frame_t; - static inline bool filter(const SwNode* const pNode) { return pNode->IsOLENode(); }; - }; - - template<FlyCntType T> - static uno::Any lcl_UnoWrapFrame(SwFrmFmt* pFmt) - { - SwXFrame* pFrm = SwIterator<SwXFrame,SwFmt>::FirstElement( *pFmt ); - if(!pFrm) - pFrm = new typename UnoFrameWrap_traits<T>::core_frame_t(*pFmt); - Reference< typename UnoFrameWrap_traits<T>::uno_frame_t > xFrm = - static_cast< typename UnoFrameWrap_traits<T>::core_frame_t* >(pFrm); - return uno::makeAny(xFrm); - } - - // runtime adapter for lcl_UnoWrapFrame - static uno::Any lcl_UnoWrapFrame(SwFrmFmt* pFmt, FlyCntType eType) throw(uno::RuntimeException()) - { - switch(eType) - { - case FLYCNTTYPE_FRM: - return lcl_UnoWrapFrame<FLYCNTTYPE_FRM>(pFmt); - case FLYCNTTYPE_GRF: - return lcl_UnoWrapFrame<FLYCNTTYPE_GRF>(pFmt); - case FLYCNTTYPE_OLE: - return lcl_UnoWrapFrame<FLYCNTTYPE_OLE>(pFmt); - default: - throw uno::RuntimeException(); - } - } - - template<FlyCntType T> - class SwXFrameEnumeration - : public SwSimpleEnumeration_Base - { - private: - typedef ::std::list< Any > frmcontainer_t; - frmcontainer_t m_aFrames; - protected: - virtual ~SwXFrameEnumeration() {}; - public: - SwXFrameEnumeration(const SwDoc* const pDoc); - - //XEnumeration - virtual sal_Bool SAL_CALL hasMoreElements(void) throw( RuntimeException ); - virtual Any SAL_CALL nextElement(void) throw( NoSuchElementException, WrappedTargetException, RuntimeException ); - - //XServiceInfo - virtual OUString SAL_CALL getImplementationName(void) throw( RuntimeException ); - virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( RuntimeException ); - virtual Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw( RuntimeException ); - }; -} - -template<FlyCntType T> -SwXFrameEnumeration<T>::SwXFrameEnumeration(const SwDoc* const pDoc) - : m_aFrames() -{ - SolarMutexGuard aGuard; - const SwSpzFrmFmts* const pFmts = pDoc->GetSpzFrmFmts(); - if(!pFmts->Count()) - return; - // #i104937# -// const SwFrmFmt* const pFmtsEnd = (*pFmts)[pFmts->Count()]; - const sal_uInt16 nSize = pFmts->Count(); - ::std::insert_iterator<frmcontainer_t> pInserter = ::std::insert_iterator<frmcontainer_t>(m_aFrames, m_aFrames.begin()); - // #i104937# - SwFrmFmt* pFmt( 0 ); - for( sal_uInt16 i = 0; i < nSize; ++i ) -// for(SwFrmFmt* pFmt = (*pFmts)[0]; pFmt < pFmtsEnd; ++pFmt) - { - // #i104937# - pFmt = (*pFmts)[i]; - if(pFmt->Which() != RES_FLYFRMFMT) - continue; - const SwNodeIndex* pIdx = pFmt->GetCntnt().GetCntntIdx(); - if(!pIdx || !pIdx->GetNodes().IsDocNodes()) - continue; - const SwNode* pNd = pDoc->GetNodes()[ pIdx->GetIndex() + 1 ]; - if(UnoFrameWrap_traits<T>::filter(pNd)) - *pInserter++ = lcl_UnoWrapFrame<T>(pFmt); - } -} - -template<FlyCntType T> -sal_Bool SwXFrameEnumeration<T>::hasMoreElements(void) throw( RuntimeException ) -{ - SolarMutexGuard aGuard; - return !m_aFrames.empty(); -} - -template<FlyCntType T> -Any SwXFrameEnumeration<T>::nextElement(void) throw( NoSuchElementException, WrappedTargetException, RuntimeException ) -{ - SolarMutexGuard aGuard; - if(m_aFrames.empty()) - throw NoSuchElementException(); - Any aResult = *m_aFrames.begin(); - m_aFrames.pop_front(); - return aResult; -} - -template<FlyCntType T> -OUString SwXFrameEnumeration<T>::getImplementationName(void) throw( RuntimeException ) -{ - return C2U("SwXFrameEnumeration"); -} - -template<FlyCntType T> -sal_Bool SwXFrameEnumeration<T>::supportsService(const OUString& ServiceName) throw( RuntimeException ) -{ - return C2U("com.sun.star.container.XEnumeration") == ServiceName; -} - -template<FlyCntType T> -Sequence< OUString > SwXFrameEnumeration<T>::getSupportedServiceNames(void) throw( RuntimeException ) -{ - return ::comphelper::makeSequence(C2U("com.sun.star.container.XEnumeration")); -} - -/****************************************************************** - * SwXFrames - ******************************************************************/ -OUString SwXFrames::getImplementationName(void) throw( RuntimeException ) -{ - return C2U("SwXFrames"); -} - -sal_Bool SwXFrames::supportsService(const OUString& rServiceName) throw( RuntimeException ) -{ - return C2U("com.sun.star.text.TextFrames") == rServiceName; -} - -Sequence<OUString> SwXFrames::getSupportedServiceNames(void) throw( RuntimeException ) -{ - return ::comphelper::makeSequence(C2U("com.sun.star.text.TextFrames")); -} - -SwXFrames::SwXFrames(SwDoc* _pDoc, FlyCntType eSet) : - SwUnoCollection(_pDoc), - eType(eSet) -{} - -SwXFrames::~SwXFrames() -{} - -uno::Reference<container::XEnumeration> SwXFrames::createEnumeration(void) throw(uno::RuntimeException) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - switch(eType) - { - case FLYCNTTYPE_FRM: - return uno::Reference< container::XEnumeration >( - new SwXFrameEnumeration<FLYCNTTYPE_FRM>(GetDoc())); - case FLYCNTTYPE_GRF: - return uno::Reference< container::XEnumeration >( - new SwXFrameEnumeration<FLYCNTTYPE_GRF>(GetDoc())); - case FLYCNTTYPE_OLE: - return uno::Reference< container::XEnumeration >( - new SwXFrameEnumeration<FLYCNTTYPE_OLE>(GetDoc())); - default: - throw uno::RuntimeException(); - } -} - -sal_Int32 SwXFrames::getCount(void) throw(uno::RuntimeException) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return GetDoc()->GetFlyCount(eType); -} - -uno::Any SwXFrames::getByIndex(sal_Int32 nIndex) - throw(IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - if(nIndex < 0 || nIndex >= USHRT_MAX) - throw IndexOutOfBoundsException(); - SwFrmFmt* pFmt = GetDoc()->GetFlyNum(static_cast<sal_uInt16>(nIndex), eType); - if(!pFmt) - throw IndexOutOfBoundsException(); - return lcl_UnoWrapFrame(pFmt, eType); -} - -uno::Any SwXFrames::getByName(const OUString& rName) - throw(NoSuchElementException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - const SwFrmFmt* pFmt; - switch(eType) - { - case FLYCNTTYPE_GRF: - pFmt = GetDoc()->FindFlyByName(rName, ND_GRFNODE); - break; - case FLYCNTTYPE_OLE: - pFmt = GetDoc()->FindFlyByName(rName, ND_OLENODE); - break; - default: - pFmt = GetDoc()->FindFlyByName(rName, ND_TEXTNODE); - break; - } - if(!pFmt) - throw NoSuchElementException(); - return lcl_UnoWrapFrame(const_cast<SwFrmFmt*>(pFmt), eType); -} - -uno::Sequence<OUString> SwXFrames::getElementNames(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - const Reference<XEnumeration> xEnum = createEnumeration(); - ::std::vector<OUString> vNames; - while(xEnum->hasMoreElements()) - { - Reference<container::XNamed> xNamed; - xEnum->nextElement() >>= xNamed; - if(xNamed.is()) - vNames.push_back(xNamed->getName()); - } - return ::comphelper::containerToSequence(vNames); -} - -sal_Bool SwXFrames::hasByName(const OUString& rName) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - switch(eType) - { - case FLYCNTTYPE_GRF: - return GetDoc()->FindFlyByName(rName, ND_GRFNODE) != NULL; - case FLYCNTTYPE_OLE: - return GetDoc()->FindFlyByName(rName, ND_OLENODE) != NULL; - default: - return GetDoc()->FindFlyByName(rName, ND_TEXTNODE) != NULL; - } -} - -uno::Type SAL_CALL SwXFrames::getElementType() throw(uno::RuntimeException) -{ - SolarMutexGuard aGuard; - switch(eType) - { - case FLYCNTTYPE_FRM: - return ::getCppuType((uno::Reference<XTextFrame>*)0); - case FLYCNTTYPE_GRF: - return ::getCppuType((uno::Reference<XTextContent>*)0); - case FLYCNTTYPE_OLE: - return ::getCppuType((uno::Reference<XEmbeddedObjectSupplier>*)0); - default: - return uno::Type(); - } -} - -sal_Bool SwXFrames::hasElements(void) throw(uno::RuntimeException) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return GetDoc()->GetFlyCount(eType) > 0; -} - -SwXFrame* SwXFrames::GetObject(SwFrmFmt& rFmt, FlyCntType eType) -{ - SwXFrame* pFrm = SwIterator<SwXFrame,SwFmt>::FirstElement( rFmt ); - if(pFrm) return pFrm; - switch(eType) - { - case FLYCNTTYPE_FRM: - return new SwXTextFrame(rFmt); - case FLYCNTTYPE_GRF: - return new SwXTextGraphicObject(rFmt); - case FLYCNTTYPE_OLE: - return new SwXTextEmbeddedObject(rFmt); - default: - return NULL; - } -} - -/****************************************************************** - * SwXTextFrames - ******************************************************************/ -OUString SwXTextFrames::getImplementationName(void) throw( RuntimeException ) -{ - return C2U("SwXTextFrames"); -} - -sal_Bool SwXTextFrames::supportsService(const OUString& rServiceName) throw( RuntimeException ) -{ - return C2U("com.sun.star.text.TextFrames") == rServiceName; -} - -Sequence< OUString > SwXTextFrames::getSupportedServiceNames(void) throw( RuntimeException ) -{ - Sequence< OUString > aRet(1); - OUString* pArray = aRet.getArray(); - pArray[0] = C2U("com.sun.star.text.TextFrames"); - return aRet; -} - -SwXTextFrames::SwXTextFrames(SwDoc* _pDoc) : - SwXFrames(_pDoc, FLYCNTTYPE_FRM) -{ -} - -SwXTextFrames::~SwXTextFrames() -{ -} - -/****************************************************************** - * SwXTextGraphicObjects - ******************************************************************/ -OUString SwXTextGraphicObjects::getImplementationName(void) throw( RuntimeException ) -{ - return C2U("SwXTextGraphicObjects"); -} - -sal_Bool SwXTextGraphicObjects::supportsService(const OUString& rServiceName) throw( RuntimeException ) -{ - return C2U("com.sun.star.text.TextGraphicObjects") == rServiceName; -} - -Sequence< OUString > SwXTextGraphicObjects::getSupportedServiceNames(void) throw( RuntimeException ) -{ - Sequence< OUString > aRet(1); - OUString* pArray = aRet.getArray(); - pArray[0] = C2U("com.sun.star.text.TextGraphicObjects"); - return aRet; -} - -SwXTextGraphicObjects::SwXTextGraphicObjects(SwDoc* _pDoc) : - SwXFrames(_pDoc, FLYCNTTYPE_GRF) -{ -} - -SwXTextGraphicObjects::~SwXTextGraphicObjects() -{ -} - -/****************************************************************** - * SwXTextEmbeddedObjects - ******************************************************************/ -OUString SwXTextEmbeddedObjects::getImplementationName(void) throw( RuntimeException ) -{ - return C2U("SwXTextEmbeddedObjects"); -} - -sal_Bool SwXTextEmbeddedObjects::supportsService(const OUString& rServiceName) throw( RuntimeException ) -{ - return C2U("com.sun.star.text.TextEmbeddedObjects") == rServiceName; -} - -Sequence< OUString > SwXTextEmbeddedObjects::getSupportedServiceNames(void) throw( RuntimeException ) -{ - Sequence< OUString > aRet(1); - OUString* pArray = aRet.getArray(); - pArray[0] = C2U("com.sun.star.text.TextEmbeddedObjects"); - return aRet; -} - -SwXTextEmbeddedObjects::SwXTextEmbeddedObjects(SwDoc* _pDoc) : - SwXFrames(_pDoc, FLYCNTTYPE_OLE) -{ -} - -SwXTextEmbeddedObjects::~SwXTextEmbeddedObjects() -{ -} - -#define PASSWORD_STD_TIMEOUT 1000 -OUString SwXTextSections::getImplementationName(void) throw( RuntimeException ) -{ - return C2U("SwXTextSections"); -} - -sal_Bool SwXTextSections::supportsService(const OUString& rServiceName) throw( RuntimeException ) -{ - return C2U("com.sun.star.text.TextSections") == rServiceName; -} - -Sequence< OUString > SwXTextSections::getSupportedServiceNames(void) throw( RuntimeException ) -{ - Sequence< OUString > aRet(1); - OUString* pArray = aRet.getArray(); - pArray[0] = C2U("com.sun.star.text.TextSections"); - return aRet; -} - -SwXTextSections::SwXTextSections(SwDoc* _pDoc) : - SwUnoCollection(_pDoc) -{ -} - -SwXTextSections::~SwXTextSections() -{ -} - -sal_Int32 SwXTextSections::getCount(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - const SwSectionFmts& rSectFmts = GetDoc()->GetSections(); - sal_uInt16 nCount = rSectFmts.Count(); - for(sal_uInt16 i = nCount; i; i--) - { - if( !rSectFmts[i - 1]->IsInNodesArr()) - nCount--; - } - return nCount; -} - -uno::Any SwXTextSections::getByIndex(sal_Int32 nIndex) - throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - uno::Reference< XTextSection > xRet; - if(IsValid()) - { - SwSectionFmts& rFmts = GetDoc()->GetSections(); - - const SwSectionFmts& rSectFmts = GetDoc()->GetSections(); - sal_uInt16 nCount = rSectFmts.Count(); - for(sal_uInt16 i = 0; i < nCount; i++) - { - if( !rSectFmts[i]->IsInNodesArr()) - nIndex ++; - else if(nIndex == i) - break; - if(nIndex == i) - break; - } - if(nIndex >= 0 && nIndex < rFmts.Count()) - { - SwSectionFmt* pFmt = rFmts[(sal_uInt16)nIndex]; - xRet = GetObject(*pFmt); - } - else - throw IndexOutOfBoundsException(); - } - else - throw uno::RuntimeException(); - return makeAny(xRet); -} - -uno::Any SwXTextSections::getByName(const OUString& Name) - throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - uno::Any aRet; - if(IsValid()) - { - String aName(Name); - SwSectionFmts& rFmts = GetDoc()->GetSections(); - uno::Reference< XTextSection > xSect; - for(sal_uInt16 i = 0; i < rFmts.Count(); i++) - { - SwSectionFmt* pFmt = rFmts[i]; - if (pFmt->IsInNodesArr() - && (aName == pFmt->GetSection()->GetSectionName())) - { - xSect = GetObject(*pFmt); - aRet.setValue(&xSect, ::getCppuType((uno::Reference<XTextSection>*)0)); - break; - } - } - if(!xSect.is()) - throw NoSuchElementException(); - } - else - throw uno::RuntimeException(); - return aRet; -} - -uno::Sequence< OUString > SwXTextSections::getElementNames(void) - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - sal_uInt16 nCount = GetDoc()->GetSections().Count(); - SwSectionFmts& rSectFmts = GetDoc()->GetSections(); - for(sal_uInt16 i = nCount; i; i--) - { - if( !rSectFmts[i - 1]->IsInNodesArr()) - nCount--; - } - - uno::Sequence<OUString> aSeq(nCount); - if(nCount) - { - SwSectionFmts& rFmts = GetDoc()->GetSections(); - OUString* pArray = aSeq.getArray(); - sal_uInt16 nIndex = 0; - for( sal_uInt16 i = 0; i < nCount; i++, nIndex++) - { - const SwSectionFmt* pFmt = rFmts[nIndex]; - while(!pFmt->IsInNodesArr()) - { - pFmt = rFmts[++nIndex]; - } - pArray[i] = pFmt->GetSection()->GetSectionName(); - } - } - return aSeq; -} - -sal_Bool SwXTextSections::hasByName(const OUString& Name) - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - sal_Bool bRet = sal_False; - String aName(Name); - if(IsValid()) - { - SwSectionFmts& rFmts = GetDoc()->GetSections(); - for(sal_uInt16 i = 0; i < rFmts.Count(); i++) - { - const SwSectionFmt* pFmt = rFmts[i]; - if (aName == pFmt->GetSection()->GetSectionName()) - { - bRet = sal_True; - break; - } - } - } - else - { - //Sonderbehandlung der dbg_ - Methoden - if( COMPARE_EQUAL != aName.CompareToAscii("dbg_", 4)) - throw uno::RuntimeException(); - } - return bRet; -} - -uno::Type SAL_CALL SwXTextSections::getElementType() throw(uno::RuntimeException) -{ - return ::getCppuType((uno::Reference<XTextSection>*)0); -} - -sal_Bool SwXTextSections::hasElements(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - sal_uInt16 nCount = 0; - if(IsValid()) - { - SwSectionFmts& rFmts = GetDoc()->GetSections(); - nCount = rFmts.Count(); - } - else - throw uno::RuntimeException(); - return nCount > 0; -} - -uno::Reference< XTextSection > SwXTextSections::GetObject( SwSectionFmt& rFmt ) -{ - return SwXTextSection::CreateXTextSection(&rFmt); -} - -OUString SwXBookmarks::getImplementationName(void) throw( RuntimeException ) -{ - return OUString(RTL_CONSTASCII_USTRINGPARAM("SwXBookmarks")); -} - -sal_Bool SwXBookmarks::supportsService(const OUString& rServiceName) throw( RuntimeException ) -{ - return OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.Bookmarks")) == rServiceName; -} - -Sequence< OUString > SwXBookmarks::getSupportedServiceNames(void) throw( RuntimeException ) -{ - Sequence< OUString > aRet(1); - aRet[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.Bookmarks")); - return aRet; -} - -SwXBookmarks::SwXBookmarks(SwDoc* _pDoc) : - SwUnoCollection(_pDoc) -{ } - -SwXBookmarks::~SwXBookmarks() -{ } - -sal_Int32 SwXBookmarks::getCount(void) - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return GetDoc()->getIDocumentMarkAccess()->getMarksCount(); -} - -uno::Any SwXBookmarks::getByIndex(sal_Int32 nIndex) - throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - IDocumentMarkAccess* const pMarkAccess = GetDoc()->getIDocumentMarkAccess(); - if(nIndex < 0 || nIndex >= pMarkAccess->getMarksCount()) - throw IndexOutOfBoundsException(); - - uno::Any aRet; - ::sw::mark::IMark* pBkmk = pMarkAccess->getMarksBegin()[nIndex].get(); - const uno::Reference< text::XTextContent > xRef = - SwXBookmark::CreateXBookmark(*GetDoc(), *pBkmk); - aRet <<= xRef; - return aRet; -} - -uno::Any SwXBookmarks::getByName(const rtl::OUString& rName) - throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - - IDocumentMarkAccess* const pMarkAccess = GetDoc()->getIDocumentMarkAccess(); - IDocumentMarkAccess::const_iterator_t ppBkmk = pMarkAccess->findMark(rName); - if(ppBkmk == pMarkAccess->getMarksEnd()) - throw NoSuchElementException(); - - uno::Any aRet; - const uno::Reference< text::XTextContent > xRef = - SwXBookmark::CreateXBookmark(*GetDoc(), *(ppBkmk->get())); - aRet <<= xRef; - return aRet; -} - -uno::Sequence< OUString > SwXBookmarks::getElementNames(void) - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - - IDocumentMarkAccess* const pMarkAccess = GetDoc()->getIDocumentMarkAccess(); - uno::Sequence<OUString> aSeq(pMarkAccess->getMarksCount()); - sal_Int32 nCnt = 0; - for(IDocumentMarkAccess::const_iterator_t ppMark = pMarkAccess->getMarksBegin(); - ppMark != pMarkAccess->getMarksEnd();) - aSeq[nCnt++] = (*ppMark++)->GetName(); - return aSeq; -} - -sal_Bool SwXBookmarks::hasByName(const OUString& rName) - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - - IDocumentMarkAccess* const pMarkAccess = GetDoc()->getIDocumentMarkAccess(); - return pMarkAccess->findMark(rName) != pMarkAccess->getMarksEnd(); -} - -uno::Type SAL_CALL SwXBookmarks::getElementType() - throw(uno::RuntimeException) -{ - return ::getCppuType((uno::Reference<XTextContent>*)0); -} - -sal_Bool SwXBookmarks::hasElements(void) - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return GetDoc()->getIDocumentMarkAccess()->getBookmarksCount() != 0; -} - -SwXNumberingRulesCollection::SwXNumberingRulesCollection( SwDoc* _pDoc ) : - SwUnoCollection(_pDoc) -{ -} - -SwXNumberingRulesCollection::~SwXNumberingRulesCollection() -{ -} - -sal_Int32 SwXNumberingRulesCollection::getCount(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return GetDoc()->GetNumRuleTbl().Count(); -} - -uno::Any SwXNumberingRulesCollection::getByIndex(sal_Int32 nIndex) - throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - uno::Any aRet; - if(IsValid()) - { - uno::Reference< XIndexReplace > xRef; - if ( nIndex < GetDoc()->GetNumRuleTbl().Count() ) - { - xRef = new SwXNumberingRules( *GetDoc()->GetNumRuleTbl()[ static_cast< sal_uInt16 >(nIndex) ] ); - aRet.setValue(&xRef, ::getCppuType((uno::Reference<XIndexReplace>*)0)); - } - - if(!xRef.is()) - throw IndexOutOfBoundsException(); - } - else - throw uno::RuntimeException(); - return aRet; -} - -uno::Type SAL_CALL SwXNumberingRulesCollection::getElementType() throw(uno::RuntimeException) -{ - return ::getCppuType((uno::Reference<XIndexReplace>*)0); -} - -sal_Bool SwXNumberingRulesCollection::hasElements(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return GetDoc()->GetNumRuleTbl().Count() > 0; -} - -OUString SwXFootnotes::getImplementationName(void) throw( RuntimeException ) -{ - return C2U("SwXFootnotes"); -} - -sal_Bool SwXFootnotes::supportsService(const OUString& rServiceName) throw( RuntimeException ) -{ - return C2U("com.sun.star.text.Footnotes") == rServiceName; -} - -Sequence< OUString > SwXFootnotes::getSupportedServiceNames(void) throw( RuntimeException ) -{ - Sequence< OUString > aRet(1); - OUString* pArray = aRet.getArray(); - pArray[0] = C2U("com.sun.star.text.Footnotes"); - return aRet; -} - -SwXFootnotes::SwXFootnotes(sal_Bool bEnd, SwDoc* _pDoc) - : SwUnoCollection(_pDoc) - , m_bEndnote(bEnd) -{ -} - -SwXFootnotes::~SwXFootnotes() -{ -} - -sal_Int32 SwXFootnotes::getCount(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - sal_Int32 nCount = 0; - sal_uInt16 n, nFtnCnt = GetDoc()->GetFtnIdxs().Count(); - SwTxtFtn* pTxtFtn; - for( n = 0; n < nFtnCnt; ++n ) - { - pTxtFtn = GetDoc()->GetFtnIdxs()[ n ]; - const SwFmtFtn& rFtn = pTxtFtn->GetFtn(); - if ( rFtn.IsEndNote() != m_bEndnote ) - continue; - nCount++; - } - return nCount; -} - -uno::Any SwXFootnotes::getByIndex(sal_Int32 nIndex) - throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - uno::Any aRet; - if(IsValid()) - { - sal_uInt16 n, nFtnCnt = GetDoc()->GetFtnIdxs().Count(); - SwTxtFtn* pTxtFtn; - uno::Reference< XFootnote > xRef; - sal_Int32 nCount = 0; - for( n = 0; n < nFtnCnt; ++n ) - { - pTxtFtn = GetDoc()->GetFtnIdxs()[ n ]; - const SwFmtFtn& rFtn = pTxtFtn->GetFtn(); - if ( rFtn.IsEndNote() != m_bEndnote ) - continue; - - if(nCount == nIndex) - { - xRef = SwXFootnote::CreateXFootnote(*GetDoc(), rFtn); - aRet <<= xRef; - break; - } - nCount++; - } - if(!xRef.is()) - throw IndexOutOfBoundsException(); - } - else - throw uno::RuntimeException(); - return aRet; -} - -uno::Type SAL_CALL SwXFootnotes::getElementType() throw(uno::RuntimeException) -{ - return ::getCppuType((uno::Reference<XFootnote>*)0); -} - -sal_Bool SwXFootnotes::hasElements(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return GetDoc()->GetFtnIdxs().Count() > 0; -} - -Reference<XFootnote> SwXFootnotes::GetObject( SwDoc& rDoc, const SwFmtFtn& rFmt ) -{ - return SwXFootnote::CreateXFootnote(rDoc, rFmt); -} - -OUString SwXReferenceMarks::getImplementationName(void) throw( RuntimeException ) -{ - return C2U("SwXReferenceMarks"); -} - -sal_Bool SwXReferenceMarks::supportsService(const OUString& rServiceName) throw( RuntimeException ) -{ - return C2U("com.sun.star.text.ReferenceMarks") == rServiceName; -} - -Sequence< OUString > SwXReferenceMarks::getSupportedServiceNames(void) throw( RuntimeException ) -{ - Sequence< OUString > aRet(1); - OUString* pArray = aRet.getArray(); - pArray[0] = C2U("com.sun.star.text.ReferenceMarks"); - return aRet; -} - -SwXReferenceMarks::SwXReferenceMarks(SwDoc* _pDoc) : - SwUnoCollection(_pDoc) -{ -} - -SwXReferenceMarks::~SwXReferenceMarks() -{ -} - -sal_Int32 SwXReferenceMarks::getCount(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return GetDoc()->GetRefMarks(); -} - -uno::Any SwXReferenceMarks::getByIndex(sal_Int32 nIndex) - throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - uno::Any aRet; - if(!IsValid()) - throw uno::RuntimeException(); - uno::Reference< XTextContent > xRef; - if(0 <= nIndex && nIndex < USHRT_MAX) - { - const SwFmtRefMark* pMark = GetDoc()->GetRefMark( (sal_uInt16) nIndex ); - if(pMark) - { - xRef = SwXReferenceMarks::GetObject( GetDoc(), pMark ); - aRet.setValue(&xRef, ::getCppuType((uno::Reference<XTextContent>*)0)); - } - } - if(!xRef.is()) - throw IndexOutOfBoundsException(); - return aRet; -} - -uno::Any SwXReferenceMarks::getByName(const OUString& rName) - throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - uno::Any aRet; - if(IsValid()) - { - const SwFmtRefMark* pMark = GetDoc()->GetRefMark(rName); - if(pMark) - { - uno::Reference< XTextContent > xRef = SwXReferenceMarks::GetObject( GetDoc(), pMark ); - aRet.setValue(&xRef, ::getCppuType((uno::Reference<XTextContent>*)0)); - } - else - throw NoSuchElementException(); - } - else - throw uno::RuntimeException(); - return aRet; -} - -uno::Sequence< OUString > SwXReferenceMarks::getElementNames(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - uno::Sequence<OUString> aRet; - if(IsValid()) - { - SvStringsDtor aStrings; - sal_uInt16 nCount = GetDoc()->GetRefMarks( &aStrings ); - aRet.realloc(nCount); - OUString* pNames = aRet.getArray(); - for(sal_uInt16 i = 0; i < nCount; i++) - pNames[i] = *aStrings.GetObject(i); - } - else - throw uno::RuntimeException(); - return aRet; -} - -sal_Bool SwXReferenceMarks::hasByName(const OUString& rName) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return 0 != GetDoc()->GetRefMark( rName); -} - -uno::Type SAL_CALL SwXReferenceMarks::getElementType() throw(uno::RuntimeException) -{ - return ::getCppuType((uno::Reference<XTextContent>*)0); -} - -sal_Bool SwXReferenceMarks::hasElements(void) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if(!IsValid()) - throw uno::RuntimeException(); - return 0 != GetDoc()->GetRefMarks(); -} - -SwXReferenceMark* SwXReferenceMarks::GetObject( SwDoc* pDoc, const SwFmtRefMark* pMark ) -{ - SolarMutexGuard aGuard; - - return SwXReferenceMark::CreateXReferenceMark(*pDoc, *pMark); -} - - -void SwUnoCollection::Invalidate() -{ - bObjectValid = sal_False; - pDoc = 0; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |