blob: 0aa6f8395534774fedcd004716c6e227bd7c6364 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sw.hxx"
#include <string> // HACK: prevent conflict between STLPORT and Workshop headers
#include "hintids.hxx"
#include <vcl/svapp.hxx>
#include <sfx2/dispatch.hxx>
#include <svx/ruler.hxx>
#include <editeng/lrspitem.hxx>
#include <svl/srchitem.hxx>
#include <sfx2/request.hxx>
#include <swmodule.hxx>
#ifndef _VIEW_HXX
#include <view.hxx>
#endif
#include <wrtsh.hxx>
#ifndef _DOCSH_HXX
#include <docsh.hxx>
#endif
#include <viewopt.hxx>
#include <frmatr.hxx>
#ifndef _WDOCSH_HXX
#include <wdocsh.hxx>
#endif
#include <uitool.hxx>
#include <edtwin.hxx>
#include <pagedesc.hxx>
#include <IMark.hxx>
#include <fldbas.hxx>
#include <workctrl.hxx>
#include <usrpref.hxx>
#include <scroll.hxx>
#ifndef _WVIEW_HXX
#include <wview.hxx>
#endif
#ifndef _CMDID_H
#include <cmdid.h>
#endif
#ifndef _VIEW_HRC
#include <view.hrc>
#endif
#ifndef _RIBBAR_HRC
#include <ribbar.hrc>
#endif
#ifndef _HELPID_H
#include <helpid.h>
#endif
#ifndef _GLOBALS_HRC
#include <globals.hrc>
#endif
#include <IDocumentSettingAccess.hxx>
#include <PostItMgr.hxx>
sal_uInt16 SwView::nMoveType = NID_PGE;
sal_Int32 SwView::nActMark = 0;
#define VIEW_IMAGECOLOR COL_LIGHTBLUE
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::frame;
void SwView::SetZoom( SvxZoomType eZoomType, short nFactor, sal_Bool bViewOnly )
{
_SetZoom( GetEditWin().GetOutputSizePixel(), eZoomType, nFactor, bViewOnly );
}
void SwView::_SetZoom( const Size &rEditSize, SvxZoomType eZoomType,
short nFactor, sal_Bool bViewOnly )
{
sal_Bool bUnLockView = !pWrtShell->IsViewLocked();
pWrtShell->LockView( sal_True );
pWrtShell->LockPaint();
{
ACT_KONTEXT(pWrtShell);
long nFac = nFactor;
sal_Bool bWeb = 0 != PTR_CAST(SwWebView, this);
SwMasterUsrPref *pUsrPref = (SwMasterUsrPref*)SW_MOD()->GetUsrPref(bWeb);
const SwPageDesc &rDesc = pWrtShell->GetPageDesc( pWrtShell->GetCurPageDesc() );
const SvxLRSpaceItem &rLRSpace = rDesc.GetMaster().GetLRSpace();
const SwViewOption *pOpt = pWrtShell->GetViewOptions();
long lLeftMargin = 0;
if( eZoomType != SVX_ZOOM_PERCENT )
{
const bool bAutomaticViewLayout = 0 == pOpt->GetViewLayoutColumns();
const SwRect aPageRect( pWrtShell->GetAnyCurRect( RECT_PAGE_CALC ) );
const SwRect aRootRect( pWrtShell->GetAnyCurRect( RECT_PAGES_AREA ) );
Size aPageSize( aPageRect.SSize() );
Size aRootSize( aRootRect.SSize() );
//mod #i6193# added sidebar width
SwPostItMgr* pPostItMgr = GetPostItMgr();
if (pPostItMgr->HasNotes() && pPostItMgr->ShowNotes())
aPageSize.Width() += pPostItMgr->GetSidebarWidth() + pPostItMgr->GetSidebarBorderWidth();
const MapMode aTmpMap( MAP_TWIP );
const Size aWindowSize( GetEditWin().PixelToLogic( rEditSize, aTmpMap ) );
if( nsUseOnPage::PD_MIRROR == rDesc.GetUseOn() ) // gespiegelte Seiten
{
const SvxLRSpaceItem &rLeftLRSpace = rDesc.GetLeft().GetLRSpace();
aPageSize.Width() += Abs( long(rLeftLRSpace.GetLeft()) - long(rLRSpace.GetLeft()) );
}
if( SVX_ZOOM_OPTIMAL == eZoomType )
{
if (pPostItMgr->HasNotes() && pPostItMgr->ShowNotes())
{
lLeftMargin = long(rLRSpace.GetLeft()) + aPageRect.Left() + nLeftOfst;
}
else
{
aPageSize.Width() -= ( rLRSpace.GetLeft() + rLRSpace.GetRight() + nLeftOfst * 2 );
lLeftMargin = long(rLRSpace.GetLeft()) + aPageRect.Left() + nLeftOfst;
}
nFac = aWindowSize.Width() * 100 / aPageSize.Width();
}
else if(SVX_ZOOM_WHOLEPAGE == eZoomType || SVX_ZOOM_PAGEWIDTH == eZoomType )
{
const long nOf = DOCUMENTBORDER * 2L;
long nTmpWidth = bAutomaticViewLayout ? aPageSize.Width() : aRootSize.Width();
nTmpWidth += nOf;
aPageSize.Height() += nOf;
nFac = aWindowSize.Width() * 100 / nTmpWidth;
if ( SVX_ZOOM_WHOLEPAGE == eZoomType )
{
long nVisPercent = aWindowSize.Height() * 100 / aPageSize.Height();
nFac = Min( nFac, nVisPercent );
}
}
else /*if( SVX_ZOOM_PAGEWIDTH_NOBORDER == eZoomType )*/
{
const long nTmpWidth = bAutomaticViewLayout ? aPageSize.Width() : aRootSize.Width();
nFac = aWindowSize.Width() * 100 / nTmpWidth;
}
}
nFac = Max( long( MINZOOM ), nFac );
SwViewOption aOpt( *pOpt );
if ( !GetViewFrame()->GetFrame().IsInPlace() )
{
//MasterUsrPrefs updaten UND DANACH die ViewOptions der aktuellen
//View updaten.
if ( !bViewOnly &&
(sal_uInt16(nFac) != pUsrPref->GetZoom() ||
sal_uInt8 (eZoomType) != pUsrPref->GetZoomType()) )
{
pUsrPref->SetZoom ( sal_uInt16(nFac) );
pUsrPref->SetZoomType( eZoomType );
SW_MOD()->ApplyUsrPref( *pUsrPref,
bViewOnly ? this: 0,
bViewOnly ? VIEWOPT_DEST_VIEW_ONLY : 0 );
pUsrPref->SetModified();
}
if ( pOpt->GetZoom() != (sal_uInt16) nFac )
{
aOpt.SetZoom ( sal_uInt16(nFac) );
aOpt.SetReadonly(pOpt->IsReadonly());
pWrtShell->ApplyViewOptions( aOpt );
}
if ( eZoomType != SVX_ZOOM_PERCENT )
{
Point aPos;
if ( eZoomType == SVX_ZOOM_WHOLEPAGE )
aPos.Y() = pWrtShell->GetAnyCurRect(RECT_PAGE).Top() - DOCUMENTBORDER;
else
{
//sicherstellen, dass sich der Cursor im sichtbaren
//Bereich befindet, damit nur 1x gescrollt wird
aPos.X() = lLeftMargin;
const SwRect &rCharRect = pWrtShell->GetCharRect();
if ( rCharRect.Top() > GetVisArea().Bottom() ||
rCharRect.Bottom() < aPos.Y() )
aPos.Y() = rCharRect.Top() - rCharRect.Height();
else
aPos.Y() = GetVisArea().Top();
}
SetVisArea( aPos );
}
// OS: Notloesung - in CalcVisArea wird u.U. wieder SetZoom gerufen und
// dann werden falsche Werte eingestellt
((SwViewOption*)pWrtShell->GetViewOptions())->SetZoomType( eZoomType );
CalcVisArea( rEditSize ); //fuer das Neuberechnen des sichtbaren Bereiches
}
else if ( sal_uInt16(nFac) != pOpt->GetZoom() )
{
aOpt.SetZoom ( sal_uInt16(nFac) );
pWrtShell->ApplyViewOptions( aOpt );
}
const Fraction aFrac( nFac, 100 );
pVRuler->SetZoom( aFrac );
pVRuler->ForceUpdate();
pHRuler->SetZoom( aFrac );
pHRuler->ForceUpdate();
((SwViewOption*)pWrtShell->GetViewOptions())->SetZoomType( eZoomType );
}
pWrtShell->UnlockPaint();
if( bUnLockView )
pWrtShell->LockView( sal_False );
// if ( mpPostItMgr )
// {
// mpPostItMgr->Rescale();
// mpPostItMgr->CalcRects();
// mpPostItMgr->LayoutPostIts();
// }
// eZoom = eZoomType;
}
void SwView::SetViewLayout( sal_uInt16 nColumns, bool bBookMode, sal_Bool bViewOnly )
{
const sal_Bool bUnLockView = !pWrtShell->IsViewLocked();
pWrtShell->LockView( sal_True );
pWrtShell->LockPaint();
{
ACT_KONTEXT(pWrtShell);
if ( !GetViewFrame()->GetFrame().IsInPlace() && !bViewOnly )
{
const sal_Bool bWeb = 0 != PTR_CAST(SwWebView, this);
SwMasterUsrPref *pUsrPref = (SwMasterUsrPref*)SW_MOD()->GetUsrPref(bWeb);
//MasterUsrPrefs updaten UND DANACH die ViewOptions der aktuellen
//View updaten.
if ( nColumns != pUsrPref->GetViewLayoutColumns() ||
bBookMode != pUsrPref->IsViewLayoutBookMode() )
{
pUsrPref->SetViewLayoutColumns( nColumns );
pUsrPref->SetViewLayoutBookMode( bBookMode );
SW_MOD()->ApplyUsrPref( *pUsrPref,
bViewOnly ? this: 0,
bViewOnly ? VIEWOPT_DEST_VIEW_ONLY : 0 );
pUsrPref->SetModified();
}
}
const SwViewOption *pOpt = pWrtShell->GetViewOptions();
if ( nColumns != pOpt->GetViewLayoutColumns() ||
bBookMode != pOpt->IsViewLayoutBookMode() )
{
SwViewOption aOpt( *pOpt );
aOpt.SetViewLayoutColumns( nColumns );
aOpt.SetViewLayoutBookMode( bBookMode );
pWrtShell->ApplyViewOptions( aOpt );
}
pVRuler->ForceUpdate();
pHRuler->ForceUpdate();
}
pWrtShell->UnlockPaint();
if( bUnLockView )
pWrtShell->LockView( sal_False );
SfxBindings& rBnd = GetViewFrame()->GetBindings();
rBnd.Invalidate( SID_ATTR_VIEWLAYOUT );
rBnd.Invalidate( SID_ATTR_ZOOMSLIDER);
}
/*
* Scrollbar - Handler
*/
int SwView::_CreateScrollbar( sal_Bool bHori )
{
Window *pMDI = &GetViewFrame()->GetWindow();
SwScrollbar** ppScrollbar = bHori ? &pHScrollbar : &pVScrollbar;
ASSERT( !*ppScrollbar, "vorher abpruefen!" )
if( !bHori )
CreatePageButtons( !bShowAtResize );
*ppScrollbar = new SwScrollbar( pMDI, bHori );
UpdateScrollbars();
if(bHori)
(*ppScrollbar)->SetScrollHdl( LINK( this, SwView, EndScrollHdl ));
else
(*ppScrollbar)->SetScrollHdl( LINK( this, SwView, ScrollHdl ));
(*ppScrollbar)->SetEndScrollHdl( LINK( this, SwView, EndScrollHdl ));
(*ppScrollbar)->EnableDrag( sal_True );
if(GetWindow())
InvalidateBorder();
// Scrollbar muss nochmals getestet werden, da im InvalidateBorder u.U. der
// Scrollbar wieder geloescht wurde
if ( !bShowAtResize && (*ppScrollbar))
(*ppScrollbar)->ExtendedShow();
return 1;
}
void SwView::CreatePageButtons(sal_Bool bShow)
{
Window *pMDI = &GetViewFrame()->GetWindow();
pPageUpBtn = new SwHlpImageButton(pMDI, SW_RES( BTN_PAGEUP ), sal_True );
pPageUpBtn->SetHelpId(HID_SCRL_PAGEUP);
pPageDownBtn = new SwHlpImageButton(pMDI, SW_RES( BTN_PAGEDOWN ), sal_False );
pPageDownBtn->SetHelpId(HID_SCRL_PAGEDOWN);
Reference< XFrame > xFrame = GetViewFrame()->GetFrame().GetFrameInterface();
pNaviBtn = new SwNaviImageButton(pMDI, xFrame );
pNaviBtn->SetHelpId(HID_SCRL_NAVI);
Link aLk( LINK( this, SwView, BtnPage ) );
pPageUpBtn->SetClickHdl( aLk );
pPageDownBtn->SetClickHdl( aLk );
if(nMoveType != NID_PGE)
{
Color aColor(VIEW_IMAGECOLOR);
SetImageButtonColor(aColor);
}
if(bShow)
{
pPageUpBtn->Show();
pPageDownBtn->Show();
pNaviBtn->Show();
}
};
/*
* Button-Handler
*/
IMPL_LINK( SwView, BtnPage, Button *, pButton )
{
// #i75416# move the execution of the search to an asynchronously called static link
bool* pbNext = new bool( (pButton == pPageDownBtn) );
Application::PostUserEvent( STATIC_LINK(this, SwView, MoveNavigationHdl), pbNext );
return 0;
}
/*-----------------20.06.97 10:46-------------------
--------------------------------------------------*/
IMPL_STATIC_LINK( SwView, MoveNavigationHdl, bool *, pbNext )
{
if ( !pbNext )
return 0;
const bool bNext = *pbNext;
SwWrtShell& rSh = pThis->GetWrtShell();
switch( nMoveType )
{
case NID_PGE:
bNext ? pThis->PhyPageDown() : pThis->PhyPageUp();
break;
case NID_TBL :
rSh.EnterStdMode();
if(bNext)
rSh.MoveTable(fnTableNext, fnTableStart);
else
rSh.MoveTable(fnTablePrev, fnTableStart);
break;
case NID_FRM :
case NID_GRF:
case NID_OLE:
{
sal_uInt16 eType = GOTOOBJ_FLY_FRM;
if(nMoveType == NID_GRF)
eType = GOTOOBJ_FLY_GRF;
else if(nMoveType == NID_OLE)
eType = GOTOOBJ_FLY_OLE;
sal_Bool bSuccess = bNext ?
rSh.GotoNextFly(eType) :
rSh.GotoPrevFly(eType);
if(bSuccess)
{
rSh.HideCrsr();
rSh.EnterSelFrmMode();
}
}
break;
case NID_DRW :
case NID_CTRL:
rSh.GotoObj(bNext,
nMoveType == NID_DRW ?
GOTOOBJ_DRAW_SIMPLE :
GOTOOBJ_DRAW_CONTROL);
break;
case NID_REG :
rSh.EnterStdMode();
if(bNext)
rSh.MoveRegion(fnRegionNext, fnRegionStart);
else
rSh.MoveRegion(fnRegionPrev, fnRegionStart);
break;
case NID_BKM :
rSh.EnterStdMode();
pThis->GetViewFrame()->GetDispatcher()->Execute(bNext ?
FN_NEXT_BOOKMARK :
FN_PREV_BOOKMARK);
break;
case NID_OUTL:
rSh.EnterStdMode();
bNext ? rSh.GotoNextOutline() : rSh.GotoPrevOutline();
break;
case NID_SEL :
bNext ? rSh.GoNextCrsr() : rSh.GoPrevCrsr();
break;
case NID_FTN:
rSh.EnterStdMode();
bNext ?
rSh.GotoNextFtnAnchor() :
rSh.GotoPrevFtnAnchor();
break;
case NID_MARK:
{
// unselect
rSh.MoveCrsr();
rSh.EnterStdMode();
// collect navigator reminders
IDocumentMarkAccess* const pMarkAccess = rSh.getIDocumentMarkAccess();
::std::vector< const ::sw::mark::IMark* > vNavMarks;
for( IDocumentMarkAccess::const_iterator_t ppMark = pMarkAccess->getAllMarksBegin();
ppMark != pMarkAccess->getAllMarksEnd();
ppMark++)
{
if( IDocumentMarkAccess::GetType(**ppMark) == IDocumentMarkAccess::NAVIGATOR_REMINDER )
vNavMarks.push_back(ppMark->get());
}
// move
if(vNavMarks.size())
{
if(bNext)
{
nActMark++;
if (nActMark >= MAX_MARKS || nActMark >= static_cast<sal_Int32>(vNavMarks.size()))
nActMark = 0;
}
else
{
nActMark--;
if (nActMark < 0 || nActMark >= static_cast<sal_Int32>(vNavMarks.size()))
nActMark = vNavMarks.size()-1;
}
rSh.GotoMark(vNavMarks[nActMark]);
}
}
break;
case NID_POSTIT:
{
sw::sidebarwindows::SwSidebarWin* pPostIt = pThis->GetPostItMgr()->GetActiveSidebarWin();
if (pPostIt)
pThis->GetPostItMgr()->SetActiveSidebarWin(0);
SwFieldType* pFldType = rSh.GetFldType(0, RES_POSTITFLD);
if ( rSh.MoveFldType( pFldType, bNext ) )
pThis->GetViewFrame()->GetDispatcher()->Execute(FN_POSTIT);
else
//first/last item
pThis->GetPostItMgr()->SetActiveSidebarWin(pPostIt);
}
break;
case NID_SRCH_REP:
if(pSrchItem)
{
sal_Bool bBackward = pSrchItem->GetBackward();
if(rSh.HasSelection() && !bNext == rSh.IsCrsrPtAtEnd())
rSh.SwapPam();
pSrchItem->SetBackward(!bNext);
SfxRequest aReq(FN_REPEAT_SEARCH, SFX_CALLMODE_SLOT, pThis->GetPool());
pThis->ExecSearch(aReq);
pSrchItem->SetBackward(bBackward);
}
break;
case NID_INDEX_ENTRY:
rSh.GotoNxtPrvTOXMark(bNext);
break;
case NID_TABLE_FORMULA:
rSh.GotoNxtPrvTblFormula( bNext );
break;
case NID_TABLE_FORMULA_ERROR:
rSh.GotoNxtPrvTblFormula( bNext, sal_True );
break;
}
pThis->pEditWin->GrabFocus();
delete pbNext;
return 0;
}
/*************************************************************************
|*
|* SwView::CreateTab()
|*
|* Beschreibung
|* Ersterstellung VB 29.05.91
|* Letzte Aenderung OS 09.05.96
|*
*************************************************************************/
int SwView::CreateTab()
{
pHRuler->SetActive(GetFrame() && IsActive());
pHRuler->Show();
InvalidateBorder();
return 1;
}
/*************************************************************************
|*
|* SwView::KillTab()
|*
|* Beschreibung
|* Ersterstellung VB 29.05.91
|* Letzte Aenderung OS 09.05.96
|*
*************************************************************************/
int SwView::KillTab()
{
pHRuler->Hide();
InvalidateBorder();
return 1;
}
void SwView::ChangeTabMetric( FieldUnit eUnit )
{
if(pHRuler->GetUnit() != eUnit )
{
pHRuler->SetUnit( eUnit );
pHRuler->Invalidate();
}
}
void SwView::ChangeVLinealMetric( FieldUnit eUnit )
{
if(pVRuler->GetUnit() != eUnit)
{
pVRuler->SetUnit( eUnit );
pVRuler->Invalidate();
}
}
/* -----------------------------07.04.01 17:09--------------------------------
---------------------------------------------------------------------------*/
void SwView::GetVLinealMetric(FieldUnit& eToFill) const
{
eToFill = pVRuler->GetUnit();
}
/* -----------------------------07.04.01 17:09--------------------------------
---------------------------------------------------------------------------*/
void SwView::GetHLinealMetric(FieldUnit& eToFill) const
{
eToFill = pHRuler->GetUnit();
}
/*************************************************************************
|*
|* SwView::CreateVLineal()
|*
|* Beschreibung
|* Ersterstellung VB 29.05.91
|*
*************************************************************************/
int SwView::CreateVLineal()
{
pHRuler->SetBorderPos( pVRuler->GetSizePixel().Width()-1 );
pVRuler->SetActive(GetFrame() && IsActive());
pVRuler->Show();
InvalidateBorder();
return 1;
}
/*************************************************************************
|*
|* SwView::KillVLineal()
|*
|* Beschreibung
|* Ersterstellung VB 29.05.91
|*
*************************************************************************/
int SwView::KillVLineal()
{
pVRuler->Hide();
pHRuler->SetBorderPos( 0 );
InvalidateBorder();
return 1;
}
/*************************************************************************
|*
|* SwView::ExecRulerClick()
|*
|* Beschreibung
|* Ersterstellung OS 15.06.95
|* Letzte Aenderung
|*
*************************************************************************/
IMPL_LINK( SwView, ExecRulerClick, Ruler *, pRuler )
{
sal_uInt16 nDefPage = 0;
switch( pRuler->GetClickType() )
{
case RULER_TYPE_DONTKNOW:
case RULER_TYPE_OUTSIDE:
case RULER_TYPE_INDENT:
case RULER_TYPE_MARGIN1:
case RULER_TYPE_MARGIN2:
nDefPage = TP_PARA_STD;
break;
default:
nDefPage = TP_TABULATOR;
}
SfxUInt16Item aDefPage(SID_PARA_DLG, nDefPage);
GetViewFrame()->GetDispatcher()->Execute( SID_PARA_DLG,
SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD,
&aDefPage, 0L );
return 0;
}
/*-----------------20.02.97 09:11-------------------
--------------------------------------------------*/
sal_uInt16 SwView::GetMoveType()
{
return nMoveType;
}
/*-----------------20.02.97 09:11-------------------
--------------------------------------------------*/
void SwView::SetMoveType(sal_uInt16 nSet)
{
sal_Bool bLastPage = nMoveType == NID_PGE;
nMoveType = nSet;
sal_Bool bNewPage = nMoveType == NID_PGE;
if(bNewPage != bLastPage)
{
Color aColor(bNewPage ? COL_BLACK : VIEW_IMAGECOLOR);
const TypeId aTypeId = TYPE(SwView);
SwView* pView = (SwView*)SfxViewShell::GetFirst(&aTypeId);
while( pView )
{
pView->SetImageButtonColor(aColor);
pView = (SwView*)SfxViewShell::GetNext(*pView, &aTypeId);
}
}
}
/*-----------------20.06.97 11:18-------------------
--------------------------------------------------*/
void SwView::SetActMark(sal_Int32 nSet)
{
nActMark = nSet;
}
/*-----------------15.03.97 10:53-------------------
--------------------------------------------------*/
void SwView::SetImageButtonColor(Color& rColor)
{
if(pPageUpBtn)
{
pPageUpBtn->SetControlForeground(rColor);
pPageDownBtn->SetControlForeground(rColor);
}
}
/* -----------------------------2002/06/26 13:57------------------------------
---------------------------------------------------------------------------*/
void SwView::ShowHScrollbar(sal_Bool bShow)
{
DBG_ASSERT(pHScrollbar, "Scrollbar invalid");
pHScrollbar->ExtendedShow(bShow);
}
/* -----------------------------2002/06/26 13:57------------------------------
---------------------------------------------------------------------------*/
sal_Bool SwView::IsHScrollbarVisible()const
{
DBG_ASSERT(pHScrollbar, "Scrollbar invalid");
return pHScrollbar->IsVisible( sal_False ) || pHScrollbar->IsAuto();
}
/* -----------------------------2002/06/26 13:57------------------------------
---------------------------------------------------------------------------*/
void SwView::ShowVScrollbar(sal_Bool bShow)
{
DBG_ASSERT(pVScrollbar, "Scrollbar invalid");
pVScrollbar->ExtendedShow(bShow);
pPageUpBtn->Show(bShow);
pPageDownBtn->Show(bShow);
pNaviBtn->Show(bShow);
}
/* -----------------------------2002/06/26 13:57------------------------------
---------------------------------------------------------------------------*/
sal_Bool SwView::IsVScrollbarVisible()const
{
DBG_ASSERT(pVScrollbar, "Scrollbar invalid");
return pVScrollbar->IsVisible( sal_False );
}