2010-10-14 08:30:41 +02:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 14:20:40 +00:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2010-02-12 15:01:35 +01:00
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 14:20:40 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 14:20:40 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 14:20:40 +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 14:20:40 +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 14:20:40 +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 20:34:55 +00:00
|
|
|
// MARKER(update_precomp.py): autogen include statement, do not remove
|
|
|
|
#include "precompiled_sw.hxx"
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2001-03-29 07:02:02 +00:00
|
|
|
#include <com/sun/star/uno/Sequence.h>
|
2009-10-06 07:38:24 +02:00
|
|
|
#include <unotools/linguprops.hxx>
|
|
|
|
#include <unotools/lingucfg.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
#include <hintids.hxx>
|
|
|
|
#include <sfx2/printer.hxx>
|
2010-01-08 18:32:51 +01:00
|
|
|
#include <editeng/hyznitem.hxx>
|
|
|
|
#include <editeng/escpitem.hxx>
|
|
|
|
#include <editeng/hngpnctitem.hxx>
|
|
|
|
#include <editeng/scriptspaceitem.hxx>
|
|
|
|
#include <editeng/brshitem.hxx>
|
|
|
|
#include <editeng/splwrap.hxx>
|
|
|
|
#include <editeng/pgrditem.hxx>
|
|
|
|
#include <editeng/tstpitem.hxx>
|
2007-06-27 12:19:34 +00:00
|
|
|
|
|
|
|
#include <SwSmartTagMgr.hxx>
|
2000-11-19 10:41:10 +00:00
|
|
|
#include <linguistic/lngprops.hxx>
|
2010-01-08 18:32:51 +01:00
|
|
|
#include <editeng/unolingu.hxx>
|
2000-11-30 10:38:54 +00:00
|
|
|
#include <breakit.hxx>
|
2010-01-08 18:32:51 +01:00
|
|
|
#include <editeng/forbiddenruleitem.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
#include <txatbase.hxx>
|
|
|
|
#include <fmtinfmt.hxx>
|
|
|
|
#include <swmodule.hxx>
|
|
|
|
#include <vcl/svapp.hxx>
|
|
|
|
#include <vcl/wrkwin.hxx>
|
|
|
|
#include <viewsh.hxx> // ViewShell
|
|
|
|
#include <viewopt.hxx> // SwViewOptions
|
|
|
|
#include <frmtool.hxx> // DrawGraphic
|
2006-08-14 15:37:23 +00:00
|
|
|
#include <IDocumentSettingAccess.hxx>
|
|
|
|
#include <IDocumentDeviceAccess.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
#include <paratr.hxx> // SwFmtDrop
|
|
|
|
#include <rootfrm.hxx> // SwRootFrm
|
|
|
|
#include <inftxt.hxx> // SwTxtInfo
|
|
|
|
#include <blink.hxx> // SwBlink
|
|
|
|
#include <noteurl.hxx> // SwNoteURL
|
|
|
|
#include <porftn.hxx> // SwFtnPortion
|
2000-11-21 10:29:48 +00:00
|
|
|
#include <porrst.hxx> // SwHangingPortion
|
2000-12-11 10:05:15 +00:00
|
|
|
#include <itratr.hxx>
|
2002-11-01 12:33:00 +00:00
|
|
|
#include <accessibilityoptions.hxx>
|
2008-09-04 09:19:55 +00:00
|
|
|
#include <wrong.hxx>
|
|
|
|
#include <doc.hxx>
|
|
|
|
#include <pam.hxx>
|
2008-07-16 12:28:31 +00:00
|
|
|
#include <SwGrammarMarkUp.hxx>
|
2010-05-11 16:49:04 +02:00
|
|
|
#include <cstdio>
|
2011-04-16 22:42:13 -03:00
|
|
|
// #i12836# enhanced pdf export
|
2004-09-08 15:11:22 +00:00
|
|
|
#include <EnhancedPDFExportHelper.hxx>
|
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
#include <unomid.h>
|
|
|
|
|
2011-05-10 09:56:23 +02:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2010-09-14 14:16:21 +02:00
|
|
|
#include <stdio.h>
|
|
|
|
#endif
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
using namespace ::com::sun::star;
|
2000-10-27 11:17:04 +00:00
|
|
|
using namespace ::com::sun::star::linguistic2;
|
2001-03-29 07:02:02 +00:00
|
|
|
using namespace ::com::sun::star::uno;
|
|
|
|
using namespace ::com::sun::star::beans;
|
2000-10-27 11:17:04 +00:00
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
|
2001-10-10 14:19:15 +00:00
|
|
|
#define CHAR_UNDERSCORE ((sal_Unicode)0x005F)
|
2002-01-21 07:30:44 +00:00
|
|
|
#define CHAR_LEFT_ARROW ((sal_Unicode)0x25C0)
|
|
|
|
#define CHAR_RIGHT_ARROW ((sal_Unicode)0x25B6)
|
|
|
|
#define CHAR_TAB ((sal_Unicode)0x2192)
|
2002-03-21 08:19:43 +00:00
|
|
|
#define CHAR_TAB_RTL ((sal_Unicode)0x2190)
|
2002-01-21 07:30:44 +00:00
|
|
|
#define CHAR_LINEBREAK ((sal_Unicode)0x21B5)
|
2002-03-21 08:19:43 +00:00
|
|
|
#define CHAR_LINEBREAK_RTL ((sal_Unicode)0x21B3)
|
2002-01-21 07:30:44 +00:00
|
|
|
|
2002-06-19 10:52:48 +00:00
|
|
|
#define DRAW_SPECIAL_OPTIONS_CENTER 1
|
|
|
|
#define DRAW_SPECIAL_OPTIONS_ROTATE 2
|
|
|
|
|
2011-04-16 16:19:09 -03:00
|
|
|
//
|
2006-07-25 10:48:32 +00:00
|
|
|
// variable moved to class <numfunc:GetDefBulletConfig>
|
2010-12-06 10:36:22 +00:00
|
|
|
//extern const sal_Char sBulletFntName[];
|
2006-07-25 10:48:32 +00:00
|
|
|
namespace numfunc
|
|
|
|
{
|
|
|
|
extern const String& GetDefBulletFontname();
|
2008-10-10 13:02:43 +00:00
|
|
|
extern bool IsDefBulletFontUserDefined();
|
2006-07-25 10:48:32 +00:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2010-11-16 10:51:51 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2000-09-18 23:08:29 +00:00
|
|
|
// Test2: WYSIWYG++
|
|
|
|
// Test4: WYSIWYG debug
|
|
|
|
static sal_Bool bDbgLow = sal_False;
|
|
|
|
#endif
|
|
|
|
|
2010-11-07 22:11:02 +02:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2000-09-18 23:08:29 +00:00
|
|
|
sal_Bool SwTxtSizeInfo::IsOptCalm() const { return !GetOpt().IsTest3(); }
|
|
|
|
sal_Bool SwTxtSizeInfo::IsOptLow() const { return bDbgLow; }
|
|
|
|
sal_Bool SwTxtSizeInfo::IsOptDbg() const { return GetOpt().IsTest4(); }
|
|
|
|
sal_Bool SwTxtSizeInfo::IsOptTest1() const { return GetOpt().IsTest1(); }
|
|
|
|
sal_Bool SwTxtSizeInfo::IsOptTest2() const { return GetOpt().IsTest2(); }
|
|
|
|
sal_Bool SwTxtSizeInfo::IsOptTest3() const { return GetOpt().IsTest3(); }
|
|
|
|
sal_Bool SwTxtSizeInfo::IsOptTest4() const { return GetOpt().IsTest4(); }
|
|
|
|
sal_Bool SwTxtSizeInfo::IsOptTest5() const { return GetOpt().IsTest5(); }
|
|
|
|
sal_Bool SwTxtSizeInfo::IsOptTest6() const { return GetOpt().IsTest6(); }
|
|
|
|
sal_Bool SwTxtSizeInfo::IsOptTest7() const { return GetOpt().IsTest7(); }
|
|
|
|
sal_Bool SwTxtSizeInfo::IsOptTest8() const { return GetOpt().IsTest8(); }
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwLineInfo::SwLineInfo()
|
|
|
|
*************************************************************************/
|
|
|
|
|
2008-03-05 16:05:19 +00:00
|
|
|
SwLineInfo::SwLineInfo()
|
|
|
|
: pRuler( 0 ),
|
|
|
|
pSpace( 0 ),
|
|
|
|
nVertAlign( 0 ),
|
|
|
|
nDefTabStop( 0 ),
|
|
|
|
bListTabStopIncluded( false ),
|
|
|
|
nListTabStopPosition( 0 )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
SwLineInfo::~SwLineInfo()
|
|
|
|
{
|
|
|
|
delete pRuler;
|
|
|
|
}
|
|
|
|
void SwLineInfo::CtorInitLineInfo( const SwAttrSet& rAttrSet,
|
|
|
|
const SwTxtNode& rTxtNode )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2008-03-05 16:05:19 +00:00
|
|
|
delete pRuler;
|
|
|
|
pRuler = new SvxTabStopItem( rAttrSet.GetTabStops() );
|
|
|
|
if ( rTxtNode.GetListTabStopPosition( nListTabStopPosition ) )
|
|
|
|
{
|
|
|
|
bListTabStopIncluded = true;
|
|
|
|
|
|
|
|
// insert the list tab stop into SvxTabItem instance <pRuler>
|
|
|
|
const SvxTabStop aListTabStop( nListTabStopPosition,
|
|
|
|
SVX_TAB_ADJUST_LEFT );
|
|
|
|
pRuler->Insert( aListTabStop );
|
|
|
|
|
|
|
|
// remove default tab stops, which are before the inserted list tab stop
|
2011-01-17 15:06:54 +01:00
|
|
|
for ( sal_uInt16 i = 0; i < pRuler->Count(); i++ )
|
2008-03-05 16:05:19 +00:00
|
|
|
{
|
|
|
|
if ( (*pRuler)[i].GetTabPos() < nListTabStopPosition &&
|
|
|
|
(*pRuler)[i].GetAdjustment() == SVX_TAB_ADJUST_DEFAULT )
|
|
|
|
{
|
|
|
|
pRuler->Remove(i);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2011-01-17 20:32:43 +01:00
|
|
|
|
2008-03-05 16:05:19 +00:00
|
|
|
if ( !rTxtNode.getIDocumentSettingAccess()->get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT) )
|
|
|
|
{
|
|
|
|
// remove default tab stop at position 0
|
2011-01-17 15:06:54 +01:00
|
|
|
for ( sal_uInt16 i = 0; i < pRuler->Count(); i++ )
|
2008-03-05 16:05:19 +00:00
|
|
|
{
|
|
|
|
if ( (*pRuler)[i].GetTabPos() == 0 &&
|
|
|
|
(*pRuler)[i].GetAdjustment() == SVX_TAB_ADJUST_DEFAULT )
|
|
|
|
{
|
|
|
|
pRuler->Remove(i);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2011-01-17 20:32:43 +01:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
pSpace = &rAttrSet.GetLineSpacing();
|
2001-04-12 06:47:49 +00:00
|
|
|
nVertAlign = rAttrSet.GetParaVertAlign().GetValue();
|
2000-09-18 23:08:29 +00:00
|
|
|
nDefTabStop = MSHRT_MAX;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
2007-09-27 08:13:09 +00:00
|
|
|
* SwTxtInfo::CtorInitTxtInfo()
|
2000-09-18 23:08:29 +00:00
|
|
|
*************************************************************************/
|
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
void SwTxtInfo::CtorInitTxtInfo( SwTxtFrm *pFrm )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
pPara = pFrm->GetPara();
|
|
|
|
nTxtStart = pFrm->GetOfst();
|
|
|
|
if( !pPara )
|
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pPara, "+SwTxtInfo::CTOR: missing paragraph information" );
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm->Format();
|
|
|
|
pPara = pFrm->GetPara();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
SwTxtInfo::SwTxtInfo( const SwTxtInfo &rInf )
|
|
|
|
: pPara( ((SwTxtInfo&)rInf).GetParaPortion() ),
|
|
|
|
nTxtStart( rInf.GetTxtStart() )
|
|
|
|
{ }
|
|
|
|
|
2003-04-01 08:55:42 +00:00
|
|
|
|
2010-11-25 17:08:45 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* ChkOutDev()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
void ChkOutDev( const SwTxtSizeInfo &rInf )
|
|
|
|
{
|
2003-04-17 15:08:38 +00:00
|
|
|
if ( !rInf.GetVsh() )
|
|
|
|
return;
|
|
|
|
|
2003-10-15 08:55:35 +00:00
|
|
|
const OutputDevice* pOut = rInf.GetOut();
|
|
|
|
const OutputDevice* pRef = rInf.GetRefDev();
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pOut && pRef, "ChkOutDev: invalid output devices" );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
#endif // PRODUCT
|
|
|
|
|
2003-04-01 08:55:42 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
inline xub_StrLen GetMinLen( const SwTxtSizeInfo &rInf )
|
|
|
|
{
|
|
|
|
const xub_StrLen nInfLen = rInf.GetIdx() + rInf.GetLen();
|
|
|
|
return Min( rInf.GetTxt().Len(), nInfLen );
|
|
|
|
}
|
|
|
|
|
2003-04-01 08:55:42 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
SwTxtSizeInfo::SwTxtSizeInfo( const SwTxtSizeInfo &rNew )
|
|
|
|
: SwTxtInfo( rNew ),
|
2001-04-09 09:44:17 +00:00
|
|
|
pKanaComp(((SwTxtSizeInfo&)rNew).GetpKanaComp()),
|
2000-09-18 23:08:29 +00:00
|
|
|
pVsh(((SwTxtSizeInfo&)rNew).GetVsh()),
|
|
|
|
pOut(((SwTxtSizeInfo&)rNew).GetOut()),
|
2003-04-01 08:55:42 +00:00
|
|
|
pRef(((SwTxtSizeInfo&)rNew).GetRefDev()),
|
2000-09-18 23:08:29 +00:00
|
|
|
pFnt(((SwTxtSizeInfo&)rNew).GetFont()),
|
2001-10-02 12:51:59 +00:00
|
|
|
pUnderFnt(((SwTxtSizeInfo&)rNew).GetUnderFnt()),
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm(rNew.pFrm),
|
|
|
|
pOpt(&rNew.GetOpt()),
|
|
|
|
pTxt(&rNew.GetTxt()),
|
|
|
|
nIdx(rNew.GetIdx()),
|
|
|
|
nLen(rNew.GetLen()),
|
2001-04-09 09:44:17 +00:00
|
|
|
nKanaIdx( rNew.GetKanaIdx() ),
|
2000-09-18 23:08:29 +00:00
|
|
|
bOnWin( rNew.OnWin() ),
|
|
|
|
bNotEOL( rNew.NotEOL() ),
|
|
|
|
bURLNotify( rNew.URLNotify() ),
|
2000-10-16 12:21:25 +00:00
|
|
|
bStopUnderFlow( rNew.StopUnderFlow() ),
|
2001-11-15 15:40:55 +00:00
|
|
|
bFtnInside( rNew.IsFtnInside() ),
|
2010-03-16 09:54:03 +01:00
|
|
|
bOtherThanFtnInside( rNew.IsOtherThanFtnInside() ),
|
2000-10-16 12:21:25 +00:00
|
|
|
bMulti( rNew.IsMulti() ),
|
2000-11-06 08:24:36 +00:00
|
|
|
bFirstMulti( rNew.IsFirstMulti() ),
|
2000-11-24 14:40:56 +00:00
|
|
|
bRuby( rNew.IsRuby() ),
|
|
|
|
bHanging( rNew.IsHanging() ),
|
2000-11-29 12:25:34 +00:00
|
|
|
bScriptSpace( rNew.HasScriptSpace() ),
|
2000-12-21 08:10:30 +00:00
|
|
|
bForbiddenChars( rNew.HasForbiddenChars() ),
|
2002-02-07 10:20:40 +00:00
|
|
|
bSnapToGrid( rNew.SnapToGrid() ),
|
2001-01-19 14:27:04 +00:00
|
|
|
nDirection( rNew.GetDirection() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2000-09-18 23:08:29 +00:00
|
|
|
ChkOutDev( *this );
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
void SwTxtSizeInfo::CtorInitTxtSizeInfo( SwTxtFrm *pFrame, SwFont *pNewFnt,
|
2000-09-18 23:08:29 +00:00
|
|
|
const xub_StrLen nNewIdx, const xub_StrLen nNewLen )
|
|
|
|
{
|
2001-04-09 09:44:17 +00:00
|
|
|
pKanaComp = NULL;
|
|
|
|
nKanaIdx = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm = pFrame;
|
2007-09-27 08:13:09 +00:00
|
|
|
CtorInitTxtInfo( pFrm );
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwTxtNode *pNd = pFrm->GetTxtNode();
|
2010-06-13 15:22:56 +02:00
|
|
|
pVsh = pFrm->getRootFrm()->GetCurrShell();
|
2002-03-21 08:19:43 +00:00
|
|
|
|
2003-04-01 08:55:42 +00:00
|
|
|
// Get the output and reference device
|
2003-04-17 15:08:38 +00:00
|
|
|
if ( pVsh )
|
|
|
|
{
|
|
|
|
pOut = pVsh->GetOut();
|
|
|
|
pRef = &pVsh->GetRefDev();
|
|
|
|
bOnWin = pVsh->GetWin() || OUTDEV_WINDOW == pOut->GetOutDevType();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
//Zugriff ueber StarONE, es muss keine Shell existieren oder aktiv sein.
|
2010-06-13 15:22:56 +02:00
|
|
|
if ( pNd->getIDocumentSettingAccess()->get(IDocumentSettingAccess::HTML_MODE) )
|
2006-08-14 15:37:23 +00:00
|
|
|
{
|
2003-04-17 15:08:38 +00:00
|
|
|
//in Ermangelung eines Besseren kann hier ja wohl nur noch das
|
|
|
|
//AppWin genommen werden?
|
|
|
|
pOut = GetpApp()->GetDefaultDevice();
|
2006-08-14 15:37:23 +00:00
|
|
|
}
|
2003-04-17 15:08:38 +00:00
|
|
|
else
|
2006-08-14 15:37:23 +00:00
|
|
|
pOut = pNd->getIDocumentDeviceAccess()->getPrinter( false );
|
|
|
|
|
2003-04-17 15:08:38 +00:00
|
|
|
pRef = pOut;
|
|
|
|
}
|
2003-04-01 08:55:42 +00:00
|
|
|
|
2010-11-25 17:08:45 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2003-04-01 08:55:42 +00:00
|
|
|
ChkOutDev( *this );
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// Set default layout mode ( LTR or RTL ).
|
2002-04-24 10:23:43 +00:00
|
|
|
if ( pFrm->IsRightToLeft() )
|
2002-03-21 08:19:43 +00:00
|
|
|
{
|
|
|
|
pOut->SetLayoutMode( TEXT_LAYOUT_BIDI_STRONG | TEXT_LAYOUT_BIDI_RTL );
|
2003-04-01 08:55:42 +00:00
|
|
|
pRef->SetLayoutMode( TEXT_LAYOUT_BIDI_STRONG | TEXT_LAYOUT_BIDI_RTL );
|
2002-03-21 08:19:43 +00:00
|
|
|
nDirection = DIR_RIGHT2LEFT;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2002-08-28 11:44:17 +00:00
|
|
|
pOut->SetLayoutMode( TEXT_LAYOUT_BIDI_STRONG );
|
2003-04-01 08:55:42 +00:00
|
|
|
pRef->SetLayoutMode( TEXT_LAYOUT_BIDI_STRONG );
|
2002-03-21 08:19:43 +00:00
|
|
|
nDirection = DIR_LEFT2RIGHT;
|
|
|
|
}
|
|
|
|
|
2003-04-01 08:55:42 +00:00
|
|
|
//
|
|
|
|
// The Options
|
|
|
|
//
|
|
|
|
pOpt = pVsh ?
|
|
|
|
pVsh->GetViewOptions() :
|
2006-08-14 15:37:23 +00:00
|
|
|
SW_MOD()->GetViewOption( pNd->getIDocumentSettingAccess()->get(IDocumentSettingAccess::HTML_MODE) ); //Options vom Module wg. StarONE
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
// bURLNotify wird gesetzt, wenn MakeGraphic dies vorbereitet
|
2006-08-14 15:37:23 +00:00
|
|
|
// TODO: Aufdr?seln
|
2003-04-01 08:55:42 +00:00
|
|
|
bURLNotify = pNoteURL && !bOnWin;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2002-04-24 10:23:43 +00:00
|
|
|
SetSnapToGrid( pNd->GetSwAttrSet().GetParaGrid().GetValue() &&
|
|
|
|
pFrm->IsInDocBody() );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
pFnt = pNewFnt;
|
2001-10-02 12:51:59 +00:00
|
|
|
pUnderFnt = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
pTxt = &pNd->GetTxt();
|
2001-03-07 10:49:12 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
nIdx = nNewIdx;
|
|
|
|
nLen = nNewLen;
|
|
|
|
bNotEOL = sal_False;
|
2010-03-16 09:54:03 +01:00
|
|
|
bStopUnderFlow = bFtnInside = bOtherThanFtnInside = sal_False;
|
2000-11-29 12:25:34 +00:00
|
|
|
bMulti = bFirstMulti = bRuby = bHanging = bScriptSpace =
|
2001-01-19 14:27:04 +00:00
|
|
|
bForbiddenChars = sal_False;
|
2001-10-02 12:51:59 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
SetLen( GetMinLen( *this ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
SwTxtSizeInfo::SwTxtSizeInfo( const SwTxtSizeInfo &rNew, const XubString &rTxt,
|
2007-09-27 08:13:09 +00:00
|
|
|
const xub_StrLen nIndex, const xub_StrLen nLength )
|
2000-09-18 23:08:29 +00:00
|
|
|
: SwTxtInfo( rNew ),
|
2001-04-09 09:44:17 +00:00
|
|
|
pKanaComp(((SwTxtSizeInfo&)rNew).GetpKanaComp()),
|
2000-09-18 23:08:29 +00:00
|
|
|
pVsh(((SwTxtSizeInfo&)rNew).GetVsh()),
|
|
|
|
pOut(((SwTxtSizeInfo&)rNew).GetOut()),
|
2003-04-01 08:55:42 +00:00
|
|
|
pRef(((SwTxtSizeInfo&)rNew).GetRefDev()),
|
2000-09-18 23:08:29 +00:00
|
|
|
pFnt(((SwTxtSizeInfo&)rNew).GetFont()),
|
2001-10-02 12:51:59 +00:00
|
|
|
pUnderFnt(((SwTxtSizeInfo&)rNew).GetUnderFnt()),
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm( rNew.pFrm ),
|
|
|
|
pOpt(&rNew.GetOpt()),
|
|
|
|
pTxt(&rTxt),
|
2007-09-27 08:13:09 +00:00
|
|
|
nIdx(nIndex),
|
|
|
|
nLen(nLength),
|
2001-04-09 09:44:17 +00:00
|
|
|
nKanaIdx( rNew.GetKanaIdx() ),
|
2000-09-18 23:08:29 +00:00
|
|
|
bOnWin( rNew.OnWin() ),
|
|
|
|
bNotEOL( rNew.NotEOL() ),
|
|
|
|
bURLNotify( rNew.URLNotify() ),
|
2000-10-16 12:21:25 +00:00
|
|
|
bStopUnderFlow( rNew.StopUnderFlow() ),
|
2001-11-15 15:40:55 +00:00
|
|
|
bFtnInside( rNew.IsFtnInside() ),
|
2010-03-16 09:54:03 +01:00
|
|
|
bOtherThanFtnInside( rNew.IsOtherThanFtnInside() ),
|
2000-10-16 12:21:25 +00:00
|
|
|
bMulti( rNew.IsMulti() ),
|
2000-11-06 08:24:36 +00:00
|
|
|
bFirstMulti( rNew.IsFirstMulti() ),
|
2000-11-24 14:40:56 +00:00
|
|
|
bRuby( rNew.IsRuby() ),
|
|
|
|
bHanging( rNew.IsHanging() ),
|
2000-11-29 12:25:34 +00:00
|
|
|
bScriptSpace( rNew.HasScriptSpace() ),
|
2000-12-21 08:10:30 +00:00
|
|
|
bForbiddenChars( rNew.HasForbiddenChars() ),
|
2002-02-07 10:20:40 +00:00
|
|
|
bSnapToGrid( rNew.SnapToGrid() ),
|
2001-01-19 14:27:04 +00:00
|
|
|
nDirection( rNew.GetDirection() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2000-09-18 23:08:29 +00:00
|
|
|
ChkOutDev( *this );
|
|
|
|
#endif
|
|
|
|
SetLen( GetMinLen( *this ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtSizeInfo::SelectFont()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
void SwTxtSizeInfo::SelectFont()
|
|
|
|
{
|
|
|
|
// 8731: Der Weg muss ueber ChgPhysFnt gehen, sonst geraet
|
|
|
|
// der FontMetricCache durcheinander. In diesem Fall steht pLastMet
|
|
|
|
// auf dem alten Wert.
|
|
|
|
// Falsch: GetOut()->SetFont( GetFont()->GetFnt() );
|
|
|
|
GetFont()->Invalidate();
|
2003-10-15 08:55:35 +00:00
|
|
|
GetFont()->ChgPhysFnt( pVsh, *GetOut() );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
2003-04-01 08:55:42 +00:00
|
|
|
* SwTxtSizeInfo::NoteAnimation()
|
2000-09-18 23:08:29 +00:00
|
|
|
*************************************************************************/
|
|
|
|
|
2003-04-01 08:55:42 +00:00
|
|
|
void SwTxtSizeInfo::NoteAnimation() const
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2003-04-01 08:55:42 +00:00
|
|
|
if( OnWin() )
|
|
|
|
SwRootFrm::FlushVout();
|
|
|
|
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pOut == pVsh->GetOut(),
|
|
|
|
"SwTxtSizeInfo::NoteAnimation() changed pOut" );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
2001-04-09 09:44:17 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtSizeInfo::GetTxtSize()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
SwPosSize SwTxtSizeInfo::GetTxtSize( OutputDevice* pOutDev,
|
|
|
|
const SwScriptInfo* pSI,
|
|
|
|
const XubString& rTxt,
|
2007-09-27 08:13:09 +00:00
|
|
|
const xub_StrLen nIndex,
|
|
|
|
const xub_StrLen nLength,
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt16 nComp ) const
|
2001-04-09 09:44:17 +00:00
|
|
|
{
|
2007-09-27 08:13:09 +00:00
|
|
|
SwDrawTextInfo aDrawInf( pVsh, *pOutDev, pSI, rTxt, nIndex, nLength );
|
2002-02-06 10:11:09 +00:00
|
|
|
aDrawInf.SetFrm( pFrm );
|
|
|
|
aDrawInf.SetFont( pFnt );
|
2002-02-07 10:20:40 +00:00
|
|
|
aDrawInf.SetSnapToGrid( SnapToGrid() );
|
2001-04-09 09:44:17 +00:00
|
|
|
aDrawInf.SetKanaComp( nComp );
|
|
|
|
SwPosSize aSize = pFnt->_GetTxtSize( aDrawInf );
|
|
|
|
return aSize;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtSizeInfo::GetTxtSize()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
SwPosSize SwTxtSizeInfo::GetTxtSize() const
|
|
|
|
{
|
|
|
|
const SwScriptInfo& rSI =
|
|
|
|
( (SwParaPortion*)GetParaPortion() )->GetScriptInfo();
|
|
|
|
|
|
|
|
// in some cases, compression is not allowed or surpressed for
|
|
|
|
// performance reasons
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nComp =( SW_CJK == GetFont()->GetActual() &&
|
2001-04-09 09:44:17 +00:00
|
|
|
rSI.CountCompChg() &&
|
|
|
|
! IsMulti() ) ?
|
|
|
|
GetKanaComp() :
|
|
|
|
0 ;
|
|
|
|
|
|
|
|
SwDrawTextInfo aDrawInf( pVsh, *pOut, &rSI, *pTxt, nIdx, nLen );
|
2002-01-09 07:58:00 +00:00
|
|
|
aDrawInf.SetFrm( pFrm );
|
2002-01-11 13:59:18 +00:00
|
|
|
aDrawInf.SetFont( pFnt );
|
2002-02-07 10:20:40 +00:00
|
|
|
aDrawInf.SetSnapToGrid( SnapToGrid() );
|
2001-04-09 09:44:17 +00:00
|
|
|
aDrawInf.SetKanaComp( nComp );
|
|
|
|
return pFnt->_GetTxtSize( aDrawInf );
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtSizeInfo::GetTxtSize()
|
|
|
|
*************************************************************************/
|
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
void SwTxtSizeInfo::GetTxtSize( const SwScriptInfo* pSI, const xub_StrLen nIndex,
|
2011-01-17 15:06:54 +01:00
|
|
|
const xub_StrLen nLength, const sal_uInt16 nComp,
|
|
|
|
sal_uInt16& nMinSize, sal_uInt16& nMaxSizeDiff ) const
|
2001-04-09 09:44:17 +00:00
|
|
|
{
|
2007-09-27 08:13:09 +00:00
|
|
|
SwDrawTextInfo aDrawInf( pVsh, *pOut, pSI, *pTxt, nIndex, nLength );
|
2002-01-09 07:58:00 +00:00
|
|
|
aDrawInf.SetFrm( pFrm );
|
2002-01-11 13:59:18 +00:00
|
|
|
aDrawInf.SetFont( pFnt );
|
2002-02-07 10:20:40 +00:00
|
|
|
aDrawInf.SetSnapToGrid( SnapToGrid() );
|
2001-04-09 09:44:17 +00:00
|
|
|
aDrawInf.SetKanaComp( nComp );
|
|
|
|
SwPosSize aSize = pFnt->_GetTxtSize( aDrawInf );
|
2011-01-17 15:06:54 +01:00
|
|
|
nMaxSizeDiff = (sal_uInt16)aDrawInf.GetKanaDiff();
|
2001-04-09 09:44:17 +00:00
|
|
|
nMinSize = aSize.Width();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtSizeInfo::GetTxtBreak()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
xub_StrLen SwTxtSizeInfo::GetTxtBreak( const long nLineWidth,
|
|
|
|
const xub_StrLen nMaxLen,
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt16 nComp ) const
|
2001-04-09 09:44:17 +00:00
|
|
|
{
|
|
|
|
const SwScriptInfo& rScriptInfo =
|
|
|
|
( (SwParaPortion*)GetParaPortion() )->GetScriptInfo();
|
|
|
|
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pRef == pOut, "GetTxtBreak is supposed to use the RefDev" );
|
2001-04-09 09:44:17 +00:00
|
|
|
SwDrawTextInfo aDrawInf( pVsh, *pOut, &rScriptInfo,
|
|
|
|
*pTxt, GetIdx(), nMaxLen );
|
2002-01-09 07:58:00 +00:00
|
|
|
aDrawInf.SetFrm( pFrm );
|
2002-01-11 13:59:18 +00:00
|
|
|
aDrawInf.SetFont( pFnt );
|
2002-02-07 10:20:40 +00:00
|
|
|
aDrawInf.SetSnapToGrid( SnapToGrid() );
|
2001-04-09 09:44:17 +00:00
|
|
|
aDrawInf.SetKanaComp( nComp );
|
|
|
|
aDrawInf.SetHyphPos( 0 );
|
|
|
|
|
|
|
|
return pFnt->GetTxtBreak( aDrawInf, nLineWidth );
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtSizeInfo::GetTxtBreak()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
xub_StrLen SwTxtSizeInfo::GetTxtBreak( const long nLineWidth,
|
|
|
|
const xub_StrLen nMaxLen,
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt16 nComp,
|
2001-04-09 09:44:17 +00:00
|
|
|
xub_StrLen& rExtraCharPos ) const
|
|
|
|
{
|
|
|
|
const SwScriptInfo& rScriptInfo =
|
|
|
|
( (SwParaPortion*)GetParaPortion() )->GetScriptInfo();
|
|
|
|
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pRef == pOut, "GetTxtBreak is supposed to use the RefDev" );
|
2001-04-09 09:44:17 +00:00
|
|
|
SwDrawTextInfo aDrawInf( pVsh, *pOut, &rScriptInfo,
|
|
|
|
*pTxt, GetIdx(), nMaxLen );
|
2002-01-09 07:58:00 +00:00
|
|
|
aDrawInf.SetFrm( pFrm );
|
2002-01-11 13:59:18 +00:00
|
|
|
aDrawInf.SetFont( pFnt );
|
2002-02-07 10:20:40 +00:00
|
|
|
aDrawInf.SetSnapToGrid( SnapToGrid() );
|
2001-04-09 09:44:17 +00:00
|
|
|
aDrawInf.SetKanaComp( nComp );
|
|
|
|
aDrawInf.SetHyphPos( &rExtraCharPos );
|
|
|
|
|
|
|
|
return pFnt->GetTxtBreak( aDrawInf, nLineWidth );
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
2007-09-27 08:13:09 +00:00
|
|
|
* SwTxtPaintInfo::CtorInitTxtPaintInfo()
|
2000-09-18 23:08:29 +00:00
|
|
|
*************************************************************************/
|
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
void SwTxtPaintInfo::CtorInitTxtPaintInfo( SwTxtFrm *pFrame, const SwRect &rPaint )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-09-27 08:13:09 +00:00
|
|
|
CtorInitTxtSizeInfo( pFrame );
|
|
|
|
aTxtFly.CtorInitTxtFly( pFrame ),
|
2000-09-18 23:08:29 +00:00
|
|
|
aPaintRect = rPaint;
|
|
|
|
nSpaceIdx = 0;
|
|
|
|
pSpaceAdd = NULL;
|
|
|
|
pWrongList = NULL;
|
2008-02-26 08:46:08 +00:00
|
|
|
pGrammarCheckList = NULL;
|
2007-01-02 15:50:26 +00:00
|
|
|
pSmartTags = NULL; // SMARTTAGS
|
|
|
|
|
2010-11-25 17:08:45 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2000-09-18 23:08:29 +00:00
|
|
|
pBrushItem = ((SvxBrushItem*)-1);
|
2010-11-25 17:08:45 +01:00
|
|
|
#else
|
|
|
|
pBrushItem = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
SwTxtPaintInfo::SwTxtPaintInfo( const SwTxtPaintInfo &rInf, const XubString &rTxt )
|
|
|
|
: SwTxtSizeInfo( rInf, rTxt ),
|
2007-09-27 08:13:09 +00:00
|
|
|
pWrongList( rInf.GetpWrongList() ),
|
2008-02-26 08:46:08 +00:00
|
|
|
pGrammarCheckList( rInf.GetGrammarCheckList() ),
|
2007-09-27 08:13:09 +00:00
|
|
|
pSmartTags( rInf.GetSmartTags() ), // SMARTTAGS
|
|
|
|
pSpaceAdd( rInf.GetpSpaceAdd() ),
|
|
|
|
pBrushItem( rInf.GetBrushItem() ),
|
2000-09-18 23:08:29 +00:00
|
|
|
aTxtFly( *rInf.GetTxtFly() ),
|
|
|
|
aPos( rInf.GetPos() ),
|
|
|
|
aPaintRect( rInf.GetPaintRect() ),
|
2007-09-27 08:13:09 +00:00
|
|
|
nSpaceIdx( rInf.GetSpaceIdx() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{ }
|
|
|
|
|
|
|
|
SwTxtPaintInfo::SwTxtPaintInfo( const SwTxtPaintInfo &rInf )
|
|
|
|
: SwTxtSizeInfo( rInf ),
|
2007-09-27 08:13:09 +00:00
|
|
|
pWrongList( rInf.GetpWrongList() ),
|
2008-02-26 08:46:08 +00:00
|
|
|
pGrammarCheckList( rInf.GetGrammarCheckList() ),
|
2007-09-27 08:13:09 +00:00
|
|
|
pSmartTags( rInf.GetSmartTags() ), // SMARTTAGS
|
|
|
|
pSpaceAdd( rInf.GetpSpaceAdd() ),
|
|
|
|
pBrushItem( rInf.GetBrushItem() ),
|
2000-09-18 23:08:29 +00:00
|
|
|
aTxtFly( *rInf.GetTxtFly() ),
|
|
|
|
aPos( rInf.GetPos() ),
|
|
|
|
aPaintRect( rInf.GetPaintRect() ),
|
2007-09-27 08:13:09 +00:00
|
|
|
nSpaceIdx( rInf.GetSpaceIdx() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{ }
|
|
|
|
|
2002-04-24 07:49:09 +00:00
|
|
|
extern Color aGlobalRetoucheColor;
|
|
|
|
|
2002-06-19 06:45:53 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* lcl_IsDarkBackground
|
|
|
|
*
|
|
|
|
* Returns if the current background color is dark.
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
sal_Bool lcl_IsDarkBackground( const SwTxtPaintInfo& rInf )
|
|
|
|
{
|
|
|
|
const Color* pCol = rInf.GetFont()->GetBackColor();
|
|
|
|
if( ! pCol || COL_TRANSPARENT == pCol->GetColor() )
|
|
|
|
{
|
|
|
|
const SvxBrushItem* pItem;
|
|
|
|
SwRect aOrigBackRect;
|
2002-08-28 11:25:14 +00:00
|
|
|
|
|
|
|
/// OD 21.08.2002
|
|
|
|
/// consider, that [GetBackgroundBrush(...)] can set <pCol>
|
|
|
|
/// - see implementation in /core/layout/paintfrm.cxx
|
|
|
|
/// OD 21.08.2002 #99657#
|
|
|
|
/// There is a background color, if there is a background brush and
|
|
|
|
/// its color is *not* "no fill"/"auto fill".
|
2011-01-17 15:06:54 +01:00
|
|
|
if( rInf.GetTxtFrm()->GetBackgroundBrush( pItem, pCol, aOrigBackRect, sal_False ) )
|
2002-08-28 11:25:14 +00:00
|
|
|
{
|
|
|
|
if ( !pCol )
|
|
|
|
pCol = &pItem->GetColor();
|
2002-08-30 11:05:51 +00:00
|
|
|
|
|
|
|
/// OD 30.08.2002 #99657#
|
|
|
|
/// determined color <pCol> can be <COL_TRANSPARENT>. Thus, check it.
|
|
|
|
if ( pCol->GetColor() == COL_TRANSPARENT)
|
|
|
|
pCol = NULL;
|
2002-08-28 11:25:14 +00:00
|
|
|
}
|
2002-06-19 06:45:53 +00:00
|
|
|
else
|
|
|
|
pCol = NULL;
|
|
|
|
}
|
2002-08-28 11:25:14 +00:00
|
|
|
|
|
|
|
|
2002-06-19 06:45:53 +00:00
|
|
|
if( !pCol )
|
|
|
|
pCol = &aGlobalRetoucheColor;
|
|
|
|
|
2002-09-20 07:24:57 +00:00
|
|
|
return pCol->IsDark();
|
2002-06-19 06:45:53 +00:00
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtPaintInfo::_DrawText()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
void SwTxtPaintInfo::_DrawText( const XubString &rText, const SwLinePortion &rPor,
|
2007-09-27 08:13:09 +00:00
|
|
|
const xub_StrLen nStart, const xub_StrLen nLength,
|
2007-01-02 15:50:26 +00:00
|
|
|
const sal_Bool bKern, const sal_Bool bWrong,
|
2008-02-26 08:46:08 +00:00
|
|
|
const sal_Bool bSmartTag,
|
|
|
|
const sal_Bool bGrammarCheck ) // SMARTTAGS
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-09-27 08:13:09 +00:00
|
|
|
if( !nLength )
|
2000-09-18 23:08:29 +00:00
|
|
|
return;
|
2005-04-18 13:35:03 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
if( GetFont()->IsBlink() && OnWin() && rPor.Width() )
|
|
|
|
{
|
2002-05-07 09:57:47 +00:00
|
|
|
// check if accessibility options allow blinking portions:
|
2010-06-13 15:22:56 +02:00
|
|
|
const ViewShell* pSh = GetTxtFrm()->getRootFrm()->GetCurrShell();
|
2002-11-01 12:33:00 +00:00
|
|
|
if ( pSh && ! pSh->GetAccessibilityOptions()->IsStopAnimatedText() &&
|
2002-05-21 07:09:50 +00:00
|
|
|
! pSh->IsPreView() )
|
2002-05-07 09:57:47 +00:00
|
|
|
{
|
|
|
|
if( !pBlink )
|
|
|
|
pBlink = new SwBlink();
|
2002-10-11 08:49:27 +00:00
|
|
|
|
|
|
|
Point aPoint( aPos );
|
|
|
|
|
|
|
|
if ( GetTxtFrm()->IsRightToLeft() )
|
|
|
|
GetTxtFrm()->SwitchLTRtoRTL( aPoint );
|
|
|
|
|
|
|
|
if ( TEXT_LAYOUT_BIDI_STRONG != GetOut()->GetLayoutMode() )
|
|
|
|
aPoint.X() -= rPor.Width();
|
|
|
|
|
|
|
|
if ( GetTxtFrm()->IsVertical() )
|
|
|
|
GetTxtFrm()->SwitchHorizontalToVertical( aPoint );
|
|
|
|
|
|
|
|
pBlink->Insert( aPoint, &rPor, GetTxtFrm(), pFnt->GetOrientation() );
|
|
|
|
|
2002-05-07 09:57:47 +00:00
|
|
|
if( !pBlink->IsVisible() )
|
|
|
|
return;
|
|
|
|
}
|
2002-05-21 07:09:50 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
delete pBlink;
|
|
|
|
pBlink = NULL;
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
2002-04-10 05:35:01 +00:00
|
|
|
// The SwScriptInfo is useless if we are inside a field portion
|
2002-04-10 05:12:06 +00:00
|
|
|
SwScriptInfo* pSI = 0;
|
|
|
|
if ( ! rPor.InFldGrp() )
|
|
|
|
pSI = &GetParaPortion()->GetScriptInfo();
|
|
|
|
|
|
|
|
// in some cases, kana compression is not allowed or surpressed for
|
|
|
|
// performance reasons
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nComp = 0;
|
2002-04-10 05:12:06 +00:00
|
|
|
if ( ! IsMulti() )
|
|
|
|
nComp = GetKanaComp();
|
|
|
|
|
2008-12-15 12:01:46 +00:00
|
|
|
sal_Bool bCfgIsAutoGrammar = sal_False;
|
|
|
|
SvtLinguConfig().GetProperty( C2U( UPN_IS_GRAMMAR_AUTO ) ) >>= bCfgIsAutoGrammar;
|
2002-04-10 05:12:06 +00:00
|
|
|
const sal_Bool bBullet = OnWin() && GetOpt().IsBlank() && IsNoSymbol();
|
2008-12-15 12:01:46 +00:00
|
|
|
const sal_Bool bTmpWrong = bWrong && OnWin() && GetOpt().IsOnlineSpell();
|
|
|
|
const sal_Bool bTmpGrammarCheck = bGrammarCheck && OnWin() && bCfgIsAutoGrammar && GetOpt().IsOnlineSpell();
|
2007-11-01 12:58:14 +00:00
|
|
|
const sal_Bool bTmpSmart = bSmartTag && OnWin() && !GetOpt().IsPagePreview() && SwSmartTagMgr::Get().IsSmartTagsEnabled(); // SMARTTAGS
|
2007-01-02 15:50:26 +00:00
|
|
|
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( GetParaPortion(), "No paragraph!");
|
2010-06-13 15:22:56 +02:00
|
|
|
SwDrawTextInfo aDrawInf( pFrm->getRootFrm()->GetCurrShell(), *pOut, pSI, rText, nStart, nLength,
|
2002-04-10 05:12:06 +00:00
|
|
|
rPor.Width(), bBullet );
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
aDrawInf.SetLeft( GetPaintRect().Left() );
|
|
|
|
aDrawInf.SetRight( GetPaintRect().Right() );
|
2001-10-02 12:51:59 +00:00
|
|
|
aDrawInf.SetUnderFnt( pUnderFnt );
|
2005-04-18 13:35:03 +00:00
|
|
|
|
|
|
|
const long nSpaceAdd = ( rPor.IsBlankPortion() || rPor.IsDropPortion() ||
|
|
|
|
rPor.InNumberGrp() ) ? 0 : GetSpaceAdd();
|
|
|
|
if ( nSpaceAdd )
|
|
|
|
{
|
|
|
|
xub_StrLen nCharCnt;
|
2011-04-16 22:42:13 -03:00
|
|
|
// #i41860# Thai justified alignemt needs some
|
2005-04-18 13:35:03 +00:00
|
|
|
// additional information:
|
|
|
|
aDrawInf.SetNumberOfBlanks( rPor.InTxtGrp() ?
|
|
|
|
static_cast<const SwTxtPortion&>(rPor).GetSpaceCnt( *this, nCharCnt ) :
|
|
|
|
0 );
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
aDrawInf.SetSpace( nSpaceAdd );
|
2001-04-09 09:44:17 +00:00
|
|
|
aDrawInf.SetKanaComp( nComp );
|
2001-03-13 08:43:31 +00:00
|
|
|
|
2001-12-12 11:47:19 +00:00
|
|
|
// the font is used to identify the current script via nActual
|
|
|
|
aDrawInf.SetFont( pFnt );
|
2002-02-07 10:20:40 +00:00
|
|
|
// the frame is used to identify the orientation
|
2001-08-31 05:22:48 +00:00
|
|
|
aDrawInf.SetFrm( GetTxtFrm() );
|
2002-02-07 10:20:40 +00:00
|
|
|
// we have to know if the paragraph should snap to grid
|
|
|
|
aDrawInf.SetSnapToGrid( SnapToGrid() );
|
2001-12-12 11:47:19 +00:00
|
|
|
// for underlining we must know when not to add extra space behind
|
|
|
|
// a character in justified mode
|
|
|
|
aDrawInf.SetSpaceStop( ! rPor.GetPortion() ||
|
|
|
|
rPor.GetPortion()->InFixMargGrp() ||
|
|
|
|
rPor.GetPortion()->IsHolePortion() );
|
2001-03-13 08:43:31 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
if( GetTxtFly()->IsOn() )
|
|
|
|
{
|
|
|
|
// aPos muss als TopLeft vorliegen, weil die ClipRects sonst
|
|
|
|
// nicht berechnet werden koennen.
|
|
|
|
const Point aPoint( aPos.X(), aPos.Y() - rPor.GetAscent() );
|
|
|
|
const Size aSize( rPor.Width(), rPor.Height() );
|
|
|
|
aDrawInf.SetPos( aPoint );
|
|
|
|
aDrawInf.SetSize( aSize );
|
|
|
|
aDrawInf.SetAscent( rPor.GetAscent() );
|
|
|
|
aDrawInf.SetKern( bKern ? rPor.Width() : 0 );
|
|
|
|
aDrawInf.SetWrong( bTmpWrong ? pWrongList : NULL );
|
2008-02-26 08:46:08 +00:00
|
|
|
aDrawInf.SetGrammarCheck( bTmpGrammarCheck ? pGrammarCheckList : NULL );
|
2007-01-02 15:50:26 +00:00
|
|
|
aDrawInf.SetSmartTags( bTmpSmart ? pSmartTags : NULL ); // SMARTTAGS
|
2000-09-18 23:08:29 +00:00
|
|
|
GetTxtFly()->DrawTextOpaque( aDrawInf );
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
aDrawInf.SetPos( aPos );
|
|
|
|
if( bKern )
|
|
|
|
pFnt->_DrawStretchText( aDrawInf );
|
|
|
|
else
|
|
|
|
{
|
|
|
|
aDrawInf.SetWrong( bTmpWrong ? pWrongList : NULL );
|
2008-02-26 08:46:08 +00:00
|
|
|
aDrawInf.SetGrammarCheck( bTmpGrammarCheck ? pGrammarCheckList : NULL );
|
2007-01-02 15:50:26 +00:00
|
|
|
aDrawInf.SetSmartTags( bTmpSmart ? pSmartTags : NULL ); // SMARTTAGS
|
2000-09-18 23:08:29 +00:00
|
|
|
pFnt->_DrawText( aDrawInf );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
2004-09-08 15:11:22 +00:00
|
|
|
* SwTxtPaintInfo::CalcRect()
|
2000-09-18 23:08:29 +00:00
|
|
|
*************************************************************************/
|
2000-12-21 08:10:30 +00:00
|
|
|
|
2004-09-08 15:11:22 +00:00
|
|
|
void SwTxtPaintInfo::CalcRect( const SwLinePortion& rPor,
|
|
|
|
SwRect* pRect, SwRect* pIntersect ) const
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2000-12-21 08:10:30 +00:00
|
|
|
Size aSize( rPor.Width(), rPor.Height() );
|
|
|
|
if( rPor.IsHangingPortion() )
|
|
|
|
aSize.Width() = ((SwHangingPortion&)rPor).GetInnerWidth();
|
2004-09-08 15:11:22 +00:00
|
|
|
if( rPor.InSpaceGrp() && GetSpaceAdd() )
|
2000-12-21 08:10:30 +00:00
|
|
|
{
|
2004-09-08 15:11:22 +00:00
|
|
|
SwTwips nAdd = rPor.CalcSpacing( GetSpaceAdd(), *this );
|
|
|
|
if( rPor.InFldGrp() && GetSpaceAdd() < 0 && nAdd )
|
2008-06-04 08:51:59 +00:00
|
|
|
nAdd += GetSpaceAdd() / SPACING_PRECISION_FACTOR;
|
2000-12-21 08:10:30 +00:00
|
|
|
aSize.Width() += nAdd;
|
|
|
|
}
|
2001-02-14 10:27:14 +00:00
|
|
|
|
2000-12-21 08:10:30 +00:00
|
|
|
Point aPoint;
|
|
|
|
|
2004-09-08 15:11:22 +00:00
|
|
|
if( IsRotated() )
|
2000-12-21 08:10:30 +00:00
|
|
|
{
|
|
|
|
long nTmp = aSize.Width();
|
|
|
|
aSize.Width() = aSize.Height();
|
|
|
|
aSize.Height() = nTmp;
|
2004-09-08 15:11:22 +00:00
|
|
|
if ( 1 == GetDirection() )
|
2001-03-20 07:21:51 +00:00
|
|
|
{
|
2004-09-08 15:11:22 +00:00
|
|
|
aPoint.A() = X() - rPor.GetAscent();
|
|
|
|
aPoint.B() = Y() - aSize.Height();
|
2001-03-20 07:21:51 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2004-09-08 15:11:22 +00:00
|
|
|
aPoint.A() = X() - rPor.Height() + rPor.GetAscent();
|
|
|
|
aPoint.B() = Y();
|
2001-03-20 07:21:51 +00:00
|
|
|
}
|
2000-12-21 08:10:30 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2004-09-08 15:11:22 +00:00
|
|
|
aPoint.A() = X();
|
2009-03-04 16:19:59 +00:00
|
|
|
//Badaa: 2008-04-18 * Support for Classical Mongolian Script (SCMS) joint with Jiayanmin
|
|
|
|
if ( GetTxtFrm()->IsVertLR() )
|
|
|
|
aPoint.B() = Y() - rPor.Height() + rPor.GetAscent();
|
|
|
|
else
|
|
|
|
aPoint.B() = Y() - rPor.GetAscent();
|
2000-12-21 08:10:30 +00:00
|
|
|
}
|
|
|
|
|
2002-03-21 08:19:43 +00:00
|
|
|
// Adjust x coordinate if we are inside a bidi portion
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_Bool bFrmDir = GetTxtFrm()->IsRightToLeft();
|
|
|
|
sal_Bool bCounterDir = ( ! bFrmDir && DIR_RIGHT2LEFT == GetDirection() ) ||
|
2004-09-08 15:11:22 +00:00
|
|
|
( bFrmDir && DIR_LEFT2RIGHT == GetDirection() );
|
2002-03-21 08:19:43 +00:00
|
|
|
|
|
|
|
if ( bCounterDir )
|
2002-05-28 08:00:59 +00:00
|
|
|
aPoint.A() -= aSize.Width();
|
2002-03-21 08:19:43 +00:00
|
|
|
|
2000-12-21 08:10:30 +00:00
|
|
|
SwRect aRect( aPoint, aSize );
|
2001-05-08 07:02:47 +00:00
|
|
|
|
2004-09-08 15:11:22 +00:00
|
|
|
if ( GetTxtFrm()->IsRightToLeft() )
|
|
|
|
GetTxtFrm()->SwitchLTRtoRTL( aRect );
|
2002-03-21 08:19:43 +00:00
|
|
|
|
2004-09-08 15:11:22 +00:00
|
|
|
if ( GetTxtFrm()->IsVertical() )
|
|
|
|
GetTxtFrm()->SwitchHorizontalToVertical( aRect );
|
2001-08-31 13:16:23 +00:00
|
|
|
|
2001-05-08 07:02:47 +00:00
|
|
|
if ( pRect )
|
|
|
|
*pRect = aRect;
|
|
|
|
|
|
|
|
if( aRect.HasArea() && pIntersect )
|
2000-12-21 08:10:30 +00:00
|
|
|
{
|
2004-09-08 15:11:22 +00:00
|
|
|
::SwAlignRect( aRect, (ViewShell*)GetVsh() );
|
2000-12-21 08:10:30 +00:00
|
|
|
|
2004-09-08 15:11:22 +00:00
|
|
|
if ( GetOut()->IsClipRegion() )
|
2000-12-21 08:10:30 +00:00
|
|
|
{
|
2004-09-08 15:11:22 +00:00
|
|
|
SwRect aClip( GetOut()->GetClipRegion().GetBoundRect() );
|
2000-12-21 08:10:30 +00:00
|
|
|
aRect.Intersection( aClip );
|
|
|
|
}
|
2001-05-08 07:02:47 +00:00
|
|
|
|
|
|
|
*pIntersect = aRect;
|
2000-12-21 08:10:30 +00:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
2002-01-17 14:44:53 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* lcl_DrawSpecial
|
|
|
|
*
|
2002-01-21 07:30:44 +00:00
|
|
|
* Draws a special portion, e.g., line break portion, tab portion.
|
2002-03-21 08:19:43 +00:00
|
|
|
* rPor - The portion
|
|
|
|
* rRect - The rectangle surrounding the character
|
|
|
|
* pCol - Specify a color for the character
|
|
|
|
* bCenter - Draw the character centered, otherwise left aligned
|
|
|
|
* bRotate - Rotate the character if character rotation is set
|
2002-01-17 14:44:53 +00:00
|
|
|
*************************************************************************/
|
|
|
|
|
2004-08-12 11:35:02 +00:00
|
|
|
static void lcl_DrawSpecial( const SwTxtPaintInfo& rInf, const SwLinePortion& rPor,
|
2002-03-21 08:19:43 +00:00
|
|
|
SwRect& rRect, const Color* pCol, sal_Unicode cChar,
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt8 nOptions )
|
2002-01-17 14:44:53 +00:00
|
|
|
{
|
2002-06-19 10:52:48 +00:00
|
|
|
sal_Bool bCenter = 0 != ( nOptions & DRAW_SPECIAL_OPTIONS_CENTER );
|
|
|
|
sal_Bool bRotate = 0 != ( nOptions & DRAW_SPECIAL_OPTIONS_ROTATE );
|
|
|
|
|
2002-01-21 07:30:44 +00:00
|
|
|
// rRect is given in absolute coordinates
|
2002-03-21 08:19:43 +00:00
|
|
|
if ( rInf.GetTxtFrm()->IsRightToLeft() )
|
|
|
|
rInf.GetTxtFrm()->SwitchRTLtoLTR( rRect );
|
2002-01-17 14:44:53 +00:00
|
|
|
if ( rInf.GetTxtFrm()->IsVertical() )
|
|
|
|
rInf.GetTxtFrm()->SwitchVerticalToHorizontal( rRect );
|
|
|
|
|
|
|
|
const SwFont* pOldFnt = rInf.GetFont();
|
|
|
|
|
2002-03-21 08:19:43 +00:00
|
|
|
// Font is generated only once:
|
|
|
|
static SwFont* pFnt = 0;
|
|
|
|
if ( ! pFnt )
|
|
|
|
{
|
|
|
|
pFnt = new SwFont( *pOldFnt );
|
|
|
|
pFnt->SetFamily( FAMILY_DONTKNOW, pFnt->GetActual() );
|
2006-07-25 10:48:32 +00:00
|
|
|
pFnt->SetName( numfunc::GetDefBulletFontname(), pFnt->GetActual() );
|
2002-03-21 08:19:43 +00:00
|
|
|
pFnt->SetStyleName( aEmptyStr, pFnt->GetActual() );
|
|
|
|
pFnt->SetCharSet( RTL_TEXTENCODING_SYMBOL, pFnt->GetActual() );
|
|
|
|
}
|
|
|
|
|
|
|
|
// Some of the current values are set at the font:
|
|
|
|
if ( ! bRotate )
|
|
|
|
pFnt->SetVertical( 0, rInf.GetTxtFrm()->IsVertical() );
|
|
|
|
else
|
|
|
|
pFnt->SetVertical( pOldFnt->GetOrientation() );
|
2002-01-17 14:44:53 +00:00
|
|
|
|
2002-01-21 07:30:44 +00:00
|
|
|
if ( pCol )
|
|
|
|
pFnt->SetColor( *pCol );
|
2002-03-21 08:19:43 +00:00
|
|
|
else
|
|
|
|
pFnt->SetColor( pOldFnt->GetColor() );
|
2002-01-17 14:44:53 +00:00
|
|
|
|
2002-03-21 08:19:43 +00:00
|
|
|
Size aFontSize( 0, SPECIAL_FONT_HEIGHT );
|
|
|
|
pFnt->SetSize( aFontSize, pFnt->GetActual() );
|
2002-01-17 14:44:53 +00:00
|
|
|
|
2002-03-21 08:19:43 +00:00
|
|
|
((SwTxtPaintInfo&)rInf).SetFont( pFnt );
|
2002-01-17 14:44:53 +00:00
|
|
|
|
2002-03-21 08:19:43 +00:00
|
|
|
// The maximum width depends on the current orientation
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt16 nDir = pFnt->GetOrientation( rInf.GetTxtFrm()->IsVertical() );
|
2007-09-27 08:13:09 +00:00
|
|
|
SwTwips nMaxWidth = 0;
|
2002-01-17 14:44:53 +00:00
|
|
|
switch ( nDir )
|
|
|
|
{
|
|
|
|
case 0 :
|
|
|
|
nMaxWidth = rRect.Width();
|
|
|
|
break;
|
|
|
|
case 900 :
|
|
|
|
case 2700 :
|
|
|
|
nMaxWidth = rRect.Height();
|
|
|
|
break;
|
|
|
|
default:
|
2011-03-19 14:13:18 +01:00
|
|
|
OSL_FAIL( "Unknown direction set at font" );
|
2002-01-17 14:44:53 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
// check if char fits into rectangle
|
2002-03-21 08:19:43 +00:00
|
|
|
const XubString aTmp( cChar );
|
|
|
|
aFontSize = rInf.GetTxtSize( aTmp ).SvLSize();
|
2002-01-17 14:44:53 +00:00
|
|
|
while ( aFontSize.Width() > nMaxWidth )
|
|
|
|
{
|
|
|
|
SwTwips nFactor = ( 100 * aFontSize.Width() ) / nMaxWidth;
|
|
|
|
const SwTwips nOldWidth = aFontSize.Width();
|
|
|
|
|
|
|
|
// new height for font
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt8 nAct = pFnt->GetActual();
|
2002-01-17 14:44:53 +00:00
|
|
|
aFontSize.Height() = ( 100 * pFnt->GetSize( nAct ).Height() ) / nFactor;
|
|
|
|
aFontSize.Width() = ( 100 * pFnt->GetSize( nAct).Width() ) / nFactor;
|
|
|
|
|
2004-03-25 11:52:33 +00:00
|
|
|
if ( !aFontSize.Width() && !aFontSize.Height() )
|
|
|
|
break;
|
|
|
|
|
2002-01-17 14:44:53 +00:00
|
|
|
pFnt->SetSize( aFontSize, nAct );
|
|
|
|
|
|
|
|
aFontSize = rInf.GetTxtSize( aTmp ).SvLSize();
|
|
|
|
|
|
|
|
if ( aFontSize.Width() >= nOldWidth )
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
const Point aOldPos( rInf.GetPos() );
|
|
|
|
|
2002-03-21 08:19:43 +00:00
|
|
|
// adjust values so that tab is vertically and horizontally centered
|
|
|
|
SwTwips nX = rRect.Left();
|
|
|
|
SwTwips nY = rRect.Top();
|
2002-01-17 14:44:53 +00:00
|
|
|
switch ( nDir )
|
|
|
|
{
|
|
|
|
case 0 :
|
2002-03-21 08:19:43 +00:00
|
|
|
if ( bCenter )
|
|
|
|
nX += ( rRect.Width() - aFontSize.Width() ) / 2;
|
|
|
|
nY += ( rRect.Height() - aFontSize.Height() ) / 2 + rInf.GetAscent();
|
2002-01-17 14:44:53 +00:00
|
|
|
break;
|
|
|
|
case 900 :
|
2002-03-21 08:19:43 +00:00
|
|
|
if ( bCenter )
|
|
|
|
nX += ( rRect.Width() - aFontSize.Height() ) / 2 + rInf.GetAscent();
|
|
|
|
nY += ( rRect.Height() + aFontSize.Width() ) / 2;
|
2002-01-17 14:44:53 +00:00
|
|
|
break;
|
|
|
|
case 2700 :
|
2002-03-21 08:19:43 +00:00
|
|
|
if ( bCenter )
|
|
|
|
nX += ( rRect.Width() + aFontSize.Height() ) / 2 - rInf.GetAscent();
|
|
|
|
nY += ( rRect.Height() - aFontSize.Width() ) / 2;
|
2002-01-17 14:44:53 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
Point aTmpPos( nX, nY );
|
|
|
|
((SwTxtPaintInfo&)rInf).SetPos( aTmpPos );
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nOldWidth = rPor.Width();
|
|
|
|
((SwLinePortion&)rPor).Width( (sal_uInt16)aFontSize.Width() );
|
2002-01-17 14:44:53 +00:00
|
|
|
rInf.DrawText( aTmp, rPor );
|
2002-03-21 08:19:43 +00:00
|
|
|
((SwLinePortion&)rPor).Width( nOldWidth );
|
2002-01-17 14:44:53 +00:00
|
|
|
((SwTxtPaintInfo&)rInf).SetFont( (SwFont*)pOldFnt );
|
|
|
|
((SwTxtPaintInfo&)rInf).SetPos( aOldPos );
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtPaintInfo::DrawRect()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
void SwTxtPaintInfo::DrawRect( const SwRect &rRect, sal_Bool bNoGraphic,
|
|
|
|
sal_Bool bRetouche ) const
|
|
|
|
{
|
|
|
|
if ( OnWin() || !bRetouche )
|
|
|
|
{
|
|
|
|
if( aTxtFly.IsOn() )
|
|
|
|
((SwTxtPaintInfo*)this)->GetTxtFly()->
|
|
|
|
DrawFlyRect( pOut, rRect, *this, bNoGraphic );
|
|
|
|
else if ( bNoGraphic )
|
|
|
|
pOut->DrawRect( rRect.SVRect() );
|
|
|
|
else
|
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( ((SvxBrushItem*)-1) != pBrushItem, "DrawRect: Uninitialized BrushItem!" );
|
2000-09-18 23:08:29 +00:00
|
|
|
::DrawGraphic( pBrushItem, pOut, aItemRect, rRect );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtPaintInfo::DrawTab()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
void SwTxtPaintInfo::DrawTab( const SwLinePortion &rPor ) const
|
|
|
|
{
|
|
|
|
if( OnWin() )
|
|
|
|
{
|
2001-05-08 07:02:47 +00:00
|
|
|
SwRect aRect;
|
2004-09-08 15:11:22 +00:00
|
|
|
CalcRect( rPor, &aRect );
|
2001-05-03 12:33:31 +00:00
|
|
|
|
|
|
|
if ( ! aRect.HasArea() )
|
|
|
|
return;
|
|
|
|
|
2002-06-19 10:52:48 +00:00
|
|
|
const sal_Unicode cChar = GetTxtFrm()->IsRightToLeft() ?
|
|
|
|
CHAR_TAB_RTL : CHAR_TAB;
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt8 nOptions = DRAW_SPECIAL_OPTIONS_CENTER |
|
2002-06-19 10:52:48 +00:00
|
|
|
DRAW_SPECIAL_OPTIONS_ROTATE;
|
|
|
|
lcl_DrawSpecial( *this, rPor, aRect, 0, cChar, nOptions );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtPaintInfo::DrawLineBreak()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
void SwTxtPaintInfo::DrawLineBreak( const SwLinePortion &rPor ) const
|
|
|
|
{
|
|
|
|
if( OnWin() )
|
|
|
|
{
|
2001-02-14 10:27:14 +00:00
|
|
|
KSHORT nOldWidth = rPor.Width();
|
2004-03-17 11:50:32 +00:00
|
|
|
((SwLinePortion&)rPor).Width( LINE_BREAK_WIDTH );
|
2001-05-08 07:02:47 +00:00
|
|
|
|
|
|
|
SwRect aRect;
|
2004-09-08 15:11:22 +00:00
|
|
|
CalcRect( rPor, &aRect );
|
2001-05-08 07:02:47 +00:00
|
|
|
|
2002-01-17 14:44:53 +00:00
|
|
|
if( aRect.HasArea() )
|
2002-06-19 10:52:48 +00:00
|
|
|
{
|
|
|
|
const sal_Unicode cChar = GetTxtFrm()->IsRightToLeft() ?
|
|
|
|
CHAR_LINEBREAK_RTL : CHAR_LINEBREAK;
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt8 nOptions = 0;
|
2002-06-19 10:52:48 +00:00
|
|
|
lcl_DrawSpecial( *this, rPor, aRect, 0, cChar, nOptions );
|
|
|
|
}
|
2002-01-17 14:44:53 +00:00
|
|
|
|
|
|
|
((SwLinePortion&)rPor).Width( nOldWidth );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2002-01-21 07:30:44 +00:00
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtPaintInfo::DrawRedArrow()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
void SwTxtPaintInfo::DrawRedArrow( const SwLinePortion &rPor ) const
|
|
|
|
{
|
2002-03-27 07:30:48 +00:00
|
|
|
Size aSize( SPECIAL_FONT_HEIGHT, SPECIAL_FONT_HEIGHT );
|
2002-01-21 07:30:44 +00:00
|
|
|
SwRect aRect( ((SwArrowPortion&)rPor).GetPos(), aSize );
|
|
|
|
sal_Unicode cChar;
|
|
|
|
if( ((SwArrowPortion&)rPor).IsLeft() )
|
|
|
|
{
|
|
|
|
aRect.Pos().Y() += 20 - GetAscent();
|
|
|
|
aRect.Pos().X() += 20;
|
|
|
|
if( aSize.Height() > rPor.Height() )
|
|
|
|
aRect.Height( rPor.Height() );
|
|
|
|
cChar = CHAR_LEFT_ARROW;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if( aSize.Height() > rPor.Height() )
|
|
|
|
aRect.Height( rPor.Height() );
|
|
|
|
aRect.Pos().Y() -= aRect.Height() + 20;
|
|
|
|
aRect.Pos().X() -= aRect.Width() + 20;
|
|
|
|
cChar = CHAR_RIGHT_ARROW;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( GetTxtFrm()->IsVertical() )
|
|
|
|
GetTxtFrm()->SwitchHorizontalToVertical( aRect );
|
|
|
|
|
|
|
|
Color aCol( COL_LIGHTRED );
|
|
|
|
|
|
|
|
if( aRect.HasArea() )
|
2002-06-19 10:52:48 +00:00
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt8 nOptions = 0;
|
2002-06-19 10:52:48 +00:00
|
|
|
lcl_DrawSpecial( *this, rPor, aRect, &aCol, cChar, nOptions );
|
|
|
|
}
|
2002-01-21 07:30:44 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtPaintInfo::DrawPostIts()
|
|
|
|
*************************************************************************/
|
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
void SwTxtPaintInfo::DrawPostIts( const SwLinePortion&, sal_Bool bScript ) const
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( OnWin() && pOpt->IsPostIts() )
|
|
|
|
{
|
2001-05-10 05:18:59 +00:00
|
|
|
Size aSize;
|
|
|
|
Point aTmp;
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt16 nPostItsWidth = pOpt->GetPostItsWidth( GetOut() );
|
|
|
|
const sal_uInt16 nFontHeight = pFnt->GetHeight( pVsh, *GetOut() );
|
|
|
|
const sal_uInt16 nFontAscent = pFnt->GetAscent( pVsh, *GetOut() );
|
2001-05-10 05:18:59 +00:00
|
|
|
|
2002-10-24 05:32:01 +00:00
|
|
|
switch ( pFnt->GetOrientation( GetTxtFrm()->IsVertical() ) )
|
2001-05-10 05:18:59 +00:00
|
|
|
{
|
|
|
|
case 0 :
|
|
|
|
aSize.Width() = nPostItsWidth;
|
|
|
|
aSize.Height() = nFontHeight;
|
|
|
|
aTmp.X() = aPos.X();
|
|
|
|
aTmp.Y() = aPos.Y() - nFontAscent;
|
|
|
|
break;
|
|
|
|
case 900 :
|
|
|
|
aSize.Height() = nPostItsWidth;
|
|
|
|
aSize.Width() = nFontHeight;
|
|
|
|
aTmp.X() = aPos.X() - nFontAscent;
|
|
|
|
aTmp.Y() = aPos.Y();
|
|
|
|
break;
|
|
|
|
case 2700 :
|
|
|
|
aSize.Height() = nPostItsWidth;
|
|
|
|
aSize.Width() = nFontHeight;
|
|
|
|
aTmp.X() = aPos.X() - nFontHeight +
|
|
|
|
nFontAscent;
|
|
|
|
aTmp.Y() = aPos.Y();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2001-10-30 08:41:07 +00:00
|
|
|
SwRect aTmpRect( aTmp, aSize );
|
|
|
|
|
2002-03-26 07:09:25 +00:00
|
|
|
if ( GetTxtFrm()->IsRightToLeft() )
|
|
|
|
GetTxtFrm()->SwitchLTRtoRTL( aTmpRect );
|
|
|
|
|
2001-10-30 08:41:07 +00:00
|
|
|
if ( GetTxtFrm()->IsVertical() )
|
|
|
|
GetTxtFrm()->SwitchHorizontalToVertical( aTmpRect );
|
|
|
|
|
2001-11-15 15:40:55 +00:00
|
|
|
const Rectangle aRect( aTmpRect.SVRect() );
|
2003-04-01 08:55:42 +00:00
|
|
|
pOpt->PaintPostIts( (OutputDevice*)GetOut(), aRect, bScript );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2008-09-04 09:19:55 +00:00
|
|
|
void SwTxtPaintInfo::DrawCheckBox( const SwFieldFormPortion &rPor, bool checked) const
|
|
|
|
{
|
|
|
|
SwRect aIntersect;
|
|
|
|
CalcRect( rPor, &aIntersect, 0 );
|
2009-11-17 12:33:55 +01:00
|
|
|
if ( aIntersect.HasArea() )
|
|
|
|
{
|
|
|
|
if (OnWin() && SwViewOption::IsFieldShadings() &&
|
|
|
|
!GetOpt().IsPagePreview())
|
|
|
|
{
|
|
|
|
OutputDevice* pOut_ = (OutputDevice*)GetOut();
|
|
|
|
pOut_->Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );
|
|
|
|
pOut_->SetFillColor( SwViewOption::GetFieldShadingsColor() );
|
|
|
|
pOut_->SetLineColor();
|
|
|
|
pOut_->DrawRect( aIntersect.SVRect() );
|
|
|
|
pOut_->Pop();
|
|
|
|
}
|
|
|
|
const int delta=10;
|
|
|
|
Rectangle r(aIntersect.Left()+delta, aIntersect.Top()+delta, aIntersect.Right()-delta, aIntersect.Bottom()-delta);
|
|
|
|
pOut->Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );
|
|
|
|
pOut->SetLineColor( Color(0, 0, 0));
|
|
|
|
pOut->SetFillColor();
|
|
|
|
pOut->DrawRect( r );
|
|
|
|
if (checked) {
|
|
|
|
pOut->DrawLine(r.TopLeft(), r.BottomRight());
|
|
|
|
pOut->DrawLine(r.TopRight(), r.BottomLeft());
|
|
|
|
}
|
2008-09-04 09:19:55 +00:00
|
|
|
pOut->Pop();
|
|
|
|
}
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtPaintInfo::DrawBackGround()
|
|
|
|
*************************************************************************/
|
|
|
|
void SwTxtPaintInfo::DrawBackground( const SwLinePortion &rPor ) const
|
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( OnWin(), "SwTxtPaintInfo::DrawBackground: printer polution ?" );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2001-05-08 07:02:47 +00:00
|
|
|
SwRect aIntersect;
|
2004-09-08 15:11:22 +00:00
|
|
|
CalcRect( rPor, 0, &aIntersect );
|
2001-05-08 07:02:47 +00:00
|
|
|
|
|
|
|
if ( aIntersect.HasArea() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-09-27 08:13:09 +00:00
|
|
|
OutputDevice* pTmpOut = (OutputDevice*)GetOut();
|
|
|
|
pTmpOut->Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2002-06-19 06:45:53 +00:00
|
|
|
// For dark background we do not want to have a filled rectangle
|
|
|
|
if ( GetVsh() && GetVsh()->GetWin() && lcl_IsDarkBackground( *this ) )
|
|
|
|
{
|
2007-09-27 08:13:09 +00:00
|
|
|
pTmpOut->SetLineColor( SwViewOption::GetFontColor().GetColor() );
|
2002-06-19 06:45:53 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2007-09-27 08:13:09 +00:00
|
|
|
pTmpOut->SetFillColor( SwViewOption::GetFieldShadingsColor() );
|
|
|
|
pTmpOut->SetLineColor();
|
2002-06-19 06:45:53 +00:00
|
|
|
}
|
2005-03-23 12:01:30 +00:00
|
|
|
|
|
|
|
DrawRect( aIntersect, sal_True );
|
2007-09-27 08:13:09 +00:00
|
|
|
pTmpOut->Pop();
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void SwTxtPaintInfo::_DrawBackBrush( const SwLinePortion &rPor ) const
|
|
|
|
{
|
2008-09-04 09:19:55 +00:00
|
|
|
{
|
|
|
|
SwRect aIntersect;
|
|
|
|
CalcRect( rPor, &aIntersect, 0 );
|
CWS-TOOLING: integrate CWS swrefactormarks2
2009-04-09 12:51:41 +0200 b_michaelsen r270689 : #i94949# cleaned up assertions after rebasing
2009-04-08 17:37:08 +0200 b_michaelsen r270658 : fixing sw/source/ui/utlui/makefile.mk
2009-04-07 17:56:54 +0200 b_michaelsen r270606 : added bookctrl.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-07 17:05:20 +0200 b_michaelsen r270603 : added crbm.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-02 23:44:38 +0200 b_michaelsen r270436 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@270033 (milestone: DEV300:m45)
2009-02-27 16:25:31 +0100 b_michaelsen r268606 : #i94949# fixed Windows buildbreaker
2009-02-25 18:01:13 +0100 b_michaelsen r268464 : #i94949# Bookmarktest document filter roundtrips
2009-02-24 18:23:55 +0100 b_michaelsen r268404 : #i94949# Bookmark unittests
2009-02-23 19:47:44 +0100 b_michaelsen r268370 : #i94949# added unittest for bookmarks
2009-02-23 12:22:07 +0100 b_michaelsen r268348 : #i94949# fixing CheckCrossReferences testcase
2009-02-20 18:12:50 +0100 b_michaelsen r268335 : #i94949# fixing SwXTextRange
2009-02-18 18:32:57 +0100 b_michaelsen r268252 : #i94949# deregistering DdeBookmarks on delete
2009-02-18 18:29:08 +0100 b_michaelsen r268251 : fixing dbgoutsw.cxx for debug builds
2009-02-16 18:42:43 +0100 b_michaelsen r267834 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@267171 (milestone: DEV300:m41)
2009-02-12 15:32:02 +0100 b_michaelsen r267667 : #i94949 fixed crossrefbookmark naming
2009-02-11 18:30:08 +0100 b_michaelsen r267624 : #94949# fixing bookmark navigation
2009-02-11 13:55:26 +0100 b_michaelsen r267599 : #i94949# fixed bookmark naming
2009-02-10 17:53:05 +0100 b_michaelsen r267571 : #i94949# renamed HasOtherMarkPos to IsExpanded
2009-02-10 17:23:01 +0100 b_michaelsen r267564 : #i94949# renamed ::sw::bookmark namespace to more fitting ::sw::mark
2009-02-10 16:16:32 +0100 b_michaelsen r267553 : #i94949# creating only CrossRefBookmark per Txtnode
2009-02-10 12:14:05 +0100 b_michaelsen r267547 : #i94949# fixed bookmark count in navigator
2009-02-09 19:12:18 +0100 b_michaelsen r267532 : #i94949# lcl_CopyBookmarks(..) - handle marks on boundaries correctly
2009-02-09 17:32:45 +0100 b_michaelsen r267524 : #i94949# setting the refobject of the DdeBookmark in Sin SwServerObject::SetDdeBookmark(..)
2009-02-09 17:22:15 +0100 b_michaelsen r267523 : #i94949# trying to harden SwServerObject
2009-02-09 16:47:32 +0100 b_michaelsen r267521 : #i94949# lcl_CopyBookmarks(..): try to get the source mark name, if possible
2009-02-09 16:05:42 +0100 b_michaelsen r267519 : #i94949# clearing the OtherMarkPos if PaM has no mark in repositionMark(..), swapping inverted bookmarks without hissing an assertion
2009-02-09 15:55:38 +0100 b_michaelsen r267518 : #i94949# checking for out-of-bounds in SwView::ExecuteStatusLine(..)
2009-02-09 15:23:47 +0100 b_michaelsen r267517 : #i94949# using an UNO_BOOKMARK in ui/dbui/dbinsdlg.cxx
2009-02-09 14:14:47 +0100 b_michaelsen r267514 : #i94949# IDocumentMarkAccess::GetType(..) asserts on unknown type
2009-02-09 14:04:25 +0100 b_michaelsen r267513 : #i94949# using rtl strings instead of tools-strings in CrossRefBookmarks
2009-02-09 13:55:01 +0100 b_michaelsen r267510 : #i94949# using empty string for UnoMark construction
2009-02-09 13:46:46 +0100 b_michaelsen r267509 : #i94949# removed superfluous #includes, removed superfluous member DdeBookmark::bGenerateName, initialized DdeBookmark::m_aRefObj removed superfluous local _FindItem::ClearObj
2009-02-06 14:38:37 +0100 b_michaelsen r267462 : #i94949# fixing FN_STAT_BOOKMARK dispatches
2009-02-05 18:05:07 +0100 b_michaelsen r267436 : #i94949# removing superfluous #includes
2009-02-04 15:51:31 +0100 b_michaelsen r267391 : fixing resync merge error
2009-02-02 19:39:55 +0100 b_michaelsen r267294 : #i94949# bookmark performance
2009-01-30 19:30:51 +0100 b_michaelsen r267229 : #i94949# throwing IllegalArgumentException, if appropriate
2009-01-30 19:29:56 +0100 b_michaelsen r267228 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:23:49 +0100 b_michaelsen r267227 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:16:06 +0100 b_michaelsen r267226 : #i94949# refactored lcl_FillBookmarkArray
2009-01-30 17:59:27 +0100 b_michaelsen r267222 : #i94949# removed superficial #include
2009-01-30 17:50:02 +0100 b_michaelsen r267220 : #i94949# SwXTextRange remembers its UNO bookmark
2009-01-29 20:19:58 +0100 b_michaelsen r267168 : #i94949# implemented IDocumentMarkAccess::findBookmark
2009-01-29 17:22:17 +0100 b_michaelsen r267162 : #i94949# implemented renameMark in Markmanager
2009-01-29 14:17:10 +0100 b_michaelsen r267134 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:21:54 +0100 b_michaelsen r267125 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:06:10 +0100 b_michaelsen r267120 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:00:09 +0100 b_michaelsen r267118 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 10:35:10 +0100 b_michaelsen r267101 : #i94949# renamed SetCrsrToBkmk to SetCrsrToMark, moving to start/end of doc if no more bookmarks can be found
2009-01-28 17:05:36 +0100 b_michaelsen r267070 : #i94949# fixed order in aProvNamesId in unocoll.cxx
2009-01-28 15:46:13 +0100 b_michaelsen r267063 : #i94949# documentation
2009-01-28 15:36:59 +0100 b_michaelsen r267062 : #i94949# removing superficial #include
2009-01-28 15:30:36 +0100 b_michaelsen r267061 : #i94949# basic code conventions
2009-01-28 11:14:30 +0100 b_michaelsen r267039 : #i94949# comparing to the actual name of the new mark
2009-01-26 15:22:25 +0100 b_michaelsen r266927 : #i94949# performance fixes
2009-01-14 21:16:56 +0100 b_michaelsen r266332 : #i94949# fixing linux x86-64 compiler warnings
2009-01-14 19:52:06 +0100 b_michaelsen r266331 : #i94949# fixing some compiler warnings
2008-12-15 13:04:49 +0100 b_michaelsen r265474 : #i94949# fixed microsoft compiler warnings
2008-12-12 18:26:02 +0100 b_michaelsen r265434 : #i94949# fixed pro platform buildbreakers
2008-12-11 17:51:24 +0100 b_michaelsen r265342 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@264807 (milestone: DEV300:m37)
2008-12-09 18:30:59 +0100 b_michaelsen r265134 : #i94949# fixed IDocumentMarkAccess::GetType for new mark inheritance tree
2008-12-09 16:56:26 +0100 b_michaelsen r265118 : #i94949# fixed deleteMark optimization
2008-12-09 14:55:58 +0100 b_michaelsen r265092 : #i94949# DdeLink and DdeBookmark
2008-12-05 18:28:05 +0100 b_michaelsen r264914 : #i94949# fixed InitDoc in bookmarks
2008-12-02 02:23:51 +0100 b_michaelsen r264649 : #i94949# removed obsolete naming proposal code in SwXTextRange, fixed navigator reminders to forget the oldest reminder when the pool is empty
2008-12-02 02:05:19 +0100 b_michaelsen r264648 : #i94949# using bisect search for delete
2008-12-02 01:58:16 +0100 b_michaelsen r264647 : #i94949# using bisect search for delete
2008-12-02 01:37:33 +0100 b_michaelsen r264646 : #i94949# using bisect search for delete
2008-12-02 01:03:29 +0100 b_michaelsen r264645 : #i94949# fixed deleteMark crash
2008-12-01 20:55:00 +0100 b_michaelsen r264638 : #i94949# removed crossrefs from ui enumerations
2008-12-01 15:48:12 +0100 b_michaelsen r264613 : #i94949# removed superfluous local functions
2008-12-01 15:01:19 +0100 b_michaelsen r264608 : #i94949# optimized insertion of new marks
2008-12-01 14:33:21 +0100 b_michaelsen r264603 : #i94949# simplified code finding Fieldmark for a position
2008-12-01 14:05:55 +0100 b_michaelsen r264598 : #i94949# fixed reverse travelling through marks, removed obsolete getUniqueMarkName()
2008-11-27 18:48:15 +0100 b_michaelsen r264515 : #i94949# fixed _SaveCntntIdx and friends
2008-11-27 15:59:49 +0100 b_michaelsen r264500 : #i94949# fix Mark position only in ctor
2008-11-27 15:52:28 +0100 b_michaelsen r264497 : #i94949# fixed Bug in SwXBookmark, was using pDoc too early
2008-11-26 14:54:22 +0100 b_michaelsen r264396 : #i94949# fixed documentation, simplified navigator reminder code
2008-11-24 20:45:51 +0100 b_michaelsen r264266 : #i94949# removed last obsolete getUniqueMarkName calls
2008-11-24 20:21:35 +0100 b_michaelsen r264265 : #i94949# fixed typo in IDocumentMarkAccess, removed obsolete getUniqueMarkName calls
2008-11-24 18:34:32 +0100 b_michaelsen r264264 : #i94949# repositioning of Marks, removed possibility to delete marks by name in the core, refactoring of navigator reminder generation
2008-11-21 14:08:49 +0100 b_michaelsen r264137 : #i94949# simplified makeMark
2008-11-21 12:07:09 +0100 b_michaelsen r264120 : #i94949# moved ShortName and KeyCode from IMark to IBookmark
2008-11-19 12:50:49 +0100 b_michaelsen r263981 : #i94949# starting refactoring of bookmark naming
2008-11-19 11:31:08 +0100 b_michaelsen r263972 : #i94949# getting rid of obsolete dynamic casts
2008-11-18 19:06:09 +0100 b_michaelsen r263795 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 17:50:18 +0100 b_michaelsen r263792 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 16:48:20 +0100 b_michaelsen r263783 : #i94949# removed methods from crsrsh which are already available directly via IDocumentMarkAccess
2008-11-18 11:31:35 +0100 b_michaelsen r263753 : #i94949# cleaning up mark code in crsrsh
2008-11-17 10:15:25 +0100 b_michaelsen r263705 : #i94949# removed possible integer overflow
2008-11-14 18:48:45 +0100 b_michaelsen r263695 : #i94949# management of mark names in MarkManager
2008-11-14 18:23:40 +0100 b_michaelsen r263693 : #i94949# using polymorphism to do mark-specific setup in SwDoc
2008-11-14 16:27:09 +0100 b_michaelsen r263684 : #i94949# got rid of makeCrossRefBookmark
2008-11-14 13:03:32 +0100 b_michaelsen r263674 : #i94949# refactored Correction methods
2008-11-13 12:27:55 +0100 b_michaelsen r263631 : #i94949# got rid of old-style tools assertions in new code
2008-11-12 16:58:16 +0100 b_michaelsen r263608 : #i94949# added assertion for unique names
2008-11-12 16:55:18 +0100 b_michaelsen r263607 : #i94949# maked XFormField deprecated
2008-11-12 13:04:29 +0100 b_michaelsen r263587 : #i94949# replaced IDocumentMarkAccess::GetType with simple dynamic_cast where possible
2008-11-11 18:45:53 +0100 b_michaelsen r263572 : #i94949# cleaned up SwHstryBookmark
2008-11-11 13:48:18 +0100 b_michaelsen r263557 : #i94949# removed dynamic_casts to SwModify by inheriting IMark from it
2008-11-11 11:26:28 +0100 b_michaelsen r263548 : #i94949# fixed SwXBookmark
2008-11-10 17:01:19 +0100 b_michaelsen r263529 : #i94949# fixed DdeBookmarks in clipboard
2008-11-10 16:44:52 +0100 b_michaelsen r263527 : #i94949# formatting
2008-11-10 16:29:16 +0100 b_michaelsen r263526 : #i94949# fixing unoobj.cxx
2008-11-10 16:23:50 +0100 b_michaelsen r263525 : #i94949# cleaning up crossrefbookmark.cxx/.hxx
2008-11-10 16:02:08 +0100 b_michaelsen r263524 : #i94949# Pdf Export should only generate 'real' bookmarks
2008-11-10 15:33:58 +0100 b_michaelsen r263521 : #i94949# removed const_casts
2008-11-10 15:12:06 +0100 b_michaelsen r263520 : #i94949# moved _DelBookmarks into MarksManager
2008-11-07 18:48:38 +0100 b_michaelsen r263480 : #i94949# using iterator interface
2008-11-07 18:41:46 +0100 b_michaelsen r263478 : #i94949# using iterator interface
2008-11-07 18:07:41 +0100 b_michaelsen r263477 : #i94949# using iterator interface
2008-11-07 17:54:41 +0100 b_michaelsen r263476 : #i94949# using iterator interface
2008-11-07 17:44:41 +0100 b_michaelsen r263475 : #i94949# moved correction methods into MarkManager
2008-11-06 18:47:28 +0100 b_michaelsen r263404 : #i94949# getting rid of superfluous const_casts
2008-11-06 17:58:01 +0100 b_michaelsen r263403 : #i94949# no more setting of mark positions outside of the core
2008-11-06 17:08:37 +0100 b_michaelsen r263401 : #i94949# removed setters from IMark
2008-11-06 13:55:25 +0100 b_michaelsen r263383 : #i94949 SwDoc does not implement IDocumentMarkAccess anymore
2008-11-04 18:17:03 +0100 b_michaelsen r263333 : #i94949# began removing IDocumentMarkAccess from SwDoc
2008-11-04 16:48:34 +0100 b_michaelsen r263330 : removing dead code (SwBitArray) found by mst
2008-11-04 16:29:32 +0100 b_michaelsen r263329 : removing dead code (SwBitArray) found by mst
2008-11-04 14:57:48 +0100 b_michaelsen r263326 : removing dead code (SwBitArray) found by mst
2008-11-04 14:50:18 +0100 b_michaelsen r263325 : #i94949# stricter typing in IDocumentMarkAccess
2008-10-24 15:16:27 +0200 b_michaelsen r262647 : #i94949# renamed ::sw::bookmark::SimpleMark to NavigatorReminder to fit the IDocumentMarkAccess enum
2008-10-24 15:10:10 +0200 b_michaelsen r262646 : #i94949# only 'real' bookmark implement IBookmark, Marks also get removed from m_vFieldmarks on delete/clear
2008-10-24 13:06:23 +0200 b_michaelsen r262636 : #i94949# Fieldmark tabnavigation
2008-10-23 12:16:36 +0200 b_michaelsen r262619 : #i94949# Fieldmark classes and filters
2008-10-22 13:17:18 +0200 b_michaelsen r262597 : #i94949# writer import fixes
2008-10-21 11:30:38 +0200 b_michaelsen r262565 : #i94949# renamed methods containing Bookmark in the generic IMark interface
2008-10-20 14:09:02 +0200 b_michaelsen r262318 : #i94949# fixed SwDoc::CorrRel
2008-10-16 22:45:13 +0200 b_michaelsen r262273 : #i94949 simplified Before/After methods
2008-10-16 21:40:57 +0200 b_michaelsen r262271 : #i94949 renamed SimpleMark to NavigatorReminder
2008-10-16 21:15:23 +0200 b_michaelsen r262270 : #i94949 using shared_ptr only in MarkManager
2008-10-16 17:46:37 +0200 b_michaelsen r262269 : #i94949# getFieldmarkBefore and getFieldmarkAfter
2008-10-16 17:12:13 +0200 b_michaelsen r262265 : #i94949# cleanup in crbm.cxx
2008-10-16 12:49:01 +0200 b_michaelsen r262257 : #i94949# fixed usage of invalid iterator, fixed invalid cast
2008-10-15 15:34:20 +0200 b_michaelsen r262239 : #i94949# added moved files
2008-10-15 15:26:45 +0200 b_michaelsen r262237 : #i94949# initial reimplementation of Bookmarks
2009-04-21 15:40:02 +00:00
|
|
|
if(aIntersect.HasArea())
|
2008-09-04 09:19:55 +00:00
|
|
|
{
|
CWS-TOOLING: integrate CWS swrefactormarks2
2009-04-09 12:51:41 +0200 b_michaelsen r270689 : #i94949# cleaned up assertions after rebasing
2009-04-08 17:37:08 +0200 b_michaelsen r270658 : fixing sw/source/ui/utlui/makefile.mk
2009-04-07 17:56:54 +0200 b_michaelsen r270606 : added bookctrl.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-07 17:05:20 +0200 b_michaelsen r270603 : added crbm.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-02 23:44:38 +0200 b_michaelsen r270436 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@270033 (milestone: DEV300:m45)
2009-02-27 16:25:31 +0100 b_michaelsen r268606 : #i94949# fixed Windows buildbreaker
2009-02-25 18:01:13 +0100 b_michaelsen r268464 : #i94949# Bookmarktest document filter roundtrips
2009-02-24 18:23:55 +0100 b_michaelsen r268404 : #i94949# Bookmark unittests
2009-02-23 19:47:44 +0100 b_michaelsen r268370 : #i94949# added unittest for bookmarks
2009-02-23 12:22:07 +0100 b_michaelsen r268348 : #i94949# fixing CheckCrossReferences testcase
2009-02-20 18:12:50 +0100 b_michaelsen r268335 : #i94949# fixing SwXTextRange
2009-02-18 18:32:57 +0100 b_michaelsen r268252 : #i94949# deregistering DdeBookmarks on delete
2009-02-18 18:29:08 +0100 b_michaelsen r268251 : fixing dbgoutsw.cxx for debug builds
2009-02-16 18:42:43 +0100 b_michaelsen r267834 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@267171 (milestone: DEV300:m41)
2009-02-12 15:32:02 +0100 b_michaelsen r267667 : #i94949 fixed crossrefbookmark naming
2009-02-11 18:30:08 +0100 b_michaelsen r267624 : #94949# fixing bookmark navigation
2009-02-11 13:55:26 +0100 b_michaelsen r267599 : #i94949# fixed bookmark naming
2009-02-10 17:53:05 +0100 b_michaelsen r267571 : #i94949# renamed HasOtherMarkPos to IsExpanded
2009-02-10 17:23:01 +0100 b_michaelsen r267564 : #i94949# renamed ::sw::bookmark namespace to more fitting ::sw::mark
2009-02-10 16:16:32 +0100 b_michaelsen r267553 : #i94949# creating only CrossRefBookmark per Txtnode
2009-02-10 12:14:05 +0100 b_michaelsen r267547 : #i94949# fixed bookmark count in navigator
2009-02-09 19:12:18 +0100 b_michaelsen r267532 : #i94949# lcl_CopyBookmarks(..) - handle marks on boundaries correctly
2009-02-09 17:32:45 +0100 b_michaelsen r267524 : #i94949# setting the refobject of the DdeBookmark in Sin SwServerObject::SetDdeBookmark(..)
2009-02-09 17:22:15 +0100 b_michaelsen r267523 : #i94949# trying to harden SwServerObject
2009-02-09 16:47:32 +0100 b_michaelsen r267521 : #i94949# lcl_CopyBookmarks(..): try to get the source mark name, if possible
2009-02-09 16:05:42 +0100 b_michaelsen r267519 : #i94949# clearing the OtherMarkPos if PaM has no mark in repositionMark(..), swapping inverted bookmarks without hissing an assertion
2009-02-09 15:55:38 +0100 b_michaelsen r267518 : #i94949# checking for out-of-bounds in SwView::ExecuteStatusLine(..)
2009-02-09 15:23:47 +0100 b_michaelsen r267517 : #i94949# using an UNO_BOOKMARK in ui/dbui/dbinsdlg.cxx
2009-02-09 14:14:47 +0100 b_michaelsen r267514 : #i94949# IDocumentMarkAccess::GetType(..) asserts on unknown type
2009-02-09 14:04:25 +0100 b_michaelsen r267513 : #i94949# using rtl strings instead of tools-strings in CrossRefBookmarks
2009-02-09 13:55:01 +0100 b_michaelsen r267510 : #i94949# using empty string for UnoMark construction
2009-02-09 13:46:46 +0100 b_michaelsen r267509 : #i94949# removed superfluous #includes, removed superfluous member DdeBookmark::bGenerateName, initialized DdeBookmark::m_aRefObj removed superfluous local _FindItem::ClearObj
2009-02-06 14:38:37 +0100 b_michaelsen r267462 : #i94949# fixing FN_STAT_BOOKMARK dispatches
2009-02-05 18:05:07 +0100 b_michaelsen r267436 : #i94949# removing superfluous #includes
2009-02-04 15:51:31 +0100 b_michaelsen r267391 : fixing resync merge error
2009-02-02 19:39:55 +0100 b_michaelsen r267294 : #i94949# bookmark performance
2009-01-30 19:30:51 +0100 b_michaelsen r267229 : #i94949# throwing IllegalArgumentException, if appropriate
2009-01-30 19:29:56 +0100 b_michaelsen r267228 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:23:49 +0100 b_michaelsen r267227 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:16:06 +0100 b_michaelsen r267226 : #i94949# refactored lcl_FillBookmarkArray
2009-01-30 17:59:27 +0100 b_michaelsen r267222 : #i94949# removed superficial #include
2009-01-30 17:50:02 +0100 b_michaelsen r267220 : #i94949# SwXTextRange remembers its UNO bookmark
2009-01-29 20:19:58 +0100 b_michaelsen r267168 : #i94949# implemented IDocumentMarkAccess::findBookmark
2009-01-29 17:22:17 +0100 b_michaelsen r267162 : #i94949# implemented renameMark in Markmanager
2009-01-29 14:17:10 +0100 b_michaelsen r267134 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:21:54 +0100 b_michaelsen r267125 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:06:10 +0100 b_michaelsen r267120 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:00:09 +0100 b_michaelsen r267118 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 10:35:10 +0100 b_michaelsen r267101 : #i94949# renamed SetCrsrToBkmk to SetCrsrToMark, moving to start/end of doc if no more bookmarks can be found
2009-01-28 17:05:36 +0100 b_michaelsen r267070 : #i94949# fixed order in aProvNamesId in unocoll.cxx
2009-01-28 15:46:13 +0100 b_michaelsen r267063 : #i94949# documentation
2009-01-28 15:36:59 +0100 b_michaelsen r267062 : #i94949# removing superficial #include
2009-01-28 15:30:36 +0100 b_michaelsen r267061 : #i94949# basic code conventions
2009-01-28 11:14:30 +0100 b_michaelsen r267039 : #i94949# comparing to the actual name of the new mark
2009-01-26 15:22:25 +0100 b_michaelsen r266927 : #i94949# performance fixes
2009-01-14 21:16:56 +0100 b_michaelsen r266332 : #i94949# fixing linux x86-64 compiler warnings
2009-01-14 19:52:06 +0100 b_michaelsen r266331 : #i94949# fixing some compiler warnings
2008-12-15 13:04:49 +0100 b_michaelsen r265474 : #i94949# fixed microsoft compiler warnings
2008-12-12 18:26:02 +0100 b_michaelsen r265434 : #i94949# fixed pro platform buildbreakers
2008-12-11 17:51:24 +0100 b_michaelsen r265342 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@264807 (milestone: DEV300:m37)
2008-12-09 18:30:59 +0100 b_michaelsen r265134 : #i94949# fixed IDocumentMarkAccess::GetType for new mark inheritance tree
2008-12-09 16:56:26 +0100 b_michaelsen r265118 : #i94949# fixed deleteMark optimization
2008-12-09 14:55:58 +0100 b_michaelsen r265092 : #i94949# DdeLink and DdeBookmark
2008-12-05 18:28:05 +0100 b_michaelsen r264914 : #i94949# fixed InitDoc in bookmarks
2008-12-02 02:23:51 +0100 b_michaelsen r264649 : #i94949# removed obsolete naming proposal code in SwXTextRange, fixed navigator reminders to forget the oldest reminder when the pool is empty
2008-12-02 02:05:19 +0100 b_michaelsen r264648 : #i94949# using bisect search for delete
2008-12-02 01:58:16 +0100 b_michaelsen r264647 : #i94949# using bisect search for delete
2008-12-02 01:37:33 +0100 b_michaelsen r264646 : #i94949# using bisect search for delete
2008-12-02 01:03:29 +0100 b_michaelsen r264645 : #i94949# fixed deleteMark crash
2008-12-01 20:55:00 +0100 b_michaelsen r264638 : #i94949# removed crossrefs from ui enumerations
2008-12-01 15:48:12 +0100 b_michaelsen r264613 : #i94949# removed superfluous local functions
2008-12-01 15:01:19 +0100 b_michaelsen r264608 : #i94949# optimized insertion of new marks
2008-12-01 14:33:21 +0100 b_michaelsen r264603 : #i94949# simplified code finding Fieldmark for a position
2008-12-01 14:05:55 +0100 b_michaelsen r264598 : #i94949# fixed reverse travelling through marks, removed obsolete getUniqueMarkName()
2008-11-27 18:48:15 +0100 b_michaelsen r264515 : #i94949# fixed _SaveCntntIdx and friends
2008-11-27 15:59:49 +0100 b_michaelsen r264500 : #i94949# fix Mark position only in ctor
2008-11-27 15:52:28 +0100 b_michaelsen r264497 : #i94949# fixed Bug in SwXBookmark, was using pDoc too early
2008-11-26 14:54:22 +0100 b_michaelsen r264396 : #i94949# fixed documentation, simplified navigator reminder code
2008-11-24 20:45:51 +0100 b_michaelsen r264266 : #i94949# removed last obsolete getUniqueMarkName calls
2008-11-24 20:21:35 +0100 b_michaelsen r264265 : #i94949# fixed typo in IDocumentMarkAccess, removed obsolete getUniqueMarkName calls
2008-11-24 18:34:32 +0100 b_michaelsen r264264 : #i94949# repositioning of Marks, removed possibility to delete marks by name in the core, refactoring of navigator reminder generation
2008-11-21 14:08:49 +0100 b_michaelsen r264137 : #i94949# simplified makeMark
2008-11-21 12:07:09 +0100 b_michaelsen r264120 : #i94949# moved ShortName and KeyCode from IMark to IBookmark
2008-11-19 12:50:49 +0100 b_michaelsen r263981 : #i94949# starting refactoring of bookmark naming
2008-11-19 11:31:08 +0100 b_michaelsen r263972 : #i94949# getting rid of obsolete dynamic casts
2008-11-18 19:06:09 +0100 b_michaelsen r263795 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 17:50:18 +0100 b_michaelsen r263792 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 16:48:20 +0100 b_michaelsen r263783 : #i94949# removed methods from crsrsh which are already available directly via IDocumentMarkAccess
2008-11-18 11:31:35 +0100 b_michaelsen r263753 : #i94949# cleaning up mark code in crsrsh
2008-11-17 10:15:25 +0100 b_michaelsen r263705 : #i94949# removed possible integer overflow
2008-11-14 18:48:45 +0100 b_michaelsen r263695 : #i94949# management of mark names in MarkManager
2008-11-14 18:23:40 +0100 b_michaelsen r263693 : #i94949# using polymorphism to do mark-specific setup in SwDoc
2008-11-14 16:27:09 +0100 b_michaelsen r263684 : #i94949# got rid of makeCrossRefBookmark
2008-11-14 13:03:32 +0100 b_michaelsen r263674 : #i94949# refactored Correction methods
2008-11-13 12:27:55 +0100 b_michaelsen r263631 : #i94949# got rid of old-style tools assertions in new code
2008-11-12 16:58:16 +0100 b_michaelsen r263608 : #i94949# added assertion for unique names
2008-11-12 16:55:18 +0100 b_michaelsen r263607 : #i94949# maked XFormField deprecated
2008-11-12 13:04:29 +0100 b_michaelsen r263587 : #i94949# replaced IDocumentMarkAccess::GetType with simple dynamic_cast where possible
2008-11-11 18:45:53 +0100 b_michaelsen r263572 : #i94949# cleaned up SwHstryBookmark
2008-11-11 13:48:18 +0100 b_michaelsen r263557 : #i94949# removed dynamic_casts to SwModify by inheriting IMark from it
2008-11-11 11:26:28 +0100 b_michaelsen r263548 : #i94949# fixed SwXBookmark
2008-11-10 17:01:19 +0100 b_michaelsen r263529 : #i94949# fixed DdeBookmarks in clipboard
2008-11-10 16:44:52 +0100 b_michaelsen r263527 : #i94949# formatting
2008-11-10 16:29:16 +0100 b_michaelsen r263526 : #i94949# fixing unoobj.cxx
2008-11-10 16:23:50 +0100 b_michaelsen r263525 : #i94949# cleaning up crossrefbookmark.cxx/.hxx
2008-11-10 16:02:08 +0100 b_michaelsen r263524 : #i94949# Pdf Export should only generate 'real' bookmarks
2008-11-10 15:33:58 +0100 b_michaelsen r263521 : #i94949# removed const_casts
2008-11-10 15:12:06 +0100 b_michaelsen r263520 : #i94949# moved _DelBookmarks into MarksManager
2008-11-07 18:48:38 +0100 b_michaelsen r263480 : #i94949# using iterator interface
2008-11-07 18:41:46 +0100 b_michaelsen r263478 : #i94949# using iterator interface
2008-11-07 18:07:41 +0100 b_michaelsen r263477 : #i94949# using iterator interface
2008-11-07 17:54:41 +0100 b_michaelsen r263476 : #i94949# using iterator interface
2008-11-07 17:44:41 +0100 b_michaelsen r263475 : #i94949# moved correction methods into MarkManager
2008-11-06 18:47:28 +0100 b_michaelsen r263404 : #i94949# getting rid of superfluous const_casts
2008-11-06 17:58:01 +0100 b_michaelsen r263403 : #i94949# no more setting of mark positions outside of the core
2008-11-06 17:08:37 +0100 b_michaelsen r263401 : #i94949# removed setters from IMark
2008-11-06 13:55:25 +0100 b_michaelsen r263383 : #i94949 SwDoc does not implement IDocumentMarkAccess anymore
2008-11-04 18:17:03 +0100 b_michaelsen r263333 : #i94949# began removing IDocumentMarkAccess from SwDoc
2008-11-04 16:48:34 +0100 b_michaelsen r263330 : removing dead code (SwBitArray) found by mst
2008-11-04 16:29:32 +0100 b_michaelsen r263329 : removing dead code (SwBitArray) found by mst
2008-11-04 14:57:48 +0100 b_michaelsen r263326 : removing dead code (SwBitArray) found by mst
2008-11-04 14:50:18 +0100 b_michaelsen r263325 : #i94949# stricter typing in IDocumentMarkAccess
2008-10-24 15:16:27 +0200 b_michaelsen r262647 : #i94949# renamed ::sw::bookmark::SimpleMark to NavigatorReminder to fit the IDocumentMarkAccess enum
2008-10-24 15:10:10 +0200 b_michaelsen r262646 : #i94949# only 'real' bookmark implement IBookmark, Marks also get removed from m_vFieldmarks on delete/clear
2008-10-24 13:06:23 +0200 b_michaelsen r262636 : #i94949# Fieldmark tabnavigation
2008-10-23 12:16:36 +0200 b_michaelsen r262619 : #i94949# Fieldmark classes and filters
2008-10-22 13:17:18 +0200 b_michaelsen r262597 : #i94949# writer import fixes
2008-10-21 11:30:38 +0200 b_michaelsen r262565 : #i94949# renamed methods containing Bookmark in the generic IMark interface
2008-10-20 14:09:02 +0200 b_michaelsen r262318 : #i94949# fixed SwDoc::CorrRel
2008-10-16 22:45:13 +0200 b_michaelsen r262273 : #i94949 simplified Before/After methods
2008-10-16 21:40:57 +0200 b_michaelsen r262271 : #i94949 renamed SimpleMark to NavigatorReminder
2008-10-16 21:15:23 +0200 b_michaelsen r262270 : #i94949 using shared_ptr only in MarkManager
2008-10-16 17:46:37 +0200 b_michaelsen r262269 : #i94949# getFieldmarkBefore and getFieldmarkAfter
2008-10-16 17:12:13 +0200 b_michaelsen r262265 : #i94949# cleanup in crbm.cxx
2008-10-16 12:49:01 +0200 b_michaelsen r262257 : #i94949# fixed usage of invalid iterator, fixed invalid cast
2008-10-15 15:34:20 +0200 b_michaelsen r262239 : #i94949# added moved files
2008-10-15 15:26:45 +0200 b_michaelsen r262237 : #i94949# initial reimplementation of Bookmarks
2009-04-21 15:40:02 +00:00
|
|
|
SwTxtNode *pNd = pFrm->GetTxtNode();
|
|
|
|
const ::sw::mark::IMark* pFieldmark = NULL;
|
|
|
|
if(pNd)
|
2008-09-04 09:19:55 +00:00
|
|
|
{
|
|
|
|
const SwDoc *doc=pNd->GetDoc();
|
CWS-TOOLING: integrate CWS swrefactormarks2
2009-04-09 12:51:41 +0200 b_michaelsen r270689 : #i94949# cleaned up assertions after rebasing
2009-04-08 17:37:08 +0200 b_michaelsen r270658 : fixing sw/source/ui/utlui/makefile.mk
2009-04-07 17:56:54 +0200 b_michaelsen r270606 : added bookctrl.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-07 17:05:20 +0200 b_michaelsen r270603 : added crbm.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-02 23:44:38 +0200 b_michaelsen r270436 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@270033 (milestone: DEV300:m45)
2009-02-27 16:25:31 +0100 b_michaelsen r268606 : #i94949# fixed Windows buildbreaker
2009-02-25 18:01:13 +0100 b_michaelsen r268464 : #i94949# Bookmarktest document filter roundtrips
2009-02-24 18:23:55 +0100 b_michaelsen r268404 : #i94949# Bookmark unittests
2009-02-23 19:47:44 +0100 b_michaelsen r268370 : #i94949# added unittest for bookmarks
2009-02-23 12:22:07 +0100 b_michaelsen r268348 : #i94949# fixing CheckCrossReferences testcase
2009-02-20 18:12:50 +0100 b_michaelsen r268335 : #i94949# fixing SwXTextRange
2009-02-18 18:32:57 +0100 b_michaelsen r268252 : #i94949# deregistering DdeBookmarks on delete
2009-02-18 18:29:08 +0100 b_michaelsen r268251 : fixing dbgoutsw.cxx for debug builds
2009-02-16 18:42:43 +0100 b_michaelsen r267834 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@267171 (milestone: DEV300:m41)
2009-02-12 15:32:02 +0100 b_michaelsen r267667 : #i94949 fixed crossrefbookmark naming
2009-02-11 18:30:08 +0100 b_michaelsen r267624 : #94949# fixing bookmark navigation
2009-02-11 13:55:26 +0100 b_michaelsen r267599 : #i94949# fixed bookmark naming
2009-02-10 17:53:05 +0100 b_michaelsen r267571 : #i94949# renamed HasOtherMarkPos to IsExpanded
2009-02-10 17:23:01 +0100 b_michaelsen r267564 : #i94949# renamed ::sw::bookmark namespace to more fitting ::sw::mark
2009-02-10 16:16:32 +0100 b_michaelsen r267553 : #i94949# creating only CrossRefBookmark per Txtnode
2009-02-10 12:14:05 +0100 b_michaelsen r267547 : #i94949# fixed bookmark count in navigator
2009-02-09 19:12:18 +0100 b_michaelsen r267532 : #i94949# lcl_CopyBookmarks(..) - handle marks on boundaries correctly
2009-02-09 17:32:45 +0100 b_michaelsen r267524 : #i94949# setting the refobject of the DdeBookmark in Sin SwServerObject::SetDdeBookmark(..)
2009-02-09 17:22:15 +0100 b_michaelsen r267523 : #i94949# trying to harden SwServerObject
2009-02-09 16:47:32 +0100 b_michaelsen r267521 : #i94949# lcl_CopyBookmarks(..): try to get the source mark name, if possible
2009-02-09 16:05:42 +0100 b_michaelsen r267519 : #i94949# clearing the OtherMarkPos if PaM has no mark in repositionMark(..), swapping inverted bookmarks without hissing an assertion
2009-02-09 15:55:38 +0100 b_michaelsen r267518 : #i94949# checking for out-of-bounds in SwView::ExecuteStatusLine(..)
2009-02-09 15:23:47 +0100 b_michaelsen r267517 : #i94949# using an UNO_BOOKMARK in ui/dbui/dbinsdlg.cxx
2009-02-09 14:14:47 +0100 b_michaelsen r267514 : #i94949# IDocumentMarkAccess::GetType(..) asserts on unknown type
2009-02-09 14:04:25 +0100 b_michaelsen r267513 : #i94949# using rtl strings instead of tools-strings in CrossRefBookmarks
2009-02-09 13:55:01 +0100 b_michaelsen r267510 : #i94949# using empty string for UnoMark construction
2009-02-09 13:46:46 +0100 b_michaelsen r267509 : #i94949# removed superfluous #includes, removed superfluous member DdeBookmark::bGenerateName, initialized DdeBookmark::m_aRefObj removed superfluous local _FindItem::ClearObj
2009-02-06 14:38:37 +0100 b_michaelsen r267462 : #i94949# fixing FN_STAT_BOOKMARK dispatches
2009-02-05 18:05:07 +0100 b_michaelsen r267436 : #i94949# removing superfluous #includes
2009-02-04 15:51:31 +0100 b_michaelsen r267391 : fixing resync merge error
2009-02-02 19:39:55 +0100 b_michaelsen r267294 : #i94949# bookmark performance
2009-01-30 19:30:51 +0100 b_michaelsen r267229 : #i94949# throwing IllegalArgumentException, if appropriate
2009-01-30 19:29:56 +0100 b_michaelsen r267228 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:23:49 +0100 b_michaelsen r267227 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:16:06 +0100 b_michaelsen r267226 : #i94949# refactored lcl_FillBookmarkArray
2009-01-30 17:59:27 +0100 b_michaelsen r267222 : #i94949# removed superficial #include
2009-01-30 17:50:02 +0100 b_michaelsen r267220 : #i94949# SwXTextRange remembers its UNO bookmark
2009-01-29 20:19:58 +0100 b_michaelsen r267168 : #i94949# implemented IDocumentMarkAccess::findBookmark
2009-01-29 17:22:17 +0100 b_michaelsen r267162 : #i94949# implemented renameMark in Markmanager
2009-01-29 14:17:10 +0100 b_michaelsen r267134 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:21:54 +0100 b_michaelsen r267125 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:06:10 +0100 b_michaelsen r267120 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:00:09 +0100 b_michaelsen r267118 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 10:35:10 +0100 b_michaelsen r267101 : #i94949# renamed SetCrsrToBkmk to SetCrsrToMark, moving to start/end of doc if no more bookmarks can be found
2009-01-28 17:05:36 +0100 b_michaelsen r267070 : #i94949# fixed order in aProvNamesId in unocoll.cxx
2009-01-28 15:46:13 +0100 b_michaelsen r267063 : #i94949# documentation
2009-01-28 15:36:59 +0100 b_michaelsen r267062 : #i94949# removing superficial #include
2009-01-28 15:30:36 +0100 b_michaelsen r267061 : #i94949# basic code conventions
2009-01-28 11:14:30 +0100 b_michaelsen r267039 : #i94949# comparing to the actual name of the new mark
2009-01-26 15:22:25 +0100 b_michaelsen r266927 : #i94949# performance fixes
2009-01-14 21:16:56 +0100 b_michaelsen r266332 : #i94949# fixing linux x86-64 compiler warnings
2009-01-14 19:52:06 +0100 b_michaelsen r266331 : #i94949# fixing some compiler warnings
2008-12-15 13:04:49 +0100 b_michaelsen r265474 : #i94949# fixed microsoft compiler warnings
2008-12-12 18:26:02 +0100 b_michaelsen r265434 : #i94949# fixed pro platform buildbreakers
2008-12-11 17:51:24 +0100 b_michaelsen r265342 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@264807 (milestone: DEV300:m37)
2008-12-09 18:30:59 +0100 b_michaelsen r265134 : #i94949# fixed IDocumentMarkAccess::GetType for new mark inheritance tree
2008-12-09 16:56:26 +0100 b_michaelsen r265118 : #i94949# fixed deleteMark optimization
2008-12-09 14:55:58 +0100 b_michaelsen r265092 : #i94949# DdeLink and DdeBookmark
2008-12-05 18:28:05 +0100 b_michaelsen r264914 : #i94949# fixed InitDoc in bookmarks
2008-12-02 02:23:51 +0100 b_michaelsen r264649 : #i94949# removed obsolete naming proposal code in SwXTextRange, fixed navigator reminders to forget the oldest reminder when the pool is empty
2008-12-02 02:05:19 +0100 b_michaelsen r264648 : #i94949# using bisect search for delete
2008-12-02 01:58:16 +0100 b_michaelsen r264647 : #i94949# using bisect search for delete
2008-12-02 01:37:33 +0100 b_michaelsen r264646 : #i94949# using bisect search for delete
2008-12-02 01:03:29 +0100 b_michaelsen r264645 : #i94949# fixed deleteMark crash
2008-12-01 20:55:00 +0100 b_michaelsen r264638 : #i94949# removed crossrefs from ui enumerations
2008-12-01 15:48:12 +0100 b_michaelsen r264613 : #i94949# removed superfluous local functions
2008-12-01 15:01:19 +0100 b_michaelsen r264608 : #i94949# optimized insertion of new marks
2008-12-01 14:33:21 +0100 b_michaelsen r264603 : #i94949# simplified code finding Fieldmark for a position
2008-12-01 14:05:55 +0100 b_michaelsen r264598 : #i94949# fixed reverse travelling through marks, removed obsolete getUniqueMarkName()
2008-11-27 18:48:15 +0100 b_michaelsen r264515 : #i94949# fixed _SaveCntntIdx and friends
2008-11-27 15:59:49 +0100 b_michaelsen r264500 : #i94949# fix Mark position only in ctor
2008-11-27 15:52:28 +0100 b_michaelsen r264497 : #i94949# fixed Bug in SwXBookmark, was using pDoc too early
2008-11-26 14:54:22 +0100 b_michaelsen r264396 : #i94949# fixed documentation, simplified navigator reminder code
2008-11-24 20:45:51 +0100 b_michaelsen r264266 : #i94949# removed last obsolete getUniqueMarkName calls
2008-11-24 20:21:35 +0100 b_michaelsen r264265 : #i94949# fixed typo in IDocumentMarkAccess, removed obsolete getUniqueMarkName calls
2008-11-24 18:34:32 +0100 b_michaelsen r264264 : #i94949# repositioning of Marks, removed possibility to delete marks by name in the core, refactoring of navigator reminder generation
2008-11-21 14:08:49 +0100 b_michaelsen r264137 : #i94949# simplified makeMark
2008-11-21 12:07:09 +0100 b_michaelsen r264120 : #i94949# moved ShortName and KeyCode from IMark to IBookmark
2008-11-19 12:50:49 +0100 b_michaelsen r263981 : #i94949# starting refactoring of bookmark naming
2008-11-19 11:31:08 +0100 b_michaelsen r263972 : #i94949# getting rid of obsolete dynamic casts
2008-11-18 19:06:09 +0100 b_michaelsen r263795 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 17:50:18 +0100 b_michaelsen r263792 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 16:48:20 +0100 b_michaelsen r263783 : #i94949# removed methods from crsrsh which are already available directly via IDocumentMarkAccess
2008-11-18 11:31:35 +0100 b_michaelsen r263753 : #i94949# cleaning up mark code in crsrsh
2008-11-17 10:15:25 +0100 b_michaelsen r263705 : #i94949# removed possible integer overflow
2008-11-14 18:48:45 +0100 b_michaelsen r263695 : #i94949# management of mark names in MarkManager
2008-11-14 18:23:40 +0100 b_michaelsen r263693 : #i94949# using polymorphism to do mark-specific setup in SwDoc
2008-11-14 16:27:09 +0100 b_michaelsen r263684 : #i94949# got rid of makeCrossRefBookmark
2008-11-14 13:03:32 +0100 b_michaelsen r263674 : #i94949# refactored Correction methods
2008-11-13 12:27:55 +0100 b_michaelsen r263631 : #i94949# got rid of old-style tools assertions in new code
2008-11-12 16:58:16 +0100 b_michaelsen r263608 : #i94949# added assertion for unique names
2008-11-12 16:55:18 +0100 b_michaelsen r263607 : #i94949# maked XFormField deprecated
2008-11-12 13:04:29 +0100 b_michaelsen r263587 : #i94949# replaced IDocumentMarkAccess::GetType with simple dynamic_cast where possible
2008-11-11 18:45:53 +0100 b_michaelsen r263572 : #i94949# cleaned up SwHstryBookmark
2008-11-11 13:48:18 +0100 b_michaelsen r263557 : #i94949# removed dynamic_casts to SwModify by inheriting IMark from it
2008-11-11 11:26:28 +0100 b_michaelsen r263548 : #i94949# fixed SwXBookmark
2008-11-10 17:01:19 +0100 b_michaelsen r263529 : #i94949# fixed DdeBookmarks in clipboard
2008-11-10 16:44:52 +0100 b_michaelsen r263527 : #i94949# formatting
2008-11-10 16:29:16 +0100 b_michaelsen r263526 : #i94949# fixing unoobj.cxx
2008-11-10 16:23:50 +0100 b_michaelsen r263525 : #i94949# cleaning up crossrefbookmark.cxx/.hxx
2008-11-10 16:02:08 +0100 b_michaelsen r263524 : #i94949# Pdf Export should only generate 'real' bookmarks
2008-11-10 15:33:58 +0100 b_michaelsen r263521 : #i94949# removed const_casts
2008-11-10 15:12:06 +0100 b_michaelsen r263520 : #i94949# moved _DelBookmarks into MarksManager
2008-11-07 18:48:38 +0100 b_michaelsen r263480 : #i94949# using iterator interface
2008-11-07 18:41:46 +0100 b_michaelsen r263478 : #i94949# using iterator interface
2008-11-07 18:07:41 +0100 b_michaelsen r263477 : #i94949# using iterator interface
2008-11-07 17:54:41 +0100 b_michaelsen r263476 : #i94949# using iterator interface
2008-11-07 17:44:41 +0100 b_michaelsen r263475 : #i94949# moved correction methods into MarkManager
2008-11-06 18:47:28 +0100 b_michaelsen r263404 : #i94949# getting rid of superfluous const_casts
2008-11-06 17:58:01 +0100 b_michaelsen r263403 : #i94949# no more setting of mark positions outside of the core
2008-11-06 17:08:37 +0100 b_michaelsen r263401 : #i94949# removed setters from IMark
2008-11-06 13:55:25 +0100 b_michaelsen r263383 : #i94949 SwDoc does not implement IDocumentMarkAccess anymore
2008-11-04 18:17:03 +0100 b_michaelsen r263333 : #i94949# began removing IDocumentMarkAccess from SwDoc
2008-11-04 16:48:34 +0100 b_michaelsen r263330 : removing dead code (SwBitArray) found by mst
2008-11-04 16:29:32 +0100 b_michaelsen r263329 : removing dead code (SwBitArray) found by mst
2008-11-04 14:57:48 +0100 b_michaelsen r263326 : removing dead code (SwBitArray) found by mst
2008-11-04 14:50:18 +0100 b_michaelsen r263325 : #i94949# stricter typing in IDocumentMarkAccess
2008-10-24 15:16:27 +0200 b_michaelsen r262647 : #i94949# renamed ::sw::bookmark::SimpleMark to NavigatorReminder to fit the IDocumentMarkAccess enum
2008-10-24 15:10:10 +0200 b_michaelsen r262646 : #i94949# only 'real' bookmark implement IBookmark, Marks also get removed from m_vFieldmarks on delete/clear
2008-10-24 13:06:23 +0200 b_michaelsen r262636 : #i94949# Fieldmark tabnavigation
2008-10-23 12:16:36 +0200 b_michaelsen r262619 : #i94949# Fieldmark classes and filters
2008-10-22 13:17:18 +0200 b_michaelsen r262597 : #i94949# writer import fixes
2008-10-21 11:30:38 +0200 b_michaelsen r262565 : #i94949# renamed methods containing Bookmark in the generic IMark interface
2008-10-20 14:09:02 +0200 b_michaelsen r262318 : #i94949# fixed SwDoc::CorrRel
2008-10-16 22:45:13 +0200 b_michaelsen r262273 : #i94949 simplified Before/After methods
2008-10-16 21:40:57 +0200 b_michaelsen r262271 : #i94949 renamed SimpleMark to NavigatorReminder
2008-10-16 21:15:23 +0200 b_michaelsen r262270 : #i94949 using shared_ptr only in MarkManager
2008-10-16 17:46:37 +0200 b_michaelsen r262269 : #i94949# getFieldmarkBefore and getFieldmarkAfter
2008-10-16 17:12:13 +0200 b_michaelsen r262265 : #i94949# cleanup in crbm.cxx
2008-10-16 12:49:01 +0200 b_michaelsen r262257 : #i94949# fixed usage of invalid iterator, fixed invalid cast
2008-10-15 15:34:20 +0200 b_michaelsen r262239 : #i94949# added moved files
2008-10-15 15:26:45 +0200 b_michaelsen r262237 : #i94949# initial reimplementation of Bookmarks
2009-04-21 15:40:02 +00:00
|
|
|
if(doc)
|
2008-09-04 09:19:55 +00:00
|
|
|
{
|
CWS-TOOLING: integrate CWS swrefactormarks2
2009-04-09 12:51:41 +0200 b_michaelsen r270689 : #i94949# cleaned up assertions after rebasing
2009-04-08 17:37:08 +0200 b_michaelsen r270658 : fixing sw/source/ui/utlui/makefile.mk
2009-04-07 17:56:54 +0200 b_michaelsen r270606 : added bookctrl.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-07 17:05:20 +0200 b_michaelsen r270603 : added crbm.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-02 23:44:38 +0200 b_michaelsen r270436 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@270033 (milestone: DEV300:m45)
2009-02-27 16:25:31 +0100 b_michaelsen r268606 : #i94949# fixed Windows buildbreaker
2009-02-25 18:01:13 +0100 b_michaelsen r268464 : #i94949# Bookmarktest document filter roundtrips
2009-02-24 18:23:55 +0100 b_michaelsen r268404 : #i94949# Bookmark unittests
2009-02-23 19:47:44 +0100 b_michaelsen r268370 : #i94949# added unittest for bookmarks
2009-02-23 12:22:07 +0100 b_michaelsen r268348 : #i94949# fixing CheckCrossReferences testcase
2009-02-20 18:12:50 +0100 b_michaelsen r268335 : #i94949# fixing SwXTextRange
2009-02-18 18:32:57 +0100 b_michaelsen r268252 : #i94949# deregistering DdeBookmarks on delete
2009-02-18 18:29:08 +0100 b_michaelsen r268251 : fixing dbgoutsw.cxx for debug builds
2009-02-16 18:42:43 +0100 b_michaelsen r267834 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@267171 (milestone: DEV300:m41)
2009-02-12 15:32:02 +0100 b_michaelsen r267667 : #i94949 fixed crossrefbookmark naming
2009-02-11 18:30:08 +0100 b_michaelsen r267624 : #94949# fixing bookmark navigation
2009-02-11 13:55:26 +0100 b_michaelsen r267599 : #i94949# fixed bookmark naming
2009-02-10 17:53:05 +0100 b_michaelsen r267571 : #i94949# renamed HasOtherMarkPos to IsExpanded
2009-02-10 17:23:01 +0100 b_michaelsen r267564 : #i94949# renamed ::sw::bookmark namespace to more fitting ::sw::mark
2009-02-10 16:16:32 +0100 b_michaelsen r267553 : #i94949# creating only CrossRefBookmark per Txtnode
2009-02-10 12:14:05 +0100 b_michaelsen r267547 : #i94949# fixed bookmark count in navigator
2009-02-09 19:12:18 +0100 b_michaelsen r267532 : #i94949# lcl_CopyBookmarks(..) - handle marks on boundaries correctly
2009-02-09 17:32:45 +0100 b_michaelsen r267524 : #i94949# setting the refobject of the DdeBookmark in Sin SwServerObject::SetDdeBookmark(..)
2009-02-09 17:22:15 +0100 b_michaelsen r267523 : #i94949# trying to harden SwServerObject
2009-02-09 16:47:32 +0100 b_michaelsen r267521 : #i94949# lcl_CopyBookmarks(..): try to get the source mark name, if possible
2009-02-09 16:05:42 +0100 b_michaelsen r267519 : #i94949# clearing the OtherMarkPos if PaM has no mark in repositionMark(..), swapping inverted bookmarks without hissing an assertion
2009-02-09 15:55:38 +0100 b_michaelsen r267518 : #i94949# checking for out-of-bounds in SwView::ExecuteStatusLine(..)
2009-02-09 15:23:47 +0100 b_michaelsen r267517 : #i94949# using an UNO_BOOKMARK in ui/dbui/dbinsdlg.cxx
2009-02-09 14:14:47 +0100 b_michaelsen r267514 : #i94949# IDocumentMarkAccess::GetType(..) asserts on unknown type
2009-02-09 14:04:25 +0100 b_michaelsen r267513 : #i94949# using rtl strings instead of tools-strings in CrossRefBookmarks
2009-02-09 13:55:01 +0100 b_michaelsen r267510 : #i94949# using empty string for UnoMark construction
2009-02-09 13:46:46 +0100 b_michaelsen r267509 : #i94949# removed superfluous #includes, removed superfluous member DdeBookmark::bGenerateName, initialized DdeBookmark::m_aRefObj removed superfluous local _FindItem::ClearObj
2009-02-06 14:38:37 +0100 b_michaelsen r267462 : #i94949# fixing FN_STAT_BOOKMARK dispatches
2009-02-05 18:05:07 +0100 b_michaelsen r267436 : #i94949# removing superfluous #includes
2009-02-04 15:51:31 +0100 b_michaelsen r267391 : fixing resync merge error
2009-02-02 19:39:55 +0100 b_michaelsen r267294 : #i94949# bookmark performance
2009-01-30 19:30:51 +0100 b_michaelsen r267229 : #i94949# throwing IllegalArgumentException, if appropriate
2009-01-30 19:29:56 +0100 b_michaelsen r267228 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:23:49 +0100 b_michaelsen r267227 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:16:06 +0100 b_michaelsen r267226 : #i94949# refactored lcl_FillBookmarkArray
2009-01-30 17:59:27 +0100 b_michaelsen r267222 : #i94949# removed superficial #include
2009-01-30 17:50:02 +0100 b_michaelsen r267220 : #i94949# SwXTextRange remembers its UNO bookmark
2009-01-29 20:19:58 +0100 b_michaelsen r267168 : #i94949# implemented IDocumentMarkAccess::findBookmark
2009-01-29 17:22:17 +0100 b_michaelsen r267162 : #i94949# implemented renameMark in Markmanager
2009-01-29 14:17:10 +0100 b_michaelsen r267134 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:21:54 +0100 b_michaelsen r267125 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:06:10 +0100 b_michaelsen r267120 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:00:09 +0100 b_michaelsen r267118 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 10:35:10 +0100 b_michaelsen r267101 : #i94949# renamed SetCrsrToBkmk to SetCrsrToMark, moving to start/end of doc if no more bookmarks can be found
2009-01-28 17:05:36 +0100 b_michaelsen r267070 : #i94949# fixed order in aProvNamesId in unocoll.cxx
2009-01-28 15:46:13 +0100 b_michaelsen r267063 : #i94949# documentation
2009-01-28 15:36:59 +0100 b_michaelsen r267062 : #i94949# removing superficial #include
2009-01-28 15:30:36 +0100 b_michaelsen r267061 : #i94949# basic code conventions
2009-01-28 11:14:30 +0100 b_michaelsen r267039 : #i94949# comparing to the actual name of the new mark
2009-01-26 15:22:25 +0100 b_michaelsen r266927 : #i94949# performance fixes
2009-01-14 21:16:56 +0100 b_michaelsen r266332 : #i94949# fixing linux x86-64 compiler warnings
2009-01-14 19:52:06 +0100 b_michaelsen r266331 : #i94949# fixing some compiler warnings
2008-12-15 13:04:49 +0100 b_michaelsen r265474 : #i94949# fixed microsoft compiler warnings
2008-12-12 18:26:02 +0100 b_michaelsen r265434 : #i94949# fixed pro platform buildbreakers
2008-12-11 17:51:24 +0100 b_michaelsen r265342 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@264807 (milestone: DEV300:m37)
2008-12-09 18:30:59 +0100 b_michaelsen r265134 : #i94949# fixed IDocumentMarkAccess::GetType for new mark inheritance tree
2008-12-09 16:56:26 +0100 b_michaelsen r265118 : #i94949# fixed deleteMark optimization
2008-12-09 14:55:58 +0100 b_michaelsen r265092 : #i94949# DdeLink and DdeBookmark
2008-12-05 18:28:05 +0100 b_michaelsen r264914 : #i94949# fixed InitDoc in bookmarks
2008-12-02 02:23:51 +0100 b_michaelsen r264649 : #i94949# removed obsolete naming proposal code in SwXTextRange, fixed navigator reminders to forget the oldest reminder when the pool is empty
2008-12-02 02:05:19 +0100 b_michaelsen r264648 : #i94949# using bisect search for delete
2008-12-02 01:58:16 +0100 b_michaelsen r264647 : #i94949# using bisect search for delete
2008-12-02 01:37:33 +0100 b_michaelsen r264646 : #i94949# using bisect search for delete
2008-12-02 01:03:29 +0100 b_michaelsen r264645 : #i94949# fixed deleteMark crash
2008-12-01 20:55:00 +0100 b_michaelsen r264638 : #i94949# removed crossrefs from ui enumerations
2008-12-01 15:48:12 +0100 b_michaelsen r264613 : #i94949# removed superfluous local functions
2008-12-01 15:01:19 +0100 b_michaelsen r264608 : #i94949# optimized insertion of new marks
2008-12-01 14:33:21 +0100 b_michaelsen r264603 : #i94949# simplified code finding Fieldmark for a position
2008-12-01 14:05:55 +0100 b_michaelsen r264598 : #i94949# fixed reverse travelling through marks, removed obsolete getUniqueMarkName()
2008-11-27 18:48:15 +0100 b_michaelsen r264515 : #i94949# fixed _SaveCntntIdx and friends
2008-11-27 15:59:49 +0100 b_michaelsen r264500 : #i94949# fix Mark position only in ctor
2008-11-27 15:52:28 +0100 b_michaelsen r264497 : #i94949# fixed Bug in SwXBookmark, was using pDoc too early
2008-11-26 14:54:22 +0100 b_michaelsen r264396 : #i94949# fixed documentation, simplified navigator reminder code
2008-11-24 20:45:51 +0100 b_michaelsen r264266 : #i94949# removed last obsolete getUniqueMarkName calls
2008-11-24 20:21:35 +0100 b_michaelsen r264265 : #i94949# fixed typo in IDocumentMarkAccess, removed obsolete getUniqueMarkName calls
2008-11-24 18:34:32 +0100 b_michaelsen r264264 : #i94949# repositioning of Marks, removed possibility to delete marks by name in the core, refactoring of navigator reminder generation
2008-11-21 14:08:49 +0100 b_michaelsen r264137 : #i94949# simplified makeMark
2008-11-21 12:07:09 +0100 b_michaelsen r264120 : #i94949# moved ShortName and KeyCode from IMark to IBookmark
2008-11-19 12:50:49 +0100 b_michaelsen r263981 : #i94949# starting refactoring of bookmark naming
2008-11-19 11:31:08 +0100 b_michaelsen r263972 : #i94949# getting rid of obsolete dynamic casts
2008-11-18 19:06:09 +0100 b_michaelsen r263795 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 17:50:18 +0100 b_michaelsen r263792 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 16:48:20 +0100 b_michaelsen r263783 : #i94949# removed methods from crsrsh which are already available directly via IDocumentMarkAccess
2008-11-18 11:31:35 +0100 b_michaelsen r263753 : #i94949# cleaning up mark code in crsrsh
2008-11-17 10:15:25 +0100 b_michaelsen r263705 : #i94949# removed possible integer overflow
2008-11-14 18:48:45 +0100 b_michaelsen r263695 : #i94949# management of mark names in MarkManager
2008-11-14 18:23:40 +0100 b_michaelsen r263693 : #i94949# using polymorphism to do mark-specific setup in SwDoc
2008-11-14 16:27:09 +0100 b_michaelsen r263684 : #i94949# got rid of makeCrossRefBookmark
2008-11-14 13:03:32 +0100 b_michaelsen r263674 : #i94949# refactored Correction methods
2008-11-13 12:27:55 +0100 b_michaelsen r263631 : #i94949# got rid of old-style tools assertions in new code
2008-11-12 16:58:16 +0100 b_michaelsen r263608 : #i94949# added assertion for unique names
2008-11-12 16:55:18 +0100 b_michaelsen r263607 : #i94949# maked XFormField deprecated
2008-11-12 13:04:29 +0100 b_michaelsen r263587 : #i94949# replaced IDocumentMarkAccess::GetType with simple dynamic_cast where possible
2008-11-11 18:45:53 +0100 b_michaelsen r263572 : #i94949# cleaned up SwHstryBookmark
2008-11-11 13:48:18 +0100 b_michaelsen r263557 : #i94949# removed dynamic_casts to SwModify by inheriting IMark from it
2008-11-11 11:26:28 +0100 b_michaelsen r263548 : #i94949# fixed SwXBookmark
2008-11-10 17:01:19 +0100 b_michaelsen r263529 : #i94949# fixed DdeBookmarks in clipboard
2008-11-10 16:44:52 +0100 b_michaelsen r263527 : #i94949# formatting
2008-11-10 16:29:16 +0100 b_michaelsen r263526 : #i94949# fixing unoobj.cxx
2008-11-10 16:23:50 +0100 b_michaelsen r263525 : #i94949# cleaning up crossrefbookmark.cxx/.hxx
2008-11-10 16:02:08 +0100 b_michaelsen r263524 : #i94949# Pdf Export should only generate 'real' bookmarks
2008-11-10 15:33:58 +0100 b_michaelsen r263521 : #i94949# removed const_casts
2008-11-10 15:12:06 +0100 b_michaelsen r263520 : #i94949# moved _DelBookmarks into MarksManager
2008-11-07 18:48:38 +0100 b_michaelsen r263480 : #i94949# using iterator interface
2008-11-07 18:41:46 +0100 b_michaelsen r263478 : #i94949# using iterator interface
2008-11-07 18:07:41 +0100 b_michaelsen r263477 : #i94949# using iterator interface
2008-11-07 17:54:41 +0100 b_michaelsen r263476 : #i94949# using iterator interface
2008-11-07 17:44:41 +0100 b_michaelsen r263475 : #i94949# moved correction methods into MarkManager
2008-11-06 18:47:28 +0100 b_michaelsen r263404 : #i94949# getting rid of superfluous const_casts
2008-11-06 17:58:01 +0100 b_michaelsen r263403 : #i94949# no more setting of mark positions outside of the core
2008-11-06 17:08:37 +0100 b_michaelsen r263401 : #i94949# removed setters from IMark
2008-11-06 13:55:25 +0100 b_michaelsen r263383 : #i94949 SwDoc does not implement IDocumentMarkAccess anymore
2008-11-04 18:17:03 +0100 b_michaelsen r263333 : #i94949# began removing IDocumentMarkAccess from SwDoc
2008-11-04 16:48:34 +0100 b_michaelsen r263330 : removing dead code (SwBitArray) found by mst
2008-11-04 16:29:32 +0100 b_michaelsen r263329 : removing dead code (SwBitArray) found by mst
2008-11-04 14:57:48 +0100 b_michaelsen r263326 : removing dead code (SwBitArray) found by mst
2008-11-04 14:50:18 +0100 b_michaelsen r263325 : #i94949# stricter typing in IDocumentMarkAccess
2008-10-24 15:16:27 +0200 b_michaelsen r262647 : #i94949# renamed ::sw::bookmark::SimpleMark to NavigatorReminder to fit the IDocumentMarkAccess enum
2008-10-24 15:10:10 +0200 b_michaelsen r262646 : #i94949# only 'real' bookmark implement IBookmark, Marks also get removed from m_vFieldmarks on delete/clear
2008-10-24 13:06:23 +0200 b_michaelsen r262636 : #i94949# Fieldmark tabnavigation
2008-10-23 12:16:36 +0200 b_michaelsen r262619 : #i94949# Fieldmark classes and filters
2008-10-22 13:17:18 +0200 b_michaelsen r262597 : #i94949# writer import fixes
2008-10-21 11:30:38 +0200 b_michaelsen r262565 : #i94949# renamed methods containing Bookmark in the generic IMark interface
2008-10-20 14:09:02 +0200 b_michaelsen r262318 : #i94949# fixed SwDoc::CorrRel
2008-10-16 22:45:13 +0200 b_michaelsen r262273 : #i94949 simplified Before/After methods
2008-10-16 21:40:57 +0200 b_michaelsen r262271 : #i94949 renamed SimpleMark to NavigatorReminder
2008-10-16 21:15:23 +0200 b_michaelsen r262270 : #i94949 using shared_ptr only in MarkManager
2008-10-16 17:46:37 +0200 b_michaelsen r262269 : #i94949# getFieldmarkBefore and getFieldmarkAfter
2008-10-16 17:12:13 +0200 b_michaelsen r262265 : #i94949# cleanup in crbm.cxx
2008-10-16 12:49:01 +0200 b_michaelsen r262257 : #i94949# fixed usage of invalid iterator, fixed invalid cast
2008-10-15 15:34:20 +0200 b_michaelsen r262239 : #i94949# added moved files
2008-10-15 15:26:45 +0200 b_michaelsen r262237 : #i94949# initial reimplementation of Bookmarks
2009-04-21 15:40:02 +00:00
|
|
|
SwIndex aIndex(pNd, GetIdx());
|
2008-09-04 09:19:55 +00:00
|
|
|
SwPosition aPosition(*pNd, aIndex);
|
CWS-TOOLING: integrate CWS swrefactormarks2
2009-04-09 12:51:41 +0200 b_michaelsen r270689 : #i94949# cleaned up assertions after rebasing
2009-04-08 17:37:08 +0200 b_michaelsen r270658 : fixing sw/source/ui/utlui/makefile.mk
2009-04-07 17:56:54 +0200 b_michaelsen r270606 : added bookctrl.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-07 17:05:20 +0200 b_michaelsen r270603 : added crbm.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-02 23:44:38 +0200 b_michaelsen r270436 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@270033 (milestone: DEV300:m45)
2009-02-27 16:25:31 +0100 b_michaelsen r268606 : #i94949# fixed Windows buildbreaker
2009-02-25 18:01:13 +0100 b_michaelsen r268464 : #i94949# Bookmarktest document filter roundtrips
2009-02-24 18:23:55 +0100 b_michaelsen r268404 : #i94949# Bookmark unittests
2009-02-23 19:47:44 +0100 b_michaelsen r268370 : #i94949# added unittest for bookmarks
2009-02-23 12:22:07 +0100 b_michaelsen r268348 : #i94949# fixing CheckCrossReferences testcase
2009-02-20 18:12:50 +0100 b_michaelsen r268335 : #i94949# fixing SwXTextRange
2009-02-18 18:32:57 +0100 b_michaelsen r268252 : #i94949# deregistering DdeBookmarks on delete
2009-02-18 18:29:08 +0100 b_michaelsen r268251 : fixing dbgoutsw.cxx for debug builds
2009-02-16 18:42:43 +0100 b_michaelsen r267834 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@267171 (milestone: DEV300:m41)
2009-02-12 15:32:02 +0100 b_michaelsen r267667 : #i94949 fixed crossrefbookmark naming
2009-02-11 18:30:08 +0100 b_michaelsen r267624 : #94949# fixing bookmark navigation
2009-02-11 13:55:26 +0100 b_michaelsen r267599 : #i94949# fixed bookmark naming
2009-02-10 17:53:05 +0100 b_michaelsen r267571 : #i94949# renamed HasOtherMarkPos to IsExpanded
2009-02-10 17:23:01 +0100 b_michaelsen r267564 : #i94949# renamed ::sw::bookmark namespace to more fitting ::sw::mark
2009-02-10 16:16:32 +0100 b_michaelsen r267553 : #i94949# creating only CrossRefBookmark per Txtnode
2009-02-10 12:14:05 +0100 b_michaelsen r267547 : #i94949# fixed bookmark count in navigator
2009-02-09 19:12:18 +0100 b_michaelsen r267532 : #i94949# lcl_CopyBookmarks(..) - handle marks on boundaries correctly
2009-02-09 17:32:45 +0100 b_michaelsen r267524 : #i94949# setting the refobject of the DdeBookmark in Sin SwServerObject::SetDdeBookmark(..)
2009-02-09 17:22:15 +0100 b_michaelsen r267523 : #i94949# trying to harden SwServerObject
2009-02-09 16:47:32 +0100 b_michaelsen r267521 : #i94949# lcl_CopyBookmarks(..): try to get the source mark name, if possible
2009-02-09 16:05:42 +0100 b_michaelsen r267519 : #i94949# clearing the OtherMarkPos if PaM has no mark in repositionMark(..), swapping inverted bookmarks without hissing an assertion
2009-02-09 15:55:38 +0100 b_michaelsen r267518 : #i94949# checking for out-of-bounds in SwView::ExecuteStatusLine(..)
2009-02-09 15:23:47 +0100 b_michaelsen r267517 : #i94949# using an UNO_BOOKMARK in ui/dbui/dbinsdlg.cxx
2009-02-09 14:14:47 +0100 b_michaelsen r267514 : #i94949# IDocumentMarkAccess::GetType(..) asserts on unknown type
2009-02-09 14:04:25 +0100 b_michaelsen r267513 : #i94949# using rtl strings instead of tools-strings in CrossRefBookmarks
2009-02-09 13:55:01 +0100 b_michaelsen r267510 : #i94949# using empty string for UnoMark construction
2009-02-09 13:46:46 +0100 b_michaelsen r267509 : #i94949# removed superfluous #includes, removed superfluous member DdeBookmark::bGenerateName, initialized DdeBookmark::m_aRefObj removed superfluous local _FindItem::ClearObj
2009-02-06 14:38:37 +0100 b_michaelsen r267462 : #i94949# fixing FN_STAT_BOOKMARK dispatches
2009-02-05 18:05:07 +0100 b_michaelsen r267436 : #i94949# removing superfluous #includes
2009-02-04 15:51:31 +0100 b_michaelsen r267391 : fixing resync merge error
2009-02-02 19:39:55 +0100 b_michaelsen r267294 : #i94949# bookmark performance
2009-01-30 19:30:51 +0100 b_michaelsen r267229 : #i94949# throwing IllegalArgumentException, if appropriate
2009-01-30 19:29:56 +0100 b_michaelsen r267228 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:23:49 +0100 b_michaelsen r267227 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:16:06 +0100 b_michaelsen r267226 : #i94949# refactored lcl_FillBookmarkArray
2009-01-30 17:59:27 +0100 b_michaelsen r267222 : #i94949# removed superficial #include
2009-01-30 17:50:02 +0100 b_michaelsen r267220 : #i94949# SwXTextRange remembers its UNO bookmark
2009-01-29 20:19:58 +0100 b_michaelsen r267168 : #i94949# implemented IDocumentMarkAccess::findBookmark
2009-01-29 17:22:17 +0100 b_michaelsen r267162 : #i94949# implemented renameMark in Markmanager
2009-01-29 14:17:10 +0100 b_michaelsen r267134 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:21:54 +0100 b_michaelsen r267125 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:06:10 +0100 b_michaelsen r267120 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:00:09 +0100 b_michaelsen r267118 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 10:35:10 +0100 b_michaelsen r267101 : #i94949# renamed SetCrsrToBkmk to SetCrsrToMark, moving to start/end of doc if no more bookmarks can be found
2009-01-28 17:05:36 +0100 b_michaelsen r267070 : #i94949# fixed order in aProvNamesId in unocoll.cxx
2009-01-28 15:46:13 +0100 b_michaelsen r267063 : #i94949# documentation
2009-01-28 15:36:59 +0100 b_michaelsen r267062 : #i94949# removing superficial #include
2009-01-28 15:30:36 +0100 b_michaelsen r267061 : #i94949# basic code conventions
2009-01-28 11:14:30 +0100 b_michaelsen r267039 : #i94949# comparing to the actual name of the new mark
2009-01-26 15:22:25 +0100 b_michaelsen r266927 : #i94949# performance fixes
2009-01-14 21:16:56 +0100 b_michaelsen r266332 : #i94949# fixing linux x86-64 compiler warnings
2009-01-14 19:52:06 +0100 b_michaelsen r266331 : #i94949# fixing some compiler warnings
2008-12-15 13:04:49 +0100 b_michaelsen r265474 : #i94949# fixed microsoft compiler warnings
2008-12-12 18:26:02 +0100 b_michaelsen r265434 : #i94949# fixed pro platform buildbreakers
2008-12-11 17:51:24 +0100 b_michaelsen r265342 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@264807 (milestone: DEV300:m37)
2008-12-09 18:30:59 +0100 b_michaelsen r265134 : #i94949# fixed IDocumentMarkAccess::GetType for new mark inheritance tree
2008-12-09 16:56:26 +0100 b_michaelsen r265118 : #i94949# fixed deleteMark optimization
2008-12-09 14:55:58 +0100 b_michaelsen r265092 : #i94949# DdeLink and DdeBookmark
2008-12-05 18:28:05 +0100 b_michaelsen r264914 : #i94949# fixed InitDoc in bookmarks
2008-12-02 02:23:51 +0100 b_michaelsen r264649 : #i94949# removed obsolete naming proposal code in SwXTextRange, fixed navigator reminders to forget the oldest reminder when the pool is empty
2008-12-02 02:05:19 +0100 b_michaelsen r264648 : #i94949# using bisect search for delete
2008-12-02 01:58:16 +0100 b_michaelsen r264647 : #i94949# using bisect search for delete
2008-12-02 01:37:33 +0100 b_michaelsen r264646 : #i94949# using bisect search for delete
2008-12-02 01:03:29 +0100 b_michaelsen r264645 : #i94949# fixed deleteMark crash
2008-12-01 20:55:00 +0100 b_michaelsen r264638 : #i94949# removed crossrefs from ui enumerations
2008-12-01 15:48:12 +0100 b_michaelsen r264613 : #i94949# removed superfluous local functions
2008-12-01 15:01:19 +0100 b_michaelsen r264608 : #i94949# optimized insertion of new marks
2008-12-01 14:33:21 +0100 b_michaelsen r264603 : #i94949# simplified code finding Fieldmark for a position
2008-12-01 14:05:55 +0100 b_michaelsen r264598 : #i94949# fixed reverse travelling through marks, removed obsolete getUniqueMarkName()
2008-11-27 18:48:15 +0100 b_michaelsen r264515 : #i94949# fixed _SaveCntntIdx and friends
2008-11-27 15:59:49 +0100 b_michaelsen r264500 : #i94949# fix Mark position only in ctor
2008-11-27 15:52:28 +0100 b_michaelsen r264497 : #i94949# fixed Bug in SwXBookmark, was using pDoc too early
2008-11-26 14:54:22 +0100 b_michaelsen r264396 : #i94949# fixed documentation, simplified navigator reminder code
2008-11-24 20:45:51 +0100 b_michaelsen r264266 : #i94949# removed last obsolete getUniqueMarkName calls
2008-11-24 20:21:35 +0100 b_michaelsen r264265 : #i94949# fixed typo in IDocumentMarkAccess, removed obsolete getUniqueMarkName calls
2008-11-24 18:34:32 +0100 b_michaelsen r264264 : #i94949# repositioning of Marks, removed possibility to delete marks by name in the core, refactoring of navigator reminder generation
2008-11-21 14:08:49 +0100 b_michaelsen r264137 : #i94949# simplified makeMark
2008-11-21 12:07:09 +0100 b_michaelsen r264120 : #i94949# moved ShortName and KeyCode from IMark to IBookmark
2008-11-19 12:50:49 +0100 b_michaelsen r263981 : #i94949# starting refactoring of bookmark naming
2008-11-19 11:31:08 +0100 b_michaelsen r263972 : #i94949# getting rid of obsolete dynamic casts
2008-11-18 19:06:09 +0100 b_michaelsen r263795 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 17:50:18 +0100 b_michaelsen r263792 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 16:48:20 +0100 b_michaelsen r263783 : #i94949# removed methods from crsrsh which are already available directly via IDocumentMarkAccess
2008-11-18 11:31:35 +0100 b_michaelsen r263753 : #i94949# cleaning up mark code in crsrsh
2008-11-17 10:15:25 +0100 b_michaelsen r263705 : #i94949# removed possible integer overflow
2008-11-14 18:48:45 +0100 b_michaelsen r263695 : #i94949# management of mark names in MarkManager
2008-11-14 18:23:40 +0100 b_michaelsen r263693 : #i94949# using polymorphism to do mark-specific setup in SwDoc
2008-11-14 16:27:09 +0100 b_michaelsen r263684 : #i94949# got rid of makeCrossRefBookmark
2008-11-14 13:03:32 +0100 b_michaelsen r263674 : #i94949# refactored Correction methods
2008-11-13 12:27:55 +0100 b_michaelsen r263631 : #i94949# got rid of old-style tools assertions in new code
2008-11-12 16:58:16 +0100 b_michaelsen r263608 : #i94949# added assertion for unique names
2008-11-12 16:55:18 +0100 b_michaelsen r263607 : #i94949# maked XFormField deprecated
2008-11-12 13:04:29 +0100 b_michaelsen r263587 : #i94949# replaced IDocumentMarkAccess::GetType with simple dynamic_cast where possible
2008-11-11 18:45:53 +0100 b_michaelsen r263572 : #i94949# cleaned up SwHstryBookmark
2008-11-11 13:48:18 +0100 b_michaelsen r263557 : #i94949# removed dynamic_casts to SwModify by inheriting IMark from it
2008-11-11 11:26:28 +0100 b_michaelsen r263548 : #i94949# fixed SwXBookmark
2008-11-10 17:01:19 +0100 b_michaelsen r263529 : #i94949# fixed DdeBookmarks in clipboard
2008-11-10 16:44:52 +0100 b_michaelsen r263527 : #i94949# formatting
2008-11-10 16:29:16 +0100 b_michaelsen r263526 : #i94949# fixing unoobj.cxx
2008-11-10 16:23:50 +0100 b_michaelsen r263525 : #i94949# cleaning up crossrefbookmark.cxx/.hxx
2008-11-10 16:02:08 +0100 b_michaelsen r263524 : #i94949# Pdf Export should only generate 'real' bookmarks
2008-11-10 15:33:58 +0100 b_michaelsen r263521 : #i94949# removed const_casts
2008-11-10 15:12:06 +0100 b_michaelsen r263520 : #i94949# moved _DelBookmarks into MarksManager
2008-11-07 18:48:38 +0100 b_michaelsen r263480 : #i94949# using iterator interface
2008-11-07 18:41:46 +0100 b_michaelsen r263478 : #i94949# using iterator interface
2008-11-07 18:07:41 +0100 b_michaelsen r263477 : #i94949# using iterator interface
2008-11-07 17:54:41 +0100 b_michaelsen r263476 : #i94949# using iterator interface
2008-11-07 17:44:41 +0100 b_michaelsen r263475 : #i94949# moved correction methods into MarkManager
2008-11-06 18:47:28 +0100 b_michaelsen r263404 : #i94949# getting rid of superfluous const_casts
2008-11-06 17:58:01 +0100 b_michaelsen r263403 : #i94949# no more setting of mark positions outside of the core
2008-11-06 17:08:37 +0100 b_michaelsen r263401 : #i94949# removed setters from IMark
2008-11-06 13:55:25 +0100 b_michaelsen r263383 : #i94949 SwDoc does not implement IDocumentMarkAccess anymore
2008-11-04 18:17:03 +0100 b_michaelsen r263333 : #i94949# began removing IDocumentMarkAccess from SwDoc
2008-11-04 16:48:34 +0100 b_michaelsen r263330 : removing dead code (SwBitArray) found by mst
2008-11-04 16:29:32 +0100 b_michaelsen r263329 : removing dead code (SwBitArray) found by mst
2008-11-04 14:57:48 +0100 b_michaelsen r263326 : removing dead code (SwBitArray) found by mst
2008-11-04 14:50:18 +0100 b_michaelsen r263325 : #i94949# stricter typing in IDocumentMarkAccess
2008-10-24 15:16:27 +0200 b_michaelsen r262647 : #i94949# renamed ::sw::bookmark::SimpleMark to NavigatorReminder to fit the IDocumentMarkAccess enum
2008-10-24 15:10:10 +0200 b_michaelsen r262646 : #i94949# only 'real' bookmark implement IBookmark, Marks also get removed from m_vFieldmarks on delete/clear
2008-10-24 13:06:23 +0200 b_michaelsen r262636 : #i94949# Fieldmark tabnavigation
2008-10-23 12:16:36 +0200 b_michaelsen r262619 : #i94949# Fieldmark classes and filters
2008-10-22 13:17:18 +0200 b_michaelsen r262597 : #i94949# writer import fixes
2008-10-21 11:30:38 +0200 b_michaelsen r262565 : #i94949# renamed methods containing Bookmark in the generic IMark interface
2008-10-20 14:09:02 +0200 b_michaelsen r262318 : #i94949# fixed SwDoc::CorrRel
2008-10-16 22:45:13 +0200 b_michaelsen r262273 : #i94949 simplified Before/After methods
2008-10-16 21:40:57 +0200 b_michaelsen r262271 : #i94949 renamed SimpleMark to NavigatorReminder
2008-10-16 21:15:23 +0200 b_michaelsen r262270 : #i94949 using shared_ptr only in MarkManager
2008-10-16 17:46:37 +0200 b_michaelsen r262269 : #i94949# getFieldmarkBefore and getFieldmarkAfter
2008-10-16 17:12:13 +0200 b_michaelsen r262265 : #i94949# cleanup in crbm.cxx
2008-10-16 12:49:01 +0200 b_michaelsen r262257 : #i94949# fixed usage of invalid iterator, fixed invalid cast
2008-10-15 15:34:20 +0200 b_michaelsen r262239 : #i94949# added moved files
2008-10-15 15:26:45 +0200 b_michaelsen r262237 : #i94949# initial reimplementation of Bookmarks
2009-04-21 15:40:02 +00:00
|
|
|
pFieldmark=doc->getIDocumentMarkAccess()->getFieldmarkFor(aPosition);
|
2008-09-04 09:19:55 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
bool bIsStartMark=(1==GetLen() && CH_TXT_ATR_FIELDSTART==GetTxt().GetChar(GetIdx()));
|
2009-11-17 12:33:55 +01:00
|
|
|
if(pFieldmark) {
|
|
|
|
OSL_TRACE("Found Fieldmark");
|
2011-05-10 09:56:23 +02:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2009-12-11 16:20:25 +01:00
|
|
|
rtl::OUString str = pFieldmark->ToString( );
|
2009-11-17 12:33:55 +01:00
|
|
|
fprintf( stderr, "%s\n", rtl::OUStringToOString( str, RTL_TEXTENCODING_UTF8 ).getStr( ) );
|
|
|
|
#endif
|
|
|
|
}
|
CWS-TOOLING: integrate CWS swrefactormarks2
2009-04-09 12:51:41 +0200 b_michaelsen r270689 : #i94949# cleaned up assertions after rebasing
2009-04-08 17:37:08 +0200 b_michaelsen r270658 : fixing sw/source/ui/utlui/makefile.mk
2009-04-07 17:56:54 +0200 b_michaelsen r270606 : added bookctrl.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-07 17:05:20 +0200 b_michaelsen r270603 : added crbm.cxx to EXCEPTIONFILES, because this is needed for stl on unxsols4
2009-04-02 23:44:38 +0200 b_michaelsen r270436 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@270033 (milestone: DEV300:m45)
2009-02-27 16:25:31 +0100 b_michaelsen r268606 : #i94949# fixed Windows buildbreaker
2009-02-25 18:01:13 +0100 b_michaelsen r268464 : #i94949# Bookmarktest document filter roundtrips
2009-02-24 18:23:55 +0100 b_michaelsen r268404 : #i94949# Bookmark unittests
2009-02-23 19:47:44 +0100 b_michaelsen r268370 : #i94949# added unittest for bookmarks
2009-02-23 12:22:07 +0100 b_michaelsen r268348 : #i94949# fixing CheckCrossReferences testcase
2009-02-20 18:12:50 +0100 b_michaelsen r268335 : #i94949# fixing SwXTextRange
2009-02-18 18:32:57 +0100 b_michaelsen r268252 : #i94949# deregistering DdeBookmarks on delete
2009-02-18 18:29:08 +0100 b_michaelsen r268251 : fixing dbgoutsw.cxx for debug builds
2009-02-16 18:42:43 +0100 b_michaelsen r267834 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@267171 (milestone: DEV300:m41)
2009-02-12 15:32:02 +0100 b_michaelsen r267667 : #i94949 fixed crossrefbookmark naming
2009-02-11 18:30:08 +0100 b_michaelsen r267624 : #94949# fixing bookmark navigation
2009-02-11 13:55:26 +0100 b_michaelsen r267599 : #i94949# fixed bookmark naming
2009-02-10 17:53:05 +0100 b_michaelsen r267571 : #i94949# renamed HasOtherMarkPos to IsExpanded
2009-02-10 17:23:01 +0100 b_michaelsen r267564 : #i94949# renamed ::sw::bookmark namespace to more fitting ::sw::mark
2009-02-10 16:16:32 +0100 b_michaelsen r267553 : #i94949# creating only CrossRefBookmark per Txtnode
2009-02-10 12:14:05 +0100 b_michaelsen r267547 : #i94949# fixed bookmark count in navigator
2009-02-09 19:12:18 +0100 b_michaelsen r267532 : #i94949# lcl_CopyBookmarks(..) - handle marks on boundaries correctly
2009-02-09 17:32:45 +0100 b_michaelsen r267524 : #i94949# setting the refobject of the DdeBookmark in Sin SwServerObject::SetDdeBookmark(..)
2009-02-09 17:22:15 +0100 b_michaelsen r267523 : #i94949# trying to harden SwServerObject
2009-02-09 16:47:32 +0100 b_michaelsen r267521 : #i94949# lcl_CopyBookmarks(..): try to get the source mark name, if possible
2009-02-09 16:05:42 +0100 b_michaelsen r267519 : #i94949# clearing the OtherMarkPos if PaM has no mark in repositionMark(..), swapping inverted bookmarks without hissing an assertion
2009-02-09 15:55:38 +0100 b_michaelsen r267518 : #i94949# checking for out-of-bounds in SwView::ExecuteStatusLine(..)
2009-02-09 15:23:47 +0100 b_michaelsen r267517 : #i94949# using an UNO_BOOKMARK in ui/dbui/dbinsdlg.cxx
2009-02-09 14:14:47 +0100 b_michaelsen r267514 : #i94949# IDocumentMarkAccess::GetType(..) asserts on unknown type
2009-02-09 14:04:25 +0100 b_michaelsen r267513 : #i94949# using rtl strings instead of tools-strings in CrossRefBookmarks
2009-02-09 13:55:01 +0100 b_michaelsen r267510 : #i94949# using empty string for UnoMark construction
2009-02-09 13:46:46 +0100 b_michaelsen r267509 : #i94949# removed superfluous #includes, removed superfluous member DdeBookmark::bGenerateName, initialized DdeBookmark::m_aRefObj removed superfluous local _FindItem::ClearObj
2009-02-06 14:38:37 +0100 b_michaelsen r267462 : #i94949# fixing FN_STAT_BOOKMARK dispatches
2009-02-05 18:05:07 +0100 b_michaelsen r267436 : #i94949# removing superfluous #includes
2009-02-04 15:51:31 +0100 b_michaelsen r267391 : fixing resync merge error
2009-02-02 19:39:55 +0100 b_michaelsen r267294 : #i94949# bookmark performance
2009-01-30 19:30:51 +0100 b_michaelsen r267229 : #i94949# throwing IllegalArgumentException, if appropriate
2009-01-30 19:29:56 +0100 b_michaelsen r267228 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:23:49 +0100 b_michaelsen r267227 : #i94949# refactored lcl_FillBookmarkArray, comments, constness
2009-01-30 19:16:06 +0100 b_michaelsen r267226 : #i94949# refactored lcl_FillBookmarkArray
2009-01-30 17:59:27 +0100 b_michaelsen r267222 : #i94949# removed superficial #include
2009-01-30 17:50:02 +0100 b_michaelsen r267220 : #i94949# SwXTextRange remembers its UNO bookmark
2009-01-29 20:19:58 +0100 b_michaelsen r267168 : #i94949# implemented IDocumentMarkAccess::findBookmark
2009-01-29 17:22:17 +0100 b_michaelsen r267162 : #i94949# implemented renameMark in Markmanager
2009-01-29 14:17:10 +0100 b_michaelsen r267134 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:21:54 +0100 b_michaelsen r267125 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:06:10 +0100 b_michaelsen r267120 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 13:00:09 +0100 b_michaelsen r267118 : #i94949# cleanup in SwXBookmark, whitespace
2009-01-29 10:35:10 +0100 b_michaelsen r267101 : #i94949# renamed SetCrsrToBkmk to SetCrsrToMark, moving to start/end of doc if no more bookmarks can be found
2009-01-28 17:05:36 +0100 b_michaelsen r267070 : #i94949# fixed order in aProvNamesId in unocoll.cxx
2009-01-28 15:46:13 +0100 b_michaelsen r267063 : #i94949# documentation
2009-01-28 15:36:59 +0100 b_michaelsen r267062 : #i94949# removing superficial #include
2009-01-28 15:30:36 +0100 b_michaelsen r267061 : #i94949# basic code conventions
2009-01-28 11:14:30 +0100 b_michaelsen r267039 : #i94949# comparing to the actual name of the new mark
2009-01-26 15:22:25 +0100 b_michaelsen r266927 : #i94949# performance fixes
2009-01-14 21:16:56 +0100 b_michaelsen r266332 : #i94949# fixing linux x86-64 compiler warnings
2009-01-14 19:52:06 +0100 b_michaelsen r266331 : #i94949# fixing some compiler warnings
2008-12-15 13:04:49 +0100 b_michaelsen r265474 : #i94949# fixed microsoft compiler warnings
2008-12-12 18:26:02 +0100 b_michaelsen r265434 : #i94949# fixed pro platform buildbreakers
2008-12-11 17:51:24 +0100 b_michaelsen r265342 : CWS-TOOLING: rebase CWS swrefactormarks2 to trunk@264807 (milestone: DEV300:m37)
2008-12-09 18:30:59 +0100 b_michaelsen r265134 : #i94949# fixed IDocumentMarkAccess::GetType for new mark inheritance tree
2008-12-09 16:56:26 +0100 b_michaelsen r265118 : #i94949# fixed deleteMark optimization
2008-12-09 14:55:58 +0100 b_michaelsen r265092 : #i94949# DdeLink and DdeBookmark
2008-12-05 18:28:05 +0100 b_michaelsen r264914 : #i94949# fixed InitDoc in bookmarks
2008-12-02 02:23:51 +0100 b_michaelsen r264649 : #i94949# removed obsolete naming proposal code in SwXTextRange, fixed navigator reminders to forget the oldest reminder when the pool is empty
2008-12-02 02:05:19 +0100 b_michaelsen r264648 : #i94949# using bisect search for delete
2008-12-02 01:58:16 +0100 b_michaelsen r264647 : #i94949# using bisect search for delete
2008-12-02 01:37:33 +0100 b_michaelsen r264646 : #i94949# using bisect search for delete
2008-12-02 01:03:29 +0100 b_michaelsen r264645 : #i94949# fixed deleteMark crash
2008-12-01 20:55:00 +0100 b_michaelsen r264638 : #i94949# removed crossrefs from ui enumerations
2008-12-01 15:48:12 +0100 b_michaelsen r264613 : #i94949# removed superfluous local functions
2008-12-01 15:01:19 +0100 b_michaelsen r264608 : #i94949# optimized insertion of new marks
2008-12-01 14:33:21 +0100 b_michaelsen r264603 : #i94949# simplified code finding Fieldmark for a position
2008-12-01 14:05:55 +0100 b_michaelsen r264598 : #i94949# fixed reverse travelling through marks, removed obsolete getUniqueMarkName()
2008-11-27 18:48:15 +0100 b_michaelsen r264515 : #i94949# fixed _SaveCntntIdx and friends
2008-11-27 15:59:49 +0100 b_michaelsen r264500 : #i94949# fix Mark position only in ctor
2008-11-27 15:52:28 +0100 b_michaelsen r264497 : #i94949# fixed Bug in SwXBookmark, was using pDoc too early
2008-11-26 14:54:22 +0100 b_michaelsen r264396 : #i94949# fixed documentation, simplified navigator reminder code
2008-11-24 20:45:51 +0100 b_michaelsen r264266 : #i94949# removed last obsolete getUniqueMarkName calls
2008-11-24 20:21:35 +0100 b_michaelsen r264265 : #i94949# fixed typo in IDocumentMarkAccess, removed obsolete getUniqueMarkName calls
2008-11-24 18:34:32 +0100 b_michaelsen r264264 : #i94949# repositioning of Marks, removed possibility to delete marks by name in the core, refactoring of navigator reminder generation
2008-11-21 14:08:49 +0100 b_michaelsen r264137 : #i94949# simplified makeMark
2008-11-21 12:07:09 +0100 b_michaelsen r264120 : #i94949# moved ShortName and KeyCode from IMark to IBookmark
2008-11-19 12:50:49 +0100 b_michaelsen r263981 : #i94949# starting refactoring of bookmark naming
2008-11-19 11:31:08 +0100 b_michaelsen r263972 : #i94949# getting rid of obsolete dynamic casts
2008-11-18 19:06:09 +0100 b_michaelsen r263795 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 17:50:18 +0100 b_michaelsen r263792 : #i94949# getting rid of index based mark access, IDocumentMarkAccess already provides iterators
2008-11-18 16:48:20 +0100 b_michaelsen r263783 : #i94949# removed methods from crsrsh which are already available directly via IDocumentMarkAccess
2008-11-18 11:31:35 +0100 b_michaelsen r263753 : #i94949# cleaning up mark code in crsrsh
2008-11-17 10:15:25 +0100 b_michaelsen r263705 : #i94949# removed possible integer overflow
2008-11-14 18:48:45 +0100 b_michaelsen r263695 : #i94949# management of mark names in MarkManager
2008-11-14 18:23:40 +0100 b_michaelsen r263693 : #i94949# using polymorphism to do mark-specific setup in SwDoc
2008-11-14 16:27:09 +0100 b_michaelsen r263684 : #i94949# got rid of makeCrossRefBookmark
2008-11-14 13:03:32 +0100 b_michaelsen r263674 : #i94949# refactored Correction methods
2008-11-13 12:27:55 +0100 b_michaelsen r263631 : #i94949# got rid of old-style tools assertions in new code
2008-11-12 16:58:16 +0100 b_michaelsen r263608 : #i94949# added assertion for unique names
2008-11-12 16:55:18 +0100 b_michaelsen r263607 : #i94949# maked XFormField deprecated
2008-11-12 13:04:29 +0100 b_michaelsen r263587 : #i94949# replaced IDocumentMarkAccess::GetType with simple dynamic_cast where possible
2008-11-11 18:45:53 +0100 b_michaelsen r263572 : #i94949# cleaned up SwHstryBookmark
2008-11-11 13:48:18 +0100 b_michaelsen r263557 : #i94949# removed dynamic_casts to SwModify by inheriting IMark from it
2008-11-11 11:26:28 +0100 b_michaelsen r263548 : #i94949# fixed SwXBookmark
2008-11-10 17:01:19 +0100 b_michaelsen r263529 : #i94949# fixed DdeBookmarks in clipboard
2008-11-10 16:44:52 +0100 b_michaelsen r263527 : #i94949# formatting
2008-11-10 16:29:16 +0100 b_michaelsen r263526 : #i94949# fixing unoobj.cxx
2008-11-10 16:23:50 +0100 b_michaelsen r263525 : #i94949# cleaning up crossrefbookmark.cxx/.hxx
2008-11-10 16:02:08 +0100 b_michaelsen r263524 : #i94949# Pdf Export should only generate 'real' bookmarks
2008-11-10 15:33:58 +0100 b_michaelsen r263521 : #i94949# removed const_casts
2008-11-10 15:12:06 +0100 b_michaelsen r263520 : #i94949# moved _DelBookmarks into MarksManager
2008-11-07 18:48:38 +0100 b_michaelsen r263480 : #i94949# using iterator interface
2008-11-07 18:41:46 +0100 b_michaelsen r263478 : #i94949# using iterator interface
2008-11-07 18:07:41 +0100 b_michaelsen r263477 : #i94949# using iterator interface
2008-11-07 17:54:41 +0100 b_michaelsen r263476 : #i94949# using iterator interface
2008-11-07 17:44:41 +0100 b_michaelsen r263475 : #i94949# moved correction methods into MarkManager
2008-11-06 18:47:28 +0100 b_michaelsen r263404 : #i94949# getting rid of superfluous const_casts
2008-11-06 17:58:01 +0100 b_michaelsen r263403 : #i94949# no more setting of mark positions outside of the core
2008-11-06 17:08:37 +0100 b_michaelsen r263401 : #i94949# removed setters from IMark
2008-11-06 13:55:25 +0100 b_michaelsen r263383 : #i94949 SwDoc does not implement IDocumentMarkAccess anymore
2008-11-04 18:17:03 +0100 b_michaelsen r263333 : #i94949# began removing IDocumentMarkAccess from SwDoc
2008-11-04 16:48:34 +0100 b_michaelsen r263330 : removing dead code (SwBitArray) found by mst
2008-11-04 16:29:32 +0100 b_michaelsen r263329 : removing dead code (SwBitArray) found by mst
2008-11-04 14:57:48 +0100 b_michaelsen r263326 : removing dead code (SwBitArray) found by mst
2008-11-04 14:50:18 +0100 b_michaelsen r263325 : #i94949# stricter typing in IDocumentMarkAccess
2008-10-24 15:16:27 +0200 b_michaelsen r262647 : #i94949# renamed ::sw::bookmark::SimpleMark to NavigatorReminder to fit the IDocumentMarkAccess enum
2008-10-24 15:10:10 +0200 b_michaelsen r262646 : #i94949# only 'real' bookmark implement IBookmark, Marks also get removed from m_vFieldmarks on delete/clear
2008-10-24 13:06:23 +0200 b_michaelsen r262636 : #i94949# Fieldmark tabnavigation
2008-10-23 12:16:36 +0200 b_michaelsen r262619 : #i94949# Fieldmark classes and filters
2008-10-22 13:17:18 +0200 b_michaelsen r262597 : #i94949# writer import fixes
2008-10-21 11:30:38 +0200 b_michaelsen r262565 : #i94949# renamed methods containing Bookmark in the generic IMark interface
2008-10-20 14:09:02 +0200 b_michaelsen r262318 : #i94949# fixed SwDoc::CorrRel
2008-10-16 22:45:13 +0200 b_michaelsen r262273 : #i94949 simplified Before/After methods
2008-10-16 21:40:57 +0200 b_michaelsen r262271 : #i94949 renamed SimpleMark to NavigatorReminder
2008-10-16 21:15:23 +0200 b_michaelsen r262270 : #i94949 using shared_ptr only in MarkManager
2008-10-16 17:46:37 +0200 b_michaelsen r262269 : #i94949# getFieldmarkBefore and getFieldmarkAfter
2008-10-16 17:12:13 +0200 b_michaelsen r262265 : #i94949# cleanup in crbm.cxx
2008-10-16 12:49:01 +0200 b_michaelsen r262257 : #i94949# fixed usage of invalid iterator, fixed invalid cast
2008-10-15 15:34:20 +0200 b_michaelsen r262239 : #i94949# added moved files
2008-10-15 15:26:45 +0200 b_michaelsen r262237 : #i94949# initial reimplementation of Bookmarks
2009-04-21 15:40:02 +00:00
|
|
|
if(bIsStartMark) OSL_TRACE("Found StartMark");
|
2009-11-17 12:33:55 +01:00
|
|
|
if (OnWin() && (pFieldmark!=NULL || bIsStartMark) &&
|
|
|
|
SwViewOption::IsFieldShadings() &&
|
|
|
|
!GetOpt().IsPagePreview())
|
2008-09-04 09:19:55 +00:00
|
|
|
{
|
|
|
|
OutputDevice* pOutDev = (OutputDevice*)GetOut();
|
|
|
|
pOutDev->Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );
|
2009-12-11 16:20:25 +01:00
|
|
|
pOutDev->SetFillColor( SwViewOption::GetFieldShadingsColor() );
|
2009-11-17 12:33:55 +01:00
|
|
|
pOutDev->SetLineColor( );
|
2008-09-04 09:19:55 +00:00
|
|
|
pOutDev->DrawRect( aIntersect.SVRect() );
|
|
|
|
pOutDev->Pop();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if( !pFnt->GetBackColor() ) return;
|
|
|
|
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pFnt->GetBackColor(), "DrawBackBrush: Lost Color" );
|
2001-05-08 07:02:47 +00:00
|
|
|
|
|
|
|
SwRect aIntersect;
|
2004-09-08 15:11:22 +00:00
|
|
|
CalcRect( rPor, 0, &aIntersect );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2001-05-08 07:02:47 +00:00
|
|
|
if ( aIntersect.HasArea() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-09-27 08:13:09 +00:00
|
|
|
OutputDevice* pTmpOut = (OutputDevice*)GetOut();
|
2004-09-08 15:11:22 +00:00
|
|
|
|
2011-04-16 22:42:13 -03:00
|
|
|
// #i16816# tagged pdf support
|
2008-01-29 07:20:35 +00:00
|
|
|
SwTaggedPDFHelper aTaggedPDFHelper( 0, 0, 0, *pTmpOut );
|
2004-09-08 15:11:22 +00:00
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
pTmpOut->Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );
|
2005-03-23 12:01:30 +00:00
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
pTmpOut->SetFillColor( *pFnt->GetBackColor() );
|
|
|
|
pTmpOut->SetLineColor();
|
2005-03-23 12:01:30 +00:00
|
|
|
|
2001-05-08 07:02:47 +00:00
|
|
|
DrawRect( aIntersect, sal_True, sal_False );
|
2005-03-23 12:01:30 +00:00
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
pTmpOut->Pop();
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtPaintInfo::DrawViewOpt()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
void SwTxtPaintInfo::DrawViewOpt( const SwLinePortion &rPor,
|
|
|
|
const MSHORT nWhich ) const
|
|
|
|
{
|
2000-11-09 10:39:59 +00:00
|
|
|
if( OnWin() && !IsMulti() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
sal_Bool bDraw = sal_False;
|
|
|
|
switch( nWhich )
|
|
|
|
{
|
2002-04-25 13:00:16 +00:00
|
|
|
case POR_FTN:
|
2000-09-18 23:08:29 +00:00
|
|
|
case POR_QUOVADIS:
|
|
|
|
case POR_NUMBER:
|
|
|
|
case POR_FLD:
|
|
|
|
case POR_URL:
|
2002-04-25 13:00:16 +00:00
|
|
|
case POR_HIDDEN:
|
|
|
|
case POR_TOX:
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
case POR_REF:
|
|
|
|
case POR_META:
|
2005-11-16 08:30:32 +00:00
|
|
|
case POR_CONTROLCHAR:
|
2002-06-20 08:37:52 +00:00
|
|
|
if ( !GetOpt().IsPagePreview() &&
|
2004-05-17 15:22:48 +00:00
|
|
|
!GetOpt().IsReadonly() &&
|
|
|
|
SwViewOption::IsFieldShadings() &&
|
|
|
|
(POR_NUMBER != nWhich ||
|
|
|
|
pFrm->GetTxtNode()->HasMarkedLabel())) // #i27615#
|
2002-04-25 13:00:16 +00:00
|
|
|
bDraw = sal_True;
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
case POR_TAB: if ( GetOpt().IsTab() ) bDraw = sal_True; break;
|
|
|
|
case POR_SOFTHYPH: if ( GetOpt().IsSoftHyph() )bDraw = sal_True; break;
|
|
|
|
case POR_BLANK: if ( GetOpt().IsHardBlank())bDraw = sal_True; break;
|
|
|
|
default:
|
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( !this, "SwTxtPaintInfo::DrawViewOpt: don't know how to draw this" );
|
2000-09-18 23:08:29 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ( bDraw )
|
|
|
|
DrawBackground( rPor );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtPaintInfo::_NotifyURL()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
void SwTxtPaintInfo::_NotifyURL( const SwLinePortion &rPor ) const
|
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pNoteURL, "NotifyURL: pNoteURL gone with the wind!" );
|
2001-05-08 07:02:47 +00:00
|
|
|
|
|
|
|
SwRect aIntersect;
|
2004-09-08 15:11:22 +00:00
|
|
|
CalcRect( rPor, 0, &aIntersect );
|
2001-05-08 07:02:47 +00:00
|
|
|
|
|
|
|
if( aIntersect.HasArea() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SwTxtNode *pNd = (SwTxtNode*)GetTxtFrm()->GetTxtNode();
|
2010-03-09 13:27:18 +01:00
|
|
|
SwTxtAttr *const pAttr =
|
|
|
|
pNd->GetTxtAttrAt(GetIdx(), RES_TXTATR_INETFMT);
|
2000-09-18 23:08:29 +00:00
|
|
|
if( pAttr )
|
|
|
|
{
|
|
|
|
const SwFmtINetFmt& rFmt = pAttr->GetINetFmt();
|
|
|
|
pNoteURL->InsertURLNote( rFmt.GetValue(), rFmt.GetTargetFrame(),
|
2001-05-08 07:02:47 +00:00
|
|
|
aIntersect );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2001-03-29 07:02:02 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* lcl_InitHyphValues()
|
|
|
|
*************************************************************************/
|
|
|
|
|
2001-04-04 12:00:51 +00:00
|
|
|
static void lcl_InitHyphValues( PropertyValues &rVals,
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Int16 nMinLeading, sal_Int16 nMinTrailing )
|
2001-03-29 07:02:02 +00:00
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Int32 nLen = rVals.getLength();
|
2001-03-29 07:02:02 +00:00
|
|
|
|
|
|
|
if (0 == nLen) // yet to be initialized?
|
|
|
|
{
|
|
|
|
rVals.realloc( 2 );
|
|
|
|
PropertyValue *pVal = rVals.getArray();
|
|
|
|
|
|
|
|
pVal[0].Name = C2U( UPN_HYPH_MIN_LEADING );
|
|
|
|
pVal[0].Handle = UPH_HYPH_MIN_LEADING;
|
|
|
|
pVal[0].Value <<= nMinLeading;
|
|
|
|
|
|
|
|
pVal[1].Name = C2U( UPN_HYPH_MIN_TRAILING );
|
|
|
|
pVal[1].Handle = UPH_HYPH_MIN_TRAILING;
|
|
|
|
pVal[1].Value <<= nMinTrailing;
|
|
|
|
}
|
|
|
|
else if (2 == nLen) // already initialized once?
|
|
|
|
{
|
|
|
|
PropertyValue *pVal = rVals.getArray();
|
|
|
|
pVal[0].Value <<= nMinLeading;
|
|
|
|
pVal[1].Value <<= nMinTrailing;
|
|
|
|
}
|
2008-04-22 14:01:05 +00:00
|
|
|
else {
|
2011-03-01 19:09:12 +01:00
|
|
|
OSL_FAIL( "unxpected size of sequence" );
|
2008-04-22 14:01:05 +00:00
|
|
|
}
|
2001-03-29 07:02:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtFormatInfo::GetHyphValues()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
const PropertyValues & SwTxtFormatInfo::GetHyphValues() const
|
|
|
|
{
|
2011-05-08 22:14:45 +02:00
|
|
|
OSL_ENSURE( 2 == aHyphVals.getLength(),
|
2001-03-29 07:02:02 +00:00
|
|
|
"hyphenation values not yet initialized" );
|
|
|
|
return aHyphVals;
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtFormatInfo::InitHyph()
|
|
|
|
*************************************************************************/
|
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
sal_Bool SwTxtFormatInfo::InitHyph( const sal_Bool bAutoHyphen )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwAttrSet& rAttrSet = GetTxtFrm()->GetTxtNode()->GetSwAttrSet();
|
2000-11-24 14:40:56 +00:00
|
|
|
SetHanging( rAttrSet.GetHangingPunctuation().GetValue() );
|
|
|
|
SetScriptSpace( rAttrSet.GetScriptSpace().GetValue() );
|
2000-11-29 16:26:27 +00:00
|
|
|
SetForbiddenChars( rAttrSet.GetForbiddenRule().GetValue() );
|
2000-09-18 23:08:29 +00:00
|
|
|
const SvxHyphenZoneItem &rAttr = rAttrSet.GetHyphenZone();
|
|
|
|
MaxHyph() = rAttr.GetMaxHyphens();
|
2007-09-27 08:13:09 +00:00
|
|
|
sal_Bool bAuto = bAutoHyphen || rAttr.IsHyphen();
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bAuto || bInterHyph )
|
|
|
|
{
|
|
|
|
nHyphStart = nHyphWrdStart = STRING_LEN;
|
|
|
|
nHyphWrdLen = 0;
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_Int16 nMinimalLeading = Max(rAttr.GetMinLead(), sal_uInt8(2));
|
|
|
|
const sal_Int16 nMinimalTrailing = rAttr.GetMinTrail();
|
2007-09-27 08:13:09 +00:00
|
|
|
lcl_InitHyphValues( aHyphVals, nMinimalLeading, nMinimalTrailing);
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
return bAuto;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
2007-09-27 08:13:09 +00:00
|
|
|
* SwTxtFormatInfo::CtorInitTxtFormatInfo()
|
2000-09-18 23:08:29 +00:00
|
|
|
*************************************************************************/
|
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
void SwTxtFormatInfo::CtorInitTxtFormatInfo( SwTxtFrm *pNewFrm, const sal_Bool bNewInterHyph,
|
2000-09-18 23:08:29 +00:00
|
|
|
const sal_Bool bNewQuick, const sal_Bool bTst )
|
|
|
|
{
|
2007-09-27 08:13:09 +00:00
|
|
|
CtorInitTxtPaintInfo( pNewFrm, SwRect() );
|
2003-04-01 08:55:42 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
bQuick = bNewQuick;
|
|
|
|
bInterHyph = bNewInterHyph;
|
|
|
|
|
|
|
|
//! needs to be done in this order
|
|
|
|
nMinLeading = 2;
|
|
|
|
nMinTrailing = 2;
|
|
|
|
nMinWordLength = 0;
|
|
|
|
bAutoHyph = InitHyph();
|
|
|
|
|
|
|
|
bIgnoreFly = sal_False;
|
2001-05-07 10:39:40 +00:00
|
|
|
bFakeLineStart = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
bShift = sal_False;
|
|
|
|
bDropInit = sal_False;
|
|
|
|
bTestFormat = bTst;
|
|
|
|
nLeft = 0;
|
|
|
|
nRight = 0;
|
|
|
|
nFirst = 0;
|
|
|
|
nRealWidth = 0;
|
|
|
|
nForcedLeftMargin = 0;
|
|
|
|
pRest = 0;
|
|
|
|
nLineHeight = 0;
|
2001-04-26 09:37:23 +00:00
|
|
|
nLineNettoHeight = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
SetLineStart(0);
|
|
|
|
Init();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtFormatInfo::IsHyphenate()
|
|
|
|
*************************************************************************/
|
|
|
|
// Trennen oder nicht trennen, das ist hier die Frage:
|
|
|
|
// - in keinem Fall trennen, wenn der Hyphenator ERROR zurueckliefert,
|
|
|
|
// oder wenn als Sprache NOLANGUAGE eingestellt ist.
|
|
|
|
// - ansonsten immer trennen, wenn interaktive Trennung vorliegt
|
|
|
|
// - wenn keine interakt. Trennung, dann nur trennen, wenn im ParaFmt
|
|
|
|
// automatische Trennung eingestellt ist.
|
|
|
|
|
|
|
|
sal_Bool SwTxtFormatInfo::IsHyphenate() const
|
|
|
|
{
|
|
|
|
if( !bInterHyph && !bAutoHyph )
|
|
|
|
return sal_False;
|
|
|
|
|
|
|
|
LanguageType eTmp = GetFont()->GetLanguage();
|
|
|
|
if( LANGUAGE_DONTKNOW == eTmp || LANGUAGE_NONE == eTmp )
|
|
|
|
return sal_False;
|
|
|
|
|
2000-10-27 11:17:04 +00:00
|
|
|
uno::Reference< XHyphenator > xHyph = ::GetHyphenator();
|
2000-09-18 23:08:29 +00:00
|
|
|
if (bInterHyph && xHyph.is())
|
|
|
|
SvxSpellWrapper::CheckHyphLang( xHyph, eTmp );
|
|
|
|
|
2000-11-30 10:38:54 +00:00
|
|
|
if( !xHyph.is() || !xHyph->hasLocale( pBreakIt->GetLocale(eTmp) ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
return sal_False;
|
|
|
|
return sal_True;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtFormatInfo::GetDropFmt()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
// Dropcaps vom SwTxtFormatter::CTOR gerufen.
|
|
|
|
const SwFmtDrop *SwTxtFormatInfo::GetDropFmt() const
|
|
|
|
{
|
|
|
|
const SwFmtDrop *pDrop = &GetTxtFrm()->GetTxtNode()->GetSwAttrSet().GetDrop();
|
|
|
|
if( 1 >= pDrop->GetLines() ||
|
|
|
|
( !pDrop->GetChars() && !pDrop->GetWholeWord() ) )
|
|
|
|
pDrop = 0;
|
|
|
|
return pDrop;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtFormatInfo::Init()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
void SwTxtFormatInfo::Init()
|
|
|
|
{
|
|
|
|
// Nicht initialisieren: pRest, nLeft, nRight, nFirst, nRealWidth
|
|
|
|
X(0);
|
|
|
|
bArrowDone = bFull = bFtnDone = bErgoDone = bNumDone = bNoEndHyph =
|
2011-10-31 17:39:16 +01:00
|
|
|
bNoMidHyph = bStop = bNewLine = bUnderFlow = bTabOverflow = sal_False;
|
2002-05-30 11:44:26 +00:00
|
|
|
|
|
|
|
// generally we do not allow number portions in follows, except...
|
|
|
|
if ( GetTxtFrm()->IsFollow() )
|
|
|
|
{
|
|
|
|
const SwTxtFrm* pMaster = GetTxtFrm()->FindMaster();
|
2011-06-23 15:14:00 +01:00
|
|
|
OSL_ENSURE(pMaster, "pTxtFrm without Master");
|
|
|
|
const SwLinePortion* pTmpPara = pMaster ? pMaster->GetPara() : NULL;
|
2002-05-30 11:44:26 +00:00
|
|
|
|
|
|
|
// there is a master for this follow and the master does not have
|
|
|
|
// any contents (especially it does not have a number portion)
|
2007-09-27 08:13:09 +00:00
|
|
|
bNumDone = ! pTmpPara ||
|
|
|
|
! ((SwParaPortion*)pTmpPara)->GetFirstPortion()->IsFlyPortion();
|
2002-05-30 11:44:26 +00:00
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
pRoot = 0;
|
|
|
|
pLast = 0;
|
|
|
|
pFly = 0;
|
|
|
|
pLastFld = 0;
|
|
|
|
pLastTab = 0;
|
|
|
|
pUnderFlow = 0;
|
|
|
|
cTabDecimal = 0;
|
|
|
|
nWidth = nRealWidth;
|
|
|
|
nForcedLeftMargin = 0;
|
|
|
|
nSoftHyphPos = 0;
|
2001-10-10 14:19:15 +00:00
|
|
|
nUnderScorePos = STRING_LEN;
|
2000-09-18 23:08:29 +00:00
|
|
|
cHookChar = 0;
|
|
|
|
SetIdx(0);
|
|
|
|
SetLen( GetTxt().Len() );
|
|
|
|
SetPaintOfst(0);
|
|
|
|
}
|
|
|
|
|
2011-01-17 21:50:08 +01:00
|
|
|
/*--------------------------------------------------
|
2000-10-16 12:21:25 +00:00
|
|
|
* There are a few differences between a copy constructor
|
|
|
|
* and the following constructor for multi-line formatting.
|
|
|
|
* The root is the first line inside the multi-portion,
|
|
|
|
* the line start is the actual position in the text,
|
|
|
|
* the line width is the rest width from the surrounding line
|
|
|
|
* and the bMulti and bFirstMulti-flag has to be set correctly.
|
|
|
|
* --------------------------------------------------*/
|
|
|
|
|
|
|
|
SwTxtFormatInfo::SwTxtFormatInfo( const SwTxtFormatInfo& rInf,
|
2011-10-31 17:39:16 +01:00
|
|
|
SwLineLayout& rLay, SwTwips nActWidth ) : SwTxtPaintInfo( rInf ),
|
|
|
|
bTabOverflow( sal_False )
|
2000-10-16 12:21:25 +00:00
|
|
|
{
|
|
|
|
pRoot = &rLay;
|
|
|
|
pLast = &rLay;
|
|
|
|
pFly = NULL;
|
|
|
|
pLastFld = NULL;
|
|
|
|
pUnderFlow = NULL;
|
|
|
|
pRest = NULL;
|
|
|
|
pLastTab = NULL;
|
|
|
|
|
|
|
|
nSoftHyphPos = 0;
|
2001-10-10 14:19:15 +00:00
|
|
|
nUnderScorePos = STRING_LEN;
|
2000-10-16 12:21:25 +00:00
|
|
|
nHyphStart = 0;
|
|
|
|
nHyphWrdStart = 0;
|
|
|
|
nHyphWrdLen = 0;
|
|
|
|
nLineStart = rInf.GetIdx();
|
|
|
|
nLeft = rInf.nLeft;
|
|
|
|
nRight = rInf.nRight;
|
|
|
|
nFirst = rInf.nLeft;
|
2000-11-24 14:40:56 +00:00
|
|
|
nRealWidth = KSHORT(nActWidth);
|
2000-10-16 12:21:25 +00:00
|
|
|
nWidth = nRealWidth;
|
|
|
|
nLineHeight = 0;
|
2001-04-26 09:37:23 +00:00
|
|
|
nLineNettoHeight = 0;
|
2000-10-16 12:21:25 +00:00
|
|
|
nForcedLeftMargin = 0;
|
|
|
|
|
|
|
|
nMinLeading = 0;
|
|
|
|
nMinTrailing = 0;
|
|
|
|
nMinWordLength = 0;
|
2011-01-17 15:06:54 +01:00
|
|
|
bFull = sal_False;
|
|
|
|
bFtnDone = sal_True;
|
|
|
|
bErgoDone = sal_True;
|
|
|
|
bNumDone = sal_True;
|
|
|
|
bArrowDone = sal_True;
|
|
|
|
bStop = sal_False;
|
|
|
|
bNewLine = sal_True;
|
|
|
|
bShift = sal_False;
|
|
|
|
bUnderFlow = sal_False;
|
|
|
|
bInterHyph = sal_False;
|
|
|
|
bAutoHyph = sal_False;
|
|
|
|
bDropInit = sal_False;
|
2000-10-16 12:21:25 +00:00
|
|
|
bQuick = rInf.bQuick;
|
2011-01-17 15:06:54 +01:00
|
|
|
bNoEndHyph = sal_False;
|
|
|
|
bNoMidHyph = sal_False;
|
|
|
|
bIgnoreFly = sal_False;
|
|
|
|
bFakeLineStart = sal_False;
|
2000-10-16 12:21:25 +00:00
|
|
|
|
|
|
|
cTabDecimal = 0;
|
|
|
|
cHookChar = 0;
|
|
|
|
nMaxHyph = 0;
|
|
|
|
bTestFormat = rInf.bTestFormat;
|
|
|
|
SetMulti( sal_True );
|
2001-03-13 08:56:21 +00:00
|
|
|
SetFirstMulti( rInf.IsFirstMulti() );
|
2000-10-16 12:21:25 +00:00
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtFormatInfo::_CheckFtnPortion()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
sal_Bool SwTxtFormatInfo::_CheckFtnPortion( SwLineLayout* pCurr )
|
|
|
|
{
|
|
|
|
KSHORT nHeight = pCurr->GetRealHeight();
|
|
|
|
SwLinePortion *pPor = pCurr->GetPortion();
|
|
|
|
sal_Bool bRet = sal_False;
|
|
|
|
while( pPor )
|
|
|
|
{
|
|
|
|
if( pPor->IsFtnPortion() && nHeight > ((SwFtnPortion*)pPor)->Orig() )
|
|
|
|
{
|
|
|
|
bRet = sal_True;
|
|
|
|
SetLineHeight( nHeight );
|
2003-03-27 14:45:43 +00:00
|
|
|
SetLineNettoHeight( pCurr->Height() );
|
2000-09-18 23:08:29 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
pPor = pPor->GetPortion();
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtFormatInfo::ScanPortionEnd()
|
|
|
|
*************************************************************************/
|
2001-02-15 12:45:21 +00:00
|
|
|
xub_StrLen SwTxtFormatInfo::ScanPortionEnd( const xub_StrLen nStart,
|
2003-03-27 14:45:43 +00:00
|
|
|
const xub_StrLen nEnd )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
cHookChar = 0;
|
2001-02-15 12:45:21 +00:00
|
|
|
xub_StrLen i = nStart;
|
2003-03-27 14:45:43 +00:00
|
|
|
|
2004-03-25 11:52:33 +00:00
|
|
|
//
|
|
|
|
// Used for decimal tab handling:
|
|
|
|
//
|
|
|
|
const xub_Unicode cTabDec = GetLastTab() ? (sal_Unicode)GetTabDecimal() : 0;
|
2006-02-03 16:18:50 +00:00
|
|
|
const xub_Unicode cThousandSep = ',' == cTabDec ? '.' : ',';
|
2011-04-16 22:42:13 -03:00
|
|
|
// #i45951# German (Switzerland) uses ' as thousand separator
|
2006-02-03 16:18:50 +00:00
|
|
|
const xub_Unicode cThousandSep2 = ',' == cTabDec ? '.' : '\'';
|
|
|
|
|
2004-03-25 11:52:33 +00:00
|
|
|
bool bNumFound = false;
|
2006-08-14 15:37:23 +00:00
|
|
|
const bool bTabCompat = GetTxtFrm()->GetTxtNode()->getIDocumentSettingAccess()->get(IDocumentSettingAccess::TAB_COMPAT);
|
2004-03-25 11:52:33 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
for( ; i < nEnd; ++i )
|
|
|
|
{
|
|
|
|
const xub_Unicode cPos = GetChar( i );
|
|
|
|
switch( cPos )
|
|
|
|
{
|
|
|
|
case CH_TXTATR_BREAKWORD:
|
|
|
|
case CH_TXTATR_INWORD:
|
|
|
|
if( !HasHint( i ))
|
|
|
|
break;
|
|
|
|
// no break;
|
|
|
|
|
|
|
|
case CHAR_SOFTHYPHEN:
|
|
|
|
case CHAR_HARDHYPHEN:
|
|
|
|
case CHAR_HARDBLANK:
|
|
|
|
case CH_TAB:
|
|
|
|
case CH_BREAK:
|
2005-11-16 08:30:32 +00:00
|
|
|
case CHAR_ZWSP :
|
|
|
|
case CHAR_ZWNBSP :
|
2000-09-18 23:08:29 +00:00
|
|
|
cHookChar = cPos;
|
|
|
|
return i;
|
|
|
|
|
2001-10-10 14:19:15 +00:00
|
|
|
case CHAR_UNDERSCORE:
|
|
|
|
if ( STRING_LEN == nUnderScorePos )
|
|
|
|
nUnderScorePos = i;
|
|
|
|
break;
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
default:
|
2004-03-25 11:52:33 +00:00
|
|
|
if ( cTabDec )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2004-03-25 11:52:33 +00:00
|
|
|
if( cTabDec == cPos )
|
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( cPos, "Unexpected end of string" );
|
2004-03-25 11:52:33 +00:00
|
|
|
if( cPos ) // robust
|
|
|
|
{
|
|
|
|
cHookChar = cPos;
|
|
|
|
return i;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
// Compatibility: First non-digit character behind a
|
|
|
|
// a digit character becomes the hook character
|
|
|
|
//
|
|
|
|
if ( bTabCompat )
|
2000-09-22 10:40:34 +00:00
|
|
|
{
|
2004-03-25 11:52:33 +00:00
|
|
|
if ( ( 0x2F < cPos && cPos < 0x3A ) ||
|
2006-02-03 16:18:50 +00:00
|
|
|
( bNumFound && ( cPos == cThousandSep || cPos == cThousandSep2 ) ) )
|
2004-03-25 11:52:33 +00:00
|
|
|
{
|
|
|
|
bNumFound = true;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if ( bNumFound )
|
|
|
|
{
|
|
|
|
cHookChar = cPos;
|
|
|
|
SetTabDecimal( cPos );
|
|
|
|
return i;
|
|
|
|
}
|
|
|
|
}
|
2000-09-22 10:40:34 +00:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2006-02-09 12:44:07 +00:00
|
|
|
|
2011-04-18 12:37:38 -03:00
|
|
|
// #130210# Check if character *behind* the portion has
|
2006-02-09 12:44:07 +00:00
|
|
|
// to become the hook:
|
|
|
|
if ( i == nEnd && i < GetTxt().Len() && bNumFound )
|
|
|
|
{
|
|
|
|
const xub_Unicode cPos = GetChar( i );
|
2006-02-17 17:05:21 +00:00
|
|
|
if ( cPos != cTabDec && cPos != cThousandSep && cPos !=cThousandSep2 && ( 0x2F >= cPos || cPos >= 0x3A ) )
|
2006-02-09 12:44:07 +00:00
|
|
|
{
|
|
|
|
cHookChar = GetChar( i );
|
|
|
|
SetTabDecimal( cHookChar );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
return i;
|
|
|
|
}
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwTxtFormatInfo::LastKernPortion()
|
2001-04-09 09:44:17 +00:00
|
|
|
{
|
|
|
|
if( GetLast() )
|
|
|
|
{
|
|
|
|
if( GetLast()->IsKernPortion() )
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_True;
|
2001-04-09 09:44:17 +00:00
|
|
|
if( GetLast()->Width() || ( GetLast()->GetLen() &&
|
|
|
|
!GetLast()->IsHolePortion() ) )
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2001-04-09 09:44:17 +00:00
|
|
|
}
|
|
|
|
SwLinePortion* pPor = GetRoot();
|
|
|
|
SwLinePortion *pKern = NULL;
|
|
|
|
while( pPor )
|
|
|
|
{
|
|
|
|
if( pPor->IsKernPortion() )
|
|
|
|
pKern = pPor;
|
|
|
|
else if( pPor->Width() || ( pPor->GetLen() && !pPor->IsHolePortion() ) )
|
|
|
|
pKern = NULL;
|
|
|
|
pPor = pPor->GetPortion();
|
|
|
|
}
|
|
|
|
if( pKern )
|
|
|
|
{
|
|
|
|
SetLast( pKern );
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_True;
|
2001-04-09 09:44:17 +00:00
|
|
|
}
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2001-04-09 09:44:17 +00:00
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* class SwTxtSlot
|
|
|
|
*************************************************************************/
|
|
|
|
|
2007-01-29 15:54:47 +00:00
|
|
|
SwTxtSlot::SwTxtSlot( const SwTxtSizeInfo *pNew, const SwLinePortion *pPor,
|
2008-07-16 12:28:31 +00:00
|
|
|
bool bTxtLen, bool bExgLists, const sal_Char *pCh )
|
2007-01-29 15:54:47 +00:00
|
|
|
: pOldTxt( 0 ),
|
2008-07-16 12:28:31 +00:00
|
|
|
pOldSmartTagList( 0 ),
|
|
|
|
pOldGrammarCheckList( 0 ),
|
|
|
|
pTempList( 0 )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( pCh )
|
|
|
|
{
|
|
|
|
aTxt = XubString( pCh, RTL_TEXTENCODING_MS_1252 );
|
|
|
|
bOn = sal_True;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
bOn = pPor->GetExpTxt( *pNew, aTxt );
|
|
|
|
|
|
|
|
// Der Text wird ausgetauscht...
|
|
|
|
if( bOn )
|
|
|
|
{
|
|
|
|
pInf = (SwTxtSizeInfo*)pNew;
|
|
|
|
nIdx = pInf->GetIdx();
|
|
|
|
nLen = pInf->GetLen();
|
|
|
|
pOldTxt = &(pInf->GetTxt());
|
|
|
|
pInf->SetTxt( aTxt );
|
|
|
|
pInf->SetIdx( 0 );
|
2007-01-29 15:54:47 +00:00
|
|
|
pInf->SetLen( bTxtLen ? pInf->GetTxt().Len() : pPor->GetLen() );
|
|
|
|
|
|
|
|
// ST2
|
2008-07-16 12:28:31 +00:00
|
|
|
if ( bExgLists )
|
2007-01-29 15:54:47 +00:00
|
|
|
{
|
|
|
|
pOldSmartTagList = static_cast<SwTxtPaintInfo*>(pInf)->GetSmartTags();
|
|
|
|
if ( pOldSmartTagList )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt16 nPos = pOldSmartTagList->GetWrongPos(nIdx);
|
2008-07-16 12:28:31 +00:00
|
|
|
const xub_StrLen nListPos = pOldSmartTagList->Pos(nPos);
|
|
|
|
if( nListPos == nIdx )
|
2007-01-29 15:54:47 +00:00
|
|
|
((SwTxtPaintInfo*)pInf)->SetSmartTags( pOldSmartTagList->SubList( nPos ) );
|
2008-07-16 12:28:31 +00:00
|
|
|
else if( !pTempList && nPos < pOldSmartTagList->Count() && nListPos < nIdx && aTxt.Len() )
|
|
|
|
{
|
|
|
|
pTempList = new SwWrongList( WRONGLIST_SMARTTAG );
|
|
|
|
pTempList->Insert( rtl::OUString(), 0, 0, aTxt.Len(), 0 );
|
|
|
|
((SwTxtPaintInfo*)pInf)->SetSmartTags( pTempList );
|
|
|
|
}
|
2007-01-29 15:54:47 +00:00
|
|
|
else
|
|
|
|
((SwTxtPaintInfo*)pInf)->SetSmartTags( 0);
|
|
|
|
}
|
2008-07-16 12:28:31 +00:00
|
|
|
pOldGrammarCheckList = static_cast<SwTxtPaintInfo*>(pInf)->GetGrammarCheckList();
|
|
|
|
if ( pOldGrammarCheckList )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt16 nPos = pOldGrammarCheckList->GetWrongPos(nIdx);
|
2008-07-16 12:28:31 +00:00
|
|
|
const xub_StrLen nListPos = pOldGrammarCheckList->Pos(nPos);
|
|
|
|
if( nListPos == nIdx )
|
|
|
|
((SwTxtPaintInfo*)pInf)->SetGrammarCheckList( pOldGrammarCheckList->SubList( nPos ) );
|
|
|
|
else if( !pTempList && nPos < pOldGrammarCheckList->Count() && nListPos < nIdx && aTxt.Len() )
|
|
|
|
{
|
|
|
|
pTempList = new SwWrongList( WRONGLIST_GRAMMAR );
|
|
|
|
pTempList->Insert( rtl::OUString(), 0, 0, aTxt.Len(), 0 );
|
|
|
|
((SwTxtPaintInfo*)pInf)->SetGrammarCheckList( pTempList );
|
|
|
|
}
|
|
|
|
else
|
|
|
|
((SwTxtPaintInfo*)pInf)->SetGrammarCheckList( 0);
|
|
|
|
}
|
2007-01-29 15:54:47 +00:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
2007-01-29 15:54:47 +00:00
|
|
|
* SwTxtSlot::~SwTxtSlot()
|
2000-09-18 23:08:29 +00:00
|
|
|
*************************************************************************/
|
|
|
|
|
2007-01-29 15:54:47 +00:00
|
|
|
SwTxtSlot::~SwTxtSlot()
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( bOn )
|
|
|
|
{
|
|
|
|
pInf->SetTxt( *pOldTxt );
|
|
|
|
pInf->SetIdx( nIdx );
|
|
|
|
pInf->SetLen( nLen );
|
2007-01-29 15:54:47 +00:00
|
|
|
|
|
|
|
// ST2
|
|
|
|
// Restore old smart tag list
|
|
|
|
if ( pOldSmartTagList )
|
|
|
|
((SwTxtPaintInfo*)pInf)->SetSmartTags( pOldSmartTagList );
|
2008-07-16 12:28:31 +00:00
|
|
|
if ( pOldGrammarCheckList )
|
|
|
|
((SwTxtPaintInfo*)pInf)->SetGrammarCheckList( pOldGrammarCheckList );
|
|
|
|
delete pTempList;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwFontSave::SwFontSave()
|
|
|
|
*************************************************************************/
|
|
|
|
|
2000-12-11 10:05:15 +00:00
|
|
|
SwFontSave::SwFontSave( const SwTxtSizeInfo &rInf, SwFont *pNew,
|
|
|
|
SwAttrIter* pItr )
|
|
|
|
: pFnt( pNew ? ((SwTxtSizeInfo&)rInf).GetFont() : 0 )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( pFnt )
|
|
|
|
{
|
|
|
|
pInf = &((SwTxtSizeInfo&)rInf);
|
2001-07-17 08:11:33 +00:00
|
|
|
// In these cases we temporarily switch to the new font:
|
|
|
|
// 1. the fonts have a different magic number
|
|
|
|
// 2. they have different script types
|
|
|
|
// 3. their background colors differ (this is not covered by 1.)
|
2000-12-11 10:05:15 +00:00
|
|
|
if( pFnt->DifferentMagic( pNew, pFnt->GetActual() ) ||
|
2001-07-17 08:11:33 +00:00
|
|
|
pNew->GetActual() != pFnt->GetActual() ||
|
|
|
|
( ! pNew->GetBackColor() && pFnt->GetBackColor() ) ||
|
|
|
|
( pNew->GetBackColor() && ! pFnt->GetBackColor() ) ||
|
|
|
|
( pNew->GetBackColor() && pFnt->GetBackColor() &&
|
|
|
|
( *pNew->GetBackColor() != *pFnt->GetBackColor() ) ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2000-12-11 10:05:15 +00:00
|
|
|
pNew->SetTransparent( sal_True );
|
|
|
|
pNew->SetAlign( ALIGN_BASELINE );
|
|
|
|
pInf->SetFont( pNew );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
pFnt = 0;
|
2000-12-11 10:05:15 +00:00
|
|
|
pNew->Invalidate();
|
2003-10-15 08:55:35 +00:00
|
|
|
pNew->ChgPhysFnt( pInf->GetVsh(), *pInf->GetOut() );
|
2000-12-11 10:05:15 +00:00
|
|
|
if( pItr && pItr->GetFnt() == pFnt )
|
|
|
|
{
|
|
|
|
pIter = pItr;
|
|
|
|
pIter->SetFnt( pNew );
|
|
|
|
}
|
|
|
|
else
|
|
|
|
pIter = NULL;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwFontSave::~SwFontSave()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
SwFontSave::~SwFontSave()
|
|
|
|
{
|
|
|
|
if( pFnt )
|
|
|
|
{
|
|
|
|
// SwFont zurueckstellen
|
|
|
|
pFnt->Invalidate();
|
|
|
|
pInf->SetFont( pFnt );
|
2000-12-11 10:05:15 +00:00
|
|
|
if( pIter )
|
|
|
|
{
|
|
|
|
pIter->SetFnt( pFnt );
|
|
|
|
pIter->nPos = STRING_LEN;
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwDefFontSave::SwDefFontSave()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
SwDefFontSave::SwDefFontSave( const SwTxtSizeInfo &rInf )
|
|
|
|
: pFnt( ((SwTxtSizeInfo&)rInf).GetFont() )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_Bool bTmpAlter = pFnt->GetFixKerning() ||
|
2001-07-20 18:33:33 +00:00
|
|
|
( RTL_TEXTENCODING_SYMBOL == pFnt->GetCharSet(pFnt->GetActual()) )
|
2000-09-18 23:08:29 +00:00
|
|
|
;
|
|
|
|
|
2007-09-27 08:13:09 +00:00
|
|
|
const sal_Bool bFamily = bTmpAlter &&
|
2008-07-08 07:25:21 +00:00
|
|
|
pFnt->GetName( pFnt->GetActual() ) != numfunc::GetDefBulletFontname();
|
2001-08-31 05:22:48 +00:00
|
|
|
const sal_Bool bRotation = (sal_Bool)pFnt->GetOrientation() &&
|
|
|
|
! rInf.GetTxtFrm()->IsVertical();
|
2001-04-23 07:02:42 +00:00
|
|
|
|
|
|
|
if( bFamily || bRotation )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
pNewFnt = new SwFont( *pFnt );
|
2001-04-23 07:02:42 +00:00
|
|
|
|
|
|
|
if ( bFamily )
|
|
|
|
{
|
|
|
|
pNewFnt->SetFamily( FAMILY_DONTKNOW, pFnt->GetActual() );
|
2006-07-25 10:48:32 +00:00
|
|
|
pNewFnt->SetName( numfunc::GetDefBulletFontname(), pFnt->GetActual() );
|
2001-04-23 07:02:42 +00:00
|
|
|
pNewFnt->SetStyleName( aEmptyStr, pFnt->GetActual() );
|
|
|
|
pNewFnt->SetCharSet( RTL_TEXTENCODING_SYMBOL, pFnt->GetActual() );
|
|
|
|
pNewFnt->SetFixKerning( 0 );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( bRotation )
|
2001-10-29 15:41:23 +00:00
|
|
|
pNewFnt->SetVertical( 0, rInf.GetTxtFrm()->IsVertical() );
|
2001-04-23 07:02:42 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
pInf = &((SwTxtSizeInfo&)rInf);
|
|
|
|
pNewFnt->Invalidate();
|
|
|
|
pInf->SetFont( pNewFnt );
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
pFnt = 0;
|
|
|
|
pNewFnt = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwDefFontSave::~SwDefFontSave()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
SwDefFontSave::~SwDefFontSave()
|
|
|
|
{
|
|
|
|
if( pFnt )
|
|
|
|
{
|
|
|
|
delete pNewFnt;
|
|
|
|
// SwFont zurueckstellen
|
|
|
|
pFnt->Invalidate();
|
|
|
|
pInf->SetFont( pFnt );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* SwTxtFormatInfo::ChgHyph()
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
sal_Bool SwTxtFormatInfo::ChgHyph( const sal_Bool bNew )
|
|
|
|
{
|
|
|
|
const sal_Bool bOld = bAutoHyph;
|
|
|
|
if( bAutoHyph != bNew )
|
|
|
|
{
|
|
|
|
bAutoHyph = bNew;
|
|
|
|
InitHyph( bNew );
|
|
|
|
// 5744: Sprache am Hyphenator einstellen.
|
|
|
|
if( pFnt )
|
2003-10-15 08:55:35 +00:00
|
|
|
pFnt->ChgPhysFnt( pVsh, *pOut );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
return bOld;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-10-14 08:30:41 +02:00
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|