2000-09-18 23:08:29 +00:00
/*************************************************************************
*
2008-04-10 15:22:20 +00:00
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER .
2000-09-18 23:08:29 +00:00
*
2008-04-10 15:22:20 +00:00
* Copyright 2008 by Sun Microsystems , Inc .
2000-09-18 23:08:29 +00:00
*
2008-04-10 15:22:20 +00:00
* OpenOffice . org - a multi - platform office productivity suite
2000-09-18 23:08:29 +00:00
*
2008-04-10 15:22:20 +00:00
* $ RCSfile : unosect . cxx , v $
2008-06-06 07:17:38 +00:00
* $ Revision : 1.60 $
2000-09-18 23:08:29 +00:00
*
2008-04-10 15:22:20 +00:00
* This file is part of OpenOffice . org .
2000-09-18 23:08:29 +00:00
*
2008-04-10 15:22:20 +00:00
* 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 .
2000-09-18 23:08:29 +00:00
*
2008-04-10 15:22:20 +00:00
* 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 ) .
2000-09-18 23:08:29 +00:00
*
2008-04-10 15:22:20 +00:00
* 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 .
2000-09-18 23:08:29 +00:00
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2006-09-16 21:00:35 +00:00
// MARKER(update_precomp.py): autogen include statement, do not remove
# include "precompiled_sw.hxx"
2000-09-18 23:08:29 +00:00
# include <com/sun/star/text/SectionFileLink.hpp>
# include <cmdid.h>
# include <hintids.hxx>
# include <svtools/urihelper.hxx>
# include <svx/brshitem.hxx>
2001-11-15 14:20:20 +00:00
# ifndef _SVX_XMLCNITEM_HXX
# include <svx/xmlcnitm.hxx>
# endif
2004-10-04 18:14:19 +00:00
# include <sfx2/linkmgr.hxx>
# include <sfx2/lnkbase.hxx>
2000-09-18 23:08:29 +00:00
# include <vos/mutex.hxx>
# include <vcl/svapp.hxx>
# include <fmtclds.hxx>
# include <unoobj.hxx>
2001-01-11 11:40:02 +00:00
# include <unoredline.hxx>
# include <redline.hxx>
2000-09-18 23:08:29 +00:00
# include <unomap.hxx>
# include <unocrsr.hxx>
# include <section.hxx>
# include <doc.hxx>
2005-01-11 11:23:26 +00:00
# ifndef _DOCSH_HXX
# include <docsh.hxx>
# endif
# include <sfx2/docfile.hxx>
2000-09-18 23:08:29 +00:00
# include <docary.hxx>
# include <swundo.hxx>
# include <hints.hxx>
2000-11-30 10:30:49 +00:00
# include <tox.hxx>
# include <unoidx.hxx>
# include <doctxm.hxx>
2001-02-16 09:27:07 +00:00
# include <fmtftntx.hxx>
2002-04-05 08:22:10 +00:00
# include <fmtclbl.hxx>
2001-10-16 11:04:24 +00:00
# ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPPP_
# include <com/sun/star/beans/PropertyAttribute.hpp>
# endif
2002-06-19 12:04:33 +00:00
# include <svx/frmdiritem.hxx>
2003-06-20 08:37:41 +00:00
/* #109700# */
# include <svx/lrspitem.hxx>
2000-09-18 23:08:29 +00:00
using namespace : : com : : sun : : star ;
using namespace : : com : : sun : : star : : lang ;
using namespace : : com : : sun : : star : : uno ;
using namespace : : com : : sun : : star : : text ;
using namespace : : com : : sun : : star : : container ;
using namespace : : com : : sun : : star : : beans ;
2008-03-12 11:34:04 +00:00
using : : rtl : : OUString ;
2000-09-18 23:08:29 +00:00
2006-01-31 17:33:31 +00:00
TYPEINIT1 ( SwXTextSectionClient , SwClient ) ;
/*-- 20.12.2005 09:56:33---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
SwXTextSectionClient : : SwXTextSectionClient (
SwSectionFmt & rFmt ,
SwXTextSection & rTextSection ,
uno : : Reference < text : : XTextSection > xSection ) :
SwClient ( & rFmt ) ,
m_pSection ( & rTextSection ) ,
m_xReference ( xSection )
{
m_pSection - > SetClient ( this ) ;
}
/*-- 20.12.2005 09:56:33---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
SwXTextSectionClient : : ~ SwXTextSectionClient ( )
{
uno : : Reference < text : : XTextSection > xSection ( m_xReference ) ;
if ( xSection . is ( ) )
{
m_pSection - > SetClient ( 0 ) ;
}
}
/*-- 20.12.2005 09:56:35---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
uno : : Reference < text : : XTextSection > SwXTextSectionClient : : GetXTextSection ( )
{
return uno : : Reference < text : : XTextSection > ( m_xReference ) ;
}
/*-- 29.12.2005 11:29:30---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/*SwXTextSection* SwXTextSectionClient::GetSwTextSection()
{
if ( m_xReference . is ( ) )
return m_pSection ; ;
} */
/*-- 10.12.98 14:42:52---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void SwXTextSectionClient : : Modify ( SfxPoolItem * pOld , SfxPoolItem * pNew )
{
if ( pOld & & pOld - > Which ( ) = = RES_REMOVE_UNO_OBJECT & &
( void * ) GetRegisteredIn ( ) = = ( ( SwPtrMsgPoolItem * ) pOld ) - > pObject )
( ( SwModify * ) GetRegisteredIn ( ) ) - > Remove ( this ) ;
else
ClientModify ( this , pOld , pNew ) ;
if ( ! GetRegisteredIn ( ) )
{
uno : : Reference < text : : XTextSection > xSection ( m_xReference ) ;
if ( xSection . is ( ) )
{
m_pSection - > SetClient ( 0 ) ;
m_pSection - > aLstnrCntnr . Disposing ( ) ;
m_xReference = uno : : Reference < text : : XTextSection > ( ) ;
Application : : PostUserEvent (
STATIC_LINK ( this , SwXTextSectionClient , RemoveSectionClient_Impl ) , this ) ;
}
}
}
/*-- 29.12.2005 13:04:57---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2007-09-27 08:39:55 +00:00
IMPL_STATIC_LINK_NOINSTANCE ( SwXTextSectionClient , RemoveSectionClient_Impl ,
2006-01-31 17:33:31 +00:00
SwXTextSectionClient * , pClient )
{
delete pClient ;
return 0 ;
}
/*-- 20.12.2005 09:56:36---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
uno : : Reference < text : : XTextSection > SwXTextSectionClient : : CreateXTextSection (
SwSectionFmt * pFmt , BOOL bIndexHeader )
{
SwXTextSection * pNew ;
uno : : Reference < text : : XTextSection > xSection = pNew = new SwXTextSection ( pFmt ! = 0 , bIndexHeader ) ;
if ( pFmt )
new SwXTextSectionClient ( * pFmt , * pNew , xSection ) ;
return xSection ;
}
/*-- 29.12.2005 10:23:37---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
SwXTextSectionClient * SwXTextSectionClient : : Create ( SwXTextSection & rSection ,
uno : : Reference < text : : XTextSection > xSection , SwSectionFmt & rFmt )
{
return new SwXTextSectionClient ( rFmt , rSection , xSection ) ;
}
2000-09-18 23:08:29 +00:00
/******************************************************************
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
struct SwTextSectionProperties_Impl
{
String sCondition ;
String sLinkFileName ;
String sSectionFilter ;
String sSectionRegion ;
2001-03-20 17:51:04 +00:00
uno : : Sequence < sal_Int8 > aPassword ;
2000-09-18 23:08:29 +00:00
SwFmtCol * pColItem ;
SvxBrushItem * pBrushItem ;
2001-02-16 09:27:07 +00:00
SwFmtFtnAtTxtEnd * pFtnItem ;
SwFmtEndAtTxtEnd * pEndItem ;
2001-11-15 14:20:20 +00:00
SvXMLAttrContainerItem * pXMLAttr ;
2002-04-05 08:22:10 +00:00
SwFmtNoBalancedColumns * pNoBalanceItem ;
2002-06-19 12:04:33 +00:00
SvxFrameDirectionItem * pFrameDirItem ;
2003-06-20 08:37:41 +00:00
SvxLRSpaceItem * pLRSpaceItem ; // #109700#
2000-09-18 23:08:29 +00:00
sal_Bool bDDE ;
sal_Bool bHidden ;
2002-04-26 11:59:12 +00:00
sal_Bool bCondHidden ;
2000-09-18 23:08:29 +00:00
sal_Bool bProtect ;
2004-11-16 09:23:59 +00:00
// --> FME 2004-06-22 #114856# edit in readonly sections
sal_Bool bEditInReadonly ;
// <--
2000-11-20 13:00:32 +00:00
sal_Bool bUpdateType ;
2000-09-18 23:08:29 +00:00
SwTextSectionProperties_Impl ( ) :
pColItem ( 0 ) ,
2000-11-20 13:00:32 +00:00
pBrushItem ( 0 ) ,
2001-02-16 09:27:07 +00:00
pFtnItem ( 0 ) ,
pEndItem ( 0 ) ,
2001-11-15 14:20:20 +00:00
pXMLAttr ( 0 ) ,
2002-04-05 08:22:10 +00:00
pNoBalanceItem ( 0 ) ,
2002-06-19 12:04:33 +00:00
pFrameDirItem ( 0 ) ,
2003-06-20 08:37:41 +00:00
pLRSpaceItem ( 0 ) , // #109700#
2007-09-27 08:39:55 +00:00
bDDE ( 0 ) ,
bHidden ( 0 ) ,
bCondHidden ( 0 ) ,
bProtect ( 0 ) ,
// --> FME 2004-06-22 #114856# edit in readonly sections
bEditInReadonly ( 0 ) ,
// <--
2000-11-20 13:00:32 +00:00
bUpdateType ( sal_True ) { }
2000-09-18 23:08:29 +00:00
~ SwTextSectionProperties_Impl ( )
{
delete pColItem ;
delete pBrushItem ;
2001-02-16 09:27:07 +00:00
delete pFtnItem ;
delete pEndItem ;
2001-11-15 14:20:20 +00:00
delete pXMLAttr ;
2002-04-05 08:22:10 +00:00
delete pNoBalanceItem ;
2002-06-19 12:04:33 +00:00
delete pFrameDirItem ;
2003-06-20 08:37:41 +00:00
delete pLRSpaceItem ; // #109700#
2000-09-18 23:08:29 +00:00
}
} ;
/* -----------------------------11.07.00 12:10--------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2007-06-05 16:36:13 +00:00
SwXTextSection * SwXTextSection : : GetImplementation ( uno : : Reference < XInterface > xRef )
2000-09-18 23:08:29 +00:00
{
uno : : Reference < lang : : XUnoTunnel > xTunnel ( xRef , uno : : UNO_QUERY ) ;
if ( xTunnel . is ( ) )
2007-09-27 08:39:55 +00:00
return reinterpret_cast < SwXTextSection * > (
sal : : static_int_cast < sal_IntPtr > ( xTunnel - > getSomething ( SwXTextSection : : getUnoTunnelId ( ) ) ) ) ;
2000-09-18 23:08:29 +00:00
return 0 ;
}
/* -----------------------------13.03.00 12:15--------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
const uno : : Sequence < sal_Int8 > & SwXTextSection : : getUnoTunnelId ( )
{
static uno : : Sequence < sal_Int8 > aSeq = : : CreateUnoTunnelId ( ) ;
return aSeq ;
}
/* -----------------------------10.03.00 18:04--------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
sal_Int64 SAL_CALL SwXTextSection : : getSomething ( const uno : : Sequence < sal_Int8 > & rId )
throw ( uno : : RuntimeException )
{
if ( rId . getLength ( ) = = 16
& & 0 = = rtl_compareMemory ( getUnoTunnelId ( ) . getConstArray ( ) ,
rId . getConstArray ( ) , 16 ) )
{
2007-09-27 08:39:55 +00:00
return sal : : static_int_cast < sal_Int64 > ( reinterpret_cast < sal_IntPtr > ( this ) ) ;
2000-09-18 23:08:29 +00:00
}
return 0 ;
}
/*-- 10.12.98 14:47:05---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2006-01-31 17:33:31 +00:00
SwXTextSection : : SwXTextSection ( sal_Bool bWithFormat , sal_Bool bIndexHeader ) :
// SwClient(pFmt),
2000-09-18 23:08:29 +00:00
aLstnrCntnr ( ( text : : XTextContent * ) this ) ,
2009-06-03 11:26:39 +00:00
m_pPropSet ( aSwMapProvider . GetPropertySet ( PROPERTY_MAP_SECTION ) ) ,
2006-01-31 17:33:31 +00:00
m_bIsDescriptor ( ! bWithFormat ) ,
2000-12-02 19:26:32 +00:00
m_bIndexHeader ( bIndexHeader ) ,
2007-09-27 08:39:55 +00:00
pProps ( bWithFormat ? 0 : new SwTextSectionProperties_Impl ( ) ) ,
m_pClient ( 0 )
2000-09-18 23:08:29 +00:00
{
}
/*-- 10.12.98 14:47:07---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
SwXTextSection : : ~ SwXTextSection ( )
{
2005-10-19 07:24:33 +00:00
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
2006-01-31 17:33:31 +00:00
delete m_pClient ;
2000-09-18 23:08:29 +00:00
delete pProps ;
}
/*-- 10.12.98 14:47:08---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
uno : : Reference < text : : XTextSection > SwXTextSection : : getParentSection ( void ) throw ( uno : : RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
uno : : Reference < text : : XTextSection > aRef ;
SwSectionFmt * pSectFmt = GetFmt ( ) ;
if ( pSectFmt )
{
SwSectionFmt * pParentFmt = pSectFmt - > GetParent ( ) ;
if ( pParentFmt )
{
2006-01-31 17:33:31 +00:00
SwXTextSectionClient * pClient = ( SwXTextSectionClient * ) SwClientIter ( * pParentFmt ) .
First ( TYPE ( SwXTextSectionClient ) ) ;
if ( pClient )
aRef = pClient - > GetXTextSection ( ) ;
2000-09-18 23:08:29 +00:00
else
2006-01-31 17:33:31 +00:00
aRef = SwXTextSectionClient : : CreateXTextSection ( pParentFmt ) ;
2000-09-18 23:08:29 +00:00
}
}
else
throw uno : : RuntimeException ( ) ;
return aRef ;
}
/*-- 10.12.98 14:47:08---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
uno : : Sequence < uno : : Reference < text : : XTextSection > > SwXTextSection : : getChildSections ( void )
throw ( uno : : RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
uno : : Sequence < uno : : Reference < text : : XTextSection > > aSeq ;
SwSectionFmt * pSectFmt = GetFmt ( ) ;
if ( pSectFmt )
{
SwSections aChildren ;
pSectFmt - > GetChildSections ( aChildren , SORTSECT_NOT , sal_False ) ;
aSeq . realloc ( aChildren . Count ( ) ) ;
uno : : Reference < text : : XTextSection > * pArray = aSeq . getArray ( ) ;
for ( sal_uInt16 i = 0 ; i < aChildren . Count ( ) ; i + + )
{
SwSectionFmt * pChild = aChildren . GetObject ( i ) - > GetFmt ( ) ;
2006-01-31 17:33:31 +00:00
SwXTextSectionClient * pClient = ( SwXTextSectionClient * ) SwClientIter ( * pChild ) .
First ( TYPE ( SwXTextSectionClient ) ) ;
if ( pClient )
pArray [ i ] = pClient - > GetXTextSection ( ) ;
2000-09-18 23:08:29 +00:00
else
2006-01-31 17:33:31 +00:00
pArray [ i ] = SwXTextSectionClient : : CreateXTextSection ( pChild ) ;
2000-09-18 23:08:29 +00:00
}
}
return aSeq ;
}
/* -----------------18.02.99 13:31-------------------
*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void SwXTextSection : : attachToRange ( const uno : : Reference < text : : XTextRange > & xTextRange )
throw ( lang : : IllegalArgumentException , uno : : RuntimeException )
{
if ( ! m_bIsDescriptor )
throw uno : : RuntimeException ( ) ;
uno : : Reference < lang : : XUnoTunnel > xRangeTunnel ( xTextRange , uno : : UNO_QUERY ) ;
SwXTextRange * pRange = 0 ;
2003-04-01 14:35:45 +00:00
OTextCursorHelper * pCursor = 0 ;
2000-09-18 23:08:29 +00:00
if ( xRangeTunnel . is ( ) )
{
2007-09-27 08:39:55 +00:00
pRange = reinterpret_cast < SwXTextRange * > (
sal : : static_int_cast < sal_IntPtr > ( xRangeTunnel - > getSomething ( SwXTextRange : : getUnoTunnelId ( ) ) ) ) ;
pCursor = reinterpret_cast < OTextCursorHelper * > (
sal : : static_int_cast < sal_IntPtr > ( xRangeTunnel - > getSomething ( OTextCursorHelper : : getUnoTunnelId ( ) ) ) ) ;
2000-09-18 23:08:29 +00:00
}
SwDoc * pDoc = pRange ? ( SwDoc * ) pRange - > GetDoc ( ) : pCursor ? ( SwDoc * ) pCursor - > GetDoc ( ) : 0 ;
if ( pDoc )
{
SwUnoInternalPaM aPam ( * pDoc ) ;
//das muss jetzt sal_True liefern
SwXTextRange : : XTextRangeToSwPaM ( aPam , xTextRange ) ;
UnoActionContext aCont ( pDoc ) ;
2006-08-14 15:56:49 +00:00
pDoc - > StartUndo ( UNDO_INSSECTION , NULL ) ;
2000-09-18 23:08:29 +00:00
SwSection * pRet = 0 ;
if ( ! m_sName . Len ( ) )
m_sName = C2S ( " TextSection " ) ;
2000-12-02 19:26:32 +00:00
SectionType eType = pProps - > bDDE ? DDE_LINK_SECTION :
2000-09-18 23:08:29 +00:00
pProps - > sLinkFileName . Len ( ) | | pProps - > sSectionRegion . Len ( ) ? FILE_LINK_SECTION :
2000-12-02 19:26:32 +00:00
CONTENT_SECTION ;
// index header section?
if ( m_bIndexHeader )
{
// caller wants an index header section, but will only
// give him one if a) we are inside an index, and b) said
// index doesn't yet have a header section.
const SwTOXBase * pBase = aPam . GetDoc ( ) - > GetCurTOX (
* aPam . Start ( ) ) ;
// are we inside an index?
if ( pBase )
{
// get all child sections
SwSections aSectionsArr ;
( ( SwTOXBaseSection * ) pBase ) - > GetFmt ( ) - >
GetChildSections ( aSectionsArr ) ;
// and search for current header section
sal_uInt16 nCount = aSectionsArr . Count ( ) ;
sal_Bool bHeaderPresent = sal_False ;
for ( sal_uInt16 i = 0 ; i < nCount ; i + + )
{
bHeaderPresent | =
( aSectionsArr [ i ] - > GetType ( ) = = TOX_HEADER_SECTION ) ;
}
if ( ! bHeaderPresent )
{
eType = TOX_HEADER_SECTION ;
}
}
}
SwSection aSect ( eType , pDoc - > GetUniqueSectionName ( & m_sName ) ) ;
2000-09-18 23:08:29 +00:00
aSect . SetCondition ( pProps - > sCondition ) ;
String sLinkName ( pProps - > sLinkFileName ) ;
2004-10-04 18:14:19 +00:00
sLinkName + = sfx2 : : cTokenSeperator ;
2000-09-18 23:08:29 +00:00
sLinkName + = pProps - > sSectionFilter ;
2004-10-04 18:14:19 +00:00
sLinkName + = sfx2 : : cTokenSeperator ;
2000-09-18 23:08:29 +00:00
sLinkName + = pProps - > sSectionRegion ;
aSect . SetLinkFileName ( sLinkName ) ;
aSect . SetHidden ( pProps - > bHidden ) ;
aSect . SetProtect ( pProps - > bProtect ) ;
2004-11-16 09:23:59 +00:00
// --> FME 2004-06-22 #114856# edit in readonly sections
aSect . SetEditInReadonly ( pProps - > bEditInReadonly ) ;
// <--
2000-09-18 23:08:29 +00:00
SfxItemSet aSet ( pDoc - > GetAttrPool ( ) ,
RES_COL , RES_COL ,
RES_BACKGROUND , RES_BACKGROUND ,
2002-06-19 12:04:33 +00:00
RES_FTN_AT_TXTEND , RES_FRAMEDIR ,
2003-06-20 08:37:41 +00:00
RES_LR_SPACE , RES_LR_SPACE , // #109700#
2001-11-15 14:20:20 +00:00
RES_UNKNOWNATR_CONTAINER , RES_UNKNOWNATR_CONTAINER ,
2000-09-18 23:08:29 +00:00
0 ) ;
if ( pProps - > pBrushItem )
aSet . Put ( * pProps - > pBrushItem ) ;
if ( pProps - > pColItem )
aSet . Put ( * pProps - > pColItem ) ;
2001-02-16 09:27:07 +00:00
if ( pProps - > pFtnItem )
aSet . Put ( * pProps - > pFtnItem ) ;
if ( pProps - > pEndItem )
aSet . Put ( * pProps - > pEndItem ) ;
2001-11-15 14:20:20 +00:00
if ( pProps - > pXMLAttr )
aSet . Put ( * pProps - > pXMLAttr ) ;
2002-04-05 08:22:10 +00:00
if ( pProps - > pNoBalanceItem )
aSet . Put ( * pProps - > pNoBalanceItem ) ;
2002-06-19 12:04:33 +00:00
if ( pProps - > pFrameDirItem )
aSet . Put ( * pProps - > pFrameDirItem ) ;
2003-06-20 08:37:41 +00:00
/* #109700# */
if ( pProps - > pLRSpaceItem )
aSet . Put ( * pProps - > pLRSpaceItem ) ;
2001-02-16 09:27:07 +00:00
2001-03-20 17:51:04 +00:00
// section password
if ( pProps - > aPassword . getLength ( ) > 0 )
aSect . SetPasswd ( pProps - > aPassword ) ;
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
pRet = pDoc - > InsertSwSection ( aPam , aSect , aSet . Count ( ) ? & aSet : 0 ) ;
2006-01-31 17:33:31 +00:00
// now create the client
m_refCount + + ;
// keep block to remove Reference before the refcount is decremented
{
uno : : Reference < text : : XTextSection > xSection ( this ) ;
m_pClient = SwXTextSectionClient : : Create ( * this , xSection , * pRet - > GetFmt ( ) ) ;
}
m_refCount - - ;
2000-11-20 13:00:32 +00:00
2002-04-26 11:59:12 +00:00
// #97450# XML import must hide sections depending on their old
// condition status
if ( pProps - > sCondition . Len ( ) ! = 0 )
pRet - > SetCondHidden ( pProps - > bCondHidden ) ;
2000-11-20 13:00:32 +00:00
// set update type if DDE link (and connect, if necessary)
if ( pProps - > bDDE )
{
2001-03-20 17:51:04 +00:00
if ( ! pRet - > IsConnected ( ) )
2000-11-20 13:00:32 +00:00
{
2001-03-20 17:51:04 +00:00
pRet - > CreateLink ( CREATE_CONNECT ) ;
2000-11-20 13:00:32 +00:00
}
2007-09-27 08:39:55 +00:00
pRet - > SetUpdateType ( static_cast < USHORT > ( pProps - > bUpdateType ?
sfx2 : : LINKUPDATE_ALWAYS : sfx2 : : LINKUPDATE_ONCALL ) ) ;
2000-11-20 13:00:32 +00:00
}
2000-09-18 23:08:29 +00:00
// Undo-Klammerung hier beenden
2006-08-14 15:56:49 +00:00
pDoc - > EndUndo ( UNDO_INSSECTION , NULL ) ;
2000-09-18 23:08:29 +00:00
DELETEZ ( pProps ) ;
m_bIsDescriptor = sal_False ;
}
else
throw lang : : IllegalArgumentException ( ) ;
}
/*-- 10.12.98 14:47:09---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void SwXTextSection : : attach ( const uno : : Reference < text : : XTextRange > & xTextRange )
throw ( lang : : IllegalArgumentException , uno : : RuntimeException )
{
2002-09-12 12:12:13 +00:00
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
attachToRange ( xTextRange ) ;
2000-09-18 23:08:29 +00:00
}
/*-- 10.12.98 14:47:09---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
uno : : Reference < text : : XTextRange > SwXTextSection : : getAnchor ( void ) throw ( uno : : RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
uno : : Reference < text : : XTextRange > xRet ;
SwSectionFmt * pSectFmt = GetFmt ( ) ;
if ( pSectFmt )
{
const SwSection * pSect ;
const SwNodeIndex * pIdx ;
if ( 0 ! = ( pSect = pSectFmt - > GetSection ( ) ) & &
0 ! = ( pIdx = pSectFmt - > GetCntnt ( ) . GetCntntIdx ( ) ) & &
pIdx - > GetNode ( ) . GetNodes ( ) . IsDocNodes ( ) )
{
SwPaM aPaM ( * pIdx ) ;
aPaM . Move ( fnMoveForward , fnGoCntnt ) ;
2002-08-21 09:30:45 +00:00
const SwEndNode * pEndNode = pIdx - > GetNode ( ) . EndOfSectionNode ( ) ;
SwPaM aEnd ( * pEndNode ) ;
aEnd . Move ( fnMoveBackward , fnGoCntnt ) ;
2001-01-12 15:15:41 +00:00
xRet = SwXTextRange : : CreateTextRangeFromPosition ( pSectFmt - > GetDoc ( ) ,
2002-08-21 09:30:45 +00:00
* aPaM . Start ( ) , aEnd . Start ( ) ) ;
2000-09-18 23:08:29 +00:00
}
}
return xRet ;
}
/*-- 10.12.98 14:47:09---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void SwXTextSection : : dispose ( void ) throw ( uno : : RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
SwSectionFmt * pSectFmt = GetFmt ( ) ;
if ( pSectFmt )
pSectFmt - > GetDoc ( ) - > DelSectionFmt ( pSectFmt ) ;
else
throw uno : : RuntimeException ( ) ;
}
/*-- 10.12.98 14:47:10---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2006-01-31 17:33:31 +00:00
void SwXTextSection : : addEventListener ( const uno : : Reference < lang : : XEventListener > & aListener )
throw ( uno : : RuntimeException )
2000-09-18 23:08:29 +00:00
{
2006-01-31 17:33:31 +00:00
if ( ! GetFmt ( ) )
2000-09-18 23:08:29 +00:00
throw uno : : RuntimeException ( ) ;
aLstnrCntnr . AddListener ( aListener ) ;
}
/*-- 10.12.98 14:47:10---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2006-01-31 17:33:31 +00:00
void SwXTextSection : : removeEventListener ( const uno : : Reference < lang : : XEventListener > & aListener )
throw ( uno : : RuntimeException )
2000-09-18 23:08:29 +00:00
{
2006-01-31 17:33:31 +00:00
if ( ! GetFmt ( ) | | ! aLstnrCntnr . RemoveListener ( aListener ) )
2000-09-18 23:08:29 +00:00
throw uno : : RuntimeException ( ) ;
}
/*-- 10.12.98 14:47:11---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
uno : : Reference < beans : : XPropertySetInfo > SwXTextSection : : getPropertySetInfo ( void ) throw ( uno : : RuntimeException )
{
2009-06-03 11:26:39 +00:00
static uno : : Reference < beans : : XPropertySetInfo > aRef = m_pPropSet - > getPropertySetInfo ( ) ;
2000-09-18 23:08:29 +00:00
return aRef ;
}
2001-02-12 11:54:49 +00:00
/* -----------------------------12.02.01 10:29--------------------------------
2000-09-18 23:08:29 +00:00
2001-02-12 11:54:49 +00:00
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
struct SwSectItemSet_Impl
{
SfxItemSet * pItemSet ;
SwSectItemSet_Impl ( ) :
pItemSet ( 0 ) { }
~ SwSectItemSet_Impl ( )
{ delete pItemSet ; }
} ;
/* -----------------------------12.02.01 10:45--------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2003-11-07 14:13:27 +00:00
void SAL_CALL SwXTextSection : : SetPropertyValues_Impl (
const uno : : Sequence < OUString > & rPropertyNames ,
const uno : : Sequence < Any > & rValues )
throw ( UnknownPropertyException , PropertyVetoException , IllegalArgumentException ,
WrappedTargetException , RuntimeException )
2000-09-18 23:08:29 +00:00
{
SwSectionFmt * pFmt = GetFmt ( ) ;
2001-02-12 11:54:49 +00:00
if ( rPropertyNames . getLength ( ) ! = rValues . getLength ( ) )
throw IllegalArgumentException ( ) ;
2000-09-18 23:08:29 +00:00
if ( pFmt | | m_bIsDescriptor )
{
SwSection aSection ( CONTENT_SECTION , aEmptyStr ) ;
SwSection * pSect = pFmt ? pFmt - > GetSection ( ) : 0 ;
if ( pFmt )
aSection = * pSect ;
2001-02-12 11:54:49 +00:00
const OUString * pPropertyNames = rPropertyNames . getConstArray ( ) ;
const Any * pValues = rValues . getConstArray ( ) ;
SwSectItemSet_Impl aItemSet ;
2001-02-16 15:43:25 +00:00
sal_Bool bLinkModeChanged = sal_False ;
2007-09-27 08:39:55 +00:00
sal_Bool bLinkMode = sal_False ;
2001-11-28 19:22:09 +00:00
for ( sal_Int16 nProperty = 0 ; nProperty < rPropertyNames . getLength ( ) ; nProperty + + )
2000-09-18 23:08:29 +00:00
{
2009-06-03 11:26:39 +00:00
const SfxItemPropertySimpleEntry * pEntry =
m_pPropSet - > getPropertyMap ( ) - > getByName ( pPropertyNames [ nProperty ] ) ;
if ( ! pEntry )
2003-11-07 14:13:27 +00:00
throw UnknownPropertyException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Unknown property: " ) ) + pPropertyNames [ nProperty ] , static_cast < cppu : : OWeakObject * > ( this ) ) ;
else
2000-09-18 23:08:29 +00:00
{
2009-06-03 11:26:39 +00:00
if ( pEntry - > nFlags & PropertyAttribute : : READONLY )
2002-08-14 08:44:44 +00:00
throw PropertyVetoException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Property is read-only: " ) ) + pPropertyNames [ nProperty ] , static_cast < cppu : : OWeakObject * > ( this ) ) ;
2009-06-03 11:26:39 +00:00
switch ( pEntry - > nWID )
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
case WID_SECT_CONDITION :
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
OUString uTmp ;
pValues [ nProperty ] > > = uTmp ;
if ( m_bIsDescriptor )
pProps - > sCondition = String ( uTmp ) ;
else
aSection . SetCondition ( uTmp ) ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
case WID_SECT_DDE_TYPE :
case WID_SECT_DDE_FILE :
case WID_SECT_DDE_ELEMENT :
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
OUString uTmp ;
pValues [ nProperty ] > > = uTmp ;
String sTmp ( uTmp ) ;
if ( m_bIsDescriptor )
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
if ( ! pProps - > bDDE )
{
2004-10-04 18:14:19 +00:00
pProps - > sLinkFileName = sfx2 : : cTokenSeperator ;
pProps - > sLinkFileName + = sfx2 : : cTokenSeperator ;
2001-02-12 11:54:49 +00:00
pProps - > bDDE = sal_True ;
}
2009-06-03 11:26:39 +00:00
pProps - > sLinkFileName . SetToken ( pEntry - > nWID - WID_SECT_DDE_TYPE , sfx2 : : cTokenSeperator , sTmp ) ;
2001-02-12 11:54:49 +00:00
}
else
{
String sLinkFileName ( aSection . GetLinkFileName ( ) ) ;
if ( aSection . GetType ( ) ! = DDE_LINK_SECTION )
{
2004-10-04 18:14:19 +00:00
sLinkFileName = sfx2 : : cTokenSeperator ;
sLinkFileName + = sfx2 : : cTokenSeperator ;
2001-02-12 11:54:49 +00:00
aSection . SetType ( DDE_LINK_SECTION ) ;
}
2009-06-03 11:26:39 +00:00
sLinkFileName . SetToken ( pEntry - > nWID - WID_SECT_DDE_TYPE , sfx2 : : cTokenSeperator , sTmp ) ;
2001-02-12 11:54:49 +00:00
aSection . SetLinkFileName ( sLinkFileName ) ;
2000-09-18 23:08:29 +00:00
}
}
2001-02-12 11:54:49 +00:00
break ;
case WID_SECT_DDE_AUTOUPDATE :
2000-11-20 13:00:32 +00:00
{
2001-02-12 11:54:49 +00:00
sal_Bool bVal = * ( sal_Bool * ) pValues [ nProperty ] . getValue ( ) ;
if ( m_bIsDescriptor )
{
pProps - > bUpdateType = bVal ;
}
else
{
2001-02-16 15:43:25 +00:00
bLinkModeChanged = sal_True ;
bLinkMode = bVal ;
2001-02-12 11:54:49 +00:00
}
2000-11-20 13:00:32 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
case WID_SECT_LINK :
2000-11-20 13:00:32 +00:00
{
2002-06-25 10:08:11 +00:00
text : : SectionFileLink aLink ;
if ( pValues [ nProperty ] > > = aLink )
2000-11-20 13:00:32 +00:00
{
2001-02-12 11:54:49 +00:00
if ( m_bIsDescriptor )
{
pProps - > bDDE = sal_False ;
2002-06-25 10:08:11 +00:00
pProps - > sLinkFileName = String ( aLink . FileURL ) ;
pProps - > sSectionFilter = String ( aLink . FilterName ) ;
2001-02-12 11:54:49 +00:00
}
else
{
if ( aSection . GetType ( ) ! = FILE_LINK_SECTION & &
2002-06-25 10:08:11 +00:00
aLink . FileURL . getLength ( ) )
2001-02-12 11:54:49 +00:00
aSection . SetType ( FILE_LINK_SECTION ) ;
2002-06-25 10:08:11 +00:00
String sFileName ;
if ( aLink . FileURL . getLength ( ) )
2005-01-11 11:23:26 +00:00
{
sFileName + = URIHelper : : SmartRel2Abs (
pFmt - > GetDoc ( ) - > GetDocShell ( ) - > GetMedium ( ) - > GetURLObject ( ) ,
aLink . FileURL ,
URIHelper : : GetMaybeFileHdl ( ) ) ;
}
2004-10-04 18:14:19 +00:00
sFileName + = sfx2 : : cTokenSeperator ;
2002-06-25 10:08:11 +00:00
sFileName + = String ( aLink . FilterName ) ;
2004-10-04 18:14:19 +00:00
sFileName + = sfx2 : : cTokenSeperator ;
sFileName + = aSection . GetLinkFileName ( ) . GetToken ( 2 , sfx2 : : cTokenSeperator ) ;
2001-02-12 11:54:49 +00:00
aSection . SetLinkFileName ( sFileName ) ;
if ( sFileName . Len ( ) < 3 )
aSection . SetType ( CONTENT_SECTION ) ;
}
2000-11-20 13:00:32 +00:00
}
2001-02-12 11:54:49 +00:00
else
throw lang : : IllegalArgumentException ( ) ;
2000-11-20 13:00:32 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
case WID_SECT_REGION :
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
OUString uTmp ;
pValues [ nProperty ] > > = uTmp ;
String sLink ( uTmp ) ;
2000-09-18 23:08:29 +00:00
if ( m_bIsDescriptor )
{
pProps - > bDDE = sal_False ;
2002-11-21 13:49:41 +00:00
pProps - > sSectionRegion = sLink ;
2000-09-18 23:08:29 +00:00
}
else
{
if ( aSection . GetType ( ) ! = FILE_LINK_SECTION & &
2001-02-12 11:54:49 +00:00
sLink . Len ( ) )
aSection . SetType ( FILE_LINK_SECTION ) ;
String sSectLink ( aSection . GetLinkFileName ( ) ) ;
2004-10-04 18:14:19 +00:00
while ( 3 < sSectLink . GetTokenCount ( sfx2 : : cTokenSeperator ) )
2001-02-12 11:54:49 +00:00
{
2004-10-04 18:14:19 +00:00
sSectLink + = sfx2 : : cTokenSeperator ;
2001-02-12 11:54:49 +00:00
}
2004-10-04 18:14:19 +00:00
sSectLink . SetToken ( 2 , sfx2 : : cTokenSeperator , sLink ) ;
2001-02-12 11:54:49 +00:00
aSection . SetLinkFileName ( sSectLink ) ;
2002-09-02 11:38:28 +00:00
if ( sSectLink . Len ( ) < 3 )
aSection . SetType ( CONTENT_SECTION ) ;
2000-09-18 23:08:29 +00:00
}
}
2001-02-12 11:54:49 +00:00
break ;
case WID_SECT_VISIBLE :
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
sal_Bool bVal = * ( sal_Bool * ) pValues [ nProperty ] . getValue ( ) ;
if ( m_bIsDescriptor )
pProps - > bHidden = ! bVal ;
else
aSection . SetHidden ( ! bVal ) ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
2002-04-26 11:59:12 +00:00
case WID_SECT_CURRENTLY_VISIBLE :
{
sal_Bool bVal = * ( sal_Bool * ) pValues [ nProperty ] . getValue ( ) ;
if ( m_bIsDescriptor )
pProps - > bCondHidden = ! bVal ;
else
if ( aSection . GetCondition ( ) . Len ( ) ! = 0 )
aSection . SetCondHidden ( ! bVal ) ;
}
break ;
2001-02-12 11:54:49 +00:00
case WID_SECT_PROTECTED :
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
sal_Bool bVal = * ( sal_Bool * ) pValues [ nProperty ] . getValue ( ) ;
if ( m_bIsDescriptor )
pProps - > bProtect = bVal ;
else
aSection . SetProtect ( bVal ) ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
2004-11-16 09:23:59 +00:00
// --> FME 2004-06-22 #114856# edit in readonly sections
case WID_SECT_EDIT_IN_READONLY :
{
sal_Bool bVal = * ( sal_Bool * ) pValues [ nProperty ] . getValue ( ) ;
if ( m_bIsDescriptor )
pProps - > bEditInReadonly = bVal ;
else
aSection . SetEditInReadonly ( bVal ) ;
}
// <--
break ;
2001-03-20 17:51:04 +00:00
case WID_SECT_PASSWORD :
{
uno : : Sequence < sal_Int8 > aSeq ;
pValues [ nProperty ] > > = aSeq ;
if ( m_bIsDescriptor )
pProps - > aPassword = aSeq ;
else
aSection . SetPasswd ( aSeq ) ;
}
break ;
2001-02-12 11:54:49 +00:00
default :
if ( pFmt )
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
const SfxItemSet & rOldAttrSet = pFmt - > GetAttrSet ( ) ;
aItemSet . pItemSet = new SfxItemSet ( * rOldAttrSet . GetPool ( ) ,
2009-06-03 11:26:39 +00:00
pEntry - > nWID , pEntry - > nWID , 0 ) ;
2001-02-12 11:54:49 +00:00
aItemSet . pItemSet - > Put ( rOldAttrSet ) ;
2009-06-03 11:26:39 +00:00
m_pPropSet - > setPropertyValue ( * pEntry , pValues [ nProperty ] , * aItemSet . pItemSet ) ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
else
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
SfxPoolItem * pPutItem = 0 ;
2009-06-03 11:26:39 +00:00
if ( RES_COL = = pEntry - > nWID )
2001-02-12 11:54:49 +00:00
{
if ( ! pProps - > pColItem )
pProps - > pColItem = new SwFmtCol ;
pPutItem = pProps - > pColItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_BACKGROUND = = pEntry - > nWID )
2001-02-12 11:54:49 +00:00
{
if ( ! pProps - > pBrushItem )
2007-05-10 15:02:50 +00:00
pProps - > pBrushItem = new SvxBrushItem ( RES_BACKGROUND ) ;
2001-02-12 11:54:49 +00:00
pPutItem = pProps - > pBrushItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_FTN_AT_TXTEND = = pEntry - > nWID )
2001-02-16 09:27:07 +00:00
{
if ( ! pProps - > pFtnItem )
pProps - > pFtnItem = new SwFmtFtnAtTxtEnd ;
pPutItem = pProps - > pFtnItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_END_AT_TXTEND = = pEntry - > nWID )
2001-02-16 09:27:07 +00:00
{
if ( ! pProps - > pEndItem )
pProps - > pEndItem = new SwFmtEndAtTxtEnd ;
pPutItem = pProps - > pEndItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_UNKNOWNATR_CONTAINER = = pEntry - > nWID )
2001-11-15 14:20:20 +00:00
{
if ( ! pProps - > pXMLAttr )
pProps - > pXMLAttr = new SvXMLAttrContainerItem ( RES_UNKNOWNATR_CONTAINER ) ;
pPutItem = pProps - > pXMLAttr ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_COLUMNBALANCE = = pEntry - > nWID )
2002-04-05 08:22:10 +00:00
{
if ( ! pProps - > pNoBalanceItem )
pProps - > pNoBalanceItem = new SwFmtNoBalancedColumns ( RES_COLUMNBALANCE ) ;
pPutItem = pProps - > pNoBalanceItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_FRAMEDIR = = pEntry - > nWID )
2002-06-19 12:04:33 +00:00
{
if ( ! pProps - > pFrameDirItem )
pProps - > pFrameDirItem = new SvxFrameDirectionItem ( FRMDIR_HORI_LEFT_TOP , RES_FRAMEDIR ) ;
pPutItem = pProps - > pFrameDirItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_LR_SPACE = = pEntry - > nWID )
2003-06-20 08:37:41 +00:00
{
// #109700#
if ( ! pProps - > pLRSpaceItem )
pProps - > pLRSpaceItem = new SvxLRSpaceItem ( RES_LR_SPACE ) ;
pPutItem = pProps - > pLRSpaceItem ;
}
2001-02-16 09:27:07 +00:00
if ( pPutItem )
2009-06-03 11:26:39 +00:00
pPutItem - > PutValue ( pValues [ nProperty ] , pEntry - > nMemberId ) ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
}
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
}
if ( pFmt )
{
SwDoc * pDoc = pFmt - > GetDoc ( ) ;
const SwSectionFmts & rFmts = pDoc - > GetSections ( ) ;
UnoActionContext aContext ( pDoc ) ;
for ( sal_uInt16 i = 0 ; i < rFmts . Count ( ) ; i + + )
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
if ( rFmts [ i ] - > GetSection ( ) - > GetName ( ) = = pSect - > GetName ( ) )
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
pDoc - > ChgSection ( i , aSection , aItemSet . pItemSet , pDoc - > IsInReading ( ) ) ;
2003-06-30 13:59:36 +00:00
{
// temporarily remove actions to allow cursor update
UnoActionRemoveContext aRemoveContext ( pDoc ) ;
}
2007-09-27 08:39:55 +00:00
//SwSection* pSect = pFmt->GetSection();
2001-02-16 15:43:25 +00:00
if ( bLinkModeChanged & & pSect - > GetType ( ) = = DDE_LINK_SECTION )
{
// set update type; needs an established link
if ( ! pSect - > IsConnected ( ) )
{
pSect - > CreateLink ( CREATE_CONNECT ) ;
}
2007-09-27 08:39:55 +00:00
pSect - > SetUpdateType ( static_cast < USHORT > ( bLinkMode ?
sfx2 : : LINKUPDATE_ALWAYS : sfx2 : : LINKUPDATE_ONCALL ) ) ;
2001-02-16 15:43:25 +00:00
}
2001-02-16 15:47:00 +00:00
// section found and processed: break from loop
break ;
2000-09-18 23:08:29 +00:00
}
}
}
}
else
throw uno : : RuntimeException ( ) ;
2003-11-07 14:13:27 +00:00
}
2001-02-12 11:54:49 +00:00
2003-11-07 14:13:27 +00:00
void SwXTextSection : : setPropertyValues (
const Sequence < : : rtl : : OUString > & rPropertyNames ,
const Sequence < Any > & rValues )
throw ( PropertyVetoException , lang : : IllegalArgumentException ,
lang : : WrappedTargetException , RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
// workaround for bad designed API
try
{
SetPropertyValues_Impl ( rPropertyNames , rValues ) ;
}
catch ( UnknownPropertyException & rException )
{
// wrap the original (here not allowed) exception in
// a WrappedTargetException that gets thrown instead.
WrappedTargetException aWExc ;
aWExc . TargetException < < = rException ;
throw aWExc ;
}
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
/*-- 10.12.98 14:47:11---------------------------------------------------
2000-09-18 23:08:29 +00:00
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2001-02-12 11:54:49 +00:00
void SwXTextSection : : setPropertyValue (
const OUString & rPropertyName , const uno : : Any & aValue )
throw ( beans : : UnknownPropertyException , beans : : PropertyVetoException ,
lang : : IllegalArgumentException , lang : : WrappedTargetException ,
uno : : RuntimeException )
2000-09-18 23:08:29 +00:00
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
2001-02-12 11:54:49 +00:00
Sequence < : : rtl : : OUString > aPropertyNames ( 1 ) ;
aPropertyNames . getArray ( ) [ 0 ] = rPropertyName ;
Sequence < Any > aValues ( 1 ) ;
aValues . getArray ( ) [ 0 ] = aValue ;
2003-11-07 14:13:27 +00:00
SetPropertyValues_Impl ( aPropertyNames , aValues ) ;
2001-02-12 11:54:49 +00:00
}
/* -----------------------------12.02.01 10:43--------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2003-11-07 14:13:27 +00:00
uno : : Sequence < Any > SAL_CALL SwXTextSection : : GetPropertyValues_Impl (
const uno : : Sequence < OUString > & rPropertyNames )
throw ( UnknownPropertyException , WrappedTargetException , RuntimeException )
2001-02-12 11:54:49 +00:00
{
Sequence < Any > aRet ( rPropertyNames . getLength ( ) ) ;
Any * pRet = aRet . getArray ( ) ;
2000-09-18 23:08:29 +00:00
SwSectionFmt * pFmt = GetFmt ( ) ;
if ( pFmt | | m_bIsDescriptor )
{
SwSection * pSect = pFmt ? pFmt - > GetSection ( ) : 0 ;
2001-02-12 11:54:49 +00:00
const OUString * pPropertyNames = rPropertyNames . getConstArray ( ) ;
for ( sal_Int32 nProperty = 0 ; nProperty < rPropertyNames . getLength ( ) ; nProperty + + )
2000-09-18 23:08:29 +00:00
{
2009-06-03 11:26:39 +00:00
const SfxItemPropertySimpleEntry * pEntry =
m_pPropSet - > getPropertyMap ( ) - > getByName ( pPropertyNames [ nProperty ] ) ;
if ( pEntry )
2000-09-18 23:08:29 +00:00
{
2009-06-03 11:26:39 +00:00
switch ( pEntry - > nWID )
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
case WID_SECT_CONDITION :
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
OUString uTmp (
m_bIsDescriptor ? pProps - > sCondition : pSect - > GetCondition ( ) ) ;
pRet [ nProperty ] < < = uTmp ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
case WID_SECT_DDE_TYPE :
case WID_SECT_DDE_FILE :
case WID_SECT_DDE_ELEMENT :
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
String sRet ;
if ( m_bIsDescriptor )
{
if ( pProps - > bDDE )
sRet = pProps - > sLinkFileName ;
}
else if ( DDE_LINK_SECTION = = pSect - > GetType ( ) )
{
sRet = pSect - > GetLinkFileName ( ) ;
}
2009-06-03 11:26:39 +00:00
sRet = sRet . GetToken ( pEntry - > nWID - WID_SECT_DDE_TYPE , sfx2 : : cTokenSeperator ) ;
2001-02-12 11:54:49 +00:00
pRet [ nProperty ] < < = OUString ( sRet ) ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
case WID_SECT_DDE_AUTOUPDATE :
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
// GetUpdateType() returns .._ALWAYS or .._ONCALL
2008-06-06 07:17:38 +00:00
if ( pSect & & pSect - > IsLinkType ( ) & & pSect - > IsConnected ( ) ) // lijian i73247
2001-10-11 15:20:02 +00:00
{
sal_Bool bTemp =
2004-10-04 18:14:19 +00:00
( pSect - > GetUpdateType ( ) = = sfx2 : : LINKUPDATE_ALWAYS ) ;
2001-10-11 15:20:02 +00:00
pRet [ nProperty ] . setValue ( & bTemp , : : getCppuBooleanType ( ) ) ;
}
2001-02-12 11:54:49 +00:00
}
break ;
case WID_SECT_LINK :
{
2001-05-11 09:03:31 +00:00
text : : SectionFileLink aLink ;
2001-02-12 11:54:49 +00:00
if ( m_bIsDescriptor )
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
if ( ! pProps - > bDDE )
{
aLink . FileURL = pProps - > sLinkFileName ;
aLink . FilterName = pProps - > sSectionFilter ;
}
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
else if ( FILE_LINK_SECTION = = pSect - > GetType ( ) )
{
String sRet ( pSect - > GetLinkFileName ( ) ) ;
2004-10-04 18:14:19 +00:00
aLink . FileURL = sRet . GetToken ( 0 , sfx2 : : cTokenSeperator ) ;
aLink . FilterName = sRet . GetToken ( 1 , sfx2 : : cTokenSeperator ) ;
2001-02-12 11:54:49 +00:00
}
pRet [ nProperty ] . setValue ( & aLink , : : getCppuType ( ( text : : SectionFileLink * ) 0 ) ) ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
case WID_SECT_REGION :
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
String sRet ;
if ( m_bIsDescriptor )
{
sRet = pProps - > sSectionRegion ;
}
else if ( FILE_LINK_SECTION = = pSect - > GetType ( ) )
2004-10-04 18:14:19 +00:00
sRet = pSect - > GetLinkFileName ( ) . GetToken ( 2 , sfx2 : : cTokenSeperator ) ;
2001-02-12 11:54:49 +00:00
pRet [ nProperty ] < < = OUString ( sRet ) ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
case WID_SECT_VISIBLE :
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
sal_Bool bTemp = m_bIsDescriptor ? ! pProps - > bHidden : ! pSect - > IsHidden ( ) ;
pRet [ nProperty ] . setValue ( & bTemp , : : getCppuBooleanType ( ) ) ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
2002-04-26 11:59:12 +00:00
case WID_SECT_CURRENTLY_VISIBLE :
{
sal_Bool bTmp = m_bIsDescriptor ? ! pProps - > bCondHidden : ! pSect - > IsCondHidden ( ) ;
pRet [ nProperty ] . setValue ( & bTmp , : : getCppuBooleanType ( ) ) ;
}
break ;
2001-02-12 11:54:49 +00:00
case WID_SECT_PROTECTED :
2000-11-30 10:30:49 +00:00
{
2001-02-12 11:54:49 +00:00
sal_Bool bTemp = m_bIsDescriptor ? pProps - > bProtect : pSect - > IsProtect ( ) ;
pRet [ nProperty ] . setValue ( & bTemp , : : getCppuBooleanType ( ) ) ;
2000-11-30 10:30:49 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
2004-11-16 09:23:59 +00:00
// --> FME 2004-06-22 #114856# edit in readonly sections
case WID_SECT_EDIT_IN_READONLY :
{
sal_Bool bTemp = m_bIsDescriptor ? pProps - > bEditInReadonly : pSect - > IsEditInReadonly ( ) ;
pRet [ nProperty ] . setValue ( & bTemp , : : getCppuBooleanType ( ) ) ;
}
break ;
// <--
2001-02-12 11:54:49 +00:00
case FN_PARAM_LINK_DISPLAY_NAME :
2000-11-30 10:30:49 +00:00
{
2001-02-12 11:54:49 +00:00
if ( pFmt )
pRet [ nProperty ] < < = OUString ( pFmt - > GetSection ( ) - > GetName ( ) ) ;
2000-11-30 10:30:49 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
case WID_SECT_DOCUMENT_INDEX :
2001-01-11 11:40:02 +00:00
{
2001-02-12 11:54:49 +00:00
// search enclosing index
SwSection * pEnclosingSection = pSect ;
while ( ( pEnclosingSection ! = NULL ) & &
( TOX_CONTENT_SECTION ! =
2001-05-11 09:03:31 +00:00
pEnclosingSection - > GetType ( ) ) )
2001-01-11 11:40:02 +00:00
{
2001-02-12 11:54:49 +00:00
pEnclosingSection = pEnclosingSection - > GetParent ( ) ;
2001-01-11 11:40:02 +00:00
}
2001-02-12 11:54:49 +00:00
if ( pEnclosingSection )
{
// convert section to TOXBase and get SwXDocumentIndex
SwTOXBaseSection * pTOXBaseSect =
PTR_CAST ( SwTOXBaseSection , pEnclosingSection ) ;
2007-06-05 16:36:13 +00:00
uno : : Reference < XDocumentIndex > xIndex =
2001-02-12 11:54:49 +00:00
SwXDocumentIndexes : : GetObject ( pTOXBaseSect ) ;
pRet [ nProperty ] < < = xIndex ;
}
// else: no enclosing index found -> empty return value
2001-01-11 11:40:02 +00:00
}
2001-02-12 11:54:49 +00:00
break ;
2001-02-20 12:46:04 +00:00
case WID_SECT_IS_GLOBAL_DOC_SECTION :
{
sal_Bool bRet = ( NULL = = pFmt ) ? sal_False :
2007-09-27 08:39:55 +00:00
static_cast < sal_Bool > ( NULL ! = pFmt - > GetGlobalDocSection ( ) ) ;
2001-02-20 12:46:04 +00:00
pRet [ nProperty ] . setValue ( & bRet , : : getCppuBooleanType ( ) ) ;
}
break ;
2001-02-12 11:54:49 +00:00
case FN_UNO_ANCHOR_TYPES :
case FN_UNO_TEXT_WRAP :
case FN_UNO_ANCHOR_TYPE :
2009-06-03 11:26:39 +00:00
SwXParagraph : : getDefaultTextContentValue ( pRet [ nProperty ] , OUString ( ) , pEntry - > nWID ) ;
2001-02-12 11:54:49 +00:00
break ;
case FN_UNO_REDLINE_NODE_START :
case FN_UNO_REDLINE_NODE_END :
2000-09-18 23:08:29 +00:00
{
2008-06-06 07:17:38 +00:00
if ( ! pFmt )
break ; // lijian i73247
2001-02-12 11:54:49 +00:00
SwNode * pSectNode = pFmt - > GetSectionNode ( ) ;
2009-06-03 11:26:39 +00:00
if ( FN_UNO_REDLINE_NODE_END = = pEntry - > nWID )
2001-02-12 11:54:49 +00:00
pSectNode = pSectNode - > EndOfSectionNode ( ) ;
const SwRedlineTbl & rRedTbl = pFmt - > GetDoc ( ) - > GetRedlineTbl ( ) ;
for ( USHORT nRed = 0 ; nRed < rRedTbl . Count ( ) ; nRed + + )
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
const SwRedline * pRedline = rRedTbl [ nRed ] ;
const SwNode * pRedPointNode = pRedline - > GetNode ( TRUE ) ;
const SwNode * pRedMarkNode = pRedline - > GetNode ( FALSE ) ;
if ( pRedPointNode = = pSectNode | | pRedMarkNode = = pSectNode )
{
2001-11-28 11:50:47 +00:00
const SwNode * pStartOfRedline = SwNodeIndex ( * pRedPointNode ) < = SwNodeIndex ( * pRedMarkNode ) ?
pRedPointNode : pRedMarkNode ;
BOOL bIsStart = pStartOfRedline = = pSectNode ;
pRet [ nProperty ] < < = SwXRedlinePortion : : CreateRedlineProperties ( * pRedline , bIsStart ) ;
2001-02-12 11:54:49 +00:00
break ;
}
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
}
break ;
2001-03-20 17:51:04 +00:00
case WID_SECT_PASSWORD :
{
pRet [ nProperty ] < < = m_bIsDescriptor ? pProps - > aPassword : pSect - > GetPasswd ( ) ;
}
break ;
2001-02-12 11:54:49 +00:00
default :
if ( pFmt )
2009-06-03 11:26:39 +00:00
m_pPropSet - > getPropertyValue ( * pEntry , pFmt - > GetAttrSet ( ) , pRet [ nProperty ] ) ;
2001-02-12 11:54:49 +00:00
else
2000-09-18 23:08:29 +00:00
{
2001-02-12 11:54:49 +00:00
const SfxPoolItem * pQueryItem = 0 ;
2009-06-03 11:26:39 +00:00
if ( RES_COL = = pEntry - > nWID )
2001-02-12 11:54:49 +00:00
{
if ( ! pProps - > pColItem )
pProps - > pColItem = new SwFmtCol ;
pQueryItem = pProps - > pColItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_BACKGROUND = = pEntry - > nWID )
2001-02-12 11:54:49 +00:00
{
if ( ! pProps - > pBrushItem )
2007-05-10 15:02:50 +00:00
pProps - > pBrushItem = new SvxBrushItem ( RES_BACKGROUND ) ;
2001-02-12 11:54:49 +00:00
pQueryItem = pProps - > pBrushItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_FTN_AT_TXTEND = = pEntry - > nWID )
2001-02-16 09:27:07 +00:00
{
if ( ! pProps - > pFtnItem )
pProps - > pFtnItem = new SwFmtFtnAtTxtEnd ;
pQueryItem = pProps - > pFtnItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_END_AT_TXTEND = = pEntry - > nWID )
2001-02-16 09:27:07 +00:00
{
if ( ! pProps - > pEndItem )
pProps - > pEndItem = new SwFmtEndAtTxtEnd ;
pQueryItem = pProps - > pEndItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_UNKNOWNATR_CONTAINER = = pEntry - > nWID )
2001-11-15 14:20:20 +00:00
{
if ( ! pProps - > pXMLAttr )
pProps - > pXMLAttr = new SvXMLAttrContainerItem ;
pQueryItem = pProps - > pXMLAttr ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_COLUMNBALANCE = = pEntry - > nWID )
2002-04-05 08:22:10 +00:00
{
if ( ! pProps - > pNoBalanceItem )
pProps - > pNoBalanceItem = new SwFmtNoBalancedColumns ;
pQueryItem = pProps - > pNoBalanceItem ;
}
2009-06-03 11:26:39 +00:00
else if ( RES_FRAMEDIR = = pEntry - > nWID )
2002-06-19 12:04:33 +00:00
{
if ( ! pProps - > pFrameDirItem )
2007-05-10 15:02:50 +00:00
pProps - > pFrameDirItem = new SvxFrameDirectionItem ( FRMDIR_ENVIRONMENT , RES_FRAMEDIR ) ;
2002-06-19 12:04:33 +00:00
pQueryItem = pProps - > pFrameDirItem ;
}
2003-06-20 08:37:41 +00:00
/* -> #109700# */
2009-06-03 11:26:39 +00:00
else if ( RES_LR_SPACE = = pEntry - > nWID )
2003-06-20 08:37:41 +00:00
{
if ( ! pProps - > pLRSpaceItem )
2007-05-10 15:02:50 +00:00
pProps - > pLRSpaceItem = new SvxLRSpaceItem ( RES_LR_SPACE ) ;
2003-06-20 08:37:41 +00:00
pQueryItem = pProps - > pLRSpaceItem ;
}
/* <- #109700# */
2001-02-16 09:27:07 +00:00
if ( pQueryItem )
2009-06-03 11:26:39 +00:00
pQueryItem - > QueryValue ( pRet [ nProperty ] , pEntry - > nMemberId ) ;
2000-09-18 23:08:29 +00:00
}
2001-02-12 11:54:49 +00:00
}
}
else
2003-11-07 14:13:27 +00:00
throw UnknownPropertyException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Unknown property: " ) ) + pPropertyNames [ nProperty ] , static_cast < cppu : : OWeakObject * > ( this ) ) ;
2000-09-18 23:08:29 +00:00
}
}
else
throw uno : : RuntimeException ( ) ;
return aRet ;
}
2003-11-07 14:13:27 +00:00
/* -----------------------------04.11.03 10:43--------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
Sequence < Any > SwXTextSection : : getPropertyValues (
const Sequence < : : rtl : : OUString > & rPropertyNames )
throw ( RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
Sequence < Any > aValues ;
// workaround for bad designed API
try
{
aValues = GetPropertyValues_Impl ( rPropertyNames ) ;
}
catch ( UnknownPropertyException & )
{
throw RuntimeException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Unknown property exception caught " ) ) , static_cast < cppu : : OWeakObject * > ( this ) ) ;
}
catch ( WrappedTargetException & )
{
throw RuntimeException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( " WrappedTargetException caught " ) ) , static_cast < cppu : : OWeakObject * > ( this ) ) ;
}
return aValues ;
}
2001-02-12 11:54:49 +00:00
/*-- 10.12.98 14:47:12---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
uno : : Any SwXTextSection : : getPropertyValue ( const OUString & rPropertyName )
throw ( beans : : UnknownPropertyException , lang : : WrappedTargetException , uno : : RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
Sequence < : : rtl : : OUString > aPropertyNames ( 1 ) ;
aPropertyNames . getArray ( ) [ 0 ] = rPropertyName ;
2003-11-07 14:13:27 +00:00
return GetPropertyValues_Impl ( aPropertyNames ) . getConstArray ( ) [ 0 ] ;
2001-02-12 11:54:49 +00:00
}
/* -----------------------------12.02.01 10:30--------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void SwXTextSection : : addPropertiesChangeListener (
2007-09-27 08:39:55 +00:00
const uno : : Sequence < : : rtl : : OUString > & /*aPropertyNames*/ ,
const uno : : Reference < beans : : XPropertiesChangeListener > & /*xListener*/ ) throw ( RuntimeException )
2001-02-12 11:54:49 +00:00
{
2008-11-10 15:06:12 +00:00
DBG_WARNING ( " not implemented " ) ;
2001-02-12 11:54:49 +00:00
}
/* -----------------------------12.02.01 10:30--------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void SwXTextSection : : removePropertiesChangeListener (
2007-09-27 08:39:55 +00:00
const uno : : Reference < beans : : XPropertiesChangeListener > & /*xListener*/ )
2001-02-12 11:54:49 +00:00
throw ( RuntimeException )
{
2008-11-10 15:06:12 +00:00
DBG_WARNING ( " not implemented " ) ;
2001-02-12 11:54:49 +00:00
}
/* -----------------------------12.02.01 10:30--------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void SwXTextSection : : firePropertiesChangeEvent (
2007-09-27 08:39:55 +00:00
const uno : : Sequence < : : rtl : : OUString > & /*aPropertyNames*/ ,
const uno : : Reference < beans : : XPropertiesChangeListener > & /*xListener*/ )
2001-02-12 11:54:49 +00:00
throw ( RuntimeException )
{
2008-11-10 15:06:12 +00:00
DBG_WARNING ( " not implemented " ) ;
2001-02-12 11:54:49 +00:00
}
2000-09-18 23:08:29 +00:00
/*-- 10.12.98 14:47:13---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2007-09-27 08:39:55 +00:00
void SwXTextSection : : addPropertyChangeListener ( const OUString & /*rPropertyName*/ , const uno : : Reference < beans : : XPropertyChangeListener > & /*xListener*/ ) throw ( beans : : UnknownPropertyException , lang : : WrappedTargetException , uno : : RuntimeException )
2000-09-18 23:08:29 +00:00
{
2008-11-10 15:06:12 +00:00
DBG_WARNING ( " not implemented " ) ;
2000-09-18 23:08:29 +00:00
}
/*-- 10.12.98 14:47:13---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2007-09-27 08:39:55 +00:00
void SwXTextSection : : removePropertyChangeListener ( const OUString & /*rPropertyName*/ , const uno : : Reference < beans : : XPropertyChangeListener > & /*xListener*/ ) throw ( beans : : UnknownPropertyException , lang : : WrappedTargetException , uno : : RuntimeException )
2000-09-18 23:08:29 +00:00
{
2008-11-10 15:06:12 +00:00
DBG_WARNING ( " not implemented " ) ;
2000-09-18 23:08:29 +00:00
}
/*-- 10.12.98 14:47:14---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2007-09-27 08:39:55 +00:00
void SwXTextSection : : addVetoableChangeListener ( const OUString & /*rPropertyName*/ , const uno : : Reference < beans : : XVetoableChangeListener > & /*xListener*/ ) throw ( beans : : UnknownPropertyException , lang : : WrappedTargetException , uno : : RuntimeException )
2000-09-18 23:08:29 +00:00
{
2008-11-10 15:06:12 +00:00
DBG_WARNING ( " not implemented " ) ;
2000-09-18 23:08:29 +00:00
}
/*-- 10.12.98 14:47:14---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2007-09-27 08:39:55 +00:00
void SwXTextSection : : removeVetoableChangeListener ( const OUString & /*rPropertyName*/ , const uno : : Reference < beans : : XVetoableChangeListener > & /*xListener*/ ) throw ( beans : : UnknownPropertyException , lang : : WrappedTargetException , uno : : RuntimeException )
2000-09-18 23:08:29 +00:00
{
2008-11-10 15:06:12 +00:00
DBG_WARNING ( " not implemented " ) ;
2000-09-18 23:08:29 +00:00
}
2000-11-08 11:42:49 +00:00
/*-- 08.11.00 10:47:55---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
PropertyState SwXTextSection : : getPropertyState ( const OUString & rPropertyName )
throw ( UnknownPropertyException , RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
Sequence < OUString > aNames ( 1 ) ;
aNames . getArray ( ) [ 0 ] = rPropertyName ;
return getPropertyStates ( aNames ) . getConstArray ( ) [ 0 ] ;
}
/*-- 08.11.00 10:47:55---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
Sequence < PropertyState > SwXTextSection : : getPropertyStates (
const Sequence < OUString > & rPropertyNames )
throw ( UnknownPropertyException , RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
Sequence < PropertyState > aStates ( rPropertyNames . getLength ( ) ) ;
SwSectionFmt * pFmt = GetFmt ( ) ;
if ( pFmt | | m_bIsDescriptor )
{
PropertyState * pStates = aStates . getArray ( ) ;
const OUString * pNames = rPropertyNames . getConstArray ( ) ;
for ( sal_Int32 i = 0 ; i < rPropertyNames . getLength ( ) ; i + + )
{
pStates [ i ] = PropertyState_DEFAULT_VALUE ;
2009-06-03 11:26:39 +00:00
const SfxItemPropertySimpleEntry * pEntry =
m_pPropSet - > getPropertyMap ( ) - > getByName ( pNames [ i ] ) ;
if ( ! pEntry )
2001-11-28 19:22:09 +00:00
throw UnknownPropertyException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Unknown property: " ) ) + pNames [ i ] , static_cast < cppu : : OWeakObject * > ( this ) ) ;
2009-06-03 11:26:39 +00:00
switch ( pEntry - > nWID )
2000-11-08 11:42:49 +00:00
{
case WID_SECT_CONDITION :
case WID_SECT_DDE_TYPE :
case WID_SECT_DDE_FILE :
case WID_SECT_DDE_ELEMENT :
2000-11-20 13:00:32 +00:00
case WID_SECT_DDE_AUTOUPDATE :
2000-11-08 11:42:49 +00:00
case WID_SECT_LINK :
case WID_SECT_REGION :
case WID_SECT_VISIBLE :
case WID_SECT_PROTECTED :
2004-11-16 09:23:59 +00:00
// --> FME 2004-06-22 #114856# edit in readonly sections
case WID_SECT_EDIT_IN_READONLY :
// <--
2000-11-08 11:42:49 +00:00
case FN_PARAM_LINK_DISPLAY_NAME :
2001-02-12 12:26:51 +00:00
case FN_UNO_ANCHOR_TYPES :
case FN_UNO_TEXT_WRAP :
case FN_UNO_ANCHOR_TYPE :
2000-11-08 11:42:49 +00:00
pStates [ i ] = PropertyState_DIRECT_VALUE ;
break ;
default :
if ( pFmt )
2009-06-03 11:26:39 +00:00
pStates [ i ] = m_pPropSet - > getPropertyState ( pNames [ i ] , pFmt - > GetAttrSet ( ) ) ;
2000-11-08 11:42:49 +00:00
else
{
2009-06-03 11:26:39 +00:00
if ( RES_COL = = pEntry - > nWID )
2000-11-08 11:42:49 +00:00
{
if ( ! pProps - > pColItem )
pStates [ i ] = PropertyState_DEFAULT_VALUE ;
else
pStates [ i ] = PropertyState_DIRECT_VALUE ;
}
2009-06-03 11:26:39 +00:00
else //if(RES_BACKGROUND == pEntry->nWID)
2000-11-08 11:42:49 +00:00
{
if ( ! pProps - > pBrushItem )
pStates [ i ] = PropertyState_DEFAULT_VALUE ;
else
pStates [ i ] = PropertyState_DIRECT_VALUE ;
}
}
}
}
}
else
throw RuntimeException ( ) ;
return aStates ;
}
/*-- 08.11.00 10:47:55---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void SwXTextSection : : setPropertyToDefault ( const OUString & rPropertyName )
throw ( UnknownPropertyException , RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
SwSectionFmt * pFmt = GetFmt ( ) ;
if ( pFmt | | m_bIsDescriptor )
{
SwSection aSection ( CONTENT_SECTION , aEmptyStr ) ;
SwSection * pSect = pFmt ? pFmt - > GetSection ( ) : 0 ;
if ( pFmt )
aSection = * pSect ;
2009-06-03 11:26:39 +00:00
const SfxItemPropertySimpleEntry * pEntry =
m_pPropSet - > getPropertyMap ( ) - > getByName ( rPropertyName ) ;
if ( ! pEntry )
2001-11-28 19:22:09 +00:00
throw UnknownPropertyException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Unknown property: " ) ) + rPropertyName , static_cast < cppu : : OWeakObject * > ( this ) ) ;
2009-06-03 11:26:39 +00:00
if ( pEntry - > nFlags & PropertyAttribute : : READONLY )
2004-08-11 14:43:25 +00:00
throw RuntimeException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( " setPropertyToDefault: property is read-only: " ) ) + rPropertyName , static_cast < cppu : : OWeakObject * > ( this ) ) ;
2000-11-08 11:42:49 +00:00
SfxItemSet * pNewAttrSet = 0 ;
2009-06-03 11:26:39 +00:00
switch ( pEntry - > nWID )
2000-11-08 11:42:49 +00:00
{
case WID_SECT_CONDITION :
{
if ( m_bIsDescriptor )
pProps - > sCondition = aEmptyStr ;
else
aSection . SetCondition ( aEmptyStr ) ;
}
break ;
case WID_SECT_DDE_TYPE :
case WID_SECT_DDE_FILE :
case WID_SECT_DDE_ELEMENT :
case WID_SECT_LINK :
case WID_SECT_REGION :
aSection . SetType ( CONTENT_SECTION ) ;
break ;
2000-11-20 13:00:32 +00:00
case WID_SECT_DDE_AUTOUPDATE :
2004-10-04 18:14:19 +00:00
aSection . SetUpdateType ( sfx2 : : LINKUPDATE_ALWAYS ) ;
2000-11-20 13:00:32 +00:00
break ;
2000-11-08 11:42:49 +00:00
case WID_SECT_VISIBLE :
{
if ( m_bIsDescriptor )
pProps - > bHidden = FALSE ;
else
aSection . SetHidden ( FALSE ) ;
}
break ;
case WID_SECT_PROTECTED :
{
if ( m_bIsDescriptor )
pProps - > bProtect = FALSE ;
else
aSection . SetProtect ( FALSE ) ;
}
break ;
2004-11-16 09:23:59 +00:00
// --> FME 2004-06-22 #114856# edit in readonly sections
case WID_SECT_EDIT_IN_READONLY :
{
if ( m_bIsDescriptor )
pProps - > bEditInReadonly = FALSE ;
else
aSection . SetEditInReadonly ( FALSE ) ;
}
break ;
// <--
2001-02-12 12:26:51 +00:00
case FN_UNO_ANCHOR_TYPES :
case FN_UNO_TEXT_WRAP :
case FN_UNO_ANCHOR_TYPE :
break ;
2000-11-08 11:42:49 +00:00
default :
2009-06-03 11:26:39 +00:00
if ( pEntry - > nWID < = SFX_WHICH_MAX )
2000-11-08 11:42:49 +00:00
{
2001-02-27 08:25:29 +00:00
if ( pFmt )
{
const SfxItemSet & rOldAttrSet = pFmt - > GetAttrSet ( ) ;
pNewAttrSet = new SfxItemSet ( * rOldAttrSet . GetPool ( ) ,
2009-06-03 11:26:39 +00:00
pEntry - > nWID , pEntry - > nWID , 0 ) ;
pNewAttrSet - > ClearItem ( pEntry - > nWID ) ;
2001-02-27 08:25:29 +00:00
}
else
{
2009-06-03 11:26:39 +00:00
if ( RES_COL = = pEntry - > nWID )
2001-02-27 08:25:29 +00:00
DELETEZ ( pProps - > pColItem ) ;
2009-06-03 11:26:39 +00:00
else if ( RES_BACKGROUND = = pEntry - > nWID )
2001-02-27 08:25:29 +00:00
DELETEZ ( pProps - > pBrushItem ) ;
}
2000-11-08 11:42:49 +00:00
}
}
if ( pFmt )
{
SwDoc * pDoc = pFmt - > GetDoc ( ) ;
const SwSectionFmts & rFmts = pDoc - > GetSections ( ) ;
UnoActionContext aContext ( pDoc ) ;
for ( sal_uInt16 i = 0 ; i < rFmts . Count ( ) ; i + + )
{
if ( rFmts [ i ] - > GetSection ( ) - > GetName ( ) = = pSect - > GetName ( ) )
{
pDoc - > ChgSection ( i , aSection , pNewAttrSet , pDoc - > IsInReading ( ) ) ;
2003-06-30 13:59:36 +00:00
{
// temporarily remove actions to allow cursor update
UnoActionRemoveContext aRemoveContext ( pDoc ) ;
}
2000-11-08 11:42:49 +00:00
break ;
}
}
delete pNewAttrSet ;
}
}
else
throw RuntimeException ( ) ;
}
/*-- 08.11.00 10:47:56---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
Any SwXTextSection : : getPropertyDefault ( const OUString & rPropertyName )
throw ( UnknownPropertyException , WrappedTargetException , RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
uno : : Any aRet ;
SwSectionFmt * pFmt = GetFmt ( ) ;
2009-06-03 11:26:39 +00:00
const SfxItemPropertySimpleEntry * pEntry =
m_pPropSet - > getPropertyMap ( ) - > getByName ( rPropertyName ) ;
if ( ! pEntry )
2001-11-28 19:22:09 +00:00
throw UnknownPropertyException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( " Unknown property: " ) ) + rPropertyName , static_cast < cppu : : OWeakObject * > ( this ) ) ;
2001-10-16 11:04:24 +00:00
2009-06-03 11:26:39 +00:00
switch ( pEntry - > nWID )
2000-11-08 11:42:49 +00:00
{
case WID_SECT_CONDITION :
case WID_SECT_DDE_TYPE :
case WID_SECT_DDE_FILE :
case WID_SECT_DDE_ELEMENT :
case WID_SECT_REGION :
case FN_PARAM_LINK_DISPLAY_NAME :
aRet < < = OUString ( ) ;
break ;
case WID_SECT_LINK :
aRet < < = SectionFileLink ( ) ;
break ;
2000-11-20 13:00:32 +00:00
case WID_SECT_DDE_AUTOUPDATE :
2000-11-08 11:42:49 +00:00
case WID_SECT_VISIBLE :
{
sal_Bool bTemp = TRUE ;
aRet . setValue ( & bTemp , : : getCppuBooleanType ( ) ) ;
}
break ;
case WID_SECT_PROTECTED :
2004-11-16 09:23:59 +00:00
// --> FME 2004-06-22 #114856# edit in readonly sections
case WID_SECT_EDIT_IN_READONLY :
// <--
2000-11-08 11:42:49 +00:00
{
sal_Bool bTemp = FALSE ;
aRet . setValue ( & bTemp , : : getCppuBooleanType ( ) ) ;
}
break ;
2001-02-12 12:26:51 +00:00
case FN_UNO_ANCHOR_TYPES :
case FN_UNO_TEXT_WRAP :
case FN_UNO_ANCHOR_TYPE :
2009-06-03 11:26:39 +00:00
SwXParagraph : : getDefaultTextContentValue ( aRet , OUString ( ) , pEntry - > nWID ) ;
2001-02-12 12:26:51 +00:00
break ;
2000-11-08 11:42:49 +00:00
default :
2009-06-03 11:26:39 +00:00
if ( pFmt & & pEntry - > nWID < = SFX_WHICH_MAX )
2000-11-08 11:42:49 +00:00
{
SwDoc * pDoc = pFmt - > GetDoc ( ) ;
const SfxPoolItem & rDefItem =
2009-06-03 11:26:39 +00:00
pDoc - > GetAttrPool ( ) . GetDefaultItem ( pEntry - > nWID ) ;
rDefItem . QueryValue ( aRet , pEntry - > nMemberId ) ;
2000-11-08 11:42:49 +00:00
}
}
return aRet ;
}
2000-09-18 23:08:29 +00:00
/*-- 10.12.98 14:47:15---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
OUString SwXTextSection : : getName ( void ) throw ( uno : : RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
String sRet ;
const SwSectionFmt * pFmt = GetFmt ( ) ;
if ( pFmt )
sRet = pFmt - > GetSection ( ) - > GetName ( ) ;
else if ( m_bIsDescriptor )
sRet = m_sName ;
else
throw uno : : RuntimeException ( ) ;
return sRet ;
}
/*-- 10.12.98 14:47:16---------------------------------------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
void SwXTextSection : : setName ( const OUString & rName ) throw ( uno : : RuntimeException )
{
vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
SwSectionFmt * pFmt = GetFmt ( ) ;
if ( pFmt )
{
SwSection aSection ( CONTENT_SECTION , aEmptyStr ) ;
SwSection * pSect = pFmt - > GetSection ( ) ;
aSection = * pSect ;
String sNewName ( rName ) ;
aSection . SetName ( sNewName ) ;
const SwSectionFmts & rFmts = pFmt - > GetDoc ( ) - > GetSections ( ) ;
sal_uInt16 nApplyPos = USHRT_MAX ;
for ( sal_uInt16 i = 0 ; i < rFmts . Count ( ) ; i + + )
{
if ( rFmts [ i ] - > GetSection ( ) = = pSect )
nApplyPos = i ;
else if ( sNewName = = rFmts [ i ] - > GetSection ( ) - > GetName ( ) )
throw uno : : RuntimeException ( ) ;
}
if ( nApplyPos ! = USHRT_MAX )
{
2003-06-30 13:59:36 +00:00
{
UnoActionContext aContext ( pFmt - > GetDoc ( ) ) ;
pFmt - > GetDoc ( ) - > ChgSection ( nApplyPos , aSection ) ;
}
{
// temporarily remove actions to allow cursor update
UnoActionRemoveContext aRemoveContext ( pFmt - > GetDoc ( ) ) ;
}
2000-09-18 23:08:29 +00:00
}
}
else if ( m_bIsDescriptor )
m_sName = String ( rName ) ;
else
throw uno : : RuntimeException ( ) ;
}
/* -----------------02.11.99 11:30-------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
OUString SwXTextSection : : getImplementationName ( void ) throw ( uno : : RuntimeException )
{
return C2U ( " SwXTextSection " ) ;
}
/* -----------------02.11.99 11:30-------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
sal_Bool SwXTextSection : : supportsService ( const OUString & rServiceName ) throw ( uno : : RuntimeException )
{
2000-10-09 09:37:01 +00:00
return ! rServiceName . compareToAscii ( " com.sun.star.text.TextSection " ) | |
! rServiceName . compareToAscii ( " com.sun.star.document.LinkTarget " ) | |
! rServiceName . compareToAscii ( " com.sun.star.text.TextContent " ) ;
2000-09-18 23:08:29 +00:00
}
/* -----------------02.11.99 11:30-------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
uno : : Sequence < OUString > SwXTextSection : : getSupportedServiceNames ( void ) throw ( uno : : RuntimeException )
{
2000-10-09 09:37:01 +00:00
uno : : Sequence < OUString > aRet ( 3 ) ;
2000-09-18 23:08:29 +00:00
OUString * pArr = aRet . getArray ( ) ;
pArr [ 0 ] = C2U ( " com.sun.star.text.TextSection " ) ;
pArr [ 1 ] = C2U ( " com.sun.star.document.LinkTarget " ) ;
2000-10-09 09:37:01 +00:00
pArr [ 2 ] = C2U ( " com.sun.star.text.TextContent " ) ;
2000-09-18 23:08:29 +00:00
return aRet ;
}
2006-01-31 17:33:31 +00:00
/*-- 20.12.2005 10:27:33---------------------------------------------------
2000-09-18 23:08:29 +00:00
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
2006-01-31 17:33:31 +00:00
SwSectionFmt * SwXTextSection : : GetFmt ( ) const
2000-09-18 23:08:29 +00:00
{
2006-01-31 17:33:31 +00:00
return m_pClient ?
const_cast < SwSectionFmt * > ( static_cast < const SwSectionFmt * > ( m_pClient - > GetRegisteredIn ( ) ) )
: 0 ;
2000-09-18 23:08:29 +00:00
}