summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
Diffstat (limited to 'sw')
-rw-r--r--sw/inc/dcontact.hxx2
-rwxr-xr-x[-rw-r--r--]sw/inc/docsh.hxx3
-rw-r--r--sw/inc/fesh.hxx8
-rw-r--r--sw/inc/ndgrf.hxx4
-rw-r--r--sw/inc/ndtxt.hxx4
-rw-r--r--sw/inc/pch/precompiled_sw.hxx1
-rwxr-xr-x[-rw-r--r--]sw/inc/viewsh.hxx7
-rw-r--r--sw/sdi/_docsh.sdi4
-rw-r--r--sw/source/core/SwNumberTree/SwNodeNum.cxx19
-rw-r--r--sw/source/core/crsr/crsrsh.cxx21
-rw-r--r--sw/source/core/crsr/crstrvl.cxx6
-rw-r--r--sw/source/core/doc/doccomp.cxx52
-rw-r--r--sw/source/core/doc/docglbl.cxx4
-rw-r--r--sw/source/core/doc/doclay.cxx29
-rw-r--r--sw/source/core/doc/docnew.cxx4
-rw-r--r--sw/source/core/doc/notxtfrm.cxx21
-rw-r--r--sw/source/core/draw/dflyobj.cxx26
-rw-r--r--sw/source/core/frmedt/fefly1.cxx73
-rw-r--r--sw/source/core/frmedt/feshview.cxx86
-rw-r--r--sw/source/core/graphic/ndgrf.cxx9
-rw-r--r--sw/source/core/inc/dflyobj.hxx6
-rw-r--r--sw/source/core/inc/layact.hxx6
-rw-r--r--sw/source/core/inc/scrrect.hxx125
-rw-r--r--sw/source/core/inc/txtfrm.hxx3
-rw-r--r--sw/source/core/inc/viewimp.hxx63
-rw-r--r--sw/source/core/layout/atrfrm.cxx40
-rw-r--r--sw/source/core/layout/flowfrm.cxx10
-rw-r--r--sw/source/core/layout/layact.cxx485
-rw-r--r--sw/source/core/layout/paintfrm.cxx4
-rw-r--r--sw/source/core/layout/tabfrm.cxx3
-rw-r--r--sw/source/core/text/frmpaint.cxx68
-rw-r--r--sw/source/core/text/txtfrm.cxx25
-rw-r--r--sw/source/core/txtnode/fntcache.cxx16
-rw-r--r--sw/source/core/txtnode/ndtxt.cxx45
-rw-r--r--sw/source/core/unocore/unocrsrhelper.cxx8
-rw-r--r--sw/source/core/view/makefile.mk7
-rw-r--r--sw/source/core/view/scrrect.cxx1192
-rw-r--r--sw/source/core/view/viewimp.cxx19
-rw-r--r--sw/source/core/view/viewsh.cxx58
-rw-r--r--sw/source/filter/html/htmlform.cxx2
-rw-r--r--sw/source/filter/html/htmlgrin.cxx1
-rw-r--r--sw/source/ui/app/appenv.cxx4
-rw-r--r--sw/source/ui/app/apphdl.cxx27
-rw-r--r--sw/source/ui/app/applab.cxx26
-rw-r--r--sw/source/ui/app/docsh.cxx7
-rw-r--r--sw/source/ui/app/docsh2.cxx22
-rw-r--r--sw/source/ui/app/docshini.cxx24
-rw-r--r--sw/source/ui/app/docst.cxx16
-rw-r--r--sw/source/ui/app/makefile.mk1
-rw-r--r--sw/source/ui/app/swmodul1.cxx2
-rw-r--r--sw/source/ui/app/swwait.cxx8
-rw-r--r--sw/source/ui/chrdlg/chardlg.cxx4
-rw-r--r--sw/source/ui/dbui/addresslistdialog.cxx2
-rw-r--r--sw/source/ui/dbui/dbmgr.cxx20
-rw-r--r--sw/source/ui/dbui/mailmergewizard.cxx2
-rw-r--r--sw/source/ui/dbui/mmoutputpage.cxx10
-rw-r--r--sw/source/ui/dialog/macassgn.cxx2
-rw-r--r--sw/source/ui/dochdl/swdtflvr.cxx6
-rw-r--r--sw/source/ui/docvw/docvw.hrc2
-rw-r--r--sw/source/ui/docvw/docvw.src6
-rw-r--r--sw/source/ui/docvw/edtdd.cxx2
-rw-r--r--sw/source/ui/docvw/edtwin.cxx13
-rw-r--r--sw/source/ui/docvw/postit.cxx1
-rw-r--r--sw/source/ui/docvw/romenu.cxx4
-rw-r--r--sw/source/ui/fldui/fldedt.cxx2
-rw-r--r--sw/source/ui/fmtui/tmpdlg.cxx2
-rw-r--r--sw/source/ui/frmdlg/frmdlg.cxx2
-rw-r--r--sw/source/ui/lingu/olmenu.cxx6
-rw-r--r--sw/source/ui/misc/glossary.cxx2
-rw-r--r--sw/source/ui/misc/glshell.cxx4
-rw-r--r--sw/source/ui/misc/insfnote.cxx2
-rw-r--r--sw/source/ui/misc/srtdlg.cxx2
-rwxr-xr-xsw/source/ui/shells/annotsh.cxx2
-rw-r--r--sw/source/ui/shells/basesh.cxx8
-rw-r--r--sw/source/ui/shells/drwtxtsh.cxx2
-rw-r--r--sw/source/ui/shells/frmsh.cxx2
-rw-r--r--sw/source/ui/shells/grfsh.cxx2
-rw-r--r--sw/source/ui/shells/grfshex.cxx2
-rw-r--r--sw/source/ui/shells/makefile.mk1
-rw-r--r--sw/source/ui/shells/tabsh.cxx2
-rw-r--r--sw/source/ui/shells/textsh.cxx2
-rw-r--r--sw/source/ui/shells/txtattr.cxx2
-rw-r--r--sw/source/ui/uiview/pview.cxx24
-rw-r--r--sw/source/ui/uiview/srcview.cxx4
-rw-r--r--sw/source/ui/uiview/view.cxx31
-rw-r--r--sw/source/ui/uiview/view2.cxx3
-rw-r--r--sw/source/ui/uiview/viewdraw.cxx4
-rw-r--r--sw/source/ui/uiview/viewling.cxx5
-rw-r--r--sw/source/ui/uiview/viewmdi.cxx6
-rw-r--r--sw/source/ui/uiview/viewport.cxx8
-rw-r--r--sw/source/ui/uno/unodispatch.cxx3
-rw-r--r--sw/source/ui/uno/unodoc.cxx4
-rw-r--r--sw/source/ui/uno/unomailmerge.cxx4
-rw-r--r--sw/source/ui/uno/unotxdoc.cxx10
-rw-r--r--sw/source/ui/uno/unotxvw.cxx2
-rw-r--r--sw/source/ui/utlui/navipi.cxx2
-rw-r--r--sw/source/ui/utlui/numfmtlb.cxx2
-rw-r--r--sw/source/ui/utlui/uitool.cxx2
-rw-r--r--sw/source/ui/wrtsh/wrtsh1.cxx13
99 files changed, 540 insertions, 2414 deletions
diff --git a/sw/inc/dcontact.hxx b/sw/inc/dcontact.hxx
index c78342e6236a..5406fb042e95 100644
--- a/sw/inc/dcontact.hxx
+++ b/sw/inc/dcontact.hxx
@@ -302,7 +302,7 @@ class SwDrawVirtObj : public SdrVirtObj
using SdrVirtObj::GetPlusHdl;
- private:
+ protected:
// AW: Need own sdr::contact::ViewContact since AnchorPos from parent is
// not used but something own (top left of new SnapRect minus top left
// of original SnapRect)
diff --git a/sw/inc/docsh.hxx b/sw/inc/docsh.hxx
index 2ad41e0539f4..16e6cd047fb6 100644..100755
--- a/sw/inc/docsh.hxx
+++ b/sw/inc/docsh.hxx
@@ -151,7 +151,8 @@ public:
static rtl::OUString GetEventName( sal_Int32 nId );
//Das Doc wird fuer SO-Datenaustausch benoetigt!
- SwDocShell( SfxObjectCreateMode eMode = SFX_CREATE_MODE_EMBEDDED, sal_Bool _bScriptingSupport = sal_True );
+ SwDocShell( SfxObjectCreateMode eMode = SFX_CREATE_MODE_EMBEDDED );
+ SwDocShell( const sal_uInt64 i_nSfxCreationFlags );
SwDocShell( SwDoc *pDoc, SfxObjectCreateMode eMode = SFX_CREATE_MODE_STANDARD );
~SwDocShell();
diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx
index 0103f21408b9..7da1c30e6577 100644
--- a/sw/inc/fesh.hxx
+++ b/sw/inc/fesh.hxx
@@ -536,10 +536,10 @@ public:
const SfxItemSet* pFlyAttrSet = 0,
const SfxItemSet* pGrfAttrSet = 0,
SwFrmFmt* = 0 );
- //Einfuegen eines DrawObjectes. Das Object muss bereits im DrawModel
- // angemeldet sein.
- void Insert( SdrObject& rDrawObj, const SfxItemSet* pFlyAttrSet = 0,
- SwFrmFmt* = 0, const Point* = 0 );
+
+ // Insertion of a drawing object which have to be already inserted in the DrawModel
+ void InsertDrawObj( SdrObject& rDrawObj,
+ const Point& rInsertPosition );
BOOL ReplaceSdrObj( const String& rGrfName, const String& rFltName,
const Graphic* pGrf = 0 );
diff --git a/sw/inc/ndgrf.hxx b/sw/inc/ndgrf.hxx
index 3e9498f5db32..748dceed0c83 100644
--- a/sw/inc/ndgrf.hxx
+++ b/sw/inc/ndgrf.hxx
@@ -208,10 +208,6 @@ public:
BOOL GetFileFilterNms( String* pFileNm, String* pFilterNm ) const;
void ReleaseLink();
- // Prioritaet beim Laden der Grafik setzen. Geht nur, wenn der Link
- // ein FileObject gesetzt hat
- void SetTransferPriority( USHORT nPrio );
-
// Skalieren einer Image-Map: Die Image-Map wird um den Faktor
// zwischen Grafik-Groesse und Rahmen-Groesse vergroessert/verkleinert
void ScaleImageMap();
diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx
index f1582a95ba9a..868340edc800 100644
--- a/sw/inc/ndtxt.hxx
+++ b/sw/inc/ndtxt.hxx
@@ -488,6 +488,10 @@ public:
*/
BOOL GetFirstLineOfsWithNum( short& rFirstOffset ) const;
+ // --> OD 2010-01-05 #b6884103#
+ SwTwips GetAdditionalIndentForStartingNewList() const;
+ // <--
+
// --> OD 2008-12-02 #i96772#
void ClearLRSpaceItemDueToListLevelIndents( SvxLRSpaceItem& o_rLRSpaceItem ) const;
// <--
diff --git a/sw/inc/pch/precompiled_sw.hxx b/sw/inc/pch/precompiled_sw.hxx
index 7d9ebb98d56b..592725f78d63 100644
--- a/sw/inc/pch/precompiled_sw.hxx
+++ b/sw/inc/pch/precompiled_sw.hxx
@@ -593,7 +593,6 @@
#include "sfx2/tabdlg.hxx"
#include "sfx2/tbxctrl.hxx"
#include "sfx2/templdlg.hxx"
-#include "sfx2/topfrm.hxx"
#include "sfx2/tplpitem.hxx"
#include "sfx2/viewfac.hxx"
#include "sfx2/viewfrm.hxx"
diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx
index 93ed55d36872..700b50121675 100644..100755
--- a/sw/inc/viewsh.hxx
+++ b/sw/inc/viewsh.hxx
@@ -189,9 +189,6 @@ class SW_DLLPUBLIC ViewShell : public Ring
SW_DLLPRIVATE sal_Bool CheckInvalidForPaint( const SwRect & );//Direkt Paint oder lieber
//eine Aktion ausloesen.
- SW_DLLPRIVATE void Scroll(); //Scrollen wenn sich aus der LayAction Scrollmoeglichkeiten
- //ergaben.
-
SW_DLLPRIVATE void PrepareForPrint( const SwPrintData &rOptions );
SW_DLLPRIVATE void ImplApplyViewOptions( const SwViewOption &rOpt );
@@ -238,11 +235,7 @@ public:
void ChgHyphenation() { Reformat(); }
void ChgNumberDigits();
- //Methoden fuer Paint- und Scrollrects, die auf allen Shells im
- //Ring arbeiten.
sal_Bool AddPaintRect( const SwRect &rRect );
- void AddScrollRect( const SwFrm *pFrm, const SwRect &rRect, long nOffs );
- void SetNoNextScroll();
void InvalidateWindows( const SwRect &rRect );
diff --git a/sw/sdi/_docsh.sdi b/sw/sdi/_docsh.sdi
index 4b9afe2db298..cd2d1f850090 100644
--- a/sw/sdi/_docsh.sdi
+++ b/sw/sdi/_docsh.sdi
@@ -75,10 +75,6 @@ interface BaseTextDocument
ExecMethod = Execute ;
]
- SID_MAIL_PREPAREEXPORT
- [
- ExecMethod = Execute ;
- ]
SID_MAIL_EXPORT_FINISHED
[
ExecMethod = Execute;
diff --git a/sw/source/core/SwNumberTree/SwNodeNum.cxx b/sw/source/core/SwNumberTree/SwNodeNum.cxx
index dfc5df0d2cac..d1113f4fb484 100644
--- a/sw/source/core/SwNumberTree/SwNodeNum.cxx
+++ b/sw/source/core/SwNumberTree/SwNodeNum.cxx
@@ -37,6 +37,10 @@
// --> OD 2007-10-31 #i83479#
#include <IDocumentListItems.hxx>
// <--
+// --> OD 2010-01-13 #b6912256#
+#include <svl/svstdarr.hxx>
+#include <doc.hxx>
+// <--
// --> OD 2008-02-19 #refactorlists#
SwNodeNum::SwNodeNum( SwTxtNode* pTxtNode )
@@ -489,8 +493,21 @@ void SwNodeNum::_UnregisterMeAndChildrenDueToRootDelete( SwNodeNum& rNodeNum )
SwTxtNode* pTxtNode( rNodeNum.GetTxtNode() );
if ( pTxtNode )
{
- // --> OD 2008-03-13 #refactorlists#
pTxtNode->RemoveFromList();
+ // --> OD 2010-01-13 #b6912256#
+ // clear all list attributes and the list style
+ SvUShortsSort aResetAttrsArray;
+ aResetAttrsArray.Insert( RES_PARATR_LIST_ID );
+ aResetAttrsArray.Insert( RES_PARATR_LIST_LEVEL );
+ aResetAttrsArray.Insert( RES_PARATR_LIST_ISRESTART );
+ aResetAttrsArray.Insert( RES_PARATR_LIST_RESTARTVALUE );
+ aResetAttrsArray.Insert( RES_PARATR_LIST_ISCOUNTED );
+ aResetAttrsArray.Insert( RES_PARATR_NUMRULE );
+ SwPaM aPam( *pTxtNode );
+ pTxtNode->GetDoc()->ResetAttrs( aPam, sal_False,
+ &aResetAttrsArray,
+ false );
+ // <--
}
}
}
diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index eae6ca072037..9af115269cd8 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -392,10 +392,18 @@ BOOL SwCrsrShell::LeftRight( BOOL bLeft, USHORT nCnt, USHORT nMode,
else
{
const BOOL bSkipHidden = !GetViewOptions()->IsShowHiddenChar();
- bRet = SetInFrontOfLabel( FALSE );
+ // --> OD 2009-12-30 #i107447#
+ // To avoid loop the reset of <bInFrontOfLabel> flag is no longer
+ // reflected in the return value <bRet>.
+ const bool bResetOfInFrontOfLabel = SetInFrontOfLabel( FALSE );
bRet = pShellCrsr->LeftRight( bLeft, nCnt, nMode, bVisualAllowed,
- bSkipHidden,
- !IsOverwriteCrsr() ) || bRet;
+ bSkipHidden, !IsOverwriteCrsr() );
+ if ( !bRet && bLeft && bResetOfInFrontOfLabel )
+ {
+ // undo reset of <bInFrontOfLabel> flag
+ SetInFrontOfLabel( TRUE );
+ }
+ // <--
}
if( bRet )
@@ -1770,13 +1778,6 @@ void SwCrsrShell::UpdateCrsr( USHORT eFlags, BOOL bIdleEnd )
}
}
- //Ggf. gescrollten Bereicht korrigieren (Alignment).
- //Nur wenn gescrollt wurde, und wenn keine Selektion existiert.
- if( pFrm && Imp()->IsScrolled() &&
- pShellCrsr->GetNext() == pShellCrsr && !pShellCrsr->HasMark() )
- Imp()->RefreshScrolledArea( aCharRect );
-
-
eMvState = MV_NONE; // Status fuers Crsr-Travelling - GetCrsrOfst
if( pFrm && Imp()->IsAccessible() )
diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx
index 818ccc6e228f..9ea80b899a6d 100644
--- a/sw/source/core/crsr/crstrvl.cxx
+++ b/sw/source/core/crsr/crstrvl.cxx
@@ -1005,9 +1005,9 @@ BOOL SwCrsrShell::IsPageAtPos( const Point &rPt ) const
}
BOOL SwCrsrShell::GetContentAtPos( const Point& rPt,
- SwContentAtPos& rCntntAtPos,
- BOOL bSetCrsr,
- SwRect* pFldRect )
+ SwContentAtPos& rCntntAtPos,
+ BOOL bSetCrsr,
+ SwRect* pFldRect )
{
SET_CURR_SHELL( this );
BOOL bRet = FALSE;
diff --git a/sw/source/core/doc/doccomp.cxx b/sw/source/core/doc/doccomp.cxx
index 9d92886f6de6..6451aebd4251 100644
--- a/sw/source/core/doc/doccomp.cxx
+++ b/sw/source/core/doc/doccomp.cxx
@@ -966,6 +966,29 @@ BOOL SwCompareLine::Compare( const CompareLine& rLine ) const
return CompareNode( rNode, ((SwCompareLine&)rLine).rNode );
}
+namespace
+{
+ static String SimpleTableToText(const SwNode &rNode)
+ {
+ String sRet;
+ const SwNode* pEndNd = rNode.EndOfSectionNode();
+ SwNodeIndex aIdx( rNode );
+ while (&aIdx.GetNode() != pEndNd)
+ {
+ if (aIdx.GetNode().IsTxtNode())
+ {
+ if (sRet.Len())
+ {
+ sRet.Append( '\n' );
+ }
+ sRet.Append( aIdx.GetNode().GetTxtNode()->GetExpandTxt() );
+ }
+ aIdx++;
+ }
+ return sRet;
+ }
+}
+
BOOL SwCompareLine::CompareNode( const SwNode& rDstNd, const SwNode& rSrcNd )
{
if( rSrcNd.GetNodeType() != rDstNd.GetNodeType() )
@@ -986,6 +1009,13 @@ BOOL SwCompareLine::CompareNode( const SwNode& rDstNd, const SwNode& rSrcNd )
bRet = ( rTSrcNd.EndOfSectionIndex() - rTSrcNd.GetIndex() ) ==
( rTDstNd.EndOfSectionIndex() - rTDstNd.GetIndex() );
+
+ // --> #i107826#: compare actual table content
+ if (bRet)
+ {
+ bRet = (SimpleTableToText(rSrcNd) == SimpleTableToText(rDstNd));
+ }
+ // <--
}
break;
@@ -1040,6 +1070,15 @@ BOOL SwCompareLine::CompareNode( const SwNode& rDstNd, const SwNode& rSrcNd )
case ND_ENDNODE:
bRet = rSrcNd.StartOfSectionNode()->GetNodeType() ==
rDstNd.StartOfSectionNode()->GetNodeType();
+
+ // --> #i107826#: compare actual table content
+ if (bRet && rSrcNd.StartOfSectionNode()->GetNodeType() == ND_TABLENODE)
+ {
+ bRet = CompareNode(
+ *rSrcNd.StartOfSectionNode(), *rDstNd.StartOfSectionNode());
+ }
+ // <--
+
break;
}
return bRet;
@@ -1056,18 +1095,7 @@ String SwCompareLine::GetText() const
case ND_TABLENODE:
{
- const SwNode* pEndNd = rNode.EndOfSectionNode();
- SwNodeIndex aIdx( rNode );
- while( &aIdx.GetNode() != pEndNd )
- {
- if( aIdx.GetNode().IsTxtNode() )
- {
- if( sRet.Len() )
- sRet.Append( '\n' );
- sRet.Append( ((SwTxtNode&)rNode).GetExpandTxt() );
- }
- aIdx++;
- }
+ sRet = SimpleTableToText(rNode);
sRet.InsertAscii( "Tabelle: ", 0 );
}
break;
diff --git a/sw/source/core/doc/docglbl.cxx b/sw/source/core/doc/docglbl.cxx
index a67486c34ad8..abf2e5b2217b 100644
--- a/sw/source/core/doc/docglbl.cxx
+++ b/sw/source/core/doc/docglbl.cxx
@@ -319,7 +319,7 @@ BOOL SwDoc::SplitDoc( USHORT eDocType, const String& rPath,
pDoc->GetSpzFrmFmts()->Count() )
{
/* SfxViewFrame* pFrame = */
- SfxViewFrame::CreateViewFrame( *xDocSh, 0, TRUE );
+ SfxViewFrame::LoadHiddenDocument( *xDocSh, 0 );
}
xDocSh->DoSaveAs( *pTmpMed );
xDocSh->DoSaveCompleted( pTmpMed );
@@ -666,7 +666,7 @@ BOOL SwDoc::SplitDoc( USHORT eDocType, const String& rPath, int nOutlineLevel )
pDoc->GetSpzFrmFmts()->Count() )
{
/* SfxViewFrame* pFrame = */
- SfxViewFrame::CreateViewFrame( *xDocSh, 0, TRUE );
+ SfxViewFrame::LoadHiddenDocument( *xDocSh, 0 );
}
xDocSh->DoSaveAs( *pTmpMed );
xDocSh->DoSaveCompleted( pTmpMed );
diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx
index c01ad49f78af..6e04d49afb3e 100644
--- a/sw/source/core/doc/doclay.cxx
+++ b/sw/source/core/doc/doclay.cxx
@@ -651,14 +651,14 @@ SwFlyFrmFmt* SwDoc::_MakeFlySection( const SwPosition& rAnchPos,
// Anker noch nicht gesetzt ?
RndStdIds eAnchorId = pAnchor ? pAnchor->GetAnchorId()
: pFmt->GetAnchor().GetAnchorId();
- if( !pAnchor ||
- ((FLY_AT_PAGE != pAnchor->GetAnchorId()) &&
- //Nur Page und nicht:
-// FLY_AT_CNTNT == pAnchor->GetAnchorId() ||
-// FLY_IN_CNTNT == pAnchor->GetAnchorId() ||
-// FLY_AT_FLY == pAnchor->GetAnchorId() ||
-// FLY_AUTO_CNTNT == pAnchor->GetAnchorId() ) &&
- !pAnchor->GetCntntAnchor() ))
+ // --> OD 2010-01-07 #i107811#
+ // Assure that at-page anchored fly frames have a page num or a content anchor set.
+ if ( !pAnchor ||
+ ( FLY_AT_PAGE != pAnchor->GetAnchorId() &&
+ !pAnchor->GetCntntAnchor() ) ||
+ ( FLY_AT_PAGE == pAnchor->GetAnchorId() &&
+ !pAnchor->GetCntntAnchor() &&
+ pAnchor->GetPageNum() == 0 ) )
{
// dann setze ihn, wird im Undo gebraucht
SwFmtAnchor aAnch( pFmt->GetAnchor() );
@@ -672,15 +672,20 @@ SwFlyFrmFmt* SwDoc::_MakeFlySection( const SwPosition& rAnchPos,
{
if( eRequestId != aAnch.GetAnchorId() &&
SFX_ITEM_SET != pFmt->GetItemState( RES_ANCHOR, sal_True ) )
+ {
aAnch.SetType( eRequestId );
+ }
eAnchorId = aAnch.GetAnchorId();
- if ( FLY_AT_PAGE != eAnchorId )
- //Nur Page und nicht:
-// if( FLY_AT_CNTNT == eAnchorId || FLY_IN_CNTNT == eAnchorId ||
-// FLY_AT_FLY == eAnchorId || FLY_AUTO_CNTNT == eAnchorId )
+ if ( FLY_AT_PAGE != eAnchorId ||
+ ( FLY_AT_PAGE == eAnchorId &&
+ ( !pAnchor ||
+ aAnch.GetPageNum() == 0 ) ) )
+ {
aAnch.SetAnchor( &rAnchPos );
+ }
}
+ // <--
pFmt->SetFmtAttr( aAnch );
}
else
diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx
index 6465143eabb0..8dfcbb215e3a 100644
--- a/sw/source/core/doc/docnew.cxx
+++ b/sw/source/core/doc/docnew.cxx
@@ -169,12 +169,12 @@ void StartGrammarChecking( SwDoc &rDoc )
// check for a visible view
bool bVisible = false;
const SwDocShell *pDocShell = rDoc.GetDocShell();
- SfxViewFrame *pFrame = SfxViewFrame::GetFirst( pDocShell, 0, sal_False );
+ SfxViewFrame *pFrame = SfxViewFrame::GetFirst( pDocShell, sal_False );
while (pFrame && !bVisible)
{
if (pFrame->IsVisible())
bVisible = true;
- pFrame = SfxViewFrame::GetNext( *pFrame, pDocShell, 0, sal_False );
+ pFrame = SfxViewFrame::GetNext( *pFrame, pDocShell, sal_False );
}
//!! only documents with visible views need to be checked
diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx
index 541cc53c1e77..bb10e9c1941b 100644
--- a/sw/source/core/doc/notxtfrm.cxx
+++ b/sw/source/core/doc/notxtfrm.cxx
@@ -295,14 +295,6 @@ void SwNoTxtFrm::Paint( const SwRect &rRect, const SwPrtOptions * /*pPrintData*/
// <--
StopAnimation();
- if ( pSh->Imp()->IsPaintInScroll() && pSh->GetWin() && rRect != Frm() &&
- HasAnimation() )
- {
- pSh->GetWin()->Invalidate( Frm().SVRect() );
- return;
- }
-
-
SfxProgress::EnterLock(); //Keine Progress-Reschedules im Paint (SwapIn)
OutputDevice *pOut = pSh->GetOut();
@@ -799,6 +791,7 @@ void SwNoTxtFrm::Modify( SfxPoolItem* pOld, SfxPoolItem* pNew )
void lcl_correctlyAlignRect( SwRect& rAlignedGrfArea, const SwRect& rInArea, OutputDevice* pOut )
{
+
if(!pOut)
return;
Rectangle aPxRect = pOut->LogicToPixel( rInArea.SVRect() );
@@ -865,7 +858,7 @@ void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) cons
//this might be a good idea for all other OLE objects also,
//but as I cannot oversee the consequences I fix it only for charts for now
lcl_correctlyAlignRect( aAlignedGrfArea, rGrfArea, pOut );
- }
+ }
if( pGrfNd )
{
@@ -913,8 +906,9 @@ void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) cons
else if( rGrfObj.IsCached( pOut, aAlignedGrfArea.Pos(),
aAlignedGrfArea.SSize(), &aGrfAttr ))
{
- rGrfObj.Draw( pOut, aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(),
- &aGrfAttr );
+ rGrfObj.DrawWithPDFHandling( *pOut,
+ aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(),
+ &aGrfAttr );
bContinue = FALSE;
}
}
@@ -953,8 +947,9 @@ void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) cons
0, GRFMGR_DRAW_STANDARD, pVout );
}
else
- rGrfObj.Draw( pOut, aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(),
- &aGrfAttr );
+ rGrfObj.DrawWithPDFHandling( *pOut,
+ aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(),
+ &aGrfAttr );
}
else
{
diff --git a/sw/source/core/draw/dflyobj.cxx b/sw/source/core/draw/dflyobj.cxx
index 2784c361f5e3..75111933e0ec 100644
--- a/sw/source/core/draw/dflyobj.cxx
+++ b/sw/source/core/draw/dflyobj.cxx
@@ -68,10 +68,8 @@ using namespace ::com::sun::star;
// AW: For VCOfDrawVirtObj and stuff
#include <svx/sdr/contact/viewcontactofvirtobj.hxx>
#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
-#include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
#include <sw_primitivetypes2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/hittestprimitive2d.hxx>
+#include <drawinglayer/primitive2d/sdrdecompositiontools2d.hxx>
using namespace ::com::sun::star;
@@ -243,20 +241,15 @@ namespace drawinglayer
if(!getOuterRange().isEmpty())
{
// currently this SW object has no primitive representation. As long as this is the case,
- // create an invisible HitTestPrimitive to allow hitting the object. Use a filled primitive
- // to get a HitTest which uses 'inside' as default object hit. The special cases from
+ // create invisible geometry to allow corfect HitTest and BoundRect calculations for the
+ // object. Use a filled primitive to get 'inside' as default object hit. The special cases from
// the old SwVirtFlyDrawObj::CheckHit implementation are handled now in SwDrawView::PickObj;
- // this removed the 'hack' to get a view from inside model data or to react on noll-tolerance
+ // this removed the 'hack' to get a view from inside model data or to react on null-tolerance
// as it was done in the old implementation
- const basegfx::B2DPolygon aOuterRangePolygon(basegfx::tools::createPolygonFromRect(getOuterRange()));
- const basegfx::BColor aColor(0.0, 0.0, 0.0);
- const Primitive2DReference aContentReference(
- new PolyPolygonColorPrimitive2D(
- basegfx::B2DPolyPolygon(aOuterRangePolygon),
- aColor));
const Primitive2DReference aHitTestReference(
- new HitTestPrimitive2D(
- Primitive2DSequence(&aContentReference, 1)));
+ createHiddenGeometryPrimitives2D(
+ true,
+ getOuterRange()));
aRetval = Primitive2DSequence(&aHitTestReference, 1);
}
@@ -563,6 +556,11 @@ const Rectangle& __EXPORT SwVirtFlyDrawObj::GetCurrentBoundRect() const
return aOutRect;
}
+const Rectangle& __EXPORT SwVirtFlyDrawObj::GetLastBoundRect() const
+{
+ return GetCurrentBoundRect();
+}
+
void __EXPORT SwVirtFlyDrawObj::RecalcBoundRect()
{
diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx
index 380c1e78ff0d..a0d9141778cb 100644
--- a/sw/source/core/frmedt/fefly1.cxx
+++ b/sw/source/core/frmedt/fefly1.cxx
@@ -72,9 +72,11 @@
// --> OD 2006-03-06 #125892#
#include <HandleAnchorNodeChg.hxx>
// <--
-
#include <frmatr.hxx>
-
+// --> OD 2009-12-29 #i89920#
+#include <fmtsrnd.hxx>
+#include <editeng/opaqitem.hxx>
+// <--
using ::rtl::OUString;
using namespace ::com::sun::star;
@@ -908,67 +910,50 @@ SwFlyFrmFmt* SwFEShell::InsertObject( const svt::EmbeddedObjectRef& xObj,
}
-void SwFEShell::Insert( SdrObject& rDrawObj,
- const SfxItemSet* pFlyAttrSet,
- SwFrmFmt* pFrmFmt, const Point* pPt )
+void SwFEShell::InsertDrawObj( SdrObject& rDrawObj,
+ const Point& rInsertPosition )
{
- SwDrawFrmFmt* pFmt = 0;
SET_CURR_SHELL( this );
- if( pPt )
- {
- SfxItemSet* pSet = 0;
- const SfxPoolItem* pItem;
- if( !pFlyAttrSet ||
- !pFlyAttrSet->GetItemState( RES_ANCHOR, sal_False, &pItem ) ||
- (FLY_AT_PAGE != ((SwFmtAnchor*)pItem)->GetAnchorId()))
- {
- pSet = new SfxItemSet( GetDoc()->GetAttrPool(), aFrmFmtSetRange );
- pSet->Put( SwFmtAnchor( FLY_AT_PARA ));
- pFlyAttrSet = pSet;
- }
+ SfxItemSet rFlyAttrSet( GetDoc()->GetAttrPool(), aFrmFmtSetRange );
+ rFlyAttrSet.Put( SwFmtAnchor( FLY_AT_PARA ));
+ // --> OD 2009-12-29 #i89920#
+ rFlyAttrSet.Put( SwFmtSurround( SURROUND_THROUGHT ) );
+ rDrawObj.SetLayer( getIDocumentDrawModelAccess()->GetHeavenId() );
+ // <--
+ // find anchor position
+ SwPaM aPam( pDoc->GetNodes() );
+ {
SwCrsrMoveState aState( MV_SETONLYTEXT );
- SwPaM aPam( pDoc->GetNodes() );
- Point aTmpPt( *pPt );
+ Point aTmpPt( rInsertPosition );
getIDocumentLayoutAccess()->GetRootFrm()->GetCrsrOfst( aPam.GetPoint(), aTmpPt, &aState );
- SwFrm* pFrm = aPam.GetCntntNode()->GetFrm( 0, 0, sal_False );
- const Point aRelPos( pPt->X() - pFrm->Frm().Left(),
- pPt->Y() - pFrm->Frm().Top() );
- // OD 2004-04-05 #i26791# - direct object positioning for <SwDoc::Insert(..)>
+ const SwFrm* pFrm = aPam.GetCntntNode()->GetFrm( 0, 0, sal_False );
+ const Point aRelPos( rInsertPosition.X() - pFrm->Frm().Left(),
+ rInsertPosition.Y() - pFrm->Frm().Top() );
rDrawObj.SetRelativePos( aRelPos );
- ::lcl_FindAnchorPos( *GetDoc(), *pPt, *pFrm, *(SfxItemSet*)pFlyAttrSet );
- pFmt = GetDoc()->Insert( aPam, rDrawObj, pFlyAttrSet, pFrmFmt );
- if( pSet )
- delete pSet;
- }
- else
- {
- StartAllAction();
- FOREACHPAM_START( this )
- pFmt = GetDoc()->Insert(*PCURCRSR, rDrawObj,
- pFlyAttrSet, pFrmFmt );
- ASSERT( pFmt, "Doc->Insert(sdrobj) failed." );
-
- FOREACHPAM_END()
- EndAllAction();
+ ::lcl_FindAnchorPos( *GetDoc(), rInsertPosition, *pFrm, rFlyAttrSet );
}
+ // insert drawing object into the document creating a new <SwDrawFrmFmt> instance
+ SwDrawFrmFmt* pFmt = GetDoc()->Insert( aPam, rDrawObj, &rFlyAttrSet, 0 );
- // --> OD 2005-01-07 #i40085# - follow-up of #i35635#
// move object to visible layer
SwContact* pContact = static_cast<SwContact*>(rDrawObj.GetUserCall());
if ( pContact )
{
pContact->MoveObjToVisibleLayer( &rDrawObj );
}
- // <--
- if( pFmt )
- // das DrawObject selektieren
+ if ( pFmt )
+ {
+ // select drawing object
Imp()->GetDrawView()->MarkObj( &rDrawObj, Imp()->GetPageView(),
- sal_False, sal_False );
+ sal_False, sal_False );
+ }
else
+ {
GetLayout()->SetAssertFlyPages();
+ }
}
/***********************************************************************
diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx
index 8eb7e12a90eb..7242ca411616 100644
--- a/sw/source/core/frmedt/feshview.cxx
+++ b/sw/source/core/frmedt/feshview.cxx
@@ -1182,9 +1182,7 @@ bool SwFEShell::IsObjSelectable( const Point& rPt )
}
// #107513#
-// Test if there is a draw object at that position and if it should be selected.
-// The 'should' is aimed at Writer text fly frames which may be in front of
-// the draw object.
+// Test if there is a object at that position and if it should be selected.
sal_Bool SwFEShell::ShouldObjectBeSelected(const Point& rPt)
{
SET_CURR_SHELL(this);
@@ -1201,39 +1199,79 @@ sal_Bool SwFEShell::ShouldObjectBeSelected(const Point& rPt)
bRet = pDrawView->PickObj(rPt, pDrawView->getHitTolLog(), pObj, pPV, SDRSEARCH_PICKMARKABLE);
pDrawView->SetHitTolerancePixel(nOld);
- if(bRet && pObj)
+ if ( bRet && pObj )
{
const IDocumentDrawModelAccess* pIDDMA = getIDocumentDrawModelAccess();
- if( pObj->GetLayer() == pIDDMA->GetHellId() )
+ // --> OD 2009-12-30 #i89920#
+ // Do not select object in background which is overlapping this text
+ // at the given position.
+ bool bObjInBackground( false );
{
- const SwFrm *pPageFrm = GetLayout()->Lower();
- while( pPageFrm && !pPageFrm->Frm().IsInside( rPt ) )
+ if ( pObj->GetLayer() == pIDDMA->GetHellId() )
{
- if ( rPt.Y() < pPageFrm->Frm().Top() )
- pPageFrm = 0;
- else
- pPageFrm = pPageFrm->GetNext();
+ const SwAnchoredObject* pAnchoredObj = ::GetUserCall( pObj )->GetAnchoredObj( pObj );
+ const SwFrmFmt& rFmt = pAnchoredObj->GetFrmFmt();
+ const SwFmtSurround& rSurround = rFmt.GetSurround();
+ if ( rSurround.GetSurround() == SURROUND_THROUGHT )
+ {
+ bObjInBackground = true;
+ }
}
+ }
+ if ( bObjInBackground )
+ {
+ const SwPageFrm* pPageFrm = GetLayout()->GetPageAtPos( rPt );
if( pPageFrm )
{
- SwRect aTmp( pPageFrm->Prt() );
- aTmp += pPageFrm->Frm().Pos();
- if( aTmp.IsInside( rPt ) )
- return sal_False;
+ const SwCntntFrm* pCntntFrm( pPageFrm->ContainsCntnt() );
+ while ( pCntntFrm )
+ {
+ if ( pCntntFrm->UnionFrm().IsInside( rPt ) )
+ {
+ const SwTxtFrm* pTxtFrm =
+ dynamic_cast<const SwTxtFrm*>(pCntntFrm);
+ if ( pTxtFrm )
+ {
+ SwPosition* pPos =
+ new SwPosition( *(pTxtFrm->GetTxtNode()) );
+ Point aTmpPt( rPt );
+ if ( pTxtFrm->GetKeyCrsrOfst( pPos, aTmpPt ) )
+ {
+ SwRect aCursorCharRect;
+ if ( pTxtFrm->GetCharRect( aCursorCharRect, *pPos ) )
+ {
+ if ( aCursorCharRect.IsOver( SwRect( pObj->GetLastBoundRect() ) ) )
+ {
+ bRet = sal_False;
+ }
+ }
+ }
+ }
+ else
+ {
+ bRet = sal_False;
+ }
+ break;
+ }
+
+ pCntntFrm = pCntntFrm->GetNextCntntFrm();
+ }
}
}
-
- const SdrPage* pPage = pIDDMA->GetDrawModel()->GetPage(0);
- // --> FME 2005-04-18 #i20965# Use GetOrdNum() instead of GetOrdNumDirect()
- // because ordnums might be wrong
- for(sal_uInt32 a(pObj->GetOrdNum() + 1); bRet && a < pPage->GetObjCount(); a++)
- {
// <--
- SdrObject *pCandidate = pPage->GetObj(a);
- if(pCandidate->ISA(SwVirtFlyDrawObj) && ((SwVirtFlyDrawObj*)pCandidate)->GetCurrentBoundRect().IsInside(rPt))
+ if ( bRet )
+ {
+ const SdrPage* pPage = pIDDMA->GetDrawModel()->GetPage(0);
+ for(sal_uInt32 a(pObj->GetOrdNum() + 1); bRet && a < pPage->GetObjCount(); a++)
{
- bRet = sal_False;
+ SdrObject *pCandidate = pPage->GetObj(a);
+
+ if (pCandidate->ISA(SwVirtFlyDrawObj) &&
+ ( (SwVirtFlyDrawObj*)pCandidate)->GetCurrentBoundRect().IsInside(rPt) )
+ {
+ bRet = sal_False;
+ }
}
}
}
diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx
index 8e10e8d00e81..bcbdc826dd66 100644
--- a/sw/source/core/graphic/ndgrf.cxx
+++ b/sw/source/core/graphic/ndgrf.cxx
@@ -670,15 +670,6 @@ void SwGrfNode::SetTwipSize( const Size& rSz )
}
}
- // Prioritaet beim Laden der Grafik setzen. Geht nur, wenn der Link
- // ein FileObject gesetzt hat
-void SwGrfNode::SetTransferPriority( USHORT nPrio )
-{
- if( refLink.Is() && refLink->GetObj() )
- sfx2::LinkManager::SetTransferPriority( *refLink, nPrio );
-}
-
-
void SwGrfNode::ScaleImageMap()
{
if( !nGrfSize.Width() || !nGrfSize.Height() )
diff --git a/sw/source/core/inc/dflyobj.hxx b/sw/source/core/inc/dflyobj.hxx
index 0cc08f909583..47e8fb700809 100644
--- a/sw/source/core/inc/dflyobj.hxx
+++ b/sw/source/core/inc/dflyobj.hxx
@@ -44,8 +44,10 @@ const UINT16 SwDrawFirst = 0x0001;
class SwFlyDrawObj : public SdrObject
{
+private:
virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties();
+protected:
// #i95264# SwFlyDrawObj needs an own VC since createViewIndependentPrimitive2DSequence()
// is called when RecalcBoundRect() is used
virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact();
@@ -70,9 +72,10 @@ public:
class SwVirtFlyDrawObj : public SdrVirtObj
{
+private:
SwFlyFrm *pFlyFrm;
-private:
+protected:
// AW: Need own sdr::contact::ViewContact since AnchorPos from parent is
// not used but something own (top left of new SnapRect minus top left
// of original SnapRect)
@@ -97,6 +100,7 @@ public:
//Wir nehemen die Groessenbehandlung vollstaendig selbst in die Hand.
virtual const Rectangle& GetCurrentBoundRect() const;
+ virtual const Rectangle& GetLastBoundRect() const;
virtual void RecalcBoundRect();
virtual void RecalcSnapRect();
virtual const Rectangle& GetSnapRect() const;
diff --git a/sw/source/core/inc/layact.hxx b/sw/source/core/inc/layact.hxx
index 8d546e47000b..2186ccac0d2d 100644
--- a/sw/source/core/inc/layact.hxx
+++ b/sw/source/core/inc/layact.hxx
@@ -105,14 +105,8 @@ class SwLayAction
// OD 14.04.2003 #106346# - new flag for content formatting on interrupt.
sal_Bool mbFormatCntntOnInterrupt;
- // --> OD 2004-06-14 #i28701# - new flag, indicating, if scrolling is
- // allowed during page format
- bool mbScrollingAllowed;
-
#ifdef _LAYACT_CXX
- void _AddScrollRect( const SwCntntFrm *, const SwPageFrm *,
- const SwTwips, const SwTwips );
void PaintCntnt( const SwCntntFrm *, const SwPageFrm *,
const SwRect &rOldRect, long nOldBottom );
BOOL PaintWithoutFlys( const SwRect &, const SwCntntFrm *,
diff --git a/sw/source/core/inc/scrrect.hxx b/sw/source/core/inc/scrrect.hxx
deleted file mode 100644
index 4a9a21f0e5fe..000000000000
--- a/sw/source/core/inc/scrrect.hxx
+++ /dev/null
@@ -1,125 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SCRRECT_HXX
-#define _SCRRECT_HXX
-
-#include <svl/svarray.hxx>
-#include "swrect.hxx"
-#include <swtypes.hxx>
-
-class SwStripe
-{
- SwTwips nY;
- SwTwips nHeight;
-public:
- inline SwStripe( SwTwips nPos, SwTwips nHght )
- : nY( nPos ), nHeight( nHght ) {}
- inline SwTwips GetY() const { return nY; }
- inline SwTwips& Y() { return nY; }
- inline SwTwips GetHeight() const { return nHeight; }
- inline SwTwips& Height() { return nHeight; }
- inline SwTwips GetBottom() const { return nHeight ? nY + nHeight - 1 : nY; }
- inline BOOL operator<( const SwStripe &rTst ) const
- { return nY < rTst.nY || ( nY == rTst.nY && nHeight > rTst.nHeight ); }
- inline BOOL operator==( const SwStripe& rTst ) const
- { return nY == rTst.nY && nHeight == rTst.nHeight; }
-};
-
-SV_DECL_VARARR( SwStripeArr, SwStripe, 1, 4 )
-
-class SwStripes : public SwStripeArr, public SwStripe
-{
- SwTwips nMin; // Left minimum
- SwTwips nMax; // Right maximum
-public:
- SwStripes( SwTwips nPos, SwTwips nSize, SwTwips nMn, SwTwips nMx )
- : SwStripe( nPos, nSize ), nMin( nMn ), nMax( nMx ) {}
- SwStripes& Plus( const SwStripes& rOther, BOOL bVert );
- BOOL Recalc( BOOL bVert );
-
- inline SwTwips GetMin() const { return nMin; }
- inline SwTwips GetMax() const { return nMax; }
- inline void SetMin( const SwTwips nNew ) { nMin = nNew; }
- inline void SetMax( const SwTwips nNew ) { nMax = nNew; }
- inline void ChkMin( const SwTwips nNew ) { if( nNew < nMin ) nMin = nNew; }
- inline void ChkMax( const SwTwips nNew ) { if( nNew > nMax ) nMax = nNew; }
- inline SwTwips GetRight() const { return nMax > nMin ? nMax - 1 : nMax; }
- inline SwTwips GetWidth() const { return nMax - nMin; }
-};
-
-class SwScrollColumn
-{
- SwTwips nX;
- SwTwips nWidth;
- SwTwips nOffs;
- BOOL bVertical;
-public:
- inline SwScrollColumn( SwTwips nPos, SwTwips nSz, SwTwips nOff, BOOL bVert )
- : nX( nPos ), nWidth( nSz ), nOffs( nOff ), bVertical( bVert ) {}
- inline SwScrollColumn( const SwScrollColumn& rCol )
- : nX( rCol.nX ), nWidth( rCol.nWidth ),
- nOffs( rCol.nOffs ), bVertical( rCol.bVertical ) {}
- BOOL IsVertical() const { return bVertical; }
- inline BOOL operator<( const SwScrollColumn &rTst ) const
- { return bVertical < rTst.bVertical || ( bVertical == rTst.bVertical &&
- ( nX < rTst.nX || ( nX == rTst.nX && ( nWidth < rTst.nWidth ||
- ( nWidth == rTst.nWidth && nOffs < rTst.nOffs ) ) ) ) ); }
- inline BOOL operator==( const SwScrollColumn &rTst ) const
- { return bVertical == rTst.bVertical && nX == rTst.nX &&
- nWidth == rTst.nWidth && nOffs == rTst.nOffs;}
- inline SwTwips GetX() const { return nX; }
- inline SwTwips GetWidth() const { return nWidth; }
- inline SwTwips GetOffs() const { return nOffs; }
- inline void ClrOffs() { nOffs = 0; }
- inline SwTwips GetRight() const { return nWidth ? nX + nWidth - 1 : nX; }
-};
-
-typedef SwStripes* SwStripesPtr;
-SV_DECL_PTRARR_SORT(SwScrollStripes, SwStripesPtr, 1, 4)
-
-class SwScrollArea : public SwScrollColumn, public SwScrollStripes
-{
-public:
- void SmartInsert( SwStripes* pStripes );
- void Add( SwScrollArea *pScroll );
- inline SwScrollArea( const SwScrollColumn &rCol, SwStripes* pStripes )
- : SwScrollColumn( rCol )
- { Insert( pStripes ); }
- BOOL Compress();
-};
-
-typedef SwScrollArea* SwScrollAreaPtr;
-SV_DECL_PTRARR_SORT(SScrAreas,SwScrollAreaPtr,1,2)
-
-class SwScrollAreas : public SScrAreas
-{
-public:
- void InsertCol( const SwScrollColumn &rCol, SwStripes *pStripes );
-};
-
-
-#endif //_SCRRECT_HXX
diff --git a/sw/source/core/inc/txtfrm.hxx b/sw/source/core/inc/txtfrm.hxx
index 0a51cec7d1ee..5a8783df261b 100644
--- a/sw/source/core/inc/txtfrm.hxx
+++ b/sw/source/core/inc/txtfrm.hxx
@@ -46,7 +46,6 @@ class SwBorderAttrs;
class SwFrmFmt;
class OutputDevice;
class SwTestFormat;
-class SwStripes;
struct SwCrsrMoveState;
struct SwFillData;
class SwPortionHandler;
@@ -544,8 +543,6 @@ public:
// Stoppt Animationen innerhalb von Numerierungen
void StopAnimation( OutputDevice *pOut );
- void CriticalLines(const OutputDevice& rOut,SwStripes &rStripes,long nOffs);
-
// visit all portions for Accessibility
void VisitPortions( SwPortionHandler& rPH ) const;
diff --git a/sw/source/core/inc/viewimp.hxx b/sw/source/core/inc/viewimp.hxx
index 6a26c61c1f50..38fb3e2bac7a 100644
--- a/sw/source/core/inc/viewimp.hxx
+++ b/sw/source/core/inc/viewimp.hxx
@@ -42,7 +42,6 @@ class ViewShell;
class SwFlyFrm;
class SwViewOption;
class SwRegionRects;
-class SwScrollAreas;
class SwFrm;
class SwLayAction;
class SwLayIdle;
@@ -86,8 +85,6 @@ class SwViewImp
SwPageFrm *pFirstVisPage;//Zeigt immer auf die erste sichtbare Seite.
SwRegionRects *pRegion; //Sammler fuer Paintrects aus der LayAction.
- SwScrollAreas *pScrollRects; //Sammler fuer Scrollrects aus der LayAction.
- SwScrollAreas *pScrolledArea;//Sammler der gescrollten Rechtecke.
SwLayAction *pLayAct; //Ist gesetzt wenn ein Action-Objekt existiert
//Wird vom SwLayAction-CTor ein- und vom DTor
@@ -99,17 +96,11 @@ class SwViewImp
mutable const SdrObject * pSdrObjCached;
mutable String sSdrObjCachedComment;
- AutoTimer aScrollTimer; //Fuer das Aufraeumen nach dem Scrollen.
-
BOOL bFirstPageInvalid :1; //Pointer auf erste Seite ungueltig?
- BOOL bNextScroll :1; //Scroll in der folgenden EndAction erlaubt?
- BOOL bScroll :1; //Scroll in der aktuellen EndAction erlaubt?
- BOOL bScrolled :1; //Wurde gescrolled? Dann im Idle aufraeumen.
//BOOL bResetXorVisibility:1; //StartAction/EndAction
//HMHBOOL bShowHdlPaint :1; //LockPaint/UnlockPaint
BOOL bResetHdlHiddenPaint:1;// -- "" --
- BOOL bPaintInScroll :1; //Paint (Update() im ScrollHdl der ViewShell
BOOL bSmoothUpdate :1; //Meber fuer SmoothScroll
BOOL bStopSmooth :1;
@@ -144,21 +135,6 @@ class SwViewImp
void SetFirstVisPage(); //Neue Ermittlung der ersten sichtbaren Seite
- void ResetNextScroll() { bNextScroll = FALSE; }
- void SetNextScroll() { bNextScroll = TRUE; }
- void SetScroll() { bScroll = TRUE; }
- void ResetScrolled() { bScrolled = FALSE; }
- void SetScrolled() { bScrolled = TRUE; }
-
- SwScrollAreas *GetScrollRects() { return pScrollRects; }
- void FlushScrolledArea();
- BOOL _FlushScrolledArea( SwRect& rRect );
- BOOL FlushScrolledArea( SwRect& rRect )
- { if( !pScrolledArea ) return FALSE; return _FlushScrolledArea( rRect ); }
- void _ScrolledRect( const SwRect& rRect, long nOffs );
- void ScrolledRect( const SwRect& rRect, long nOffs )
- { if( pScrolledArea ) _ScrolledRect( rRect, nOffs ); }
-
void StartAction(); //Henkel Anzeigen und verstecken.
void EndAction(); //gerufen von ViewShell::ImplXXXAction
void LockPaint(); //dito, gerufen von ViewShell::ImplLockPaint
@@ -224,32 +200,9 @@ public:
inline SwPageFrm *GetFirstVisPage();
void SetFirstVisPageInvalid() { bFirstPageInvalid = TRUE; }
- //SS'en fuer Paint- und Scrollrects.
BOOL AddPaintRect( const SwRect &rRect );
- void AddScrollRect( const SwFrm *pFrm, const SwRect &rRect, long nOffs );
- void MoveScrollArea();
SwRegionRects *GetRegion() { return pRegion; }
- void DelRegions(); //Loescht Scroll- und PaintRects
-
- //Handler fuer das Refresh von gescrollten Bereichen (Korrektur des
- //Alignments). Ruft das Refresh mit der ScrolledArea.
- //RefreshScrolledArea kann z.B. beim Setzen des Crsr genutzt werden, es
- //wird nur der Anteil des Rect refreshed, der mit der ScrolledArea
- //ueberlappt. Das 'reingereichte Rechteck wird veraendert!
- void RestartScrollTimer() { aScrollTimer.Start(); }
- DECL_LINK( RefreshScrolledHdl, Timer * );
- void _RefreshScrolledArea( const SwRect &rRect );
- void RefreshScrolledArea( SwRect &rRect );
-
- //Wird vom Layout ggf. waehrend einer Action gerufen, wenn der
- //Verdacht besteht, dass es etwas drunter und drueber geht.
- void ResetScroll() { bScroll = FALSE; }
-
- BOOL IsNextScroll() const { return bNextScroll; }
- BOOL IsScroll() const { return bScroll; }
- BOOL IsScrolled() const { return bScrolled; }
-
- BOOL IsPaintInScroll() const { return bPaintInScroll; }
+ void DelRegion();
// neues Interface fuer StarView Drawing
inline BOOL HasDrawView() const { return 0 != pDrawView; }
@@ -364,20 +317,6 @@ public:
void FireAccessibleEvents();
};
-//Kann auf dem Stack angelegt werden, wenn etwas ausgegeben oder
-//gescrolled wird. Handles und sontiges vom Drawing werden im CTor
-//gehidet und im DTor wieder sichtbar gemacht.
-//AW 06-Sep99: Hiding of handles is no longer necessary, removed
-//class SwSaveHdl
-//{
-// SwViewImp *pImp;
-// BOOL bXorVis;
-//public:
-// SwSaveHdl( SwViewImp *pImp );
-// ~SwSaveHdl();
-//};
-
-
inline SwPageFrm *SwViewImp::GetFirstVisPage()
{
if ( bFirstPageInvalid )
diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx
index fb8d28b66862..37ec80632153 100644
--- a/sw/source/core/layout/atrfrm.cxx
+++ b/sw/source/core/layout/atrfrm.cxx
@@ -2727,10 +2727,23 @@ void SwFlyFrmFmt::MakeFrms()
//die Suche vom StartNode zum FrameFormat sein.
SwNodeIndex aIdx( aAnchorAttr.GetCntntAnchor()->nNode );
SwCntntNode *pCNd = GetDoc()->GetNodes().GoNext( &aIdx );
- SwClientIter aIter( *pCNd );
- if ( aIter.First( TYPE(SwFrm) ) )
- pModify = pCNd;
- else
+ // --> OD 2009-12-28 #i105535#
+ if ( pCNd == 0 )
+ {
+ pCNd = aAnchorAttr.GetCntntAnchor()->nNode.GetNode().GetCntntNode();
+ }
+ if ( pCNd )
+ // <--
+ {
+ SwClientIter aIter( *pCNd );
+ if ( aIter.First( TYPE(SwFrm) ) )
+ {
+ pModify = pCNd;
+ }
+ }
+ // --> OD 2009-12-28 #i105535#
+ if ( pModify == 0 )
+ // <--
{
const SwNodeIndex &rIdx = aAnchorAttr.GetCntntAnchor()->nNode;
SwSpzFrmFmts& rFmts = *GetDoc()->GetSpzFrmFmts();
@@ -2802,7 +2815,24 @@ void SwFlyFrmFmt::MakeFrms()
!((SwCntntFrm*)pFrm)->IsFollow();
if ( FLY_AT_FLY == aAnchorAttr.GetAnchorId() && !pFrm->IsFlyFrm() )
- pFrm = pFrm->FindFlyFrm();
+ {
+ // --> OD 2009-12-28 #i105535#
+ // fallback to anchor type at-paragraph, if no fly frame is found.
+// pFrm = pFrm->FindFlyFrm();
+ SwFrm* pFlyFrm = pFrm->FindFlyFrm();
+ if ( pFlyFrm )
+ {
+ pFrm = pFlyFrm;
+ }
+ else
+ {
+ aAnchorAttr.SetType( FLY_AT_PARA );
+ SetFmtAttr( aAnchorAttr );
+ MakeFrms();
+ return;
+ }
+ // <--
+ }
if( pFrm->GetDrawObjs() )
{
diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx
index 2b49f6b44abc..d0015b12114d 100644
--- a/sw/source/core/layout/flowfrm.cxx
+++ b/sw/source/core/layout/flowfrm.cxx
@@ -2127,13 +2127,15 @@ BOOL SwFlowFrm::MoveFwd( BOOL bMakePage, BOOL bPageBreak, BOOL bMoveAlways )
// OD 30.10.2002 #97265# - no <CheckPageDesc(..)> in online layout
if ( !pNewPage->GetFmt()->getIDocumentSettingAccess()->get(IDocumentSettingAccess::BROWSE_MODE) )
{
- //Bei Sections kann es passieren, das wir gleich in den Follow geflutscht
- //sind. Dadurch wird nicht vom GetLeaf fuer die richtige Seite gesorgt.
- //Das muessen wir fuer diesen Fall pruefen.
- if ( !bSamePage && pNewUpper->IsInSct() &&
+ // --> OD 2009-12-31 #i106452#
+ // check page description not only in situation with sections.
+ if ( !bSamePage &&
( rThis.GetAttrSet()->GetPageDesc().GetPageDesc() ||
pOldPage->GetPageDesc()->GetFollow() != pNewPage->GetPageDesc() ) )
+ {
SwFrm::CheckPageDescs( pNewPage, FALSE );
+ }
+ // <--
}
}
return bSamePage;
diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx
index 2fb0535c6193..14bc23bb97a4 100644
--- a/sw/source/core/layout/layact.cxx
+++ b/sw/source/core/layout/layact.cxx
@@ -371,149 +371,6 @@ void SwLayAction::PaintCntnt( const SwCntntFrm *pCnt,
/*************************************************************************
|*
-|* SwLayAction::_AddScrollRect()
-|*
-|* Ersterstellung MA 04. Mar. 94
-|* Letzte Aenderung MA 04. Mar. 94
-|*
-|*************************************************************************/
-BOOL MA_FASTCALL lcl_IsOverObj( const SwFrm *pFrm, const SwPageFrm *pPage,
- const SwRect &rRect1, const SwRect &rRect2,
- const SwLayoutFrm *pLay )
-{
- const SwSortedObjs &rObjs = *pPage->GetSortedObjs();
- const SwFlyFrm *pSelfFly = pFrm->FindFlyFrm();
- const BOOL bInCnt = pSelfFly && pSelfFly->IsFlyInCntFrm() ? TRUE : FALSE;
-
- for ( sal_uInt32 j = 0; j < rObjs.Count(); ++j )
- {
- // --> OD 2004-07-07 #i28701# - consider changed type of <SwSortedObjs> entries
- const SwAnchoredObject* pAnchoredObj = rObjs[j];
- const SwRect aRect( pAnchoredObj->GetObjRect() );
- if ( !rRect1.IsOver( aRect ) && !rRect2.IsOver( aRect ) )
- continue; //Keine Ueberlappung, der naechste.
-
- const SwFlyFrm *pFly = pAnchoredObj->ISA(SwFlyFrm)
- ? static_cast<const SwFlyFrm*>(pAnchoredObj) : 0;
-
- //Wenn der Rahmen innerhalb des LayFrm verankert ist, so darf er
- //mitgescrollt werden, wenn er nicht seitlich aus dem Rechteck
- //herausschaut.
- if ( pLay && pFly && pFly->IsLowerOf( pLay ) )
- {
- if ( pFly->Frm().Left() < rRect1.Left() ||
- pFly->Frm().Right()> rRect1.Right() )
- return TRUE;
- continue;
- }
-
- if ( !pSelfFly ) //Nur wenn der Frm in einem Fly steht kann
- return TRUE; //es Einschraenkungen geben.
-
- if ( !pFly ) //Keine Einschraenkung fuer Zeichenobjekte.
- return TRUE;
-
- if ( pFly != pSelfFly )
- {
- //Flys unter dem eigenen nur dann abziehen, wenn sie innerhalb des
- //eigenen stehen.
- //Fuer inhaltsgebundene Flys alle Flys abziehen fuer die gilt, dass
- //pSelfFly nicht innerhalb von ihnen steht.
- if ( bInCnt )
- {
- const SwFlyFrm *pTmp = pSelfFly->GetAnchorFrm()->FindFlyFrm();
- while ( pTmp )
- {
- if ( pTmp == pFly )
- return FALSE;
- else
- pTmp = pTmp->GetAnchorFrm()->FindFlyFrm();
- }
- } else if ( pAnchoredObj->GetDrawObj()->GetOrdNum() <
- pSelfFly->GetVirtDrawObj()->GetOrdNum() )
- {
- const SwFlyFrm *pTmp = pFly;
- do
- { if ( pTmp == pSelfFly )
- return TRUE;
- else
- pTmp = pTmp->GetAnchorFrm()->FindFlyFrm();
- } while ( pTmp );
- } else
- return TRUE;
- }
- }
- return FALSE;
-}
-
-void SwLayAction::_AddScrollRect( const SwCntntFrm *pCntnt,
- const SwPageFrm *pPage,
- const SwTwips nOfst,
- const SwTwips nOldBottom )
-{
- // --> OD 2004-07-01 #i28701# - determine, if scrolling is allowed.
- bool bScroll = mbScrollingAllowed;
- SwRect aPaintRect( pCntnt->PaintArea() );
- SWRECTFN( pCntnt )
-
- // --> OD 2007-11-27 #notes2#
- // if sidebar for notes is present, no scrolling is allowed
- if ( bScroll )
- {
- const SwPostItMgr* pPostItMgr = pImp->GetShell()->GetPostItMgr();
- if ( pPostItMgr && pPostItMgr->HasNotes() && pPostItMgr->ShowNotes() )
- {
- bScroll = false;
- }
- }
- // <--
-
- //Wenn altes oder neues Rechteck mit einem Fly ueberlappen, in dem der
- //Cntnt nicht selbst steht, so ist nichts mit Scrollen.
- if ( bScroll && pPage->GetSortedObjs() )
- {
- SwRect aRect( aPaintRect );
- if( bVert )
- aPaintRect.Pos().X() += nOfst;
- else
- aPaintRect.Pos().Y() -= nOfst;
-
- if ( ::lcl_IsOverObj( pCntnt, pPage, aPaintRect, aRect, 0 ) )
- bScroll = false;
-
- if( bVert )
- aPaintRect.Pos().X() -= nOfst;
- else
- aPaintRect.Pos().Y() += nOfst;
- }
- if ( bScroll && pPage->GetFmt()->GetBackground().GetGraphicPos() != GPOS_NONE )
- bScroll = false;
-
- if ( bScroll )
- {
- if( aPaintRect.HasArea() )
- pImp->GetShell()->AddScrollRect( pCntnt, aPaintRect, nOfst );
- if ( pCntnt->IsRetouche() && !pCntnt->GetNext() )
- {
- SwRect aRect( pCntnt->GetUpper()->PaintArea() );
- (aRect.*fnRect->fnSetTop)( (pCntnt->*fnRect->fnGetPrtBottom)() );
- if ( !pImp->GetShell()->AddPaintRect( aRect ) )
- pCntnt->ResetRetouche();
- }
- pCntnt->ResetCompletePaint();
- }
- else if( aPaintRect.HasArea() )
- {
- if( bVert )
- aPaintRect.Pos().X() += nOfst;
- else
- aPaintRect.Pos().Y() -= nOfst;
- PaintCntnt( pCntnt, pPage, aPaintRect, nOldBottom );
- }
-}
-
-/*************************************************************************
-|*
|* SwLayAction::SwLayAction()
|*
|* Ersterstellung MA 30. Oct. 92
@@ -538,8 +395,6 @@ SwLayAction::SwLayAction( SwRootFrm *pRt, SwViewImp *pI ) :
bUpdateExpFlds = bBrowseActionStop = bActionInProgress = FALSE;
// OD 14.04.2003 #106346# - init new flag <mbFormatCntntOnInterrupt>.
mbFormatCntntOnInterrupt = sal_False;
- // --> OD 2004-06-14 #i28701#
- mbScrollingAllowed = true;
pImp->pLayAct = this; //Anmelden
}
@@ -654,8 +509,6 @@ void SwLayAction::Action()
pRoot->ResetTurboFlag();
pRoot->ResetTurbo();
- if ( IsInput() )
- pImp->GetShell()->SetNoNextScroll();
SetCheckPages( TRUE );
bActionInProgress = FALSE;
@@ -735,34 +588,6 @@ class NotifyLayoutOfPageInProgress
};
// <--
-// --> OD 2004-06-14 #i28701# - local method to determine, if scrolling during
-// the format of the given page is allowed.
-// Scrolling isn't allowed, if the wrapping style of floating screen objects
-// is considered on object positioning and to-paragraph/to-character anchored
-// floating screen objects are registered at the page.
-bool lcl_ScrollingAllowed( const SwPageFrm& _rPageFrm )
-{
- bool bRetScrollAllowed = true;
-
- if ( _rPageFrm.GetSortedObjs() &&
- _rPageFrm.GetFmt()->getIDocumentSettingAccess()->get(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION) )
- {
- const SwSortedObjs* pObjs = _rPageFrm.GetSortedObjs();
- sal_uInt32 i = 0;
- for ( ; i < pObjs->Count(); ++i )
- {
- SwAnchoredObject* pObj = (*pObjs)[i];
- if ( pObj->ConsiderObjWrapInfluenceOnObjPos() )
- {
- bRetScrollAllowed = false;
- break;
- }
- }
- }
-
- return bRetScrollAllowed;
-}
-
void SwLayAction::InternalAction()
{
ASSERT( pRoot->Lower()->IsPageFrm(), ":-( Keine Seite unterhalb der Root.");
@@ -864,8 +689,6 @@ void SwLayAction::InternalAction()
// <NotifyLayoutOfPageInProgress>
{
NotifyLayoutOfPageInProgress aLayoutOfPageInProgress( *pPage );
- // --> OD 2004-07-01 #i28701# - determine, if scrolling is allowed.
- mbScrollingAllowed = lcl_ScrollingAllowed( *pPage );
while ( !IsInterrupt() && !IsNextCycle() &&
((IS_FLYS && IS_INVAFLY) || pPage->IsInvalid()) )
@@ -1838,219 +1661,6 @@ BOOL SwLayAction::FormatLayoutFly( SwFlyFrm* pFly )
return bChanged || bTabChanged;
}
-BOOL MA_FASTCALL lcl_AreLowersScrollable( const SwLayoutFrm *pLay )
-{
- const SwFrm *pLow = pLay->Lower();
- while ( pLow )
- {
- if ( pLow->IsCompletePaint() || !pLow->IsValid() || pLow->IsCoveredCell() )
- return FALSE;
- if ( pLow->IsLayoutFrm() && !::lcl_AreLowersScrollable( (SwLayoutFrm*)pLow ))
- return FALSE;
- pLow = pLow->GetNext();
- }
- return TRUE;
-}
-
-SwLayoutFrm * MA_FASTCALL lcl_IsTabScrollable( SwTabFrm *pTab )
-{
- //returnt die erste unveraenderte Zeile, oder 0 wenn nicht
- //gescrollt werden darf.
- if ( !pTab->IsCompletePaint() )
- {
- SwLayoutFrm *pUnchgdRow = 0;
- SwLayoutFrm *pRow = (SwLayoutFrm*)pTab->Lower();
- while ( pRow )
- {
- if ( ::lcl_AreLowersScrollable( pRow ) )
- {
- if ( !pUnchgdRow )
- pUnchgdRow = pRow;
- }
- else
- {
- pUnchgdRow = 0;
- }
-
- pRow = (SwLayoutFrm*)pRow->GetNext();
- }
- return pUnchgdRow;
- }
- return 0;
-}
-
-// OD 2004-05-11 #i28701#
-void lcl_ValidateLowerObjs( SwFrm* pFrm,
- const SwTwips nOfst,
- SwPageFrm *pPage,
- bool bResetOnly );
-
-// OD 2004-05-11 #i28701# - correction: floating screen objects, which are
-// anchored at-fly, have also been to be considered.
-void MA_FASTCALL lcl_ValidateLowers( SwLayoutFrm *pLay, const SwTwips nOfst,
- SwLayoutFrm *pRow, SwPageFrm *pPage,
- BOOL bResetOnly )
-{
- pLay->ResetCompletePaint();
-
- // OD 2004-05-11 #i28701# - consider floating screen objects, which are
- // anchored at-fly.
- if ( pLay->IsFlyFrm() )
- {
- ::lcl_ValidateLowerObjs( pLay, nOfst, pPage, bResetOnly );
- }
-
- SwFrm *pLow = pRow ? pRow : pLay->Lower();
- SwRootFrm *pRootFrm = 0;
-
- while ( pLow )
- {
- if ( !bResetOnly )
- {
- SwRect aOldFrm( pLow->Frm() );
- pLow->Frm().Pos().Y() += nOfst;
- if( pLow->IsAccessibleFrm() )
- {
- if( !pRootFrm )
- pRootFrm = pPage->FindRootFrm();
- if( pRootFrm && pRootFrm->IsAnyShellAccessible() &&
- pRootFrm->GetCurrShell() )
- {
- pRootFrm->GetCurrShell()->Imp()->MoveAccessibleFrm( pLow, aOldFrm );
- }
- }
- }
- if ( pLow->IsLayoutFrm() )
- {
- ::lcl_ValidateLowers( (SwLayoutFrm*)pLow, nOfst, 0, pPage, bResetOnly);
- }
- else
- {
- pLow->ResetCompletePaint();
- // OD 2004-05-11 #i28701# - use new local helper method
- // <lcl_ValidateLowerObjs(..)>
- ::lcl_ValidateLowerObjs( pLow, nOfst, pPage, bResetOnly);
- }
- if ( !bResetOnly )
- pLow->Calc(); //#55435# Stabil halten.
- pLow = pLow->GetNext();
- }
-}
-
-// OD 2004-05-11 #i28701# - helper method for <lcl_ValidateLowers(..)> to
-// 'ValidateLowers' for floating screen objects
-void lcl_ValidateLowerObjs( SwFrm* pFrm,
- const SwTwips nOfst,
- SwPageFrm *pPage,
- bool bResetOnly )
-{
- if ( pFrm->GetDrawObjs() )
- {
- // --> OD 2004-10-15 #i26945# - consider layout direction
- SWRECTFN( pFrm )
- // <--
- for ( USHORT i = 0; i < pFrm->GetDrawObjs()->Count(); ++i )
- {
- SwAnchoredObject* pAnchoredObj = (*pFrm->GetDrawObjs())[i];
- // --> OD 2004-10-08 #i26945# - check, if the anchor frame, which
- // contains the anchor position, is the given frame
- if ( pAnchoredObj->GetAnchorFrmContainingAnchPos() != pFrm )
- {
- continue;
- }
- if ( pAnchoredObj->ISA(SwFlyFrm) )
- {
- SwFlyFrm *pFly = static_cast<SwFlyFrm*>(pAnchoredObj);
- if ( !bResetOnly )
- {
- // --> OD 2004-10-15 #i26945#
- // - consider layout direction
- // - consider condition for direct move
- const bool bNoDirectMove =
- WEIT_WECH == pFly->Frm().Top() ||
- pFly->ConsiderObjWrapInfluenceOnObjPos();
- if ( !bNoDirectMove )
- {
- (pFly->Frm().*fnRect->fnSubTop)( -nOfst );
- (pFly->Frm().*fnRect->fnAddBottom)( nOfst );
- }
- // <--
- pFly->GetVirtDrawObj()->SetRectsDirty();
- // --> OD 2004-08-17 - also notify view of <SdrObject>
- // instance, which represents the Writer fly frame in the
- // drawing layer
- pFly->GetVirtDrawObj()->SetChanged();
- // <--
- if ( pFly->IsFlyInCntFrm() )
- ((SwFlyInCntFrm*)pFly)->AddRefOfst( nOfst );
- // --> OD 2004-10-15 #i26945# - consider at-character
- // anchored Writer fly frames
- else if( pFly->IsAutoPos() )
- {
- pFly->AddLastCharY( nOfst );
- // OD 2004-05-18 #i28701# - follow-up of #i22341#
- // <mnLastTopOfLine> has also been adjusted.
- pFly->AddLastTopOfLineY( nOfst );
- }
- // <--
- }
- ::lcl_ValidateLowers( pFly, nOfst, 0, pPage, bResetOnly);
- }
- // --> OD 2004-10-15 #i26945# - consider drawing objects
- else
- {
- if ( !bResetOnly )
- {
- pAnchoredObj->AddLastCharY( nOfst );
- pAnchoredObj->AddLastTopOfLineY( nOfst );
- }
- }
- // <--
- pAnchoredObj->InvalidateObjPos();
- }
- }
-}
-
-void MA_FASTCALL lcl_AddScrollRectTab( SwTabFrm *pTab, SwLayoutFrm *pRow,
- const SwRect &rRect,
- const SwTwips nOfst)
-{
- // --> OD 2007-11-27 #notes2#
- // if sidebar for notes is present, no scrolling is allowed
- const SwPageFrm* pPage = pTab->FindPageFrm();
- ASSERT( pPage, "<lcl_AddScrollRectTab(..)> - no page frame found at table frame -> crash" );
- ViewShell* pSh = pPage->GetShell();
- if ( pSh )
- {
- const SwPostItMgr* pPostItMgr = pSh->GetPostItMgr();
- if ( pPostItMgr && pPostItMgr->HasNotes() && pPostItMgr->ShowNotes() )
- {
- return;
- }
- }
- // <--
- //Wenn altes oder neues Rechteck mit einem Fly ueberlappen, in dem der
- //Frm nicht selbst steht, so ist nichts mit Scrollen.
- SwRect aRect( rRect );
- // OD 04.11.2002 #104100# - <SWRECTFN( pTab )> not needed.
- if( pTab->IsVertical() )
- aRect.Pos().X() -= nOfst;
- else
- aRect.Pos().Y() += nOfst;
- if ( pPage->GetSortedObjs() )
- {
- if ( ::lcl_IsOverObj( pTab, pPage, rRect, aRect, pTab ) )
- return;
- }
- if ( pPage->GetFmt()->GetBackground().GetGraphicPos() != GPOS_NONE )
- return;
-
- if ( pSh )
- pSh->AddScrollRect( pTab, aRect, nOfst );
- ::lcl_ValidateLowers( pTab, nOfst, pRow, pTab->FindPageFrm(),
- pTab->IsLowersFormatted() );
-}
-
// OD 31.10.2002 #104100#
// NOTE: no adjustments for vertical layout support necessary
BOOL CheckPos( SwFrm *pFrm )
@@ -2093,76 +1703,27 @@ BOOL SwLayAction::FormatLayoutTab( SwTabFrm *pTab, BOOL bAddRect )
if ( !pTab->IsValid() || pTab->IsCompletePaint() || pTab->IsComplete() )
{
if ( pTab->GetPrev() && !pTab->GetPrev()->IsValid() )
- pTab->GetPrev()->SetCompletePaint();
-
- //Potenzielles Scrollrect ist die ganze Tabelle. Da bereits ein
- //Wachstum innerhalb der Tabelle - und damit der Tabelle selbst -
- //stattgefunden haben kann, muss die untere Kante durch die
- //Unterkante der letzten Zeile bestimmt werden.
- SwLayoutFrm* pRow = 0L;
- SwRect aScrollRect( pTab->PaintArea() );
- // --> OD 2004-07-01 #i28701# - check, if scrolling is allowed.
- if ( mbScrollingAllowed &&
- ( IsPaint() || bAddRect ) )
{
- pRow = static_cast<SwLayoutFrm*>(pTab->GetLastLower());
- // OD 31.10.2002 #104100# - vertical layout support
- (aScrollRect.*fnRect->fnSetBottom)( (pRow->Frm().*fnRect->fnGetBottom)() );
- //Die Oberkante wird ggf. durch die erste unveraenderte Zeile bestimmt.
- pRow = ::lcl_IsTabScrollable( pTab );
- if ( pRow && pRow != pTab->Lower() )
- // OD 31.10.2002 #104100# - vertical layout support
- (aScrollRect.*fnRect->fnSetTop)( (pRow->Frm().*fnRect->fnGetTop)() );
+ pTab->GetPrev()->SetCompletePaint();
}
- const SwFrm *pOldUp = pTab->GetUpper();
-
- SwRect aOldRect( pTab->Frm() );
+ const SwRect aOldRect( pTab->Frm() );
pTab->SetLowersFormatted( FALSE );
pTab->Calc();
if ( aOldRect != pTab->Frm() )
+ {
bChanged = TRUE;
- SwRect aPaintFrm = pTab->PaintArea();
+ }
+ const SwRect aPaintFrm = pTab->PaintArea();
if ( IsPaint() && bAddRect )
{
- // --> OD 2004-07-01 #i28701# - check, if scrolling is allowed
- if ( mbScrollingAllowed &&
- pRow && pOldUp == pTab->GetUpper() &&
- pTab->Frm().SSize() == aOldRect.SSize() &&
- // OD 31.10.2002 #104100# - vertical layout support
- (pTab->Frm().*fnRect->fnGetLeft)() == (aOldRect.*fnRect->fnGetLeft)() &&
- pTab->IsAnLower( pRow ) )
- {
- SwTwips nOfst;
- if ( pRow->GetPrev() )
- {
- if ( pRow->GetPrev()->IsValid() ||
- ::CheckPos( pRow->GetPrev() ) )
- {
- // OD 31.10.2002 #104100# - vertical layout support
- nOfst = -(pRow->Frm().*fnRect->fnTopDist)( (pRow->GetPrev()->Frm().*fnRect->fnGetBottom)() );
- }
- else
- nOfst = 0;
- }
- else
- // OD 31.10.2002 #104100# - vertical layout support
- nOfst = (pTab->Frm().*fnRect->fnTopDist)( (aOldRect.*fnRect->fnGetTop)() );
-
- if ( nOfst )
- {
- ::lcl_AddScrollRectTab( pTab, pRow, aScrollRect, nOfst );
- bPainted = TRUE;
- }
- }
-
// OD 01.11.2002 #104100# - add condition <pTab->Frm().HasArea()>
- if ( !pTab->IsCompletePaint() && pTab->IsComplete() &&
+ if ( !pTab->IsCompletePaint() &&
+ pTab->IsComplete() &&
( pTab->Frm().SSize() != pTab->Prt().SSize() ||
// OD 31.10.2002 #104100# - vertical layout support
- (pTab->*fnRect->fnGetLeftMargin)()
- ) &&
+ (pTab->*fnRect->fnGetLeftMargin)() ) &&
pTab->Frm().HasArea()
)
{
@@ -2478,13 +2039,6 @@ void SwLayAction::_FormatCntnt( const SwCntntFrm *pCntnt,
SWRECTFN( pCntnt )
if ( !bDrawObjsOnly && IsPaint() )
{
- const BOOL bPosOnly = !pCntnt->GetValidPosFlag() &&
- !pCntnt->IsCompletePaint() &&
- pCntnt->GetValidSizeFlag() &&
- pCntnt->GetValidPrtAreaFlag() &&
- ( !pCntnt->IsTxtFrm() ||
- !((SwTxtFrm*)pCntnt)->HasAnimation() );
- const SwFrm *pOldUp = pCntnt->GetUpper();
const SwRect aOldRect( pCntnt->UnionFrm() );
const long nOldBottom = (pCntnt->*fnRect->fnGetPrtBottom)();
pCntnt->OptCalc();
@@ -2492,23 +2046,10 @@ void SwLayAction::_FormatCntnt( const SwCntntFrm *pCntnt,
return;
if( (*fnRect->fnYDiff)( (pCntnt->Frm().*fnRect->fnGetBottom)(),
(aOldRect.*fnRect->fnGetBottom)() ) < 0 )
- pCntnt->SetRetouche();
- const SwRect aNewRect( pCntnt->UnionFrm() );
- if ( bPosOnly &&
- (aNewRect.*fnRect->fnGetTop)() != (aOldRect.*fnRect->fnGetTop)() &&
- !pCntnt->IsInTab() && !pCntnt->IsInSct() &&
- ( !pCntnt->GetPrev() || !pCntnt->GetPrev()->IsTabFrm() ) &&
- pOldUp == pCntnt->GetUpper() &&
- (aNewRect.*fnRect->fnGetLeft)() == (aOldRect.*fnRect->fnGetLeft)() &&
- aNewRect.SSize() == aOldRect.SSize()
- )
{
- _AddScrollRect( pCntnt, pPage, (*fnRect->fnYDiff)(
- (pCntnt->Frm().*fnRect->fnGetTop)(),
- (aOldRect.*fnRect->fnGetTop)() ), nOldBottom );
+ pCntnt->SetRetouche();
}
- else
- PaintCntnt( pCntnt, pCntnt->FindPageFrm(), aOldRect, nOldBottom);
+ PaintCntnt( pCntnt, pCntnt->FindPageFrm(), aOldRect, nOldBottom);
}
else
{
@@ -2907,7 +2448,7 @@ SwLayIdle::SwLayIdle( SwRootFrm *pRt, SwViewImp *pI ) :
{
--pSh->nStartAction;
- if ( pSh->Imp()->GetRegion() || pSh->Imp()->GetScrollRects() )
+ if ( pSh->Imp()->GetRegion() )
bActions = TRUE;
else
{
@@ -2953,9 +2494,9 @@ SwLayIdle::SwLayIdle( SwRootFrm *pRt, SwViewImp *pI ) :
//fix(18176):
SwViewImp *pViewImp = pSh->Imp();
BOOL bUnlock = FALSE;
- if ( pViewImp->GetRegion() || pViewImp->GetScrollRects() )
+ if ( pViewImp->GetRegion() )
{
- pViewImp->DelRegions();
+ pViewImp->DelRegion();
//Fuer Repaint mit virtuellem Device sorgen.
pSh->LockPaint();
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index f3408cc9ab9a..ee9671ac869f 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -1645,7 +1645,7 @@ void lcl_DrawGraphic( const SvxBrushItem& rBrush, OutputDevice *pOut,
/// Because for drawing a graphic left-top-corner and size coordinations are
/// used, these coordinations have to be determined on pixel level.
::SwAlignGrfRect( &aAlignedGrfRect, *pOut );
- pGrf->Draw( pOut, aAlignedGrfRect.Pos(), aAlignedGrfRect.SSize() );
+ pGrf->DrawWithPDFHandling( *pOut, aAlignedGrfRect.Pos(), aAlignedGrfRect.SSize() );
if ( bNotInside )
pOut->Pop();
@@ -2804,7 +2804,7 @@ void SwRootFrm::Paint( const SwRect& rRect, const SwPrtOptions *pPrintData ) con
aAction.Action();
((SwRootFrm*)this)->ResetTurboFlag();
if ( !pSh->ActionPend() )
- pSh->Imp()->DelRegions();
+ pSh->Imp()->DelRegion();
}
SwRect aRect( rRect );
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 84a5b1bd1cd1..c3bccc695934 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -2790,9 +2790,6 @@ void SwTabFrm::MakeAll()
}
else if ( GetFollow() == GetNext() )
((SwTabFrm*)GetFollow())->MoveFwd( TRUE, FALSE );
- ViewShell *pSh;
- if ( 0 != (pSh = GetShell()) )
- pSh->Imp()->ResetScroll();
}
continue;
}
diff --git a/sw/source/core/text/frmpaint.cxx b/sw/source/core/text/frmpaint.cxx
index d3fed24fc6b7..443900e1942c 100644
--- a/sw/source/core/text/frmpaint.cxx
+++ b/sw/source/core/text/frmpaint.cxx
@@ -59,7 +59,6 @@
#include <redlnitr.hxx> // SwRedlineItr
#include <swmodule.hxx> // SW_MOD
#include <tabfrm.hxx> // SwTabFrm (Redlining)
-#include <scrrect.hxx>
#include <SwGrammarMarkUp.hxx>
// --> FME 2004-06-08 #i12836# enhanced pdf export
@@ -748,70 +747,3 @@ void SwTxtFrm::Paint( const SwRect &rRect, const SwPrtOptions * /*pPrintData*/ )
}
}
-void SwTxtFrm::CriticalLines( const OutputDevice& rOut, SwStripes &rStripes,
- long nOffs)
-{
- ASSERT( ! IsVertical() || ! IsSwapped(),
- "SwTxtFrm::CriticalLines with swapped frame" );
- SWRECTFN( this )
- long nFrmHeight;
-
- GetFormatted();
- if( HasPara() )
- {
- const long nTopMargin = (this->*fnRect->fnGetTopMargin)();
- SwStripe aStripe( (Frm().*fnRect->fnGetTop)(), nTopMargin );
- if ( nTopMargin )
- {
- rStripes.Insert( aStripe, rStripes.Count() );
- // OD 06.11.2002 #104171#,#103931# - consider vertical layout
- if ( bVert )
- aStripe.Y() -= nTopMargin;
- else
- // OD 06.11.2002 #104171#,#103931# - *add* top margin to Y.
- aStripe.Y() += nTopMargin;
- }
- SwLineLayout* pLay = GetPara();
- do
- {
- SwTwips nBase = aStripe.GetY() +
- ( bVert ? -pLay->GetAscent() : pLay->GetAscent() );
-
- long nLogToPixBase, nLogToPixSum, nLogToPixOffs;
-
- if ( bVert )
- {
- nLogToPixBase = rOut.LogicToPixel( Point( nBase, 0 ) ).X();
- nLogToPixSum = rOut.LogicToPixel( Point( nBase + nOffs, 0 ) ).X();
- nLogToPixOffs = -rOut.LogicToPixel( Size( nOffs, 0 ) ).Width();
- }
- else
- {
- nLogToPixBase = rOut.LogicToPixel( Point( 0, nBase ) ).Y();
- nLogToPixSum = rOut.LogicToPixel( Point( 0, nBase - nOffs ) ).Y();
- nLogToPixOffs = rOut.LogicToPixel( Size( 0, nOffs ) ).Height();
- }
-
- if( nLogToPixBase != nLogToPixSum + nLogToPixOffs )
- {
- aStripe.Height() = pLay->GetRealHeight();
- rStripes.Insert( aStripe, rStripes.Count() );
- }
- aStripe.Y() += ( bVert ? -pLay->GetRealHeight() :
- pLay->GetRealHeight() );
- pLay = pLay->GetNext();
- } while( pLay );
-
- const long nBottomMargin = (this->*fnRect->fnGetBottomMargin)();
- if( nBottomMargin )
- {
-
- aStripe.Height() = nBottomMargin;
- rStripes.Insert( aStripe, rStripes.Count() );
- }
- }
- else if( 0 != (nFrmHeight = (Frm().*fnRect->fnGetHeight)() ))
- rStripes.Insert( SwStripe( (Frm().*fnRect->fnGetTop)(), nFrmHeight ),
- rStripes.Count() );
-}
-
diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx
index 27cb99662171..16fbc589c16d 100644
--- a/sw/source/core/text/txtfrm.cxx
+++ b/sw/source/core/text/txtfrm.cxx
@@ -628,23 +628,34 @@ void SwTxtFrm::HideAndShowObjects()
*************************************************************************/
xub_StrLen SwTxtFrm::FindBrk( const XubString &rTxt,
- const xub_StrLen nStart, const xub_StrLen nEnd ) const
+ const xub_StrLen nStart,
+ const xub_StrLen nEnd ) const
{
- xub_StrLen nFound = nStart;
+ // --> OD 2009-12-28 #i104291# - applying patch to avoid overflow.
+ unsigned long nFound = nStart;
const xub_StrLen nEndLine = Min( nEnd, rTxt.Len() );
// Wir ueberlesen erst alle Blanks am Anfang der Zeile (vgl. Bug 2235).
- while( nFound <= nEndLine && ' ' == rTxt.GetChar( nFound ) )
- ++nFound;
+ while( nFound <= nEndLine &&
+ ' ' == rTxt.GetChar( static_cast<xub_StrLen>(nFound) ) )
+ {
+ nFound++;
+ }
// Eine knifflige Sache mit den TxtAttr-Dummy-Zeichen (hier "$"):
// "Dr.$Meyer" am Anfang der zweiten Zeile. Dahinter ein Blank eingegeben
// und das Wort rutscht nicht in die erste Zeile, obwohl es ginge.
// Aus diesem Grund nehmen wir das Dummy-Zeichen noch mit.
- while( nFound <= nEndLine && ' ' != rTxt.GetChar( nFound ) )
- ++nFound;
+ while( nFound <= nEndLine &&
+ ' ' != rTxt.GetChar( static_cast<xub_StrLen>(nFound) ) )
+ {
+ nFound++;
+ }
- return nFound;
+ return nFound <= STRING_LEN
+ ? static_cast<xub_StrLen>(nFound)
+ : STRING_LEN;
+ // <--
}
/*************************************************************************
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 74a928c75f21..7b08a0cb87e4 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -481,6 +481,7 @@ static sal_Char __READONLY_DATA sStandardString[] = "Dies ist der Teststring";
pScrFont = pPrtFont;
FontMetric aMet = pPrt->GetFontMetric( );
+
bSymbol = RTL_TEXTENCODING_SYMBOL == aMet.GetCharSet();
if ( USHRT_MAX == nGuessedLeading )
@@ -2417,21 +2418,18 @@ xub_StrLen SwFntObj::GetCrsrOfst( SwDrawTextInfo &rInf )
sal_uInt16 nItrMode = i18n::CharacterIteratorMode::SKIPCELL;
sal_Int32 nDone = 0;
LanguageType aLang = LANGUAGE_NONE;
- sal_Bool bSkipCell = sal_False;
+ bool bSkipCharacterCells = false;
xub_StrLen nIdx = rInf.GetIdx();
xub_StrLen nLastIdx = nIdx;
const xub_StrLen nEnd = rInf.GetIdx() + rInf.GetLen();
- // skip character cells for complex scripts
- // --> OD 2009-10-14 #i105571# - skip also character cells for CJK
- if ( rInf.GetFont() &&
- ( SW_CTL == rInf.GetFont()->GetActual() ||
- SW_CJK == rInf.GetFont()->GetActual() ) &&
- pBreakIt->GetBreakIter().is() )
+ // --> OD 2009-12-29 #i105901#
+ // skip character cells for all script types
+ if ( pBreakIt->GetBreakIter().is() )
// <--
{
aLang = rInf.GetFont()->GetLanguage();
- bSkipCell = sal_True;
+ bSkipCharacterCells = true;
}
while ( ( nRight < long( rInf.GetOfst() ) ) && ( nIdx < nEnd ) )
@@ -2442,7 +2440,7 @@ xub_StrLen SwFntObj::GetCrsrOfst( SwDrawTextInfo &rInf )
// go to next character (cell).
nLastIdx = nIdx;
- if ( bSkipCell )
+ if ( bSkipCharacterCells )
{
nIdx = (xub_StrLen)pBreakIt->GetBreakIter()->nextCharacters( rInf.GetText(),
nIdx, pBreakIt->GetLocale( aLang ), nItrMode, 1, nDone );
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 8f17e4ce0005..d6770321768f 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -2886,6 +2886,51 @@ BOOL SwTxtNode::GetFirstLineOfsWithNum( short& rFLOffset ) const
return bRet;
}
+// --> OD 2010-01-05 #b6884103#
+SwTwips SwTxtNode::GetAdditionalIndentForStartingNewList() const
+{
+ SwTwips nAdditionalIndent = 0;
+
+ const SwNumRule* pRule = GetNum() ? GetNum()->GetNumRule() : 0L;
+ if ( pRule )
+ {
+ const SwNumFmt& rFmt = pRule->Get(static_cast<USHORT>(GetActualListLevel()));
+ if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
+ {
+ nAdditionalIndent = GetSwAttrSet().GetLRSpace().GetLeft();
+
+ if (getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING))
+ {
+ nAdditionalIndent = nAdditionalIndent -
+ GetSwAttrSet().GetLRSpace().GetTxtFirstLineOfst();
+ }
+ }
+ else if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
+ {
+ if ( AreListLevelIndentsApplicable() )
+ {
+ nAdditionalIndent = rFmt.GetIndentAt() + rFmt.GetFirstLineIndent();
+ }
+ else
+ {
+ nAdditionalIndent = GetSwAttrSet().GetLRSpace().GetLeft();
+ if (getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING))
+ {
+ nAdditionalIndent = nAdditionalIndent -
+ GetSwAttrSet().GetLRSpace().GetTxtFirstLineOfst();
+ }
+ }
+ }
+ }
+ else
+ {
+ nAdditionalIndent = GetSwAttrSet().GetLRSpace().GetLeft();
+ }
+
+ return nAdditionalIndent;
+}
+// <--
+
// --> OD 2008-12-02 #i96772#
void SwTxtNode::ClearLRSpaceItemDueToListLevelIndents( SvxLRSpaceItem& o_rLRSpaceItem ) const
{
diff --git a/sw/source/core/unocore/unocrsrhelper.cxx b/sw/source/core/unocore/unocrsrhelper.cxx
index 3a40c25aecf8..b9fe5556744c 100644
--- a/sw/source/core/unocore/unocrsrhelper.cxx
+++ b/sw/source/core/unocore/unocrsrhelper.cxx
@@ -236,13 +236,11 @@ sal_Bool getCrsrPropertyValue(const SfxItemPropertySimpleEntry& rEntry
// <--
case FN_NUMBER_NEWSTART:
{
+ // a multi selection is not considered
const SwTxtNode* pTxtNd = rPam.GetNode()->GetTxtNode();
- // --> OD 2006-10-19 #134160# - make code robust:
- // consider case that PaM doesn't denote a text node
- const SwNumRule* pRule = pTxtNd ? pTxtNd->GetNumRule() : 0;
+ // --> OD 2010-01-13 #b6912256#
+ if ( pTxtNd && pTxtNd->IsInList() )
// <--
- // hier wird Multiselektion nicht beruecksichtigt
- if( pRule )
{
if( pAny )
{
diff --git a/sw/source/core/view/makefile.mk b/sw/source/core/view/makefile.mk
index aa010e6b6055..7a0f19c956ed 100644
--- a/sw/source/core/view/makefile.mk
+++ b/sw/source/core/view/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -40,7 +40,6 @@ ENABLE_EXCEPTIONS=TRUE
# --- Files --------------------------------------------------------
SLOFILES = \
- $(SLO)$/scrrect.obj \
$(SLO)$/vdraw.obj \
$(SLO)$/viewimp.obj \
$(SLO)$/viewsh.obj \
@@ -48,10 +47,10 @@ SLOFILES = \
$(SLO)$/vnew.obj \
$(SLO)$/vprint.obj \
$(SLO)$/pagepreviewlayout.obj
-
+
EXCEPTIONSFILES = \
$(SLO)$/pagepreviewlayout.obj
-
+
# --- Targets -------------------------------------------------------
diff --git a/sw/source/core/view/scrrect.cxx b/sw/source/core/view/scrrect.cxx
deleted file mode 100644
index 05baadde4946..000000000000
--- a/sw/source/core/view/scrrect.cxx
+++ /dev/null
@@ -1,1192 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sw.hxx"
-
-
-#include <viewimp.hxx>
-#include <viewsh.hxx>
-#include <viewopt.hxx>
-#include <vcl/window.hxx>
-#include <scrrect.hxx> // SwScrollRect, SwScrollRects
-// OD 18.02.2003 #107562# - <SwAlignRect> for <ViewShell::Scroll()>
-#include <frmtool.hxx>
-#ifndef _CURSOR_HXX //autogen
-#include <vcl/cursor.hxx>
-#endif
-#include <vcl/virdev.hxx>
-#ifndef _APP_HXX //autogen
-#include <vcl/svapp.hxx>
-#endif
-#include <txtfrm.hxx>
-#include "crsrsh.hxx"
-#include "rootfrm.hxx"
-#include "pagefrm.hxx"
-
-// OD 12.11.2002 #96272# - include declaration for <SetMappingForVirtDev>
-#include "setmapvirtdev.hxx"
-#include <IDocumentDrawModelAccess.hxx>
-
-// #i75172#
-#include "dview.hxx"
-
-DBG_NAME(RefreshTimer)
-
-SV_IMPL_VARARR(SwStripeArr,SwStripe);
-SV_IMPL_OP_PTRARR_SORT(SwScrollStripes, SwStripesPtr);
-SV_IMPL_OP_PTRARR_SORT(SScrAreas, SwScrollAreaPtr);
-
-/*****************************************************************************
-|*
-|* ViewShell::AddScrollRect()
-|*
-|* Creation MA 07. Mar. 94
-|* Last change AMA 20. July 00
-|*
-|* Description
-|* ViewShell::AddScrollRect(..) passes a registration from a scrolling frame or
-|* rectangle to all ViewShells and SwViewImps respectively.
-|*
-******************************************************************************/
-
-void ViewShell::AddScrollRect( const SwFrm *pFrm, const SwRect &rRect,
- long nOfs )
-{
- ASSERT( pFrm, "Where is my friend, the frame?" );
- BOOL bScrollOn = TRUE;
-
-#ifdef NOSCROLL
- //Auch im Product per speziellem Compilat abschaltbar.
- bScrollOn = FALSE;
-#endif
-
- if( bScrollOn && Imp()->IsScroll() && nOfs <= SHRT_MAX && nOfs >= SHRT_MIN )
- {
- ViewShell *pSh = this;
- do
- {
- pSh->Imp()->AddScrollRect( pFrm, rRect, nOfs );
- pSh = (ViewShell*)pSh->GetNext();
- } while ( pSh != this );
- }
- else
- AddPaintRect( rRect );
-}
-
-/******************************************************************************
-|*
-|* ViewShell::Scroll()
-|*
-|* Ersterstellung MA 07. Mar. 94
-|* Last change AMA 21. July 00
-|*
-|* Description
-|* ViewShell::Scroll() scrolls all rectangles in the pScrollRects-list and
-|* transfers the critical lines by calling SwViewImp::MoveScrollArea(..).
-|*
-******************************************************************************/
-#include <svx/sdrpaintwindow.hxx>
-#include <svx/sdr/overlay/overlaymanager.hxx>
-
-void ViewShell::Scroll()
-{
- SwScrollAreas *pScrollRects = Imp()->GetScrollRects();
- if ( pScrollRects )
- {
- bPaintWorks = FALSE;
- ASSERT( pScrollRects->Count(), "ScrollRects ohne ScrollRects." );
-
- //Abgleichen der Region mit den Scroll-Bereichen!!!
- //Wenn eines der Scroll-Rechtecke ungueltig wird, so muss
- //der PaintMode wahrscheinlich auf PAINT_BACKGROUND umgeschaltet
- //werden.
-
- //Auf die Richtung kommt es an:
- //- Bei einem pos. Ofst muss von hinten nach vorn gescrollt werden.
- //- Bei einem neg. Ofst muss von vorn nach hinten gescrollt werden.
- BOOL bPositive = (*pScrollRects)[0]->GetOffs() > 0;
- if( (*pScrollRects)[0]->IsVertical() )
- bPositive = !bPositive;
- int i = bPositive ? pScrollRects->Count()-1 : 0;
-
- for ( ; bPositive ?
- i >= 0 :
- i < (int)pScrollRects->Count();
- bPositive ?
- --i :
- ++i )
- {
- const SwScrollArea &rScroll = *(*pScrollRects)[ sal::static_int_cast<USHORT>(i) ];
- if( rScroll.Count() )
- {
- int j = bPositive ? rScroll.Count()-1 : 0;
- for ( ; bPositive ? j >= 0 : j < (int)rScroll.Count();
- bPositive ? --j : ++j )
- {
- const SwStripes& rStripes = *rScroll[ sal::static_int_cast<USHORT>(j) ];
- if( rScroll.IsVertical() )
- {
- Rectangle aRectangle( rStripes.GetY() -
- rStripes.GetHeight() + rScroll.GetOffs(),
- rStripes.GetMin(),
- rStripes.GetY() + rScroll.GetOffs(),
- rStripes.GetMax() );
- // OD 18.02.2003 #107562# - align rectangle for scrolling
- SwRect aAlignedScrollRect( aRectangle );
- ::SwAlignRect( aAlignedScrollRect, this );
-
- // #i68597# when scrolling, let DrawingLayer know about refreshed areas,
- // even when no DL objects are in the area. This is needed to allow
- // fully buffered overlay.
- const Rectangle aSourceRect(aAlignedScrollRect.SVRect());
- const Rectangle aTargetRect(
- aSourceRect.Left() - rScroll.GetOffs(), aSourceRect.Top(),
- aSourceRect.Right() - rScroll.GetOffs(), aSourceRect.Bottom());
-
- if(GetWin())
- {
- // SCROLL_NOWINDOWINVALIDATE okay since AddPaintRect below adds the to-be-invalidated region
- GetWin()->Scroll( -rScroll.GetOffs(), 0, aSourceRect, SCROLL_CHILDREN | SCROLL_NOWINDOWINVALIDATE );
- }
-
- // #i68597# if buffered overlay, the buffered content needs to be scrolled directly
- {
- SdrPaintWindow* pPaintWindow = GetDrawView()->GetPaintWindow(0);
-
- if(pPaintWindow)
- {
- sdr::overlay::OverlayManager* pOverlayManager = pPaintWindow->GetOverlayManager();
-
- if(pOverlayManager)
- {
- pOverlayManager->copyArea(aTargetRect.TopLeft(), aSourceRect.TopLeft(), aSourceRect.GetSize());
- }
- }
- }
-
- SwRect aRect( aRectangle );
- Imp()->ScrolledRect( aRect, -rScroll.GetOffs() );
- if ( bPositive )
- aRect.Right( aRect.Left() + rScroll.GetOffs()-1 );
- else
- aRect.Left( aRect.Right() - rScroll.GetOffs() );
- Imp()->AddPaintRect( aRect );
- }
- else
- {
- Rectangle aRectangle( rStripes.GetMin(),
- rStripes.GetY() - rScroll.GetOffs(),
- rStripes.GetRight(),
- rStripes.GetBottom() - rScroll.GetOffs() );
- // OD 18.02.2003 #107562# - use aligned rectangle for scrolling
- SwRect aAlignedScrollRect( aRectangle );
- ::SwAlignRect( aAlignedScrollRect, this );
-
- // #i68597# when scrolling, let DrawingLayer know about refreshed areas,
- // even when no DL objects are in the area. This is needed to allow
- // fully buffered overlay.
- const Rectangle aSourceRect(aAlignedScrollRect.SVRect());
- const Rectangle aTargetRect(
- aSourceRect.Left(), aSourceRect.Top() + rScroll.GetOffs(),
- aSourceRect.Right(), aSourceRect.Bottom() + rScroll.GetOffs());
-
- if(GetWin())
- {
- // SCROLL_NOWINDOWINVALIDATE okay since AddPaintRect below adds the to-be-invalidated region
- GetWin()->Scroll( 0, rScroll.GetOffs(), aSourceRect, SCROLL_CHILDREN | SCROLL_NOWINDOWINVALIDATE );
- }
-
- // #i68597# if buffered overlay, the buffered content needs to be scrolled directly
- {
- SdrPaintWindow* pPaintWindow = GetDrawView()->GetPaintWindow(0);
-
- if(pPaintWindow)
- {
- sdr::overlay::OverlayManager* pOverlayManager = pPaintWindow->GetOverlayManager();
-
- if(pOverlayManager)
- {
- pOverlayManager->copyArea(aTargetRect.TopLeft(), aSourceRect.TopLeft(), aSourceRect.GetSize());
- }
- }
- }
-
- SwRect aRect( aRectangle );
- Imp()->ScrolledRect( aRect, rScroll.GetOffs() );
- if ( bPositive )
- aRect.Bottom( aRect.Top() + rScroll.GetOffs()-1 );
- else
- aRect.Top( aRect.Bottom() + rScroll.GetOffs() );
- Imp()->AddPaintRect( aRect );
- }
- }
- }
- }
- if ( !Imp()->IsScrolled() )
- Imp()->SetScrolled();
-
- Imp()->MoveScrollArea();
- bPaintWorks = TRUE;
- }
-}
-
-/******************************************************************************
-|*
-|* ViewShell::SetNoNextScroll()
-|*
-|* Ersterstellung MA 08. Mar. 94
-|* Letzte Aenderung MA 08. Mar. 94
-|*
-******************************************************************************/
-
-void ViewShell::SetNoNextScroll()
-{
- ViewShell *pSh = this;
- do
- { pSh->Imp()->ResetNextScroll();
- pSh = (ViewShell*)pSh->GetNext();
-
- } while ( pSh != this );
-}
-
-/******************************************************************************
-|*
-|* SwViewImp::AddScrollRect()
-|*
-|* Ersterstellung MA 07. Mar. 94
-|* Last change AMA 21. July 00
-|*
-|* Adds a scrollable rectangle and his critical lines to the list.
-|*
-******************************************************************************/
-
-void SwViewImp::AddScrollRect( const SwFrm *pFrm, const SwRect &rRect,
- long nOffs )
-{
- ASSERT( nOffs != 0, "Scrollen ohne Ofst." );
- SwRect aRect( rRect );
- BOOL bVert = pFrm->IsVertical();
- if( bVert )
- aRect.Pos().X() += nOffs;
- else
- aRect.Pos().Y() -= nOffs;
- if( aRect.IsOver( pSh->VisArea() ) )
- {
- ASSERT( pSh->GetWin(), "Scrolling without outputdevice" );
- aRect._Intersection( pSh->VisArea() );
- SwStripes *pStr;
- if ( !pScrollRects )
- pScrollRects = new SwScrollAreas;
- if( bVert )
- {
- aRect.Pos().X() -= nOffs;
- pStr = new SwStripes( aRect.Right(), aRect.Width(),
- aRect.Top(), aRect.Bottom() );
- if( pFrm->IsTxtFrm() )
- ((SwTxtFrm*)pFrm)->CriticalLines(*pSh->GetWin(), *pStr, nOffs );
- else
- pStr->Insert( SwStripe( aRect.Right(), aRect.Width() ), 0 );
- pScrollRects->InsertCol( SwScrollColumn( pFrm->Frm().Top(),
- pFrm->Frm().Height(), nOffs, bVert ), pStr);
- }
- else
- {
- aRect.Pos().Y() += nOffs;
- pStr = new SwStripes( aRect.Top(), aRect.Height(),
- aRect.Left(), aRect.Right() );
- if( pFrm->IsTxtFrm() )
- ((SwTxtFrm*)pFrm)->CriticalLines(*pSh->GetWin(), *pStr, nOffs );
- else
- pStr->Insert( SwStripe( aRect.Top(), aRect.Height() ), 0 );
- pScrollRects->InsertCol( SwScrollColumn( pFrm->Frm().Left(),
- pFrm->Frm().Width(), nOffs, bVert ), pStr );
- }
- }
- else
- AddPaintRect( rRect );
-}
-
-/******************************************************************************
-|*
-|* SwViewImp::MoveScrollArea()
-|*
-|* Creation AMA 10. July 00
-|* Last change AMA 21. July 00
-|*
-|* Transfers the areas after scrolling to the scrolled list, but only those
-|* parts with critical lines.
-|*
-******************************************************************************/
-
-void SwViewImp::MoveScrollArea()
-{
- if( !pScrolledArea )
- pScrolledArea = new SwScrollAreas;
- for( USHORT nIdx = 0; nIdx < pScrollRects->Count(); ++nIdx )
- {
- SwScrollArea *pScr = (*pScrollRects)[ nIdx ];
- if( pScr->Compress() )
- delete pScr;
- else
- {
- USHORT nIndx;
- if( pScrolledArea->Seek_Entry( pScr, &nIndx ) )
- pScrolledArea->GetObject(nIndx)->Add( pScr );
- else
- pScrolledArea->Insert( pScr );
- }
- }
- delete pScrollRects;
- pScrollRects = NULL;
-}
-
-/******************************************************************************
-|*
-|* SwViewImp::FlushScrolledArea()
-|*
-|* Creation AMA 10. July 00
-|* Last change AMA 21. July 00
-|*
-|* Flushes the scrolled critical lines, that is transfer them to AddPaintRect()
-|* and remove them from the list.
-|*
-******************************************************************************/
-
-void SwViewImp::FlushScrolledArea()
-{
- USHORT nCount = pScrolledArea->Count();
- while( nCount )
- {
- SwScrollArea* pScroll = (*pScrolledArea)[--nCount];
- USHORT nCnt = pScroll->Count();
- while( nCnt )
- {
- SwStripes* pStripes = (*pScroll)[--nCnt];
- if( pScroll->IsVertical() )
- {
- SwRect aRect( 0, pStripes->GetMin(), 0, pStripes->GetWidth() );
- for( USHORT i = 0; i < pStripes->Count(); ++i )
- {
- long nWidth = (*pStripes)[i].GetHeight();
- aRect.Left( (*pStripes)[i].GetY() - nWidth + 1 );
- aRect.Width( nWidth );
- AddPaintRect( aRect );
- }
- }
- {
- SwRect aRect( pStripes->GetMin(), 0, pStripes->GetWidth(), 0 );
- for( USHORT i = 0; i < pStripes->Count(); ++i )
- {
- aRect.Top( (*pStripes)[i].GetY() );
- aRect.Height( (*pStripes)[i].GetHeight() );
- AddPaintRect( aRect );
- }
- }
- pScroll->Remove( nCnt );
- delete pStripes;
- }
- pScrolledArea->Remove( nCount );
- delete pScroll;
- }
- delete pScrolledArea;
- pScrolledArea = NULL;
-}
-
-/******************************************************************************
-|*
-|* SwViewImp::_FlushScrolledArea(..)
-|*
-|* Creation AMA 10. July 00
-|* Last change AMA 21. July 00
-|*
-|* The critical lines, which overlaps with the given rectangle, will be united
-|* with the rectangle and removed from the list.
-|*
-******************************************************************************/
-
-BOOL SwViewImp::_FlushScrolledArea( SwRect& rRect )
-{
- BOOL bRet = FALSE;
- for( USHORT i = pScrolledArea->Count(); i; )
- {
- SwScrollArea* pScroll = (*pScrolledArea)[--i];
- for( USHORT j = pScroll->Count(); j; )
- {
- SwStripes* pStripes = (*pScroll)[--j];
- if( pStripes->Count() )
- {
- if( pScroll->IsVertical() )
- {
- SwRect aRect( pStripes->GetY() - pStripes->GetHeight(),
- pStripes->GetMin(), pStripes->GetHeight(),
- pStripes->GetWidth() );
- if( rRect.IsOver( aRect ) )
- {
- for( USHORT nI = pStripes->Count(); nI; )
- {
- long nWidth = (*pStripes)[--nI].GetHeight();
- aRect.Left( (*pStripes)[nI].GetY() - nWidth + 1 );
- aRect.Width( nWidth );
- if( rRect.IsOver( aRect ) )
- {
- rRect.Union( aRect );
- bRet = TRUE;
- pStripes->Remove( nI );
- nI = pStripes->Count();
- }
- }
- }
- }
- else
- {
- SwRect aRect( pStripes->GetMin(), pStripes->GetY(),
- pStripes->GetWidth(), pStripes->GetHeight() );
- if( rRect.IsOver( aRect ) )
- {
- for( USHORT nI = pStripes->Count(); nI; )
- {
- aRect.Top( (*pStripes)[--nI].GetY() );
- aRect.Height( (*pStripes)[nI].GetHeight() );
- if( rRect.IsOver( aRect ) )
- {
- rRect.Union( aRect );
- bRet = TRUE;
- pStripes->Remove( nI );
- nI = pStripes->Count();
- }
- }
- }
- }
- }
- if( !pStripes->Count() )
- {
- pScroll->Remove( j );
- delete pStripes;
- }
- }
- if( !pScroll->Count() )
- {
- pScrolledArea->Remove( pScroll );
- delete pScroll;
- }
- }
- if( !pScrolledArea->Count() )
- {
- DELETEZ( pScrolledArea );
- SetNextScroll();
- }
- return bRet;
-}
-
-/******************************************************************************
-|*
-|* SwViewImp::RefreshScrolledHdl(..)
-|*
-|* Creation MA 06. Oct. 94
-|* Last change AMA 21. July 00
-|*
-|* Every timerstop one of the critical lines will be painted.
-|*
-******************************************************************************/
-
-IMPL_LINK( SwViewImp, RefreshScrolledHdl, Timer *, EMPTYARG )
-{
- DBG_PROFSTART( RefreshTimer );
-
- if ( !IsScrolled() )
- { DBG_PROFSTOP( RefreshTimer );
- return 0;
- }
-
- SET_CURR_SHELL( GetShell() );
-
- //Kein Refresh wenn eine Selektion besteht.
- if ( GetShell()->IsA( TYPE(SwCrsrShell) ) &&
- (((SwCrsrShell*)GetShell())->HasSelection() ||
- ((SwCrsrShell*)GetShell())->GetCrsrCnt() > 1))
- {
- DBG_PROFSTOP( RefreshTimer );
- return 0;
- }
-
- if( pScrolledArea )
- {
- const SwRect aRect( GetShell()->VisArea() );
- BOOL bNoRefresh = GetShell()->IsA( TYPE(SwCrsrShell) ) &&
- ( ((SwCrsrShell*)GetShell())->HasSelection() ||
- ((SwCrsrShell*)GetShell())->GetCrsrCnt() > 1 );
- if( pScrolledArea->Count() )
- {
- SwScrollArea* pScroll = pScrolledArea->GetObject(0);
- ASSERT( pScroll->Count(), "Empty scrollarea" );
- // OD 21.10.2003 #112616# - for savety reason:
- // react, if precondition named in assertion isn't hold
- if ( pScroll->Count() )
- {
- SwStripes* pStripes = pScroll->GetObject(0);
- // OD 20.10.2003 #112616# - consider also first stripe
- ASSERT( pStripes->Count(), "Empty scrollstripes" );
- // OD 21.10.2003 #112616# - for savety reason:
- // react, if precondition named in assertion isn't hold
- if ( pStripes->Count() )
- {
- const SwStripe &rStripe = pStripes->GetObject(0);
- SwRect aTmpRect = pScroll->IsVertical() ?
- SwRect( rStripe.GetY() - rStripe.GetHeight(), pScroll->GetX(),
- rStripe.GetHeight(), pScroll->GetWidth() ) :
- SwRect( pScroll->GetX(), rStripe.GetY(),
- pScroll->GetWidth(), rStripe.GetHeight() );
- if( aTmpRect.IsOver( aRect ) )
- {
- // SwSaveHdl aSaveHdl( this );
- if( !bNoRefresh )
- _RefreshScrolledArea( aTmpRect );
- }
- // OD 20.10.2003 #112616# - consider also first stripe
- pStripes->Remove( 0 );
- }
- if( pStripes->Count() < 1 )
- {
- pScroll->Remove( USHORT(0) );
- delete pStripes;
- }
- }
- if( !pScroll->Count() )
- {
- pScrolledArea->Remove( pScroll );
- delete pScroll;
- }
- }
- if( !pScrolledArea->Count() )
- {
- delete pScrolledArea;
- pScrolledArea = 0;
- }
- }
-
- //All done?
- if( !pScrolledArea || !pScrolledArea->Count()
- )
- {
- ResetScrolled();
- SetNextScroll();
- aScrollTimer.Stop();
- }
-
- DBG_PROFSTOP( RefreshTimer );
- return 0;
-}
-
-/******************************************************************************
-|*
-|* SwViewImp::_ScrolledRect(..)
-|*
-|* Creation AMA 20. July 00
-|* Last change AMA 21. July 00
-|*
-|* handles the problem of scrolled criticals lines, when they are a part of
-|* a scrolling area again. In this case, their rectangle has to move to the
-|* right position.
-|*
-******************************************************************************/
-
-void SwViewImp::_ScrolledRect( const SwRect& rRect, long nOffs )
-{
- for( USHORT i = pScrolledArea->Count(); i; )
- {
- SwScrollArea* pScroll = (*pScrolledArea)[--i];
- ASSERT( pScroll->Count() == 1, "Missing scrollarea compression 1" );
- SwStripes* pStripes = (*pScroll)[0];
- if( pStripes->Count() )
- {
- SwRect aRect = pScroll->IsVertical() ?
- SwRect( pStripes->GetY() - pStripes->GetHeight(),
- pStripes->GetMin(), pStripes->GetHeight(),
- pStripes->GetWidth() ) :
- SwRect( pStripes->GetMin(), pStripes->GetY(),
- pStripes->GetWidth(), pStripes->GetHeight() );
-
- if( rRect.IsOver( aRect ) )
- {
- BOOL bRecalc = FALSE;
- for( USHORT nI = pStripes->Count(); nI; )
- {
- if( pScroll->IsVertical() )
- {
- long nWidth = (*pStripes)[--nI].GetHeight();
- aRect.Left( (*pStripes)[nI].GetY() - nWidth + 1 );
- aRect.Width( nWidth );
- }
- else
- {
- aRect.Top( (*pStripes)[--nI].GetY() );
- aRect.Height( (*pStripes)[nI].GetHeight() );
- }
- if( rRect.IsInside( aRect ) )
- {
- (*pStripes)[nI].Y() += nOffs;
- bRecalc = TRUE;
- }
- }
- if( bRecalc )
- pStripes->Recalc( pScroll->IsVertical() );
- }
- }
- }
-}
-
-/******************************************************************************
-|*
-|* SwViewImp::_RefreshScrolledArea()
-|*
-******************************************************************************/
-
-//Berechnen der Hoehe fuer das virtuelle Device, Breite und maximaler
-//Speicherbedarf sind vorgegeben.
-#define MAXKB 180L
-
-static void lcl_CalcVirtHeight( OutputDevice *pOut, Size &rSz )
-{
- char nBytes;
- const ULONG nColorCount = pOut->GetColorCount();
- if( 256 >= nColorCount ) // 2^8
- nBytes = 1;
- else
- if( USHRT_MAX >= nColorCount ) // 2^16
- nBytes = 2;
- else
- if( 16777216 >= nColorCount ) // 2^24
- nBytes = 3;
- else
- nBytes = 4; // 2^n
-
- rSz = pOut->LogicToPixel( rSz );
-
- long nKB = MAXKB * 1000;
- nKB /= nBytes;
- if ( rSz.Width() > 0 )
- rSz.Height() = nKB / rSz.Width();
- else
- rSz.Height() = nKB;
-
- rSz = pOut->PixelToLogic( rSz );
-}
-
-void SwViewImp::_RefreshScrolledArea( const SwRect &rRect )
-{
- SwRect aScRect( rRect );
- aScRect.Intersection( GetShell()->VisArea() );
-
- if( aScRect.IsEmpty() )
- return;
-
- BOOL bShowCrsr = FALSE;
- Window *pWin = GetShell()->GetWin();
- if ( pWin && pWin->GetCursor() && pWin->GetCursor()->IsVisible() )
- {
- bShowCrsr = TRUE;
- pWin->GetCursor()->Hide();
- }
-
- //Virtuelles Device erzeugen und einstellen.
- // --> OD 2007-08-16 #i80720#
- // rename variable <pOld> to <pCurrentOut>
- OutputDevice* pCurrentOut = GetShell()->GetOut();
- VirtualDevice *pVout = new VirtualDevice( *pCurrentOut );
- MapMode aMapMode( pCurrentOut->GetMapMode() );
- pVout->SetMapMode( aMapMode );
- Size aSize( aScRect.Width(), 0 );
- lcl_CalcVirtHeight( pCurrentOut, aSize );
- if ( aSize.Height() > aScRect.Height() )
- aSize.Height() = aScRect.Height() + 50;
-
- //unten in der Schleife lassen wir die Rechtecke ein wenig ueberlappen,
- //das muss auch bei der Groesse beruecksichtigt werden.
- aSize = pCurrentOut->LogicToPixel( aSize );
- aSize.Width() += 4; aSize.Height() += 4;
- aSize = pCurrentOut->PixelToLogic( aSize );
- // <--
-
- const SwRootFrm* pLayout = GetShell()->GetLayout();
-
- // #i75172# Avoid VDev if PreRendering is active
- static bool bDoNotUseVDev(GetDrawView()->IsBufferedOutputAllowed());
-
- // --> OD 2007-08-16 #i80720#
- // Enlarge paint rectangle also in case that "own" virtual device <pVout>
- // isn't used. Refactor code a little bit to achieve this.
- const bool bApplyVDev = !bDoNotUseVDev && pVout->SetOutputSize( aSize );
-
- {
- if ( bApplyVDev )
- {
- // --> OD 2007-08-16 #i80720#
- // rename variable <pOld> to <pCurrentOut>
- pVout->SetLineColor( pCurrentOut->GetLineColor() );
- pVout->SetFillColor( pCurrentOut->GetFillColor() );
- // <--
- }
-
- // #i72754# start Pre/PostPaint encapsulation before pOut is changed to the buffering VDev
- const Region aRepaintRegion(aScRect.SVRect());
- GetShell()->DLPrePaint2(aRepaintRegion);
-
- //Virtuelles Device in die ViewShell 'selektieren'
- // --> OD 2007-08-16 #i80720#
- // remember current output device at this place
- OutputDevice* pOldOut = GetShell()->GetOut();
- // <--
- if ( bApplyVDev )
- {
- GetShell()->pOut = pVout;
- }
-
- const SwFrm *pPg = GetFirstVisPage();
- do
- {
- SwRect aRect( pPg->Frm() );
- if ( aRect.IsOver( aScRect ) )
- {
- aRect._Intersection( aScRect );
- do
- {
- Rectangle aTmp( aRect.SVRect() );
- long nTmp = aTmp.Top() + aSize.Height();
- if ( aTmp.Bottom() > nTmp )
- aTmp.Bottom() = nTmp;
-
- aTmp = pOldOut->LogicToPixel( aTmp );
- if( aRect.Top() > pPg->Frm().Top() )
- aTmp.Top() -= 2;
- if( aRect.Top() + aRect.Height() < pPg->Frm().Top()
- + pPg->Frm().Height() )
- aTmp.Bottom() += 2;
- if( aRect.Left() > pPg->Frm().Left() )
- aTmp.Left() -= 2;
- if( aRect.Left() + aRect.Width() < pPg->Frm().Left()
- + pPg->Frm().Width() )
- aTmp.Right() += 2;
- aTmp = pOldOut->PixelToLogic( aTmp );
- SwRect aTmp2( aTmp );
-
- if ( bApplyVDev )
- {
- // OD 12.11.2002 #96272# - use method to set mapping
- //Point aOrigin( aTmp2.Pos() );
- //aOrigin.X() = -aOrigin.X(); aOrigin.Y() = -aOrigin.Y();
- //aMapMode.SetOrigin( aOrigin );
- ::SetMappingForVirtDev( aTmp2.Pos(), &aMapMode, pOldOut, pVout );
- pVout->SetMapMode( aMapMode );
- }
-
- pLayout->Paint( aTmp2 );
- if ( bApplyVDev )
- {
- pOldOut->DrawOutDev( aTmp2.Pos(), aTmp2.SSize(),
- aTmp2.Pos(), aTmp2.SSize(), *pVout );
- }
-
- aRect.Top( aRect.Top() + aSize.Height() );
- aScRect.Top( aRect.Top() );
-
- } while ( aRect.Height() > 0 );
- }
- pPg = pPg->GetNext();
-
- } while ( pPg && pPg->Frm().IsOver( GetShell()->VisArea() ) );
-
- if ( bApplyVDev )
- {
- GetShell()->pOut = pOldOut;
- }
- delete pVout;
-
- // #i72754# end Pre/PostPaint encapsulation when pOut is back and content is painted
- GetShell()->DLPostPaint2(true);
- }
- // <--
-
- if ( bShowCrsr )
- pWin->GetCursor()->Show();
-}
-
-/******************************************************************************
-|*
-|* SwViewImp::RefreshScrolledArea()
-|*
-|* Ersterstellung MA 06. Oct. 94
-|* Letzte Aenderung MA 19. Apr. 95
-|*
-******************************************************************************/
-
-void SwViewImp::RefreshScrolledArea( SwRect &rRect )
-{
- // --> OD 2007-07-24 #123003# - make code robust
- // avoid recursive call
- static bool bRunning( false );
-
- if ( bRunning )
- {
- ASSERT( false, "<SwViewImp::RefreshScrolledArea(..)> - recursive method call - please inform OD" );
- return;
- }
- // <--
-
- //1. Wird auch von der CrsrShell gerufen, um ggf. den Bereich, in den der
- //Crsr gesetzt wird (Absatz, ganze Zeile bei einer Tabelle) aufzufrischen.
- //Allerdings kann es dann natuerlich sein, dass das Rechteck ueberhaupt
- //nicht mit aufzufrischenden Bereichen ueberlappt.
- //2. Kein Refresh wenn eine Selektion besteht.
- if( (GetShell()->IsA( TYPE(SwCrsrShell) ) &&
- (((SwCrsrShell*)GetShell())->HasSelection() ||
- ((SwCrsrShell*)GetShell())->GetCrsrCnt() > 1)))
- {
- return;
- }
-
- // --> OD 2007-07-27 #123003#
- bRunning = true;
- // <--
-
- if( pScrolledArea && pScrolledArea->Count() &&
- !( ( GetShell()->IsA( TYPE(SwCrsrShell) ) &&
- ( ((SwCrsrShell*)GetShell())->HasSelection() ||
- ((SwCrsrShell*)GetShell())->GetCrsrCnt() > 1) ) ) )
- {
- for( USHORT i = pScrolledArea->Count(); i; )
- {
- SwScrollArea* pScroll = (*pScrolledArea)[--i];
- for( USHORT j = pScroll->Count(); j; )
- {
- SwStripes* pStripes = (*pScroll)[--j];
- if( pStripes->Count() )
- {
- SwRect aRect = pScroll->IsVertical() ?
- SwRect( pStripes->GetY() - pStripes->GetHeight(),
- pStripes->GetMin(), pStripes->GetHeight(),
- pStripes->GetWidth() ) :
- SwRect( pStripes->GetMin(), pStripes->GetY(),
- pStripes->GetWidth(), pStripes->GetHeight() );
- if( rRect.IsOver( aRect ) )
- {
- for( USHORT nI = pStripes->Count(); nI; )
- {
- if( pScroll->IsVertical() )
- {
- long nWidth = (*pStripes)[--nI].GetHeight();
- aRect.Left( (*pStripes)[nI].GetY() -nWidth +1 );
- aRect.Width( nWidth );
- }
- else
- {
- aRect.Top( (*pStripes)[--nI].GetY() );
- aRect.Height( (*pStripes)[nI].GetHeight() );
- }
- if( rRect.IsOver( aRect ) )
- {
- pStripes->Remove( nI );
- _RefreshScrolledArea( aRect );
- }
- }
- }
- }
- if( !pStripes->Count() )
- {
- pScroll->Remove( j );
- delete pStripes;
- }
- }
- if( !pScroll->Count() )
- {
- pScrolledArea->Remove( pScroll );
- delete pScroll;
- }
- //Ist da jemand ungeduldig?
- //Nur Mouse und Keyboard, weil wir sonst von jeder billigen
- //Uhr unterbrochen werden.
- if( GetpApp()->AnyInput( INPUT_MOUSEANDKEYBOARD ) )
- break;
- }
- }
-
- //All done?
- if( !pScrolledArea || !pScrolledArea->Count() )
- {
- ResetScrolled();
- SetNextScroll();
- aScrollTimer.Stop();
- }
-
- // --> OD 2007-07-24 #123003#
- bRunning = false;
- // <--
-}
-
-SwStripes& SwStripes::Plus( const SwStripes& rOther, BOOL bVert )
-{
- if( !Count() )
- {
- Insert( &rOther, 0 );
- SetMin( rOther.GetMin() );
- SetMax( rOther.GetMax() );
- return *this;
- }
-
- long nCnt = rOther.Count();
- if( nCnt )
- {
- ChkMin( rOther.GetMin() );
- ChkMax( rOther.GetMax() );
- USHORT nStart = 0;
- if( bVert )
- for( USHORT nIdx = 0; nIdx < nCnt; ++nIdx )
- {
- const SwStripe& rAdd = rOther[ nIdx ];
- long nBottom = rAdd.GetY() - rAdd.GetHeight();
- USHORT nCount = Count();
- USHORT nTmpY = nStart;
- while( nTmpY < nCount )
- {
- SwStripe& rChk = GetObject( nTmpY );
- if( rChk.GetY() - rChk.GetHeight() < rAdd.GetY() )
- break;
- else
- ++nTmpY;
- }
- USHORT nB = nTmpY;
- while( nB < nCount )
- {
- const SwStripe& rChk = GetObject( nB );
- if( rChk.GetY() <= nBottom )
- break;
- else
- ++nB;
- }
- nStart = nTmpY;
- if( nTmpY == nB )
- Insert( rAdd, nTmpY );
- else
- {
- long nChkBottom = rAdd.GetY() - rAdd.GetHeight();;
- const SwStripe& rChkB = GetObject( nB - 1 );
- long nTmp = rChkB.GetY() - rChkB.GetHeight();
- if( nTmp < nChkBottom )
- nChkBottom = nTmp;
- SwStripe& rChk = GetObject( nTmpY );
- if( rAdd.GetY() > rChk.GetY() )
- rChk.Y() = rAdd.GetY();
- rChk.Height() = rChk.GetY() - nChkBottom;
- nChkBottom = nB - nTmpY - 1;
- if( nChkBottom )
- Remove( nTmpY + 1, (USHORT)nChkBottom );
- }
- }
- else
- {
- for( USHORT nIdx = 0; nIdx < nCnt; ++nIdx )
- {
- const SwStripe& rAdd = rOther[ nIdx ];
- long nBottom = rAdd.GetY() + rAdd.GetHeight();
- USHORT nCount = Count();
- USHORT nTmpY = nStart;
- while( nTmpY < nCount )
- {
- SwStripe& rChk = GetObject( nTmpY );
- if( rChk.GetY() + rChk.GetHeight() > rAdd.GetY() )
- break;
- else
- ++nTmpY;
- }
- USHORT nB = nTmpY;
- while( nB < nCount )
- {
- const SwStripe& rChk = GetObject( nB );
- if( rChk.GetY() >= nBottom )
- break;
- else
- ++nB;
- }
- nStart = nTmpY;
- if( nTmpY == nB )
- Insert( rAdd, nTmpY );
- else
- {
- long nChkBottom = rAdd.GetY() + rAdd.GetHeight();;
- const SwStripe& rChkB = GetObject( nB - 1 );
- long nTmp = rChkB.GetY() + rChkB.GetHeight();
- if( nTmp > nChkBottom )
- nChkBottom = nTmp;
- SwStripe& rChk = GetObject( nTmpY );
- if( rAdd.GetY() < rChk.GetY() )
- rChk.Y() = rAdd.GetY();
- rChk.Height() = nChkBottom - rChk.GetY();
- nChkBottom = nB - nTmpY - 1;
- if( nChkBottom )
- Remove( nTmpY + 1, (USHORT)nChkBottom );
- }
- }
- }
- }
- return *this;
-}
-
-BOOL SwStripes::Recalc( BOOL bVert )
-{
- if( !Count() )
- return TRUE;
- Y() = GetObject(0).GetY();
- if( bVert )
- {
- long nTmpMin = GetObject(0).GetY() - GetObject(0).Height();
- for( USHORT nIdx = 1; nIdx < Count(); )
- {
- const SwStripe& rStr = GetObject(nIdx++);
- if( GetY() < rStr.GetY() )
- Y() = rStr.GetY();
- if( nTmpMin > rStr.GetY() - rStr.GetHeight() )
- nTmpMin = rStr.GetY() - rStr.GetHeight();
- }
- Height() = GetY() - nTmpMin;
- }
- else
- {
- long nTmpMax = GetObject(0).GetY() + GetObject(0).Height();
- for( USHORT nIdx = 1; nIdx < Count(); )
- {
- const SwStripe& rStr = GetObject(nIdx++);
- if( GetY() > rStr.GetY() )
- Y() = rStr.GetY();
- if( nTmpMax < rStr.GetY() + rStr.GetHeight() )
- nTmpMax = rStr.GetY() + rStr.GetHeight();
- }
- Height() = nTmpMax - GetY();
- }
- return FALSE;
-}
-
-BOOL SwScrollArea::Compress()
-{
- if( !Count() )
- return TRUE;
- for( USHORT nIdx = Count() - 1; nIdx > 0; --nIdx )
- {
- GetObject(0)->Plus( *GetObject(nIdx), IsVertical() );
- delete GetObject( nIdx );
- Remove( nIdx, 1 );
- }
- ClrOffs();
- return GetObject(0)->Recalc( IsVertical() );
-}
-
-void SwScrollArea::Add( SwScrollArea *pScroll )
-{
- ASSERT( pScroll->Count() == 1, "Missing scrollarea compression 2" );
- ASSERT( Count() == 1, "Missing scrollarea compression 3" );
- GetObject(0)->Plus( *pScroll->GetObject(0), IsVertical() );
- GetObject(0)->Recalc( IsVertical() );
- delete pScroll->GetObject( 0 );
- pScroll->Remove( (USHORT)0, 1 );
- delete pScroll;
-}
-
-/******************************************************************************
-|*
-|* SwScrollAreas::Insert(..)
-|*
-******************************************************************************/
-
-void SwScrollAreas::InsertCol( const SwScrollColumn &rCol,
- SwStripes *pStripes )
-{
- SwScrollArea *pTmp = new SwScrollArea( rCol, pStripes );
- USHORT nIdx;
- if( Seek_Entry( pTmp, &nIdx ) )
- {
- GetObject( nIdx )->SmartInsert( pStripes );
- delete pTmp;
- }
- else
- Insert( pTmp );
-}
-
-
-void SwScrollArea::SmartInsert( SwStripes* pStripes )
-{
- ASSERT( pStripes, "Insert empty scrollstripe?" );
- BOOL bNotInserted = TRUE;
- if( IsVertical() )
- for( USHORT nIdx = 0; nIdx < Count() && bNotInserted; )
- {
- SwStripes* pTmp = GetObject( nIdx++ );
- if( pTmp->GetY() - pTmp->GetHeight() == pStripes->GetY() )
- {
- pTmp->Height() += pStripes->GetHeight();
- pTmp->ChkMin( pStripes->GetMin() );
- pTmp->ChkMax( pStripes->GetMax() );
- if( pStripes->Count() )
- pTmp->Insert( (SwStripeArr*)pStripes, pTmp->Count(), 0 );
- bNotInserted = FALSE;
- }
- else if( pTmp->GetY() == pStripes->GetY() - pStripes->GetHeight() )
- {
- pTmp->Height() += pStripes->GetHeight();
- pTmp->Y() = pStripes->GetY();
- pTmp->ChkMin( pStripes->GetMin() );
- pTmp->ChkMax( pStripes->GetMax() );
- if( pStripes->Count() )
- pTmp->Insert( (SwStripeArr*)pStripes, 0, 0 );
- bNotInserted = FALSE;
- }
- }
- else
- for( USHORT nIdx = 0; nIdx < Count() && bNotInserted; )
- {
- SwStripes* pTmp = GetObject( nIdx++ );
- if( pTmp->GetY() + pTmp->GetHeight() == pStripes->GetY() )
- {
- pTmp->Height() += pStripes->GetHeight();
- pTmp->ChkMin( pStripes->GetMin() );
- pTmp->ChkMax( pStripes->GetMax() );
- if( pStripes->Count() )
- pTmp->Insert( (SwStripeArr*)pStripes, pTmp->Count(), 0 );
- bNotInserted = FALSE;
- }
- else if( pTmp->GetY() == pStripes->GetY() + pStripes->GetHeight() )
- {
- pTmp->Height() += pStripes->GetHeight();
- pTmp->Y() = pStripes->GetY();
- pTmp->ChkMin( pStripes->GetMin() );
- pTmp->ChkMax( pStripes->GetMax() );
- if( pStripes->Count() )
- pTmp->Insert( (SwStripeArr*)pStripes, 0, 0 );
- bNotInserted = FALSE;
- }
- }
- if( !bNotInserted || !Insert( pStripes ) )
- delete pStripes;
-}
diff --git a/sw/source/core/view/viewimp.cxx b/sw/source/core/view/viewimp.cxx
index c6cebdb27ba2..04bc229627a9 100644
--- a/sw/source/core/view/viewimp.cxx
+++ b/sw/source/core/view/viewimp.cxx
@@ -29,7 +29,6 @@
#include "precompiled_sw.hxx"
-#include "scrrect.hxx"
#include "crsrsh.hxx"
#include "rootfrm.hxx"
#include "pagefrm.hxx"
@@ -126,8 +125,6 @@ SwViewImp::SwViewImp( ViewShell *pParent ) :
pSdrPageView( 0 ),
pFirstVisPage( 0 ),
pRegion( 0 ),
- pScrollRects( 0 ),
- pScrolledArea( 0 ),
pLayAct( 0 ),
pIdleAct( 0 ),
pAccMap( 0 ),
@@ -138,13 +135,9 @@ SwViewImp::SwViewImp( ViewShell *pParent ) :
{
//bResetXorVisibility =
//HMHbShowHdlPaint =
- bResetHdlHiddenPaint = bScrolled =
- bPaintInScroll = bSmoothUpdate = bStopSmooth = bStopPrt = FALSE;
- bFirstPageInvalid = bScroll = bNextScroll = TRUE;
-
- aScrollTimer.SetTimeout( 1500 );
- aScrollTimer.SetTimeoutHdl( LINK( this, SwViewImp, RefreshScrolledHdl));
- aScrollTimer.Stop();
+ bResetHdlHiddenPaint =
+ bSmoothUpdate = bStopSmooth = bStopPrt = FALSE;
+ bFirstPageInvalid = TRUE;
}
/******************************************************************************
@@ -169,8 +162,7 @@ SwViewImp::~SwViewImp()
delete pDrawView;
- DelRegions();
- delete pScrolledArea;
+ DelRegion();
ASSERT( !pLayAct, "Have action for the rest of your life." );
ASSERT( !pIdleAct,"Be idle for the rest of your life." );
@@ -185,10 +177,9 @@ SwViewImp::~SwViewImp()
|*
******************************************************************************/
-void SwViewImp::DelRegions()
+void SwViewImp::DelRegion()
{
DELETEZ(pRegion);
- DELETEZ(pScrollRects);
}
/******************************************************************************
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index 6beb6957c192..1b04f206b164 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -216,28 +216,18 @@ void ViewShell::ImplEndAction( const BOOL bIdleEnd )
Imp()->StartAction();
if ( Imp()->GetRegion() && Imp()->GetRegion()->GetOrigin() != VisArea() )
- Imp()->DelRegions();
+ Imp()->DelRegion();
const BOOL bExtraData = ::IsExtraData( GetDoc() );
if ( !bIdleEnd )
{
- if ( Imp()->IsNextScroll() && !bExtraData )
- Imp()->SetScroll();
- else
- {
- if ( bExtraData )
- Imp()->bScroll = FALSE;
- Imp()->SetNextScroll();
- Imp()->ResetScroll();
- }
SwLayAction aAction( GetLayout(), Imp() );
aAction.SetComplete( FALSE );
if ( nLockPaint )
aAction.SetPaint( FALSE );
aAction.SetInputType( INPUT_KEYBOARD );
aAction.Action();
- Imp()->SetScroll();
}
if ( bIsShellForCheckViewLayout )
@@ -246,8 +236,9 @@ void ViewShell::ImplEndAction( const BOOL bIdleEnd )
//Wenn wir selbst keine Paints erzeugen, so warten wir auf das Paint
//vom System. Dann ist das Clipping korrekt gesetzt; Beispiel: verschieben
//eines DrawObjektes.
- if ( Imp()->GetRegion() || Imp()->GetScrollRects() ||
- aInvalidRect.HasArea() || bExtraData )
+ if ( Imp()->GetRegion() ||
+ aInvalidRect.HasArea() ||
+ bExtraData )
{
if ( !nLockPaint )
{
@@ -271,15 +262,10 @@ void ViewShell::ImplEndAction( const BOOL bIdleEnd )
// Mitte eine Selektion und mit einem anderen Cursor an linken
// rechten Rand springen. Ohne ShowCrsr verschwindet die
// Selektion
- BOOL bShowCrsr = (pRegion || Imp()->GetScrollRects()) &&
- IsA( TYPE(SwCrsrShell) );
+ BOOL bShowCrsr = pRegion && IsA( TYPE(SwCrsrShell) );
if( bShowCrsr )
((SwCrsrShell*)this)->HideCrsrs();
- Scroll();
- if ( bPaintsFromSystem && Imp()->pScrolledArea )
- Imp()->FlushScrolledArea();
-
if ( pRegion )
{
SwRootFrm* pLayout = GetLayout();
@@ -408,14 +394,14 @@ void ViewShell::ImplEndAction( const BOOL bIdleEnd )
delete pVout;
delete pRegion;
- Imp()->DelRegions();
+ Imp()->DelRegion();
}
if( bShowCrsr )
((SwCrsrShell*)this)->ShowCrsrs( TRUE );
}
else
{
- Imp()->DelRegions();
+ Imp()->DelRegion();
bPaintWorks = TRUE;
}
}
@@ -435,13 +421,6 @@ void ViewShell::ImplEndAction( const BOOL bIdleEnd )
UISizeNotify();
++nStartAction;
-#ifdef DBG_UTIL
- // test option 'No Scroll' suppresses the automatic repair of the scrolled area
- if ( !GetViewOptions()->IsTest8() )
-#endif
- if ( Imp()->IsScrolled() )
- Imp()->RestartScrollTimer();
-
if( Imp()->IsAccessible() )
Imp()->FireAccessibleEvents();
}
@@ -1196,12 +1175,10 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
//vom RootFrm::Paint erzeugt worden sein.
if ( !bInEndAction &&
Imp()->GetRegion() && Imp()->GetRegion()->GetOrigin() != VisArea() )
- Imp()->DelRegions();
+ Imp()->DelRegion();
SET_CURR_SHELL( this );
- //SwSaveHdl aSaveHdl( Imp() );
-
bool bScrolled = false;
SwPostItMgr* pPostItMgr = GetPostItMgr();
@@ -1331,9 +1308,7 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
Imp()->GetDrawView()->VisAreaChanged( GetWin() );
Imp()->GetDrawView()->SetActualWin( GetWin() );
}
- Imp()->bPaintInScroll = TRUE;
GetWin()->Update();
- Imp()->bPaintInScroll = FALSE;
if ( !bScrolled && pPostItMgr && pPostItMgr->HasNotes() && pPostItMgr->ShowNotes() )
pPostItMgr->CorrectPositions();
@@ -1833,9 +1808,8 @@ BOOL ViewShell::CheckInvalidForPaint( const SwRect &rRect )
//nicht ankommen.
//Ergo: Alles selbst machen (siehe ImplEndAction())
if ( Imp()->GetRegion() && Imp()->GetRegion()->GetOrigin() != VisArea())
- Imp()->DelRegions();
+ Imp()->DelRegion();
- Imp()->ResetScroll();
SwLayAction aAction( GetLayout(), Imp() );
aAction.SetComplete( FALSE );
// We increment the action counter to avoid a recursive call of actions
@@ -1861,7 +1835,7 @@ BOOL ViewShell::CheckInvalidForPaint( const SwRect &rRect )
}
if ( bStop )
{
- Imp()->DelRegions();
+ Imp()->DelRegion();
pRegion = 0;
}
}
@@ -1906,7 +1880,7 @@ BOOL ViewShell::CheckInvalidForPaint( const SwRect &rRect )
}
else
bRet = FALSE;
- Imp()->DelRegions();
+ Imp()->DelRegion();
}
else
bRet = FALSE;
@@ -1957,17 +1931,7 @@ void ViewShell::Paint(const Rectangle &rRect)
{
if( GetWin() && GetWin()->IsVisible() )
{
- //Wenn mit dem Paint ein Bereich betroffen ist, der vorher gescrolled
- //wurde, so wiederholen wir das Paint mit dem Gesamtbereich. Nur so
- //koennen wir sicherstellen, das (nicht mal kurzfristig) durch das Paint
- //keine Alignmentfehler sichtbar werden.
SwRect aRect( rRect );
- if ( Imp()->IsScrolled() && Imp()->FlushScrolledArea( aRect ) )
- {
- GetWin()->Invalidate( aRect.SVRect() );
- return;
- }
-
if ( bPaintInProgress ) //Schutz gegen doppelte Paints!
{
GetWin()->Invalidate( rRect );
diff --git a/sw/source/filter/html/htmlform.cxx b/sw/source/filter/html/htmlform.cxx
index 02a867f6d907..4fd450cbffd5 100644
--- a/sw/source/filter/html/htmlform.cxx
+++ b/sw/source/filter/html/htmlform.cxx
@@ -727,7 +727,7 @@ void SwHTMLParser::SetControlSize( const uno::Reference< drawing::XShape >& rSha
bRemoveHidden = ( pHiddenItem == NULL || !pHiddenItem->GetValue() );
}
- pTempViewFrame = SfxViewFrame::CreateViewFrame( *pDocSh, 0, sal_True );
+ pTempViewFrame = SfxViewFrame::LoadHiddenDocument( *pDocSh, 0 );
CallStartAction();
pDoc->GetEditShell( &pVSh );
}
diff --git a/sw/source/filter/html/htmlgrin.cxx b/sw/source/filter/html/htmlgrin.cxx
index 40cdd11c608a..afcb979abe6c 100644
--- a/sw/source/filter/html/htmlgrin.cxx
+++ b/sw/source/filter/html/htmlgrin.cxx
@@ -806,7 +806,6 @@ IMAGE_SETEVENT:
// gleich (synchron) angepasst wird (war bug #40983#)
if( bRequestGrfNow )
{
- pGrfNd->SetTransferPriority( SFX_TFPRIO_VISIBLE_LOWRES_GRAPHIC );
pGrfNd->SwapIn();
}
diff --git a/sw/source/ui/app/appenv.cxx b/sw/source/ui/app/appenv.cxx
index a35bc90f38f0..ce06c22cfc88 100644
--- a/sw/source/ui/app/appenv.cxx
+++ b/sw/source/ui/app/appenv.cxx
@@ -191,7 +191,7 @@ static USHORT nTitleNo = 0;
// Neues Dokument erzeugen (kein Show!)
SfxObjectShellRef xDocSh( new SwDocShell( SFX_CREATE_MODE_STANDARD ) );
xDocSh->DoInitNew( 0 );
- pFrame = SfxViewFrame::CreateViewFrame( *xDocSh, 0, TRUE );
+ pFrame = SfxViewFrame::LoadHiddenDocument( *xDocSh, 0 );
pNewView = (SwView*) pFrame->GetViewShell();
pNewView->AttrChangedNotify( &pNewView->GetWrtShell() );//Damit SelectShell gerufen wird.
pSh = pNewView->GetWrtShellPtr();
@@ -501,7 +501,7 @@ static USHORT nTitleNo = 0;
if (nMode == ENV_NEWDOC)
{
- pFrame->GetFrame()->Appear();
+ pFrame->GetFrame().Appear();
if ( rItem.aAddrText.indexOf('<') >= 0 )
{
diff --git a/sw/source/ui/app/apphdl.cxx b/sw/source/ui/app/apphdl.cxx
index accb052033f6..8d8fc095b5be 100644
--- a/sw/source/ui/app/apphdl.cxx
+++ b/sw/source/ui/app/apphdl.cxx
@@ -240,7 +240,7 @@ SwView* lcl_LoadDoc(SwView* pView, const String& rURL)
if( pViewShell->ISA(SwView) )
{
pNewView = PTR_CAST(SwView,pViewShell);
- pNewView->GetViewFrame()->GetFrame()->Appear();
+ pNewView->GetViewFrame()->GetFrame().Appear();
}
else
{
@@ -474,7 +474,7 @@ IMPL_LINK( SwMailMergeWizardExecutor, EndDialogHdl, AbstractMailMergeWizard*, EM
{
SwView* pTargetView = m_pMMConfig->GetTargetView();
uno::Reference< frame::XFrame > xFrame =
- m_pView->GetViewFrame()->GetFrame()->GetFrameInterface();
+ m_pView->GetViewFrame()->GetFrame().GetFrameInterface();
xFrame->getContainerWindow()->setVisible(sal_False);
DBG_ASSERT(pTargetView, "No target view has been created");
if(pTargetView)
@@ -520,7 +520,7 @@ IMPL_LINK( SwMailMergeWizardExecutor, EndDialogHdl, AbstractMailMergeWizard*, EM
{
m_pView2Close = pTargetView;
pTargetView->GetViewFrame()->GetTopViewFrame()->GetWindow().Hide();
- pSourceView->GetViewFrame()->GetFrame()->AppearWithUpdate();
+ pSourceView->GetViewFrame()->GetFrame().AppearWithUpdate();
// the current view has be be set when the target is destroyed
m_pView = pSourceView;
m_pMMConfig->SetTargetView(0);
@@ -559,7 +559,7 @@ IMPL_LINK( SwMailMergeWizardExecutor, EndDialogHdl, AbstractMailMergeWizard*, EM
if(pDocShell->HasName() && !pDocShell->IsModified())
m_pMMConfig->GetSourceView()->GetViewFrame()->DoClose();
else
- m_pMMConfig->GetSourceView()->GetViewFrame()->GetFrame()->Appear();
+ m_pMMConfig->GetSourceView()->GetViewFrame()->GetFrame().Appear();
}
ExecutionFinished( true );
break;
@@ -593,7 +593,7 @@ IMPL_LINK( SwMailMergeWizardExecutor, CancelHdl, AbstractMailMergeWizard*, EMPTY
m_pMMConfig->SetTargetView(0);
}
if(m_pMMConfig->GetSourceView())
- m_pMMConfig->GetSourceView()->GetViewFrame()->GetFrame()->AppearWithUpdate();
+ m_pMMConfig->GetSourceView()->GetViewFrame()->GetFrame().AppearWithUpdate();
m_pMMConfig->Commit();
delete m_pMMConfig;
@@ -959,21 +959,8 @@ void NewXForms( SfxRequest& rReq )
// initialize XForms
static_cast<SwDocShell*>( &xDocSh )->GetDoc()->initXForms( true );
- // put document into frame
- const SfxItemSet* pArgs = rReq.GetArgs();
- DBG_ASSERT( pArgs, "no arguments in SfxRequest");
- if( pArgs != NULL )
- {
- const SfxPoolItem* pFrameItem = NULL;
- pArgs->GetItemState( SID_DOCFRAME, FALSE, &pFrameItem );
- if( pFrameItem != NULL )
- {
- SfxFrame* pFrame =
- static_cast<const SfxFrameItem*>( pFrameItem )->GetFrame();
- DBG_ASSERT( pFrame != NULL, "no frame?" );
- pFrame->InsertDocument( xDocSh );
- }
- }
+ // load document into frame
+ SfxViewFrame::DisplayNewDocument( *xDocSh, rReq );
// set return value
rReq.SetReturnValue( SfxVoidItem( rReq.GetSlot() ) );
diff --git a/sw/source/ui/app/applab.cxx b/sw/source/ui/app/applab.cxx
index 7ff62b4a0c1b..04fbebc865c8 100644
--- a/sw/source/ui/app/applab.cxx
+++ b/sw/source/ui/app/applab.cxx
@@ -220,25 +220,9 @@ static sal_uInt16 nBCTitleNo = 0;
pDocSh->getIDocumentDeviceAccess()->setJobsetup(pPrt->GetJobSetup());
}
- const SfxItemSet *pArgs = rReq.GetArgs();
- DBG_ASSERT( pArgs, "no arguments in SfxRequest");
- const SfxPoolItem* pFrameItem = 0;
- if(pArgs)
- pArgs->GetItemState(SID_DOCFRAME, FALSE, &pFrameItem);
-
- SfxViewFrame* pFrame = 0;
- if( pFrameItem )
- {
- SfxFrame* pFr = ((const SfxFrameItem*)pFrameItem)->GetFrame();
- xDocSh->PutItem(SfxBoolItem(SID_HIDDEN, TRUE));
- pFr->InsertDocument(xDocSh);
- pFrame = pFr->GetCurrentViewFrame();
- }
- else
- {
- pFrame = SfxViewFrame::CreateViewFrame( *xDocSh, 0, TRUE );
- }
- SwView *pNewView = (SwView*) pFrame->GetViewShell();
+ SfxViewFrame* pViewFrame = SfxViewFrame::DisplayNewDocument( *xDocSh, rReq );
+
+ SwView *pNewView = (SwView*) pViewFrame->GetViewShell();
pNewView->AttrChangedNotify( &pNewView->GetWrtShell() );//Damit SelectShell gerufen wird.
// Dokumenttitel setzen
@@ -255,7 +239,7 @@ static sal_uInt16 nBCTitleNo = 0;
}
xDocSh->SetTitle( aTmp );
- pFrame->GetFrame()->Appear();
+ pViewFrame->GetFrame().Appear();
// Shell ermitteln
SwWrtShell *pSh = pNewView->GetWrtShellPtr();
@@ -457,7 +441,7 @@ static sal_uInt16 nBCTitleNo = 0;
if( rItem.bSynchron )
{
- SfxDispatcher* pDisp = pFrame->GetDispatcher();
+ SfxDispatcher* pDisp = pViewFrame->GetDispatcher();
ASSERT(pDisp, "Heute kein Dispatcher am Frame?");
pDisp->Execute(FN_SYNC_LABELS, SFX_CALLMODE_ASYNCHRON);
}
diff --git a/sw/source/ui/app/docsh.cxx b/sw/source/ui/app/docsh.cxx
index 3759f3a9cd89..1f932e6a93bd 100644
--- a/sw/source/ui/app/docsh.cxx
+++ b/sw/source/ui/app/docsh.cxx
@@ -763,6 +763,10 @@ BOOL SwDocShell::ConvertTo( SfxMedium& rMedium )
if ( pWrtShell )
{
SwWait aWait( *this, TRUE );
+ // --> OD 2009-12-31 #i106906#
+ const sal_Bool bFormerLockView = pWrtShell->IsViewLocked();
+ pWrtShell->LockView( sal_True );
+ // <--
pWrtShell->StartAllAction();
pWrtShell->Push();
SwWriter aWrt( rMedium, *pWrtShell, TRUE );
@@ -773,6 +777,9 @@ BOOL SwDocShell::ConvertTo( SfxMedium& rMedium )
{
pWrtShell->Pop(FALSE);
pWrtShell->EndAllAction();
+ // --> OD 2009-12-31 #i106906#
+ pWrtShell->LockView( bFormerLockView );
+ // <--
}
}
else
diff --git a/sw/source/ui/app/docsh2.cxx b/sw/source/ui/app/docsh2.cxx
index cb8931b0a055..9cb3caffa7cc 100644
--- a/sw/source/ui/app/docsh2.cxx
+++ b/sw/source/ui/app/docsh2.cxx
@@ -676,7 +676,7 @@ void SwDocShell::Execute(SfxRequest& rReq)
bOnly = FALSE;
else if( IS_TYPE( SwPagePreView, pTmpFrm->GetViewShell()))
{
- pTmpFrm->GetFrame()->Appear();
+ pTmpFrm->GetFrame().Appear();
bFound = TRUE;
}
if( bFound && !bOnly )
@@ -1027,7 +1027,7 @@ void SwDocShell::Execute(SfxRequest& rReq)
else
{
// Neues Dokument erzeugen.
- SfxViewFrame *pFrame = SfxViewFrame::CreateViewFrame( *xDocSh, 0 );
+ SfxViewFrame *pFrame = SfxViewFrame::LoadDocument( *xDocSh, 0 );
SwView *pCurrView = (SwView*) pFrame->GetViewShell();
// Dokumenttitel setzen
@@ -1169,18 +1169,6 @@ void SwDocShell::Execute(SfxRequest& rReq)
}
break;
- case SID_MAIL_PREPAREEXPORT:
- {
- //pWrtShell is not set in page preview
- if(pWrtShell)
- pWrtShell->StartAllAction();
- pDoc->UpdateFlds( NULL, false );
- pDoc->EmbedAllLinks();
- pDoc->RemoveInvisibleContent();
- if(pWrtShell)
- pWrtShell->EndAllAction();
- }
- break;
case SID_MAIL_EXPORT_FINISHED:
{
if(pWrtShell)
@@ -1766,15 +1754,15 @@ void SwDocShell::ToggleBrowserMode(BOOL bSet, SwView* _pView )
// Currently there can be only one view (layout) if the document is viewed in Web layout
// So if there are more views we are in print layout and for toggling to Web layout all other views must be closed
- SfxViewFrame *pTmpFrm = SfxViewFrame::GetFirst(this, 0, FALSE);
+ SfxViewFrame *pTmpFrm = SfxViewFrame::GetFirst(this, FALSE);
do {
if( pTmpFrm != pTempView->GetViewFrame() )
{
pTmpFrm->DoClose();
- pTmpFrm = SfxViewFrame::GetFirst(this, 0, FALSE);
+ pTmpFrm = SfxViewFrame::GetFirst(this, FALSE);
}
else
- pTmpFrm = pTmpFrm->GetNext(*pTmpFrm, this, 0, FALSE);
+ pTmpFrm = pTmpFrm->GetNext(*pTmpFrm, this, FALSE);
} while ( pTmpFrm );
diff --git a/sw/source/ui/app/docshini.cxx b/sw/source/ui/app/docshini.cxx
index 8ed82a935a4d..c201109ca1cb 100644
--- a/sw/source/ui/app/docshini.cxx
+++ b/sw/source/ui/app/docshini.cxx
@@ -39,6 +39,7 @@
#include <svtools/ctrltool.hxx>
#include <unotools/lingucfg.hxx>
#include <sfx2/docfile.hxx>
+#include <sfx2/sfxmodelfactory.hxx>
#include <sfx2/printer.hxx>
#include <sfx2/bindings.hxx>
#include <svl/asiancfg.hxx>
@@ -371,7 +372,7 @@ sal_Bool SwDocShell::InitNew( const uno::Reference < embed::XStorage >& xStor )
--------------------------------------------------------------------*/
-SwDocShell::SwDocShell( SfxObjectCreateMode eMode, sal_Bool _bScriptingSupport ) :
+SwDocShell::SwDocShell( SfxObjectCreateMode eMode ) :
SfxObjectShell ( eMode ),
pDoc(0),
pFontList(0),
@@ -382,8 +383,25 @@ SwDocShell::SwDocShell( SfxObjectCreateMode eMode, sal_Bool _bScriptingSupport )
bInUpdateFontList(false)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLog, "SW", "JP93722", "SwDocShell::SwDocShell" );
- if ( !_bScriptingSupport )
- SetHasNoBasic();
+ Init_Impl();
+}
+
+/*--------------------------------------------------------------------
+ Beschreibung: Ctor / Dtor
+ --------------------------------------------------------------------*/
+
+
+SwDocShell::SwDocShell( const sal_uInt64 i_nSfxCreationFlags ) :
+ SfxObjectShell ( i_nSfxCreationFlags ),
+ pDoc(0),
+ pFontList(0),
+ pView( 0 ),
+ pWrtShell( 0 ),
+ pOLEChildList( 0 ),
+ nUpdateDocMode(document::UpdateDocMode::ACCORDING_TO_CONFIG),
+ bInUpdateFontList(false)
+{
+ RTL_LOGFILE_CONTEXT_AUTHOR( aLog, "SW", "JP93722", "SwDocShell::SwDocShell" );
Init_Impl();
}
diff --git a/sw/source/ui/app/docst.cxx b/sw/source/ui/app/docst.cxx
index 0cf03f803ad3..d06ab31b7478 100644
--- a/sw/source/ui/app/docst.cxx
+++ b/sw/source/ui/app/docst.cxx
@@ -1017,18 +1017,10 @@ USHORT SwDocShell::UpdateStyle(const String &rName, USHORT nFamily, SwWrtShell*
pCurrWrtShell->StartAllAction();
pCurrWrtShell->GetFlyFrmAttr( aSet );
- // JP 10.06.98: nur automatische Orientierungen uebernehmen
-/* #61359# jetzt auch wieder alle Orientierungen
- * const SfxPoolItem* pItem;
- if( SFX_ITEM_SET == aSet.GetItemState( RES_VERT_ORIENT,
- FALSE, &pItem ) &&
- text::VertOrientation::NONE == ((SwFmtVertOrient*)pItem)->GetVertOrient())
- aSet.ClearItem( RES_VERT_ORIENT );
-
- if( SFX_ITEM_SET == aSet.GetItemState( RES_HORI_ORIENT,
- FALSE, &pItem ) &&
- text::HoriOrientation::NONE == ((SwFmtHoriOrient*)pItem)->GetHoriOrient())
- aSet.ClearItem( RES_HORI_ORIENT );*/
+ // --> OD 2009-12-28 #i105535#
+ // no update of anchor attribute
+ aSet.ClearItem( RES_ANCHOR );
+ // <--
pFrm->SetFmtAttr( aSet );
diff --git a/sw/source/ui/app/makefile.mk b/sw/source/ui/app/makefile.mk
index 943f1004eb74..88f9ff9d6398 100644
--- a/sw/source/ui/app/makefile.mk
+++ b/sw/source/ui/app/makefile.mk
@@ -69,6 +69,7 @@ SLOFILES = \
EXCEPTIONSFILES= \
$(SLO)$/docsh.obj \
$(SLO)$/docst.obj \
+ $(SLO)$/docshini.obj \
$(SLO)$/swmodule.obj \
$(SLO)$/swmodul1.obj \
$(SLO)$/apphdl.obj \
diff --git a/sw/source/ui/app/swmodul1.cxx b/sw/source/ui/app/swmodul1.cxx
index 97c34c573756..2b3a5df1391b 100644
--- a/sw/source/ui/app/swmodul1.cxx
+++ b/sw/source/ui/app/swmodul1.cxx
@@ -355,7 +355,7 @@ SwChapterNumRules* SwModule::GetChapterNumRules()
void SwModule::ShowDBObj(SwView& rView, const SwDBData& rData, BOOL /*bOnlyIfAvailable*/)
{
- Reference<XFrame> xFrame = rView.GetViewFrame()->GetFrame()->GetFrameInterface();
+ Reference<XFrame> xFrame = rView.GetViewFrame()->GetFrame().GetFrameInterface();
Reference<XDispatchProvider> xDP(xFrame, uno::UNO_QUERY);
uno::Reference<frame::XFrame> xBeamerFrame = xFrame->findFrame(
diff --git a/sw/source/ui/app/swwait.cxx b/sw/source/ui/app/swwait.cxx
index 0345cd8a6806..4392bdea04ac 100644
--- a/sw/source/ui/app/swwait.cxx
+++ b/sw/source/ui/app/swwait.cxx
@@ -38,25 +38,25 @@
void SwDocShell::EnterWait( BOOL bLockDispatcher )
{
- SfxViewFrame *pFrame = SfxViewFrame::GetFirst( this, 0, FALSE );
+ SfxViewFrame *pFrame = SfxViewFrame::GetFirst( this, FALSE );
while ( pFrame )
{
pFrame->GetWindow().EnterWait();
if ( bLockDispatcher )
pFrame->GetDispatcher()->Lock( TRUE );
- pFrame = SfxViewFrame::GetNext( *pFrame, this, 0, FALSE );
+ pFrame = SfxViewFrame::GetNext( *pFrame, this, FALSE );
}
}
void SwDocShell::LeaveWait( BOOL bLockDispatcher )
{
- SfxViewFrame *pFrame = SfxViewFrame::GetFirst( this, 0, FALSE );
+ SfxViewFrame *pFrame = SfxViewFrame::GetFirst( this, FALSE );
while ( pFrame )
{
pFrame->GetWindow().LeaveWait();
if ( bLockDispatcher )
pFrame->GetDispatcher()->Lock( FALSE );
- pFrame = SfxViewFrame::GetNext( *pFrame, this, 0, FALSE );
+ pFrame = SfxViewFrame::GetNext( *pFrame, this, FALSE );
}
}
diff --git a/sw/source/ui/chrdlg/chardlg.cxx b/sw/source/ui/chrdlg/chardlg.cxx
index fdf633a45b8a..38b1ba906fdd 100644
--- a/sw/source/ui/chrdlg/chardlg.cxx
+++ b/sw/source/ui/chrdlg/chardlg.cxx
@@ -241,8 +241,8 @@ SwCharURLPage::SwCharURLPage( Window* pParent,
::FillCharStyleListBox(aNotVisitedLB, pView->GetDocShell());
TargetList* pList = new TargetList;
- const SfxFrame* pFrame = pView->GetViewFrame()->GetTopFrame();
- pFrame->GetTargetList(*pList);
+ const SfxFrame& rFrame = pView->GetViewFrame()->GetTopFrame();
+ rFrame.GetTargetList(*pList);
USHORT nCount = (USHORT)pList->Count();
if( nCount )
{
diff --git a/sw/source/ui/dbui/addresslistdialog.cxx b/sw/source/ui/dbui/addresslistdialog.cxx
index 6797a2cedf0e..dc007fc68e13 100644
--- a/sw/source/ui/dbui/addresslistdialog.cxx
+++ b/sw/source/ui/dbui/addresslistdialog.cxx
@@ -580,7 +580,7 @@ void SwAddressListDialog::DetectTablesAndQueries(
uno::Reference< XMultiServiceFactory > xMgr( ::comphelper::getProcessServiceFactory() );
uno::Reference< XInteractionHandler > xHandler(
- xMgr->createInstance( C2U( "com.sun.star.sdb.InteractionHandler" )), UNO_QUERY);
+ xMgr->createInstance( C2U( "com.sun.star.task.InteractionHandler" )), UNO_QUERY);
pUserData->xConnection = SharedConnection( xComplConnection->connectWithCompletion( xHandler ) );
}
if(pUserData->xConnection.is())
diff --git a/sw/source/ui/dbui/dbmgr.cxx b/sw/source/ui/dbui/dbmgr.cxx
index f449ad816c3e..a54217e1312b 100644
--- a/sw/source/ui/dbui/dbmgr.cxx
+++ b/sw/source/ui/dbui/dbmgr.cxx
@@ -935,7 +935,7 @@ BOOL SwNewDBMgr::MergeMailFiles(SwWrtShell* pSourceShell,
// create a target docshell to put the merged document into
xTargetDocShell = new SwDocShell( SFX_CREATE_MODE_STANDARD );
xTargetDocShell->DoInitNew( 0 );
- SfxViewFrame* pTargetFrame = SfxViewFrame::CreateViewFrame( *xTargetDocShell, 0, TRUE );
+ SfxViewFrame* pTargetFrame = SfxViewFrame::LoadHiddenDocument( *xTargetDocShell, 0 );
pTargetView = static_cast<SwView*>( pTargetFrame->GetViewShell() );
@@ -1055,7 +1055,7 @@ BOOL SwNewDBMgr::MergeMailFiles(SwWrtShell* pSourceShell,
if (xWorkDocSh->DoLoad(pWorkMed))
{
//create a view frame for the document
- SfxViewFrame* pWorkFrame = SfxViewFrame::CreateViewFrame( *xWorkDocSh, 0, TRUE );
+ SfxViewFrame* pWorkFrame = SfxViewFrame::LoadHiddenDocument( *xWorkDocSh, 0 );
//request the layout calculation
SwWrtShell& rWorkShell =
static_cast< SwView* >(pWorkFrame->GetViewShell())->GetWrtShell();
@@ -1613,7 +1613,7 @@ uno::Reference< sdbc::XConnection> SwNewDBMgr::GetConnection(const String& rData
{
rxSource.set(xComplConnection,UNO_QUERY);
Reference< XInteractionHandler > xHandler(
- xMgr->createInstance( C2U( "com.sun.star.sdb.InteractionHandler" )), UNO_QUERY);
+ xMgr->createInstance( C2U( "com.sun.star.task.InteractionHandler" )), UNO_QUERY);
xConnection = xComplConnection->connectWithCompletion( xHandler );
}
}
@@ -2556,7 +2556,7 @@ void SwNewDBMgr::ExecuteFormLetter( SwWrtShell& rSh,
pWorkMed->SetFilter( pSfxFlt );
if( xWorkDocSh->DoLoad(pWorkMed) )
{
- SfxViewFrame *pFrame = SfxViewFrame::CreateViewFrame( *xWorkDocSh, 0, TRUE );
+ SfxViewFrame *pFrame = SfxViewFrame::LoadHiddenDocument( *xWorkDocSh, 0 );
SwView *pView = (SwView*) pFrame->GetViewShell();
pView->AttrChangedNotify( &pView->GetWrtShell() );//Damit SelectShell gerufen wird.
//set the current DBMgr
@@ -2765,7 +2765,7 @@ uno::Reference<XResultSet> SwNewDBMgr::createCursor(const ::rtl::OUString& _sDat
if ( xRowSet.is() )
{
- uno::Reference< XInteractionHandler > xHandler(xMgr->createInstance(C2U("com.sun.star.sdb.InteractionHandler")), UNO_QUERY);
+ uno::Reference< XInteractionHandler > xHandler(xMgr->createInstance(C2U("com.sun.star.task.InteractionHandler")), UNO_QUERY);
xRowSet->executeWithCompletion(xHandler);
}
xResultSet = uno::Reference<XResultSet>(xRowSet, UNO_QUERY);
@@ -2848,14 +2848,14 @@ sal_Int32 SwNewDBMgr::MergeDocuments( SwMailMergeConfigItem& rMMConfig,
// create a target docshell to put the merged document into
SfxObjectShellRef xTargetDocShell( new SwDocShell( SFX_CREATE_MODE_STANDARD ) );
xTargetDocShell->DoInitNew( 0 );
- SfxViewFrame* pTargetFrame = SfxViewFrame::CreateViewFrame( *xTargetDocShell, 0, TRUE );
+ SfxViewFrame* pTargetFrame = SfxViewFrame::LoadHiddenDocument( *xTargetDocShell, 0 );
//the created window has to be located at the same position as the source window
- Window& rTargetWindow = pTargetFrame->GetFrame()->GetWindow();
- Window& rSourceWindow = rSourceView.GetViewFrame()->GetFrame()->GetWindow();
+ Window& rTargetWindow = pTargetFrame->GetFrame().GetWindow();
+ Window& rSourceWindow = rSourceView.GetViewFrame()->GetFrame().GetWindow();
rTargetWindow.SetPosPixel(rSourceWindow.GetPosPixel());
-// pTargetFrame->GetFrame()->Appear();
+// pTargetFrame->GetFrame().Appear();
SwView* pTargetView = static_cast<SwView*>( pTargetFrame->GetViewShell() );
rMMConfig.SetTargetView(pTargetView);
//initiate SelectShell() to create sub shells
@@ -2909,7 +2909,7 @@ sal_Int32 SwNewDBMgr::MergeDocuments( SwMailMergeConfigItem& rMMConfig,
xWorkDocSh->DoInitNew();
}
//create a ViewFrame
- SwView* pWorkView = static_cast< SwView* >( SfxViewFrame::CreateViewFrame( *xWorkDocSh, 0, sal_True )->GetViewShell() );
+ SwView* pWorkView = static_cast< SwView* >( SfxViewFrame::LoadHiddenDocument( *xWorkDocSh, 0 )->GetViewShell() );
SwWrtShell& rWorkShell = pWorkView->GetWrtShell();
pWorkView->AttrChangedNotify( &rWorkShell );//Damit SelectShell gerufen wird.
diff --git a/sw/source/ui/dbui/mailmergewizard.cxx b/sw/source/ui/dbui/mailmergewizard.cxx
index e4903ba83134..54cf6edac512 100644
--- a/sw/source/ui/dbui/mailmergewizard.cxx
+++ b/sw/source/ui/dbui/mailmergewizard.cxx
@@ -307,7 +307,7 @@ void SwMailMergeWizard::CreateTargetDocument()
MergeDocuments( m_rConfigItem, *GetSwView() );
m_rConfigItem.SetMergeDone();
if( m_rConfigItem.GetTargetView() )
- m_rConfigItem.GetTargetView()->GetViewFrame()->GetFrame()->Appear();
+ m_rConfigItem.GetTargetView()->GetViewFrame()->GetFrame().Appear();
}
/*-- 23.08.2004 08:51:36---------------------------------------------------
diff --git a/sw/source/ui/dbui/mmoutputpage.cxx b/sw/source/ui/dbui/mmoutputpage.cxx
index a9d1b4a0e2ae..0fe1a3717ca1 100644
--- a/sw/source/ui/dbui/mmoutputpage.cxx
+++ b/sw/source/ui/dbui/mmoutputpage.cxx
@@ -692,7 +692,7 @@ IMPL_LINK(SwMailMergeOutputPage, SaveStartHdl_Impl, PushButton*, pButton)
{
SfxViewFrame* pSourceViewFrm = pSourceView->GetViewFrame();
uno::Reference< frame::XFrame > xFrame =
- pSourceViewFrm->GetFrame()->GetFrameInterface();
+ pSourceViewFrm->GetFrame().GetFrameInterface();
xFrame->getContainerWindow()->setVisible(sal_True);
pSourceViewFrm->GetDispatcher()->Execute(SID_SAVEDOC, SFX_CALLMODE_SYNCHRON);
xFrame->getContainerWindow()->setVisible(sal_False);
@@ -855,8 +855,8 @@ IMPL_LINK(SwMailMergeOutputPage, SaveOutputHdl_Impl, PushButton*, pButton)
//now extract a document from the target document
SfxObjectShellRef xTempDocShell( new SwDocShell( SFX_CREATE_MODE_STANDARD ) );
xTempDocShell->DoInitNew( 0 );
- SfxViewFrame* pTempFrame = SfxViewFrame::CreateViewFrame( *xTempDocShell, 0, TRUE );
-// pTempFrame->GetFrame()->Appear();
+ SfxViewFrame* pTempFrame = SfxViewFrame::LoadHiddenDocument( *xTempDocShell, 0 );
+// pTempFrame->GetFrame().Appear();
SwView* pTempView = static_cast<SwView*>( pTempFrame->GetViewShell() );
pTargetView->GetWrtShell().StartAction();
SwgReaderOption aOpt;
@@ -1254,8 +1254,8 @@ IMPL_LINK(SwMailMergeOutputPage, SendDocumentsHdl_Impl, PushButton*, pButton)
//now extract a document from the target document
SfxObjectShellRef xTempDocShell( new SwDocShell( SFX_CREATE_MODE_STANDARD ) );
xTempDocShell->DoInitNew( 0 );
- SfxViewFrame* pTempFrame = SfxViewFrame::CreateViewFrame( *xTempDocShell, 0, TRUE );
-// pTempFrame->GetFrame()->Appear();
+ SfxViewFrame* pTempFrame = SfxViewFrame::LoadHiddenDocument( *xTempDocShell, 0 );
+// pTempFrame->GetFrame().Appear();
SwView* pTempView = static_cast<SwView*>( pTempFrame->GetViewShell() );
pTargetView->GetWrtShell().StartAction();
SwgReaderOption aOpt;
diff --git a/sw/source/ui/dialog/macassgn.cxx b/sw/source/ui/dialog/macassgn.cxx
index 2f78c22a83ab..2d2b7c357720 100644
--- a/sw/source/ui/dialog/macassgn.cxx
+++ b/sw/source/ui/dialog/macassgn.cxx
@@ -149,7 +149,7 @@ BOOL SwMacroAssignDlg::INetFmtDlg( Window* pParent, SwWrtShell& rSh,
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
SfxAbstractDialog* pMacroDlg = pFact->CreateSfxDialog( pParent, aSet,
- rSh.GetView().GetViewFrame()->GetFrame()->GetFrameInterface(),
+ rSh.GetView().GetViewFrame()->GetFrame().GetFrameInterface(),
SID_EVENTCONFIG );
if ( pMacroDlg && pMacroDlg->Execute() == RET_OK )
{
diff --git a/sw/source/ui/dochdl/swdtflvr.cxx b/sw/source/ui/dochdl/swdtflvr.cxx
index a49141e896d9..7778b3848f45 100644
--- a/sw/source/ui/dochdl/swdtflvr.cxx
+++ b/sw/source/ui/dochdl/swdtflvr.cxx
@@ -2635,7 +2635,9 @@ int SwTransferable::_PasteDBData( TransferableDataHelper& rData,
if(pFmView) {
const OXFormsDescriptor &rDesc = OXFormsTransferable::extractDescriptor(rData);
if(0 != (pObj = pFmView->CreateXFormsControl(rDesc)))
- rSh.SwFEShell::Insert( *pObj, 0, 0, pDragPt );
+ {
+ rSh.SwFEShell::InsertDrawObj( *pObj, *pDragPt );
+ }
}
}
else if( nWh )
@@ -2696,7 +2698,7 @@ int SwTransferable::_PasteDBData( TransferableDataHelper& rData,
if (pFmView && bHaveColumnDescriptor)
{
if ( 0 != (pObj = pFmView->CreateFieldControl( OColumnTransferable::extractColumnDescriptor(rData) ) ) )
- rSh.SwFEShell::Insert( *pObj, 0, 0, pDragPt );
+ rSh.SwFEShell::InsertDrawObj( *pObj, *pDragPt );
}
}
nRet = 1;
diff --git a/sw/source/ui/docvw/docvw.hrc b/sw/source/ui/docvw/docvw.hrc
index d0a696c4dd99..31fd6a04949e 100644
--- a/sw/source/ui/docvw/docvw.hrc
+++ b/sw/source/ui/docvw/docvw.hrc
@@ -34,7 +34,7 @@
#define MN_READONLY_OPENURL (RC_DOCVW_BEGIN + 2)
#define MN_READONLY_OPENURLNEW (RC_DOCVW_BEGIN + 3)
#define MN_READONLY_EDITDOC (RC_DOCVW_BEGIN + 4)
-#define MN_READONLY_BROWSE_STOP (RC_DOCVW_BEGIN + 5)
+ // FREE, formerly known as MN_READONLY_BROWSE_STOP
#define MN_READONLY_BROWSE_BACKWARD (RC_DOCVW_BEGIN + 6)
#define MN_READONLY_BROWSE_FORWARD (RC_DOCVW_BEGIN + 7)
#define MN_READONLY_SELECTION_MODE (RC_DOCVW_BEGIN + 8)
diff --git a/sw/source/ui/docvw/docvw.src b/sw/source/ui/docvw/docvw.src
index aa9c8de1176c..d38f249d905e 100644
--- a/sw/source/ui/docvw/docvw.src
+++ b/sw/source/ui/docvw/docvw.src
@@ -78,12 +78,6 @@ Menu MN_READONLY_POPUP
SEPARATOR
MenuItem
{
- Identifier = MN_READONLY_BROWSE_STOP ;
- HelpID = SID_BROWSE_STOP ;
- Text [ en-US ] = "~Stop" ;
- };
- MenuItem
- {
Identifier = MN_READONLY_BROWSE_BACKWARD ;
HelpID = SID_BROWSE_BACKWARD ;
Text [ en-US ] = "Backwards" ;
diff --git a/sw/source/ui/docvw/edtdd.cxx b/sw/source/ui/docvw/edtdd.cxx
index 94e131b06407..8e11e5117c27 100644
--- a/sw/source/ui/docvw/edtdd.cxx
+++ b/sw/source/ui/docvw/edtdd.cxx
@@ -515,7 +515,7 @@ IMPL_LINK( SwEditWin, DDHandler, Timer *, EMPTYARG )
ReleaseMouse();
bFrmDrag = FALSE;
- if ( rView.GetViewFrame() && rView.GetViewFrame()->GetFrame() )
+ if ( rView.GetViewFrame() )
{
bExecuteDrag = TRUE;
StartExecuteDrag();
diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx
index 6fcc3701aae1..0a0bde33327b 100644
--- a/sw/source/ui/docvw/edtwin.cxx
+++ b/sw/source/ui/docvw/edtwin.cxx
@@ -3364,11 +3364,16 @@ void SwEditWin::MouseButtonDown(const MouseEvent& _rMEvt)
bNoInterrupt = bTmpNoInterrupt;
}
- if( !bOverURLGrf && !bOnlyText )
+ if ( !bOverURLGrf && !bOnlyText )
{
const int nSelType = rSh.GetSelectionType();
- if( nSelType == nsSelectionType::SEL_OLE ||
- nSelType == nsSelectionType::SEL_GRF )
+ // --> OD 2009-12-30 #i89920#
+ // Check in general, if an object is selectable at given position.
+ // Thus, also text fly frames in background become selectable via Ctrl-Click.
+ if ( nSelType & nsSelectionType::SEL_OLE ||
+ nSelType & nsSelectionType::SEL_GRF ||
+ rSh.IsObjSelectable( aDocPos ) )
+ // <--
{
MV_KONTEXT( &rSh );
if( !rSh.IsFrmSelected() )
@@ -4731,7 +4736,7 @@ void SwEditWin::Command( const CommandEvent& rCEvt )
{
SwWrtShell &rSh = rView.GetWrtShell();
- if ( !rView.GetViewFrame() || !rView.GetViewFrame()->GetFrame() )
+ if ( !rView.GetViewFrame() )
{
//Wenn der ViewFrame in Kuerze stirbt kein Popup mehr!
Window::Command(rCEvt);
diff --git a/sw/source/ui/docvw/postit.cxx b/sw/source/ui/docvw/postit.cxx
index b5a8ea2edba8..06d26534abfd 100644
--- a/sw/source/ui/docvw/postit.cxx
+++ b/sw/source/ui/docvw/postit.cxx
@@ -117,7 +117,6 @@
#include <sw_primitivetypes2d.hxx>
#include <drawinglayer/primitive2d/primitivetools2d.hxx>
-#include <drawinglayer/attribute/fillattribute.hxx>
#include <drawinglayer/primitive2d/fillgradientprimitive2d.hxx>
#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
#include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
diff --git a/sw/source/ui/docvw/romenu.cxx b/sw/source/ui/docvw/romenu.cxx
index 0e3ab86c71a7..f793a7f854b7 100644
--- a/sw/source/ui/docvw/romenu.cxx
+++ b/sw/source/ui/docvw/romenu.cxx
@@ -214,7 +214,7 @@ SwReadOnlyPopup::SwReadOnlyPopup( const Point &rDPos, SwView &rV ) :
else
EnableItem( MN_READONLY_LOADGRAPHIC, FALSE );
- BOOL bReloadFrame = 0 != rSh.GetView().GetViewFrame()->GetFrame()->GetParentFrame();
+ BOOL bReloadFrame = 0 != rSh.GetView().GetViewFrame()->GetFrame().GetParentFrame();
EnableItem( MN_READONLY_RELOAD_FRAME,
bReloadFrame );
EnableItem( MN_READONLY_RELOAD, !bReloadFrame);
@@ -222,7 +222,6 @@ SwReadOnlyPopup::SwReadOnlyPopup( const Point &rDPos, SwView &rV ) :
Check( MN_READONLY_EDITDOC, SID_EDITDOC, rDis );
Check( MN_READONLY_SELECTION_MODE, FN_READONLY_SELECTION_MODE, rDis );
Check( MN_READONLY_SOURCEVIEW, SID_SOURCEVIEW, rDis );
- Check( MN_READONLY_BROWSE_STOP, SID_BROWSE_STOP, rDis );
Check( MN_READONLY_BROWSE_BACKWARD, SID_BROWSE_BACKWARD,rDis );
Check( MN_READONLY_BROWSE_FORWARD, SID_BROWSE_FORWARD, rDis );
#ifdef WNT
@@ -314,7 +313,6 @@ void SwReadOnlyPopup::Execute( Window* pWin, USHORT nId )
rSh.GetView().GetViewFrame()->GetDispatcher()->Execute(SID_RELOAD);
break;
- case MN_READONLY_BROWSE_STOP: nExecId = SID_BROWSE_STOP; break;
case MN_READONLY_BROWSE_BACKWARD: nExecId = SID_BROWSE_BACKWARD;break;
case MN_READONLY_BROWSE_FORWARD: nExecId = SID_BROWSE_FORWARD; break;
case MN_READONLY_SOURCEVIEW: nExecId = SID_SOURCEVIEW; break;
diff --git a/sw/source/ui/fldui/fldedt.cxx b/sw/source/ui/fldui/fldedt.cxx
index 47c97f34ce99..2c354551f1f3 100644
--- a/sw/source/ui/fldui/fldedt.cxx
+++ b/sw/source/ui/fldui/fldedt.cxx
@@ -407,7 +407,7 @@ IMPL_LINK( SwFldEditDlg, AddressHdl, PushButton *, EMPTYARG )
DBG_ASSERT(pFact, "SwAbstractDialogFactory fail!");
SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( this, aSet,
- pSh->GetView().GetViewFrame()->GetFrame()->GetFrameInterface(),
+ pSh->GetView().GetViewFrame()->GetFrame().GetFrameInterface(),
RC_DLG_ADDR );
DBG_ASSERT(pDlg, "Dialogdiet fail!");
if(RET_OK == pDlg->Execute())
diff --git a/sw/source/ui/fmtui/tmpdlg.cxx b/sw/source/ui/fmtui/tmpdlg.cxx
index 6f62f65c6b87..c78f51f4796f 100644
--- a/sw/source/ui/fmtui/tmpdlg.cxx
+++ b/sw/source/ui/fmtui/tmpdlg.cxx
@@ -567,7 +567,7 @@ void SwTemplateDlg::PageCreated( USHORT nId, SfxTabPage &rPage )
SfxAllItemSet aNewSet(*aSet.GetPool());
aNewSet.Put( SwMacroAssignDlg::AddEvents(MACASSGN_ALLFRM) );
if ( pWrtShell )
- rPage.SetFrame( pWrtShell->GetView().GetViewFrame()->GetFrame()->GetFrameInterface() );
+ rPage.SetFrame( pWrtShell->GetView().GetViewFrame()->GetFrame().GetFrameInterface() );
rPage.PageCreated(aNewSet);
break;
}
diff --git a/sw/source/ui/frmdlg/frmdlg.cxx b/sw/source/ui/frmdlg/frmdlg.cxx
index 42b1fb1bed5f..740d31c5e88c 100644
--- a/sw/source/ui/frmdlg/frmdlg.cxx
+++ b/sw/source/ui/frmdlg/frmdlg.cxx
@@ -193,7 +193,7 @@ void SwFrmDlg::PageCreated( USHORT nId, SfxTabPage &rPage )
aNewSet.Put( SwMacroAssignDlg::AddEvents(
DLG_FRM_GRF == m_nDlgType ? MACASSGN_GRAPHIC : DLG_FRM_OLE == m_nDlgType ? MACASSGN_OLE : MACASSGN_FRMURL ) );
if ( m_pWrtShell )
- rPage.SetFrame( m_pWrtShell->GetView().GetViewFrame()->GetFrame()->GetFrameInterface() );
+ rPage.SetFrame( m_pWrtShell->GetView().GetViewFrame()->GetFrame().GetFrameInterface() );
rPage.PageCreated(aNewSet);
break;
}
diff --git a/sw/source/ui/lingu/olmenu.cxx b/sw/source/ui/lingu/olmenu.cxx
index 351999015711..a3f2b67b69b6 100644
--- a/sw/source/ui/lingu/olmenu.cxx
+++ b/sw/source/ui/lingu/olmenu.cxx
@@ -275,7 +275,7 @@ USHORT SwSpellPopup::fillLangPopupMenu(
//6--all languages used in current document
uno::Reference< com::sun::star::frame::XModel > xModel;
- uno::Reference< com::sun::star::frame::XController > xController( pWrtSh->GetView().GetViewFrame()->GetFrame()->GetFrameInterface()->getController(), uno::UNO_QUERY );
+ uno::Reference< com::sun::star::frame::XController > xController( pWrtSh->GetView().GetViewFrame()->GetFrame().GetFrameInterface()->getController(), uno::UNO_QUERY );
if ( xController.is() )
xModel = xController->getModel();
@@ -576,7 +576,7 @@ bGrammarResults(false)
nNumLanguageDocEntries = fillLangPopupMenu( pMenu, MN_LANGUAGE_ALL_TEXT_START, aSeq, pWrtSh, 2 );
EnableItem( MN_LANGUAGE_ALL_TEXT, true );
*/
- uno::Reference< frame::XFrame > xFrame = pWrtSh->GetView().GetViewFrame()->GetFrame()->GetFrameInterface();
+ uno::Reference< frame::XFrame > xFrame = pWrtSh->GetView().GetViewFrame()->GetFrame().GetFrameInterface();
Image rImg = ::GetImage( xFrame,
::rtl::OUString::createFromAscii(".uno:SpellingAndGrammarDialog"), sal_False,
Application::GetSettings().GetStyleSettings().GetHighContrastMode() );
@@ -710,7 +710,7 @@ aInfo16( SW_RES(IMG_INFO_16) )
nNumLanguageDocEntries = fillLangPopupMenu( pMenu, MN_LANGUAGE_ALL_TEXT_START, aSeq, pWrtSh, 2 );
EnableItem( MN_LANGUAGE_ALL_TEXT, true );
*/
- uno::Reference< frame::XFrame > xFrame = pWrtSh->GetView().GetViewFrame()->GetFrame()->GetFrameInterface();
+ uno::Reference< frame::XFrame > xFrame = pWrtSh->GetView().GetViewFrame()->GetFrame().GetFrameInterface();
Image rImg = ::GetImage( xFrame,
::rtl::OUString::createFromAscii(".uno:SpellingAndGrammarDialog"), sal_False,
Application::GetSettings().GetStyleSettings().GetHighContrastMode() );
diff --git a/sw/source/ui/misc/glossary.cxx b/sw/source/ui/misc/glossary.cxx
index fe6950ef4722..a2b6b85a7449 100644
--- a/sw/source/ui/misc/glossary.cxx
+++ b/sw/source/ui/misc/glossary.cxx
@@ -638,7 +638,7 @@ IMPL_LINK( SwGlossaryDlg, MenuHdl, Menu *, pMn )
const SfxPoolItem* pItem;
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
SfxAbstractDialog* pMacroDlg = pFact->CreateSfxDialog( this, aSet,
- pSh->GetView().GetViewFrame()->GetFrame()->GetFrameInterface(), SID_EVENTCONFIG );
+ pSh->GetView().GetViewFrame()->GetFrame().GetFrameInterface(), SID_EVENTCONFIG );
if ( pMacroDlg && pMacroDlg->Execute() == RET_OK &&
SFX_ITEM_SET == pMacroDlg->GetOutputItemSet()->GetItemState( RES_FRMMACRO, sal_False, &pItem ) )
{
diff --git a/sw/source/ui/misc/glshell.cxx b/sw/source/ui/misc/glshell.cxx
index b3011985bbc0..4d93f8d7542f 100644
--- a/sw/source/ui/misc/glshell.cxx
+++ b/sw/source/ui/misc/glshell.cxx
@@ -306,7 +306,7 @@ SwDocShellRef SwGlossaries::EditGroupDoc( const String& rGroup, const String& rS
}
// Dokumenttitel setzen
- SfxViewFrame* pFrame = SfxViewFrame::CreateViewFrame( *xDocSh, nViewId, !bShow );
+ SfxViewFrame* pFrame = bShow ? SfxViewFrame::LoadDocument( *xDocSh, nViewId ) : SfxViewFrame::LoadHiddenDocument( *xDocSh, nViewId );
String aDocTitle(SW_RES( STR_GLOSSARY ));
aDocTitle += ' ';
aDocTitle += sLongName;
@@ -343,7 +343,7 @@ SwDocShellRef SwGlossaries::EditGroupDoc( const String& rGroup, const String& rS
xDocSh->GetDoc()->DoUndo( bDoesUndo );
xDocSh->GetDoc()->ResetModified();
if ( bShow )
- pFrame->GetFrame()->Appear();
+ pFrame->GetFrame().Appear();
delete pGroup;
}
diff --git a/sw/source/ui/misc/insfnote.cxx b/sw/source/ui/misc/insfnote.cxx
index b67981018015..5cc82f8473eb 100644
--- a/sw/source/ui/misc/insfnote.cxx
+++ b/sw/source/ui/misc/insfnote.cxx
@@ -173,7 +173,7 @@ IMPL_LINK( SwInsFootNoteDlg, NumberExtCharHdl, Button *, EMPTYARG )
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( this, aAllSet,
- rSh.GetView().GetViewFrame()->GetFrame()->GetFrameInterface(), RID_SVXDLG_CHARMAP );
+ rSh.GetView().GetViewFrame()->GetFrame().GetFrameInterface(), RID_SVXDLG_CHARMAP );
if (RET_OK == pDlg->Execute())
{
SFX_ITEMSET_ARG( pDlg->GetOutputItemSet(), pItem, SfxStringItem, SID_CHARMAP, FALSE );
diff --git a/sw/source/ui/misc/srtdlg.cxx b/sw/source/ui/misc/srtdlg.cxx
index f03a6de204d9..be7622319626 100644
--- a/sw/source/ui/misc/srtdlg.cxx
+++ b/sw/source/ui/misc/srtdlg.cxx
@@ -393,7 +393,7 @@ IMPL_LINK( SwSortDlg, DelimCharHdl, PushButton*, EMPTYARG )
SfxAllItemSet aSet( rSh.GetAttrPool() );
aSet.Put( SfxInt32Item( SID_ATTR_CHAR, GetDelimChar() ) );
SfxAbstractDialog* pMap = pFact->CreateSfxDialog( &aDelimPB, aSet,
- rSh.GetView().GetViewFrame()->GetFrame()->GetFrameInterface(), RID_SVXDLG_CHARMAP );
+ rSh.GetView().GetViewFrame()->GetFrame().GetFrameInterface(), RID_SVXDLG_CHARMAP );
if( RET_OK == pMap->Execute() )
{
SFX_ITEMSET_ARG( pMap->GetOutputItemSet(), pItem, SfxInt32Item, SID_ATTR_CHAR, FALSE );
diff --git a/sw/source/ui/shells/annotsh.cxx b/sw/source/ui/shells/annotsh.cxx
index 886ff9c3b81c..b7b7b509d036 100755
--- a/sw/source/ui/shells/annotsh.cxx
+++ b/sw/source/ui/shells/annotsh.cxx
@@ -1554,7 +1554,7 @@ void SwAnnotationShell::InsertSymbol(SfxRequest& rReq)
// Wenn Zeichen selektiert ist kann es angezeigt werden
SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( rView.GetWindow(), aAllSet,
- rView.GetViewFrame()->GetFrame()->GetFrameInterface(), RID_SVXDLG_CHARMAP );
+ rView.GetViewFrame()->GetFrame().GetFrameInterface(), RID_SVXDLG_CHARMAP );
USHORT nResult = pDlg->Execute();
if( nResult == RET_OK )
diff --git a/sw/source/ui/shells/basesh.cxx b/sw/source/ui/shells/basesh.cxx
index ab8d63ec7f12..0cee102729a7 100644
--- a/sw/source/ui/shells/basesh.cxx
+++ b/sw/source/ui/shells/basesh.cxx
@@ -186,7 +186,7 @@ void lcl_UpdateIMapDlg( SwWrtShell& rSh )
void* pEditObj = GRAPHIC_NONE != nGrfType && GRAPHIC_DEFAULT != nGrfType
? rSh.GetIMapInventor() : 0;
TargetList* pList = new TargetList;
- rSh.GetView().GetViewFrame()->GetTopFrame()->GetTargetList(*pList);
+ rSh.GetView().GetViewFrame()->GetTopFrame().GetTargetList(*pList);
SfxItemSet aSet( rSh.GetAttrPool(), RES_URL, RES_URL );
rSh.GetFlyFrmAttr( aSet );
@@ -2555,7 +2555,7 @@ void SwBaseShell::ExecDlg(SfxRequest &rReq)
SvxBrushItem aBrush(RES_BACKGROUND);
rSh.GetBoxBackground( aBrush );
pDlg = pFact->CreateSfxDialog( pMDI, aSet,
- rView.GetViewFrame()->GetFrame()->GetFrameInterface(),
+ rView.GetViewFrame()->GetFrame().GetFrameInterface(),
RC_SWDLG_BACKGROUND );
DBG_ASSERT(pDlg, "Dialogdiet fail!");
aSet.Put( aBrush );
@@ -2574,7 +2574,7 @@ void SwBaseShell::ExecDlg(SfxRequest &rReq)
rSh.GetFlyFrmAttr( aSet );
pDlg = pFact->CreateSfxDialog( pMDI, aSet,
- rView.GetViewFrame()->GetFrame()->GetFrameInterface(),
+ rView.GetViewFrame()->GetFrame().GetFrameInterface(),
RC_SWDLG_BACKGROUND );
DBG_ASSERT(pDlg, "Dialogdiet fail!");
if ( pDlg->Execute() == RET_OK )
@@ -2589,7 +2589,7 @@ void SwBaseShell::ExecDlg(SfxRequest &rReq)
rSh.GetCurAttr( aSet );
pDlg = pFact->CreateSfxDialog( pMDI, aSet,
- rView.GetViewFrame()->GetFrame()->GetFrameInterface(),
+ rView.GetViewFrame()->GetFrame().GetFrameInterface(),
RC_SWDLG_BACKGROUND );
DBG_ASSERT(pDlg, "Dialogdiet fail!");
if ( pDlg->Execute() == RET_OK )
diff --git a/sw/source/ui/shells/drwtxtsh.cxx b/sw/source/ui/shells/drwtxtsh.cxx
index ee3a581d420b..4b8e2c65c5fc 100644
--- a/sw/source/ui/shells/drwtxtsh.cxx
+++ b/sw/source/ui/shells/drwtxtsh.cxx
@@ -809,7 +809,7 @@ void SwDrawTextShell::InsertSymbol(SfxRequest& rReq)
// Wenn Zeichen selektiert ist kann es angezeigt werden
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( rView.GetWindow(), aAllSet,
- rView.GetViewFrame()->GetFrame()->GetFrameInterface(), RID_SVXDLG_CHARMAP );
+ rView.GetViewFrame()->GetFrame().GetFrameInterface(), RID_SVXDLG_CHARMAP );
USHORT nResult = pDlg->Execute();
if( nResult == RET_OK )
{
diff --git a/sw/source/ui/shells/frmsh.cxx b/sw/source/ui/shells/frmsh.cxx
index 4523ece1f8b4..5d972af52f72 100644
--- a/sw/source/ui/shells/frmsh.cxx
+++ b/sw/source/ui/shells/frmsh.cxx
@@ -450,7 +450,7 @@ void SwFrameShell::Execute(SfxRequest &rReq)
if(pArgs && pArgs->GetItemState(FN_FORMAT_FRAME_DLG, FALSE, &pItem) == SFX_ITEM_SET)
nDefPage = ((SfxUInt16Item *)pItem)->GetValue();
- aSet.Put(SfxFrameItem( SID_DOCFRAME, GetView().GetViewFrame()->GetTopFrame()));
+ aSet.Put(SfxFrameItem( SID_DOCFRAME, &GetView().GetViewFrame()->GetTopFrame()));
FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebView, &GetView()));
SW_MOD()->PutItem(SfxUInt16Item(SID_ATTR_METRIC, static_cast< UINT16 >(eMetric) ));
SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
diff --git a/sw/source/ui/shells/grfsh.cxx b/sw/source/ui/shells/grfsh.cxx
index 69e84ce48184..037758450081 100644
--- a/sw/source/ui/shells/grfsh.cxx
+++ b/sw/source/ui/shells/grfsh.cxx
@@ -225,7 +225,7 @@ void SwGrfShell::Execute(SfxRequest &rReq)
aSet.Put(SfxBoolItem(FN_KEEP_ASPECT_RATIO, aUsrPref.IsKeepRatio()));
aSet.Put(SfxBoolItem( SID_ATTR_GRAF_KEEP_ZOOM, aUsrPref.IsGrfKeepZoom()));
- aSet.Put(SfxFrameItem( SID_DOCFRAME, GetView().GetViewFrame()->GetTopFrame()));
+ aSet.Put(SfxFrameItem( SID_DOCFRAME, &GetView().GetViewFrame()->GetTopFrame()));
SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
DBG_ASSERT(pFact, "Dialogdiet fail!");
diff --git a/sw/source/ui/shells/grfshex.cxx b/sw/source/ui/shells/grfshex.cxx
index 6bfc86cf59af..fe2e7502a3df 100644
--- a/sw/source/ui/shells/grfshex.cxx
+++ b/sw/source/ui/shells/grfshex.cxx
@@ -153,7 +153,7 @@ bool SwTextShell::InsertMediaDlg( SfxRequest& rReq )
pObj->setURL( aURL );
rSh.EnterStdMode();
- rSh.SwFEShell::Insert( *pObj, 0, 0, &aPos );
+ rSh.SwFEShell::InsertDrawObj( *pObj, aPos );
bRet = true;
if( pWindow )
diff --git a/sw/source/ui/shells/makefile.mk b/sw/source/ui/shells/makefile.mk
index 412304022516..e9a03a5a41cc 100644
--- a/sw/source/ui/shells/makefile.mk
+++ b/sw/source/ui/shells/makefile.mk
@@ -73,6 +73,7 @@ SLOFILES = \
$(SLO)$/txtnum.obj
EXCEPTIONSFILES = \
+ $(SLO)$/basesh.obj \
$(SLO)$/annotsh.obj \
$(SLO)$/drwtxtsh.obj \
$(SLO)$/textsh.obj \
diff --git a/sw/source/ui/shells/tabsh.cxx b/sw/source/ui/shells/tabsh.cxx
index 7ff660a6c0bb..5f3389791122 100644
--- a/sw/source/ui/shells/tabsh.cxx
+++ b/sw/source/ui/shells/tabsh.cxx
@@ -729,7 +729,7 @@ void SwTableShell::Execute(SfxRequest &rReq)
DBG_ASSERT(pFact, "SwAbstractDialogFactory fail!");
SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( GetView().GetWindow(),aCoreSet,
- pView->GetViewFrame()->GetFrame()->GetFrameInterface(),
+ pView->GetViewFrame()->GetFrame().GetFrameInterface(),
RC_DLG_SWNUMFMTDLG );
DBG_ASSERT(pDlg, "Dialogdiet fail!");
diff --git a/sw/source/ui/shells/textsh.cxx b/sw/source/ui/shells/textsh.cxx
index 7cbf1767c014..c2308b9def0a 100644
--- a/sw/source/ui/shells/textsh.cxx
+++ b/sw/source/ui/shells/textsh.cxx
@@ -1140,7 +1140,7 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq )
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( GetView().GetWindow(), aAllSet,
- GetView().GetViewFrame()->GetFrame()->GetFrameInterface(), RID_SVXDLG_CHARMAP );
+ GetView().GetViewFrame()->GetFrame().GetFrameInterface(), RID_SVXDLG_CHARMAP );
if( RET_OK == pDlg->Execute() )
{
SFX_ITEMSET_ARG( pDlg->GetOutputItemSet(), pCItem, SfxStringItem, SID_CHARMAP, FALSE );
diff --git a/sw/source/ui/shells/txtattr.cxx b/sw/source/ui/shells/txtattr.cxx
index 50ae047a8b93..9e89620bed28 100644
--- a/sw/source/ui/shells/txtattr.cxx
+++ b/sw/source/ui/shells/txtattr.cxx
@@ -561,7 +561,7 @@ void SwTextShell::ExecParaAttrArgs(SfxRequest &rReq)
DBG_ASSERT(pFact, "SwAbstractDialogFactory fail!");
SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( GetView().GetWindow(), aSet,
- rSh.GetView().GetViewFrame()->GetFrame()->GetFrameInterface(), DLG_SWDROPCAPS );
+ rSh.GetView().GetViewFrame()->GetFrame().GetFrameInterface(), DLG_SWDROPCAPS );
DBG_ASSERT(pDlg, "Dialogdiet fail!");
if (pDlg->Execute() == RET_OK)
{
diff --git a/sw/source/ui/uiview/pview.cxx b/sw/source/ui/uiview/pview.cxx
index aeebee5eecfe..c3631be9669f 100644
--- a/sw/source/ui/uiview/pview.cxx
+++ b/sw/source/ui/uiview/pview.cxx
@@ -44,7 +44,6 @@
#include <sfx2/printer.hxx>
#include <sfx2/progress.hxx>
#include <sfx2/app.hxx>
-#include <sfx2/topfrm.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/request.hxx>
#include <sfx2/dispatch.hxx>
@@ -128,8 +127,7 @@ SFX_IMPL_INTERFACE(SwPagePreView, SfxViewShell, SW_RES(RID_PVIEW_TOOLBOX))
TYPEINIT1(SwPagePreView,SfxViewShell)
-#define SWVIEWFLAGS ( SFX_VIEW_MAXIMIZE_FIRST|SFX_VIEW_OPTIMIZE_EACH| \
- SFX_VIEW_CAN_PRINT|SFX_VIEW_HAS_PRINTOPTIONS )
+#define SWVIEWFLAGS ( SFX_VIEW_CAN_PRINT|SFX_VIEW_HAS_PRINTOPTIONS )
#define MIN_PREVIEW_ZOOM 25
#define MAX_PREVIEW_ZOOM 600
@@ -1566,7 +1564,8 @@ void SwPagePreView::GetState( SfxItemSet& rSet )
ASSERT(nWhich, leeres Set);
SwPagePreviewLayout* pPagePrevwLay = GetViewShell()->PagePreviewLayout();
//#106746# zoom has to be disabled if Accessibility support is switched on
- BOOL bZoomEnabled = !Application::GetSettings().GetMiscSettings().GetEnableATToolSupport();
+ // MT 2010/01, see #110498#
+ BOOL bZoomEnabled = TRUE; // !Application::GetSettings().GetMiscSettings().GetEnableATToolSupport();
while(nWhich)
{
@@ -1816,7 +1815,7 @@ SwPagePreView::SwPagePreView(SfxViewFrame *pViewFrame, SfxViewShell* pOldSh):
pPageUpBtn(0),
pPageDownBtn(0),
pScrollFill(new ScrollBarBox( &pViewFrame->GetWindow(),
- pViewFrame->GetFrame()->GetParentFrame() ? 0 : WB_SIZEABLE )),
+ pViewFrame->GetFrame().GetParentFrame() ? 0 : WB_SIZEABLE )),
mnPageCount( 0 ),
// OD 09.01.2003 #106334#
mbResetFormDesignMode( false ),
@@ -1901,15 +1900,13 @@ SwPagePreView::SwPagePreView(SfxViewFrame *pViewFrame, SfxViewShell* pOldSh):
delete pPageDownBtn;
/* SfxObjectShell* pDocSh = GetDocShell();
- TypeId aType = TYPE( SfxTopViewFrame );
-
- for( SfxViewFrame *pFrame = SfxViewFrame::GetFirst( pDocSh, aType );
- pFrame; pFrame = SfxViewFrame::GetNext( *pFrame, pDocSh, aType ) )
+ for( SfxViewFrame *pFrame = SfxViewFrame::GetFirst( pDocSh );
+ pFrame; pFrame = SfxViewFrame::GetNext( *pFrame, pDocSh ) )
if( pFrame != GetViewFrame() )
{
// es gibt noch eine weitere Sicht auf unser Dokument, also
// aktiviere dieses
- pFrame->GetFrame()->Appear();
+ pFrame->GetFrame().Appear();
break;
}
*/}
@@ -2086,8 +2083,11 @@ void SwPagePreView::OuterResizePixel( const Point &rOfst, const Size &rSize )
//Aufruf der DocSzChgd-Methode der Scrollbars ist noetig, da vom maximalen
//Scrollrange immer die halbe Hoehe der VisArea abgezogen wird.
- if ( pVScrollbar )
- ScrollDocSzChg();
+ if ( pVScrollbar &&
+ aTmpSize.Width() > 0 && aTmpSize.Height() > 0 )
+ {
+ ScrollDocSzChg();
+ }
}
/*--------------------------------------------------------------------
diff --git a/sw/source/ui/uiview/srcview.cxx b/sw/source/ui/uiview/srcview.cxx
index 58ce311d800d..c7c52e3f53ff 100644
--- a/sw/source/ui/uiview/srcview.cxx
+++ b/sw/source/ui/uiview/srcview.cxx
@@ -111,9 +111,7 @@ using ::rtl::OUString;
using ::com::sun::star::util::SearchOptions;
-#define SWSRCVIEWFLAGS ( SFX_VIEW_MAXIMIZE_FIRST| \
- SFX_VIEW_OBJECTSIZE_EMBEDDED| \
- SFX_VIEW_CAN_PRINT|\
+#define SWSRCVIEWFLAGS ( SFX_VIEW_CAN_PRINT|\
SFX_VIEW_NO_NEWWINDOW )
#define SRC_SEARCHOPTIONS (0xFFFF & ~(SEARCH_OPTIONS_FORMAT|SEARCH_OPTIONS_FAMILIES|SEARCH_OPTIONS_SEARCH_ALL))
diff --git a/sw/source/ui/uiview/view.cxx b/sw/source/ui/uiview/view.cxx
index 677015b25d96..23e6a44012e4 100644
--- a/sw/source/ui/uiview/view.cxx
+++ b/sw/source/ui/uiview/view.cxx
@@ -127,14 +127,9 @@ using ::rtl::OUStringBuffer;
extern sal_Bool bNoInterrupt; // in mainwn.cxx
-#define SWVIEWFLAGS ( SFX_VIEW_MAXIMIZE_FIRST| \
- SFX_VIEW_OBJECTSIZE_EMBEDDED| \
- SFX_VIEW_CAN_PRINT| \
+#define SWVIEWFLAGS ( SFX_VIEW_CAN_PRINT| \
SFX_VIEW_HAS_PRINTOPTIONS)
-//MA 06. Nov. 95: Each raus in Absprache mit MI wg. Bug 21523
-// SFX_VIEW_OPTIMIZE_EACH|
-
/*--------------------------------------------------------------------
Beschreibung: Statics
--------------------------------------------------------------------*/
@@ -174,7 +169,7 @@ inline SfxDispatcher &SwView::GetDispatcher()
void SwView::ImpSetVerb( int nSelType )
{
sal_Bool bResetVerbs = bVerbsActive;
- if ( !GetViewFrame()->GetFrame()->IsInPlace() &&
+ if ( !GetViewFrame()->GetFrame().IsInPlace() &&
(nsSelectionType::SEL_OLE|nsSelectionType::SEL_GRF) & nSelType )
{
if ( !pWrtShell->IsSelObjProtected(FLYPROTECT_CONTENT) )
@@ -756,7 +751,7 @@ SwView::SwView( SfxViewFrame *_pFrame, SfxViewShell* pOldSh )
pFormShell(0),
pHScrollbar(0),
pVScrollbar(0),
- pScrollFill(new ScrollBarBox( &_pFrame->GetWindow(), _pFrame->GetFrame()->GetParentFrame() ? 0 : WB_SIZEABLE )),
+ pScrollFill(new ScrollBarBox( &_pFrame->GetWindow(), _pFrame->GetFrame().GetParentFrame() ? 0 : WB_SIZEABLE )),
pHRuler( new SvxRuler(&GetViewFrame()->GetWindow(), pEditWin,
SVXRULER_SUPPORT_TABS |
SVXRULER_SUPPORT_PARAGRAPH_MARGINS |
@@ -928,10 +923,7 @@ SwView::SwView( SfxViewFrame *_pFrame, SfxViewShell* pOldSh )
if( SFX_CREATE_MODE_EMBEDDED != pDocSh->GetCreateMode() )
aBrwsBorder = GetMargin();
- if( _pFrame->GetFrameType() & SFXFRAME_INTERNAL )
- pWrtShell->SetFrameView( aBrwsBorder );
- else
- pWrtShell->SetBrowseBorder( aBrwsBorder );
+ pWrtShell->SetBrowseBorder( aBrwsBorder );
// Im CTOR duerfen keine Shell wechsel erfolgen, die muessen ueber
// den Timer "zwischen gespeichert" werden. Sonst raeumt der SFX
@@ -943,7 +935,7 @@ SwView::SwView( SfxViewFrame *_pFrame, SfxViewShell* pOldSh )
pVRuler->SetActive( sal_True );
SfxViewFrame* pViewFrame = GetViewFrame();
- if( pViewFrame->GetFrame()->GetParentFrame())
+ if( pViewFrame->GetFrame().GetParentFrame())
{
aUsrPref.SetViewHRuler(sal_False);
aUsrPref.SetViewVRuler(sal_False);
@@ -1002,13 +994,6 @@ SwView::SwView( SfxViewFrame *_pFrame, SfxViewShell* pOldSh )
pWrtShell->SetReadOnlyAvailable( aUsrPref.IsCursorInProtectedArea() );
pWrtShell->ApplyAccessiblityOptions(SW_MOD()->GetAccessibilityOptions());
- if( UseObjectSize() )
- {
- //Damit der Sfx _rechtzeitig weiss_, wie gross die sheet::Border sind.
- SvBorder aTmp;
- CalcAndSetBorderPixel( aTmp, sal_True );
- }
-
if( pWrtShell->GetDoc()->IsUpdateExpFld() )
{
SET_CURR_SHELL( pWrtShell );
@@ -1057,10 +1042,10 @@ SwView::SwView( SfxViewFrame *_pFrame, SfxViewShell* pOldSh )
/*uno::Reference< awt::XWindow > aTmpRef;
- _pFrame->GetFrame()->GetFrameInterface()->setComponent( aTmpRef,
+ _pFrame->GetFrame().GetFrameInterface()->setComponent( aTmpRef,
pViewImpl->GetUNOObject_Impl());*/
- uno::Reference< frame::XFrame > xFrame = pVFrame->GetFrame()->GetFrameInterface();
+ uno::Reference< frame::XFrame > xFrame = pVFrame->GetFrame().GetFrameInterface();
uno::Reference< frame::XFrame > xBeamerFrame = xFrame->findFrame(
OUString::createFromAscii("_beamer"), frame::FrameSearchFlag::CHILDREN);
@@ -1622,7 +1607,7 @@ void SwView::ShowCursor( FASTBOOL bOn )
ErrCode SwView::DoVerb( long nVerb )
{
- if ( !GetViewFrame()->GetFrame()->IsInPlace() )
+ if ( !GetViewFrame()->GetFrame().IsInPlace() )
{
SwWrtShell &rSh = GetWrtShell();
const int nSel = rSh.GetSelectionType();
diff --git a/sw/source/ui/uiview/view2.cxx b/sw/source/ui/uiview/view2.cxx
index 14c416f5e398..a38956cc5d68 100644
--- a/sw/source/ui/uiview/view2.cxx
+++ b/sw/source/ui/uiview/view2.cxx
@@ -72,7 +72,6 @@
#include <sfx2/fcontnr.hxx>
#include <editeng/sizeitem.hxx>
#include <sfx2/dispatch.hxx>
-#include <sfx2/topfrm.hxx>
#include <svl/whiter.hxx>
#include <svl/ptitem.hxx>
#include <sfx2/linkmgr.hxx>
@@ -1028,7 +1027,7 @@ void __EXPORT SwView::Execute(SfxRequest &rReq)
if(bQuery)
{
SfxViewFrame* pTmpFrame = GetViewFrame();
- SfxHelp::OpenHelpAgent( pTmpFrame->GetFrame(), HID_MAIL_MERGE_SELECT );
+ SfxHelp::OpenHelpAgent( &pTmpFrame->GetFrame(), HID_MAIL_MERGE_SELECT );
SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
DBG_ASSERT(pFact, "Dialogdiet fail!");
AbstractMailMergeCreateFromDlg* pDlg = pFact->CreateMailMergeCreateFromDlg( DLG_MERGE_CREATE,
diff --git a/sw/source/ui/uiview/viewdraw.cxx b/sw/source/ui/uiview/viewdraw.cxx
index fe38c56f29e5..7e35ca0049df 100644
--- a/sw/source/ui/uiview/viewdraw.cxx
+++ b/sw/source/ui/uiview/viewdraw.cxx
@@ -171,7 +171,7 @@ void SwView::ExecDraw(SfxRequest& rReq)
// TODO: unmark all other
pWrtShell->EnterStdMode();
- pWrtShell->SwFEShell::Insert( *pObj, 0, 0, &aStartPos );
+ pWrtShell->SwFEShell::InsertDrawObj( *pObj, aStartPos );
}
}
}
@@ -218,7 +218,7 @@ void SwView::ExecDraw(SfxRequest& rReq)
aSize = Size( 2835, 2835 );
pWrtShell->EnterStdMode();
- pWrtShell->SwFEShell::Insert( *pObj, 0, 0, &aPos );
+ pWrtShell->SwFEShell::InsertDrawObj( *pObj, aPos );
rReq.Ignore ();
}
}
diff --git a/sw/source/ui/uiview/viewling.cxx b/sw/source/ui/uiview/viewling.cxx
index 05191276e0d0..04414b5d83db 100644
--- a/sw/source/ui/uiview/viewling.cxx
+++ b/sw/source/ui/uiview/viewling.cxx
@@ -830,10 +830,9 @@ sal_Bool SwView::ExecSpellPopup(const Point& rPt)
else
{
SfxViewFrame *pSfxViewFrame = GetViewFrame();
- SfxFrame *pSfxFrame = pSfxViewFrame? pSfxViewFrame->GetFrame() : 0;
uno::Reference< frame::XFrame > xFrame;
- if (pSfxFrame)
- xFrame = pSfxFrame->GetFrameInterface();
+ if ( pSfxViewFrame )
+ xFrame = pSfxViewFrame->GetFrame().GetFrameInterface();
com::sun::star::util::URL aURL;
uno::Reference< frame::XDispatchProvider > xDispatchProvider( xFrame, UNO_QUERY );
uno::Reference< lang::XMultiServiceFactory > xMgr( utl::getProcessServiceFactory(), uno::UNO_QUERY );
diff --git a/sw/source/ui/uiview/viewmdi.cxx b/sw/source/ui/uiview/viewmdi.cxx
index 8df3116fa189..d3c5d54d8743 100644
--- a/sw/source/ui/uiview/viewmdi.cxx
+++ b/sw/source/ui/uiview/viewmdi.cxx
@@ -178,7 +178,7 @@ void SwView::_SetZoom( const Size &rEditSize, SvxZoomType eZoomType,
nFac = Max( long( MINZOOM ), nFac );
SwViewOption aOpt( *pOpt );
- if ( !GetViewFrame()->GetFrame()->IsInPlace() )
+ if ( !GetViewFrame()->GetFrame().IsInPlace() )
{
//MasterUsrPrefs updaten UND DANACH die ViewOptions der aktuellen
//View updaten.
@@ -261,7 +261,7 @@ void SwView::SetViewLayout( USHORT nColumns, bool bBookMode, BOOL bViewOnly )
ACT_KONTEXT(pWrtShell);
- if ( !GetViewFrame()->GetFrame()->IsInPlace() && !bViewOnly )
+ if ( !GetViewFrame()->GetFrame().IsInPlace() && !bViewOnly )
{
const BOOL bWeb = 0 != PTR_CAST(SwWebView, this);
SwMasterUsrPref *pUsrPref = (SwMasterUsrPref*)SW_MOD()->GetUsrPref(bWeb);
@@ -347,7 +347,7 @@ void SwView::CreatePageButtons(BOOL bShow)
pPageUpBtn->SetHelpId(HID_SCRL_PAGEUP);
pPageDownBtn = new SwHlpImageButton(pMDI, SW_RES( BTN_PAGEDOWN ), FALSE );
pPageDownBtn->SetHelpId(HID_SCRL_PAGEDOWN);
- Reference< XFrame > xFrame = GetViewFrame()->GetFrame()->GetFrameInterface();
+ Reference< XFrame > xFrame = GetViewFrame()->GetFrame().GetFrameInterface();
pNaviBtn = new SwNaviImageButton(pMDI, xFrame );
pNaviBtn->SetHelpId(HID_SCRL_NAVI);
Link aLk( LINK( this, SwView, BtnPage ) );
diff --git a/sw/source/ui/uiview/viewport.cxx b/sw/source/ui/uiview/viewport.cxx
index 3d8c3f05e1f7..b343619f2ea8 100644
--- a/sw/source/ui/uiview/viewport.cxx
+++ b/sw/source/ui/uiview/viewport.cxx
@@ -221,7 +221,7 @@ aDocSz = rSz;
SetVisArea( aNewVisArea, FALSE );
if ( UpdateScrollbars() && !bInOuterResizePixel && !bInInnerResizePixel &&
- !GetViewFrame()->GetFrame()->IsInPlace())
+ !GetViewFrame()->GetFrame().IsInPlace())
OuterResizePixel( Point(),
GetViewFrame()->GetWindow().GetOutputSizePixel() );
}
@@ -355,7 +355,7 @@ void SwView::SetVisArea( const Point &rPt, BOOL bUpdateScrollbar )
void SwView::CheckVisArea()
{
pHScrollbar->SetAuto( pWrtShell->getIDocumentSettingAccess()->get(IDocumentSettingAccess::BROWSE_MODE) &&
- !GetViewFrame()->GetFrame()->IsInPlace() );
+ !GetViewFrame()->GetFrame().IsInPlace() );
if ( IsDocumentBorder() )
{
if ( aVisArea.Left() != DOCUMENTBORDER ||
@@ -732,7 +732,7 @@ IMPL_LINK( SwView, ScrollHdl, SwScrollbar *, pScrollbar )
{
// JP 21.07.00: the end scrollhandler invalidate the FN_STAT_PAGE,
// so we dont must do it agin.
-// if(!GetViewFrame()->GetFrame()->IsInPlace())
+// if(!GetViewFrame()->GetFrame().IsInPlace())
// S F X_BINDINGS().Update(FN_STAT_PAGE);
//QuickHelp:
@@ -1053,7 +1053,7 @@ void SwView::InnerResizePixel( const Point &rOfst, const Size &rSize )
Size aSz( rSize );
SvBorder aBorder;
CalcAndSetBorderPixel( aBorder, TRUE );
- if ( GetViewFrame()->GetFrame()->IsInPlace() )
+ if ( GetViewFrame()->GetFrame().IsInPlace() )
{
Size aViewSize( aSz );
Point aViewPos( rOfst );
diff --git a/sw/source/ui/uno/unodispatch.cxx b/sw/source/ui/uno/unodispatch.cxx
index 4cfbdf7c40ab..7f0347ac8bf7 100644
--- a/sw/source/ui/uno/unodispatch.cxx
+++ b/sw/source/ui/uno/unodispatch.cxx
@@ -57,8 +57,7 @@ const sal_Char* cInternalDBChangeNotification = ".uno::Writer/DataSourceChanged"
SwXDispatchProviderInterceptor::SwXDispatchProviderInterceptor(SwView& rVw) :
m_pView(&rVw)
{
- SfxFrame* pFrame = m_pView->GetViewFrame()->GetFrame();
- uno::Reference< frame::XFrame> xUnoFrame = pFrame->GetFrameInterface();
+ uno::Reference< frame::XFrame> xUnoFrame = m_pView->GetViewFrame()->GetFrame().GetFrameInterface();
m_xIntercepted = uno::Reference< frame::XDispatchProviderInterception>(xUnoFrame, uno::UNO_QUERY);
if(m_xIntercepted.is())
{
diff --git a/sw/source/ui/uno/unodoc.cxx b/sw/source/ui/uno/unodoc.cxx
index 49e8f37f2b06..3558b5391a06 100644
--- a/sw/source/ui/uno/unodoc.cxx
+++ b/sw/source/ui/uno/unodoc.cxx
@@ -66,9 +66,7 @@ uno::Reference< uno::XInterface > SAL_CALL SwTextDocument_createInstance(
{
::vos::OGuard aGuard( Application::GetSolarMutex() );
SwDLL::Init();
- const SfxObjectCreateMode eCreateMode = ( _nCreationFlags & SFXMODEL_EMBEDDED_OBJECT ) ? SFX_CREATE_MODE_EMBEDDED : SFX_CREATE_MODE_STANDARD;
- const bool bScriptSupport = ( _nCreationFlags & SFXMODEL_DISABLE_EMBEDDED_SCRIPTS ) == 0;
- SfxObjectShell* pShell = new SwDocShell( eCreateMode, bScriptSupport );
+ SfxObjectShell* pShell = new SwDocShell( _nCreationFlags );
return uno::Reference< uno::XInterface >( pShell->GetModel() );
}
diff --git a/sw/source/ui/uno/unomailmerge.cxx b/sw/source/ui/uno/unomailmerge.cxx
index c0645c0d0648..06b9e62b4a94 100644
--- a/sw/source/ui/uno/unomailmerge.cxx
+++ b/sw/source/ui/uno/unomailmerge.cxx
@@ -426,7 +426,7 @@ SwXMailMerge::SwXMailMerge() :
SwDocShell *pDocShell = new SwDocShell( SFX_CREATE_MODE_STANDARD );
xDocSh = pDocShell;
xDocSh->DoInitNew( 0 );
- SfxViewFrame *pFrame = SfxViewFrame::CreateViewFrame( *xDocSh, 0, TRUE );
+ SfxViewFrame *pFrame = SfxViewFrame::LoadHiddenDocument( *xDocSh, 0 );
SwView *pView = (SwView*) pFrame->GetViewShell();
pView->AttrChangedNotify( &pView->GetWrtShell() );//Damit SelectShell gerufen wird.
@@ -624,7 +624,7 @@ uno::Any SAL_CALL SwXMailMerge::execute(
aCurSelection = aTranslated;
}
- SfxViewFrame* pFrame = SfxViewFrame::GetFirst( xCurDocSh, 0, FALSE);
+ SfxViewFrame* pFrame = SfxViewFrame::GetFirst( xCurDocSh, FALSE);
SwView *pView = PTR_CAST( SwView, pFrame->GetViewShell() );
if (!pView)
throw RuntimeException();
diff --git a/sw/source/ui/uno/unotxdoc.cxx b/sw/source/ui/uno/unotxdoc.cxx
index e60241b19814..c818affa9398 100644
--- a/sw/source/ui/uno/unotxdoc.cxx
+++ b/sw/source/ui/uno/unotxdoc.cxx
@@ -220,7 +220,6 @@ void lcl_DisposeView( SfxViewFrame* pToClose, SwDocShell* pDocShell )
{
// check if the view frame still exists
SfxViewFrame* pFound = SfxViewFrame::GetFirst( pDocShell,
- 0,
FALSE );
while(pFound)
{
@@ -231,7 +230,6 @@ void lcl_DisposeView( SfxViewFrame* pToClose, SwDocShell* pDocShell )
}
pFound = SfxViewFrame::GetNext( *pFound,
pDocShell,
- 0,
FALSE );
}
}
@@ -1223,7 +1221,7 @@ void SwXTextDocument::printPages(const Sequence< beans::PropertyValue >& xOption
::vos::OGuard aGuard(Application::GetSolarMutex());
if(IsValid())
{
- SfxViewFrame* pFrame = SfxViewFrame::CreateViewFrame( *pDocShell, 7, sal_True );
+ SfxViewFrame* pFrame = SfxViewFrame::LoadHiddenDocument( *pDocShell, 7 );
SfxRequest aReq(FN_PRINT_PAGEPREVIEW, SFX_CALLMODE_SYNCHRON,
pDocShell->GetDoc()->GetAttrPool());
aReq.AppendItem(SfxBoolItem(FN_PRINT_PAGEPREVIEW, sal_True));
@@ -2698,7 +2696,7 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount(
if (!pWrtShell)
{
//create a hidden view to be able to export as PDF also in print preview
- m_pHiddenViewFrame = SfxViewFrame::CreateViewFrame( *pRenderDocShell, 2, TRUE );
+ m_pHiddenViewFrame = SfxViewFrame::LoadHiddenDocument( *pRenderDocShell, 2 );
SwView* pSwView = (SwView*) m_pHiddenViewFrame->GetViewShell();
pWrtShell = pSwView->GetWrtShellPtr();
}
@@ -2908,7 +2906,7 @@ SfxViewShell * SwXTextDocument::GuessViewShell(
SwView *pSwView = 0;
SwPagePreView *pSwPagePreView = 0;
SwSrcView *pSwSrcView = 0;
- SfxViewFrame *pFrame = SfxViewFrame::GetFirst( pDocShell, 0, sal_False );
+ SfxViewFrame *pFrame = SfxViewFrame::GetFirst( pDocShell, sal_False );
// look for the view shell with the same controller in use,
// otherwise look for a suitable view, preferably a SwView,
@@ -2927,7 +2925,7 @@ SfxViewShell * SwXTextDocument::GuessViewShell(
}
else if (pSwView || pSwSrcView)
break;
- pFrame = SfxViewFrame::GetNext( *pFrame, pDocShell, 0, sal_False );
+ pFrame = SfxViewFrame::GetNext( *pFrame, pDocShell, sal_False );
}
DBG_ASSERT( pSwView || pSwPagePreView || pSwSrcView, "failed to get view shell" );
diff --git a/sw/source/ui/uno/unotxvw.cxx b/sw/source/ui/uno/unotxvw.cxx
index 736304e6aefb..24049e571f60 100644
--- a/sw/source/ui/uno/unotxvw.cxx
+++ b/sw/source/ui/uno/unotxvw.cxx
@@ -911,7 +911,7 @@ SfxObjectShellRef SwXTextView::BuildTmpSelectionDoc( SfxObjectShellRef& /*rRef*/
SfxObjectShellRef xDocSh( pDocSh = new SwDocShell( /*pPrtDoc, */SFX_CREATE_MODE_STANDARD ) );
xDocSh->DoInitNew( 0 );
pOldSh->FillPrtDoc(pDocSh->GetDoc(), pPrt);
- SfxViewFrame* pDocFrame = SfxViewFrame::CreateViewFrame( *xDocSh, 0, TRUE );
+ SfxViewFrame* pDocFrame = SfxViewFrame::LoadHiddenDocument( *xDocSh, 0 );
SwView* pDocView = (SwView*) pDocFrame->GetViewShell();
pDocView->AttrChangedNotify( &pDocView->GetWrtShell() );//Damit SelectShell gerufen wird.
SwWrtShell* pSh = pDocView->GetWrtShellPtr();
diff --git a/sw/source/ui/utlui/navipi.cxx b/sw/source/ui/utlui/navipi.cxx
index a2d0d2cdf2d3..ea43533f70d8 100644
--- a/sw/source/ui/utlui/navipi.cxx
+++ b/sw/source/ui/utlui/navipi.cxx
@@ -500,7 +500,7 @@ void SwNavigationPI::CreateNavigationTool(const Rectangle& rRect, BOOL bSetFocus
{
// SfxBindings& rBind = GetCreateView()->GetViewFrame()->GetBindings();
// rBind.ENTERREGISTRATIONS();
- Reference< XFrame > xFrame = GetCreateView()->GetViewFrame()->GetFrame()->GetFrameInterface();
+ Reference< XFrame > xFrame = GetCreateView()->GetViewFrame()->GetFrame().GetFrameInterface();
SwScrollNaviPopup* pPopup = new
SwScrollNaviPopup(FN_SCROLL_NAVIGATION,
xFrame );
diff --git a/sw/source/ui/utlui/numfmtlb.cxx b/sw/source/ui/utlui/numfmtlb.cxx
index 58e332ccbc45..baf059c51c32 100644
--- a/sw/source/ui/utlui/numfmtlb.cxx
+++ b/sw/source/ui/utlui/numfmtlb.cxx
@@ -435,7 +435,7 @@ IMPL_LINK( NumFormatListBox, SelectHdl, ListBox *, pBox )
DBG_ASSERT(pFact, "SwAbstractDialogFactory fail!");
SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( this, aCoreSet,
- GetView()->GetViewFrame()->GetFrame()->GetFrameInterface(),
+ GetView()->GetViewFrame()->GetFrame().GetFrameInterface(),
RC_DLG_SWNUMFMTDLG );
DBG_ASSERT(pDlg, "Dialogdiet fail!");
diff --git a/sw/source/ui/utlui/uitool.cxx b/sw/source/ui/utlui/uitool.cxx
index facc83c6a0a9..01f6c4e84d7a 100644
--- a/sw/source/ui/utlui/uitool.cxx
+++ b/sw/source/ui/utlui/uitool.cxx
@@ -756,7 +756,7 @@ bool ExecuteMenuCommand( PopupMenu& rMenu, SfxViewFrame& rViewFrame, USHORT nId
}
if(sCommand.Len())
{
- uno::Reference< frame::XFrame > xFrame = rViewFrame.GetFrame()->GetFrameInterface();
+ uno::Reference< frame::XFrame > xFrame = rViewFrame.GetFrame().GetFrameInterface();
uno::Reference < frame::XDispatchProvider > xProv( xFrame, uno::UNO_QUERY );
util::URL aURL;
aURL.Complete = sCommand;
diff --git a/sw/source/ui/wrtsh/wrtsh1.cxx b/sw/source/ui/wrtsh/wrtsh1.cxx
index 389f6eac69e3..57e76a9cff61 100644
--- a/sw/source/ui/wrtsh/wrtsh1.cxx
+++ b/sw/source/ui/wrtsh/wrtsh1.cxx
@@ -644,7 +644,7 @@ BOOL SwWrtShell::InsertOleObject( const svt::EmbeddedObjectRef& xRef, SwFlyFrmFm
void SwWrtShell::LaunchOLEObj( long nVerb )
{
if ( GetCntType() == CNT_OLE &&
- !GetView().GetViewFrame()->GetFrame()->IsInPlace() )
+ !GetView().GetViewFrame()->GetFrame().IsInPlace() )
{
svt::EmbeddedObjectRef& xRef = GetOLEObject();
ASSERT( xRef.is(), "OLE not found" );
@@ -1378,10 +1378,13 @@ void SwWrtShell::NumOrBulletOn(BOOL bNum)
if ( pTxtNode &&
ePosAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
{
- short nTxtNodeFirstLineOffset( 0 );
- pTxtNode->GetFirstLineOfsWithNum( nTxtNodeFirstLineOffset );
- const SwTwips nTxtNodeIndent = pTxtNode->GetLeftMarginForTabCalculation() +
- nTxtNodeFirstLineOffset;
+ // --> OD 2010-01-05 #b6884103#
+// short nTxtNodeFirstLineOffset( 0 );
+// pTxtNode->GetFirstLineOfsWithNum( nTxtNodeFirstLineOffset );
+// const SwTwips nTxtNodeIndent = pTxtNode->GetLeftMarginForTabCalculation() +
+// nTxtNodeFirstLineOffset;
+ const SwTwips nTxtNodeIndent = pTxtNode->GetAdditionalIndentForStartingNewList();
+ // <--
if ( ( nTxtNodeIndent + nWidthOfTabs ) != 0 )
{
const SwTwips nIndentChange = nTxtNodeIndent + nWidthOfTabs;