2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 12:10: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 12:10:20 +00:00
|
|
|
* Copyright 2008 by Sun Microsystems, Inc.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 12:10:20 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 12:10:20 +00:00
|
|
|
* $RCSfile: docdraw.cxx,v $
|
2008-06-13 08:33:03 +00:00
|
|
|
* $Revision: 1.45 $
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 12:10:20 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 12:10: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 12:10: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 12:10: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 19:51:40 +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 <hintids.hxx>
|
2001-07-23 16:20:51 +00:00
|
|
|
#include <rtl/logfile.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
#ifndef _OUTDEV_HXX //autogen
|
|
|
|
#include <vcl/outdev.hxx>
|
|
|
|
#endif
|
|
|
|
#include <sfx2/printer.hxx>
|
|
|
|
#include <svx/eeitem.hxx>
|
|
|
|
#include <svx/flditem.hxx>
|
|
|
|
#include <svx/editeng.hxx>
|
|
|
|
#include <svx/svdoutl.hxx>
|
|
|
|
#include <svx/colritem.hxx>
|
|
|
|
#include <svx/svdpage.hxx>
|
|
|
|
#include <svx/svdogrp.hxx>
|
|
|
|
#include <svx/langitem.hxx>
|
|
|
|
#include <svx/unolingu.hxx>
|
|
|
|
|
|
|
|
#ifndef _SVDOMEAS_HXX
|
|
|
|
#include <svx/svdfield.hxx>
|
|
|
|
#endif
|
|
|
|
#include <svx/svdpool.hxx>
|
|
|
|
#include <fmtanchr.hxx>
|
|
|
|
#include <charatr.hxx>
|
|
|
|
#include <frmfmt.hxx>
|
|
|
|
#include <charfmt.hxx>
|
|
|
|
#include <viewimp.hxx>
|
|
|
|
#ifndef _SWHINTS_HXX
|
|
|
|
#include <swhints.hxx>
|
|
|
|
#endif
|
|
|
|
#include <doc.hxx>
|
|
|
|
#ifndef _DOCSH_HXX
|
|
|
|
#include <docsh.hxx>
|
|
|
|
#endif
|
|
|
|
#include <rootfrm.hxx> //Damit der RootDtor gerufen wird.
|
|
|
|
#include <poolfmt.hxx>
|
|
|
|
#include <viewsh.hxx> // fuer MakeDrawView
|
|
|
|
#include <drawdoc.hxx>
|
|
|
|
#include <undobj.hxx>
|
|
|
|
#include <swundo.hxx> // fuer die UndoIds
|
|
|
|
#include <dcontact.hxx>
|
|
|
|
#include <dview.hxx>
|
|
|
|
#include <mvsave.hxx>
|
|
|
|
#include <flyfrm.hxx>
|
|
|
|
#include <dflyobj.hxx>
|
2001-02-09 13:58:22 +00:00
|
|
|
#include <svx/svdetc.hxx>
|
2001-11-27 09:12:49 +00:00
|
|
|
#include <svx/fhgtitem.hxx>
|
2001-02-09 13:58:22 +00:00
|
|
|
|
2003-07-04 12:19:16 +00:00
|
|
|
// OD 26.06.2003 #108784#
|
|
|
|
#include <svx/svdpagv.hxx>
|
2004-06-28 12:32:00 +00:00
|
|
|
// OD 2004-04-01 #i26791#
|
|
|
|
#include <dcontact.hxx>
|
|
|
|
#include <txtfrm.hxx>
|
|
|
|
#include <frmfmt.hxx>
|
|
|
|
#include <svx/frmdiritem.hxx>
|
|
|
|
#include <fmtornt.hxx>
|
2006-03-22 11:22:53 +00:00
|
|
|
// --> OD 2006-03-14 #i62875#
|
|
|
|
#include <svx/svditer.hxx>
|
|
|
|
// <--
|
2006-12-01 13:23:59 +00:00
|
|
|
// --> OD 2006-11-01 #130889#
|
|
|
|
#include <vector>
|
|
|
|
// <--
|
2003-07-04 12:19:16 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
using namespace ::com::sun::star;
|
2000-10-27 10:55:57 +00:00
|
|
|
using namespace ::com::sun::star::linguistic2;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
SV_IMPL_VARARR_SORT( _ZSortFlys, _ZSortFly )
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
|*
|
|
|
|
|* SwDoc::GroupSelection / SwDoc::UnGroupSelection
|
|
|
|
|*
|
|
|
|
|* Ersterstellung JP 21.08.95
|
|
|
|
|* Letzte Aenderung JP 21.08.95
|
|
|
|
|*
|
|
|
|
|*************************************************************************/
|
2004-06-28 12:32:00 +00:00
|
|
|
// OD 2004-04-01 #i26791# - local method to determine positioning and
|
|
|
|
// alignment attributes for a drawing object, which is newly connected to
|
|
|
|
// the layout. Used for a newly formed group object <SwDoc::GroupSelection(..)>
|
|
|
|
// and the members of a destroyed group <SwDoc::UnGroupSelection(..)>
|
2005-03-23 11:56:38 +00:00
|
|
|
void lcl_AdjustPositioningAttr( SwDrawFrmFmt* _pFrmFmt,
|
2004-06-28 12:32:00 +00:00
|
|
|
const SdrObject& _rSdrObj )
|
|
|
|
{
|
|
|
|
const SwContact* pContact = GetUserCall( &_rSdrObj );
|
|
|
|
ASSERT( pContact, "<lcl_AdjustPositioningAttr(..)> - missing contact object." );
|
|
|
|
|
|
|
|
// determine position of new group object relative to its anchor frame position
|
|
|
|
SwTwips nHoriRelPos = 0;
|
|
|
|
SwTwips nVertRelPos = 0;
|
|
|
|
{
|
|
|
|
const SwFrm* pAnchorFrm = pContact->GetAnchoredObj( &_rSdrObj )->GetAnchorFrm();
|
|
|
|
ASSERT( !pAnchorFrm ||
|
|
|
|
!pAnchorFrm->IsTxtFrm() ||
|
|
|
|
!static_cast<const SwTxtFrm*>(pAnchorFrm)->IsFollow(),
|
|
|
|
"<lcl_AdjustPositioningAttr(..)> - anchor frame is a follow. Please inform OD." );
|
2007-09-27 07:34:21 +00:00
|
|
|
bool bVert = false;
|
|
|
|
bool bR2L = false;
|
2005-07-08 10:01:22 +00:00
|
|
|
// --> OD 2005-05-10 #i45952# - use anchor position of
|
|
|
|
// anchor frame, if it exist.
|
|
|
|
Point aAnchorPos;
|
2004-06-28 12:32:00 +00:00
|
|
|
if ( pAnchorFrm )
|
|
|
|
{
|
2005-07-08 10:01:22 +00:00
|
|
|
// --> OD 2005-05-10 #i45952#
|
|
|
|
aAnchorPos = pAnchorFrm->GetFrmAnchorPos( ::HasWrap( &_rSdrObj ) );
|
|
|
|
// <--
|
2004-06-28 12:32:00 +00:00
|
|
|
bVert = pAnchorFrm->IsVertical();
|
|
|
|
bR2L = pAnchorFrm->IsRightToLeft();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2005-07-08 10:01:22 +00:00
|
|
|
// --> OD 2005-05-10 #i45952#
|
|
|
|
aAnchorPos = _rSdrObj.GetAnchorPos();
|
|
|
|
// <--
|
2004-06-28 12:32:00 +00:00
|
|
|
// If no anchor frame exist - e.g. because no layout exists - the
|
|
|
|
// default layout direction is taken.
|
|
|
|
const SvxFrameDirectionItem* pDirItem =
|
|
|
|
static_cast<const SvxFrameDirectionItem*>(&(_pFrmFmt->GetAttrSet().GetPool()->GetDefaultItem( RES_FRAMEDIR )));
|
|
|
|
switch ( pDirItem->GetValue() )
|
|
|
|
{
|
|
|
|
case FRMDIR_VERT_TOP_LEFT:
|
|
|
|
{
|
|
|
|
// vertical from left-to-right - not supported yet
|
|
|
|
bVert = true;
|
|
|
|
bR2L = true;
|
|
|
|
ASSERT( false,
|
|
|
|
"<lcl_AdjustPositioningAttr(..)> - vertical from left-to-right not supported." );
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case FRMDIR_VERT_TOP_RIGHT:
|
|
|
|
{
|
|
|
|
// vertical from right-to-left
|
|
|
|
bVert = true;
|
|
|
|
bR2L = false;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case FRMDIR_HORI_RIGHT_TOP:
|
|
|
|
{
|
|
|
|
// horizontal from right-to-left
|
|
|
|
bVert = false;
|
|
|
|
bR2L = true;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case FRMDIR_HORI_LEFT_TOP:
|
|
|
|
{
|
|
|
|
// horizontal from left-to-right
|
|
|
|
bVert = false;
|
|
|
|
bR2L = false;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
// use geometry of drawing object
|
2004-10-27 11:30:23 +00:00
|
|
|
const SwRect aObjRect = _rSdrObj.GetSnapRect();
|
2004-06-28 12:32:00 +00:00
|
|
|
if ( bVert )
|
|
|
|
{
|
|
|
|
nHoriRelPos = aObjRect.Top() - aAnchorPos.Y();
|
|
|
|
nVertRelPos = aAnchorPos.X() - aObjRect.Right();
|
|
|
|
}
|
|
|
|
else if ( bR2L )
|
|
|
|
{
|
|
|
|
nHoriRelPos = aAnchorPos.X() - aObjRect.Right();
|
|
|
|
nVertRelPos = aObjRect.Top() - aAnchorPos.Y();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
nHoriRelPos = aObjRect.Left() - aAnchorPos.X();
|
|
|
|
nVertRelPos = aObjRect.Top() - aAnchorPos.Y();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2008-06-13 08:33:03 +00:00
|
|
|
_pFrmFmt->SetFmtAttr( SwFmtHoriOrient( nHoriRelPos, text::HoriOrientation::NONE, text::RelOrientation::FRAME ) );
|
|
|
|
_pFrmFmt->SetFmtAttr( SwFmtVertOrient( nVertRelPos, text::VertOrientation::NONE, text::RelOrientation::FRAME ) );
|
2005-03-23 11:56:38 +00:00
|
|
|
// --> OD 2005-03-11 #i44334#, #i44681# - positioning attributes already set
|
|
|
|
_pFrmFmt->PosAttrSet();
|
|
|
|
// <--
|
2004-10-27 11:30:23 +00:00
|
|
|
// --> OD 2004-10-01 #i34750# - keep current object rectangle for drawing
|
|
|
|
// objects. The object rectangle is used on events from the drawing layer
|
|
|
|
// to adjust the positioning attributes - see <SwDrawContact::_Changed(..)>.
|
|
|
|
{
|
|
|
|
const SwAnchoredObject* pAnchoredObj = pContact->GetAnchoredObj( &_rSdrObj );
|
|
|
|
if ( pAnchoredObj->ISA(SwAnchoredDrawObject) )
|
|
|
|
{
|
|
|
|
const SwAnchoredDrawObject* pAnchoredDrawObj =
|
|
|
|
static_cast<const SwAnchoredDrawObject*>(pAnchoredObj);
|
|
|
|
const SwRect aObjRect = _rSdrObj.GetSnapRect();
|
|
|
|
const_cast<SwAnchoredDrawObject*>(pAnchoredDrawObj)
|
|
|
|
->SetLastObjRect( aObjRect.SVRect() );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// <--
|
2004-06-28 12:32:00 +00:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SwDrawContact* SwDoc::GroupSelection( SdrView& rDrawView )
|
|
|
|
{
|
2003-07-04 12:19:16 +00:00
|
|
|
// OD 30.06.2003 #108784# - replace marked 'virtual' drawing objects by
|
|
|
|
// the corresponding 'master' drawing objects.
|
|
|
|
SwDrawView::ReplaceMarkedDrawVirtObjs( rDrawView );
|
|
|
|
|
2004-07-12 14:46:37 +00:00
|
|
|
const SdrMarkList &rMrkList = rDrawView.GetMarkedObjectList();
|
|
|
|
SwDrawFrmFmt *pFmt = 0L;
|
2006-07-25 11:29:31 +00:00
|
|
|
SdrObject *pObj = rMrkList.GetMark( 0 )->GetMarkedSdrObj();
|
2000-09-18 23:08:29 +00:00
|
|
|
BOOL bNoGroup = ( 0 == pObj->GetUpGroup() );
|
2004-06-28 12:32:00 +00:00
|
|
|
SwDrawContact* pNewContact = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bNoGroup )
|
|
|
|
{
|
|
|
|
//Ankerattribut aufheben.
|
2007-09-27 07:34:21 +00:00
|
|
|
SwDrawContact *pMyContact = (SwDrawContact*)GetUserCall(pObj);
|
|
|
|
const SwFmtAnchor aAnch( pMyContact->GetFmt()->GetAnchor() );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2005-12-28 16:11:55 +00:00
|
|
|
SwUndoDrawGroup* pUndo = !DoesUndo()
|
|
|
|
? 0
|
|
|
|
: new SwUndoDrawGroup( (USHORT)rMrkList.GetMarkCount() );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2005-12-28 16:11:55 +00:00
|
|
|
// --> OD 2005-08-16 #i53320#
|
|
|
|
bool bGroupMembersNotPositioned( false );
|
|
|
|
{
|
|
|
|
SwAnchoredDrawObject* pAnchoredDrawObj =
|
2007-09-27 07:34:21 +00:00
|
|
|
static_cast<SwAnchoredDrawObject*>(pMyContact->GetAnchoredObj( pObj ));
|
2005-12-28 16:11:55 +00:00
|
|
|
bGroupMembersNotPositioned = pAnchoredDrawObj->NotYetPositioned();
|
|
|
|
}
|
|
|
|
// <--
|
2000-09-18 23:08:29 +00:00
|
|
|
//ContactObjekte und Formate vernichten.
|
|
|
|
for( USHORT i = 0; i < rMrkList.GetMarkCount(); ++i )
|
|
|
|
{
|
2006-07-25 11:29:31 +00:00
|
|
|
pObj = rMrkList.GetMark( i )->GetMarkedSdrObj();
|
2000-09-18 23:08:29 +00:00
|
|
|
SwDrawContact *pContact = (SwDrawContact*)GetUserCall(pObj);
|
|
|
|
|
2005-12-28 16:11:55 +00:00
|
|
|
// --> OD 2005-08-16 #i53320#
|
|
|
|
#ifndef PRODUCT
|
|
|
|
SwAnchoredDrawObject* pAnchoredDrawObj =
|
|
|
|
static_cast<SwAnchoredDrawObject*>(pContact->GetAnchoredObj( pObj ));
|
|
|
|
ASSERT( bGroupMembersNotPositioned == pAnchoredDrawObj->NotYetPositioned(),
|
|
|
|
"<SwDoc::GroupSelection(..)> - group members have different positioning status!" );
|
|
|
|
#endif
|
|
|
|
// <--
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
pFmt = (SwDrawFrmFmt*)pContact->GetFmt();
|
|
|
|
//loescht sich selbst!
|
2003-11-24 15:01:11 +00:00
|
|
|
pContact->Changed(*pObj, SDRUSERCALL_DELETE, pObj->GetLastBoundRect() );
|
2000-09-18 23:08:29 +00:00
|
|
|
pObj->SetUserCall( 0 );
|
|
|
|
|
|
|
|
if( pUndo )
|
|
|
|
pUndo->AddObj( i, pFmt, pObj );
|
|
|
|
else
|
|
|
|
DelFrmFmt( pFmt );
|
2005-07-08 10:01:22 +00:00
|
|
|
|
|
|
|
// --> OD 2005-05-10 #i45952# - re-introduce position
|
|
|
|
// normalization of group member objects, because its anchor position
|
|
|
|
// is cleared, when they are grouped.
|
|
|
|
Point aAnchorPos( pObj->GetAnchorPos() );
|
|
|
|
pObj->NbcSetAnchorPos( Point( 0, 0 ) );
|
|
|
|
pObj->NbcMove( Size( aAnchorPos.X(), aAnchorPos.Y() ) );
|
|
|
|
// <--
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
pFmt = MakeDrawFrmFmt( String::CreateFromAscii(
|
|
|
|
RTL_CONSTASCII_STRINGPARAM( "DrawObject" )),
|
|
|
|
GetDfltFrmFmt() );
|
2008-06-13 08:33:03 +00:00
|
|
|
pFmt->SetFmtAttr( aAnch );
|
2004-10-27 11:30:23 +00:00
|
|
|
// --> OD 2004-10-25 #i36010# - set layout direction of the position
|
|
|
|
pFmt->SetPositionLayoutDir(
|
2007-09-27 07:34:21 +00:00
|
|
|
text::PositionLayoutDir::PositionInLayoutDirOfAnchor );
|
2004-10-27 11:30:23 +00:00
|
|
|
// <--
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2004-06-28 12:32:00 +00:00
|
|
|
rDrawView.GroupMarked();
|
|
|
|
ASSERT( rMrkList.GetMarkCount() == 1, "GroupMarked more or none groups." );
|
|
|
|
|
2006-07-25 11:29:31 +00:00
|
|
|
SdrObject* pNewGroupObj = rMrkList.GetMark( 0 )->GetMarkedSdrObj();
|
2004-06-28 12:32:00 +00:00
|
|
|
pNewContact = new SwDrawContact( pFmt, pNewGroupObj );
|
2004-12-23 09:03:59 +00:00
|
|
|
// --> OD 2004-11-22 #i35635#
|
|
|
|
pNewContact->MoveObjToVisibleLayer( pNewGroupObj );
|
|
|
|
// <--
|
2004-06-28 12:32:00 +00:00
|
|
|
pNewContact->ConnectToLayout();
|
2005-12-28 16:11:55 +00:00
|
|
|
// --> OD 2005-08-16 #i53320# - No adjustment of the positioning and
|
|
|
|
// alignment attributes, if group members aren't positioned yet.
|
|
|
|
if ( !bGroupMembersNotPositioned )
|
|
|
|
{
|
|
|
|
// OD 2004-04-01 #i26791# - Adjust positioning and alignment attributes.
|
|
|
|
lcl_AdjustPositioningAttr( pFmt, *pNewGroupObj );
|
|
|
|
}
|
|
|
|
// <--
|
2004-06-28 12:32:00 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
if( pUndo )
|
|
|
|
{
|
|
|
|
pUndo->SetGroupFmt( pFmt );
|
|
|
|
ClearRedo();
|
|
|
|
AppendUndo( pUndo );
|
|
|
|
}
|
|
|
|
}
|
2004-06-28 12:32:00 +00:00
|
|
|
else
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2004-06-28 12:32:00 +00:00
|
|
|
if ( DoesUndo() )
|
|
|
|
ClearRedo();
|
|
|
|
|
|
|
|
rDrawView.GroupMarked();
|
|
|
|
ASSERT( rMrkList.GetMarkCount() == 1, "GroupMarked more or none groups." );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
2004-06-28 12:32:00 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
return pNewContact;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SwDoc::UnGroupSelection( SdrView& rDrawView )
|
|
|
|
{
|
2006-12-01 13:23:59 +00:00
|
|
|
const int bUndo = DoesUndo();
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bUndo )
|
|
|
|
ClearRedo();
|
2003-07-04 12:19:16 +00:00
|
|
|
|
|
|
|
// OD 30.06.2003 #108784# - replace marked 'virtual' drawing objects by
|
|
|
|
// the corresponding 'master' drawing objects.
|
|
|
|
SwDrawView::ReplaceMarkedDrawVirtObjs( rDrawView );
|
|
|
|
|
2004-07-12 14:46:37 +00:00
|
|
|
const SdrMarkList &rMrkList = rDrawView.GetMarkedObjectList();
|
2006-12-01 13:23:59 +00:00
|
|
|
// --> OD 2006-11-01 #130889#
|
|
|
|
std::vector< std::pair< SwDrawFrmFmt*, SdrObject* > >* pFmtsAndObjs( 0L );
|
|
|
|
const sal_uInt32 nMarkCount( rMrkList.GetMarkCount() );
|
|
|
|
// <--
|
|
|
|
if ( nMarkCount )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2006-12-01 13:23:59 +00:00
|
|
|
// --> OD 2006-11-01 #130889#
|
|
|
|
pFmtsAndObjs = new std::vector< std::pair< SwDrawFrmFmt*, SdrObject* > >[nMarkCount];
|
|
|
|
// <--
|
2007-09-27 07:34:21 +00:00
|
|
|
SdrObject *pMyObj = rMrkList.GetMark( 0 )->GetMarkedSdrObj();
|
|
|
|
if( !pMyObj->GetUpGroup() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
String sDrwFmtNm( String::CreateFromAscii(
|
|
|
|
RTL_CONSTASCII_STRINGPARAM("DrawObject" )));
|
2006-12-01 13:23:59 +00:00
|
|
|
for ( USHORT i = 0; i < nMarkCount; ++i )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2006-07-25 11:29:31 +00:00
|
|
|
SdrObject *pObj = rMrkList.GetMark( i )->GetMarkedSdrObj();
|
2000-09-18 23:08:29 +00:00
|
|
|
if ( pObj->IsA( TYPE(SdrObjGroup) ) )
|
|
|
|
{
|
|
|
|
SwDrawContact *pContact = (SwDrawContact*)GetUserCall(pObj);
|
|
|
|
SwFmtAnchor aAnch( pContact->GetFmt()->GetAnchor() );
|
|
|
|
SdrObjList *pLst = ((SdrObjGroup*)pObj)->GetSubList();
|
|
|
|
|
|
|
|
SwUndoDrawUnGroup* pUndo = 0;
|
|
|
|
if( bUndo )
|
|
|
|
{
|
|
|
|
pUndo = new SwUndoDrawUnGroup( (SdrObjGroup*)pObj );
|
|
|
|
AppendUndo( pUndo );
|
|
|
|
}
|
|
|
|
|
|
|
|
for ( USHORT i2 = 0; i2 < pLst->GetObjCount(); ++i2 )
|
|
|
|
{
|
2004-06-28 12:32:00 +00:00
|
|
|
SdrObject* pSubObj = pLst->GetObj( i2 );
|
2000-09-18 23:08:29 +00:00
|
|
|
SwDrawFrmFmt *pFmt = MakeDrawFrmFmt( sDrwFmtNm,
|
|
|
|
GetDfltFrmFmt() );
|
2008-06-13 08:33:03 +00:00
|
|
|
pFmt->SetFmtAttr( aAnch );
|
2004-10-27 11:30:23 +00:00
|
|
|
// --> OD 2004-10-25 #i36010# - set layout direction of the position
|
|
|
|
pFmt->SetPositionLayoutDir(
|
2007-09-27 07:34:21 +00:00
|
|
|
text::PositionLayoutDir::PositionInLayoutDirOfAnchor );
|
2004-10-27 11:30:23 +00:00
|
|
|
// <--
|
2006-12-01 13:23:59 +00:00
|
|
|
// --> OD 2006-11-01 #130889#
|
|
|
|
// creation of <SwDrawContact> instances for the group
|
|
|
|
// members and its connection to the Writer layout is
|
|
|
|
// done after intrinsic ungrouping.
|
|
|
|
// SwDrawContact* pContact = new SwDrawContact( pFmt, pSubObj );
|
|
|
|
// // --> OD 2004-11-22 #i35635#
|
|
|
|
// pContact->MoveObjToVisibleLayer( pSubObj );
|
|
|
|
// // <--
|
|
|
|
// pContact->ConnectToLayout();
|
|
|
|
// // OD 2004-04-07 #i26791# - Adjust positioning and
|
|
|
|
// // alignment attributes.
|
|
|
|
// lcl_AdjustPositioningAttr( pFmt, *pSubObj );
|
|
|
|
pFmtsAndObjs[i].push_back( std::pair< SwDrawFrmFmt*, SdrObject* >( pFmt, pSubObj ) );
|
2004-12-23 09:03:59 +00:00
|
|
|
// <--
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( bUndo )
|
|
|
|
pUndo->AddObj( i2, pFmt );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
rDrawView.UnGroupMarked();
|
2006-12-01 13:23:59 +00:00
|
|
|
// --> OD 2006-11-01 #130889#
|
|
|
|
// creation of <SwDrawContact> instances for the former group members and
|
|
|
|
// its connection to the Writer layout.
|
|
|
|
for ( sal_uInt32 i = 0; i < nMarkCount; ++i )
|
|
|
|
{
|
|
|
|
SwUndoDrawUnGroupConnectToLayout* pUndo = 0;
|
|
|
|
if( bUndo )
|
|
|
|
{
|
|
|
|
pUndo = new SwUndoDrawUnGroupConnectToLayout();
|
|
|
|
AppendUndo( pUndo );
|
|
|
|
}
|
|
|
|
|
|
|
|
while ( pFmtsAndObjs[i].size() > 0 )
|
|
|
|
{
|
|
|
|
SwDrawFrmFmt* pFmt( pFmtsAndObjs[i].back().first );
|
|
|
|
SdrObject* pObj( pFmtsAndObjs[i].back().second );
|
|
|
|
pFmtsAndObjs[i].pop_back();
|
|
|
|
|
|
|
|
SwDrawContact* pContact = new SwDrawContact( pFmt, pObj );
|
|
|
|
pContact->MoveObjToVisibleLayer( pObj );
|
|
|
|
pContact->ConnectToLayout();
|
|
|
|
lcl_AdjustPositioningAttr( pFmt, *pObj );
|
|
|
|
|
|
|
|
if ( bUndo )
|
|
|
|
{
|
|
|
|
pUndo->AddFmtAndObj( pFmt, pObj );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
delete [] pFmtsAndObjs;
|
|
|
|
// <--
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
|*
|
|
|
|
|* SwDoc::DeleteSelection()
|
|
|
|
|*
|
|
|
|
|* Ersterstellung MA 14. Nov. 95
|
|
|
|
|* Letzte Aenderung MA 14. Nov. 95
|
|
|
|
|*
|
|
|
|
|*************************************************************************/
|
|
|
|
|
|
|
|
BOOL SwDoc::DeleteSelection( SwDrawView& rDrawView )
|
|
|
|
{
|
|
|
|
BOOL bCallBase = FALSE;
|
2004-07-12 14:46:37 +00:00
|
|
|
const SdrMarkList &rMrkList = rDrawView.GetMarkedObjectList();
|
2000-09-18 23:08:29 +00:00
|
|
|
if( rMrkList.GetMarkCount() )
|
|
|
|
{
|
2007-09-27 07:34:21 +00:00
|
|
|
StartUndo(UNDO_EMPTY, NULL);
|
2000-09-18 23:08:29 +00:00
|
|
|
USHORT i;
|
2007-09-27 07:34:21 +00:00
|
|
|
BOOL bDelMarked = TRUE;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( 1 == rMrkList.GetMarkCount() )
|
|
|
|
{
|
2006-07-25 11:29:31 +00:00
|
|
|
SdrObject *pObj = rMrkList.GetMark( 0 )->GetMarkedSdrObj();
|
2003-11-24 15:01:11 +00:00
|
|
|
if( pObj->ISA(SwVirtFlyDrawObj) )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SwFlyFrmFmt* pFrmFmt = (SwFlyFrmFmt*)
|
|
|
|
((SwVirtFlyDrawObj*)pObj)->GetFlyFrm()->GetFmt();
|
|
|
|
if( pFrmFmt )
|
|
|
|
{
|
|
|
|
DelLayoutFmt( pFrmFmt );
|
|
|
|
bDelMarked = FALSE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for( i = 0; i < rMrkList.GetMarkCount(); ++i )
|
|
|
|
{
|
2006-07-25 11:29:31 +00:00
|
|
|
SdrObject *pObj = rMrkList.GetMark( i )->GetMarkedSdrObj();
|
2003-11-24 15:01:11 +00:00
|
|
|
if( !pObj->ISA(SwVirtFlyDrawObj) )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SwDrawContact *pC = (SwDrawContact*)GetUserCall(pObj);
|
|
|
|
SwDrawFrmFmt *pFrmFmt = (SwDrawFrmFmt*)pC->GetFmt();
|
|
|
|
if( pFrmFmt &&
|
|
|
|
FLY_IN_CNTNT == pFrmFmt->GetAnchor().GetAnchorId() )
|
|
|
|
{
|
|
|
|
rDrawView.MarkObj( pObj, rDrawView.Imp().GetPageView(), TRUE );
|
|
|
|
--i;
|
|
|
|
DelLayoutFmt( pFrmFmt );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( rMrkList.GetMarkCount() && bDelMarked )
|
|
|
|
{
|
2006-07-25 11:29:31 +00:00
|
|
|
SdrObject *pObj = rMrkList.GetMark( 0 )->GetMarkedSdrObj();
|
2000-09-18 23:08:29 +00:00
|
|
|
if( !pObj->GetUpGroup() )
|
|
|
|
{
|
|
|
|
SwUndoDrawDelete* pUndo = !DoesUndo() ? 0
|
|
|
|
: new SwUndoDrawDelete( (USHORT)rMrkList.GetMarkCount() );
|
|
|
|
|
|
|
|
//ContactObjekte vernichten, Formate sicherstellen.
|
|
|
|
for( i = 0; i < rMrkList.GetMarkCount(); ++i )
|
|
|
|
{
|
2001-11-13 12:52:46 +00:00
|
|
|
const SdrMark& rMark = *rMrkList.GetMark( i );
|
2006-07-25 11:29:31 +00:00
|
|
|
pObj = rMark.GetMarkedSdrObj();
|
2000-09-18 23:08:29 +00:00
|
|
|
SwDrawContact *pContact = (SwDrawContact*)pObj->GetUserCall();
|
|
|
|
if( pContact ) // natuerlich nicht bei gruppierten Objekten
|
|
|
|
{
|
|
|
|
SwDrawFrmFmt *pFmt = (SwDrawFrmFmt*)pContact->GetFmt();
|
2003-07-04 12:19:16 +00:00
|
|
|
// OD 18.06.2003 #108784# - before delete of selection
|
|
|
|
// is performed, marked <SwDrawVirtObj>-objects have to
|
|
|
|
// be replaced by its reference objects.
|
|
|
|
// Thus, assert, if a <SwDrawVirt>-object is found in the mark list.
|
|
|
|
if ( pObj->ISA(SwDrawVirtObj) )
|
|
|
|
{
|
|
|
|
ASSERT( false,
|
|
|
|
"<SwDrawVirtObj> is still marked for delete. application will crash!" );
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
//loescht sich selbst!
|
2003-11-24 15:01:11 +00:00
|
|
|
pContact->Changed(*pObj, SDRUSERCALL_DELETE, pObj->GetLastBoundRect() );
|
2000-09-18 23:08:29 +00:00
|
|
|
pObj->SetUserCall( 0 );
|
|
|
|
|
|
|
|
if( pUndo )
|
2001-11-13 12:52:46 +00:00
|
|
|
pUndo->AddObj( i, pFmt, rMark );
|
2000-09-18 23:08:29 +00:00
|
|
|
else
|
|
|
|
DelFrmFmt( pFmt );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( pUndo )
|
|
|
|
AppendUndo( pUndo );
|
|
|
|
}
|
|
|
|
bCallBase = TRUE;
|
|
|
|
}
|
|
|
|
SetModified();
|
|
|
|
|
2007-09-27 07:34:21 +00:00
|
|
|
EndUndo(UNDO_EMPTY, NULL);
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return bCallBase;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
|*
|
|
|
|
|* SwDoc::DeleteSelection()
|
|
|
|
|*
|
|
|
|
|* Ersterstellung JP 11.01.96
|
|
|
|
|* Letzte Aenderung JP 11.01.96
|
|
|
|
|*
|
|
|
|
|*************************************************************************/
|
|
|
|
|
|
|
|
_ZSortFly::_ZSortFly( const SwFrmFmt* pFrmFmt, const SwFmtAnchor* pFlyAn,
|
|
|
|
UINT32 nArrOrdNum )
|
|
|
|
: pFmt( pFrmFmt ), pAnchor( pFlyAn ), nOrdNum( nArrOrdNum )
|
|
|
|
{
|
2003-04-24 13:53:49 +00:00
|
|
|
// #i11176#
|
|
|
|
// This also needs to work when no layout exists. Thus, for
|
|
|
|
// FlyFrames an alternative method is used now in that case.
|
|
|
|
SwClientIter aIter( (SwFmt&)*pFmt );
|
|
|
|
|
|
|
|
if( RES_FLYFRMFMT == pFmt->Which() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2006-08-14 14:56:41 +00:00
|
|
|
if( pFmt->getIDocumentLayoutAccess()->GetRootFrm() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
// Schauen, ob es ein SdrObject dafuer gibt
|
|
|
|
if( aIter.First( TYPE( SwFlyFrm) ) )
|
|
|
|
nOrdNum = ((SwFlyFrm*)aIter())->GetVirtDrawObj()->GetOrdNum();
|
|
|
|
}
|
2003-04-24 13:53:49 +00:00
|
|
|
else
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
// Schauen, ob es ein SdrObject dafuer gibt
|
2003-04-24 13:53:49 +00:00
|
|
|
if( aIter.First( TYPE(SwFlyDrawContact) ) )
|
|
|
|
nOrdNum = ((SwFlyDrawContact*)aIter())->GetMaster()->GetOrdNum();
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
2003-04-24 13:53:49 +00:00
|
|
|
else if( RES_DRAWFRMFMT == pFmt->Which() )
|
|
|
|
{
|
|
|
|
// Schauen, ob es ein SdrObject dafuer gibt
|
|
|
|
if( aIter.First( TYPE(SwDrawContact) ) )
|
|
|
|
nOrdNum = ((SwDrawContact*)aIter())->GetMaster()->GetOrdNum();
|
|
|
|
}
|
2008-04-22 13:56:45 +00:00
|
|
|
else {
|
2003-04-24 13:53:49 +00:00
|
|
|
ASSERT( !this, "was ist das fuer ein Format?" );
|
2008-04-22 13:56:45 +00:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
// Wird auch vom Sw3-Reader gerufen, wenn ein Fehler beim Einlesen
|
|
|
|
// des Drawing Layers auftrat. In diesem Fall wird der Layer komplett
|
|
|
|
// neu aufgebaut.
|
|
|
|
|
2001-10-08 12:32:31 +00:00
|
|
|
// #75371#
|
|
|
|
#include <svx/sxenditm.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
void SwDoc::InitDrawModel()
|
|
|
|
{
|
2001-07-31 15:51:57 +00:00
|
|
|
RTL_LOGFILE_CONTEXT_AUTHOR( aLog, "SW", "JP93722", "SwDoc::InitDrawModel" );
|
2001-07-23 16:20:51 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
//!!Achtung im sw3-Reader (sw3imp.cxx) gibt es aehnlichen Code, der
|
|
|
|
//mitgepfelgt werden muss.
|
|
|
|
if ( pDrawModel )
|
|
|
|
ReleaseDrawModel();
|
|
|
|
|
|
|
|
//DrawPool und EditEnginePool anlegen, diese gehoeren uns und werden
|
|
|
|
//dem Drawing nur mitgegeben. Im ReleaseDrawModel werden die Pools wieder
|
|
|
|
//zerstoert.
|
|
|
|
// 17.2.99: for Bug 73110 - for loading the drawing items. This must
|
|
|
|
// be loaded without RefCounts!
|
CWS-TOOLING: integrate CWS aw063
2009-02-12 13:10:24 +0100 aw r267649 : #i99123# when a primitive is invisible, it is not sufficient to produce no output when decomposing, but to add invisible data using HitTestPrimitive2D. This is needed for the slideshow which relies on geometry data in MetaFiles when painting invisible objects
2009-02-12 13:08:39 +0100 aw r267648 : #i99123# do not ignore HitTestPrimitive2D, but draw empty rectangles instead. This is needed since Slideshow is based on getting MetaFile content when painting invisible objects
2009-02-11 16:04:28 +0100 aw r267620 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:04:10 +0100 aw r267619 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:56 +0100 aw r267618 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:39 +0100 aw r267617 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:21 +0100 aw r267615 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:48 +0100 aw r267614 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:24 +0100 aw r267613 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:01 +0100 aw r267612 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:32 +0100 aw r267611 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:05 +0100 aw r267610 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:00:15 +0100 aw r267608 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 11:27:33 +0100 aw r267585 : #i98788# added missing include for STL
2009-02-10 17:46:50 +0100 aw r267570 : #i98788# added reaction on pool destruction
2009-02-10 17:11:58 +0100 aw r267562 : #i98788# added messaging mechanism to register for pool destruction
2009-02-10 13:35:35 +0100 aw r267549 : #i98788# removing changes, too complicated and risky for 3.1
2009-02-10 12:13:48 +0100 aw r267546 : #i98788# 4th round
2009-02-10 12:13:37 +0100 aw r267545 : #i98788# 4th round
2009-02-10 12:13:26 +0100 aw r267544 : #i98788# 4th round
2009-02-10 12:13:14 +0100 aw r267543 : #i98788# 4th round
2009-02-10 12:13:03 +0100 aw r267542 : #i98788# 4th round
2009-02-10 12:12:50 +0100 aw r267541 : #i98788# 4th round
2009-02-10 12:12:37 +0100 aw r267540 : #i98788# 4th round
2009-02-08 14:38:22 +0100 aw r267495 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:38:06 +0100 aw r267494 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:48 +0100 aw r267493 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:17 +0100 aw r267492 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:56 +0100 aw r267491 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:44 +0100 aw r267490 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:29 +0100 aw r267489 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:16 +0100 aw r267488 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:02 +0100 aw r267487 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:35:46 +0100 aw r267486 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-05 12:20:39 +0100 aw r267415 : #i98788# 2nd batch of adaptions for SfxItemPoolHolder addition
2009-02-04 15:12:54 +0100 aw r267385 : #i98788# added newline at EOF
2009-02-04 13:26:04 +0100 aw r267379 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:40 +0100 aw r267378 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:08 +0100 aw r267377 : #i98788# make SfxItemPool holdable
2009-02-04 13:24:42 +0100 aw r267376 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:14 +0100 aw r267375 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:02 +0100 aw r267374 : #i98788# make SfxItemPool holdable
2009-01-29 17:08:31 +0100 aw r267159 : #i97628# completed the fix
2009-01-29 17:08:15 +0100 aw r267158 : #i97628# completed the fix
2009-01-29 14:09:07 +0100 aw r267132 : #i97628# Corrected usage of ParagraphData in headers
2009-01-29 14:06:58 +0100 iha r267131 : #i98344# incorrect font size in charts
2009-01-29 12:13:46 +0100 aw r267115 : #i97628# back to old state; triggers too many errors in other modules
2009-01-29 12:03:51 +0100 aw r267114 : #i97628# enabled exceptions due to STL vector include
2009-01-29 11:21:37 +0100 aw r267107 : #i97628# added needed include
2009-01-28 17:58:29 +0100 aw r267077 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:58:12 +0100 aw r267076 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:51 +0100 aw r267074 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:21 +0100 aw r267073 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-27 17:07:33 +0100 aw r267011 : #i98402# added support for ViewRange when exporting MetaFiles in ObjectContactOfPageView::DoProcessDisplay to avoid to paint too much
2009-01-27 11:45:48 +0100 aw r266973 : #i98404# Added a warning to a place where a conversion to rectangle should not be copied from
2009-01-26 21:44:36 +0100 iha r266949 : #i98497# 3D charts are rendered with wrong size
2009-01-26 20:47:07 +0100 aw r266947 : #i98404# handle BackgroundColorPrimitive2D directly in PixelRenderers and avoid AA under all circumstances
2009-01-26 14:50:36 +0100 aw r266926 : #i98386# secured cloning of SdrObject in IMapUserData by boost::shared_prt usage
2009-01-26 12:51:30 +0100 aw r266916 : #i96581# added separated FontStretching and fallback for small X!=Y scale differences
2009-01-23 16:14:55 +0100 aw r266834 : #i96475# added missing implementation of TextDecoratedPortionPrimitive2D::getB2DRange
2009-01-23 15:24:34 +0100 aw r266826 : #i98405# fixed fallback to DrawAlphaRect to use the correctly sized rectangle
2009-01-23 13:34:43 +0100 aw r266813 : #i96474# fixed impSplitSingleWords for an unexpected case
2009-01-23 10:47:31 +0100 aw r266786 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:20 +0100 aw r266785 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:09 +0100 aw r266783 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:58 +0100 aw r266782 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:48 +0100 aw r266781 : #i98289#,#i96474# tooling and new flags for tasks
2009-03-04 14:16:02 +00:00
|
|
|
SfxItemPool *pSdrPool = new SdrItemPool( &GetAttrPool() );
|
2001-10-08 12:32:31 +00:00
|
|
|
// #75371# change DefaultItems for the SdrEdgeObj distance items
|
|
|
|
// to TWIPS.
|
|
|
|
if(pSdrPool)
|
|
|
|
{
|
|
|
|
const long nDefEdgeDist = ((500 * 72) / 127); // 1/100th mm in twips
|
|
|
|
pSdrPool->SetPoolDefaultItem(SdrEdgeNode1HorzDistItem(nDefEdgeDist));
|
|
|
|
pSdrPool->SetPoolDefaultItem(SdrEdgeNode1VertDistItem(nDefEdgeDist));
|
|
|
|
pSdrPool->SetPoolDefaultItem(SdrEdgeNode2HorzDistItem(nDefEdgeDist));
|
|
|
|
pSdrPool->SetPoolDefaultItem(SdrEdgeNode2VertDistItem(nDefEdgeDist));
|
2004-10-12 08:59:00 +00:00
|
|
|
|
|
|
|
// #i33700#
|
|
|
|
// Set shadow distance defaults as PoolDefaultItems. Details see bug.
|
|
|
|
pSdrPool->SetPoolDefaultItem(SdrShadowXDistItem((300 * 72) / 127));
|
|
|
|
pSdrPool->SetPoolDefaultItem(SdrShadowYDistItem((300 * 72) / 127));
|
2001-10-08 12:32:31 +00:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
SfxItemPool *pEEgPool = EditEngine::CreatePool( FALSE );
|
|
|
|
pSdrPool->SetSecondaryPool( pEEgPool );
|
CWS-TOOLING: integrate CWS aw063
2009-02-12 13:10:24 +0100 aw r267649 : #i99123# when a primitive is invisible, it is not sufficient to produce no output when decomposing, but to add invisible data using HitTestPrimitive2D. This is needed for the slideshow which relies on geometry data in MetaFiles when painting invisible objects
2009-02-12 13:08:39 +0100 aw r267648 : #i99123# do not ignore HitTestPrimitive2D, but draw empty rectangles instead. This is needed since Slideshow is based on getting MetaFile content when painting invisible objects
2009-02-11 16:04:28 +0100 aw r267620 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:04:10 +0100 aw r267619 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:56 +0100 aw r267618 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:39 +0100 aw r267617 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:21 +0100 aw r267615 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:48 +0100 aw r267614 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:24 +0100 aw r267613 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:01 +0100 aw r267612 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:32 +0100 aw r267611 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:05 +0100 aw r267610 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:00:15 +0100 aw r267608 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 11:27:33 +0100 aw r267585 : #i98788# added missing include for STL
2009-02-10 17:46:50 +0100 aw r267570 : #i98788# added reaction on pool destruction
2009-02-10 17:11:58 +0100 aw r267562 : #i98788# added messaging mechanism to register for pool destruction
2009-02-10 13:35:35 +0100 aw r267549 : #i98788# removing changes, too complicated and risky for 3.1
2009-02-10 12:13:48 +0100 aw r267546 : #i98788# 4th round
2009-02-10 12:13:37 +0100 aw r267545 : #i98788# 4th round
2009-02-10 12:13:26 +0100 aw r267544 : #i98788# 4th round
2009-02-10 12:13:14 +0100 aw r267543 : #i98788# 4th round
2009-02-10 12:13:03 +0100 aw r267542 : #i98788# 4th round
2009-02-10 12:12:50 +0100 aw r267541 : #i98788# 4th round
2009-02-10 12:12:37 +0100 aw r267540 : #i98788# 4th round
2009-02-08 14:38:22 +0100 aw r267495 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:38:06 +0100 aw r267494 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:48 +0100 aw r267493 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:17 +0100 aw r267492 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:56 +0100 aw r267491 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:44 +0100 aw r267490 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:29 +0100 aw r267489 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:16 +0100 aw r267488 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:02 +0100 aw r267487 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:35:46 +0100 aw r267486 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-05 12:20:39 +0100 aw r267415 : #i98788# 2nd batch of adaptions for SfxItemPoolHolder addition
2009-02-04 15:12:54 +0100 aw r267385 : #i98788# added newline at EOF
2009-02-04 13:26:04 +0100 aw r267379 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:40 +0100 aw r267378 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:08 +0100 aw r267377 : #i98788# make SfxItemPool holdable
2009-02-04 13:24:42 +0100 aw r267376 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:14 +0100 aw r267375 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:02 +0100 aw r267374 : #i98788# make SfxItemPool holdable
2009-01-29 17:08:31 +0100 aw r267159 : #i97628# completed the fix
2009-01-29 17:08:15 +0100 aw r267158 : #i97628# completed the fix
2009-01-29 14:09:07 +0100 aw r267132 : #i97628# Corrected usage of ParagraphData in headers
2009-01-29 14:06:58 +0100 iha r267131 : #i98344# incorrect font size in charts
2009-01-29 12:13:46 +0100 aw r267115 : #i97628# back to old state; triggers too many errors in other modules
2009-01-29 12:03:51 +0100 aw r267114 : #i97628# enabled exceptions due to STL vector include
2009-01-29 11:21:37 +0100 aw r267107 : #i97628# added needed include
2009-01-28 17:58:29 +0100 aw r267077 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:58:12 +0100 aw r267076 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:51 +0100 aw r267074 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:21 +0100 aw r267073 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-27 17:07:33 +0100 aw r267011 : #i98402# added support for ViewRange when exporting MetaFiles in ObjectContactOfPageView::DoProcessDisplay to avoid to paint too much
2009-01-27 11:45:48 +0100 aw r266973 : #i98404# Added a warning to a place where a conversion to rectangle should not be copied from
2009-01-26 21:44:36 +0100 iha r266949 : #i98497# 3D charts are rendered with wrong size
2009-01-26 20:47:07 +0100 aw r266947 : #i98404# handle BackgroundColorPrimitive2D directly in PixelRenderers and avoid AA under all circumstances
2009-01-26 14:50:36 +0100 aw r266926 : #i98386# secured cloning of SdrObject in IMapUserData by boost::shared_prt usage
2009-01-26 12:51:30 +0100 aw r266916 : #i96581# added separated FontStretching and fallback for small X!=Y scale differences
2009-01-23 16:14:55 +0100 aw r266834 : #i96475# added missing implementation of TextDecoratedPortionPrimitive2D::getB2DRange
2009-01-23 15:24:34 +0100 aw r266826 : #i98405# fixed fallback to DrawAlphaRect to use the correctly sized rectangle
2009-01-23 13:34:43 +0100 aw r266813 : #i96474# fixed impSplitSingleWords for an unexpected case
2009-01-23 10:47:31 +0100 aw r266786 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:20 +0100 aw r266785 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:09 +0100 aw r266783 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:58 +0100 aw r266782 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:48 +0100 aw r266781 : #i98289#,#i96474# tooling and new flags for tasks
2009-03-04 14:16:02 +00:00
|
|
|
if ( !GetAttrPool().GetFrozenIdRanges () )
|
|
|
|
GetAttrPool().FreezeIdRanges();
|
2001-02-20 15:15:10 +00:00
|
|
|
else
|
|
|
|
pSdrPool->FreezeIdRanges();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2001-11-27 09:12:49 +00:00
|
|
|
// SJ: #95129# set FontHeight pool defaults without changing static SdrEngineDefaults
|
CWS-TOOLING: integrate CWS aw063
2009-02-12 13:10:24 +0100 aw r267649 : #i99123# when a primitive is invisible, it is not sufficient to produce no output when decomposing, but to add invisible data using HitTestPrimitive2D. This is needed for the slideshow which relies on geometry data in MetaFiles when painting invisible objects
2009-02-12 13:08:39 +0100 aw r267648 : #i99123# do not ignore HitTestPrimitive2D, but draw empty rectangles instead. This is needed since Slideshow is based on getting MetaFile content when painting invisible objects
2009-02-11 16:04:28 +0100 aw r267620 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:04:10 +0100 aw r267619 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:56 +0100 aw r267618 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:39 +0100 aw r267617 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:21 +0100 aw r267615 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:48 +0100 aw r267614 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:24 +0100 aw r267613 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:01 +0100 aw r267612 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:32 +0100 aw r267611 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:05 +0100 aw r267610 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:00:15 +0100 aw r267608 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 11:27:33 +0100 aw r267585 : #i98788# added missing include for STL
2009-02-10 17:46:50 +0100 aw r267570 : #i98788# added reaction on pool destruction
2009-02-10 17:11:58 +0100 aw r267562 : #i98788# added messaging mechanism to register for pool destruction
2009-02-10 13:35:35 +0100 aw r267549 : #i98788# removing changes, too complicated and risky for 3.1
2009-02-10 12:13:48 +0100 aw r267546 : #i98788# 4th round
2009-02-10 12:13:37 +0100 aw r267545 : #i98788# 4th round
2009-02-10 12:13:26 +0100 aw r267544 : #i98788# 4th round
2009-02-10 12:13:14 +0100 aw r267543 : #i98788# 4th round
2009-02-10 12:13:03 +0100 aw r267542 : #i98788# 4th round
2009-02-10 12:12:50 +0100 aw r267541 : #i98788# 4th round
2009-02-10 12:12:37 +0100 aw r267540 : #i98788# 4th round
2009-02-08 14:38:22 +0100 aw r267495 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:38:06 +0100 aw r267494 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:48 +0100 aw r267493 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:17 +0100 aw r267492 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:56 +0100 aw r267491 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:44 +0100 aw r267490 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:29 +0100 aw r267489 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:16 +0100 aw r267488 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:02 +0100 aw r267487 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:35:46 +0100 aw r267486 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-05 12:20:39 +0100 aw r267415 : #i98788# 2nd batch of adaptions for SfxItemPoolHolder addition
2009-02-04 15:12:54 +0100 aw r267385 : #i98788# added newline at EOF
2009-02-04 13:26:04 +0100 aw r267379 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:40 +0100 aw r267378 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:08 +0100 aw r267377 : #i98788# make SfxItemPool holdable
2009-02-04 13:24:42 +0100 aw r267376 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:14 +0100 aw r267375 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:02 +0100 aw r267374 : #i98788# make SfxItemPool holdable
2009-01-29 17:08:31 +0100 aw r267159 : #i97628# completed the fix
2009-01-29 17:08:15 +0100 aw r267158 : #i97628# completed the fix
2009-01-29 14:09:07 +0100 aw r267132 : #i97628# Corrected usage of ParagraphData in headers
2009-01-29 14:06:58 +0100 iha r267131 : #i98344# incorrect font size in charts
2009-01-29 12:13:46 +0100 aw r267115 : #i97628# back to old state; triggers too many errors in other modules
2009-01-29 12:03:51 +0100 aw r267114 : #i97628# enabled exceptions due to STL vector include
2009-01-29 11:21:37 +0100 aw r267107 : #i97628# added needed include
2009-01-28 17:58:29 +0100 aw r267077 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:58:12 +0100 aw r267076 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:51 +0100 aw r267074 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:21 +0100 aw r267073 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-27 17:07:33 +0100 aw r267011 : #i98402# added support for ViewRange when exporting MetaFiles in ObjectContactOfPageView::DoProcessDisplay to avoid to paint too much
2009-01-27 11:45:48 +0100 aw r266973 : #i98404# Added a warning to a place where a conversion to rectangle should not be copied from
2009-01-26 21:44:36 +0100 iha r266949 : #i98497# 3D charts are rendered with wrong size
2009-01-26 20:47:07 +0100 aw r266947 : #i98404# handle BackgroundColorPrimitive2D directly in PixelRenderers and avoid AA under all circumstances
2009-01-26 14:50:36 +0100 aw r266926 : #i98386# secured cloning of SdrObject in IMapUserData by boost::shared_prt usage
2009-01-26 12:51:30 +0100 aw r266916 : #i96581# added separated FontStretching and fallback for small X!=Y scale differences
2009-01-23 16:14:55 +0100 aw r266834 : #i96475# added missing implementation of TextDecoratedPortionPrimitive2D::getB2DRange
2009-01-23 15:24:34 +0100 aw r266826 : #i98405# fixed fallback to DrawAlphaRect to use the correctly sized rectangle
2009-01-23 13:34:43 +0100 aw r266813 : #i96474# fixed impSplitSingleWords for an unexpected case
2009-01-23 10:47:31 +0100 aw r266786 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:20 +0100 aw r266785 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:09 +0100 aw r266783 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:58 +0100 aw r266782 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:48 +0100 aw r266781 : #i98289#,#i96474# tooling and new flags for tasks
2009-03-04 14:16:02 +00:00
|
|
|
GetAttrPool().SetPoolDefaultItem(SvxFontHeightItem( 240, 100, EE_CHAR_FONTHEIGHT ));
|
2001-11-27 09:12:49 +00:00
|
|
|
|
2001-07-23 16:20:51 +00:00
|
|
|
RTL_LOGFILE_CONTEXT_TRACE( aLog, "before create DrawDocument" );
|
2000-09-18 23:08:29 +00:00
|
|
|
//Das SdrModel gehoert dem Dokument, wir haben immer zwei Layer und eine
|
|
|
|
//Seite.
|
|
|
|
pDrawModel = new SwDrawDocument( this );
|
|
|
|
|
2009-06-04 16:21:29 +00:00
|
|
|
pDrawModel->EnableUndo( DoesUndo() );
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
String sLayerNm;
|
|
|
|
sLayerNm.AssignAscii(RTL_CONSTASCII_STRINGPARAM("Hell" ));
|
|
|
|
nHell = pDrawModel->GetLayerAdmin().NewLayer( sLayerNm )->GetID();
|
|
|
|
|
|
|
|
sLayerNm.AssignAscii(RTL_CONSTASCII_STRINGPARAM("Heaven" ));
|
|
|
|
nHeaven = pDrawModel->GetLayerAdmin().NewLayer( sLayerNm )->GetID();
|
|
|
|
|
|
|
|
sLayerNm.AssignAscii(RTL_CONSTASCII_STRINGPARAM("Controls" ));
|
|
|
|
nControls = pDrawModel->GetLayerAdmin().NewLayer( sLayerNm )->GetID();
|
|
|
|
|
2003-07-04 12:19:16 +00:00
|
|
|
// OD 25.06.2003 #108784# - add invisible layers corresponding to the
|
|
|
|
// visible ones.
|
|
|
|
{
|
|
|
|
sLayerNm.AssignAscii(RTL_CONSTASCII_STRINGPARAM("InvisibleHell" ));
|
|
|
|
nInvisibleHell = pDrawModel->GetLayerAdmin().NewLayer( sLayerNm )->GetID();
|
|
|
|
|
|
|
|
sLayerNm.AssignAscii(RTL_CONSTASCII_STRINGPARAM("InvisibleHeaven" ));
|
|
|
|
nInvisibleHeaven = pDrawModel->GetLayerAdmin().NewLayer( sLayerNm )->GetID();
|
|
|
|
|
|
|
|
sLayerNm.AssignAscii(RTL_CONSTASCII_STRINGPARAM("InvisibleControls" ));
|
|
|
|
nInvisibleControls = pDrawModel->GetLayerAdmin().NewLayer( sLayerNm )->GetID();
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
pDrawModel->InsertPage( pDrawModel->AllocPage( FALSE ) );
|
2001-07-23 16:20:51 +00:00
|
|
|
RTL_LOGFILE_CONTEXT_TRACE( aLog, "after create DrawDocument" );
|
|
|
|
|
|
|
|
RTL_LOGFILE_CONTEXT_TRACE( aLog, "before create Spellchecker/Hyphenator" );
|
2000-09-18 23:08:29 +00:00
|
|
|
SdrOutliner& rOutliner = pDrawModel->GetDrawOutliner();
|
2000-10-27 10:55:57 +00:00
|
|
|
uno::Reference< XSpellChecker1 > xSpell = ::GetSpellChecker();
|
2000-09-18 23:08:29 +00:00
|
|
|
rOutliner.SetSpeller( xSpell );
|
2001-10-18 17:16:15 +00:00
|
|
|
uno::Reference<XHyphenator> xHyphenator( ::GetHyphenator() );
|
|
|
|
rOutliner.SetHyphenator( xHyphenator );
|
2001-07-23 16:20:51 +00:00
|
|
|
RTL_LOGFILE_CONTEXT_TRACE( aLog, "after create Spellchecker/Hyphenator" );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SetCalcFieldValueHdl(&rOutliner);
|
|
|
|
SetCalcFieldValueHdl(&pDrawModel->GetHitTestOutliner());
|
|
|
|
|
|
|
|
//JP 16.07.98: Bug 50193 - Linkmanager am Model setzen, damit
|
|
|
|
// dort ggfs. verlinkte Grafiken eingefuegt werden koennen
|
|
|
|
//JP 28.01.99: der WinWord Import benoetigt ihn auch
|
|
|
|
pDrawModel->SetLinkManager( &GetLinkManager() );
|
2006-08-14 14:56:41 +00:00
|
|
|
pDrawModel->SetAddExtLeading( get(IDocumentSettingAccess::ADD_EXT_LEADING) );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2006-08-14 14:56:41 +00:00
|
|
|
OutputDevice* pRefDev = getReferenceDevice( false );
|
2003-04-01 08:52:49 +00:00
|
|
|
if ( pRefDev )
|
|
|
|
pDrawModel->SetRefDevice( pRefDev );
|
2003-10-15 08:54:16 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
pDrawModel->SetNotifyUndoActionHdl( LINK( this, SwDoc, AddDrawUndo ));
|
|
|
|
if ( pLayout )
|
|
|
|
{
|
|
|
|
pLayout->SetDrawPage( pDrawModel->GetPage( 0 ) );
|
|
|
|
pLayout->GetDrawPage()->SetSize( pLayout->Frm().SSize() );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2003-07-04 12:19:16 +00:00
|
|
|
/** method to notify drawing page view about the invisible layers
|
|
|
|
|
|
|
|
OD 26.06.2003 #108784#
|
|
|
|
|
|
|
|
@author OD
|
|
|
|
*/
|
|
|
|
void SwDoc::NotifyInvisibleLayers( SdrPageView& _rSdrPageView )
|
|
|
|
{
|
|
|
|
String sLayerNm;
|
|
|
|
sLayerNm.AssignAscii(RTL_CONSTASCII_STRINGPARAM("InvisibleHell" ));
|
|
|
|
_rSdrPageView.SetLayerVisible( sLayerNm, FALSE );
|
|
|
|
|
|
|
|
sLayerNm.AssignAscii(RTL_CONSTASCII_STRINGPARAM("InvisibleHeaven" ));
|
|
|
|
_rSdrPageView.SetLayerVisible( sLayerNm, FALSE );
|
|
|
|
|
|
|
|
sLayerNm.AssignAscii(RTL_CONSTASCII_STRINGPARAM("InvisibleControls" ));
|
|
|
|
_rSdrPageView.SetLayerVisible( sLayerNm, FALSE );
|
|
|
|
}
|
|
|
|
|
|
|
|
/** method to determine, if a layer ID belongs to the visible ones.
|
|
|
|
|
|
|
|
OD 25.06.2003 #108784#
|
|
|
|
Note: If given layer ID is unknown, method asserts and returns <false>.
|
|
|
|
|
|
|
|
@author OD
|
|
|
|
*/
|
2004-02-26 14:26:35 +00:00
|
|
|
bool SwDoc::IsVisibleLayerId( const SdrLayerID& _nLayerId ) const
|
2003-07-04 12:19:16 +00:00
|
|
|
{
|
|
|
|
bool bRetVal;
|
|
|
|
|
|
|
|
if ( _nLayerId == GetHeavenId() ||
|
|
|
|
_nLayerId == GetHellId() ||
|
|
|
|
_nLayerId == GetControlsId() )
|
|
|
|
{
|
|
|
|
bRetVal = true;
|
|
|
|
}
|
|
|
|
else if ( _nLayerId == GetInvisibleHeavenId() ||
|
|
|
|
_nLayerId == GetInvisibleHellId() ||
|
|
|
|
_nLayerId == GetInvisibleControlsId() )
|
|
|
|
{
|
|
|
|
bRetVal = false;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
ASSERT( false, "<SwDoc::IsVisibleLayerId(..)> - unknown layer ID." );
|
|
|
|
bRetVal = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
return bRetVal;
|
|
|
|
}
|
|
|
|
|
|
|
|
/** method to determine, if the corresponding visible layer ID for a invisible one.
|
|
|
|
|
|
|
|
OD 25.06.2003 #108784#
|
|
|
|
Note: If given layer ID is a visible one, method returns given layer ID.
|
|
|
|
Note: If given layer ID is unknown, method returns given layer ID.
|
|
|
|
|
|
|
|
@author OD
|
|
|
|
*/
|
|
|
|
SdrLayerID SwDoc::GetVisibleLayerIdByInvisibleOne( const SdrLayerID& _nInvisibleLayerId )
|
|
|
|
{
|
|
|
|
SdrLayerID nVisibleLayerId;
|
|
|
|
|
|
|
|
if ( _nInvisibleLayerId == GetInvisibleHeavenId() )
|
|
|
|
{
|
|
|
|
nVisibleLayerId = GetHeavenId();
|
|
|
|
}
|
|
|
|
else if ( _nInvisibleLayerId == GetInvisibleHellId() )
|
|
|
|
{
|
|
|
|
nVisibleLayerId = GetHellId();
|
|
|
|
}
|
|
|
|
else if ( _nInvisibleLayerId == GetInvisibleControlsId() )
|
|
|
|
{
|
|
|
|
nVisibleLayerId = GetControlsId();
|
|
|
|
}
|
|
|
|
else if ( _nInvisibleLayerId == GetHeavenId() ||
|
|
|
|
_nInvisibleLayerId == GetHellId() ||
|
|
|
|
_nInvisibleLayerId == GetControlsId() )
|
|
|
|
{
|
|
|
|
ASSERT( false, "<SwDoc::GetVisibleLayerIdByInvisibleOne(..)> - given layer ID already an invisible one." );
|
|
|
|
nVisibleLayerId = _nInvisibleLayerId;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
ASSERT( false, "<SwDoc::GetVisibleLayerIdByInvisibleOne(..)> - given layer ID is unknown." );
|
|
|
|
nVisibleLayerId = _nInvisibleLayerId;
|
|
|
|
}
|
|
|
|
|
|
|
|
return nVisibleLayerId;
|
|
|
|
}
|
|
|
|
|
|
|
|
/** method to determine, if the corresponding invisible layer ID for a visible one.
|
|
|
|
|
|
|
|
OD 25.06.2003 #108784#
|
|
|
|
Note: If given layer ID is a invisible one, method returns given layer ID.
|
|
|
|
Note: If given layer ID is unknown, method returns given layer ID.
|
|
|
|
|
|
|
|
@author OD
|
|
|
|
*/
|
|
|
|
SdrLayerID SwDoc::GetInvisibleLayerIdByVisibleOne( const SdrLayerID& _nVisibleLayerId )
|
|
|
|
{
|
|
|
|
SdrLayerID nInvisibleLayerId;
|
|
|
|
|
|
|
|
if ( _nVisibleLayerId == GetHeavenId() )
|
|
|
|
{
|
|
|
|
nInvisibleLayerId = GetInvisibleHeavenId();
|
|
|
|
}
|
|
|
|
else if ( _nVisibleLayerId == GetHellId() )
|
|
|
|
{
|
|
|
|
nInvisibleLayerId = GetInvisibleHellId();
|
|
|
|
}
|
|
|
|
else if ( _nVisibleLayerId == GetControlsId() )
|
|
|
|
{
|
|
|
|
nInvisibleLayerId = GetInvisibleControlsId();
|
|
|
|
}
|
|
|
|
else if ( _nVisibleLayerId == GetInvisibleHeavenId() ||
|
|
|
|
_nVisibleLayerId == GetInvisibleHellId() ||
|
|
|
|
_nVisibleLayerId == GetInvisibleControlsId() )
|
|
|
|
{
|
|
|
|
ASSERT( false, "<SwDoc::GetInvisibleLayerIdByVisibleOne(..)> - given layer ID already an invisible one." );
|
|
|
|
nInvisibleLayerId = _nVisibleLayerId;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
ASSERT( false, "<SwDoc::GetInvisibleLayerIdByVisibleOne(..)> - given layer ID is unknown." );
|
|
|
|
nInvisibleLayerId = _nVisibleLayerId;
|
|
|
|
}
|
|
|
|
|
|
|
|
return nInvisibleLayerId;
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
void SwDoc::ReleaseDrawModel()
|
|
|
|
{
|
|
|
|
if ( pDrawModel )
|
|
|
|
{
|
|
|
|
//!!Den code im sw3io fuer Einfuegen Dokument mitpflegen!!
|
|
|
|
|
|
|
|
delete pDrawModel; pDrawModel = 0;
|
CWS-TOOLING: integrate CWS aw063
2009-02-12 13:10:24 +0100 aw r267649 : #i99123# when a primitive is invisible, it is not sufficient to produce no output when decomposing, but to add invisible data using HitTestPrimitive2D. This is needed for the slideshow which relies on geometry data in MetaFiles when painting invisible objects
2009-02-12 13:08:39 +0100 aw r267648 : #i99123# do not ignore HitTestPrimitive2D, but draw empty rectangles instead. This is needed since Slideshow is based on getting MetaFile content when painting invisible objects
2009-02-11 16:04:28 +0100 aw r267620 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:04:10 +0100 aw r267619 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:56 +0100 aw r267618 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:39 +0100 aw r267617 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:21 +0100 aw r267615 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:48 +0100 aw r267614 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:24 +0100 aw r267613 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:01 +0100 aw r267612 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:32 +0100 aw r267611 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:05 +0100 aw r267610 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:00:15 +0100 aw r267608 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 11:27:33 +0100 aw r267585 : #i98788# added missing include for STL
2009-02-10 17:46:50 +0100 aw r267570 : #i98788# added reaction on pool destruction
2009-02-10 17:11:58 +0100 aw r267562 : #i98788# added messaging mechanism to register for pool destruction
2009-02-10 13:35:35 +0100 aw r267549 : #i98788# removing changes, too complicated and risky for 3.1
2009-02-10 12:13:48 +0100 aw r267546 : #i98788# 4th round
2009-02-10 12:13:37 +0100 aw r267545 : #i98788# 4th round
2009-02-10 12:13:26 +0100 aw r267544 : #i98788# 4th round
2009-02-10 12:13:14 +0100 aw r267543 : #i98788# 4th round
2009-02-10 12:13:03 +0100 aw r267542 : #i98788# 4th round
2009-02-10 12:12:50 +0100 aw r267541 : #i98788# 4th round
2009-02-10 12:12:37 +0100 aw r267540 : #i98788# 4th round
2009-02-08 14:38:22 +0100 aw r267495 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:38:06 +0100 aw r267494 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:48 +0100 aw r267493 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:17 +0100 aw r267492 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:56 +0100 aw r267491 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:44 +0100 aw r267490 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:29 +0100 aw r267489 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:16 +0100 aw r267488 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:02 +0100 aw r267487 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:35:46 +0100 aw r267486 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-05 12:20:39 +0100 aw r267415 : #i98788# 2nd batch of adaptions for SfxItemPoolHolder addition
2009-02-04 15:12:54 +0100 aw r267385 : #i98788# added newline at EOF
2009-02-04 13:26:04 +0100 aw r267379 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:40 +0100 aw r267378 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:08 +0100 aw r267377 : #i98788# make SfxItemPool holdable
2009-02-04 13:24:42 +0100 aw r267376 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:14 +0100 aw r267375 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:02 +0100 aw r267374 : #i98788# make SfxItemPool holdable
2009-01-29 17:08:31 +0100 aw r267159 : #i97628# completed the fix
2009-01-29 17:08:15 +0100 aw r267158 : #i97628# completed the fix
2009-01-29 14:09:07 +0100 aw r267132 : #i97628# Corrected usage of ParagraphData in headers
2009-01-29 14:06:58 +0100 iha r267131 : #i98344# incorrect font size in charts
2009-01-29 12:13:46 +0100 aw r267115 : #i97628# back to old state; triggers too many errors in other modules
2009-01-29 12:03:51 +0100 aw r267114 : #i97628# enabled exceptions due to STL vector include
2009-01-29 11:21:37 +0100 aw r267107 : #i97628# added needed include
2009-01-28 17:58:29 +0100 aw r267077 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:58:12 +0100 aw r267076 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:51 +0100 aw r267074 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:21 +0100 aw r267073 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-27 17:07:33 +0100 aw r267011 : #i98402# added support for ViewRange when exporting MetaFiles in ObjectContactOfPageView::DoProcessDisplay to avoid to paint too much
2009-01-27 11:45:48 +0100 aw r266973 : #i98404# Added a warning to a place where a conversion to rectangle should not be copied from
2009-01-26 21:44:36 +0100 iha r266949 : #i98497# 3D charts are rendered with wrong size
2009-01-26 20:47:07 +0100 aw r266947 : #i98404# handle BackgroundColorPrimitive2D directly in PixelRenderers and avoid AA under all circumstances
2009-01-26 14:50:36 +0100 aw r266926 : #i98386# secured cloning of SdrObject in IMapUserData by boost::shared_prt usage
2009-01-26 12:51:30 +0100 aw r266916 : #i96581# added separated FontStretching and fallback for small X!=Y scale differences
2009-01-23 16:14:55 +0100 aw r266834 : #i96475# added missing implementation of TextDecoratedPortionPrimitive2D::getB2DRange
2009-01-23 15:24:34 +0100 aw r266826 : #i98405# fixed fallback to DrawAlphaRect to use the correctly sized rectangle
2009-01-23 13:34:43 +0100 aw r266813 : #i96474# fixed impSplitSingleWords for an unexpected case
2009-01-23 10:47:31 +0100 aw r266786 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:20 +0100 aw r266785 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:09 +0100 aw r266783 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:58 +0100 aw r266782 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:48 +0100 aw r266781 : #i98289#,#i96474# tooling and new flags for tasks
2009-03-04 14:16:02 +00:00
|
|
|
SfxItemPool *pSdrPool = GetAttrPool().GetSecondaryPool();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
ASSERT( pSdrPool, "missing Pool" );
|
|
|
|
SfxItemPool *pEEgPool = pSdrPool->GetSecondaryPool();
|
|
|
|
ASSERT( !pEEgPool->GetSecondaryPool(), "i don't accept additional pools");
|
|
|
|
pSdrPool->Delete(); //Erst die Items vernichten lassen,
|
|
|
|
//dann erst die Verkettung loesen
|
CWS-TOOLING: integrate CWS aw063
2009-02-12 13:10:24 +0100 aw r267649 : #i99123# when a primitive is invisible, it is not sufficient to produce no output when decomposing, but to add invisible data using HitTestPrimitive2D. This is needed for the slideshow which relies on geometry data in MetaFiles when painting invisible objects
2009-02-12 13:08:39 +0100 aw r267648 : #i99123# do not ignore HitTestPrimitive2D, but draw empty rectangles instead. This is needed since Slideshow is based on getting MetaFile content when painting invisible objects
2009-02-11 16:04:28 +0100 aw r267620 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:04:10 +0100 aw r267619 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:56 +0100 aw r267618 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:39 +0100 aw r267617 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:21 +0100 aw r267615 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:48 +0100 aw r267614 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:24 +0100 aw r267613 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:01 +0100 aw r267612 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:32 +0100 aw r267611 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:05 +0100 aw r267610 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:00:15 +0100 aw r267608 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 11:27:33 +0100 aw r267585 : #i98788# added missing include for STL
2009-02-10 17:46:50 +0100 aw r267570 : #i98788# added reaction on pool destruction
2009-02-10 17:11:58 +0100 aw r267562 : #i98788# added messaging mechanism to register for pool destruction
2009-02-10 13:35:35 +0100 aw r267549 : #i98788# removing changes, too complicated and risky for 3.1
2009-02-10 12:13:48 +0100 aw r267546 : #i98788# 4th round
2009-02-10 12:13:37 +0100 aw r267545 : #i98788# 4th round
2009-02-10 12:13:26 +0100 aw r267544 : #i98788# 4th round
2009-02-10 12:13:14 +0100 aw r267543 : #i98788# 4th round
2009-02-10 12:13:03 +0100 aw r267542 : #i98788# 4th round
2009-02-10 12:12:50 +0100 aw r267541 : #i98788# 4th round
2009-02-10 12:12:37 +0100 aw r267540 : #i98788# 4th round
2009-02-08 14:38:22 +0100 aw r267495 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:38:06 +0100 aw r267494 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:48 +0100 aw r267493 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:17 +0100 aw r267492 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:56 +0100 aw r267491 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:44 +0100 aw r267490 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:29 +0100 aw r267489 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:16 +0100 aw r267488 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:02 +0100 aw r267487 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:35:46 +0100 aw r267486 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-05 12:20:39 +0100 aw r267415 : #i98788# 2nd batch of adaptions for SfxItemPoolHolder addition
2009-02-04 15:12:54 +0100 aw r267385 : #i98788# added newline at EOF
2009-02-04 13:26:04 +0100 aw r267379 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:40 +0100 aw r267378 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:08 +0100 aw r267377 : #i98788# make SfxItemPool holdable
2009-02-04 13:24:42 +0100 aw r267376 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:14 +0100 aw r267375 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:02 +0100 aw r267374 : #i98788# make SfxItemPool holdable
2009-01-29 17:08:31 +0100 aw r267159 : #i97628# completed the fix
2009-01-29 17:08:15 +0100 aw r267158 : #i97628# completed the fix
2009-01-29 14:09:07 +0100 aw r267132 : #i97628# Corrected usage of ParagraphData in headers
2009-01-29 14:06:58 +0100 iha r267131 : #i98344# incorrect font size in charts
2009-01-29 12:13:46 +0100 aw r267115 : #i97628# back to old state; triggers too many errors in other modules
2009-01-29 12:03:51 +0100 aw r267114 : #i97628# enabled exceptions due to STL vector include
2009-01-29 11:21:37 +0100 aw r267107 : #i97628# added needed include
2009-01-28 17:58:29 +0100 aw r267077 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:58:12 +0100 aw r267076 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:51 +0100 aw r267074 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:21 +0100 aw r267073 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-27 17:07:33 +0100 aw r267011 : #i98402# added support for ViewRange when exporting MetaFiles in ObjectContactOfPageView::DoProcessDisplay to avoid to paint too much
2009-01-27 11:45:48 +0100 aw r266973 : #i98404# Added a warning to a place where a conversion to rectangle should not be copied from
2009-01-26 21:44:36 +0100 iha r266949 : #i98497# 3D charts are rendered with wrong size
2009-01-26 20:47:07 +0100 aw r266947 : #i98404# handle BackgroundColorPrimitive2D directly in PixelRenderers and avoid AA under all circumstances
2009-01-26 14:50:36 +0100 aw r266926 : #i98386# secured cloning of SdrObject in IMapUserData by boost::shared_prt usage
2009-01-26 12:51:30 +0100 aw r266916 : #i96581# added separated FontStretching and fallback for small X!=Y scale differences
2009-01-23 16:14:55 +0100 aw r266834 : #i96475# added missing implementation of TextDecoratedPortionPrimitive2D::getB2DRange
2009-01-23 15:24:34 +0100 aw r266826 : #i98405# fixed fallback to DrawAlphaRect to use the correctly sized rectangle
2009-01-23 13:34:43 +0100 aw r266813 : #i96474# fixed impSplitSingleWords for an unexpected case
2009-01-23 10:47:31 +0100 aw r266786 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:20 +0100 aw r266785 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:09 +0100 aw r266783 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:58 +0100 aw r266782 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:48 +0100 aw r266781 : #i98289#,#i96474# tooling and new flags for tasks
2009-03-04 14:16:02 +00:00
|
|
|
GetAttrPool().SetSecondaryPool( 0 ); //Der ist ein muss!
|
2000-09-18 23:08:29 +00:00
|
|
|
pSdrPool->SetSecondaryPool( 0 ); //Der ist sicherer
|
CWS-TOOLING: integrate CWS aw063
2009-02-12 13:10:24 +0100 aw r267649 : #i99123# when a primitive is invisible, it is not sufficient to produce no output when decomposing, but to add invisible data using HitTestPrimitive2D. This is needed for the slideshow which relies on geometry data in MetaFiles when painting invisible objects
2009-02-12 13:08:39 +0100 aw r267648 : #i99123# do not ignore HitTestPrimitive2D, but draw empty rectangles instead. This is needed since Slideshow is based on getting MetaFile content when painting invisible objects
2009-02-11 16:04:28 +0100 aw r267620 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:04:10 +0100 aw r267619 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:56 +0100 aw r267618 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:39 +0100 aw r267617 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:03:21 +0100 aw r267615 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:48 +0100 aw r267614 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:24 +0100 aw r267613 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:02:01 +0100 aw r267612 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:32 +0100 aw r267611 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:01:05 +0100 aw r267610 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 16:00:15 +0100 aw r267608 : #i98788# made SfxItemPool destructor protected, added static ::Free method
2009-02-11 11:27:33 +0100 aw r267585 : #i98788# added missing include for STL
2009-02-10 17:46:50 +0100 aw r267570 : #i98788# added reaction on pool destruction
2009-02-10 17:11:58 +0100 aw r267562 : #i98788# added messaging mechanism to register for pool destruction
2009-02-10 13:35:35 +0100 aw r267549 : #i98788# removing changes, too complicated and risky for 3.1
2009-02-10 12:13:48 +0100 aw r267546 : #i98788# 4th round
2009-02-10 12:13:37 +0100 aw r267545 : #i98788# 4th round
2009-02-10 12:13:26 +0100 aw r267544 : #i98788# 4th round
2009-02-10 12:13:14 +0100 aw r267543 : #i98788# 4th round
2009-02-10 12:13:03 +0100 aw r267542 : #i98788# 4th round
2009-02-10 12:12:50 +0100 aw r267541 : #i98788# 4th round
2009-02-10 12:12:37 +0100 aw r267540 : #i98788# 4th round
2009-02-08 14:38:22 +0100 aw r267495 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:38:06 +0100 aw r267494 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:48 +0100 aw r267493 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:37:17 +0100 aw r267492 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:56 +0100 aw r267491 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:44 +0100 aw r267490 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:29 +0100 aw r267489 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:16 +0100 aw r267488 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:36:02 +0100 aw r267487 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-08 14:35:46 +0100 aw r267486 : #i98788# 3rd round of changes to SfxItemPool handling
2009-02-05 12:20:39 +0100 aw r267415 : #i98788# 2nd batch of adaptions for SfxItemPoolHolder addition
2009-02-04 15:12:54 +0100 aw r267385 : #i98788# added newline at EOF
2009-02-04 13:26:04 +0100 aw r267379 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:40 +0100 aw r267378 : #i98788# make SfxItemPool holdable
2009-02-04 13:25:08 +0100 aw r267377 : #i98788# make SfxItemPool holdable
2009-02-04 13:24:42 +0100 aw r267376 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:14 +0100 aw r267375 : #i98788# make SfxItemPool holdable
2009-02-04 13:23:02 +0100 aw r267374 : #i98788# make SfxItemPool holdable
2009-01-29 17:08:31 +0100 aw r267159 : #i97628# completed the fix
2009-01-29 17:08:15 +0100 aw r267158 : #i97628# completed the fix
2009-01-29 14:09:07 +0100 aw r267132 : #i97628# Corrected usage of ParagraphData in headers
2009-01-29 14:06:58 +0100 iha r267131 : #i98344# incorrect font size in charts
2009-01-29 12:13:46 +0100 aw r267115 : #i97628# back to old state; triggers too many errors in other modules
2009-01-29 12:03:51 +0100 aw r267114 : #i97628# enabled exceptions due to STL vector include
2009-01-29 11:21:37 +0100 aw r267107 : #i97628# added needed include
2009-01-28 17:58:29 +0100 aw r267077 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:58:12 +0100 aw r267076 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:51 +0100 aw r267074 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-28 17:57:21 +0100 aw r267073 : #i97628# first version of newly implemented OutlinerParaObject and adaptions
2009-01-27 17:07:33 +0100 aw r267011 : #i98402# added support for ViewRange when exporting MetaFiles in ObjectContactOfPageView::DoProcessDisplay to avoid to paint too much
2009-01-27 11:45:48 +0100 aw r266973 : #i98404# Added a warning to a place where a conversion to rectangle should not be copied from
2009-01-26 21:44:36 +0100 iha r266949 : #i98497# 3D charts are rendered with wrong size
2009-01-26 20:47:07 +0100 aw r266947 : #i98404# handle BackgroundColorPrimitive2D directly in PixelRenderers and avoid AA under all circumstances
2009-01-26 14:50:36 +0100 aw r266926 : #i98386# secured cloning of SdrObject in IMapUserData by boost::shared_prt usage
2009-01-26 12:51:30 +0100 aw r266916 : #i96581# added separated FontStretching and fallback for small X!=Y scale differences
2009-01-23 16:14:55 +0100 aw r266834 : #i96475# added missing implementation of TextDecoratedPortionPrimitive2D::getB2DRange
2009-01-23 15:24:34 +0100 aw r266826 : #i98405# fixed fallback to DrawAlphaRect to use the correctly sized rectangle
2009-01-23 13:34:43 +0100 aw r266813 : #i96474# fixed impSplitSingleWords for an unexpected case
2009-01-23 10:47:31 +0100 aw r266786 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:20 +0100 aw r266785 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:47:09 +0100 aw r266783 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:58 +0100 aw r266782 : #i98289#,#i96474# tooling and new flags for tasks
2009-01-23 10:46:48 +0100 aw r266781 : #i98289#,#i96474# tooling and new flags for tasks
2009-03-04 14:16:02 +00:00
|
|
|
SfxItemPool::Free(pSdrPool);
|
|
|
|
SfxItemPool::Free(pEEgPool);
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
SdrModel* SwDoc::_MakeDrawModel()
|
|
|
|
{
|
|
|
|
ASSERT( !pDrawModel, "_MakeDrawModel: Why?" );
|
|
|
|
InitDrawModel();
|
|
|
|
if ( pLayout && pLayout->GetCurrShell() )
|
|
|
|
{
|
|
|
|
ViewShell* pTmp = pLayout->GetCurrShell();
|
|
|
|
do
|
|
|
|
{
|
|
|
|
pTmp->MakeDrawView();
|
|
|
|
pTmp = (ViewShell*) pTmp->GetNext();
|
|
|
|
} while ( pTmp != pLayout->GetCurrShell() );
|
|
|
|
|
|
|
|
//Broadcast, damit die FormShell mit der DrawView verbunden werden kann
|
|
|
|
if( GetDocShell() )
|
|
|
|
{
|
|
|
|
SfxSimpleHint aHnt( SW_BROADCAST_DRAWVIEWS_CREATED );
|
|
|
|
GetDocShell()->Broadcast( aHnt );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return pDrawModel;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
|
|
|
|
void SwDoc::DrawNotifyUndoHdl()
|
|
|
|
{
|
|
|
|
pDrawModel->SetNotifyUndoActionHdl( Link() );
|
|
|
|
}
|
|
|
|
|
2004-06-16 08:36:11 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
|
|
|
* Am Outliner Link auf Methode fuer Felddarstellung in Editobjekten setzen
|
|
|
|
*
|
|
|
|
*************************************************************************/
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
void SwDoc::SetCalcFieldValueHdl(Outliner* pOutliner)
|
|
|
|
{
|
|
|
|
pOutliner->SetCalcFieldValueHdl(LINK(this, SwDoc, CalcFieldValueHdl));
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
|*
|
|
|
|
|* Felder bzw URLs im Outliner erkennen und Darstellung festlegen
|
|
|
|
|*
|
|
|
|
\************************************************************************/
|
|
|
|
|
|
|
|
IMPL_LINK(SwDoc, CalcFieldValueHdl, EditFieldInfo*, pInfo)
|
|
|
|
{
|
|
|
|
if (pInfo)
|
|
|
|
{
|
|
|
|
const SvxFieldItem& rField = pInfo->GetField();
|
|
|
|
const SvxFieldData* pField = rField.GetField();
|
|
|
|
|
|
|
|
if (pField && pField->ISA(SvxDateField))
|
|
|
|
{
|
|
|
|
/******************************************************************
|
|
|
|
* Date-Field
|
|
|
|
******************************************************************/
|
|
|
|
pInfo->SetRepresentation(
|
2001-06-13 12:52:57 +00:00
|
|
|
((const SvxDateField*) pField)->GetFormatted(
|
|
|
|
*GetNumberFormatter( TRUE ), LANGUAGE_SYSTEM) );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
else if (pField && pField->ISA(SvxURLField))
|
|
|
|
{
|
|
|
|
/******************************************************************
|
|
|
|
* URL-Field
|
|
|
|
******************************************************************/
|
|
|
|
|
|
|
|
switch ( ((const SvxURLField*) pField)->GetFormat() )
|
|
|
|
{
|
|
|
|
case SVXURLFORMAT_APPDEFAULT: //!!! einstellbar an App???
|
|
|
|
case SVXURLFORMAT_REPR:
|
|
|
|
{
|
|
|
|
pInfo->SetRepresentation(
|
|
|
|
((const SvxURLField*)pField)->GetRepresentation());
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case SVXURLFORMAT_URL:
|
|
|
|
{
|
|
|
|
pInfo->SetRepresentation(
|
|
|
|
((const SvxURLField*)pField)->GetURL());
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
USHORT nChrFmt;
|
|
|
|
|
|
|
|
if (IsVisitedURL(((const SvxURLField*)pField)->GetURL()))
|
|
|
|
nChrFmt = RES_POOLCHR_INET_VISIT;
|
|
|
|
else
|
|
|
|
nChrFmt = RES_POOLCHR_INET_NORMAL;
|
|
|
|
|
|
|
|
SwFmt *pFmt = GetCharFmtFromPool(nChrFmt);
|
|
|
|
|
|
|
|
Color aColor(COL_LIGHTBLUE);
|
|
|
|
if (pFmt)
|
|
|
|
aColor = pFmt->GetColor().GetValue();
|
|
|
|
|
|
|
|
pInfo->SetTxtColor(aColor);
|
|
|
|
}
|
|
|
|
else if (pField && pField->ISA(SdrMeasureField))
|
|
|
|
{
|
|
|
|
/******************************************************************
|
|
|
|
* Measure-Field
|
|
|
|
******************************************************************/
|
|
|
|
pInfo->ClearFldColor();
|
|
|
|
}
|
2002-11-22 09:44:14 +00:00
|
|
|
else if ( pField && pField->ISA(SvxExtTimeField))
|
|
|
|
{
|
|
|
|
/******************************************************************
|
|
|
|
* Time-Field
|
|
|
|
******************************************************************/
|
|
|
|
pInfo->SetRepresentation(
|
|
|
|
((const SvxExtTimeField*) pField)->GetFormatted(
|
|
|
|
*GetNumberFormatter( TRUE ), LANGUAGE_SYSTEM) );
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
DBG_ERROR("unbekannter Feldbefehl");
|
|
|
|
pInfo->SetRepresentation( String( '?' ) );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return(0);
|
|
|
|
}
|
2006-03-22 11:22:53 +00:00
|
|
|
|
2006-08-14 14:56:41 +00:00
|
|
|
/* TFFDI: The functions formerly declared 'inline'
|
|
|
|
*/
|
|
|
|
const SdrModel* SwDoc::GetDrawModel() const { return pDrawModel; }
|
|
|
|
SdrModel* SwDoc::GetDrawModel() { return pDrawModel; }
|
|
|
|
SdrLayerID SwDoc::GetHeavenId() const { return nHeaven; }
|
|
|
|
SdrLayerID SwDoc::GetHellId() const { return nHell; }
|
|
|
|
SdrLayerID SwDoc::GetControlsId() const { return nControls; }
|
|
|
|
SdrLayerID SwDoc::GetInvisibleHeavenId() const { return nInvisibleHeaven; }
|
|
|
|
SdrLayerID SwDoc::GetInvisibleHellId() const { return nInvisibleHell; }
|
|
|
|
SdrLayerID SwDoc::GetInvisibleControlsId() const { return nInvisibleControls; }
|
|
|
|
SdrModel* SwDoc::GetOrCreateDrawModel() { return GetDrawModel() ? GetDrawModel() : _MakeDrawModel(); }
|
|
|
|
|
2006-03-22 11:22:53 +00:00
|
|
|
// --> OD 2006-03-14 #i62875#
|
|
|
|
namespace docfunc
|
|
|
|
{
|
|
|
|
bool ExistsDrawObjs( SwDoc& p_rDoc )
|
|
|
|
{
|
|
|
|
bool bExistsDrawObjs( false );
|
|
|
|
|
|
|
|
if ( p_rDoc.GetDrawModel() &&
|
|
|
|
p_rDoc.GetDrawModel()->GetPage( 0 ) )
|
|
|
|
{
|
|
|
|
const SdrPage& rSdrPage( *(p_rDoc.GetDrawModel()->GetPage( 0 )) );
|
|
|
|
|
|
|
|
SdrObjListIter aIter( rSdrPage, IM_FLAT );
|
|
|
|
while( aIter.IsMore() )
|
|
|
|
{
|
|
|
|
SdrObject* pObj( aIter.Next() );
|
|
|
|
if ( !dynamic_cast<SwVirtFlyDrawObj*>(pObj) &&
|
|
|
|
!dynamic_cast<SwFlyDrawObj*>(pObj) )
|
|
|
|
{
|
|
|
|
bExistsDrawObjs = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return bExistsDrawObjs;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool AllDrawObjsOnPage( SwDoc& p_rDoc )
|
|
|
|
{
|
|
|
|
bool bAllDrawObjsOnPage( true );
|
|
|
|
|
|
|
|
if ( p_rDoc.GetDrawModel() &&
|
|
|
|
p_rDoc.GetDrawModel()->GetPage( 0 ) )
|
|
|
|
{
|
|
|
|
const SdrPage& rSdrPage( *(p_rDoc.GetDrawModel()->GetPage( 0 )) );
|
|
|
|
|
|
|
|
SdrObjListIter aIter( rSdrPage, IM_FLAT );
|
|
|
|
while( aIter.IsMore() )
|
|
|
|
{
|
|
|
|
SdrObject* pObj( aIter.Next() );
|
|
|
|
if ( !dynamic_cast<SwVirtFlyDrawObj*>(pObj) &&
|
|
|
|
!dynamic_cast<SwFlyDrawObj*>(pObj) )
|
|
|
|
{
|
|
|
|
SwDrawContact* pDrawContact =
|
|
|
|
dynamic_cast<SwDrawContact*>(::GetUserCall( pObj ));
|
|
|
|
if ( pDrawContact )
|
|
|
|
{
|
|
|
|
SwAnchoredDrawObject* pAnchoredDrawObj =
|
|
|
|
dynamic_cast<SwAnchoredDrawObject*>(pDrawContact->GetAnchoredObj( pObj ));
|
|
|
|
|
|
|
|
// error handling
|
|
|
|
{
|
|
|
|
if ( !pAnchoredDrawObj )
|
|
|
|
{
|
|
|
|
ASSERT( false,
|
|
|
|
"<docfunc::AllDrawObjsOnPage() - missing anchored draw object" );
|
|
|
|
bAllDrawObjsOnPage = false;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( pAnchoredDrawObj->NotYetPositioned() )
|
|
|
|
{
|
|
|
|
// The drawing object isn't yet layouted.
|
|
|
|
// Thus, it isn't known, if all drawing objects are on page.
|
|
|
|
bAllDrawObjsOnPage = false;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
else if ( pAnchoredDrawObj->IsOutsidePage() )
|
|
|
|
{
|
|
|
|
bAllDrawObjsOnPage = false;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
// contact object of drawing object doesn't exists.
|
|
|
|
// Thus, the drawing object isn't yet positioned.
|
|
|
|
// Thus, it isn't known, if all drawing objects are on page.
|
|
|
|
bAllDrawObjsOnPage = false;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return bAllDrawObjsOnPage;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// <--
|
2006-08-14 14:56:41 +00:00
|
|
|
|