summaryrefslogtreecommitdiff
path: root/binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx')
-rw-r--r--binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx792
1 files changed, 0 insertions, 792 deletions
diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx
deleted file mode 100644
index 4c6dfa2b29a7..000000000000
--- a/binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx
+++ /dev/null
@@ -1,792 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <rtl/ustrbuf.hxx>
-#include <comphelper/classids.hxx>
-#include <bf_so3/embobj.hxx>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
-#include <bf_xmloff/prstylei.hxx>
-#include <bf_xmloff/maptype.hxx>
-#include <bf_xmloff/xmlprmap.hxx>
-#include <bf_xmloff/txtprmap.hxx>
-#include <bf_xmloff/i18nmap.hxx>
-
-#include <errhdl.hxx>
-
-#include "unocrsr.hxx"
-#include "unoobj.hxx"
-#include "unoframe.hxx"
-
-#include <horiornt.hxx>
-
-#include "doc.hxx"
-#include "unocoll.hxx"
-#include <sw3io.hxx>
-#include <fmtfsize.hxx>
-#include <fmtanchr.hxx>
-
-#include "xmlimp.hxx"
-#include "xmltbli.hxx"
-#include "xmltexti.hxx"
-#include "XMLRedlineImportHelper.hxx"
-#include <bf_xmloff/XMLFilterServiceNames.h>
-
-#include <SwAppletImpl.hxx>
-#include <ndole.hxx>
-
-#include <ndnotxt.hxx>
-
-#include <bf_sfx2/frmdescr.hxx>
-
-// for locking SolarMutex: svapp + mutex
-#include <vcl/svapp.hxx>
-
-#include <osl/mutex.hxx>
-#include "bf_so3/staticbaseurl.hxx"
-namespace binfilter {
-
-
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::text;
-using namespace ::com::sun::star::frame;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::xml::sax;
-
-using rtl::OUString;
-using rtl::OUStringBuffer;
-
-
-struct XMLServiceMapEntry_Impl
-{
- const sal_Char *sFilterService;
- sal_Int32 nFilterServiceLen;
-
- sal_uInt32 n1;
- sal_uInt16 n2, n3;
- sal_uInt8 n4, n5, n6, n7, n8, n9, n10, n11;
-};
-
-#define SERVICE_MAP_ENTRY( app, s ) \
- { XML_IMPORT_FILTER_##app, sizeof(XML_IMPORT_FILTER_##app)-1, \
- BF_SO3_##s##_CLASSID }
-
-const XMLServiceMapEntry_Impl aServiceMap[] =
-{
- SERVICE_MAP_ENTRY( WRITER, SW ),
- SERVICE_MAP_ENTRY( CALC, SC ),
- SERVICE_MAP_ENTRY( DRAW, SDRAW ),
- SERVICE_MAP_ENTRY( IMPRESS, SIMPRESS ),
- SERVICE_MAP_ENTRY( CHART, SCH ),
- SERVICE_MAP_ENTRY( MATH, SM ),
- { 0, 0, 0, 0 }
-};
-static void lcl_putHeightAndWidth ( SfxItemSet &rItemSet,
- sal_Int32 nHeight, sal_Int32 nWidth,
- long *pTwipHeight=0, long *pTwipWidth=0 )
-{
- if( nWidth > 0 && nHeight > 0 )
- {
- nWidth = MM100_TO_TWIP( nWidth );
- if( nWidth < MINFLY )
- nWidth = MINFLY;
- nHeight = MM100_TO_TWIP( nHeight );
- if( nHeight < MINFLY )
- nHeight = MINFLY;
- rItemSet.Put( SwFmtFrmSize( ATT_FIX_SIZE, nWidth, nHeight ) );
- }
-
- SwFmtAnchor aAnchor( FLY_AUTO_CNTNT );
- rItemSet.Put( aAnchor );
-
- if( pTwipWidth )
- *pTwipWidth = nWidth;
- if( pTwipHeight )
- *pTwipHeight = nHeight;
-}
-
-SwXMLTextImportHelper::SwXMLTextImportHelper(
- const Reference < XModel>& rModel,
- SvXMLImport& rImport,
- const Reference<XPropertySet> & rInfoSet,
- sal_Bool bInsertM, sal_Bool bStylesOnlyM, sal_Bool bProgress,
- sal_Bool bBlockM, sal_Bool bOrganizerM,
- sal_Bool bPreserveRedlineMode ) :
- XMLTextImportHelper( rModel, rImport, bInsertM, bStylesOnlyM, bProgress,
- bBlockM, bOrganizerM ),
- pRedlineHelper( NULL )
-{
- Reference<XPropertySet> xDocPropSet( rModel, UNO_QUERY );
- pRedlineHelper = new XMLRedlineImportHelper(
- bInsertM || bBlockM, xDocPropSet, rInfoSet );
-}
-
-SwXMLTextImportHelper::~SwXMLTextImportHelper()
-{
- // #90463# the redline helper destructor sets properties on the document
- // and may through an exception while doing so... catch this
- try
- {
- delete pRedlineHelper;
- }
- catch ( const RuntimeException& )
- {
- // ignore
- }
-}
-
-SvXMLImportContext *SwXMLTextImportHelper::CreateTableChildContext(
- SvXMLImport& rImport,
- sal_uInt16 nPrefix, const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
-{
- return new SwXMLTableContext(
- (SwXMLImport&)rImport, nPrefix, rLocalName, xAttrList );
-}
-
-sal_Bool SwXMLTextImportHelper::IsInHeaderFooter() const
-{
- Reference<XUnoTunnel> xCrsrTunnel(
- ((SwXMLTextImportHelper *)this)->GetCursor(), UNO_QUERY );
- ASSERT( xCrsrTunnel.is(), "missing XUnoTunnel for Cursor" );
- OTextCursorHelper *pTxtCrsr =
- (OTextCursorHelper*)xCrsrTunnel->getSomething(
- OTextCursorHelper::getUnoTunnelId() );
- ASSERT( pTxtCrsr, "SwXTextCursor missing" );
- SwDoc *pDoc = pTxtCrsr->GetDoc();
-
- return pDoc->IsInHeaderFooter( pTxtCrsr->GetPaM()->GetPoint()->nNode );
-}
-
-SwOLENode *lcl_GetOLENode( const SwFrmFmt *pFrmFmt )
-{
- SwOLENode *pOLENd = 0;
- if( pFrmFmt )
- {
- const SwFmtCntnt& rCntnt = pFrmFmt->GetCntnt();
- const SwNodeIndex *pNdIdx = rCntnt.GetCntntIdx();
- pOLENd = pNdIdx->GetNodes()[pNdIdx->GetIndex() + 1]->GetOLENode();
- }
- ASSERT( pOLENd, "Where is the OLE node" );
- return pOLENd;
-}
-
-Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertOLEObject(
- SvXMLImport& rImport,
- const OUString& rHRef,
- const OUString& rStyleName,
- const OUString& rTblName,
- sal_Int32 nWidth, sal_Int32 nHeight )
-{
- // this method will modify the document directly -> lock SolarMutex
- SolarMutexGuard aGuard;
-
- Reference < XPropertySet > xPropSet;
-
- sal_Int32 nPos = rHRef.indexOf( ':' );
- if( -1 == nPos )
- return xPropSet;
-
- OUString aObjName( rHRef.copy( nPos+1) );
-
- if( !aObjName.getLength() )
- return xPropSet;
-
- Reference<XUnoTunnel> xCrsrTunnel( GetCursor(), UNO_QUERY );
- ASSERT( xCrsrTunnel.is(), "missing XUnoTunnel for Cursor" );
- OTextCursorHelper *pTxtCrsr =
- (OTextCursorHelper*)xCrsrTunnel->getSomething(
- OTextCursorHelper::getUnoTunnelId() );
- ASSERT( pTxtCrsr, "SwXTextCursor missing" );
- SwDoc *pDoc = pTxtCrsr->GetDoc();
-
- SfxItemSet aItemSet( pDoc->GetAttrPool(), RES_FRMATR_BEGIN,
- RES_FRMATR_END );
- Size aTwipSize( 0, 0 );
- Rectangle aVisArea( 0, 0, nWidth, nHeight );
- lcl_putHeightAndWidth( aItemSet, nHeight, nWidth,
- &aTwipSize.Height(), &aTwipSize.Width() );
-
- SwFrmFmt *pFrmFmt = 0;
- SwOLENode *pOLENd = 0;
- if( rHRef.copy( 0, nPos ).equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("vnd.sun.star.ServiceName") ) )
- {
- sal_Bool bInsert = sal_False;
- SvGlobalName aClassName;
- const XMLServiceMapEntry_Impl *pEntry = aServiceMap;
- while( pEntry->sFilterService )
- {
- if( aObjName.equalsAsciiL( pEntry->sFilterService,
- pEntry->nFilterServiceLen ) )
- {
- aClassName = SvGlobalName( pEntry->n1, pEntry->n2,
- pEntry->n3, pEntry->n4,
- pEntry->n5, pEntry->n6,
- pEntry->n7, pEntry->n8,
- pEntry->n9, pEntry->n10,
- pEntry->n11 );
- bInsert = sal_True;
- break;
- }
- pEntry++;
- }
-
- if( bInsert )
- {
- SvStorageRef aStor = new SvStorage( aEmptyStr );
- SvInPlaceObjectRef xIPObj =
- &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(
- aClassName, aStor );
- if( xIPObj.Is() )
- {
- aVisArea.SetSize( aTwipSize );
- aVisArea = OutputDevice::LogicToLogic(
- aVisArea, MAP_TWIP, xIPObj->GetMapUnit() );
- xIPObj->SetVisArea( aVisArea );
- }
- pFrmFmt = pDoc->Insert( *pTxtCrsr->GetPaM(), xIPObj, &aItemSet );
-
- pOLENd = lcl_GetOLENode( pFrmFmt );
- if( pOLENd )
- aObjName = pOLENd->GetOLEObj().GetName();
- }
- }
- else
- {
- String aName( aObjName );
- pFrmFmt = pDoc->InsertOLE( *pTxtCrsr->GetPaM(), aName, &aItemSet );
- aObjName = aName;
- }
-
- if( !pFrmFmt )
- return xPropSet;
-
- if( IsInsertMode() )
- {
- if( !pOLENd )
- pOLENd = lcl_GetOLENode( pFrmFmt );
- if( pOLENd )
- pOLENd->SetOLESizeInvalid( sal_True );
- }
-
- SwXFrame *pXFrame = SwXFrames::GetObject( *pFrmFmt, FLYCNTTYPE_OLE );
- xPropSet = pXFrame;
- if( pDoc->GetDrawModel() )
- SwXFrame::GetOrCreateSdrObject(
- static_cast<SwFlyFrmFmt*>( pXFrame->GetFrmFmt() ) ); // req for z-order
- if( rTblName.getLength() )
- {
- const SwFmtCntnt& rCntnt = pFrmFmt->GetCntnt();
- const SwNodeIndex *pNdIdx = rCntnt.GetCntntIdx();
- SwOLENode *pOLENd = pNdIdx->GetNodes()[pNdIdx->GetIndex() + 1]->GetOLENode();
- ASSERT( pOLENd, "Where is the OLE node" );
-
- OUStringBuffer aBuffer( rTblName.getLength() );
- sal_Bool bQuoted = sal_False;
- sal_Bool bEscape = sal_False;
- sal_Bool bError = sal_False;
- for( sal_Int32 i=0; i < rTblName.getLength(); i++ )
- {
- sal_Bool bEndOfNameFound = sal_False;
- sal_Unicode c = rTblName[i];
- switch( c )
- {
- case '\'':
- if( bEscape )
- {
- aBuffer.append( c );
- bEscape = sal_False;
- }
- else if( bQuoted )
- {
- bEndOfNameFound = sal_True;
- }
- else if( 0 == i )
- {
- bQuoted = sal_True;
- }
- else
- {
- bError = sal_True;
- }
- break;
- case '\\':
- if( bEscape )
- {
- aBuffer.append( c );
- bEscape = sal_False;
- }
- else
- {
- bEscape = sal_True;
- }
- break;
- case ' ':
- case '.':
- if( !bQuoted )
- {
- bEndOfNameFound = sal_True;
- }
- else
- {
- aBuffer.append( c );
- bEscape = sal_False;
- }
- break;
- default:
- {
- aBuffer.append( c );
- bEscape = sal_False;
- }
- break;
- }
- if( bError || bEndOfNameFound )
- break;
- }
- if( !bError )
- {
- OUString sTblName( aBuffer.makeStringAndClear() );
- pOLENd->SetChartTblName( GetRenameMap().Get( XML_TEXT_RENAME_TYPE_TABLE, sTblName ) );
- }
- }
-
- sal_Int32 nDrawAspect = 0;
- const XMLPropStyleContext *pStyle = 0;
- if( rStyleName.getLength() )
- {
- pStyle = FindAutoFrameStyle( rStyleName );
- if( pStyle )
- {
- UniReference < SvXMLImportPropertyMapper > xImpPrMap =
- pStyle->GetStyles()
- ->GetImportPropertyMapper(pStyle->GetFamily());
- ASSERT( xImpPrMap.is(), "Where is the import prop mapper?" );
- if( xImpPrMap.is() )
- {
- UniReference<XMLPropertySetMapper> rPropMapper =
- xImpPrMap->getPropertySetMapper();
-
- sal_Int32 nCount = pStyle->GetProperties().size();
- for( sal_Int32 i=0; i < nCount; i++ )
- {
- const XMLPropertyState& rProp = pStyle->GetProperties()[i];
- sal_Int32 nIdx = rProp.mnIndex;
- if( -1 == nIdx )
- continue;
-
- switch( rPropMapper->GetEntryContextId(nIdx) )
- {
- case CTF_OLE_VIS_AREA_LEFT:
- {
- sal_Int32 nVal = 0;
- rProp.maValue >>= nVal;
- aVisArea.setX( nVal );
- }
- break;
- case CTF_OLE_VIS_AREA_TOP:
- {
- sal_Int32 nVal = 0;
- rProp.maValue >>= nVal;
- aVisArea.setY( nVal );
- }
- break;
- case CTF_OLE_VIS_AREA_WIDTH:
- {
- sal_Int32 nVal = 0;
- rProp.maValue >>= nVal;
- aVisArea.setWidth( nVal );
- }
- break;
- case CTF_OLE_VIS_AREA_HEIGHT:
- {
- sal_Int32 nVal = 0;
- rProp.maValue >>= nVal;
- aVisArea.setHeight( nVal );
- }
- break;
- case CTF_OLE_DRAW_ASPECT:
- {
- rProp.maValue >>= nDrawAspect;
- }
- break;
- }
- }
- }
- }
- }
-
- SvInfoObject *pInfo = pDoc->GetPersist()->Find( aObjName );
- if( pInfo )
- {
- SvEmbeddedInfoObject * pEmbed = PTR_CAST(SvEmbeddedInfoObject, pInfo );
- pEmbed->SetInfoVisArea( aVisArea );
- if( nDrawAspect )
- pEmbed->SetInfoViewAspect( (UINT32)nDrawAspect );
- }
- return xPropSet;
-}
-
-Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertApplet(
- const OUString &rName,
- const OUString &rCode,
- sal_Bool bMayScript,
- const OUString& rHRef,
- sal_Int32 nWidth, sal_Int32 nHeight )
-{
- // this method will modify the document directly -> lock SolarMutex
- SolarMutexGuard aGuard;
-
- Reference < XPropertySet > xPropSet;
- Reference<XUnoTunnel> xCrsrTunnel( GetCursor(), UNO_QUERY );
- ASSERT( xCrsrTunnel.is(), "missing XUnoTunnel for Cursor" );
- OTextCursorHelper *pTxtCrsr =
- (OTextCursorHelper*)xCrsrTunnel->getSomething(
- OTextCursorHelper::getUnoTunnelId() );
- ASSERT( pTxtCrsr, "SwXTextCursor missing" );
- SwDoc *pDoc = pTxtCrsr->GetDoc();
-
- SfxItemSet aItemSet( pDoc->GetAttrPool(), RES_FRMATR_BEGIN,
- RES_FRMATR_END );
- lcl_putHeightAndWidth( aItemSet, nHeight, nWidth);
-
- SwApplet_Impl aAppletImpl ( aItemSet );
- aAppletImpl.CreateApplet ( rCode, rName, bMayScript, rHRef );
-
- SwFrmFmt *pFrmFmt = pDoc->Insert( *pTxtCrsr->GetPaM(),
- aAppletImpl.GetApplet(),
- &aAppletImpl.GetItemSet());
- SwXFrame *pXFrame = SwXFrames::GetObject( *pFrmFmt, FLYCNTTYPE_OLE );
- xPropSet = pXFrame;
- if( pDoc->GetDrawModel() )
- SwXFrame::GetOrCreateSdrObject(
- static_cast<SwFlyFrmFmt*>( pXFrame->GetFrmFmt() ) ); // req for z-order
-
- return xPropSet;
-}
-Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertPlugin(
- const OUString &rMimeType,
- const OUString& rHRef,
- sal_Int32 nWidth, sal_Int32 nHeight )
-{
- Reference < XPropertySet > xPropSet;
- Reference<XUnoTunnel> xCrsrTunnel( GetCursor(), UNO_QUERY );
- ASSERT( xCrsrTunnel.is(), "missing XUnoTunnel for Cursor" );
- OTextCursorHelper *pTxtCrsr =
- (OTextCursorHelper*)xCrsrTunnel->getSomething(
- OTextCursorHelper::getUnoTunnelId() );
- ASSERT( pTxtCrsr, "SwXTextCursor missing" );
- SwDoc *pDoc = pTxtCrsr->GetDoc();
-
- SfxItemSet aItemSet( pDoc->GetAttrPool(), RES_FRMATR_BEGIN,
- RES_FRMATR_END );
- lcl_putHeightAndWidth( aItemSet, nHeight, nWidth);
-
- // We'll need a (valid) URL, or we need a MIME type. If we don't have
- // either, do not insert plugin and return early. Copy URL into URL oject
- // on the way.
- INetURLObject aURLObj;
- bool bValidURL = rHRef.getLength() != 0 &&
- aURLObj.SetURL( ::binfilter::StaticBaseUrl::RelToAbs(rHRef) );
- bool bValidMimeType = rMimeType.getLength() != 0;
- if( !bValidURL && !bValidMimeType )
- return xPropSet;
-
- SvStorageRef pStor = new SvStorage( aEmptyStr, STREAM_STD_READWRITE);
- SvFactory *pPlugInFactory = (SvFactory*)SvPlugInObject::ClassFactory(); // SvFactory::GetDefaultPlugInFactory()
- SvPlugInObjectRef xPlugin = &pPlugInFactory->CreateAndInit( *pPlugInFactory, pStor );
-
- xPlugin->EnableSetModified( FALSE );
- xPlugin->SetPlugInMode( (USHORT)PLUGIN_EMBEDED );
- if( bValidURL )
- xPlugin->SetURL( aURLObj );
- if( bValidMimeType )
- xPlugin->SetMimeType( rMimeType );
-
- SwFrmFmt *pFrmFmt = pDoc->Insert( *pTxtCrsr->GetPaM(),
- xPlugin,
- &aItemSet);
- SwXFrame *pXFrame = SwXFrames::GetObject( *pFrmFmt, FLYCNTTYPE_OLE );
- xPropSet = pXFrame;
- if( pDoc->GetDrawModel() )
- SwXFrame::GetOrCreateSdrObject(
- static_cast<SwFlyFrmFmt*>( pXFrame->GetFrmFmt() ) ); // req for z-order
-
- return xPropSet;
-}
-Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertFloatingFrame(
- const OUString& rName,
- const OUString& rHRef,
- const OUString& rStyleName,
- sal_Int32 nWidth, sal_Int32 nHeight )
-{
- // this method will modify the document directly -> lock SolarMutex
- SolarMutexGuard aGuard;
-
- Reference < XPropertySet > xPropSet;
- Reference<XUnoTunnel> xCrsrTunnel( GetCursor(), UNO_QUERY );
- ASSERT( xCrsrTunnel.is(), "missing XUnoTunnel for Cursor" );
- OTextCursorHelper *pTxtCrsr =
- (OTextCursorHelper*)xCrsrTunnel->getSomething(
- OTextCursorHelper::getUnoTunnelId() );
- ASSERT( pTxtCrsr, "SwXTextCursor missing" );
- SwDoc *pDoc = pTxtCrsr->GetDoc();
-
- SfxItemSet aItemSet( pDoc->GetAttrPool(), RES_FRMATR_BEGIN,
- RES_FRMATR_END );
- lcl_putHeightAndWidth( aItemSet, nHeight, nWidth);
-
- SfxFrameDescriptor *pFrameDesc = new SfxFrameDescriptor( 0 );
-
- pFrameDesc->SetURL( ::binfilter::StaticBaseUrl::RelToAbs( rHRef ) );
- pFrameDesc->SetName( rName );
-
- ScrollingMode eScrollMode = ScrollingAuto;
- sal_Bool bHasBorder = sal_False;
- sal_Bool bIsBorderSet = sal_False;
- Size aMargin( SIZE_NOT_SET, SIZE_NOT_SET );
- const XMLPropStyleContext *pStyle = 0;
- if( rStyleName.getLength() )
- {
- pStyle = FindAutoFrameStyle( rStyleName );
- if( pStyle )
- {
- UniReference < SvXMLImportPropertyMapper > xImpPrMap =
- pStyle->GetStyles()
- ->GetImportPropertyMapper(pStyle->GetFamily());
- ASSERT( xImpPrMap.is(), "Where is the import prop mapper?" );
- if( xImpPrMap.is() )
- {
- UniReference<XMLPropertySetMapper> rPropMapper =
- xImpPrMap->getPropertySetMapper();
-
- sal_Int32 nCount = pStyle->GetProperties().size();
- for( sal_Int32 i=0; i < nCount; i++ )
- {
- const XMLPropertyState& rProp = pStyle->GetProperties()[i];
- sal_Int32 nIdx = rProp.mnIndex;
- if( -1 == nIdx )
- continue;
-
- switch( rPropMapper->GetEntryContextId(nIdx) )
- {
- case CTF_FRAME_DISPLAY_SCROLLBAR:
- {
- sal_Bool bYes = *(sal_Bool *)rProp.maValue.getValue();
- eScrollMode = bYes ? ScrollingYes : ScrollingNo;
- }
- break;
- case CTF_FRAME_DISPLAY_BORDER:
- {
- bHasBorder = *(sal_Bool *)rProp.maValue.getValue();
- bIsBorderSet = sal_True;
- }
- break;
- case CTF_FRAME_MARGIN_HORI:
- {
- sal_Int32 nVal = SIZE_NOT_SET;
- rProp.maValue >>= nVal;
- aMargin.Width() = nVal;
- }
- break;
- case CTF_FRAME_MARGIN_VERT:
- {
- sal_Int32 nVal = SIZE_NOT_SET;
- rProp.maValue >>= nVal;
- aMargin.Height() = nVal;
- }
- break;
- }
- }
- }
- }
- }
- pFrameDesc->SetScrollingMode( eScrollMode );
- if( bIsBorderSet )
- pFrameDesc->SetFrameBorder( bHasBorder );
- else
- pFrameDesc->ResetBorder();
- pFrameDesc->SetMargin( aMargin );
-
- SvStorageRef pStor = new SvStorage( aEmptyStr, STREAM_STD_READWRITE );
- SfxFrameObjectRef pFrame = new SfxFrameObject();
- pFrame->DoInitNew( pStor );
-
- pFrame->EnableSetModified( FALSE );
- pFrame->SetFrameDescriptor( pFrameDesc );
- pFrame->EnableSetModified( TRUE );
-
- SwFrmFmt *pFrmFmt = pDoc->Insert( *pTxtCrsr->GetPaM(),
- pFrame,
- &aItemSet);
- SwXFrame *pXFrame = SwXFrames::GetObject( *pFrmFmt, FLYCNTTYPE_OLE );
- xPropSet = pXFrame;
- if( pDoc->GetDrawModel() )
- SwXFrame::GetOrCreateSdrObject(
- static_cast<SwFlyFrmFmt*>( pXFrame->GetFrmFmt() ) ); // req for z-order
-
- return xPropSet;
-}
-
-void SwXMLTextImportHelper::endAppletOrPlugin(
- Reference < XPropertySet > &rPropSet,
- ::std::map < const ::rtl::OUString, ::rtl::OUString, ::comphelper::UStringLess > &rParamMap)
-{
- // this method will modify the document directly -> lock SolarMutex
- SolarMutexGuard aGuard;
-
- Reference<XUnoTunnel> xCrsrTunnel( rPropSet, UNO_QUERY );
- ASSERT( xCrsrTunnel.is(), "missing XUnoTunnel for embedded" );
- SwXFrame *pFrame =
- (SwXFrame *)xCrsrTunnel->getSomething(
- SwXFrame::getUnoTunnelId() );
- ASSERT( pFrame, "SwXFrame missing" );
- SwFrmFmt *pFrmFmt = pFrame->GetFrmFmt();
- const SwFmtCntnt& rCntnt = pFrmFmt->GetCntnt();
- const SwNodeIndex *pNdIdx = rCntnt.GetCntntIdx();
- SwOLENode *pOLENd = pNdIdx->GetNodes()[pNdIdx->GetIndex() + 1]->GetNoTxtNode()->GetOLENode();
- SwOLEObj& rOLEObj = pOLENd->GetOLEObj();
-
- SvPlugInObjectRef xPlugin ( rOLEObj.GetOleRef() );
- SvAppletObjectRef xApplet ( rOLEObj.GetOleRef() );
- SvCommandList aCommandList;
-
- ::std::map < const ::rtl::OUString, ::rtl::OUString, ::comphelper::UStringLess > ::iterator aIter = rParamMap.begin();
- ::std::map < const ::rtl::OUString, ::rtl::OUString, ::comphelper::UStringLess > ::iterator aEnd = rParamMap.end();
-
- while (aIter != aEnd )
- {
- aCommandList.Append( (*aIter).first, (*aIter).second);
- aIter++;
- }
-
- if (xApplet.Is())
- {
- xApplet->SetCommandList( aCommandList );
- xApplet->EnableSetModified ( TRUE );
- }
- else if (xPlugin.Is())
- {
- xPlugin->SetCommandList( aCommandList );
- xPlugin->EnableSetModified ( TRUE );
- }
-}
-
-XMLTextImportHelper* SwXMLImport::CreateTextImport()
-{
- return new SwXMLTextImportHelper( GetModel(), *this, getImportInfo(),
- IsInsertMode(),
- IsStylesOnlyMode(), bShowProgress,
- IsBlockMode(), IsOrganizerMode(),
- bPreserveRedlineMode );
-}
-
-
-// redlining helper methods
-// (override to provide the real implementation)
-
-void SwXMLTextImportHelper::RedlineAdd(
- const OUString& rType,
- const OUString& rId,
- const OUString& rAuthor,
- const OUString& rComment,
- const util::DateTime& rDateTime,
- sal_Bool bMergeLastPara)
-{
- // create redline helper on demand
- DBG_ASSERT(NULL != pRedlineHelper, "helper should have been created in constructor");
- if (NULL != pRedlineHelper)
- pRedlineHelper->Add(rType, rId, rAuthor, rComment, rDateTime,
- bMergeLastPara);
-}
-
-Reference<XTextCursor> SwXMLTextImportHelper::RedlineCreateText(
- Reference<XTextCursor> & rOldCursor,
- const OUString& rId)
-{
- Reference<XTextCursor> xRet;
-
- if (NULL != pRedlineHelper)
- {
- xRet = pRedlineHelper->CreateRedlineTextSection(rOldCursor, rId);
- }
-
- return xRet;
-}
-
-void SwXMLTextImportHelper::RedlineSetCursor(
- const OUString& rId,
- sal_Bool bStart,
- sal_Bool bIsOutsideOfParagraph)
-{
- if (NULL != pRedlineHelper) {
- Reference<XTextRange> xTextRange( GetCursor()->getStart() );
- pRedlineHelper->SetCursor(rId, bStart, xTextRange,
- bIsOutsideOfParagraph);
- }
- // else: ignore redline (wasn't added before, else we'd have a helper)
-}
-
-void SwXMLTextImportHelper::RedlineAdjustStartNodeCursor(
- sal_Bool bStart)
-{
- OUString rId = GetOpenRedlineId();
- if ((NULL != pRedlineHelper) && (rId.getLength() > 0))
- {
- Reference<XTextRange> xTextRange( GetCursor()->getStart() );
- pRedlineHelper->AdjustStartNodeCursor(rId, bStart, xTextRange );
- ResetOpenRedlineId();
- }
- // else: ignore redline (wasn't added before, or no open redline ID
-}
-
-void SwXMLTextImportHelper::SetShowChanges( sal_Bool bShowChanges )
-{
- if ( NULL != pRedlineHelper )
- pRedlineHelper->SetShowChanges( bShowChanges );
-}
-
-void SwXMLTextImportHelper::SetRecordChanges( sal_Bool bRecordChanges )
-{
- if ( NULL != pRedlineHelper )
- pRedlineHelper->SetRecordChanges( bRecordChanges );
-}
-
-void SwXMLTextImportHelper::SetChangesProtectionKey(
- const Sequence<sal_Int8> & rKey )
-{
- if ( NULL != pRedlineHelper )
- pRedlineHelper->SetProtectionKey( rKey );
-}
-
-
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */