summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2012-05-31 17:59:17 +0100
committerMichael Meeks <michael.meeks@suse.com>2012-05-31 17:59:51 +0100
commitf2719a90ea29bc21f4b95b5e046c5b1d93965a2a (patch)
tree3d3a89e9bbb559a6327f2ee6d055bfe560000cf6 /sw
parent21b8d9fa7cd9a26b80ba2dbd408d1a4bb92ebf92 (diff)
targetted revert of comment cleanup
Change-Id: I9d7a761a0f479c30269e289796244572c0ed8d86
Diffstat (limited to 'sw')
-rw-r--r--sw/source/core/view/pagepreviewlayout.cxx195
-rw-r--r--sw/source/core/view/printdata.cxx2
-rw-r--r--sw/source/core/view/vdraw.cxx107
-rw-r--r--sw/source/core/view/viewimp.cxx148
-rw-r--r--sw/source/core/view/viewpg.cxx20
-rw-r--r--sw/source/core/view/viewsh.cxx454
-rw-r--r--sw/source/core/view/vnew.cxx115
-rwxr-xr-x[-rw-r--r--]sw/source/core/view/vprint.cxx120
8 files changed, 1033 insertions, 128 deletions
diff --git a/sw/source/core/view/pagepreviewlayout.cxx b/sw/source/core/view/pagepreviewlayout.cxx
index 4b85e1be0ca0..fff8fceb1d63 100644
--- a/sw/source/core/view/pagepreviewlayout.cxx
+++ b/sw/source/core/view/pagepreviewlayout.cxx
@@ -38,13 +38,15 @@
#include <viewopt.hxx>
#include <swregion.hxx>
#include <comcore.hrc>
+// OD 19.02.2003 #107369# - method <SwAlignRect(..)>
#include <frmtool.hxx>
+// OD 24.09.2003 #i19975#
#include <svx/zoomitem.hxx>
#include <printdata.hxx>
#include <IDocumentDeviceAccess.hxx>
-// method to update statics for paint
+// OD 20.02.2003 #107369# - method to update statics for paint
// Note: method defined in '/sw/source/core/layout/paintfrm.cxx'
extern void SwCalcPixStatics( OutputDevice *pOut );
@@ -60,6 +62,7 @@ SwPagePreviewLayout::SwPagePreviewLayout( ViewShell& _rParentViewShell,
{
_Clear();
+ // OD 2004-03-05 #i18143#
mbBookPreview = false;
mbBookPreviewModeToggled = false;
@@ -95,6 +98,7 @@ void SwPagePreviewLayout::_Clear()
mnSelectedPageNum = 0;
_ClearPrevwPageData();
+ // OD 07.11.2003 #i22014#
mbInPaint = false;
mbNewLayoutDuringPaint = false;
}
@@ -122,6 +126,12 @@ void SwPagePreviewLayout::_ClearPrevwPageData()
maPrevwPages.clear();
}
+/** calculate page preview layout sizes
+
+ OD 18.12.2002 #103492#
+
+ @author OD
+*/
void SwPagePreviewLayout::_CalcPrevwLayoutSizes()
{
// calculate maximal page size; calculate also number of pages
@@ -160,6 +170,7 @@ void SwPagePreviewLayout::_CalcPrevwLayoutSizes()
// document height
// determine number of rows needed for <nPages> in preview layout
+ // OD 19.02.2003 #107369# - use method <GetRowOfPage(..)>.
sal_uInt16 nDocRows = GetRowOfPage( mnPages );
aDocSize.Height() = nDocRows * maMaxPageSize.Height() +
(nDocRows+1) * mnYFree;
@@ -170,12 +181,14 @@ void SwPagePreviewLayout::_CalcPrevwLayoutSizes()
/** init page preview layout
+ OD 11.12.2002 #103492#
initialize the page preview settings for a given layout.
side effects:
(1) If parameter <_bCalcScale> is true, mapping mode with calculated
scaling is set at the output device and the zoom at the view options of
the given view shell is set with the calculated scaling.
+ @author OD
*/
bool SwPagePreviewLayout::Init( const sal_uInt16 _nCols,
const sal_uInt16 _nRows,
@@ -234,6 +247,7 @@ bool SwPagePreviewLayout::Init( const sal_uInt16 _nCols,
aMapMode.SetScaleX( aYScale );
// set created mapping mode with calculated scaling at output device.
mrParentViewShell.GetOut()->SetMapMode( aMapMode );
+ // OD 20.02.2003 #107369# - update statics for paint.
::SwCalcPixStatics( mrParentViewShell.GetOut() );
}
@@ -245,6 +259,12 @@ bool SwPagePreviewLayout::Init( const sal_uInt16 _nCols,
return true;
}
+/** apply new zoom at given view shell
+
+ OD 11.12.2002 #103492# - implementation of <_ApplyNewZoomAtViewShell>
+
+ @author OD
+*/
void SwPagePreviewLayout::_ApplyNewZoomAtViewShell( sal_uInt8 _aNewZoom )
{
SwViewOption aNewViewOptions = *(mrParentViewShell.GetViewOptions());
@@ -258,6 +278,12 @@ void SwPagePreviewLayout::_ApplyNewZoomAtViewShell( sal_uInt8 _aNewZoom )
}
}
+/** method to adjust page preview layout to document changes
+
+ OD 18.12.2002 #103492#
+
+ @author OD
+*/
bool SwPagePreviewLayout::ReInit()
{
// check environment and parameters
@@ -278,8 +304,13 @@ bool SwPagePreviewLayout::ReInit()
// =============================================================================
// methods to prepare paint of page preview
// =============================================================================
+/** prepare paint of page preview
-// _nProposedStartPageNum, _onStartPageNum are absolute
+ OD 12.12.2002 #103492#
+ OD 21.03.2003 #108282# - delete parameter _onStartPageVirtNum
+
+ @author OD, _nProposedStartPageNum, _onStartPageNum are absolute
+*/
bool SwPagePreviewLayout::Prepare( const sal_uInt16 _nProposedStartPageNum,
const Point _aProposedStartPos,
const Size& _rPxWinSize,
@@ -337,7 +368,8 @@ bool SwPagePreviewLayout::Prepare( const sal_uInt16 _nProposedStartPageNum,
// determine start page
if ( _bStartWithPageAtFirstCol )
{
- // leaving left-top-corner blank is controlled by <mbBookPreview>.
+ // OD 19.02.2003 #107369# - leaving left-top-corner blank is
+ // controlled by <mbBookPreview>.
if ( mbBookPreview &&
( nProposedStartPageNum == 1 || nRowOfProposed == 1 )
)
@@ -376,14 +408,16 @@ bool SwPagePreviewLayout::Prepare( const sal_uInt16 _nProposedStartPageNum,
sal_uInt16 nRowOfProposed =
static_cast<sal_uInt16>(_aProposedStartPos.Y() / mnRowHeight) + 1;
// determine start page == page at proposed start position
- // leaving left-top-corner blank is controlled by <mbBookPreview>.
+ // OD 19.02.2003 #107369# - leaving left-top-corner blank is
+ // controlled by <mbBookPreview>.
if ( mbBookPreview &&
( nRowOfProposed == 1 && nColOfProposed == 1 )
)
mnPaintPhyStartPageNum = 1;
else
{
- // leaving left-top-corner blank is controlled by <mbBookPreview>.
+ // OD 19.02.2003 #107369# - leaving left-top-corner blank is
+ // controlled by <mbBookPreview>.
mnPaintPhyStartPageNum = (nRowOfProposed-1) * mnCols + nColOfProposed;
if ( mbBookPreview )
--mnPaintPhyStartPageNum;
@@ -414,7 +448,8 @@ bool SwPagePreviewLayout::Prepare( const sal_uInt16 _nProposedStartPageNum,
_CalcDocPrevwPaintRect();
_orDocPreviewPaintRect = maPaintedPrevwDocRect;
- // shift visible preview document area to the left,if on the right is an area left blank.
+ // OD 20.01.2003 #103492# - shift visible preview document area to the left,
+ // if on the right is an area left blank.
if ( !mbDoesLayoutColsFitIntoWindow &&
maPaintedPrevwDocRect.GetWidth() < maWinSize.Width() )
{
@@ -424,7 +459,9 @@ bool SwPagePreviewLayout::Prepare( const sal_uInt16 _nProposedStartPageNum,
_rPxWinSize, _onStartPageNum,
_orDocPreviewPaintRect, _bStartWithPageAtFirstCol );
}
- // shift visible preview document area to the left,if on the right is an area left blank.
+
+ // OD 20.01.2003 #103492# - shift visible preview document area to the top,
+ // if on the botton is an area left blank.
if ( mbBookPreviewModeToggled &&
maPaintedPrevwDocRect.Bottom() == maPreviewDocRect.Bottom() &&
maPaintedPrevwDocRect.GetHeight() < maWinSize.Height() )
@@ -454,7 +491,7 @@ bool SwPagePreviewLayout::Prepare( const sal_uInt16 _nProposedStartPageNum,
// accessible pages with needed data.
_CalcPreviewPages();
- // indicate new layout, if print preview is in paint
+ // OD 07.11.2003 #i22014# - indicate new layout, if print preview is in paint
if ( mbInPaint )
{
mbNewLayoutDuringPaint = true;
@@ -469,6 +506,12 @@ bool SwPagePreviewLayout::Prepare( const sal_uInt16 _nProposedStartPageNum,
return true;
}
+/** calculate additional paint offset
+
+ OD 12.12.2002 #103492#
+
+ @author OD
+*/
void SwPagePreviewLayout::_CalcAdditionalPaintOffset()
{
if ( mnPrevwLayoutWidth <= maWinSize.Width() &&
@@ -496,6 +539,12 @@ void SwPagePreviewLayout::_CalcAdditionalPaintOffset()
}
}
+/** calculate painted preview document rectangle
+
+ OD 12.12.2002 #103492#
+
+ @author OD
+*/
void SwPagePreviewLayout::_CalcDocPrevwPaintRect()
{
Point aTopLeftPos = maPaintPreviewDocOffset;
@@ -503,12 +552,14 @@ void SwPagePreviewLayout::_CalcDocPrevwPaintRect()
Size aSize;
if ( mbDoesLayoutColsFitIntoWindow )
+ //aSize.Width() = mnPrevwLayoutWidth;
aSize.Width() = Min( mnPrevwLayoutWidth,
maPreviewDocRect.GetWidth() - aTopLeftPos.X() );
else
aSize.Width() = Min( maPreviewDocRect.GetWidth() - aTopLeftPos.X(),
maWinSize.Width() - maAdditionalPaintOffset.X() );
if ( mbDoesLayoutRowsFitIntoWindow )
+ //aSize.Height() = mnPrevwLayoutHeight;
aSize.Height() = Min( mnPrevwLayoutHeight,
maPreviewDocRect.GetHeight() - aTopLeftPos.Y() );
else
@@ -517,6 +568,12 @@ void SwPagePreviewLayout::_CalcDocPrevwPaintRect()
maPaintedPrevwDocRect.SetSize( aSize );
}
+/** calculate preview pages
+
+ OD 12.12.2002 #103492#
+
+ @author OD
+*/
void SwPagePreviewLayout::_CalcPreviewPages()
{
_ClearPrevwPageData();
@@ -571,7 +628,8 @@ void SwPagePreviewLayout::_CalcPreviewPages()
}
if ( aCurrPaintOffset.X() < maWinSize.Width() )
{
- // leaving left-top-corner blank is controlled by <mbBookPreview>.
+ // OD 19.02.2003 #107369# - leaving left-top-corner blank is
+ // controlled by <mbBookPreview>.
if ( mbBookPreview && pPage->GetPhyPageNum() == 1 && mnCols != 1 && nCurrCol == 1
)
{
@@ -612,6 +670,12 @@ void SwPagePreviewLayout::_CalcPreviewPages()
}
}
+/** determines preview data for a given page and a given preview offset
+
+ OD 13.12.2002 #103492#
+
+ @author OD
+*/
bool SwPagePreviewLayout::_CalcPreviewDataForPage( const SwPageFrm& _rPage,
const Point& _rPrevwOffset,
PrevwPage* _opPrevwPage )
@@ -650,6 +714,12 @@ bool SwPagePreviewLayout::_CalcPreviewDataForPage( const SwPageFrm& _rPage,
return true;
}
+/** enable/disable book preview
+
+ OD 2004-03-04 #i18143#
+
+ @author OD
+*/
bool SwPagePreviewLayout::SetBookPreviewMode( const bool _bEnableBookPreview,
sal_uInt16& _onStartPageNum,
Rectangle& _orDocPreviewPaintRect )
@@ -687,7 +757,12 @@ bool SwPagePreviewLayout::SetBookPreviewMode( const bool _bEnableBookPreview,
// methods to determine new data for changing the current shown part of the
// document preview.
// =============================================================================
+/** calculate start position for new scale
+
+ OD 12.12.2002 #103492#
+ @author OD
+*/
Point SwPagePreviewLayout::GetPreviewStartPosForNewScale(
const Fraction& _aNewScale,
const Fraction& _aOldScale,
@@ -957,7 +1032,12 @@ SwTwips SwPagePreviewLayout::GetWinPagesScrollAmount(
// =============================================================================
// methods to paint page preview layout
// =============================================================================
+/** paint prepared preview
+ OD 12.12.2002 #103492#
+
+ @author OD
+*/
bool SwPagePreviewLayout::Paint( const Rectangle _aOutRect ) const
{
// check environment and parameters
@@ -972,7 +1052,7 @@ bool SwPagePreviewLayout::Paint( const Rectangle _aOutRect ) const
return false;
}
- // #i22014# no paint if <superfluous> flag is set at layout
+ // OD 17.11.2003 #i22014# - no paint, if <superfluous> flag is set at layout
if ( mrLayoutRootFrm.IsSuperfluous() )
{
return true;
@@ -980,7 +1060,7 @@ bool SwPagePreviewLayout::Paint( const Rectangle _aOutRect ) const
// environment and parameter ok
- // #i22014#
+ // OD 07.11.2003 #i22014#
if ( mbInPaint )
{
return false;
@@ -1041,8 +1121,8 @@ bool SwPagePreviewLayout::Paint( const Rectangle _aOutRect ) const
const Color aRetouche( mrParentViewShell.Imp()->GetRetoucheColor() );
if( pOutputDev->GetFillColor() != aRetouche )
pOutputDev->SetFillColor( aRetouche );
- pOutputDev->SetLineColor(); // no line color
- // use aligned page rectangle
+ pOutputDev->SetLineColor(); // OD 20.02.2003 #107369# - no line color
+ // OD 20.02.2003 #107369# - use aligned page rectangle
{
SwRect aTmpPageRect( aPageRect );
::SwAlignRect( aTmpPageRect, &mrParentViewShell);
@@ -1059,7 +1139,7 @@ bool SwPagePreviewLayout::Paint( const Rectangle _aOutRect ) const
TEXT_DRAW_CLIP );
pOutputDev->SetFont( aOldFont );
// paint shadow and border for empty page
- // use new method to paint page border and shadow
+ // OD 19.02.2003 #107369# - use new method to paint page border and shadow
SwPageFrm::PaintBorderAndShadow( aPageRect, &mrParentViewShell, true, false, true );
}
else
@@ -1068,7 +1148,8 @@ bool SwPagePreviewLayout::Paint( const Rectangle _aOutRect ) const
aPxPaintRect.Intersection( aPxOutRect );
Rectangle aPaintRect = pOutputDev->PixelToLogic( aPxPaintRect );
mrParentViewShell.Paint( aPaintRect );
- // #i80691# paint page border and shadow
+ // --> OD 2007-08-15 #i80691#
+ // paint page border and shadow
{
SwRect aPageBorderRect;
SwPageFrm::GetBorderAndShadowBoundRect( SwRect( aPageRect ), &mrParentViewShell, aPageBorderRect,
@@ -1078,8 +1159,10 @@ bool SwPagePreviewLayout::Paint( const Rectangle _aOutRect ) const
SwPageFrm::PaintBorderAndShadow( aPageRect, &mrParentViewShell, true, false, true );
mrParentViewShell.DLPostPaint2(true);
}
+ // <--
}
- // #i22014# stop painting, because new print preview layout is created during paint.
+ // OD 07.11.2003 #i22014# - stop painting, because new print
+ // preview layout is created during paint.
if ( mbNewLayoutDuringPaint )
{
break;
@@ -1093,7 +1176,8 @@ bool SwPagePreviewLayout::Paint( const Rectangle _aOutRect ) const
}
}
- // #i22014# no update of accessible preview, if a new print preview layout is created during paint.
+ // OD 17.11.2003 #i22014# - no update of accessible preview, if a new
+ // print preview layout is created during paint.
if ( !mbNewLayoutDuringPaint )
{
// update at accessiblilty interface
@@ -1107,12 +1191,19 @@ bool SwPagePreviewLayout::Paint( const Rectangle _aOutRect ) const
pOutputDev->SetMapMode( aSavedMapMode );
mrParentViewShell.aVisArea.Clear();
+ // OD 07.11.2003 #i22014#
mbInPaint = false;
mbNewLayoutDuringPaint = false;
return true;
}
+/** repaint pages on page preview
+
+ OD 18.12.2002 #103492#
+
+ @author OD
+*/
void SwPagePreviewLayout::Repaint( const Rectangle _aInvalidCoreRect ) const
{
// check environment and parameters
@@ -1158,6 +1249,12 @@ void SwPagePreviewLayout::Repaint( const Rectangle _aInvalidCoreRect ) const
}
}
+/** paint selection mark at page
+
+ OD 17.12.2002 #103492#
+
+ @author OD
+*/
void SwPagePreviewLayout::_PaintSelectMarkAtPage(
const PrevwPage* _aSelectedPrevwPage ) const
{
@@ -1183,20 +1280,20 @@ void SwPagePreviewLayout::_PaintSelectMarkAtPage(
// calculate page rectangle in pixel coordinates
SwRect aPageRect( _aSelectedPrevwPage->aLogicPos,
_aSelectedPrevwPage->aPageSize );
- // use aligned page rectangle, as it is used for
+ // OD 19.02.2003 #107369# - use aligned page rectangle, as it is used for
// page border and shadow paint - see <SwPageFrm::PaintBorderAndShadow(..)>
::SwAlignRect( aPageRect, &mrParentViewShell);
Rectangle aPxPageRect = pOutputDev->LogicToPixel( aPageRect.SVRect() );
// draw two rectangle
- // adjust position of select mark rectangle
+ // OD 19.02.2003 #107369# - adjust position of select mark rectangle
Rectangle aRect( aPxPageRect.Left(), aPxPageRect.Top(),
aPxPageRect.Right(), aPxPageRect.Bottom() );
aRect = pOutputDev->PixelToLogic( aRect );
- pOutputDev->SetFillColor(); // no fill color
+ pOutputDev->SetFillColor(); // OD 20.02.2003 #107369# - no fill color
pOutputDev->SetLineColor( aSelPgLineColor );
pOutputDev->DrawRect( aRect );
- // adjust position of select mark rectangle
+ // OD 19.02.2003 #107369# - adjust position of select mark rectangle
aRect = Rectangle( aPxPageRect.Left()+1, aPxPageRect.Top()+1,
aPxPageRect.Right()-1, aPxPageRect.Bottom()-1 );
aRect = pOutputDev->PixelToLogic( aRect );
@@ -1210,8 +1307,14 @@ void SwPagePreviewLayout::_PaintSelectMarkAtPage(
pOutputDev->SetMapMode( aSavedMapMode );
}
-// Perform paint for current selected page in order to unmark it.
-// Set new selected page and perform paint to mark this page.
+/** paint to mark new selected page
+
+ OD 17.12.2002 #103492#
+ Perform paint for current selected page in order to unmark it.
+ Set new selected page and perform paint to mark this page.
+
+ @author OD, _nSelectedPage, mnSelectedPage are absolut
+*/
void SwPagePreviewLayout::MarkNewSelectedPage( const sal_uInt16 _nSelectedPage )
{
sal_uInt16 nOldSelectedPageNum = mnSelectedPageNum;
@@ -1221,7 +1324,7 @@ void SwPagePreviewLayout::MarkNewSelectedPage( const sal_uInt16 _nSelectedPage )
const PrevwPage* pOldSelectedPrevwPage = _GetPrevwPageByPageNum( nOldSelectedPageNum );
if ( pOldSelectedPrevwPage && pOldSelectedPrevwPage->bVisible )
{
- // invalidate only areas of selection mark.
+ // OD 20.02.2003 #107369# - invalidate only areas of selection mark.
SwRect aPageRect( pOldSelectedPrevwPage->aPrevwWinPos,
pOldSelectedPrevwPage->aPageSize );
::SwAlignRect( aPageRect, &mrParentViewShell);
@@ -1255,7 +1358,12 @@ void SwPagePreviewLayout::MarkNewSelectedPage( const sal_uInt16 _nSelectedPage )
// =============================================================================
// helper methods
// =============================================================================
+/** get preview page by physical page number
+
+ OD 17.12.2002 #103492#
+ @author OD
+*/
struct EqualsPageNumPred
{
const sal_uInt16 mnPageNum;
@@ -1278,9 +1386,16 @@ const PrevwPage* SwPagePreviewLayout::_GetPrevwPageByPageNum( const sal_uInt16 _
return (*aFoundPrevwPageIter);
}
+/** determine row the page with the given number is in
+
+ OD 17.01.2003 #103492#
+
+ @author OD, _nPageNum is relative
+*/
sal_uInt16 SwPagePreviewLayout::GetRowOfPage( sal_uInt16 _nPageNum ) const
{
- // leaving left-top-corner blank is controlled by <mbBookPreview>.
+ // OD 19.02.2003 #107369# - leaving left-top-corner blank is controlled
+ // by <mbBookPreview>.
if ( mbBookPreview )
{
// Note: increase given physical page number by one, because left-top-corner
@@ -1294,9 +1409,17 @@ sal_uInt16 SwPagePreviewLayout::GetRowOfPage( sal_uInt16 _nPageNum ) const
return nRow;
}
+
+/** determine column the page with the given number is in
+
+ OD 17.01.2003 #103492#
+
+ @author OD, _nPageNum is relative
+*/
sal_uInt16 SwPagePreviewLayout::GetColOfPage( sal_uInt16 _nPageNum ) const
{
- // leaving left-top-corner blank is controlled by <mbBookPreview>.
+ // OD 19.02.2003 #107369# - leaving left-top-corner blank is controlled
+ // by <mbBookPreview>.
if ( mbBookPreview )
{
// Note: increase given physical page number by one, because left-top-corner
@@ -1317,6 +1440,12 @@ Size SwPagePreviewLayout::GetPrevwDocSize() const
return maPreviewDocRect.GetSize();
}
+/** get size of a preview page by its physical page number
+
+ OD 15.01.2003 #103492#
+
+ @author OD
+*/
Size SwPagePreviewLayout::GetPrevwPageSizeByPageNum( sal_uInt16 _nPageNum ) const
{
const PrevwPage* pPrevwPage = _GetPrevwPageByPageNum( _nPageNum );
@@ -1330,6 +1459,12 @@ Size SwPagePreviewLayout::GetPrevwPageSizeByPageNum( sal_uInt16 _nPageNum ) cons
}
}
+/** get virtual page number by its physical page number
+
+ OD 21.03.2003 #108282#
+
+ @author OD
+*/
sal_uInt16 SwPagePreviewLayout::GetVirtPageNumByPageNum( sal_uInt16 _nPageNum ) const
{
const PrevwPage* pPrevwPage = _GetPrevwPageByPageNum( _nPageNum );
@@ -1343,6 +1478,10 @@ sal_uInt16 SwPagePreviewLayout::GetVirtPageNumByPageNum( sal_uInt16 _nPageNum )
}
}
+/** Convert absolute to relative page numbers (see PrintEmptyPages)
+
+ @author FME
+*/
sal_uInt16 SwPagePreviewLayout::ConvertAbsoluteToRelativePageNum( sal_uInt16 _nAbsPageNum ) const
{
if ( mbBookPreview || mbPrintEmptyPages || !_nAbsPageNum )
@@ -1365,6 +1504,10 @@ sal_uInt16 SwPagePreviewLayout::ConvertAbsoluteToRelativePageNum( sal_uInt16 _nA
return nRet;
}
+/** Convert relative to absolute page numbers (see PrintEmptyPages)
+
+ @author FME
+*/
sal_uInt16 SwPagePreviewLayout::ConvertRelativeToAbsolutePageNum( sal_uInt16 _nRelPageNum ) const
{
if ( mbBookPreview || mbPrintEmptyPages || !_nRelPageNum )
diff --git a/sw/source/core/view/printdata.cxx b/sw/source/core/view/printdata.cxx
index 870ecbe48362..4e6d37f1cab1 100644
--- a/sw/source/core/view/printdata.cxx
+++ b/sw/source/core/view/printdata.cxx
@@ -86,7 +86,7 @@ void SwRenderData::DeletePostItData()
{
if (HasPostItData())
{
- // So that the printer remains at the real DOC
+ // printer needs to remain at the real document
m_pPostItShell->GetDoc()->setPrinter( 0, false, false );
m_pPostItShell.reset();
m_pPostItFields.reset();
diff --git a/sw/source/core/view/vdraw.cxx b/sw/source/core/view/vdraw.cxx
index b388c850f151..8139e2ad775c 100644
--- a/sw/source/core/view/vdraw.cxx
+++ b/sw/source/core/view/vdraw.cxx
@@ -37,6 +37,8 @@
#include <fmtanchr.hxx>
#include <frmfmt.hxx>
+/// OD 29.08.2002 #102450#
+/// include <svx/svdoutl.hxx>
#include <svx/svdoutl.hxx>
#include "fesh.hxx"
@@ -54,13 +56,51 @@
#include <IDocumentDrawModelAccess.hxx>
+/*************************************************************************
+|*
+|* SwSaveHdl
+|*
+|* Ersterstellung MA 14. Feb. 95
+|* Letzte Aenderung MA 02. Jun. 98
+|*
+|*************************************************************************/
+//SwSaveHdl::SwSaveHdl( SwViewImp *pI ) :
+// pImp( pI ),
+// bXorVis( FALSE )
+//{
+ //if ( pImp->HasDrawView() )
+ //{
+ // bXorVis = pImp->GetDrawView()->IsShownXorVisible( pImp->GetShell()->GetOut());
+ // if ( bXorVis )
+ // pImp->GetDrawView()->HideShownXor( pImp->GetShell()->GetOut() );
+ //}
+//}
+
+
+//SwSaveHdl::~SwSaveHdl()
+//{
+ //if ( bXorVis )
+ // pImp->GetDrawView()->ShowShownXor( pImp->GetShell()->GetOut() );
+//}
+
+
+/*************************************************************************
+|*
+|* SwViewImp::StartAction(), EndAction()
+|*
+|* Ersterstellung MA 14. Feb. 95
+|* Letzte Aenderung MA 14. Sep. 98
+|*
+|*************************************************************************/
void SwViewImp::StartAction()
{
if ( HasDrawView() )
{
SET_CURR_SHELL( GetShell() );
if ( pSh->ISA(SwFEShell) )
- ((SwFEShell*)pSh)->HideChainMarker();
+ ((SwFEShell*)pSh)->HideChainMarker(); //Kann sich geaendert haben
+ //bResetXorVisibility = GetDrawView()->IsShownXorVisible( GetShell()->GetOut());
+ //GetDrawView()->HideShownXor( GetShell()->GetOut() );
}
}
@@ -69,20 +109,34 @@ void SwViewImp::EndAction()
if ( HasDrawView() )
{
SET_CURR_SHELL( GetShell() );
+ //if ( bResetXorVisibility )
+ // GetDrawView()->ShowShownXor( GetShell()->GetOut() );
if ( pSh->ISA(SwFEShell) )
- ((SwFEShell*)pSh)->SetChainMarker(); // May have changed
+ ((SwFEShell*)pSh)->SetChainMarker(); //Kann sich geaendert haben
}
}
+/*************************************************************************
+|*
+|* SwViewImp::LockPaint(), UnlockPaint()
+|*
+|* Ersterstellung MA 11. Jun. 96
+|* Letzte Aenderung MA 11. Jun. 96
+|*
+|*************************************************************************/
void SwViewImp::LockPaint()
{
if ( HasDrawView() )
{
+ //HMHbShowHdlPaint = GetDrawView()->IsMarkHdlShown();
+ //HMHif ( bShowHdlPaint )
+ //HMH GetDrawView()->HideMarkHdl();
bResetHdlHiddenPaint = !GetDrawView()->areMarkHandlesHidden();
GetDrawView()->hideMarkHandles();
}
else
{
+ //HMHbShowHdlPaint = FALSE;
bResetHdlHiddenPaint = sal_False;
}
}
@@ -91,8 +145,25 @@ void SwViewImp::UnlockPaint()
{
if ( bResetHdlHiddenPaint )
GetDrawView()->showMarkHandles();
+ //HMHif ( bShowHdlPaint )
+ //HMH GetDrawView()->ShowMarkHdl();
}
+/*************************************************************************
+|*
+|* SwViewImp::PaintLayer(), PaintDispatcher()
+|*
+|* Ersterstellung MA 20. Dec. 94
+|* Letzte Aenderung AMA 04. Jun. 98
+|*
+|*************************************************************************/
+// OD 29.08.2002 #102450#
+// add 3rd paramter <const Color* pPageBackgrdColor> for setting this
+// color as the background color at the outliner of the draw view.
+// OD 09.12.2002 #103045# - add 4th parameter for the horizontal text direction
+// of the page in order to set the default horizontal text direction at the
+// outliner of the draw view for painting layers <hell> and <heaven>.
+// OD 25.06.2003 #108784# - correct type of 1st parameter
void SwViewImp::PaintLayer( const SdrLayerID _nLayerID,
SwPrintData const*const pPrintData,
const SwRect& ,
@@ -112,11 +183,14 @@ void SwViewImp::PaintLayer( const SdrLayerID _nLayerID,
pOutDev->SetDrawMode( nOldDrawMode | DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL |
DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT );
}
+
+ // OD 29.08.2002 #102450#
// For correct handling of accessibility, high contrast, the page background
// color is set as the background color at the outliner of the draw view.
// Only necessary for the layers hell and heaven
Color aOldOutlinerBackgrdColor;
- // set default horizontal text direction on painting <hell> or <heaven>.
+ // OD 09.12.2002 #103045# - set default horizontal text direction on
+ // painting <hell> or <heaven>.
EEHorizontalTextDirection aOldEEHoriTextDir = EE_HTEXTDIR_L2R;
const IDocumentDrawModelAccess* pIDDMA = GetShell()->getIDocumentDrawModelAccess();
if ( (_nLayerID == pIDDMA->GetHellId()) ||
@@ -148,8 +222,9 @@ void SwViewImp::PaintLayer( const SdrLayerID _nLayerID,
GetPageView()->DrawLayer( _nLayerID, pOutDev, pRedirector );
pOutDev->Pop();
+ // OD 29.08.2002 #102450#
// reset background color of the outliner
- // reset default horizontal text direction
+ // OD 09.12.2002 #103045# - reset default horizontal text direction
if ( (_nLayerID == pIDDMA->GetHellId()) ||
(_nLayerID == pIDDMA->GetHeavenId()) )
{
@@ -161,6 +236,14 @@ void SwViewImp::PaintLayer( const SdrLayerID _nLayerID,
}
}
+/*************************************************************************
+|*
+|* SwViewImp::IsDragPossible()
+|*
+|* Ersterstellung MA 19. Jan. 93
+|* Letzte Aenderung MA 16. Jan. 95
+|*
+|*************************************************************************/
#define WIEDUWILLST 400
sal_Bool SwViewImp::IsDragPossible( const Point &rPoint )
@@ -192,6 +275,15 @@ sal_Bool SwViewImp::IsDragPossible( const Point &rPoint )
return aRect.IsInside( rPoint );
}
+/*************************************************************************
+|*
+|* SwViewImp::NotifySizeChg()
+|*
+|* Ersterstellung MA 23. Jun. 93
+|* Letzte Aenderung MA 05. Oct. 98
+|*
+|*************************************************************************/
+
void SwViewImp::NotifySizeChg( const Size &rNewSz )
{
if ( !HasDrawView() )
@@ -200,6 +292,7 @@ void SwViewImp::NotifySizeChg( const Size &rNewSz )
if ( GetPageView() )
GetPageView()->GetPage()->SetSize( rNewSz );
+ //Begrenzung des Arbeitsbereiches.
const Rectangle aRect( Point( DOCUMENTBORDER, DOCUMENTBORDER ), rNewSz );
const Rectangle &rOldWork = GetDrawView()->GetWorkArea();
sal_Bool bCheckDrawObjs = sal_False;
@@ -220,6 +313,8 @@ void SwViewImp::NotifySizeChg( const Size &rNewSz )
SdrObject *pObj = pPage->GetObj( nObj );
if( !pObj->ISA(SwVirtFlyDrawObj) )
{
+ //Teilfix(26793): Objekte, die in Rahmen verankert sind, brauchen
+ //nicht angepasst werden.
const SwContact *pCont = (SwContact*)GetUserCall(pObj);
//JP - 16.3.00 Bug 73920: this function might be called by the
// InsertDocument, when a PageDesc-Attribute is
@@ -236,7 +331,7 @@ void SwViewImp::NotifySizeChg( const Size &rNewSz )
continue;
}
- // no move for drawing objects in header/footer
+ // OD 19.06.2003 #108784# - no move for drawing objects in header/footer
if ( pAnchor->FindFooterOrHeader() )
{
continue;
@@ -253,7 +348,7 @@ void SwViewImp::NotifySizeChg( const Size &rNewSz )
if ( aSz.Width() || aSz.Height() )
pObj->Move( aSz );
- //Note anchor: Large objects can not disappear from the top.
+ //Notanker: Grosse Objekte nicht nach oben verschwinden lassen.
aSz.Width() = aSz.Height() = 0;
if ( aBound.Bottom() < aRect.Top() )
aSz.Width() = (aBound.Bottom() - aRect.Top()) - MINFLY;
diff --git a/sw/source/core/view/viewimp.cxx b/sw/source/core/view/viewimp.cxx
index 337d3f17058c..264e4ea44747 100644
--- a/sw/source/core/view/viewimp.cxx
+++ b/sw/source/core/view/viewimp.cxx
@@ -44,6 +44,7 @@
#include <svx/svdpage.hxx>
#include <accmap.hxx>
+// OD 12.12.2002 #103492#
#include <pagepreviewlayout.hxx>
#include <comcore.hrc>
@@ -53,10 +54,18 @@
#include <IDocumentDeviceAccess.hxx>
#include <IDocumentSettingAccess.hxx>
+/*************************************************************************
+|*
+|* SwViewImp::Init()
+|*
+|* Ersterstellung MA 25. Jul. 94
+|* Letzte Aenderung MA 03. Nov. 95
+|*
+|*************************************************************************/
void SwViewImp::Init( const SwViewOption *pNewOpt )
{
OSL_ENSURE( pDrawView, "SwViewImp::Init without DrawView" );
- //Now create the page view if it does not exist.
+ //Jetzt die PageView erzeugen wenn sie noch nicht existiert.
SwRootFrm *pRoot = pSh->GetLayout(); //swmod 071108//swmod 071225
if ( !pSdrPageView )
{
@@ -68,7 +77,8 @@ void SwViewImp::Init( const SwViewOption *pNewOpt )
pRoot->GetDrawPage()->SetSize( pRoot->Frm().SSize() );
pSdrPageView = pDrawView->ShowSdrPage( pRoot->GetDrawPage());
- // notify drawing page view about invisible layers.
+ // OD 26.06.2003 #108784# - notify drawing page view about invisible
+ // layers.
pIDDMA->NotifyInvisibleLayers( *pSdrPageView );
}
pDrawView->SetDragStripes( pNewOpt->IsCrossHair() );
@@ -96,6 +106,15 @@ void SwViewImp::Init( const SwViewOption *pNewOpt )
pDrawView->SetMarkHdlSizePixel(9);
}
+/*************************************************************************
+|*
+|* SwViewImp::SwViewImp() CTor fuer die Core-Internas
+|*
+|* Ersterstellung MA 25. Jul. 94
+|* Letzte Aenderung MA 06. Sep. 96
+|*
+|*************************************************************************/
+
SwViewImp::SwViewImp( ViewShell *pParent ) :
pSh( pParent ),
pDrawView( 0 ),
@@ -107,19 +126,33 @@ SwViewImp::SwViewImp( ViewShell *pParent ) :
pAccMap( 0 ),
pSdrObjCached(NULL),
nRestoreActions( 0 ),
+ // OD 12.12.2002 #103492#
mpPgPrevwLayout( 0 )
{
+ //bResetXorVisibility =
+ //HMHbShowHdlPaint =
bResetHdlHiddenPaint =
bSmoothUpdate = bStopSmooth = bStopPrt = sal_False;
bFirstPageInvalid = sal_True;
}
+/******************************************************************************
+|*
+|* SwViewImp::~SwViewImp()
+|*
+|* Ersterstellung MA 25. Jul. 94
+|* Letzte Aenderung MA 16. Dec. 94
+|*
+******************************************************************************/
+
SwViewImp::~SwViewImp()
{
delete pAccMap;
+ // OD 12.12.2002 #103492#
delete mpPgPrevwLayout;
+ //JP 29.03.96: nach ShowSdrPage muss auch HideSdrPage gemacht werden!!!
if( pDrawView )
pDrawView->HideSdrPage();
@@ -131,11 +164,29 @@ SwViewImp::~SwViewImp()
OSL_ENSURE( !pIdleAct,"Be idle for the rest of your life." );
}
+/******************************************************************************
+|*
+|* SwViewImp::DelRegions()
+|*
+|* Ersterstellung MA 14. Apr. 94
+|* Letzte Aenderung MA 14. Apr. 94
+|*
+******************************************************************************/
+
void SwViewImp::DelRegion()
{
DELETEZ(pRegion);
}
+/******************************************************************************
+|*
+|* SwViewImp::AddPaintRect()
+|*
+|* Ersterstellung MA ??
+|* Letzte Aenderung MA 27. Jul. 94
+|*
+******************************************************************************/
+
sal_Bool SwViewImp::AddPaintRect( const SwRect &rRect )
{
if ( rRect.IsOver( pSh->VisArea() ) )
@@ -148,12 +199,30 @@ sal_Bool SwViewImp::AddPaintRect( const SwRect &rRect )
return sal_False;
}
+/******************************************************************************
+|*
+|* ViewImp::CheckWaitCrsr()
+|*
+|* Ersterstellung MA 10. Aug. 94
+|* Letzte Aenderung MA 10. Aug. 94
+|*
+******************************************************************************/
+
void SwViewImp::CheckWaitCrsr()
{
if ( pLayAct )
pLayAct->CheckWaitCrsr();
}
+/******************************************************************************
+|*
+|* ViewImp::IsCalcLayoutProgress()
+|*
+|* Ersterstellung MA 12. Aug. 94
+|* Letzte Aenderung MA 12. Aug. 94
+|*
+******************************************************************************/
+
sal_Bool SwViewImp::IsCalcLayoutProgress() const
{
if ( pLayAct )
@@ -161,6 +230,15 @@ sal_Bool SwViewImp::IsCalcLayoutProgress() const
return sal_False;
}
+/******************************************************************************
+|*
+|* ViewImp::IsUpdateExpFlds()
+|*
+|* Ersterstellung MA 28. Mar. 96
+|* Letzte Aenderung MA 28. Mar. 96
+|*
+******************************************************************************/
+
sal_Bool SwViewImp::IsUpdateExpFlds()
{
if ( pLayAct && pLayAct->IsCalcLayout() )
@@ -171,12 +249,24 @@ sal_Bool SwViewImp::IsUpdateExpFlds()
return sal_False;
}
+
+/******************************************************************************
+|*
+|* SwViewImp::SetFirstVisPage(), ImplGetFirstVisPage();
+|*
+|* Ersterstellung MA 21. Sep. 93
+|* Letzte Aenderung MA 08. Mar. 94
+|*
+******************************************************************************/
+
void SwViewImp::SetFirstVisPage()
{
if ( pSh->bDocSizeChgd && pSh->VisArea().Top() > pSh->GetLayout()->Frm().Height() )
{
- //We are in an "Action", and the VisArea is behind the first visible page due
- //to delete operations. To prevent expensive formatting, return the last page
+ //Wir stecken in einer Action und die VisArea sitzt wegen
+ //Loeschoperationen hinter der erste sichtbaren Seite.
+ //Damit nicht zu heftig Formatiert wird, liefern wir die letzte Seite
+ //zurueck.
pFirstVisPage = (SwPageFrm*)pSh->GetLayout()->Lower();
while ( pFirstVisPage && pFirstVisPage->GetNext() )
pFirstVisPage = (SwPageFrm*)pFirstVisPage->GetNext();
@@ -206,6 +296,15 @@ void SwViewImp::SetFirstVisPage()
bFirstPageInvalid = sal_False;
}
+/******************************************************************************
+|*
+|* SwViewImp::MakeDrawView();
+|*
+|* Ersterstellung AMA 01. Nov. 95
+|* Letzte Aenderung AMA 01. Nov. 95
+|*
+******************************************************************************/
+
void SwViewImp::MakeDrawView()
{
IDocumentDrawModelAccess* pIDDMA = GetShell()->getIDocumentDrawModelAccess();
@@ -230,6 +329,7 @@ void SwViewImp::MakeDrawView()
if(!pOutDevForDrawView)
{
+ // pOutDevForDrawView = (OutputDevice*)GetShell()->getIDocumentDeviceAccess()->getPrinter( false );
pOutDevForDrawView = GetShell()->GetOut();
}
@@ -240,7 +340,8 @@ void SwViewImp::MakeDrawView()
const SwViewOption* pSwViewOption = GetShell()->GetViewOptions();
Init(pSwViewOption);
- // #i68597# If document is read-only, we will not profit from overlay, so switch it off.
+ // #i68597# If document is read-only, we will not profit from overlay,
+ // so switch it off.
if(pDrawView && pDrawView->IsBufferedOverlayAllowed())
{
if(pSwViewOption->IsReadonly())
@@ -251,6 +352,15 @@ void SwViewImp::MakeDrawView()
}
}
+/******************************************************************************
+|*
+|* SwViewImp::GetRetoucheColor()
+|*
+|* Ersterstellung MA 24. Jun. 98
+|* Letzte Aenderung MA 24. Jun. 98
+|*
+******************************************************************************/
+
Color SwViewImp::GetRetoucheColor() const
{
Color aRet( COL_TRANSPARENT );
@@ -269,6 +379,12 @@ Color SwViewImp::GetRetoucheColor() const
return aRet;
}
+/** create page preview layout
+
+ OD 12.12.2002 #103492#
+
+ @author OD
+*/
void SwViewImp::InitPagePreviewLayout()
{
OSL_ENSURE( pSh->GetLayout(), "no layout - page preview layout can not be created.");
@@ -371,7 +487,12 @@ void SwViewImp::InvalidateAccessibleRelationSet( const SwFlyFrm *pMaster,
} while ( pTmp != pVSh );
}
-// #i27138# invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
+ /** invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
+
+ OD 2005-12-01 #i27138#
+
+ @author OD
+*/
void SwViewImp::_InvalidateAccessibleParaFlowRelation( const SwTxtFrm* _pFromTxtFrm,
const SwTxtFrm* _pToTxtFrm )
{
@@ -402,7 +523,12 @@ void SwViewImp::_InvalidateAccessibleParaFlowRelation( const SwTxtFrm* _pFromTxt
} while ( pTmp != pVSh );
}
-//#i27301# invalidate text selection for paragraphs
+/** invalidate text selection for paragraphs
+
+ OD 2005-12-12 #i27301#
+
+ @author OD
+*/
void SwViewImp::_InvalidateAccessibleParaTextSelection()
{
ViewShell* pVSh = GetShell();
@@ -418,7 +544,12 @@ void SwViewImp::_InvalidateAccessibleParaTextSelection()
} while ( pTmp != pVSh );
}
-//#i88069# invalidate attributes for paragraphs
+/** invalidate attributes for paragraphs
+
+ OD 2009-01-06 #i88069#
+
+ @author OD
+*/
void SwViewImp::_InvalidateAccessibleParaAttrs( const SwTxtFrm& rTxtFrm )
{
ViewShell* pVSh = GetShell();
@@ -434,6 +565,7 @@ void SwViewImp::_InvalidateAccessibleParaAttrs( const SwTxtFrm& rTxtFrm )
} while ( pTmp != pVSh );
}
+// OD 15.01.2003 #103492# - method signature change due to new page preview functionality
void SwViewImp::UpdateAccessiblePreview( const std::vector<PrevwPage*>& _rPrevwPages,
const Fraction& _rScale,
const SwPageFrm* _pSelectedPageFrm,
diff --git a/sw/source/core/view/viewpg.cxx b/sw/source/core/view/viewpg.cxx
index f7969d164a5b..2dc676c9992e 100644
--- a/sw/source/core/view/viewpg.cxx
+++ b/sw/source/core/view/viewpg.cxx
@@ -60,6 +60,7 @@ using namespace ::com::sun::star;
SwPageFrm const*
lcl_getPage(SwRootFrm const& rLayout, sal_Int32 const nPage); // vprint.cxx
+// OD 12.12.2002 #103492#
SwPagePreviewLayout* ViewShell::PagePreviewLayout()
{
return Imp()->PagePreviewLayout();
@@ -70,7 +71,10 @@ void ViewShell::ShowPreViewSelection( sal_uInt16 nSelPage )
Imp()->InvalidateAccessiblePreViewSelection( nSelPage );
}
-//#i6467# adjust view options for page preview
+/** adjust view options for page preview
+
+ OD 09.01.2003 #i6467#
+*/
void ViewShell::AdjustOptionsForPagePreview(SwPrintData const& rPrintOptions)
{
if ( !IsPreView() )
@@ -84,7 +88,9 @@ void ViewShell::AdjustOptionsForPagePreview(SwPrintData const& rPrintOptions)
return;
}
-//#i14016# - consider empty pages on calculation of the scaling for a page to be printed.
+// print brochure
+// OD 05.05.2003 #i14016# - consider empty pages on calculation of the scaling
+// for a page to be printed.
void ViewShell::PrintProspect(
OutputDevice *pOutDev,
const SwPrintData &rPrintData,
@@ -103,10 +109,12 @@ void ViewShell::PrintProspect(
std::pair< sal_Int32, sal_Int32 > rPagesToPrint =
rPrintData.GetRenderData().GetPagePairsForProspectPrinting()[ nRenderer ];
+// const USHORT nPageMax = static_cast< USHORT >(rPagesToPrint.first > rPagesToPrint.second ?
+// rPagesToPrint.first : rPagesToPrint.second);
OSL_ENSURE( rPagesToPrint.first == -1 || rPrintData.GetRenderData().GetValidPagesSet().count( rPagesToPrint.first ) == 1, "first Page not valid" );
OSL_ENSURE( rPagesToPrint.second == -1 || rPrintData.GetRenderData().GetValidPagesSet().count( rPagesToPrint.second ) == 1, "second Page not valid" );
- // create a new shell for the Printer
+ // eine neue Shell fuer den Printer erzeugen
ViewShell aShell( *this, 0, pPrinter );
SET_CURR_SHELL( &aShell );
@@ -131,7 +139,8 @@ void ViewShell::PrintProspect(
pNxtPage = lcl_getPage(*aShell.GetLayout(), rPagesToPrint.second);
}
- //#i14016# - consider empty pages on calculation of page size, used for calculation of scaling.
+ // OD 05.05.2003 #i14016# - consider empty pages on calculation
+ // of page size, used for calculation of scaling.
Size aSttPageSize;
if ( pStPage )
{
@@ -179,6 +188,7 @@ void ViewShell::PrintProspect(
nMaxRowSz = Max( aNxtPageSize.Height(), aSttPageSize.Height() );
}
+ // den MapMode einstellen
aMapMode.SetOrigin( Point() );
{
Fraction aScX( aPrtSize.Width(), nMaxColSz );
@@ -187,6 +197,8 @@ void ViewShell::PrintProspect(
aScY = aScX;
{
+ // fuer Drawing, damit diese ihre Objecte vernuenftig Painten
+ // koennen, auf "glatte" Prozentwerte setzen
aScY *= Fraction( 1000, 1 );
long nTmp = (long)aScY;
if( 1 < nTmp )
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index 04717dd02cef..a7dccd7bcf33 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -37,6 +37,9 @@
#include <svx/srchdlg.hxx>
#include <svx/svdobj.hxx>
#include <sfx2/viewsh.hxx>
+#ifndef _SHL_HXX
+//#include <tools/shl.hxx>
+#endif
#include <swwait.hxx>
#include <swmodule.hxx>
#include <fesh.hxx>
@@ -68,9 +71,12 @@
#include <accessibilityoptions.hxx>
#include <statstr.hrc>
#include <comcore.hrc>
+// OD 14.01.2003 #103492#
#include <pagepreviewlayout.hxx>
+// --> OD 2004-05-24 #i28701#
#include <sortedobjs.hxx>
#include <anchoredobject.hxx>
+// <--
#include "../../ui/inc/view.hxx"
#include <PostItMgr.hxx>
@@ -78,6 +84,7 @@
#include <vcl/svapp.hxx>
+// #i74769#
#include <svx/sdrpaintwindow.hxx>
sal_Bool ViewShell::bLstAct = sal_False;
@@ -196,9 +203,17 @@ void ViewShell::DLPostPaint2(bool bPaintFormLayer)
//////////////////////////////////////////////////////////////////////////////
+/******************************************************************************
+|*
+|* ViewShell::ImplEndAction()
+|*
+|* Letzte Aenderung MA 04. Sep. 96
+|*
+******************************************************************************/
+
void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
{
- //There is nothing to do here for the printer
+ //Fuer den Drucker gibt es hier nichts zu tun.
if ( !GetWin() || IsPreView() )
{
bPaintWorks = sal_True;
@@ -207,6 +222,7 @@ void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
}
bInEndAction = sal_True;
+ //Laeuft hiermit das EndAction der Letzten Shell im Ring?
ViewShell::bLstAct = sal_True;
ViewShell *pSh = (ViewShell*)this->GetNext();
@@ -245,8 +261,9 @@ void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
if ( bIsShellForCheckViewLayout )
GetLayout()->CheckViewLayout( GetViewOptions(), &aVisArea );
- //If we do not generate Paints, we wait for the paint by the system.
- //Then, the clipping is set correctly, for example: move a DrawObject.
+ //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() ||
aInvalidRect.HasArea() ||
bExtraData )
@@ -269,6 +286,12 @@ void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
SwRegionRects *pRegion = Imp()->GetRegion();
+ //JP 27.11.97: wer die Selection hided, muss sie aber auch
+ // wieder Showen. Sonst gibt es Paintfehler!
+ // z.B.: addional Mode, Seite vertikal hab zu sehen, in der
+ // Mitte eine Selektion und mit einem anderen Cursor an linken
+ // rechten Rand springen. Ohne ShowCrsr verschwindet die
+ // Selektion
sal_Bool bShowCrsr = pRegion && IsA( TYPE(SwCrsrShell) );
if( bShowCrsr )
((SwCrsrShell*)this)->HideCrsrs();
@@ -279,7 +302,7 @@ void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
Imp()->pRegion = NULL;
- // First Invert then Compress, never the other way round!
+ //Erst Invert dann Compress, niemals andersherum!
pRegion->Invert();
pRegion->Compress();
@@ -293,6 +316,7 @@ void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
sal_Bool bPaint = sal_True;
if ( IsEndActionByVirDev() )
{
+ //virtuelles device erzeugen und einstellen.
if ( !pVout )
pVout = new VirtualDevice( *GetOut() );
MapMode aMapMode( GetOut()->GetMapMode() );
@@ -322,9 +346,11 @@ void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
{
bPaint = sal_False;
+ // --> OD 2007-07-26 #i79947#
// #i72754# start Pre/PostPaint encapsulation before pOut is changed to the buffering VDev
const Region aRepaintRegion(aRect.SVRect());
DLPrePaint2(aRepaintRegion);
+ // <--
OutputDevice *pOld = GetOut();
pVout->SetLineColor( pOld->GetLineColor() );
@@ -420,6 +446,10 @@ void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
Imp()->EndAction();
+ //Damit sich die automatischen Scrollbars auch richtig anordnen k?nnen
+ //muessen wir die Aktion hier kuenstlich beenden (EndAction loesst ein
+ //Notify aus, und das muss Start-/EndAction rufen um die Scrollbars
+ //klarzubekommen.
--nStartAction;
UISizeNotify();
++nStartAction;
@@ -428,16 +458,35 @@ void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
Imp()->FireAccessibleEvents();
}
+/******************************************************************************
+|*
+|* ViewShell::ImplStartAction()
+|*
+|* Ersterstellung MA 25. Jul. 94
+|* Letzte Aenderung MA 25. Jul. 94
+|*
+******************************************************************************/
+
void ViewShell::ImplStartAction()
{
bPaintWorks = sal_False;
Imp()->StartAction();
}
+
+/******************************************************************************
+|*
+|* ViewShell::ImplLockPaint(), ImplUnlockPaint()
+|*
+|* Ersterstellung MA 11. Jun. 96
+|* Letzte Aenderung MA 11. Jun. 96
+|*
+******************************************************************************/
+
void ViewShell::ImplLockPaint()
{
if ( GetWin() && GetWin()->IsVisible() )
- GetWin()->EnablePaint( sal_False );
+ GetWin()->EnablePaint( sal_False ); //Auch die Controls abklemmen.
Imp()->LockPaint();
}
@@ -449,7 +498,7 @@ void ViewShell::ImplUnlockPaint( sal_Bool bVirDev )
{
if ( (bInSizeNotify || bVirDev ) && VisArea().HasArea() )
{
- //prevent refresh with virtual device to flicker.
+ //Refresh mit virtuellem Device um das Flackern zu verhindern.
VirtualDevice *pVout = new VirtualDevice( *pOut );
pVout->SetMapMode( pOut->GetMapMode() );
Size aSize( VisArea().SSize() );
@@ -497,6 +546,15 @@ void ViewShell::ImplUnlockPaint( sal_Bool bVirDev )
Imp()->UnlockPaint();
}
+/******************************************************************************
+|*
+|* ViewShell::AddPaintRect()
+|*
+|* Ersterstellung MA ??
+|* Letzte Aenderung MA 09. Feb. 97
+|*
+******************************************************************************/
+
sal_Bool ViewShell::AddPaintRect( const SwRect & rRect )
{
sal_Bool bRet = sal_False;
@@ -506,6 +564,7 @@ sal_Bool ViewShell::AddPaintRect( const SwRect & rRect )
if( pSh->Imp() )
{
if ( pSh->IsPreView() && pSh->GetWin() )
+// pSh->GetWin()->Invalidate();
::RepaintPagePreview( pSh, rRect );
else
bRet |= pSh->Imp()->AddPaintRect( rRect );//swmod 080111
@@ -515,6 +574,15 @@ sal_Bool ViewShell::AddPaintRect( const SwRect & rRect )
return bRet;
}
+/******************************************************************************
+|*
+|* ViewShell::InvalidateWindows()
+|*
+|* Ersterstellung MA ??
+|* Letzte Aenderung MA 09. Feb. 97
+|*
+******************************************************************************/
+
void ViewShell::InvalidateWindows( const SwRect &rRect )
{
if ( !Imp()->IsCalcLayoutProgress() )
@@ -525,6 +593,7 @@ void ViewShell::InvalidateWindows( const SwRect &rRect )
if ( pSh->GetWin() )
{
if ( pSh->IsPreView() )
+// pSh->GetWin()->Invalidate();
::RepaintPagePreview( pSh, rRect );
else if ( pSh->VisArea().IsOver( rRect ) )
pSh->GetWin()->Invalidate( rRect.SVRect() );
@@ -535,6 +604,15 @@ void ViewShell::InvalidateWindows( const SwRect &rRect )
}
}
+/******************************************************************************
+|*
+|* ViewShell::MakeVisible()
+|*
+|* Ersterstellung MA ??
+|* Letzte Aenderung AMA 10. Okt. 95
+|*
+******************************************************************************/
+
void ViewShell::MakeVisible( const SwRect &rRect )
{
if ( !VisArea().IsInside( rRect ) || IsScrollMDI( this, rRect ) || GetCareWin(*this) )
@@ -556,6 +634,7 @@ void ViewShell::MakeVisible( const SwRect &rRect )
#if OSL_DEBUG_LEVEL > 0
else
{
+ //MA: 04. Nov. 94, braucht doch keiner oder??
OSL_ENSURE( !this, "MakeVisible fuer Drucker wird doch gebraucht?" );
}
@@ -564,6 +643,15 @@ void ViewShell::MakeVisible( const SwRect &rRect )
}
}
+/******************************************************************************
+|*
+|* ViewShell::CareChildWindow()
+|*
+|* Ersterstellung AMA 10. Okt. 95
+|* Letzte Aenderung AMA 10. Okt. 95
+|*
+******************************************************************************/
+
Window* ViewShell::CareChildWin(ViewShell& rVSh)
{
if(rVSh.pSfxViewShell)
@@ -578,15 +666,33 @@ Window* ViewShell::CareChildWin(ViewShell& rVSh)
return NULL;
}
+/******************************************************************************
+|*
+|* ViewShell::GetPagePos()
+|*
+|* Ersterstellung MA ??
+|* Letzte Aenderung MA 04. Aug. 93
+|*
+******************************************************************************/
+
Point ViewShell::GetPagePos( sal_uInt16 nPageNum ) const
{
return GetLayout()->GetPagePos( nPageNum );
}
+/******************************************************************************
+|*
+|* ViewShell::GetNumPages()
+|*
+|* Ersterstellung MA ??
+|* Letzte Aenderung MA 20. Apr. 94
+|*
+******************************************************************************/
+
sal_uInt16 ViewShell::GetNumPages()
{
- //It can happen that there still no Layout exists due to the
- //method being called from the Root ctor.
+ //Es kann sein, das noch kein Layout existiert weil die Methode vom
+ //Root-Ctor gerufen wird.
return GetLayout() ? GetLayout()->GetPageNum() : 0;
}
@@ -595,6 +701,18 @@ sal_Bool ViewShell::IsDummyPage( sal_uInt16 nPageNum ) const
return GetLayout() ? GetLayout()->IsDummyPage( nPageNum ) : 0;
}
+/*************************************************************************
+|*
+|* ViewShell::UpdateFlds()
+|*
+|* Ersterstellung BP 04.05.92
+|* Beschreibung erzwingt ein Update fuer jedes Feld
+|*
+|* UpdateFlds benachrichtigt alle Felder mit pNewHt.
+|* Wenn pNewHt == 0 ist (default), wird der Feldtyp verschickt.
+|*
+*************************************************************************/
+
void ViewShell::UpdateFlds(sal_Bool bCloseDB)
{
SET_CURR_SHELL( this );
@@ -640,16 +758,26 @@ sal_Bool ViewShell::HasCharts() const
return bRet;
}
+/*************************************************************************
+|*
+|* ViewShell::LayoutIdle()
+|*
+|* Ersterstellung MA 26. May. 92
+|* Letzte Aenderung OG 19. Mar. 96
+|*
+*************************************************************************/
+
void ViewShell::LayoutIdle()
{
#ifdef TCOVER
+ //fuer TCV-Version: Ende der Startphase des Programmes
TCovCall::Idle();
#endif
if( !pOpt->IsIdle() || !GetWin() ||
( Imp()->HasDrawView() && Imp()->GetDrawView()->IsDragObj() ) )
return;
-
+ //Kein Idle wenn gerade gedruckt wird.
ViewShell *pSh = this;
do
{ if ( !pSh->GetWin() )
@@ -661,6 +789,7 @@ void ViewShell::LayoutIdle()
SET_CURR_SHELL( this );
#ifdef DBG_UTIL
+ // Wenn Test5 gedrueckt ist, wird der IdleFormatierer abgeknipst.
if( pOpt->IsTest5() )
return;
#endif
@@ -668,8 +797,12 @@ void ViewShell::LayoutIdle()
{
DBG_PROFSTART( LayoutIdle );
+ //Cache vorbereiten und restaurieren, damit er nicht versaut wird.
SwSaveSetLRUOfst aSave( *SwTxtFrm::GetTxtCache(),
SwTxtFrm::GetTxtCache()->GetCurMax() - 50 );
+ // #125243# there are lots of stacktraces indicating that Imp() returns NULL
+ // this ViewShell seems to be invalid - but it's not clear why
+ // this return is only a workaround!
OSL_ENSURE(Imp(), "ViewShell already deleted?");
if(!Imp())
return;
@@ -789,6 +922,8 @@ void ViewShell::SetUseVirDev( bool bNewVirtual )
}
}
+// OD 2004-02-16 #106629# - control, if paragraph and table spacing is added
+// at bottom of table cells
void ViewShell::SetAddParaSpacingToTableCells( bool _bAddParaSpacingToTableCells )
{
IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
@@ -801,7 +936,7 @@ void ViewShell::SetAddParaSpacingToTableCells( bool _bAddParaSpacingToTableCells
}
}
-// #i11859# - control, if former formatting of text lines with
+// OD 06.01.2004 #i11859# - control, if former formatting of text lines with
// proportional line spacing is used or not.
void ViewShell::SetUseFormerLineSpacing( bool _bUseFormerLineSpacing )
{
@@ -815,7 +950,7 @@ void ViewShell::SetUseFormerLineSpacing( bool _bUseFormerLineSpacing )
}
}
-// #i11860# - control, if former object positioning is used or not.
+// OD 2004-03-12 #i11860# - control, if former object positioning is used or not.
void ViewShell::SetUseFormerObjectPositioning( bool _bUseFormerObjPos )
{
IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
@@ -827,7 +962,7 @@ void ViewShell::SetUseFormerObjectPositioning( bool _bUseFormerObjPos )
}
}
-// #i28701#
+// OD 2004-05-05 #i28701#
void ViewShell::SetConsiderWrapOnObjPos( bool _bConsiderWrapOnObjPos )
{
IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
@@ -839,6 +974,7 @@ void ViewShell::SetConsiderWrapOnObjPos( bool _bConsiderWrapOnObjPos )
}
}
+// --> FME #108724#
void ViewShell::SetUseFormerTextWrapping( bool _bUseFormerTextWrapping )
{
IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
@@ -850,8 +986,9 @@ void ViewShell::SetUseFormerTextWrapping( bool _bUseFormerTextWrapping )
lcl_InvalidateAllCntnt( *this, nInv );
}
}
+// <--
-// #i45491#
+// -> PB 2007-06-11 #i45491#
void ViewShell::SetDoNotJustifyLinesWithManualBreak( bool _bDoNotJustifyLinesWithManualBreak )
{
IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
@@ -864,10 +1001,25 @@ void ViewShell::SetDoNotJustifyLinesWithManualBreak( bool _bDoNotJustifyLinesWit
}
}
+// <--
+
+/******************************************************************************
+|*
+|* ViewShell::Reformat
+|*
+|* Ersterstellung BP ???
+|* Letzte Aenderung MA 13. Feb. 98
+|*
+******************************************************************************/
+
void ViewShell::Reformat()
{
SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+ // Wir gehen auf Nummer sicher:
+ // Wir muessen die alten Fontinformationen wegschmeissen,
+ // wenn die Druckeraufloesung oder der Zoomfaktor sich aendert.
+ // Init() und Reformat() sind die sichersten Stellen.
#ifdef FNTMET
aFntMetList.Flush();
#else
@@ -891,14 +1043,26 @@ void ViewShell::Reformat()
Reformat();
}
+/******************************************************************************
+|*
+|* ViewShell::CalcLayout()
+|* Vollstaendige Formatierung von Layout und Inhalt.
+|*
+|* Ersterstellung MA 31. Jan. 94
+|* Letzte Aenderung MA 08. Oct. 96
+|*
+******************************************************************************/
+
void ViewShell::CalcLayout()
{
SET_CURR_SHELL( this );
SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+ //Cache vorbereiten und restaurieren, damit er nicht versaut wird.
SwSaveSetLRUOfst aSaveLRU( *SwTxtFrm::GetTxtCache(),
SwTxtFrm::GetTxtCache()->GetCurMax() - 50 );
+ //Progress einschalten wenn noch keiner Lauft.
const sal_Bool bEndProgress = SfxProgress::GetActiveProgress( GetDoc()->GetDocShell() ) == 0;
if ( bEndProgress )
{
@@ -916,8 +1080,8 @@ void ViewShell::CalcLayout()
aAction.Action();
GetDoc()->UnlockExpFlds();
- // The SetNewFldLst() on Doc was stopped and has to be rescheduled
- // (see flowfrm.cxx, txtfld.cxx)
+ //Das SetNewFldLst() am Doc wurde unterbunden und muss nachgeholt
+ //werden (siehe flowfrm.cxx, txtfld.cxx)
if ( aAction.IsExpFlds() )
{
aAction.Reset();
@@ -938,6 +1102,15 @@ void ViewShell::CalcLayout()
::EndProgress( GetDoc()->GetDocShell() );
}
+/******************************************************************************
+|*
+|* ViewShell::SetFirstVisPageInvalid()
+|*
+|* Ersterstellung MA 19. May. 94
+|* Letzte Aenderung MA 19. May. 94
+|*
+******************************************************************************/
+
void ViewShell::SetFirstVisPageInvalid()
{
ViewShell *pSh = this;
@@ -950,6 +1123,15 @@ void ViewShell::SetFirstVisPageInvalid()
} while ( pSh != this );
}
+/******************************************************************************
+|*
+|* ViewShell::SizeChgNotify()
+|*
+|* Ersterstellung MA ??
+|* Letzte Aenderung MA 17. Sep. 96
+|*
+******************************************************************************/
+
void ViewShell::SizeChgNotify()
{
if ( !pWin )
@@ -978,6 +1160,15 @@ void ViewShell::SizeChgNotify()
}
}
+/******************************************************************************
+|*
+|* ViewShell::VisPortChgd()
+|*
+|* Ersterstellung MA ??
+|* Letzte Aenderung MA 22. Jul. 96
+|*
+******************************************************************************/
+
void ViewShell::VisPortChgd( const SwRect &rRect)
{
OSL_ENSURE( GetWin(), "VisPortChgd ohne Window." );
@@ -988,10 +1179,13 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
#if OSL_DEBUG_LEVEL > 1
if ( bInEndAction )
{
+ //Da Rescheduled doch schon wieder irgendwo einer?
OSL_ENSURE( !this, "Scroll waehrend einer EndAction." );
}
#endif
+ //Ersteinmal die alte sichtbare Seite holen, dann braucht nacher nicht
+ //lange gesucht werden.
const SwFrm *pOldPage = Imp()->GetFirstVisPage();
const SwRect aPrevArea( VisArea() );
@@ -999,9 +1193,9 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
aVisArea = rRect;
SetFirstVisPageInvalid();
- // When there is still a PaintRegion and the VisArea has changed,
- // Then the PaintRegion becomes obsolete. The PaintRegion can have been
- // produced by RootFrm::Paint.
+ //Wenn noch eine PaintRegion herumsteht und sich die VisArea geaendert hat,
+ //so ist die PaintRegion spaetestens jetzt obsolete. Die PaintRegion kann
+ //vom RootFrm::Paint erzeugt worden sein.
if ( !bInEndAction &&
Imp()->GetRegion() && Imp()->GetRegion()->GetOrigin() != VisArea() )
Imp()->DelRegion();
@@ -1016,12 +1210,16 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
GetWin()->Invalidate();
else
{
+ // Betrag ausrechnen, um den gescrolled werden muss.
const long nXDiff = aPrevArea.Left() - VisArea().Left();
const long nYDiff = aPrevArea.Top() - VisArea().Top();
if( !nXDiff && !GetViewOptions()->getBrowseMode() &&
(!Imp()->HasDrawView() || !Imp()->GetDrawView()->IsGridVisible() ) )
{
+ //Falls moeglich die Wiese nicht mit Scrollen.
+ //Also linke und rechte Kante des Scrollbereiches auf die
+ //Seiten begrenzen.
const SwPageFrm *pPage = (SwPageFrm*)GetLayout()->Lower(); //swmod 071108//swmod 071225
if ( pPage->Frm().Top() > pOldPage->Frm().Top() )
pPage = (SwPageFrm*)pOldPage;
@@ -1042,6 +1240,8 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
aPageRect.SSize() = rFormatPage.GetBoundRect().SSize();
}
+ // OD 12.02.2003 #i9719#, #105645# - consider new border
+ // and shadow width
if ( aPageRect.IsOver( aBoth ) )
{
SwTwips nPageLeft = 0;
@@ -1058,6 +1258,9 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
nMinLeft = nPageLeft;
if( nPageRight > nMaxRight )
nMaxRight = nPageRight;
+ //Zus. auf die Zeichenobjekte abgleichen.
+ //Einen Ofst beruecksichtigen, weil die Objekte u.U.
+ //selektiert sind und die Henkel dann hinausstehen.
if ( pPage->GetSortedObjs() )
{
const long nOfst = GetOut()->PixelToLogic(
@@ -1070,6 +1273,7 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
if (pObj->IsFormatPossible())
{
const Rectangle &rBound = pObj->GetObjRect().SVRect();
+ // OD 03.03.2003 #107927# - use correct datatype
const SwTwips nL = Max( 0L, rBound.Left() - nOfst );
if ( nL < nMinLeft )
nMinLeft = nL;
@@ -1095,7 +1299,7 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
else
GetWin()->Invalidate( aRect );
}
- else if ( !nLockPaint )
+ else if ( !nLockPaint ) //Wird im UnLock erledigt
{
if( VisArea().IsOver( aPrevArea ) )
{
@@ -1122,13 +1326,14 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
}
GetWin()->Update();
- // #i88070#
+ // --> OD 2010-02-11 #i88070#
if ( pPostItMgr )
{
pPostItMgr->Rescale();
pPostItMgr->CalcRects();
pPostItMgr->LayoutPostIts();
}
+ // <--
if ( !bScrolled && pPostItMgr && pPostItMgr->HasNotes() && pPostItMgr->ShowNotes() )
pPostItMgr->CorrectPositions();
@@ -1138,6 +1343,15 @@ void ViewShell::VisPortChgd( const SwRect &rRect)
}
+/******************************************************************************
+|*
+|* ViewShell::SmoothScroll()
+|*
+|* Ersterstellung MA 04. Jul. 96
+|* Letzte Aenderung MA 25. Mar. 97
+|*
+******************************************************************************/
+
sal_Bool ViewShell::SmoothScroll( long lXDiff, long lYDiff, const Rectangle *pRect )
{
const sal_uLong nColCnt = pOut->GetColorCount();
@@ -1161,7 +1375,7 @@ sal_Bool ViewShell::SmoothScroll( long lXDiff, long lYDiff, const Rectangle *pRe
// #i75172# isolated static conditions
const bool bOnlyYScroll(!lXDiff && Abs(lYDiff) != 0 && Abs(lYDiff) < lMax);
const bool bAllowedWithChildWindows(GetWin()->GetWindowClipRegionPixel(WINDOW_GETCLIPREGION_NOCHILDREN|WINDOW_GETCLIPREGION_NULL).IsNull());
-// #i98766# - disable smooth scrolling for Mac port builds
+// --> OD 2009-08-12 #i98766# - disable smooth scrolling for Mac port builds
#ifdef QUARTZ
const bool bSmoothScrollAllowed(false);
(void) bOnlyYScroll;
@@ -1169,7 +1383,7 @@ sal_Bool ViewShell::SmoothScroll( long lXDiff, long lYDiff, const Rectangle *pRe
#else
const bool bSmoothScrollAllowed(bOnlyYScroll && bEnableSmooth && GetViewOptions()->IsSmoothScroll() && bAllowedWithChildWindows);
#endif
-
+// <-
const bool bIAmCursorShell(ISA(SwCrsrShell));
(void) bIAmCursorShell;
@@ -1185,6 +1399,7 @@ sal_Bool ViewShell::SmoothScroll( long lXDiff, long lYDiff, const Rectangle *pRe
const SwRect aOldVis( VisArea() );
+ //Virtuelles Device erzeugen und einstellen.
const Size aPixSz = GetWin()->PixelToLogic(Size(1,1));
VirtualDevice *pVout = new VirtualDevice( *GetWin() );
pVout->SetLineColor( GetWin()->GetLineColor() );
@@ -1198,6 +1413,7 @@ sal_Bool ViewShell::SmoothScroll( long lXDiff, long lYDiff, const Rectangle *pRe
{
nLockPaint++;
+ //Ersteinmal alles neue in das VirDev Painten.
SwRect aRect( VisArea() );
aRect.Height( aSize.Height() );
if ( pRect )
@@ -1254,6 +1470,13 @@ sal_Bool ViewShell::SmoothScroll( long lXDiff, long lYDiff, const Rectangle *pRe
pOut = pOld;
aVisArea = aOldVis;
+ //Jetzt Stueckchenweise schieben und die neuen Pixel aus dem
+ //VirDev kopieren.
+
+ // ??????????????????????
+ // or is it better to get the scrollfactor from the User
+ // as option?
+ // ??????????????????????
long lMaDelta = aPixSz.Height();
if ( Abs(lYDiff) > ( aVisArea.Height() / 3 ) )
lMaDelta *= 6;
@@ -1375,10 +1598,23 @@ sal_Bool ViewShell::SmoothScroll( long lXDiff, long lYDiff, const Rectangle *pRe
return sal_False;
}
+/******************************************************************************
+|*
+|* ViewShell::PaintDesktop()
+|*
+|* Ersterstellung MA 16. Dec. 93
+|* Letzte Aenderung MA 30. Nov. 95
+|*
+******************************************************************************/
void ViewShell::PaintDesktop( const SwRect &rRect )
{
if ( !GetWin() && !GetOut()->GetConnectMetaFile() )
- return;
+ return; //Fuer den Drucker tun wir hier nix
+
+ //Sonderfaelle abfangen, damit es nicht gar so ueberraschend aussieht.
+ //Kann z.B. waehrend des Idle'ns zwischenzeitlich auftreten.
+ //Die Rechtecke neben den Seiten muessen wir leider auf jedenfall Painten,
+ //den diese werden spaeter beim VisPortChgd ausgespart.
sal_Bool bBorderOnly = sal_False;
const SwRootFrm *pRoot = GetLayout();//swmod 080305
if ( rRect.Top() > pRoot->Frm().Bottom() )
@@ -1394,7 +1630,7 @@ void ViewShell::PaintDesktop( const SwRect &rRect )
SwRegionRects aRegion( rRect );
- //#i6193: remove sidebar area to avoid flickering
+ //mod #i6193: remove sidebar area to avoid flickering
const SwPostItMgr* pPostItMgr = GetPostItMgr();
const SwTwips nSidebarWidth = pPostItMgr && pPostItMgr->HasNotes() && pPostItMgr->ShowNotes() ?
pPostItMgr->GetSidebarWidth() + pPostItMgr->GetSidebarBorderWidth() :
@@ -1426,9 +1662,9 @@ void ViewShell::PaintDesktop( const SwRect &rRect )
{
const SwFrm *pPage = Imp()->GetFirstVisPage();
const SwTwips nBottom = rRect.Bottom();
-
+ //const SwTwips nRight = rRect.Right();
while ( pPage && aRegion.Count() &&
- (pPage->Frm().Top() <= nBottom) )
+ (pPage->Frm().Top() <= nBottom) ) // PAGES01 && (pPage->Frm().Left() <= nRight))
{
SwRect aPageRect( pPage->Frm() );
if ( bBookMode )
@@ -1452,8 +1688,11 @@ void ViewShell::PaintDesktop( const SwRect &rRect )
_PaintDesktop( aRegion );
}
+
+// PaintDesktop gesplittet, dieser Teil wird auch von PreViewPage benutzt
void ViewShell::_PaintDesktop( const SwRegionRects &rRegion )
{
+ // OD 2004-04-23 #116347#
GetOut()->Push( PUSH_FILLCOLOR|PUSH_LINECOLOR );
GetOut()->SetLineColor();
@@ -1502,6 +1741,15 @@ void ViewShell::_PaintDesktop( const SwRegionRects &rRegion )
GetOut()->Pop();
}
+/******************************************************************************
+|*
+|* ViewShell::CheckInvalidForPaint()
+|*
+|* Ersterstellung MA 19. May. 94
+|* Letzte Aenderung MA 09. Jun. 94
+|*
+******************************************************************************/
+
sal_Bool ViewShell::CheckInvalidForPaint( const SwRect &rRect )
{
if ( !GetWin() )
@@ -1542,6 +1790,8 @@ sal_Bool ViewShell::CheckInvalidForPaint( const SwRect &rRect )
SwRegionRects *pRegion = Imp()->GetRegion();
if ( pRegion && aAction.IsBrowseActionStop() )
{
+ //Nur dann interessant, wenn sich im sichtbaren Bereich etwas
+ //veraendert hat.
sal_Bool bStop = sal_True;
for ( sal_uInt16 i = 0; i < pRegion->Count(); ++i )
{
@@ -1558,7 +1808,7 @@ sal_Bool ViewShell::CheckInvalidForPaint( const SwRect &rRect )
if ( pRegion )
{
- //First Invert, then Compress, never the other way round!
+ //Erst Invert dann Compress, niemals andersherum!
pRegion->Invert();
pRegion->Compress();
bRet = sal_False;
@@ -1604,6 +1854,15 @@ sal_Bool ViewShell::CheckInvalidForPaint( const SwRect &rRect )
return bRet;
}
+/******************************************************************************
+|*
+|* ViewShell::Paint()
+|*
+|* Ersterstellung MA ??
+|* Letzte Aenderung MA 17. Sep. 96
+|*
+******************************************************************************/
+
void ViewShell::Paint(const Rectangle &rRect)
{
if ( nLockPaint )
@@ -1670,23 +1929,35 @@ void ViewShell::Paint(const Rectangle &rRect)
}
else
{
+ //SwSaveHdl *pSaveHdl = 0;
+ //if ( Imp()->HasDrawView() )
+ // pSaveHdl = new SwSaveHdl( Imp() );
+
+ //Wenn eine der sichtbaren Seiten noch irgendetwas zum Repaint
+ //angemeldet hat, so muessen Repaints ausgeloest werden.
if ( !CheckInvalidForPaint( aRect ) )
{
- // #i101192# start Pre/PostPaint encapsulation to avoid screen blinking
+ // --> OD 2009-08-12 #i101192#
+ // start Pre/PostPaint encapsulation to avoid screen blinking
const Region aRepaintRegion(aRect.SVRect());
DLPrePaint2(aRepaintRegion);
+ // <--
PaintDesktop( aRect );
+ //Falls sinnvoll gleich das alte InvalidRect verarbeiten bzw.
+ //vernichten.
if ( aRect.IsInside( aInvalidRect ) )
ResetInvalidRect();
ViewShell::bLstAct = sal_True;
GetLayout()->Paint( aRect );
ViewShell::bLstAct = sal_False;
- // #i101192# end Pre/PostPaint encapsulation
+ // --> OD 2009-08-12 #i101192#
+ // end Pre/PostPaint encapsulation
DLPostPaint2(true);
-
+ // <--
}
+ //delete pSaveHdl;
}
SwRootFrm::SetNoVirDev( sal_False );
bPaintInProgress = sal_False;
@@ -1716,6 +1987,7 @@ void ViewShell::Paint(const Rectangle &rRect)
const Region aDLRegion(rRect);
DLPrePaint2(aDLRegion);
+ // OD 2004-04-23 #116347#
pOut->Push( PUSH_FILLCOLOR|PUSH_LINECOLOR );
pOut->SetFillColor( Imp()->GetRetoucheColor() );
pOut->SetLineColor();
@@ -1728,6 +2000,15 @@ void ViewShell::Paint(const Rectangle &rRect)
}
}
+/******************************************************************************
+|*
+|* ViewShell::SetBrowseBorder()
+|*
+|* Ersterstellung AMA 20. Aug. 96
+|* Letzte Aenderung AMA 20. Aug. 96
+|*
+******************************************************************************/
+
void ViewShell::SetBrowseBorder( const Size& rNew )
{
if( rNew != aBrowseBorder )
@@ -1757,6 +2038,15 @@ sal_Int32 ViewShell::GetBrowseWidth() const
return aVisArea.Width() - 2 * GetOut()->PixelToLogic(aBrowseBorder).Width();
}
+/******************************************************************************
+|*
+|* ViewShell::CheckBrowseView()
+|*
+|* Ersterstellung MA 04. Mar. 96
+|* Letzte Aenderung MA 04. Jul. 96
+|*
+******************************************************************************/
+
void ViewShell::CheckBrowseView( sal_Bool bBrowseChgd )
{
if ( !bBrowseChgd && !GetViewOptions()->getBrowseMode() )
@@ -1815,6 +2105,16 @@ void ViewShell::CheckBrowseView( sal_Bool bBrowseChgd )
UnlockPaint();
}
+/*************************************************************************
+|*
+|* ViewShell::GetLayout()
+|* ViewShell::GetNodes()
+|*
+|* Ersterstellung OK 26. May. 92
+|* Letzte Aenderung MA 16. Sep. 93
+|*
+*************************************************************************/
+
SwRootFrm *ViewShell::GetLayout() const
{
return pLayout.get(); //swmod 080116
@@ -1863,6 +2163,15 @@ SfxItemPool& ViewShell::GetAttrPool()
return GetDoc()->GetAttrPool();
}
+/******************************************************************************
+|*
+|* ViewShell::ApplyViewOptions(), ImplApplyViewOptions()
+|*
+|* Ersterstellung ??
+|* Letzte Aenderung MA 03. Mar. 98
+|*
+******************************************************************************/
+
void ViewShell::ApplyViewOptions( const SwViewOption &rOpt )
{
@@ -2002,7 +2311,7 @@ void ViewShell::ImplApplyViewOptions( const SwViewOption &rOpt )
sal_Bool bOnlineSpellChgd = pOpt->IsOnlineSpell() != rOpt.IsOnlineSpell();
- *pOpt = rOpt;
+ *pOpt = rOpt; // Erst jetzt werden die Options uebernommen.
pOpt->SetUIOptions(rOpt);
pDoc->set(IDocumentSettingAccess::HTML_MODE, 0 != ::GetHtmlMode(pDoc->GetDocShell()));
@@ -2040,6 +2349,15 @@ void ViewShell::ImplApplyViewOptions( const SwViewOption &rOpt )
}
+/******************************************************************************
+|*
+|* ViewShell::SetUIOptions()
+|*
+|* Ersterstellung OS 29.07.96
+|* Letzte Aenderung OS 29.07.96
+|*
+******************************************************************************/
+
void ViewShell::SetUIOptions( const SwViewOption &rOpt )
{
pOpt->SetUIOptions(rOpt);
@@ -2051,10 +2369,24 @@ void ViewShell::SetUIOptions( const SwViewOption &rOpt )
pOpt->SetSymbolFont(rOpt.GetSymbolFont());
}
+/******************************************************************************
+|*
+|* ViewShell::SetReadonly()
+|*
+|* Ersterstellung OS 05.09.96
+|* Letzte Aenderung MA 12. Feb. 97
+|*
+******************************************************************************/
+
void ViewShell::SetReadonlyOption(sal_Bool bSet)
{
+ //JP 01.02.99: bei ReadOnly Flag richtig abfragen und ggfs. neu
+ // formatieren; Bug 61335
+
+ // Schalten wir gerade von Readonly auf Bearbeiten um?
if( bSet != pOpt->IsReadonly() )
{
+ // damit die Flags richtig erfragt werden koennen.
pOpt->SetReadonly( sal_False );
sal_Bool bReformat = pOpt->IsFldName();
@@ -2075,7 +2407,9 @@ void ViewShell::SetReadonlyOption(sal_Bool bSet)
Imp()->InvalidateAccessibleEditableState( sal_False );
}
}
+/* -----------------28.08.2003 15:45-----------------
+ --------------------------------------------------*/
void ViewShell::SetPDFExportOption(sal_Bool bSet)
{
if( bSet != pOpt->IsPDFExport() )
@@ -2085,7 +2419,9 @@ void ViewShell::SetPDFExportOption(sal_Bool bSet)
pOpt->SetPDFExport(bSet);
}
}
+/* -----------------------------2002/07/31 17:06------------------------------
+ ---------------------------------------------------------------------------*/
void ViewShell::SetReadonlySelectionOption(sal_Bool bSet)
{
if( bSet != pOpt->IsSelectionInReadonly() )
@@ -2094,11 +2430,30 @@ void ViewShell::SetReadonlySelectionOption(sal_Bool bSet)
}
}
+/******************************************************************************
+|*
+|* ViewShell::SetPrtFormatOption()
+|*
+|* Ersterstellung AMA 10. Sep. 97
+|* Letzte Aenderung AMA 10. Sep. 97
+|*
+******************************************************************************/
+
void ViewShell::SetPrtFormatOption( sal_Bool bSet )
{
pOpt->SetPrtFormat( bSet );
}
+/******************************************************************************
+|*
+|* ViewShell::UISizeNotify()
+|*
+|* Ersterstellung MA 14. Jan. 97
+|* Letzte Aenderung MA 14. Jan. 97
+|*
+******************************************************************************/
+
+
void ViewShell::UISizeNotify()
{
if ( bDocSizeChgd )
@@ -2151,8 +2506,10 @@ ViewShell::CreateAccessiblePreview()
OSL_ENSURE( pLayout, "no layout, no access" );
OSL_ENSURE( GetWin(), "no window, no access" );
+ // OD 15.01.2003 #103492# - add condition <IsPreView()>
if ( IsPreView() && GetLayout()&& GetWin() )
{
+ // OD 14.01.2003 #103492# - adjustment for new method signature
return Imp()->GetAccessibleMap().GetDocumentPreview(
PagePreviewLayout()->maPrevwPages,
GetWin()->GetMapMode().GetScaleX(),
@@ -2168,7 +2525,12 @@ void ViewShell::InvalidateAccessibleFocus()
Imp()->GetAccessibleMap().InvalidateFocus();
}
-// #i27138# invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
+/** invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
+
+ OD 2005-12-01 #i27138#
+
+ @author OD
+*/
void ViewShell::InvalidateAccessibleParaFlowRelation( const SwTxtFrm* _pFromTxtFrm,
const SwTxtFrm* _pToTxtFrm )
{
@@ -2178,7 +2540,12 @@ void ViewShell::InvalidateAccessibleParaFlowRelation( const SwTxtFrm* _pFromTxtF
}
}
-// #i27301# invalidate text selection for paragraphs
+/** invalidate text selection for paragraphs
+
+ OD 2005-12-12 #i27301#
+
+ @author OD
+*/
void ViewShell::InvalidateAccessibleParaTextSelection()
{
if ( GetLayout() && GetLayout()->IsAnyShellAccessible() )
@@ -2187,7 +2554,12 @@ void ViewShell::InvalidateAccessibleParaTextSelection()
}
}
-// #i88069# invalidate attributes for paragraphs
+/** invalidate attributes for paragraphs
+
+ OD 2009-01-06 #i88069#
+
+ @author OD
+*/
void ViewShell::InvalidateAccessibleParaAttrs( const SwTxtFrm& rTxtFrm )
{
if ( GetLayout() && GetLayout()->IsAnyShellAccessible() )
@@ -2205,6 +2577,9 @@ SwAccessibleMap* ViewShell::GetAccessibleMap()
return 0;
}
+/* -----------------------------06.05.2002 13:23------------------------------
+
+ ---------------------------------------------------------------------------*/
void ViewShell::ApplyAccessiblityOptions(SvtAccessibilityOptions& rAccessibilityOptions)
{
if(pOpt->IsPagePreview() && !rAccessibilityOptions.GetIsForPagePreviews())
@@ -2260,16 +2635,17 @@ const Size ViewShell::GetPageSize( sal_uInt16 nPageNum, bool bSkipEmptyPages ) c
return aSize;
}
-// #i12836# enhanced pdf export
+// --> FME 2004-06-15 #i12836# enhanced pdf export
sal_Int32 ViewShell::GetPageNumAndSetOffsetForPDF( OutputDevice& rOut, const SwRect& rRect ) const
{
OSL_ENSURE( GetLayout(), "GetPageNumAndSetOffsetForPDF assumes presence of layout" );
sal_Int32 nRet = -1;
- // #i40059# Position out of bounds
+ // --> FME 2005-01-07 #i40059# Position out of bounds:
SwRect aRect( rRect );
aRect.Pos().X() = Max( aRect.Left(), GetLayout()->Frm().Left() );
+ // <--
const SwPageFrm* pPage = GetLayout()->GetPageAtPos( aRect.Center() );
if ( pPage )
@@ -2289,7 +2665,9 @@ sal_Int32 ViewShell::GetPageNumAndSetOffsetForPDF( OutputDevice& rOut, const SwR
return nRet;
}
+// <--
+// --> PB 2007-05-30 #146850#
const BitmapEx& ViewShell::GetReplacementBitmap( bool bIsErrorState )
{
BitmapEx** ppRet;
@@ -2317,6 +2695,7 @@ void ViewShell::DeleteReplacementBitmaps()
DELETEZ( pErrorBmp );
DELETEZ( pReplaceBmp );
}
+// <--
SwPostItMgr* ViewShell::GetPostItMgr()
{
@@ -2352,7 +2731,7 @@ IDocumentUndoRedo & ViewShell::GetIDocumentUndoRedo()
IDocumentUndoRedo const& ViewShell::GetIDocumentUndoRedo() const
{ return pDoc->GetIDocumentUndoRedo(); }
-// #i83479#
+// --> OD 2007-11-14 #i83479#
const IDocumentListItems* ViewShell::getIDocumentListItemsAccess() const
{
return pDoc;
@@ -2361,5 +2740,6 @@ const IDocumentOutlineNodes* ViewShell::getIDocumentOutlineNodesAccess() const
{
return pDoc;
}
+// <--
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/view/vnew.cxx b/sw/source/core/view/vnew.cxx
index 1234c4d3235b..226dbc0c77d9 100644
--- a/sw/source/core/view/vnew.cxx
+++ b/sw/source/core/view/vnew.cxx
@@ -37,31 +37,50 @@
#include <rootfrm.hxx>
#include <viewimp.hxx>
#include <viewopt.hxx>
-#include <txtfrm.hxx>
+#include <txtfrm.hxx> // Zugriff auf TxtCache
#include <notxtfrm.hxx>
#include <fntcache.hxx>
#include <docufld.hxx>
#include <ptqueue.hxx>
-#include <dview.hxx>
+#include <dview.hxx> // SdrView
#include <ndgrf.hxx>
#include <ndindex.hxx>
#include <accessibilityoptions.hxx>
#include <switerator.hxx>
+
+
+/*************************************************************************
+|*
+|* ViewShell::Init()
+|*
+|* Letzte Aenderung MA 14. Jun. 96
+|*
+|*************************************************************************/
+
void ViewShell::Init( const SwViewOption *pNewOpt )
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLog, "SW", "JP93722", "ViewShell::Init" );
bDocSizeChgd = sal_False;
- pFntCache->Flush( );
+ // Wir gehen auf Nummer sicher:
+ // Wir muessen die alten Fontinformationen wegschmeissen,
+ // wenn die Druckeraufloesung oder der Zoomfaktor sich aendert.
+ // Init() und Reformat() sind die sichersten Stellen.
+ pFntCache->Flush( );
+
+ // ViewOptions werden dynamisch angelegt
if( !pOpt )
{
pOpt = new SwViewOption;
+ // Ein ApplyViewOptions braucht nicht gerufen zu werden
if( pNewOpt )
{
*pOpt = *pNewOpt;
+ // Der Zoomfaktor muss eingestellt werden, weil in der CTOR-
+ // phase aus Performancegruenden kein ApplyViewOptions gerufen wird.
if( GetWin() && 100 != pOpt->GetZoom() )
{
MapMode aMode( pWin->GetMapMode() );
@@ -75,27 +94,36 @@ void ViewShell::Init( const SwViewOption *pNewOpt )
SwDocShell* pDShell = pDoc->GetDocShell();
pDoc->set(IDocumentSettingAccess::HTML_MODE, 0 != ::GetHtmlMode( pDShell ) );
+ // JP 02.02.99: Bug 61335 - Readonly-Flag an den ViewOptions setzen,
+ // bevor das Layout angelegt wird. Ansonsten muesste man
+ // nochmals durchformatieren!!
if( pDShell && pDShell->IsReadOnly() )
pOpt->SetReadonly( sal_True );
RTL_LOGFILE_CONTEXT_TRACE( aLog, "View::Init - before InitPrt" );
- // #i82967#
+ // --> FME 2007-11-06 #i82967#
OutputDevice* pPDFOut = 0;
if ( pOut && pOut->GetPDFWriter() )
pPDFOut = pOut;
- // #i41075# Only setup the printer if we need one:
+ // <--
+
+ // --> FME 2005-01-21 #i41075#
+ // Only setup the printer if we need one:
const bool bBrowseMode = pOpt->getBrowseMode();
if( pPDFOut )
InitPrt( pPDFOut );
- // #i44963# Good occasion to check if page sizes in page descriptions
- // are still set to (LONG_MAX, LONG_MAX) (html import)
+ // <--
+
+ // --> FME 2005-03-16 #i44963# Good occasion to check if page sizes in
+ // page descriptions are still set to (LONG_MAX, LONG_MAX) (html import)
if ( !bBrowseMode )
{
pDoc->CheckDefaultPageFmt();
}
+ // <--
RTL_LOGFILE_CONTEXT_TRACE( aLog, "View::Init - after InitPrt" );
@@ -126,7 +154,7 @@ void ViewShell::Init( const SwViewOption *pNewOpt )
}
SizeChgNotify(); //swmod 071108
- // #i31958#
+ // --> #i31958#
// XForms mode: initialize XForms mode, based on design mode (draw view)
// MakeDrawView() requires layout
if( GetDoc()->isXForms() )
@@ -135,8 +163,17 @@ void ViewShell::Init( const SwViewOption *pNewOpt )
MakeDrawView();
pOpt->SetFormView( ! GetDrawView()->IsDesignMode() );
}
+ // <-- #i31958#
}
+/*************************************************************************
+|*
+|* ViewShell::ViewShell() CTor fuer die erste Shell.
+|*
+|* Letzte Aenderung MA 29. Aug. 95
+|*
+|*************************************************************************/
+
ViewShell::ViewShell( SwDoc& rDocument, Window *pWindow,
const SwViewOption *pNewOpt, OutputDevice *pOutput,
long nFlags )
@@ -154,17 +191,17 @@ ViewShell::ViewShell( SwDoc& rDocument, Window *pWindow,
bShowHeaderSeparator( false ),
bShowFooterSeparator( false ),
bHeaderFooterEdit( false ),
- mpTargetPaintWindow(0),
- mpBufferedOut(0),
+ mpTargetPaintWindow(0), // #i74769#
+ mpBufferedOut(0), // #i74769#
pDoc( &rDocument ),
nStartAction( 0 ),
nLockPaint( 0 ),
- mpPrePostOutDev(0),
+ mpPrePostOutDev(0), // #i72754#
maPrePostMapMode()
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLog, "SW", "JP93722", "ViewShell::SwViewShell" );
- // #i26791# in order to suppress event handling in
+ // OD 2004-06-01 #i26791# - in order to suppress event handling in
// <SwDrawContact::Changed> during contruction of <ViewShell> instance
mbInConstructor = true;
@@ -173,16 +210,19 @@ ViewShell::ViewShell( SwDoc& rDocument, Window *pWindow,
bPaintWorks = bEnableSmooth = sal_True;
bPreView = 0 !=( VSHELLFLAG_ISPREVIEW & nFlags );
- // #i38810# Do not reset modified state of document, if it's already been modified.
+ // --> OD 2005-02-11 #i38810# - Do not reset modified state of document,
+ // if it's already been modified.
const bool bIsDocModified( pDoc->IsModified() );
pDoc->acquire();
pOutput = pOut;
- Init( pNewOpt );
+ Init( pNewOpt ); //verstellt ggf. das Outdev (InitPrt())
pOut = pOutput;
- // initialize print preview layout after layout is created in <ViewShell::Init(..)> - called above.
+ // OD 28.03.2003 #108470# - initialize print preview layout after layout
+ // is created in <ViewShell::Init(..)> - called above.
if ( bPreView )
{
+ // OD 12.12.2002 #103492# - init page preview layout
pImp->InitPagePreviewLayout();
}
@@ -191,22 +231,33 @@ ViewShell::ViewShell( SwDoc& rDocument, Window *pWindow,
((SwHiddenTxtFieldType*)pDoc->GetSysFldType( RES_HIDDENTXTFLD ))->
SetHiddenFlag( !pOpt->IsShowHiddenField() );
- // #i38810#
+ //In Init wird ein Standard-FrmFmt angelegt.
+ // --> OD 2005-02-11 #i38810#
if ( !pDoc->GetIDocumentUndoRedo().IsUndoNoResetModified()
&& !bIsDocModified )
+ // <--
{
pDoc->ResetModified();
}
+ //Format-Cache erweitern.
if ( SwTxtFrm::GetTxtCache()->GetCurMax() < 2550 )
SwTxtFrm::GetTxtCache()->IncreaseMax( 100 );
if( pOpt->IsGridVisible() || getIDocumentDrawModelAccess()->GetDrawModel() )
Imp()->MakeDrawView();
- // #i26791#
+ // OD 2004-06-01 #i26791#
mbInConstructor = false;
}
+/*************************************************************************
+|*
+|* ViewShell::ViewShell() CTor fuer weitere Shells auf ein Dokument.
+|*
+|* Letzte Aenderung MA 29. Aug. 95
+|*
+|*************************************************************************/
+
ViewShell::ViewShell( ViewShell& rShell, Window *pWindow,
OutputDevice *pOutput, long nFlags ) :
Ring( &rShell ),
@@ -223,17 +274,17 @@ ViewShell::ViewShell( ViewShell& rShell, Window *pWindow,
bShowHeaderSeparator( false ),
bShowFooterSeparator( false ),
bHeaderFooterEdit( false ),
- mpTargetPaintWindow(0),
- mpBufferedOut(0),
+ mpTargetPaintWindow(0), // #i74769#
+ mpBufferedOut(0), // #i74769#
pDoc( rShell.GetDoc() ),
nStartAction( 0 ),
nLockPaint( 0 ),
- mpPrePostOutDev(0),
+ mpPrePostOutDev(0), // #i72754#
maPrePostMapMode()
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLog, "SW", "JP93722", "ViewShell::SwViewShell" );
- // #i26791# in order to suppress event handling in
+ // OD 2004-06-01 #i26791# - in order to suppress event handling in
// <SwDrawContact::Changed> during contruction of <ViewShell> instance
mbInConstructor = true;
@@ -241,6 +292,7 @@ ViewShell::ViewShell( ViewShell& rShell, Window *pWindow,
bPaintInProgress = bViewLocked = bInEndAction = bFrameView =
bEndActionByVirDev = sal_False;
bPreView = 0 !=( VSHELLFLAG_ISPREVIEW & nFlags );
+ // OD 12.12.2002 #103492#
if( nFlags & VSHELLFLAG_SHARELAYOUT ) //swmod 080125
pLayout = rShell.pLayout;//swmod 080125
@@ -250,7 +302,7 @@ ViewShell::ViewShell( ViewShell& rShell, Window *pWindow,
sal_Bool bModified = pDoc->IsModified();
pOutput = pOut;
- Init( rShell.GetViewOptions() );
+ Init( rShell.GetViewOptions() ); //verstellt ggf. das Outdev (InitPrt())
pOut = pOutput;
// OD 12.12.2002 #103492#
@@ -260,28 +312,39 @@ ViewShell::ViewShell( ViewShell& rShell, Window *pWindow,
((SwHiddenTxtFieldType*)pDoc->GetSysFldType( RES_HIDDENTXTFLD ))->
SetHiddenFlag( !pOpt->IsShowHiddenField() );
+ // in Init wird ein Standard-FrmFmt angelegt
if( !bModified && !pDoc->GetIDocumentUndoRedo().IsUndoNoResetModified() )
{
pDoc->ResetModified();
}
+ //Format-Cache erweitern.
if ( SwTxtFrm::GetTxtCache()->GetCurMax() < 2550 )
SwTxtFrm::GetTxtCache()->IncreaseMax( 100 );
if( pOpt->IsGridVisible() || getIDocumentDrawModelAccess()->GetDrawModel() )
Imp()->MakeDrawView();
- // #i26791#
+ // OD 2004-06-01 #i26791#
mbInConstructor = false;
}
+/******************************************************************************
+|*
+|* ViewShell::~ViewShell()
+|*
+|* Ersterstellung MA ??
+|* Letzte Aenderung MA 10. May. 95
+|*
+******************************************************************************/
+
ViewShell::~ViewShell()
{
{
SET_CURR_SHELL( this );
bPaintWorks = sal_False;
- // #i9684#Stopping the animated graphics is not
+ // FME 2004-06-21 #i9684# Stopping the animated graphics is not
// necessary during printing or pdf export, because the animation
// has not been started in this case.
if( pDoc && GetWin() )
@@ -312,7 +375,7 @@ ViewShell::~ViewShell()
GetDoc()->StopNumRuleAnimations( pOut );
}
- delete pImp;
+ delete pImp; //Erst loeschen, damit die LayoutViews vernichtet werden.
pImp = 0; // Set to zero, because ~SwFrm relies on it.
if ( pDoc )
@@ -325,9 +388,11 @@ ViewShell::~ViewShell()
delete pOpt;
+ //Format-Cache zurueckschrauben.
if ( SwTxtFrm::GetTxtCache()->GetCurMax() > 250 )
SwTxtFrm::GetTxtCache()->DecreaseMax( 100 );
+ //Ggf. aus der PaintQueue entfernen lassen
SwPaintQueue::Remove( this );
OSL_ENSURE( !nStartAction, "EndAction() pending." );
diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx
index edf13740f1a7..bb37a1cd9fb0 100644..100755
--- a/sw/source/core/view/vprint.cxx
+++ b/sw/source/core/view/vprint.cxx
@@ -71,19 +71,21 @@
#include <viewopt.hxx>
#include <printdata.hxx> // SwPrintData
#include <pagedesc.hxx>
-#include <poolfmt.hxx>
-#include <mdiexp.hxx>
-#include <statstr.hrc>
+#include <poolfmt.hxx> // fuer RES_POOLPAGE_JAKET
+#include <mdiexp.hxx> // Ansteuern der Statusleiste
+#include <statstr.hrc> // -- " --
#include <ptqueue.hxx>
#include <tabfrm.hxx>
-#include <txtfrm.hxx> // MinPrtLine
-#include <viscrs.hxx> // SwShellCrsr
+#include <txtfrm.hxx> // MinPrtLine
+#include <viscrs.hxx> // SwShellCrsr
#include <fmtpdsc.hxx> // SwFmtPageDesc
#include <globals.hrc>
using namespace ::com::sun::star;
+//--------------------------------------------------------------------
+//Klasse zum Puffern von Paints
class SwQueuedPaint
{
public:
@@ -189,6 +191,13 @@ void SwPaintQueue::Remove( ViewShell *pSh )
}
}
+/******************************************************************************
+ * Methode : void SetSwVisArea( ViewShell *pSh, Point aPrtOffset, ...
+ * Beschreibung:
+ * Erstellt : OK 04.11.94 16:27
+ * Aenderung :
+ ******************************************************************************/
+
void SetSwVisArea( ViewShell *pSh, const SwRect &rRect, sal_Bool /*bPDFExport*/ )
{
OSL_ENSURE( !pSh->GetWin(), "Drucken mit Window?" );
@@ -236,6 +245,13 @@ void ViewShell::InitPrt( OutputDevice *pOutDev )
pOut = pOutDev; //Oder was sonst?
}
+/******************************************************************************
+ * Methode : void ViewShell::ChgAllPageOrientation
+ * Erstellt : MA 08. Aug. 95
+ * Aenderung :
+ ******************************************************************************/
+
+
void ViewShell::ChgAllPageOrientation( sal_uInt16 eOri )
{
OSL_ENSURE( nStartAction, "missing an Action" );
@@ -259,6 +275,10 @@ void ViewShell::ChgAllPageOrientation( sal_uInt16 eOri )
aNew.SetLandscape( bNewOri );
SwFrmFmt& rFmt = aNew.GetMaster();
SwFmtFrmSize aSz( rFmt.GetFrmSize() );
+ // Groesse anpassen.
+ // PORTRAIT -> Hoeher als Breit
+ // LANDSCAPE -> Breiter als Hoch
+ // Hoehe ist die VarSize, Breite ist die FixSize (per Def.)
if( bNewOri ? aSz.GetHeight() > aSz.GetWidth()
: aSz.GetHeight() < aSz.GetWidth() )
{
@@ -272,6 +292,13 @@ void ViewShell::ChgAllPageOrientation( sal_uInt16 eOri )
}
}
+/******************************************************************************
+ * Methode : void ViewShell::ChgAllPageOrientation
+ * Erstellt : MA 08. Aug. 95
+ * Aenderung :
+ ******************************************************************************/
+
+
void ViewShell::ChgAllPageSize( Size &rSz )
{
OSL_ENSURE( nStartAction, "missing an Action" );
@@ -312,6 +339,7 @@ void ViewShell::CalcPagesForPrint( sal_uInt16 nMax )
SET_CURR_SHELL( this );
SwRootFrm* pMyLayout = GetLayout();
+ // ULONG nStatMax = pLayout->GetPageNum();
const SwFrm *pPage = pMyLayout->Lower();
SwLayAction aAction( pMyLayout, Imp() );
@@ -330,9 +358,9 @@ void ViewShell::CalcPagesForPrint( sal_uInt16 nMax )
aAction.Action();
- aVisArea = aOldVis;
+ aVisArea = aOldVis; //Zuruecksetzen wg. der Paints!
Imp()->SetFirstVisPageInvalid();
-
+// SwPaintQueue::Repaint();
}
pMyLayout->EndAllAction();
@@ -344,10 +372,15 @@ SwDoc * ViewShell::FillPrtDoc( SwDoc *pPrtDoc, const SfxPrinter* pPrt)
{
OSL_ENSURE( this->IsA( TYPE(SwFEShell) ),"ViewShell::Prt for FEShell only");
SwFEShell* pFESh = (SwFEShell*)this;
+ // Wir bauen uns ein neues Dokument
+// SwDoc *pPrtDoc = new SwDoc;
+// pPrtDoc->acquire();
+// pPrtDoc->SetRefForDocShell( (SvEmbeddedObjectRef*)&(long&)rDocShellRef );
pPrtDoc->LockExpFlds();
- // Make a copy of it since it gets destroyed with the temporary document
- // used for PDF export
+ // Der Drucker wird uebernommen
+ //! Make a copy of it since it gets destroyed with the temporary document
+ //! used for PDF export
if (pPrt)
pPrtDoc->setPrinter( new SfxPrinter(*pPrt), true, true );
@@ -357,15 +390,18 @@ SwDoc * ViewShell::FillPrtDoc( SwDoc *pPrtDoc, const SfxPrinter* pPrt)
if( 0 != ( pCpyItem = rPool.GetPoolDefaultItem( nWh ) ) )
pPrtDoc->GetAttrPool().SetPoolDefaultItem( *pCpyItem );
+ // JP 29.07.99 - Bug 67951 - set all Styles from the SourceDoc into
+ // the PrintDoc - will be replaced!
pPrtDoc->ReplaceStyles( *GetDoc() );
SwShellCrsr *pActCrsr = pFESh->_GetCrsr();
SwShellCrsr *pFirstCrsr = dynamic_cast<SwShellCrsr*>(pActCrsr->GetNext());
- if( !pActCrsr->HasMark() )
+ if( !pActCrsr->HasMark() ) // bei Multiselektion kann der aktuelle Cursor leer sein
{
pActCrsr = dynamic_cast<SwShellCrsr*>(pActCrsr->GetPrev());
}
+ // Die Y-Position der ersten Selektion
Point aSelPoint;
if( pFESh->IsTableMode() )
{
@@ -394,21 +430,26 @@ SwDoc * ViewShell::FillPrtDoc( SwDoc *pPrtDoc, const SfxPrinter* pPrt)
pPage->GetPageDesc()->GetName() ) : &pPrtDoc->_GetPageDesc( (sal_uInt16)0 );
if( !pFESh->IsTableMode() && pActCrsr->HasMark() )
- {
+ { // Am letzten Absatz die Absatzattribute richten:
SwNodeIndex aNodeIdx( *pPrtDoc->GetNodes().GetEndOfContent().StartOfSectionNode() );
SwTxtNode* pTxtNd = pPrtDoc->GetNodes().GoNext( &aNodeIdx )->GetTxtNode();
SwCntntNode *pLastNd =
pActCrsr->GetCntntNode( (*pActCrsr->GetMark()) <= (*pActCrsr->GetPoint()) );
-
+ // Hier werden die Absatzattribute des ersten Absatzes uebertragen
if( pLastNd && pLastNd->IsTxtNode() )
((SwTxtNode*)pLastNd)->CopyCollFmt( *pTxtNd );
}
+ // es wurde in der CORE eine neu angelegt (OLE-Objekte kopiert!)
+// if( aDocShellRef.Is() )
+// SwDataExchange::InitOle( aDocShellRef, pPrtDoc );
+ // und fuellen es mit dem selektierten Bereich
pFESh->Copy( pPrtDoc );
+ //Jetzt noch am ersten Absatz die Seitenvorlage setzen
{
SwNodeIndex aNodeIdx( *pPrtDoc->GetNodes().GetEndOfContent().StartOfSectionNode() );
- SwCntntNode* pCNd = pPrtDoc->GetNodes().GoNext( &aNodeIdx );
+ SwCntntNode* pCNd = pPrtDoc->GetNodes().GoNext( &aNodeIdx ); // gehe zum 1. ContentNode
if( pFESh->IsTableMode() )
{
SwTableNode* pTNd = pCNd->FindTableNode();
@@ -425,7 +466,7 @@ SwDoc * ViewShell::FillPrtDoc( SwDoc *pPrtDoc, const SfxPrinter* pPrt)
{
SwCntntNode *pFirstNd =
pFirstCrsr->GetCntntNode( (*pFirstCrsr->GetMark()) > (*pFirstCrsr->GetPoint()) );
-
+ // Hier werden die Absatzattribute des ersten Absatzes uebertragen
if( pFirstNd && pFirstNd->IsTxtNode() )
((SwTxtNode*)pFirstNd)->CopyCollFmt( *pTxtNd );
}
@@ -459,6 +500,9 @@ sal_Bool ViewShell::PrintOrPDFExport(
SwPrintData const& rPrintData,
sal_Int32 nRenderer /* the index in the vector of pages to be printed */ )
{
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+//Immer die Druckroutinen in viewpg.cxx (PrintProspect) mitpflegen!!
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
const sal_Int32 nMaxRenderer = rPrintData.GetRenderData().GetPagesToPrint().size() - 1;
OSL_ENSURE( 0 <= nRenderer && nRenderer <= nMaxRenderer, "nRenderer out of bounds");
@@ -484,10 +528,12 @@ sal_Bool ViewShell::PrintOrPDFExport(
pDrawView->SetBufferedOverlayAllowed( false );
}
- {
- SET_CURR_SHELL( pShell );
+ { //Zusaetzlicher Scope, damit die CurrShell vor dem zerstoeren der
+ //Shell zurueckgesetzt wird.
+ SET_CURR_SHELL( pShell );
+ //JP 01.02.99: das ReadOnly Flag wird NIE mitkopiert; Bug 61335
if( pOpt->IsReadonly() )
pShell->pOpt->SetReadonly( sal_True );
@@ -518,6 +564,7 @@ sal_Bool ViewShell::PrintOrPDFExport(
// FIXME disabled because rPrintData.aOffset is always (0,0)
#if 0
+ // wenn wir einen Umschlag drucken wird ein Offset beachtet
if( pStPage->GetFmt()->GetPoolFmtId() == RES_POOLPAGE_JAKET )
{
Point aNewOrigin = pOutDev->GetMapMode().GetOrigin();
@@ -535,7 +582,7 @@ sal_Bool ViewShell::PrintOrPDFExport(
pStPage->GetUpper()->Paint( pStPage->Frm(), &rPrintData );
SwPaintQueue::Repaint();
- }
+ } //Zus. Scope wg. CurShell!
delete pShell;
@@ -546,9 +593,21 @@ sal_Bool ViewShell::PrintOrPDFExport(
return sal_True;
}
+/******************************************************************************
+ * Methode : PrtOle2()
+ * Beschreibung:
+ * Erstellt : PK 07.12.94
+ * Aenderung : MA 16. Feb. 95
+ ******************************************************************************/
+
+
+
void ViewShell::PrtOle2( SwDoc *pDoc, const SwViewOption *pOpt, const SwPrintData& rOptions,
OutputDevice* pOleOut, const Rectangle& rRect )
{
+ //Wir brauchen eine Shell fuer das Drucken. Entweder hat das Doc schon
+ //eine, dann legen wir uns eine neue Sicht an, oder das Doc hat noch
+ //keine, dann erzeugen wir die erste Sicht.
ViewShell *pSh;
if( pDoc->GetCurrentViewShell() )
pSh = new ViewShell( *pDoc->GetCurrentViewShell(), 0, pOleOut,VSHELLFLAG_SHARELAYOUT );//swmod 080129
@@ -577,16 +636,27 @@ void ViewShell::PrtOle2( SwDoc *pDoc, const SwViewOption *pOpt, const SwPrintDat
// formatting of the document.
// Seiten fuers Drucken formatieren
// pSh->CalcPagesForPrint( SHRT_MAX );
+ //#39275# jetzt will der Meyer doch ein Clipping
pOleOut->Push( PUSH_CLIPREGION );
pOleOut->IntersectClipRegion( aSwRect.SVRect() );
pSh->GetLayout()->Paint( aSwRect );
+// SFX_APP()->SpoilDemoOutput( *pOleOut, rRect );
pOleOut->Pop();
-
+ // erst muss das CurrShell Object zerstoert werden!!
}
delete pSh;
}
+/******************************************************************************
+ * Methode : IsAnyFieldInDoc()
+ * Beschreibung: Stellt fest, ob im DocNodesArray Felder verankert sind
+ * Erstellt : JP 27.07.95
+ * Aenderung : JP 10.12.97
+ ******************************************************************************/
+
+
+
sal_Bool ViewShell::IsAnyFieldInDoc() const
{
const SfxPoolItem* pItem;
@@ -596,7 +666,7 @@ sal_Bool ViewShell::IsAnyFieldInDoc() const
{
const SwFmtFld* pFmtFld = (SwFmtFld*)pItem;
const SwTxtFld* pTxtFld = pFmtFld->GetTxtFld();
- //#i101026# do not include postits in field check
+ //#i101026# mod: do not include postits in field check
const SwField* pFld = pFmtFld->GetFld();
if( pTxtFld && pTxtFld->GetTxtNode().GetNodes().IsDocNodes() && (pFld->Which() != RES_POSTITFLD))
return sal_True;
@@ -604,6 +674,14 @@ sal_Bool ViewShell::IsAnyFieldInDoc() const
return sal_False;
}
+
+
+/******************************************************************************
+ * SwDrawViewSave
+ *
+ * Saves some settings at the draw view
+ ******************************************************************************/
+
SwDrawViewSave::SwDrawViewSave( SdrView* pSdrView )
: pDV( pSdrView )
{
@@ -623,7 +701,7 @@ SwDrawViewSave::~SwDrawViewSave()
}
-// #i6467# - method also called for page preview
+// OD 09.01.2003 #i6467# - method also called for page preview
void ViewShell::PrepareForPrint( const SwPrintData &rOptions )
{
pOpt->SetGraphic ( sal_True == rOptions.bPrintGraphic );
@@ -638,7 +716,7 @@ void ViewShell::PrepareForPrint( const SwPrintData &rOptions )
SdrView *pDrawView = GetDrawView();
String sLayerNm;
sLayerNm.AssignAscii(RTL_CONSTASCII_STRINGPARAM("Controls" ));
- // #i6467# - consider, if view shell belongs to page preview
+ // OD 09.01.2003 #i6467# - consider, if view shell belongs to page preview
if ( !IsPreView() )
{
pDrawView->SetLayerPrintable( sLayerNm, rOptions.bPrintControl );