diff options
author | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2011-08-23 15:10:15 +0200 |
---|---|---|
committer | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2011-08-23 15:10:15 +0200 |
commit | 5c22c7b613228daf8f46baf70928ae7da6485289 (patch) | |
tree | 75ae8ba4d004cdfbf539762aa8fd819d4760b56a /binfilter/bf_svx/source/unodraw/svx_unomtabl.cxx | |
parent | 62479cc5aa788ddebf9fa23e0124a0dc2495426c (diff) |
recreated tag libreoffice-3.3.1.1 which had these commits:
commit 1163151cf51a15a68700eda522ba7a789e378361 (tag: refs/tags/libreoffice-3.3.1.1)
Author: Petr Mladek <pmladek@suse.cz>
Date: Tue Feb 8 18:07:43 2011 +0100
Version 3.3.1.1, tag libreoffice-3.3.1.1 (3.3.1-rc1)
commit 3d8f2d6ee7f86ec048ffca70a7dd59efb64ab90c
Author: Jan Holesovsky <kendy@suse.cz>
Date: Mon Feb 7 21:23:24 2011 +0100
Branch libreoffice-3-3-1
This is 'libreoffice-3-3-1' - the stable branch for the 3.3.1 release.
Only very safe changes, reviewed by three people are allowed.
If you want to commit more complicated fix for the next 3.3.x release,
please use the 'libreoffice-3-3' branch.
If you want to build something cool, unstable, and risky, use master.
commit 4d86423be75125185f7e220877839c68934bfedc
Author: Joseph Powers <jpowers27@cox.net>
Date: Mon Feb 7 16:32:57 2011 +0000
cherry picked from 0679158ebb6c84863e6e0e2fe877ea06eba4a2d4
Move XServiceInfo.hpp from DEBUG to main.
Now that XServiceInfo is always used, it would be nice to always include
if defination. This fixes a compile error on mac.
PS: Also some trailing white space. The changed code all appears at the
top of the patch.
Signed-off-by: Noel Power <noel.power@novell.com>
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 144 ++++++++++----------
1 files changed, 72 insertions(+), 72 deletions(-)
commit 8efa2697b2a2737ee5951358878a17203073ac49
Author: Noel Power <noel.power@novell.com>
Date: Mon Feb 7 12:01:46 2011 +0000
fix for bnc#655763
cherry picked from ae5d018c49d3ab61416cde7fb09c37bcce7d9566
reviewed in bug https://bugzilla.novell.com/show_bug.cgi?id=655763#c6
Signed-off-by: Cedric Bosdonnat <cbosdonnat@novell.com>
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
commit 780535edc21bc230a859d672b7408f10e2691a38
Author: Petr Mladek <pmladek@suse.cz>
Date: Wed Feb 2 17:09:03 2011 +0100
RTF export crasher (bnc#656503)
Signed off by Cedric
filter/source/msfilter/escherex.cxx | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
commit ecda6f3b42d84e88d35d4d6bd4ea5cc32b9b8c89
Author: Takeshi Kurosawa <taken.spc@gmail.com>
Date: Thu Jan 27 14:31:57 2011 +0900
Use product name for EPS Creator header
(cherry picked from commit 2d07f1d678dc868687a9ae8c326b766e7def21c2)
Signed-off-by: Thorsten Behrens <tbehrens@novell.com>
filter/source/graphicfilter/eps/eps.cxx | 16 +++++++++++++++-
filter/source/graphicfilter/eps/makefile.mk | 2 +-
2 files changed, 16 insertions(+), 2 deletions(-)
commit dd73734f0440787d84ddbe5737e7f996803dacf2
Author: Takeshi Kurosawa <taken.spc@gmail.com>
Date: Thu Jan 27 13:45:16 2011 +0900
Parse 'color' property (fdo#33551)
Parse 'color' property and store the value as currentColor.
(cherry picked from commit d4bac116d0c35d8811a048fdd991363a32df14ca)
Signed-off-by: Thorsten Behrens <tbehrens@novell.com>
filter/source/svg/svgreader.cxx | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
commit 9a7fcfcf49e393c02e8d115dfa4a40811582375f
Author: Fridrich Štrba <fridrich.strba@bluewin.ch>
Date: Sun Jan 30 10:22:38 2011 +0100
Use double instead of float
(cherry picked from commit c90c5d503543a960a05b43752a5dff9ccf4bcd30)
Signed-off-by: Caolán McNamara <caolanm@redhat.com>
writerperfect/source/filter/DocumentCollector.cxx | 2 +-
writerperfect/source/filter/DocumentCollector.hxx | 2 +-
writerperfect/source/filter/FilterInternal.hxx | 6 +++---
writerperfect/source/filter/ListStyle.cxx | 12 ++++++------
writerperfect/source/filter/SectionStyle.cxx | 2 +-
writerperfect/source/filter/TextRunStyle.cxx | 6 +++---
writerperfect/source/filter/WriterProperties.hxx | 4 ++--
7 files changed, 17 insertions(+), 17 deletions(-)
commit 9fd267985820db81454cce1b4a76752769b471b7
Author: Thomas Klausner <wiz@NetBSD.org>
Date: Sat Nov 6 00:30:42 2010 +0100
Use PYTHON as passed through by set_soenv.in.
filter/source/config/fragments/makefile.mk | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
commit 82102abd307f911c400735eb6f9b43fa69d221d8
Author: Noel Power <noel.power@novell.com>
Date: Tue Jan 18 12:58:17 2011 +0000
fdo#33237 remove debug line
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
commit 9c976ba4f8e1fd2bcd40412873e22728ed83d5bd
Author: Noel Power <noel.power@novell.com>
Date: Tue Jan 18 12:43:50 2011 +0000
fdo#33237# fix ole object import for writer (docx)
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 41 +++++++++++++++++++++
1 files changed, 41 insertions(+), 0 deletions(-)
commit 8383f008c60c0615005f4bb22ae9ddaeca4540cf
Author: Fridrich Štrba <fridrich.strba@bluewin.ch>
Date: Tue Jan 18 11:12:52 2011 +0100
Fix a typo SolarMuexGuard -> SolarMutexGuard
signoff: Jan Holesovsky <kendy@suse.cz>
signoff: Thorsten Behrens <thb@documentfoundation.org>
signoff: Tor Lillqvist <tlillqvist@novell.com>
signoff: Petr Mladek <pmladek@suse.cz>
binfilter/bf_so3/source/ole/socli.cxx | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
commit 247a91f1df71614fc8d9b2264d10f0952055c611
Author: Petr Mladek <pmladek@suse.cz>
Date: Tue Jan 11 23:05:56 2011 +0100
Please, ignore the previous message; it was for the libreoffice-3-3-0 branch
This is 'libreoffice-3-3' - the stable branch for the 3.3.x releases.
Only safe changes, reviewed by anoter person are allowed.
If you want to build something cool, unstable, and risky, use master.
commit 9628deac573830fdfbce2c402f8574379ac71a35
Author: Petr Mladek <pmladek@suse.cz>
Date: Tue Jan 11 22:39:07 2011 +0100
Branch libreoffice-3-3-0
This is 'libreoffice-3-3-0' - the stable branch for the 3.3.0 release.
Only very safe changes, reviewed by three people are allowed.
If you want to commit more complicated fix for the next 3.3.x release,
please use the 'libreoffice-3-3' branch.
If you want to build something cool, unstable, and risky, use master.
Notes
split repo tag: filters_libreoffice-3.3.1.1
split repo tag: filters_libreoffice-3.3.1.2
Diffstat (limited to 'binfilter/bf_svx/source/unodraw/svx_unomtabl.cxx')
-rw-r--r-- | binfilter/bf_svx/source/unodraw/svx_unomtabl.cxx | 479 |
1 files changed, 479 insertions, 0 deletions
diff --git a/binfilter/bf_svx/source/unodraw/svx_unomtabl.cxx b/binfilter/bf_svx/source/unodraw/svx_unomtabl.cxx new file mode 100644 index 000000000000..79a18cfae964 --- /dev/null +++ b/binfilter/bf_svx/source/unodraw/svx_unomtabl.cxx @@ -0,0 +1,479 @@ +/* -*- 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. + * + ************************************************************************/ + +#include <set> + +#include <comphelper/stl_types.hxx> + +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <com/sun/star/drawing/PointSequence.hpp> + + +#include <cppuhelper/implbase2.hxx> + +#include <bf_svtools/itempool.hxx> + +#include <bf_svtools/itemset.hxx> + +#include <bf_svtools/lstner.hxx> + +#include <xlnedit.hxx> +#include <xlnstit.hxx> +#include "svdmodel.hxx" +#include "xdef.hxx" + +#include <vector> + +#include <osl/mutex.hxx> +#include <vcl/svapp.hxx> + + +#include "unoapi.hxx" +namespace binfilter { + +using namespace ::com::sun::star; +using namespace ::rtl; +using namespace ::cppu; + +typedef std::vector< SfxItemSet* > ItemPoolVector; + +class SvxUnoMarkerTable : public WeakImplHelper2< container::XNameContainer, lang::XServiceInfo >, + public SfxListener +{ +private: + SdrModel* mpModel; + SfxItemPool* mpModelPool; + + ItemPoolVector maItemSetVector; + +public: + SvxUnoMarkerTable( SdrModel* pModel ) throw(); + virtual ~SvxUnoMarkerTable() throw(); + + void dispose(); + + // SfxListener + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) throw (); + + void SAL_CALL ImplInsertByName( const OUString& aName, const uno::Any& aElement ); + + // XServiceInfo + virtual OUString SAL_CALL getImplementationName( ) throw( uno::RuntimeException ); + virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw( uno::RuntimeException); + virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw( uno::RuntimeException); + + // XNameContainer + virtual void SAL_CALL insertByName( const OUString& aName, const uno::Any& aElement ) throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException); + virtual void SAL_CALL removeByName( const OUString& Name ) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException); + + // XNameReplace + virtual void SAL_CALL replaceByName( const OUString& aName, const uno::Any& aElement ) throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException); + + // XNameAccess + virtual uno::Any SAL_CALL getByName( const OUString& aName ) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException); + virtual uno::Sequence< OUString > SAL_CALL getElementNames( ) throw( uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) throw( uno::RuntimeException); + + // XElementAccess + virtual uno::Type SAL_CALL getElementType( ) throw( uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements( ) throw( uno::RuntimeException); +}; + +SvxUnoMarkerTable::SvxUnoMarkerTable( SdrModel* pModel ) throw() +: mpModel( pModel ), + mpModelPool( pModel ? &pModel->GetItemPool() : (SfxItemPool*)NULL ) +{ + if( pModel ) + StartListening( *pModel ); +} + +SvxUnoMarkerTable::~SvxUnoMarkerTable() throw() +{ + if( mpModel ) + EndListening( *mpModel ); + dispose(); +} + +void SvxUnoMarkerTable::dispose() +{ + ItemPoolVector::iterator aIter = maItemSetVector.begin(); + const ItemPoolVector::iterator aEnd = maItemSetVector.end(); + + while( aIter != aEnd ) + { + delete (*aIter++); + } + + maItemSetVector.clear(); +} + +// SfxListener +void SvxUnoMarkerTable::Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) throw() +{ + const SdrHint* pSdrHint = PTR_CAST( SdrHint, &rHint ); + + if( pSdrHint && HINT_MODELCLEARED == pSdrHint->GetKind() ) + dispose(); +} + +sal_Bool SAL_CALL SvxUnoMarkerTable::supportsService( const OUString& ServiceName ) throw(uno::RuntimeException) +{ + uno::Sequence< OUString > aSNL( getSupportedServiceNames() ); + const OUString * pArray = aSNL.getConstArray(); + + for( INT32 i = 0; i < aSNL.getLength(); i++ ) + if( pArray[i] == ServiceName ) + return TRUE; + + return FALSE; +} + +OUString SAL_CALL SvxUnoMarkerTable::getImplementationName() throw( uno::RuntimeException ) +{ + return OUString( RTL_CONSTASCII_USTRINGPARAM("SvxUnoMarkerTable") ); +} + +uno::Sequence< OUString > SAL_CALL SvxUnoMarkerTable::getSupportedServiceNames( ) + throw( uno::RuntimeException ) +{ + uno::Sequence< OUString > aSNS( 1 ); + aSNS.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.MarkerTable" )); + return aSNS; +} + +void SAL_CALL SvxUnoMarkerTable::ImplInsertByName( const OUString& aName, const uno::Any& aElement ) +{ + SfxItemSet* mpInSet = new SfxItemSet( *mpModelPool, XATTR_LINESTART, XATTR_LINEEND ); + maItemSetVector.push_back( mpInSet ); + + XLineEndItem aEndMarker; + aEndMarker.SetName( String( aName ) ); + aEndMarker.PutValue( aElement ); + + mpInSet->Put( aEndMarker, XATTR_LINEEND ); + + XLineStartItem aStartMarker; + aStartMarker.SetName( String( aName ) ); + aStartMarker.PutValue( aElement ); + + mpInSet->Put( aStartMarker, XATTR_LINESTART ); +} + +// XNameContainer +void SAL_CALL SvxUnoMarkerTable::insertByName( const OUString& aApiName, const uno::Any& aElement ) + throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException ) +{ + SolarMutexGuard aGuard; + + if( hasByName( aApiName ) ) + throw container::ElementExistException(); + + String aName; + SvxUnogetInternalNameForItem( XATTR_LINEEND, aApiName, aName ); + + ImplInsertByName( aName, aElement ); +} + +void SAL_CALL SvxUnoMarkerTable::removeByName( const OUString& aApiName ) + throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) +{ + SolarMutexGuard aGuard; + + String Name; + SvxUnogetInternalNameForItem( XATTR_LINEEND, aApiName, Name ); + + ItemPoolVector::iterator aIter = maItemSetVector.begin(); + const ItemPoolVector::iterator aEnd = maItemSetVector.end(); + + NameOrIndex *pItem; + const String aSearchName( Name ); + + while( aIter != aEnd ) + { + pItem = (NameOrIndex *)&((*aIter)->Get( XATTR_LINEEND ) ); + if( pItem->GetName() == aSearchName ) + { + delete (*aIter); + maItemSetVector.erase( aIter ); + return; + } + aIter++; + } + + if( !hasByName( Name ) ) + throw container::NoSuchElementException(); +} + +// XNameReplace +void SAL_CALL SvxUnoMarkerTable::replaceByName( const OUString& aApiName, const uno::Any& aElement ) + throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException ) +{ + SolarMutexGuard aGuard; + + String aName; + SvxUnogetInternalNameForItem( XATTR_LINEEND, aApiName, aName ); + + ItemPoolVector::iterator aIter = maItemSetVector.begin(); + const ItemPoolVector::iterator aEnd = maItemSetVector.end(); + + NameOrIndex *pItem; + const String aSearchName( aName ); + + while( aIter != aEnd ) + { + pItem = (NameOrIndex *)&((*aIter)->Get( XATTR_LINEEND ) ); + if( pItem->GetName() == aSearchName ) + { + XLineEndItem aEndMarker; + aEndMarker.SetName( aSearchName ); + if( !aEndMarker.PutValue( aElement ) ) + throw lang::IllegalArgumentException(); + + (*aIter)->Put( aEndMarker, XATTR_LINEEND ); + + XLineStartItem aStartMarker; + aStartMarker.SetName( aSearchName ); + aStartMarker.PutValue( aElement ); + + (*aIter)->Put( aStartMarker, XATTR_LINESTART ); + return; + } + aIter++; + } + + // if it is not in our own sets, modify the pool! + sal_Bool bFound = sal_False; + + USHORT nSurrogate; + const USHORT nStartCount = mpModelPool ? mpModelPool->GetItemCount( XATTR_LINESTART ) : 0; + for( nSurrogate = 0; nSurrogate < nStartCount; nSurrogate++ ) + { + pItem = (NameOrIndex*)mpModelPool->GetItem( XATTR_LINESTART, nSurrogate); + if( pItem && pItem->GetName() == aSearchName ) + { + pItem->PutValue( aElement ); + bFound = sal_True; + break; + } + } + + const USHORT nEndCount = mpModelPool ? mpModelPool->GetItemCount( XATTR_LINEEND ) : 0; + for( nSurrogate = 0; nSurrogate < nEndCount; nSurrogate++ ) + { + pItem = (NameOrIndex*)mpModelPool->GetItem( XATTR_LINEEND, nSurrogate); + if( pItem && pItem->GetName() == aSearchName ) + { + pItem->PutValue( aElement ); + bFound = sal_True; + break; + } + } + + if( bFound ) + ImplInsertByName( aName, aElement ); + else + throw container::NoSuchElementException(); +} + +static sal_Bool getByNameFromPool( const String& rSearchName, SfxItemPool* pPool, USHORT nWhich, uno::Any& rAny ) +{ + NameOrIndex *pItem; + const sal_Int32 nSurrogateCount = pPool ? (sal_Int32)pPool->GetItemCount( nWhich ) : 0; + for( sal_Int32 nSurrogate = 0; nSurrogate < nSurrogateCount; nSurrogate++ ) + { + pItem = (NameOrIndex*)pPool->GetItem( nWhich, (USHORT)nSurrogate ); + + if( pItem && pItem->GetName() == rSearchName ) + { + pItem->QueryValue( rAny, 0 ); + return sal_True; + } + } + + return sal_False; +} + +// XNameAccess +uno::Any SAL_CALL SvxUnoMarkerTable::getByName( const OUString& aApiName ) + throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException) +{ + SolarMutexGuard aGuard; + + String aName; + SvxUnogetInternalNameForItem( XATTR_LINEEND, aApiName, aName ); + + uno::Any aAny; + + if( mpModelPool && aName.Len() != 0 ) + { + do + { + const String aSearchName( aName ); + if( getByNameFromPool( aSearchName, mpModelPool, XATTR_LINESTART, aAny ) ) + break; + + if( getByNameFromPool( aSearchName, mpModelPool, XATTR_LINEEND, aAny ) ) + break; + + throw container::NoSuchElementException(); + } + while(0); + } + + return aAny; +} + +static void createNamesForPool( SfxItemPool* pPool, USHORT nWhich, std::set< OUString, comphelper::UStringLess >& rNameSet ) +{ + const sal_Int32 nSuroCount = pPool->GetItemCount( nWhich ); + sal_Int32 nSurrogate; + + NameOrIndex *pItem; + OUString aName; + + for( nSurrogate = 0; nSurrogate < nSuroCount; nSurrogate++ ) + { + pItem = (NameOrIndex*)pPool->GetItem( nWhich, (USHORT)nSurrogate ); + + if( pItem == NULL || pItem->GetName().Len() == 0 ) + continue; + + SvxUnogetApiNameForItem( XATTR_LINEEND, pItem->GetName(), aName ); + rNameSet.insert( aName ); + } +} + +uno::Sequence< OUString > SAL_CALL SvxUnoMarkerTable::getElementNames() + throw( uno::RuntimeException ) +{ + SolarMutexGuard aGuard; + + std::set< OUString, comphelper::UStringLess > aNameSet; + + // search model pool for line starts + createNamesForPool( mpModelPool, XATTR_LINESTART, aNameSet ); + + // search model pool for line ends + createNamesForPool( mpModelPool, XATTR_LINEEND, aNameSet ); + + uno::Sequence< OUString > aSeq( aNameSet.size() ); + OUString* pNames = aSeq.getArray(); + + std::set< OUString, comphelper::UStringLess >::iterator aIter( aNameSet.begin() ); + const std::set< OUString, comphelper::UStringLess >::iterator aEnd( aNameSet.end() ); + + while( aIter != aEnd ) + { + *pNames++ = *aIter++; + } + + return aSeq; +} + +sal_Bool SAL_CALL SvxUnoMarkerTable::hasByName( const OUString& aName ) + throw( uno::RuntimeException ) +{ + SolarMutexGuard aGuard; + + if( aName.getLength() == 0 ) + return sal_False; + + String aSearchName; + + NameOrIndex *pItem; + + SvxUnogetInternalNameForItem( XATTR_LINESTART, aName, aSearchName ); + USHORT nStartCount = mpModelPool ? mpModelPool->GetItemCount( XATTR_LINESTART ) : 0; + USHORT nSurrogate; + for( nSurrogate = 0; nSurrogate < nStartCount; nSurrogate++ ) + { + pItem = (NameOrIndex*)mpModelPool->GetItem( XATTR_LINESTART, nSurrogate); + if( pItem && pItem->GetName() == aSearchName ) + return sal_True; + } + + SvxUnogetInternalNameForItem( XATTR_LINEEND, aName, aSearchName ); + USHORT nEndCount = mpModelPool ? mpModelPool->GetItemCount( XATTR_LINEEND ) : 0; + for( nSurrogate = 0; nSurrogate < nEndCount; nSurrogate++ ) + { + pItem = (NameOrIndex*)mpModelPool->GetItem( XATTR_LINEEND, nSurrogate); + if( pItem && pItem->GetName() == aSearchName ) + return sal_True; + } + + return sal_False; +} + +// XElementAccess +uno::Type SAL_CALL SvxUnoMarkerTable::getElementType( ) + throw( uno::RuntimeException ) +{ + return ::getCppuType((const drawing::PointSequence*)0); +} + +sal_Bool SAL_CALL SvxUnoMarkerTable::hasElements( ) + throw( uno::RuntimeException ) +{ + SolarMutexGuard aGuard; + + NameOrIndex *pItem; + + const USHORT nStartCount = mpModelPool ? mpModelPool->GetItemCount( XATTR_LINESTART ) : 0; + USHORT nSurrogate; + for( nSurrogate = 0; nSurrogate < nStartCount; nSurrogate++ ) + { + pItem = (NameOrIndex*)mpModelPool->GetItem( XATTR_LINESTART, nSurrogate); + if( pItem && pItem->GetName().Len() != 0 ) + return sal_True; + } + + const USHORT nEndCount = mpModelPool ? mpModelPool->GetItemCount( XATTR_LINEEND ) : 0; + for( nSurrogate = 0; nSurrogate < nEndCount; nSurrogate++ ) + { + pItem = (NameOrIndex*)mpModelPool->GetItem( XATTR_LINEEND, nSurrogate); + if( pItem && pItem->GetName().Len() != 0 ) + return sal_True; + } + + return sal_False; +} + +/** + * Create a hatchtable + */ +uno::Reference< uno::XInterface > SAL_CALL SvxUnoMarkerTable_createInstance( SdrModel* pModel ) +{ + return *new SvxUnoMarkerTable(pModel); +} + + + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |