summaryrefslogtreecommitdiff
path: root/sw/source/ui/uiview/viewmdi.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/ui/uiview/viewmdi.cxx')
-rw-r--r--sw/source/ui/uiview/viewmdi.cxx785
1 files changed, 785 insertions, 0 deletions
diff --git a/sw/source/ui/uiview/viewmdi.cxx b/sw/source/ui/uiview/viewmdi.cxx
new file mode 100644
index 000000000000..3dba8745485a
--- /dev/null
+++ b/sw/source/ui/uiview/viewmdi.cxx
@@ -0,0 +1,785 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sw.hxx"
+
+
+
+#include <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>
+
+USHORT 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, BOOL bViewOnly )
+{
+ _SetZoom( GetEditWin().GetOutputSizePixel(), eZoomType, nFactor, bViewOnly );
+}
+
+void SwView::_SetZoom( const Size &rEditSize, SvxZoomType eZoomType,
+ short nFactor, BOOL bViewOnly )
+{
+ BOOL bUnLockView = !pWrtShell->IsViewLocked();
+ pWrtShell->LockView( TRUE );
+ pWrtShell->LockPaint();
+
+ {
+ ACT_KONTEXT(pWrtShell);
+
+ long nFac = nFactor;
+
+ 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 &&
+ (USHORT(nFac) != pUsrPref->GetZoom() ||
+ BYTE (eZoomType) != pUsrPref->GetZoomType()) )
+ {
+ pUsrPref->SetZoom ( USHORT(nFac) );
+ pUsrPref->SetZoomType( eZoomType );
+ SW_MOD()->ApplyUsrPref( *pUsrPref,
+ bViewOnly ? this: 0,
+ bViewOnly ? VIEWOPT_DEST_VIEW_ONLY : 0 );
+ pUsrPref->SetModified();
+ }
+ if ( pOpt->GetZoom() != (USHORT) nFac )
+ {
+ aOpt.SetZoom ( USHORT(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 ( USHORT(nFac) != pOpt->GetZoom() )
+ {
+ aOpt.SetZoom ( USHORT(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( FALSE );
+
+// if ( mpPostItMgr )
+// {
+// mpPostItMgr->Rescale();
+// mpPostItMgr->CalcRects();
+// mpPostItMgr->LayoutPostIts();
+// }
+
+// eZoom = eZoomType;
+}
+
+void SwView::SetViewLayout( USHORT nColumns, bool bBookMode, BOOL bViewOnly )
+{
+ const BOOL bUnLockView = !pWrtShell->IsViewLocked();
+ pWrtShell->LockView( TRUE );
+ pWrtShell->LockPaint();
+
+ {
+
+ ACT_KONTEXT(pWrtShell);
+
+ if ( !GetViewFrame()->GetFrame().IsInPlace() && !bViewOnly )
+ {
+ const 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( FALSE );
+
+ SfxBindings& rBnd = GetViewFrame()->GetBindings();
+ rBnd.Invalidate( SID_ATTR_VIEWLAYOUT );
+ rBnd.Invalidate( SID_ATTR_ZOOMSLIDER);
+}
+
+/*
+ * Scrollbar - Handler
+ */
+
+IMPL_LINK( SwView, WindowChildEventListener, VclSimpleEvent*, pEvent )
+{
+ DBG_ASSERT( pEvent && pEvent->ISA( VclWindowEvent ), "Unknown WindowEvent!" );
+ if ( pEvent && pEvent->ISA( VclWindowEvent ) )
+ {
+ VclWindowEvent *pVclEvent = static_cast< VclWindowEvent * >( pEvent );
+ DBG_ASSERT( pVclEvent->GetWindow(), "Window???" );
+ Window* pChildWin = static_cast< Window* >( pVclEvent->GetData() );
+
+ switch ( pVclEvent->GetId() )
+ {
+ case VCLEVENT_WINDOW_HIDE:
+ if( pChildWin == pHScrollbar )
+ ShowHScrollbar( FALSE );
+ else if( pChildWin == pVScrollbar )
+ ShowVScrollbar( FALSE );
+ break;
+ case VCLEVENT_WINDOW_SHOW:
+ if( pChildWin == pHScrollbar )
+ ShowHScrollbar( TRUE );
+ else if( pChildWin == pVScrollbar )
+ ShowVScrollbar( TRUE );
+ break;
+ }
+ }
+
+ return 0;
+}
+
+int SwView::_CreateScrollbar( 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( TRUE );
+
+ (*ppScrollbar)->SetAuto( 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(BOOL bShow)
+{
+ Window *pMDI = &GetViewFrame()->GetWindow();
+ pPageUpBtn = new SwHlpImageButton(pMDI, SW_RES( BTN_PAGEUP ), TRUE );
+ pPageUpBtn->SetHelpId(HID_SCRL_PAGEUP);
+ pPageDownBtn = new SwHlpImageButton(pMDI, SW_RES( BTN_PAGEDOWN ), FALSE );
+ pPageDownBtn->SetHelpId(HID_SCRL_PAGEDOWN);
+ Reference< XFrame > xFrame = GetViewFrame()->GetFrame().GetFrameInterface();
+ 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;
+ 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:
+ {
+ USHORT eType = GOTOOBJ_FLY_FRM;
+ if(nMoveType == NID_GRF)
+ eType = GOTOOBJ_FLY_GRF;
+ else if(nMoveType == NID_OLE)
+ eType = GOTOOBJ_FLY_OLE;
+ 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->getMarksBegin();
+ ppMark != pMarkAccess->getMarksEnd();
+ 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)
+ {
+ 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, 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 )
+{
+ USHORT 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-------------------
+
+--------------------------------------------------*/
+
+USHORT SwView::GetMoveType()
+{
+ return nMoveType;
+}
+/*-----------------20.02.97 09:11-------------------
+
+--------------------------------------------------*/
+
+void SwView::SetMoveType(USHORT nSet)
+{
+ BOOL bLastPage = nMoveType == NID_PGE;
+ nMoveType = nSet;
+ 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( 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( FALSE );
+}
+
+