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