diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 794e5ed776b6..edaad1058f77 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -2,9 +2,9 @@ * * $RCSfile: paintfrm.cxx,v $ * - * $Revision: 1.25 $ + * $Revision: 1.26 $ * - * last change: $Author: ama $ $Date: 2002-02-08 14:49:20 $ + * last change: $Author: ama $ $Date: 2002-04-08 14:32:03 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -1360,6 +1360,32 @@ inline FASTBOOL IsShortCut( const SwRect &rRect, const SwRect &rFrmRect ) } +void lcl_PaintShadow( const SwRect& aFrm, ViewShell* pSh ) +{ + const Color& rColor = pSh->GetWin()->GetSettings(). + GetStyleSettings().GetFieldTextColor(); + Color aFill( pSh->GetOut()->GetFillColor() ); + Color aLine( pSh->GetOut()->GetLineColor() ); + pSh->GetOut()->SetFillColor( Color( COL_TRANSPARENT ) ); + pSh->GetOut()->SetLineColor( rColor ); + Rectangle aPageRect( aFrm.SVRect() ); + pSh->GetOut()->DrawRect( aPageRect ); + aPageRect = pSh->GetOut()->LogicToPixel( aPageRect ); + Rectangle aShadow( aPageRect.Left()+2, aPageRect.Bottom()+1, + aPageRect.Right()+2, aPageRect.Bottom()+2 ); + pSh->GetOut()->SetFillColor( rColor ); + aShadow = pSh->GetOut()->PixelToLogic( aShadow ); + pSh->GetOut()->DrawRect( aShadow ); + aShadow.Left() = aPageRect.Right() + 1; + aShadow.Right() = aShadow.Left() + 1; + aShadow.Top() = aPageRect.Top() + 2; + aShadow.Bottom() = aPageRect.Bottom(); + aShadow = pSh->GetOut()->PixelToLogic( aShadow ); + pSh->GetOut()->DrawRect( aShadow ); + pSh->GetOut()->SetFillColor( aFill ); + pSh->GetOut()->SetLineColor( aLine ); +} + //---------------- Ausgabe fuer das BrushItem ---------------- void lcl_DrawGraphic( const SvxBrushItem& rBrush, OutputDevice *pOut, @@ -1672,6 +1698,8 @@ void SwRootFrm::Paint( const SwRect& rRect ) const } pPage->Paint( aPaintRect ); + if( pSh->GetWin() ) + lcl_PaintShadow( pPage->Frm(), pSh ); pLines->PaintLines( pSh->GetOut() ); BOOL bControlExtra = FALSE; diff --git a/sw/source/core/view/viewpg.cxx b/sw/source/core/view/viewpg.cxx index c09c8e7a9ed2..2f6ad682737b 100644 --- a/sw/source/core/view/viewpg.cxx +++ b/sw/source/core/view/viewpg.cxx @@ -2,9 +2,9 @@ * * $RCSfile: viewpg.cxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: os $ $Date: 2002-03-15 07:33:34 $ + * last change: $Author: ama $ $Date: 2002-04-08 14:32:45 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -404,6 +404,7 @@ void ViewShell::PreViewPage( const StyleSettings& rSettings = GetWin()->GetSettings().GetStyleSettings(); if(rSettings.GetHighContrastMode()) aLineColor = rSettings.GetHighlightTextColor(); + const Color& rColor = rSettings.GetFieldTextColor(); for( nCntRow = 0; pPage && nCntRow < nRow; ++nCntRow ) { aCalcPt.X() = aFreePt.X(); @@ -418,6 +419,8 @@ void ViewShell::PreViewPage( continue; } + Rectangle aPageRect; + if( pPage->IsEmptyPage() ) { Rectangle aRect( aCalcPt, rPageSize ); @@ -430,15 +433,7 @@ void ViewShell::PreViewPage( if( GetOut()->GetFillColor() != aRetouche ) GetOut()->SetFillColor( aRetouche ); - if(!nSelectedPage) - { - Color aLine(GetOut()->GetLineColor()); - GetOut()->SetLineColor(aLineColor); - GetOut()->DrawRect( aRect ); - GetOut()->SetLineColor(aLine); - } - else - GetOut()->DrawRect( aRect ); + GetOut()->DrawRect( aRect ); if( !pEmptyPgFont ) { @@ -459,6 +454,7 @@ void ViewShell::PreViewPage( TEXT_DRAW_CENTER | TEXT_DRAW_CLIP ); GetOut()->SetFont( aOldFont ); + aPageRect = GetOut()->LogicToPixel( aRect ); aCalcPt.X() += rPageSize.Width()+1 + aFreePt.X(); } @@ -473,7 +469,7 @@ void ViewShell::PreViewPage( GetOut()->SetMapMode( aMapMode ); Rectangle aSVRect( GetOut()->LogicToPixel( aVisArea.SVRect() ) ); - Rectangle aMarkRect(aSVRect); + aPageRect = aSVRect; if( aPixRect.IsOver( aSVRect ) ) { aSVRect.Intersection( aPixRect ); @@ -482,18 +478,39 @@ void ViewShell::PreViewPage( Paint( aSVRect ); } aCalcPt.X() += pPage->Frm().Width()+1 + aFreePt.X(); - if(!nSelectedPage) - { - aMarkRect = GetOut()->PixelToLogic( aMarkRect ); - Color aFill(GetOut()->GetFillColor()); - Color aLine(GetOut()->GetLineColor()); - GetOut()->SetFillColor(Color(COL_TRANSPARENT)); - GetOut()->SetLineColor(aLineColor); - GetOut()->DrawRect(aMarkRect); - GetOut()->SetFillColor(aFill); - GetOut()->SetLineColor(aLine); - } } + + Rectangle aShadow( aPageRect.Left()+2, aPageRect.Bottom()+1, + aPageRect.Right()+2, aPageRect.Bottom()+2 ); + Color aFill( GetOut()->GetFillColor() ); + Color aLine( GetOut()->GetLineColor() ); + GetOut()->SetFillColor( rColor ); + GetOut()->SetLineColor( rColor ); + aShadow = GetOut()->PixelToLogic( aShadow ); + GetOut()->DrawRect( aShadow ); + aShadow.Left() = aPageRect.Right() + 1; + aShadow.Right() = aShadow.Left() + 1; + aShadow.Top() = aPageRect.Top() + 2; + aShadow.Bottom() = aPageRect.Bottom(); + aShadow = GetOut()->PixelToLogic( aShadow ); + GetOut()->DrawRect( aShadow ); + aShadow = GetOut()->PixelToLogic( aPageRect ); + GetOut()->SetFillColor( Color( COL_TRANSPARENT ) ); + GetOut()->DrawRect( aShadow ); + if( !nSelectedPage ) + { + aShadow.Left() = aPageRect.Right() - 1; + aShadow.Right() = aPageRect.Left() + 1; + aShadow.Top() = aPageRect.Top() + 1; + aShadow.Bottom() = aPageRect.Bottom() - 1; + aShadow = GetOut()->PixelToLogic( aShadow ); + GetOut()->SetFillColor( Color( COL_TRANSPARENT ) ); + GetOut()->SetLineColor( aLineColor ); + GetOut()->DrawRect( aShadow ); + } + GetOut()->SetFillColor( aFill ); + GetOut()->SetLineColor( aLine ); + pPage = (SwPageFrm*)pPage->GetNext(); nSelectedPage--; } @@ -1300,6 +1317,9 @@ Size ViewShell::GetPagePreViewPrtMaxSize() const /************************************************************************* $Log: not supported by cvs2svn $ + Revision 1.4 2002/03/15 07:33:34 os + #97978# page preview accessiblity implemented + Revision 1.3 2001/05/10 08:45:09 os store print options at the document diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index 46174f96ced1..44d2e41be9f6 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -2,9 +2,9 @@ * * $RCSfile: viewsh.cxx,v $ * - * $Revision: 1.18 $ + * $Revision: 1.19 $ * - * last change: $Author: mib $ $Date: 2002-03-21 12:53:04 $ + * last change: $Author: ama $ $Date: 2002-04-08 14:33:17 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -1045,6 +1045,7 @@ void ViewShell::VisPortChgd( const SwRect &rRect) const SwTwips nRight = aBoth.Right(); SwTwips nMinLeft = LONG_MAX; SwTwips nMaxRight= 0; + const nShadow = GetOut()->PixelToLogic( Size( 2, 0 ) ).Width(); while ( pPage && !((pPage->Frm().Top() > nBottom) || (pPage->Frm().Left() > nRight))) @@ -1053,8 +1054,9 @@ void ViewShell::VisPortChgd( const SwRect &rRect) { if( pPage->Frm().Left() < nMinLeft ) nMinLeft = pPage->Frm().Left(); - if( pPage->Frm().Right() > nMaxRight ) - nMaxRight = pPage->Frm().Right(); + long nPageRight = pPage->Frm().Right() + nShadow; + 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.