xref: /trunk/main/sw/source/ui/uiview/viewmdi.cxx (revision 2b5187381cc9da7a87bafe24be64619d7f077545)
1efeef26fSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3efeef26fSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4efeef26fSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5efeef26fSAndrew Rist  * distributed with this work for additional information
6efeef26fSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7efeef26fSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8efeef26fSAndrew Rist  * "License"); you may not use this file except in compliance
9efeef26fSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11efeef26fSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13efeef26fSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14efeef26fSAndrew Rist  * software distributed under the License is distributed on an
15efeef26fSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16efeef26fSAndrew Rist  * KIND, either express or implied.  See the License for the
17efeef26fSAndrew Rist  * specific language governing permissions and limitations
18efeef26fSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20efeef26fSAndrew Rist  *************************************************************/
21efeef26fSAndrew Rist 
22cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
23cdf0e10cSrcweir #include "precompiled_sw.hxx"
24cdf0e10cSrcweir 
25cdf0e10cSrcweir #include <string> // HACK: prevent conflict between STLPORT and Workshop headers
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include "hintids.hxx"
28cdf0e10cSrcweir #include <vcl/svapp.hxx>
29cdf0e10cSrcweir #include <sfx2/dispatch.hxx>
30cdf0e10cSrcweir #include <svx/ruler.hxx>
31cdf0e10cSrcweir #include <editeng/lrspitem.hxx>
32cdf0e10cSrcweir #include <svl/srchitem.hxx>
33cdf0e10cSrcweir #include <sfx2/request.hxx>
34cdf0e10cSrcweir #include <swmodule.hxx>
35cdf0e10cSrcweir #ifndef _VIEW_HXX
36cdf0e10cSrcweir #include <view.hxx>
37cdf0e10cSrcweir #endif
38cdf0e10cSrcweir #include <wrtsh.hxx>
39cdf0e10cSrcweir #ifndef _DOCSH_HXX
40cdf0e10cSrcweir #include <docsh.hxx>
41cdf0e10cSrcweir #endif
42cdf0e10cSrcweir #include <viewopt.hxx>
43cdf0e10cSrcweir #include <frmatr.hxx>
44cdf0e10cSrcweir #ifndef _WDOCSH_HXX
45cdf0e10cSrcweir #include <wdocsh.hxx>
46cdf0e10cSrcweir #endif
47cdf0e10cSrcweir #include <uitool.hxx>
48cdf0e10cSrcweir #include <edtwin.hxx>
49cdf0e10cSrcweir #include <pagedesc.hxx>
50cdf0e10cSrcweir #include <IMark.hxx>
51cdf0e10cSrcweir #include <fldbas.hxx>
52cdf0e10cSrcweir #include <workctrl.hxx>
53cdf0e10cSrcweir #include <usrpref.hxx>
54cdf0e10cSrcweir #include <scroll.hxx>
55cdf0e10cSrcweir #ifndef _WVIEW_HXX
56cdf0e10cSrcweir #include <wview.hxx>
57cdf0e10cSrcweir #endif
58cdf0e10cSrcweir 
59cdf0e10cSrcweir #ifndef _CMDID_H
60cdf0e10cSrcweir #include <cmdid.h>
61cdf0e10cSrcweir #endif
62cdf0e10cSrcweir #ifndef _VIEW_HRC
63cdf0e10cSrcweir #include <view.hrc>
64cdf0e10cSrcweir #endif
65cdf0e10cSrcweir #ifndef _RIBBAR_HRC
66cdf0e10cSrcweir #include <ribbar.hrc>
67cdf0e10cSrcweir #endif
68cdf0e10cSrcweir #ifndef _HELPID_H
69cdf0e10cSrcweir #include <helpid.h>
70cdf0e10cSrcweir #endif
71cdf0e10cSrcweir #ifndef _GLOBALS_HRC
72cdf0e10cSrcweir #include <globals.hrc>
73cdf0e10cSrcweir #endif
74cdf0e10cSrcweir 
75cdf0e10cSrcweir #include <IDocumentSettingAccess.hxx>
76cdf0e10cSrcweir #include <PostItMgr.hxx>
77cdf0e10cSrcweir 
78cdf0e10cSrcweir sal_uInt16  SwView::nMoveType = NID_PGE;
79cdf0e10cSrcweir sal_Int32 SwView::nActMark = 0;
80cdf0e10cSrcweir 
81cdf0e10cSrcweir #define VIEW_IMAGECOLOR COL_LIGHTBLUE
82cdf0e10cSrcweir 
83cdf0e10cSrcweir using namespace ::com::sun::star::uno;
84cdf0e10cSrcweir using namespace ::com::sun::star::frame;
85cdf0e10cSrcweir 
SetZoom(SvxZoomType eZoomType,short nFactor,sal_Bool bViewOnly)86cdf0e10cSrcweir void SwView::SetZoom( SvxZoomType eZoomType, short nFactor, sal_Bool bViewOnly )
87cdf0e10cSrcweir {
88cdf0e10cSrcweir     _SetZoom( GetEditWin().GetOutputSizePixel(), eZoomType, nFactor, bViewOnly );
89cdf0e10cSrcweir }
90cdf0e10cSrcweir 
_SetZoom(const Size & rEditSize,SvxZoomType eZoomType,short nFactor,sal_Bool bViewOnly)91cdf0e10cSrcweir void SwView::_SetZoom( const Size &rEditSize, SvxZoomType eZoomType,
92cdf0e10cSrcweir                         short nFactor, sal_Bool bViewOnly )
93cdf0e10cSrcweir {
94cdf0e10cSrcweir     sal_Bool bUnLockView = !pWrtShell->IsViewLocked();
95cdf0e10cSrcweir     pWrtShell->LockView( sal_True );
96cdf0e10cSrcweir     pWrtShell->LockPaint();
97cdf0e10cSrcweir 
98cdf0e10cSrcweir     {
99*2b518738Smseidel     ACT_CONTEXT(pWrtShell);
100cdf0e10cSrcweir 
101cdf0e10cSrcweir     long nFac = nFactor;
102cdf0e10cSrcweir 
103cdf0e10cSrcweir     sal_Bool bWeb = 0 != PTR_CAST(SwWebView, this);
104cdf0e10cSrcweir     SwMasterUsrPref *pUsrPref = (SwMasterUsrPref*)SW_MOD()->GetUsrPref(bWeb);
105cdf0e10cSrcweir 
106cdf0e10cSrcweir     const SwPageDesc &rDesc = pWrtShell->GetPageDesc( pWrtShell->GetCurPageDesc() );
107cdf0e10cSrcweir     const SvxLRSpaceItem &rLRSpace = rDesc.GetMaster().GetLRSpace();
108cdf0e10cSrcweir     const SwViewOption *pOpt = pWrtShell->GetViewOptions();
109cdf0e10cSrcweir     long lLeftMargin = 0;
110cdf0e10cSrcweir 
111cdf0e10cSrcweir     if( eZoomType != SVX_ZOOM_PERCENT )
112cdf0e10cSrcweir     {
113cdf0e10cSrcweir         const bool bAutomaticViewLayout = 0 == pOpt->GetViewLayoutColumns();
114cdf0e10cSrcweir 
115cdf0e10cSrcweir         const SwRect aPageRect( pWrtShell->GetAnyCurRect( RECT_PAGE_CALC ) );
116cdf0e10cSrcweir         const SwRect aRootRect( pWrtShell->GetAnyCurRect( RECT_PAGES_AREA ) );
117cdf0e10cSrcweir         Size aPageSize( aPageRect.SSize() );
118cdf0e10cSrcweir         Size aRootSize( aRootRect.SSize() );
119cdf0e10cSrcweir 
120cdf0e10cSrcweir         //mod #i6193# added sidebar width
121cdf0e10cSrcweir         SwPostItMgr* pPostItMgr = GetPostItMgr();
122cdf0e10cSrcweir         if (pPostItMgr->HasNotes() && pPostItMgr->ShowNotes())
123cdf0e10cSrcweir             aPageSize.Width() += pPostItMgr->GetSidebarWidth() + pPostItMgr->GetSidebarBorderWidth();
124cdf0e10cSrcweir 
125cdf0e10cSrcweir         const MapMode aTmpMap( MAP_TWIP );
126cdf0e10cSrcweir         const Size aWindowSize( GetEditWin().PixelToLogic( rEditSize, aTmpMap ) );
127cdf0e10cSrcweir 
128cdf0e10cSrcweir         if( nsUseOnPage::PD_MIRROR == rDesc.GetUseOn() )    // gespiegelte Seiten
129cdf0e10cSrcweir         {
130cdf0e10cSrcweir             const SvxLRSpaceItem &rLeftLRSpace = rDesc.GetLeft().GetLRSpace();
131cdf0e10cSrcweir             aPageSize.Width() += Abs( long(rLeftLRSpace.GetLeft()) - long(rLRSpace.GetLeft()) );
132cdf0e10cSrcweir         }
133cdf0e10cSrcweir 
134cdf0e10cSrcweir         if( SVX_ZOOM_OPTIMAL == eZoomType )
135cdf0e10cSrcweir         {
136cdf0e10cSrcweir             if (pPostItMgr->HasNotes() && pPostItMgr->ShowNotes())
137cdf0e10cSrcweir             {
138cdf0e10cSrcweir                 lLeftMargin = long(rLRSpace.GetLeft()) + aPageRect.Left() + nLeftOfst;
139cdf0e10cSrcweir             }
140cdf0e10cSrcweir             else
141cdf0e10cSrcweir             {
142cdf0e10cSrcweir                 aPageSize.Width() -= ( rLRSpace.GetLeft() + rLRSpace.GetRight() + nLeftOfst * 2 );
143cdf0e10cSrcweir                 lLeftMargin = long(rLRSpace.GetLeft()) + aPageRect.Left() + nLeftOfst;
144cdf0e10cSrcweir             }
145cdf0e10cSrcweir             nFac = aWindowSize.Width() * 100 / aPageSize.Width();
146cdf0e10cSrcweir         }
147cdf0e10cSrcweir         else if(SVX_ZOOM_WHOLEPAGE == eZoomType || SVX_ZOOM_PAGEWIDTH == eZoomType )
148cdf0e10cSrcweir         {
149cdf0e10cSrcweir             const long nOf = DOCUMENTBORDER * 2L;
150cdf0e10cSrcweir             long nTmpWidth = bAutomaticViewLayout ? aPageSize.Width() : aRootSize.Width();
151cdf0e10cSrcweir             nTmpWidth += nOf;
152cdf0e10cSrcweir             aPageSize.Height() += nOf;
153cdf0e10cSrcweir             nFac = aWindowSize.Width() * 100 / nTmpWidth;
154cdf0e10cSrcweir 
155cdf0e10cSrcweir             if ( SVX_ZOOM_WHOLEPAGE == eZoomType )
156cdf0e10cSrcweir             {
157cdf0e10cSrcweir                 long nVisPercent = aWindowSize.Height() * 100 / aPageSize.Height();
158cdf0e10cSrcweir                 nFac = Min( nFac, nVisPercent );
159cdf0e10cSrcweir             }
160cdf0e10cSrcweir         }
161cdf0e10cSrcweir         else /*if( SVX_ZOOM_PAGEWIDTH_NOBORDER == eZoomType )*/
162cdf0e10cSrcweir         {
163cdf0e10cSrcweir             const long nTmpWidth = bAutomaticViewLayout ? aPageSize.Width() : aRootSize.Width();
164cdf0e10cSrcweir             nFac = aWindowSize.Width() * 100 / nTmpWidth;
165cdf0e10cSrcweir         }
166cdf0e10cSrcweir     }
167cdf0e10cSrcweir 
168cdf0e10cSrcweir     nFac = Max( long( MINZOOM ), nFac );
169cdf0e10cSrcweir 
170cdf0e10cSrcweir     SwViewOption aOpt( *pOpt );
171cdf0e10cSrcweir     if ( !GetViewFrame()->GetFrame().IsInPlace() )
172cdf0e10cSrcweir     {
173cdf0e10cSrcweir         // MasterUsrPrefs updaten UND DANACH die ViewOptions der aktuellen
174cdf0e10cSrcweir         // View updaten.
175cdf0e10cSrcweir         if ( !bViewOnly &&
176cdf0e10cSrcweir                 (sal_uInt16(nFac)      != pUsrPref->GetZoom() ||
177cdf0e10cSrcweir                 sal_uInt8  (eZoomType) != pUsrPref->GetZoomType()) )
178cdf0e10cSrcweir         {
179cdf0e10cSrcweir             pUsrPref->SetZoom    ( sal_uInt16(nFac) );
180cdf0e10cSrcweir             pUsrPref->SetZoomType( eZoomType );
181cdf0e10cSrcweir             SW_MOD()->ApplyUsrPref( *pUsrPref,
182cdf0e10cSrcweir                     bViewOnly ? this: 0,
183cdf0e10cSrcweir                     bViewOnly ? VIEWOPT_DEST_VIEW_ONLY : 0 );
184cdf0e10cSrcweir             pUsrPref->SetModified();
185cdf0e10cSrcweir         }
186cdf0e10cSrcweir         if ( pOpt->GetZoom() != (sal_uInt16) nFac )
187cdf0e10cSrcweir         {
188cdf0e10cSrcweir             aOpt.SetZoom    ( sal_uInt16(nFac) );
189cdf0e10cSrcweir             aOpt.SetReadonly(pOpt->IsReadonly());
190cdf0e10cSrcweir             pWrtShell->ApplyViewOptions( aOpt );
191cdf0e10cSrcweir         }
192cdf0e10cSrcweir         if ( eZoomType != SVX_ZOOM_PERCENT )
193cdf0e10cSrcweir         {
194cdf0e10cSrcweir             Point aPos;
195cdf0e10cSrcweir 
196cdf0e10cSrcweir             if ( eZoomType == SVX_ZOOM_WHOLEPAGE )
197cdf0e10cSrcweir                 aPos.Y() = pWrtShell->GetAnyCurRect(RECT_PAGE).Top() - DOCUMENTBORDER;
198cdf0e10cSrcweir             else
199cdf0e10cSrcweir             {
200cdf0e10cSrcweir                 // sicherstellen, dass sich der Cursor im sichtbaren
201cdf0e10cSrcweir                 // Bereich befindet, damit nur 1x gescrollt wird
202cdf0e10cSrcweir                 aPos.X() = lLeftMargin;
203cdf0e10cSrcweir                 const SwRect &rCharRect = pWrtShell->GetCharRect();
204cdf0e10cSrcweir                 if ( rCharRect.Top() > GetVisArea().Bottom() ||
205cdf0e10cSrcweir                     rCharRect.Bottom() < aPos.Y() )
206cdf0e10cSrcweir                     aPos.Y() = rCharRect.Top() - rCharRect.Height();
207cdf0e10cSrcweir                 else
208cdf0e10cSrcweir                     aPos.Y() = GetVisArea().Top();
209cdf0e10cSrcweir             }
210cdf0e10cSrcweir             SetVisArea( aPos );
211cdf0e10cSrcweir         }
212*2b518738Smseidel         // OS: Notlösung - in CalcVisArea wird u.U. wieder SetZoom gerufen und
213cdf0e10cSrcweir         // dann werden falsche Werte eingestellt
214cdf0e10cSrcweir         ((SwViewOption*)pWrtShell->GetViewOptions())->SetZoomType( eZoomType );
215bb2d54e7Smseidel         CalcVisArea( rEditSize );   // für das Neuberechnen des sichtbaren Bereiches
216cdf0e10cSrcweir     }
217cdf0e10cSrcweir     else if ( sal_uInt16(nFac) != pOpt->GetZoom() )
218cdf0e10cSrcweir     {
219cdf0e10cSrcweir         aOpt.SetZoom    ( sal_uInt16(nFac) );
220cdf0e10cSrcweir         pWrtShell->ApplyViewOptions( aOpt );
221cdf0e10cSrcweir     }
222cdf0e10cSrcweir 
223cdf0e10cSrcweir     const Fraction aFrac( nFac, 100 );
224cdf0e10cSrcweir     pVRuler->SetZoom( aFrac );
225cdf0e10cSrcweir     pVRuler->ForceUpdate();
226cdf0e10cSrcweir     pHRuler->SetZoom( aFrac );
227cdf0e10cSrcweir     pHRuler->ForceUpdate();
228cdf0e10cSrcweir     ((SwViewOption*)pWrtShell->GetViewOptions())->SetZoomType( eZoomType );
229cdf0e10cSrcweir     }
230cdf0e10cSrcweir     pWrtShell->UnlockPaint();
231cdf0e10cSrcweir     if( bUnLockView )
232cdf0e10cSrcweir         pWrtShell->LockView( sal_False );
233cdf0e10cSrcweir 
234cdf0e10cSrcweir //    if ( mpPostItMgr )
235cdf0e10cSrcweir //    {
236cdf0e10cSrcweir //        mpPostItMgr->Rescale();
237cdf0e10cSrcweir //        mpPostItMgr->CalcRects();
238cdf0e10cSrcweir //        mpPostItMgr->LayoutPostIts();
239cdf0e10cSrcweir //    }
240cdf0e10cSrcweir 
241cdf0e10cSrcweir //  eZoom = eZoomType;
242cdf0e10cSrcweir }
243cdf0e10cSrcweir 
SetViewLayout(sal_uInt16 nColumns,bool bBookMode,sal_Bool bViewOnly)244cdf0e10cSrcweir void SwView::SetViewLayout( sal_uInt16 nColumns, bool bBookMode, sal_Bool bViewOnly )
245cdf0e10cSrcweir {
246cdf0e10cSrcweir     const sal_Bool bUnLockView = !pWrtShell->IsViewLocked();
247cdf0e10cSrcweir     pWrtShell->LockView( sal_True );
248cdf0e10cSrcweir     pWrtShell->LockPaint();
249cdf0e10cSrcweir 
250cdf0e10cSrcweir     {
251cdf0e10cSrcweir 
252*2b518738Smseidel     ACT_CONTEXT(pWrtShell);
253cdf0e10cSrcweir 
254cdf0e10cSrcweir     if ( !GetViewFrame()->GetFrame().IsInPlace() && !bViewOnly )
255cdf0e10cSrcweir     {
256cdf0e10cSrcweir         const sal_Bool bWeb = 0 != PTR_CAST(SwWebView, this);
257cdf0e10cSrcweir         SwMasterUsrPref *pUsrPref = (SwMasterUsrPref*)SW_MOD()->GetUsrPref(bWeb);
258cdf0e10cSrcweir 
259cdf0e10cSrcweir         // MasterUsrPrefs updaten UND DANACH die ViewOptions der aktuellen
260cdf0e10cSrcweir         // View updaten.
261cdf0e10cSrcweir         if ( nColumns  != pUsrPref->GetViewLayoutColumns() ||
262cdf0e10cSrcweir              bBookMode != pUsrPref->IsViewLayoutBookMode() )
263cdf0e10cSrcweir         {
264cdf0e10cSrcweir             pUsrPref->SetViewLayoutColumns( nColumns );
265cdf0e10cSrcweir             pUsrPref->SetViewLayoutBookMode( bBookMode );
266cdf0e10cSrcweir             SW_MOD()->ApplyUsrPref( *pUsrPref,
267cdf0e10cSrcweir                     bViewOnly ? this: 0,
268cdf0e10cSrcweir                     bViewOnly ? VIEWOPT_DEST_VIEW_ONLY : 0 );
269cdf0e10cSrcweir             pUsrPref->SetModified();
270cdf0e10cSrcweir         }
271cdf0e10cSrcweir     }
272cdf0e10cSrcweir 
273cdf0e10cSrcweir     const SwViewOption *pOpt = pWrtShell->GetViewOptions();
274cdf0e10cSrcweir 
275cdf0e10cSrcweir     if ( nColumns  != pOpt->GetViewLayoutColumns() ||
276cdf0e10cSrcweir          bBookMode != pOpt->IsViewLayoutBookMode() )
277cdf0e10cSrcweir     {
278cdf0e10cSrcweir         SwViewOption aOpt( *pOpt );
279cdf0e10cSrcweir         aOpt.SetViewLayoutColumns( nColumns );
280cdf0e10cSrcweir         aOpt.SetViewLayoutBookMode( bBookMode );
281cdf0e10cSrcweir         pWrtShell->ApplyViewOptions( aOpt );
282cdf0e10cSrcweir     }
283cdf0e10cSrcweir 
284cdf0e10cSrcweir     pVRuler->ForceUpdate();
285cdf0e10cSrcweir     pHRuler->ForceUpdate();
286cdf0e10cSrcweir 
287cdf0e10cSrcweir     }
288cdf0e10cSrcweir 
289cdf0e10cSrcweir     pWrtShell->UnlockPaint();
290cdf0e10cSrcweir     if( bUnLockView )
291cdf0e10cSrcweir         pWrtShell->LockView( sal_False );
292cdf0e10cSrcweir 
293cdf0e10cSrcweir     SfxBindings& rBnd = GetViewFrame()->GetBindings();
294cdf0e10cSrcweir     rBnd.Invalidate( SID_ATTR_VIEWLAYOUT );
295cdf0e10cSrcweir     rBnd.Invalidate( SID_ATTR_ZOOMSLIDER);
296cdf0e10cSrcweir }
297cdf0e10cSrcweir 
298cdf0e10cSrcweir /*
299cdf0e10cSrcweir  * Scrollbar - Handler
300cdf0e10cSrcweir  */
301cdf0e10cSrcweir 
_CreateScrollbar(sal_Bool bHori)302cdf0e10cSrcweir int SwView::_CreateScrollbar( sal_Bool bHori )
303cdf0e10cSrcweir {
304cdf0e10cSrcweir     Window *pMDI = &GetViewFrame()->GetWindow();
305cdf0e10cSrcweir     SwScrollbar** ppScrollbar = bHori ? &pHScrollbar : &pVScrollbar;
306cdf0e10cSrcweir 
307cdf0e10cSrcweir     ASSERT( !*ppScrollbar, "vorher abpruefen!" )
308cdf0e10cSrcweir 
309cdf0e10cSrcweir     if( !bHori )
310cdf0e10cSrcweir         CreatePageButtons( !bShowAtResize );
311cdf0e10cSrcweir 
312cdf0e10cSrcweir     *ppScrollbar = new SwScrollbar( pMDI, bHori );
313cdf0e10cSrcweir     UpdateScrollbars();
314cdf0e10cSrcweir     if(bHori)
315cdf0e10cSrcweir         (*ppScrollbar)->SetScrollHdl( LINK( this, SwView, EndScrollHdl ));
316cdf0e10cSrcweir     else
317cdf0e10cSrcweir         (*ppScrollbar)->SetScrollHdl( LINK( this, SwView, ScrollHdl ));
318cdf0e10cSrcweir     (*ppScrollbar)->SetEndScrollHdl( LINK( this, SwView, EndScrollHdl ));
319cdf0e10cSrcweir 
320cdf0e10cSrcweir     (*ppScrollbar)->EnableDrag( sal_True );
321cdf0e10cSrcweir 
322cdf0e10cSrcweir     if(GetWindow())
323cdf0e10cSrcweir         InvalidateBorder();
324cdf0e10cSrcweir 
325cdf0e10cSrcweir     // Scrollbar muss nochmals getestet werden, da im InvalidateBorder u.U. der
326*2b518738Smseidel     // Scrollbar wieder gelöscht wurde
327cdf0e10cSrcweir     if ( !bShowAtResize && (*ppScrollbar))
328cdf0e10cSrcweir         (*ppScrollbar)->ExtendedShow();
329cdf0e10cSrcweir 
330cdf0e10cSrcweir     return 1;
331cdf0e10cSrcweir }
332cdf0e10cSrcweir 
CreatePageButtons(sal_Bool bShow)333cdf0e10cSrcweir void SwView::CreatePageButtons(sal_Bool bShow)
334cdf0e10cSrcweir {
335cdf0e10cSrcweir     Window *pMDI = &GetViewFrame()->GetWindow();
336cdf0e10cSrcweir     pPageUpBtn      = new SwHlpImageButton(pMDI, SW_RES( BTN_PAGEUP ), sal_True );
337cdf0e10cSrcweir     pPageUpBtn->SetHelpId(HID_SCRL_PAGEUP);
338cdf0e10cSrcweir     pPageDownBtn    = new SwHlpImageButton(pMDI, SW_RES( BTN_PAGEDOWN ), sal_False );
339cdf0e10cSrcweir     pPageDownBtn->SetHelpId(HID_SCRL_PAGEDOWN);
340cdf0e10cSrcweir     Reference< XFrame > xFrame = GetViewFrame()->GetFrame().GetFrameInterface();
341cdf0e10cSrcweir     pNaviBtn = new SwNaviImageButton(pMDI, xFrame );
342cdf0e10cSrcweir     pNaviBtn->SetHelpId(HID_SCRL_NAVI);
343cdf0e10cSrcweir     Link aLk( LINK( this, SwView, BtnPage ) );
344cdf0e10cSrcweir     pPageUpBtn->SetClickHdl( aLk );
345cdf0e10cSrcweir     pPageDownBtn->SetClickHdl( aLk );
346cdf0e10cSrcweir     if(nMoveType != NID_PGE)
347cdf0e10cSrcweir     {
348cdf0e10cSrcweir         Color aColor(VIEW_IMAGECOLOR);
349cdf0e10cSrcweir         SetImageButtonColor(aColor);
350cdf0e10cSrcweir     }
351cdf0e10cSrcweir 
352cdf0e10cSrcweir     if(bShow)
353cdf0e10cSrcweir     {
354cdf0e10cSrcweir         pPageUpBtn->Show();
355cdf0e10cSrcweir         pPageDownBtn->Show();
356cdf0e10cSrcweir         pNaviBtn->Show();
357cdf0e10cSrcweir     }
358cdf0e10cSrcweir };
359cdf0e10cSrcweir 
360cdf0e10cSrcweir /*
361cdf0e10cSrcweir  * Button-Handler
362cdf0e10cSrcweir  */
IMPL_LINK(SwView,BtnPage,Button *,pButton)363cdf0e10cSrcweir IMPL_LINK( SwView, BtnPage, Button *, pButton )
364cdf0e10cSrcweir {
365cdf0e10cSrcweir     // #i75416# move the execution of the search to an asynchronously called static link
366cdf0e10cSrcweir     bool* pbNext = new bool( (pButton == pPageDownBtn) );
367cdf0e10cSrcweir     Application::PostUserEvent( STATIC_LINK(this, SwView, MoveNavigationHdl), pbNext );
368cdf0e10cSrcweir     return 0;
369cdf0e10cSrcweir }
370cdf0e10cSrcweir /*-----------------20.06.97 10:46-------------------
371cdf0e10cSrcweir 
372cdf0e10cSrcweir --------------------------------------------------*/
IMPL_STATIC_LINK(SwView,MoveNavigationHdl,bool *,pbNext)373cdf0e10cSrcweir IMPL_STATIC_LINK( SwView, MoveNavigationHdl, bool *, pbNext )
374cdf0e10cSrcweir {
375cdf0e10cSrcweir     if ( !pbNext )
376cdf0e10cSrcweir         return 0;
37769a74367SOliver-Rainer Wittmann     const bool bNext = *pbNext;
378cdf0e10cSrcweir     SwWrtShell& rSh = pThis->GetWrtShell();
379cdf0e10cSrcweir     switch( nMoveType )
380cdf0e10cSrcweir     {
381cdf0e10cSrcweir         case NID_PGE:
382cdf0e10cSrcweir             bNext ? pThis->PhyPageDown() : pThis->PhyPageUp();
383cdf0e10cSrcweir         break;
384cdf0e10cSrcweir         case NID_TBL :
385cdf0e10cSrcweir             rSh.EnterStdMode();
386cdf0e10cSrcweir             if(bNext)
387cdf0e10cSrcweir                 rSh.MoveTable(fnTableNext, fnTableStart);
388cdf0e10cSrcweir             else
389cdf0e10cSrcweir                 rSh.MoveTable(fnTablePrev, fnTableStart);
390cdf0e10cSrcweir         break;
391cdf0e10cSrcweir         case NID_FRM :
392cdf0e10cSrcweir         case NID_GRF:
393cdf0e10cSrcweir         case NID_OLE:
394cdf0e10cSrcweir         {
395cdf0e10cSrcweir             sal_uInt16 eType = GOTOOBJ_FLY_FRM;
396cdf0e10cSrcweir             if(nMoveType == NID_GRF)
397cdf0e10cSrcweir                 eType = GOTOOBJ_FLY_GRF;
398cdf0e10cSrcweir             else if(nMoveType == NID_OLE)
399cdf0e10cSrcweir                 eType = GOTOOBJ_FLY_OLE;
400cdf0e10cSrcweir             sal_Bool bSuccess = bNext ?
401cdf0e10cSrcweir                     rSh.GotoNextFly(eType) :
402cdf0e10cSrcweir                         rSh.GotoPrevFly(eType);
403cdf0e10cSrcweir             if(bSuccess)
404cdf0e10cSrcweir             {
405cdf0e10cSrcweir                 rSh.HideCrsr();
406cdf0e10cSrcweir                 rSh.EnterSelFrmMode();
407cdf0e10cSrcweir             }
408cdf0e10cSrcweir         }
409cdf0e10cSrcweir         break;
410cdf0e10cSrcweir         case NID_DRW :
411cdf0e10cSrcweir         case NID_CTRL:
412cdf0e10cSrcweir             rSh.GotoObj(bNext,
413cdf0e10cSrcweir                     nMoveType == NID_DRW ?
414cdf0e10cSrcweir                         GOTOOBJ_DRAW_SIMPLE :
415cdf0e10cSrcweir                         GOTOOBJ_DRAW_CONTROL);
416cdf0e10cSrcweir         break;
417cdf0e10cSrcweir         case NID_REG :
418cdf0e10cSrcweir             rSh.EnterStdMode();
419cdf0e10cSrcweir             if(bNext)
420cdf0e10cSrcweir                 rSh.MoveRegion(fnRegionNext, fnRegionStart);
421cdf0e10cSrcweir             else
422cdf0e10cSrcweir                 rSh.MoveRegion(fnRegionPrev, fnRegionStart);
423cdf0e10cSrcweir 
424cdf0e10cSrcweir         break;
425cdf0e10cSrcweir         case NID_BKM :
426cdf0e10cSrcweir             rSh.EnterStdMode();
427cdf0e10cSrcweir             pThis->GetViewFrame()->GetDispatcher()->Execute(bNext ?
428cdf0e10cSrcweir                                         FN_NEXT_BOOKMARK :
429cdf0e10cSrcweir                                             FN_PREV_BOOKMARK);
430cdf0e10cSrcweir         break;
431cdf0e10cSrcweir         case NID_OUTL:
432cdf0e10cSrcweir             rSh.EnterStdMode();
433cdf0e10cSrcweir             bNext ? rSh.GotoNextOutline() : rSh.GotoPrevOutline();
434cdf0e10cSrcweir         break;
435cdf0e10cSrcweir         case NID_SEL :
436cdf0e10cSrcweir             bNext ? rSh.GoNextCrsr() : rSh.GoPrevCrsr();
437cdf0e10cSrcweir         break;
438cdf0e10cSrcweir         case NID_FTN:
439cdf0e10cSrcweir             rSh.EnterStdMode();
440cdf0e10cSrcweir             bNext ?
441cdf0e10cSrcweir                 rSh.GotoNextFtnAnchor() :
442cdf0e10cSrcweir                     rSh.GotoPrevFtnAnchor();
443cdf0e10cSrcweir         break;
444cdf0e10cSrcweir         case NID_MARK:
445cdf0e10cSrcweir         {
446cdf0e10cSrcweir             // unselect
447cdf0e10cSrcweir             rSh.MoveCrsr();
448cdf0e10cSrcweir             rSh.EnterStdMode();
449cdf0e10cSrcweir 
450cdf0e10cSrcweir             // collect navigator reminders
451cdf0e10cSrcweir             IDocumentMarkAccess* const pMarkAccess = rSh.getIDocumentMarkAccess();
452cdf0e10cSrcweir             ::std::vector< const ::sw::mark::IMark* > vNavMarks;
453dec99bbdSOliver-Rainer Wittmann             for( IDocumentMarkAccess::const_iterator_t ppMark = pMarkAccess->getAllMarksBegin();
454dec99bbdSOliver-Rainer Wittmann                 ppMark != pMarkAccess->getAllMarksEnd();
455cdf0e10cSrcweir                 ppMark++)
456cdf0e10cSrcweir             {
457cdf0e10cSrcweir                 if( IDocumentMarkAccess::GetType(**ppMark) == IDocumentMarkAccess::NAVIGATOR_REMINDER )
458cdf0e10cSrcweir                     vNavMarks.push_back(ppMark->get());
459cdf0e10cSrcweir             }
460cdf0e10cSrcweir 
461cdf0e10cSrcweir             // move
462cdf0e10cSrcweir             if(vNavMarks.size())
463cdf0e10cSrcweir             {
464cdf0e10cSrcweir                 if(bNext)
465cdf0e10cSrcweir                 {
466cdf0e10cSrcweir                     nActMark++;
467cdf0e10cSrcweir                     if (nActMark >= MAX_MARKS || nActMark >= static_cast<sal_Int32>(vNavMarks.size()))
468cdf0e10cSrcweir                         nActMark = 0;
469cdf0e10cSrcweir                 }
470cdf0e10cSrcweir                 else
471cdf0e10cSrcweir                 {
472cdf0e10cSrcweir                     nActMark--;
473cdf0e10cSrcweir                     if (nActMark < 0 || nActMark >= static_cast<sal_Int32>(vNavMarks.size()))
474cdf0e10cSrcweir                         nActMark = vNavMarks.size()-1;
475cdf0e10cSrcweir                 }
476cdf0e10cSrcweir                 rSh.GotoMark(vNavMarks[nActMark]);
477cdf0e10cSrcweir             }
478cdf0e10cSrcweir         }
479cdf0e10cSrcweir         break;
48069a74367SOliver-Rainer Wittmann 
481cdf0e10cSrcweir         case NID_POSTIT:
482cdf0e10cSrcweir             {
483cdf0e10cSrcweir                 sw::sidebarwindows::SwSidebarWin* pPostIt = pThis->GetPostItMgr()->GetActiveSidebarWin();
484cdf0e10cSrcweir                 if (pPostIt)
485cdf0e10cSrcweir                     pThis->GetPostItMgr()->SetActiveSidebarWin(0);
486cdf0e10cSrcweir                 SwFieldType* pFldType = rSh.GetFldType(0, RES_POSTITFLD);
487cdf0e10cSrcweir                 if ( rSh.MoveFldType( pFldType, bNext ) )
488cdf0e10cSrcweir                     pThis->GetViewFrame()->GetDispatcher()->Execute(FN_POSTIT);
489cdf0e10cSrcweir                 else
490cdf0e10cSrcweir                     //first/last item
491cdf0e10cSrcweir                     pThis->GetPostItMgr()->SetActiveSidebarWin(pPostIt);
492cdf0e10cSrcweir             }
493cdf0e10cSrcweir             break;
49469a74367SOliver-Rainer Wittmann 
495cdf0e10cSrcweir         case NID_SRCH_REP:
496cdf0e10cSrcweir         if(pSrchItem)
497cdf0e10cSrcweir         {
498cdf0e10cSrcweir             sal_Bool bBackward = pSrchItem->GetBackward();
499cdf0e10cSrcweir             if(rSh.HasSelection() && !bNext == rSh.IsCrsrPtAtEnd())
500cdf0e10cSrcweir                 rSh.SwapPam();
501cdf0e10cSrcweir             pSrchItem->SetBackward(!bNext);
502cdf0e10cSrcweir             SfxRequest aReq(FN_REPEAT_SEARCH, SFX_CALLMODE_SLOT, pThis->GetPool());
503cdf0e10cSrcweir             pThis->ExecSearch(aReq);
504cdf0e10cSrcweir             pSrchItem->SetBackward(bBackward);
505cdf0e10cSrcweir         }
506cdf0e10cSrcweir         break;
507cdf0e10cSrcweir         case NID_INDEX_ENTRY:
508cdf0e10cSrcweir             rSh.GotoNxtPrvTOXMark(bNext);
509cdf0e10cSrcweir         break;
510cdf0e10cSrcweir 
511cdf0e10cSrcweir         case NID_TABLE_FORMULA:
512cdf0e10cSrcweir             rSh.GotoNxtPrvTblFormula( bNext );
513cdf0e10cSrcweir             break;
514cdf0e10cSrcweir 
515cdf0e10cSrcweir         case NID_TABLE_FORMULA_ERROR:
516cdf0e10cSrcweir             rSh.GotoNxtPrvTblFormula( bNext, sal_True );
517cdf0e10cSrcweir             break;
518cdf0e10cSrcweir     }
519cdf0e10cSrcweir     pThis->pEditWin->GrabFocus();
520cdf0e10cSrcweir     delete pbNext;
521cdf0e10cSrcweir     return 0;
522cdf0e10cSrcweir }
523cdf0e10cSrcweir 
524cdf0e10cSrcweir /*************************************************************************
525cdf0e10cSrcweir |*
526cdf0e10cSrcweir |*  SwView::CreateTab()
527cdf0e10cSrcweir |*
528cdf0e10cSrcweir |*  Beschreibung
529cdf0e10cSrcweir |*  Ersterstellung      VB 29.05.91
530cdf0e10cSrcweir |*  Letzte Aenderung    OS 09.05.96
531cdf0e10cSrcweir |*
532cdf0e10cSrcweir *************************************************************************/
533cdf0e10cSrcweir 
CreateTab()534cdf0e10cSrcweir int SwView::CreateTab()
535cdf0e10cSrcweir {
536cdf0e10cSrcweir     pHRuler->SetActive(GetFrame() && IsActive());
537cdf0e10cSrcweir 
538cdf0e10cSrcweir     pHRuler->Show();
539cdf0e10cSrcweir     InvalidateBorder();
540cdf0e10cSrcweir     return 1;
541cdf0e10cSrcweir }
542cdf0e10cSrcweir 
543cdf0e10cSrcweir /*************************************************************************
544cdf0e10cSrcweir |*
545cdf0e10cSrcweir |*  SwView::KillTab()
546cdf0e10cSrcweir |*
547cdf0e10cSrcweir |*  Beschreibung
548cdf0e10cSrcweir |*  Ersterstellung      VB 29.05.91
549cdf0e10cSrcweir |*  Letzte Aenderung    OS 09.05.96
550cdf0e10cSrcweir |*
551cdf0e10cSrcweir *************************************************************************/
552cdf0e10cSrcweir 
KillTab()553cdf0e10cSrcweir int SwView::KillTab()
554cdf0e10cSrcweir {
555cdf0e10cSrcweir     pHRuler->Hide();
556cdf0e10cSrcweir     InvalidateBorder();
557cdf0e10cSrcweir     return 1;
558cdf0e10cSrcweir }
559cdf0e10cSrcweir 
ChangeTabMetric(FieldUnit eUnit)560cdf0e10cSrcweir void SwView::ChangeTabMetric( FieldUnit eUnit )
561cdf0e10cSrcweir {
562cdf0e10cSrcweir     if(pHRuler->GetUnit() != eUnit )
563cdf0e10cSrcweir     {
564cdf0e10cSrcweir         pHRuler->SetUnit( eUnit );
565cdf0e10cSrcweir         pHRuler->Invalidate();
566cdf0e10cSrcweir     }
567cdf0e10cSrcweir }
568cdf0e10cSrcweir 
ChangeVRulerMetric(FieldUnit eUnit)569bb2d54e7Smseidel void SwView::ChangeVRulerMetric( FieldUnit eUnit )
570cdf0e10cSrcweir {
571cdf0e10cSrcweir     if(pVRuler->GetUnit() != eUnit)
572cdf0e10cSrcweir     {
573cdf0e10cSrcweir         pVRuler->SetUnit( eUnit );
574cdf0e10cSrcweir         pVRuler->Invalidate();
575cdf0e10cSrcweir     }
576cdf0e10cSrcweir }
577cdf0e10cSrcweir /* -----------------------------07.04.01 17:09--------------------------------
578cdf0e10cSrcweir 
579cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
GetVRulerMetric(FieldUnit & eToFill) const580bb2d54e7Smseidel void SwView::GetVRulerMetric(FieldUnit& eToFill) const
581cdf0e10cSrcweir {
582cdf0e10cSrcweir     eToFill = pVRuler->GetUnit();
583cdf0e10cSrcweir }
584cdf0e10cSrcweir /* -----------------------------07.04.01 17:09--------------------------------
585cdf0e10cSrcweir 
586cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
GetHRulerMetric(FieldUnit & eToFill) const587bb2d54e7Smseidel void SwView::GetHRulerMetric(FieldUnit& eToFill) const
588cdf0e10cSrcweir {
589cdf0e10cSrcweir     eToFill = pHRuler->GetUnit();
590cdf0e10cSrcweir }
591cdf0e10cSrcweir /*************************************************************************
592cdf0e10cSrcweir |*
593bb2d54e7Smseidel |*  SwView::CreateVRuler()
594cdf0e10cSrcweir |*
595cdf0e10cSrcweir |*  Beschreibung
596cdf0e10cSrcweir |*  Ersterstellung  VB 29.05.91
597cdf0e10cSrcweir |*
598cdf0e10cSrcweir *************************************************************************/
599cdf0e10cSrcweir 
CreateVRuler()600bb2d54e7Smseidel int SwView::CreateVRuler()
601cdf0e10cSrcweir {
602cdf0e10cSrcweir     pHRuler->SetBorderPos( pVRuler->GetSizePixel().Width()-1 );
603cdf0e10cSrcweir 
604cdf0e10cSrcweir     pVRuler->SetActive(GetFrame() && IsActive());
605cdf0e10cSrcweir     pVRuler->Show();
606cdf0e10cSrcweir     InvalidateBorder();
607cdf0e10cSrcweir     return 1;
608cdf0e10cSrcweir }
609cdf0e10cSrcweir 
610cdf0e10cSrcweir /*************************************************************************
611cdf0e10cSrcweir |*
612bb2d54e7Smseidel |*  SwView::KillVRuler()
613cdf0e10cSrcweir |*
614cdf0e10cSrcweir |*  Beschreibung
615cdf0e10cSrcweir |*  Ersterstellung  VB 29.05.91
616cdf0e10cSrcweir |*
617cdf0e10cSrcweir *************************************************************************/
618cdf0e10cSrcweir 
KillVRuler()619bb2d54e7Smseidel int SwView::KillVRuler()
620cdf0e10cSrcweir {
621cdf0e10cSrcweir     pVRuler->Hide();
622cdf0e10cSrcweir     pHRuler->SetBorderPos( 0 );
623cdf0e10cSrcweir     InvalidateBorder();
624cdf0e10cSrcweir     return 1;
625cdf0e10cSrcweir }
626cdf0e10cSrcweir /*************************************************************************
627cdf0e10cSrcweir |*
628cdf0e10cSrcweir |*  SwView::ExecRulerClick()
629cdf0e10cSrcweir |*
630cdf0e10cSrcweir |*  Beschreibung
631cdf0e10cSrcweir |*  Ersterstellung  OS 15.06.95
632cdf0e10cSrcweir |*  Letzte Aenderung
633cdf0e10cSrcweir |*
634cdf0e10cSrcweir *************************************************************************/
635cdf0e10cSrcweir 
IMPL_LINK(SwView,ExecRulerClick,Ruler *,pRuler)636cdf0e10cSrcweir IMPL_LINK( SwView, ExecRulerClick, Ruler *, pRuler )
637cdf0e10cSrcweir {
638cdf0e10cSrcweir     sal_uInt16 nDefPage = 0;
639cdf0e10cSrcweir     switch( pRuler->GetClickType() )
640cdf0e10cSrcweir     {
641cdf0e10cSrcweir         case RULER_TYPE_DONTKNOW:
642cdf0e10cSrcweir         case RULER_TYPE_OUTSIDE:
643cdf0e10cSrcweir         case RULER_TYPE_INDENT:
644cdf0e10cSrcweir         case RULER_TYPE_MARGIN1:
645cdf0e10cSrcweir         case RULER_TYPE_MARGIN2:
646cdf0e10cSrcweir             nDefPage = TP_PARA_STD;
647cdf0e10cSrcweir         break;
648cdf0e10cSrcweir         default:
649cdf0e10cSrcweir             nDefPage = TP_TABULATOR;
650cdf0e10cSrcweir 
651cdf0e10cSrcweir     }
652cdf0e10cSrcweir 
653cdf0e10cSrcweir     SfxUInt16Item aDefPage(SID_PARA_DLG, nDefPage);
654cdf0e10cSrcweir     GetViewFrame()->GetDispatcher()->Execute( SID_PARA_DLG,
655cdf0e10cSrcweir                                 SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD,
656cdf0e10cSrcweir                                 &aDefPage, 0L );
657cdf0e10cSrcweir     return 0;
658cdf0e10cSrcweir }
659cdf0e10cSrcweir 
660cdf0e10cSrcweir 
661cdf0e10cSrcweir /*-----------------20.02.97 09:11-------------------
662cdf0e10cSrcweir 
663cdf0e10cSrcweir --------------------------------------------------*/
664cdf0e10cSrcweir 
GetMoveType()665cdf0e10cSrcweir sal_uInt16 SwView::GetMoveType()
666cdf0e10cSrcweir {
667cdf0e10cSrcweir     return nMoveType;
668cdf0e10cSrcweir }
669cdf0e10cSrcweir /*-----------------20.02.97 09:11-------------------
670cdf0e10cSrcweir 
671cdf0e10cSrcweir --------------------------------------------------*/
672cdf0e10cSrcweir 
SetMoveType(sal_uInt16 nSet)673cdf0e10cSrcweir void SwView::SetMoveType(sal_uInt16 nSet)
674cdf0e10cSrcweir {
675cdf0e10cSrcweir     sal_Bool bLastPage = nMoveType == NID_PGE;
676cdf0e10cSrcweir     nMoveType = nSet;
677cdf0e10cSrcweir     sal_Bool bNewPage = nMoveType == NID_PGE;
678cdf0e10cSrcweir     if(bNewPage != bLastPage)
679cdf0e10cSrcweir     {
680cdf0e10cSrcweir         Color aColor(bNewPage ? COL_BLACK : VIEW_IMAGECOLOR);
681cdf0e10cSrcweir         const TypeId aTypeId = TYPE(SwView);
682cdf0e10cSrcweir         SwView* pView = (SwView*)SfxViewShell::GetFirst(&aTypeId);
683cdf0e10cSrcweir         while( pView )
684cdf0e10cSrcweir         {
685cdf0e10cSrcweir             pView->SetImageButtonColor(aColor);
686cdf0e10cSrcweir             pView = (SwView*)SfxViewShell::GetNext(*pView, &aTypeId);
687cdf0e10cSrcweir         }
688cdf0e10cSrcweir     }
689cdf0e10cSrcweir }
690cdf0e10cSrcweir 
691cdf0e10cSrcweir /*-----------------20.06.97 11:18-------------------
692cdf0e10cSrcweir 
693cdf0e10cSrcweir --------------------------------------------------*/
SetActMark(sal_Int32 nSet)694cdf0e10cSrcweir void SwView::SetActMark(sal_Int32 nSet)
695cdf0e10cSrcweir {
696cdf0e10cSrcweir     nActMark = nSet;
697cdf0e10cSrcweir }
698cdf0e10cSrcweir 
699cdf0e10cSrcweir /*-----------------15.03.97 10:53-------------------
700cdf0e10cSrcweir 
701cdf0e10cSrcweir --------------------------------------------------*/
702cdf0e10cSrcweir 
SetImageButtonColor(Color & rColor)703cdf0e10cSrcweir void SwView::SetImageButtonColor(Color& rColor)
704cdf0e10cSrcweir {
705cdf0e10cSrcweir     if(pPageUpBtn)
706cdf0e10cSrcweir     {
707cdf0e10cSrcweir         pPageUpBtn->SetControlForeground(rColor);
708cdf0e10cSrcweir         pPageDownBtn->SetControlForeground(rColor);
709cdf0e10cSrcweir     }
710cdf0e10cSrcweir }
711cdf0e10cSrcweir /* -----------------------------2002/06/26 13:57------------------------------
712cdf0e10cSrcweir 
713cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
ShowHScrollbar(sal_Bool bShow)714cdf0e10cSrcweir void SwView::ShowHScrollbar(sal_Bool bShow)
715cdf0e10cSrcweir {
716cdf0e10cSrcweir     DBG_ASSERT(pHScrollbar, "Scrollbar invalid");
717cdf0e10cSrcweir     pHScrollbar->ExtendedShow(bShow);
718cdf0e10cSrcweir }
719cdf0e10cSrcweir /* -----------------------------2002/06/26 13:57------------------------------
720cdf0e10cSrcweir 
721cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
IsHScrollbarVisible() const722cdf0e10cSrcweir sal_Bool SwView::IsHScrollbarVisible()const
723cdf0e10cSrcweir {
724cdf0e10cSrcweir     DBG_ASSERT(pHScrollbar, "Scrollbar invalid");
725cdf0e10cSrcweir     return pHScrollbar->IsVisible( sal_False ) || pHScrollbar->IsAuto();
726cdf0e10cSrcweir }
727cdf0e10cSrcweir /* -----------------------------2002/06/26 13:57------------------------------
728cdf0e10cSrcweir 
729cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
ShowVScrollbar(sal_Bool bShow)730cdf0e10cSrcweir void SwView::ShowVScrollbar(sal_Bool bShow)
731cdf0e10cSrcweir {
732cdf0e10cSrcweir     DBG_ASSERT(pVScrollbar, "Scrollbar invalid");
733cdf0e10cSrcweir     pVScrollbar->ExtendedShow(bShow);
734cdf0e10cSrcweir     pPageUpBtn->Show(bShow);
735cdf0e10cSrcweir     pPageDownBtn->Show(bShow);
736cdf0e10cSrcweir     pNaviBtn->Show(bShow);
737cdf0e10cSrcweir }
738cdf0e10cSrcweir /* -----------------------------2002/06/26 13:57------------------------------
739cdf0e10cSrcweir 
740cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
IsVScrollbarVisible() const741cdf0e10cSrcweir sal_Bool SwView::IsVScrollbarVisible()const
742cdf0e10cSrcweir {
743cdf0e10cSrcweir     DBG_ASSERT(pVScrollbar, "Scrollbar invalid");
744cdf0e10cSrcweir     return pVScrollbar->IsVisible( sal_False );
745cdf0e10cSrcweir }
746bb2d54e7Smseidel 
747bb2d54e7Smseidel /* vim: set noet sw=4 ts=4: */
748