Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include <string>
21 :
22 : #include "hintids.hxx"
23 : #include <vcl/svapp.hxx>
24 : #include <sfx2/dispatch.hxx>
25 : #include <svx/ruler.hxx>
26 : #include <editeng/lrspitem.hxx>
27 : #include <svl/srchitem.hxx>
28 : #include <svl/stritem.hxx>
29 : #include <sfx2/request.hxx>
30 : #include <swmodule.hxx>
31 : #include <view.hxx>
32 : #include <wrtsh.hxx>
33 : #include <docsh.hxx>
34 : #include <viewopt.hxx>
35 : #include <frmatr.hxx>
36 : #include <wdocsh.hxx>
37 : #include <uitool.hxx>
38 : #include <edtwin.hxx>
39 : #include <pagedesc.hxx>
40 : #include <IMark.hxx>
41 : #include <fldbas.hxx>
42 : #include <workctrl.hxx>
43 : #include <usrpref.hxx>
44 : #include <scroll.hxx>
45 : #include <wview.hxx>
46 :
47 : #include <cmdid.h>
48 : #include <view.hrc>
49 : #include <ribbar.hrc>
50 : #include <helpid.h>
51 : #include <globals.hrc>
52 :
53 : #include <IDocumentSettingAccess.hxx>
54 : #include <PostItMgr.hxx>
55 :
56 : sal_uInt16 SwView::m_nMoveType = NID_PGE;
57 : sal_Int32 SwView::m_nActMark = 0;
58 :
59 : using namespace ::com::sun::star::uno;
60 : using namespace ::com::sun::star::frame;
61 :
62 1544 : void SwView::SetZoom( SvxZoomType eZoomType, short nFactor, bool bViewOnly )
63 : {
64 1544 : bool const bCrsrIsVisible(m_pWrtShell->IsCrsrVisible());
65 1544 : _SetZoom( GetEditWin().GetOutputSizePixel(), eZoomType, nFactor, bViewOnly );
66 : // fdo#40465 force the cursor to stay in view whilst zooming
67 1544 : if (bCrsrIsVisible)
68 1484 : m_pWrtShell->ShowCrsr();
69 1544 : }
70 :
71 1550 : void SwView::_SetZoom( const Size &rEditSize, SvxZoomType eZoomType,
72 : short nFactor, bool bViewOnly )
73 : {
74 1550 : bool bUnLockView = !m_pWrtShell->IsViewLocked();
75 1550 : m_pWrtShell->LockView( true );
76 1550 : m_pWrtShell->LockPaint();
77 :
78 : { // start of SwActContext scope
79 1550 : SwActContext aActContext(m_pWrtShell);
80 :
81 1550 : long nFac = nFactor;
82 :
83 1550 : const bool bWeb = this->ISA(SwWebView);
84 1550 : SwMasterUsrPref *pUsrPref = (SwMasterUsrPref*)SW_MOD()->GetUsrPref(bWeb);
85 :
86 1550 : const SwPageDesc &rDesc = m_pWrtShell->GetPageDesc( m_pWrtShell->GetCurPageDesc() );
87 1550 : const SvxLRSpaceItem &rLRSpace = rDesc.GetMaster().GetLRSpace();
88 1550 : const SwViewOption *pOpt = m_pWrtShell->GetViewOptions();
89 1550 : long lLeftMargin = 0;
90 :
91 1550 : if( eZoomType != SVX_ZOOM_PERCENT )
92 : {
93 20 : const bool bAutomaticViewLayout = 0 == pOpt->GetViewLayoutColumns();
94 :
95 20 : const SwRect aPageRect( m_pWrtShell->GetAnyCurRect( RECT_PAGE_CALC ) );
96 20 : const SwRect aRootRect( m_pWrtShell->GetAnyCurRect( RECT_PAGES_AREA ) );
97 20 : Size aPageSize( aPageRect.SSize() );
98 20 : Size aRootSize( aRootRect.SSize() );
99 :
100 : //mod #i6193# added sidebar width
101 20 : SwPostItMgr* pPostItMgr = GetPostItMgr();
102 20 : if (pPostItMgr->HasNotes() && pPostItMgr->ShowNotes())
103 0 : aPageSize.Width() += pPostItMgr->GetSidebarWidth() + pPostItMgr->GetSidebarBorderWidth();
104 :
105 20 : const MapMode aTmpMap( MAP_TWIP );
106 20 : const Size aWindowSize( GetEditWin().PixelToLogic( rEditSize, aTmpMap ) );
107 :
108 20 : if( nsUseOnPage::PD_MIRROR == rDesc.GetUseOn() ) // mirrored pages
109 : {
110 0 : const SvxLRSpaceItem &rLeftLRSpace = rDesc.GetLeft().GetLRSpace();
111 0 : aPageSize.Width() += std::abs( long(rLeftLRSpace.GetLeft()) - long(rLRSpace.GetLeft()) );
112 : }
113 :
114 20 : if( SVX_ZOOM_OPTIMAL == eZoomType )
115 : {
116 0 : if (!pPostItMgr->HasNotes() || !pPostItMgr->ShowNotes())
117 0 : aPageSize.Width() -= ( rLRSpace.GetLeft() + rLRSpace.GetRight() + nLeftOfst * 2 );
118 0 : lLeftMargin = long(rLRSpace.GetLeft()) + DOCUMENTBORDER + nLeftOfst;
119 0 : nFac = aWindowSize.Width() * 100 / aPageSize.Width();
120 : }
121 20 : else if(SVX_ZOOM_WHOLEPAGE == eZoomType || SVX_ZOOM_PAGEWIDTH == eZoomType )
122 : {
123 12 : const long nOf = DOCUMENTBORDER * 2L;
124 12 : long nTmpWidth = bAutomaticViewLayout ? aPageSize.Width() : aRootSize.Width();
125 12 : nTmpWidth += nOf;
126 12 : aPageSize.Height() += nOf;
127 12 : nFac = aWindowSize.Width() * 100 / nTmpWidth;
128 :
129 12 : if ( SVX_ZOOM_WHOLEPAGE == eZoomType )
130 : {
131 0 : long nVisPercent = aWindowSize.Height() * 100 / aPageSize.Height();
132 0 : nFac = std::min( nFac, nVisPercent );
133 12 : }
134 : }
135 : else
136 : {
137 8 : const long nTmpWidth = bAutomaticViewLayout ? aPageSize.Width() : aRootSize.Width();
138 8 : nFac = aWindowSize.Width() * 100 / nTmpWidth;
139 20 : }
140 : }
141 :
142 1550 : nFac = std::max( long( MINZOOM ), nFac );
143 1550 : const sal_uInt16 nZoomFac = static_cast<sal_uInt16>(nFac);
144 :
145 3100 : SwViewOption aOpt( *pOpt );
146 1550 : if ( !GetViewFrame()->GetFrame().IsInPlace() )
147 : {
148 : //Update MasterUsrPrefs and after that update the ViewOptions of the current View.
149 1550 : if ( !bViewOnly &&
150 0 : (nZoomFac != pUsrPref->GetZoom() ||
151 0 : eZoomType != pUsrPref->GetZoomType()) )
152 : {
153 0 : pUsrPref->SetZoom(nZoomFac);
154 0 : pUsrPref->SetZoomType(eZoomType);
155 0 : SW_MOD()->ApplyUsrPref(*pUsrPref, 0, 0);
156 0 : pUsrPref->SetModified();
157 : }
158 1550 : if ( pOpt->GetZoom() != nZoomFac )
159 : {
160 1536 : aOpt.SetZoom(nZoomFac);
161 1536 : aOpt.SetReadonly(pOpt->IsReadonly());
162 1536 : m_pWrtShell->ApplyViewOptions( aOpt );
163 : }
164 1550 : if ( eZoomType != SVX_ZOOM_PERCENT )
165 : {
166 20 : Point aPos;
167 :
168 20 : if ( eZoomType == SVX_ZOOM_WHOLEPAGE )
169 0 : aPos.Y() = m_pWrtShell->GetAnyCurRect(RECT_PAGE).Top() - DOCUMENTBORDER;
170 : else
171 : {
172 : // Make sure that the cursor is in the visible range, so that
173 : // the scrolling will be performed only once.
174 20 : aPos.X() = lLeftMargin;
175 20 : const SwRect &rCharRect = m_pWrtShell->GetCharRect();
176 40 : if ( rCharRect.Top() > GetVisArea().Bottom() ||
177 20 : rCharRect.Bottom() < aPos.Y() )
178 0 : aPos.Y() = rCharRect.Top() - rCharRect.Height();
179 : else
180 20 : aPos.Y() = GetVisArea().Top();
181 : }
182 20 : SetVisArea( aPos );
183 : }
184 : // Compromise solution - Under certain circumstances SetZoom is called
185 : // in CalcVisAreas again and thus be set wrong values.
186 1550 : ((SwViewOption*)m_pWrtShell->GetViewOptions())->SetZoomType( eZoomType );
187 1550 : CalcVisArea( rEditSize ); // for the recalculation of the viewable area
188 : }
189 0 : else if ( nZoomFac != pOpt->GetZoom() )
190 : {
191 0 : aOpt.SetZoom( nZoomFac );
192 0 : m_pWrtShell->ApplyViewOptions( aOpt );
193 : }
194 :
195 1550 : const Fraction aFrac( nFac, 100 );
196 1550 : m_pVRuler->SetZoom( aFrac );
197 1550 : m_pVRuler->ForceUpdate();
198 1550 : m_pHRuler->SetZoom( aFrac );
199 1550 : m_pHRuler->ForceUpdate();
200 3100 : ((SwViewOption*)m_pWrtShell->GetViewOptions())->SetZoomType( eZoomType );
201 : } // end of SwActContext scope
202 :
203 1550 : m_pWrtShell->UnlockPaint();
204 1550 : if( bUnLockView )
205 1544 : m_pWrtShell->LockView( false );
206 1550 : }
207 :
208 58 : void SwView::SetViewLayout( sal_uInt16 nColumns, bool bBookMode, bool bViewOnly )
209 : {
210 58 : const bool bUnLockView = !m_pWrtShell->IsViewLocked();
211 58 : m_pWrtShell->LockView( true );
212 58 : m_pWrtShell->LockPaint();
213 :
214 : {
215 :
216 58 : SwActContext aActContext(m_pWrtShell);
217 :
218 58 : if ( !GetViewFrame()->GetFrame().IsInPlace() && !bViewOnly )
219 : {
220 0 : const bool bWeb = this->ISA(SwWebView);
221 0 : SwMasterUsrPref *pUsrPref = (SwMasterUsrPref*)SW_MOD()->GetUsrPref(bWeb);
222 :
223 : // Update MasterUsrPrefs and after that update the ViewOptions of the current View.
224 0 : if ( nColumns != pUsrPref->GetViewLayoutColumns() ||
225 0 : bBookMode != pUsrPref->IsViewLayoutBookMode() )
226 : {
227 0 : pUsrPref->SetViewLayoutColumns(nColumns);
228 0 : pUsrPref->SetViewLayoutBookMode(bBookMode);
229 0 : SW_MOD()->ApplyUsrPref(*pUsrPref, 0, 0);
230 0 : pUsrPref->SetModified();
231 : }
232 : }
233 :
234 58 : const SwViewOption *pOpt = m_pWrtShell->GetViewOptions();
235 :
236 58 : if ( nColumns != pOpt->GetViewLayoutColumns() ||
237 0 : bBookMode != pOpt->IsViewLayoutBookMode() )
238 : {
239 58 : SwViewOption aOpt( *pOpt );
240 58 : aOpt.SetViewLayoutColumns( nColumns );
241 58 : aOpt.SetViewLayoutBookMode( bBookMode );
242 58 : m_pWrtShell->ApplyViewOptions( aOpt );
243 : }
244 :
245 58 : m_pVRuler->ForceUpdate();
246 58 : m_pHRuler->ForceUpdate();
247 :
248 : }
249 :
250 58 : m_pWrtShell->UnlockPaint();
251 58 : if( bUnLockView )
252 58 : m_pWrtShell->LockView( false );
253 :
254 58 : SfxBindings& rBnd = GetViewFrame()->GetBindings();
255 58 : rBnd.Invalidate( SID_ATTR_VIEWLAYOUT );
256 58 : rBnd.Invalidate( SID_ATTR_ZOOMSLIDER);
257 58 : }
258 :
259 : // Scrollbar - Handler
260 :
261 667950 : IMPL_LINK( SwView, WindowChildEventListener, VclSimpleEvent*, pEvent )
262 : {
263 : OSL_ENSURE( pEvent && pEvent->ISA( VclWindowEvent ), "Unknown WindowEvent!" );
264 333975 : if ( pEvent && pEvent->ISA( VclWindowEvent ) )
265 : {
266 333975 : VclWindowEvent *pVclEvent = static_cast< VclWindowEvent * >( pEvent );
267 : OSL_ENSURE( pVclEvent->GetWindow(), "Window???" );
268 333975 : vcl::Window* pChildWin = static_cast< vcl::Window* >( pVclEvent->GetData() );
269 :
270 333975 : switch ( pVclEvent->GetId() )
271 : {
272 : case VCLEVENT_WINDOW_HIDE:
273 1720 : if( pChildWin == m_pHScrollbar )
274 102 : ShowHScrollbar( false );
275 1618 : else if( pChildWin == m_pVScrollbar )
276 42 : ShowVScrollbar( false );
277 1720 : break;
278 : case VCLEVENT_WINDOW_SHOW:
279 56140 : if( pChildWin == m_pHScrollbar )
280 4640 : ShowHScrollbar( true );
281 51500 : else if( pChildWin == m_pVScrollbar )
282 4644 : ShowVScrollbar( true );
283 56140 : break;
284 : }
285 : }
286 :
287 333975 : return 0;
288 : }
289 :
290 9416 : int SwView::_CreateScrollbar( bool bHori )
291 : {
292 9416 : vcl::Window *pMDI = &GetViewFrame()->GetWindow();
293 9416 : SwScrollbar** ppScrollbar = bHori ? &m_pHScrollbar : &m_pVScrollbar;
294 :
295 : assert(!*ppScrollbar); //check beforehand!
296 :
297 9416 : *ppScrollbar = new SwScrollbar( pMDI, bHori );
298 9416 : UpdateScrollbars();
299 9416 : if(bHori)
300 4708 : (*ppScrollbar)->SetScrollHdl( LINK( this, SwView, EndScrollHdl ));
301 : else
302 4708 : (*ppScrollbar)->SetScrollHdl( LINK( this, SwView, ScrollHdl ));
303 9416 : (*ppScrollbar)->SetEndScrollHdl( LINK( this, SwView, EndScrollHdl ));
304 :
305 9416 : (*ppScrollbar)->EnableDrag( true );
306 :
307 9416 : if(GetWindow())
308 0 : InvalidateBorder();
309 :
310 9416 : if (!m_bShowAtResize)
311 0 : (*ppScrollbar)->ExtendedShow();
312 :
313 9416 : return 1;
314 : }
315 :
316 0 : IMPL_STATIC_LINK( SwView, MoveNavigationHdl, bool *, pbNext )
317 : {
318 0 : if ( !pbNext )
319 0 : return 0;
320 0 : const bool bNext = *pbNext;
321 0 : SwWrtShell& rSh = pThis->GetWrtShell();
322 0 : switch( m_nMoveType )
323 : {
324 : case NID_PGE:
325 0 : bNext ? pThis->PhyPageDown() : pThis->PhyPageUp();
326 0 : break;
327 : case NID_TBL :
328 0 : rSh.EnterStdMode();
329 0 : if(bNext)
330 0 : rSh.MoveTable(fnTableNext, fnTableStart);
331 : else
332 0 : rSh.MoveTable(fnTablePrev, fnTableStart);
333 0 : break;
334 : case NID_FRM :
335 : case NID_GRF:
336 : case NID_OLE:
337 : {
338 0 : sal_uInt16 eType = GOTOOBJ_FLY_FRM;
339 0 : if(m_nMoveType == NID_GRF)
340 0 : eType = GOTOOBJ_FLY_GRF;
341 0 : else if(m_nMoveType == NID_OLE)
342 0 : eType = GOTOOBJ_FLY_OLE;
343 : bool bSuccess = bNext ?
344 0 : rSh.GotoNextFly(eType) :
345 0 : rSh.GotoPrevFly(eType);
346 0 : if(bSuccess)
347 : {
348 0 : rSh.HideCrsr();
349 0 : rSh.EnterSelFrmMode();
350 : }
351 : }
352 0 : break;
353 : case NID_DRW :
354 : case NID_CTRL:
355 : rSh.GotoObj(bNext,
356 0 : m_nMoveType == NID_DRW ?
357 : GOTOOBJ_DRAW_SIMPLE :
358 0 : GOTOOBJ_DRAW_CONTROL);
359 0 : break;
360 : case NID_REG :
361 0 : rSh.EnterStdMode();
362 0 : if(bNext)
363 0 : rSh.MoveRegion(fnRegionNext, fnRegionStart);
364 : else
365 0 : rSh.MoveRegion(fnRegionPrev, fnRegionStart);
366 :
367 0 : break;
368 : case NID_BKM :
369 0 : rSh.EnterStdMode();
370 : pThis->GetViewFrame()->GetDispatcher()->Execute(bNext ?
371 : FN_NEXT_BOOKMARK :
372 0 : FN_PREV_BOOKMARK);
373 0 : break;
374 : case NID_OUTL:
375 0 : rSh.EnterStdMode();
376 0 : bNext ? rSh.GotoNextOutline() : rSh.GotoPrevOutline();
377 0 : break;
378 : case NID_SEL :
379 0 : bNext ? rSh.GoNextCrsr() : rSh.GoPrevCrsr();
380 0 : break;
381 : case NID_FTN:
382 0 : rSh.EnterStdMode();
383 : bNext ?
384 0 : rSh.GotoNextFtnAnchor() :
385 0 : rSh.GotoPrevFtnAnchor();
386 0 : break;
387 : case NID_MARK:
388 : {
389 : // unselect
390 0 : rSh.MoveCrsr();
391 0 : rSh.EnterStdMode();
392 :
393 : // collect navigator reminders
394 0 : IDocumentMarkAccess* const pMarkAccess = rSh.getIDocumentMarkAccess();
395 0 : ::std::vector< const ::sw::mark::IMark* > vNavMarks;
396 0 : for( IDocumentMarkAccess::const_iterator_t ppMark = pMarkAccess->getAllMarksBegin();
397 0 : ppMark != pMarkAccess->getAllMarksEnd();
398 : ppMark++)
399 : {
400 0 : if( IDocumentMarkAccess::GetType(**ppMark) == IDocumentMarkAccess::NAVIGATOR_REMINDER )
401 0 : vNavMarks.push_back(ppMark->get());
402 : }
403 :
404 : // move
405 0 : if(!vNavMarks.empty())
406 : {
407 0 : if(bNext)
408 : {
409 0 : m_nActMark++;
410 0 : if (m_nActMark >= MAX_MARKS || m_nActMark >= static_cast<sal_Int32>(vNavMarks.size()))
411 0 : m_nActMark = 0;
412 : }
413 : else
414 : {
415 0 : m_nActMark--;
416 0 : if (m_nActMark < 0 || m_nActMark >= static_cast<sal_Int32>(vNavMarks.size()))
417 0 : m_nActMark = vNavMarks.size()-1;
418 : }
419 0 : rSh.GotoMark(vNavMarks[m_nActMark]);
420 0 : }
421 : }
422 0 : break;
423 :
424 : case NID_POSTIT:
425 : {
426 0 : sw::sidebarwindows::SwSidebarWin* pPostIt = pThis->GetPostItMgr()->GetActiveSidebarWin();
427 0 : if (pPostIt)
428 0 : pThis->GetPostItMgr()->SetActiveSidebarWin(0);
429 0 : SwFieldType* pFldType = rSh.GetFldType(0, RES_POSTITFLD);
430 0 : if ( rSh.MoveFldType( pFldType, bNext ) )
431 0 : pThis->GetViewFrame()->GetDispatcher()->Execute(FN_POSTIT);
432 : else
433 : //first/last item
434 0 : pThis->GetPostItMgr()->SetActiveSidebarWin(pPostIt);
435 : }
436 0 : break;
437 :
438 : case NID_SRCH_REP:
439 0 : if(m_pSrchItem)
440 : {
441 0 : bool bBackward = m_pSrchItem->GetBackward();
442 0 : if(rSh.HasSelection() && !bNext == rSh.IsCrsrPtAtEnd())
443 0 : rSh.SwapPam();
444 0 : m_pSrchItem->SetBackward(!bNext);
445 0 : SfxRequest aReq(FN_REPEAT_SEARCH, SfxCallMode::SLOT, pThis->GetPool());
446 0 : pThis->ExecSearch(aReq);
447 0 : m_pSrchItem->SetBackward(bBackward);
448 : }
449 0 : break;
450 : case NID_INDEX_ENTRY:
451 0 : rSh.GotoNxtPrvTOXMark(bNext);
452 0 : break;
453 :
454 : case NID_TABLE_FORMULA:
455 0 : rSh.GotoNxtPrvTblFormula( bNext );
456 0 : break;
457 :
458 : case NID_TABLE_FORMULA_ERROR:
459 0 : rSh.GotoNxtPrvTblFormula( bNext, true );
460 0 : break;
461 : }
462 0 : pThis->m_pEditWin->GrabFocus();
463 0 : delete pbNext;
464 0 : return 0;
465 : }
466 :
467 4804 : int SwView::CreateTab()
468 : {
469 4804 : m_pHRuler->SetActive(GetFrame() && IsActive());
470 :
471 4804 : m_pHRuler->Show();
472 4804 : InvalidateBorder();
473 4804 : return 1;
474 : }
475 :
476 128 : int SwView::KillTab()
477 : {
478 128 : m_pHRuler->Hide();
479 128 : InvalidateBorder();
480 128 : return 1;
481 : }
482 :
483 0 : void SwView::ChangeTabMetric( FieldUnit eUnit )
484 : {
485 0 : if(m_pHRuler->GetUnit() != eUnit )
486 : {
487 0 : m_pHRuler->SetUnit( eUnit );
488 0 : m_pHRuler->Invalidate();
489 : }
490 0 : }
491 :
492 0 : void SwView::ChangeVRulerMetric( FieldUnit eUnit )
493 : {
494 0 : if(m_pVRuler->GetUnit() != eUnit)
495 : {
496 0 : m_pVRuler->SetUnit( eUnit );
497 0 : m_pVRuler->Invalidate();
498 : }
499 0 : }
500 :
501 4 : void SwView::GetVRulerMetric(FieldUnit& eToFill) const
502 : {
503 4 : eToFill = m_pVRuler->GetUnit();
504 4 : }
505 :
506 4 : void SwView::GetHRulerMetric(FieldUnit& eToFill) const
507 : {
508 4 : eToFill = m_pHRuler->GetUnit();
509 4 : }
510 :
511 4808 : int SwView::CreateVRuler()
512 : {
513 4808 : m_pHRuler->SetBorderPos( m_pVRuler->GetSizePixel().Width()-1 );
514 :
515 4808 : m_pVRuler->SetActive(GetFrame() && IsActive());
516 4808 : m_pVRuler->Show();
517 4808 : InvalidateBorder();
518 4808 : return 1;
519 : }
520 :
521 120 : int SwView::KillVRuler()
522 : {
523 120 : m_pVRuler->Hide();
524 120 : m_pHRuler->SetBorderPos( 0 );
525 120 : InvalidateBorder();
526 120 : return 1;
527 : }
528 :
529 0 : IMPL_LINK( SwView, ExecRulerClick, Ruler *, pRuler )
530 : {
531 0 : OUString sDefPage;
532 0 : switch( pRuler->GetClickType() )
533 : {
534 : case RULER_TYPE_DONTKNOW:
535 : case RULER_TYPE_OUTSIDE:
536 : case RULER_TYPE_INDENT:
537 : case RULER_TYPE_MARGIN1:
538 : case RULER_TYPE_MARGIN2:
539 0 : sDefPage = "indents";
540 0 : break;
541 : default:
542 0 : sDefPage = "tabs";
543 :
544 : }
545 :
546 0 : SfxStringItem aDefPage(SID_PARA_DLG, sDefPage);
547 : GetViewFrame()->GetDispatcher()->Execute( SID_PARA_DLG,
548 : SfxCallMode::SYNCHRON|SfxCallMode::RECORD,
549 0 : &aDefPage, 0L );
550 0 : return 0;
551 : }
552 :
553 0 : sal_uInt16 SwView::GetMoveType()
554 : {
555 0 : return m_nMoveType;
556 : }
557 :
558 0 : void SwView::SetMoveType(sal_uInt16 nSet)
559 : {
560 0 : m_nMoveType = nSet;
561 0 : }
562 :
563 0 : void SwView::SetActMark(sal_Int32 nSet)
564 : {
565 0 : m_nActMark = nSet;
566 0 : }
567 :
568 9446 : void SwView::ShowHScrollbar(bool bShow)
569 : {
570 : assert(m_pHScrollbar && "Scrollbar invalid");
571 9446 : m_pHScrollbar->ExtendedShow(bShow);
572 9446 : }
573 :
574 0 : bool SwView::IsHScrollbarVisible()const
575 : {
576 : assert(m_pHScrollbar && "Scrollbar invalid");
577 0 : return m_pHScrollbar->IsVisible( false ) || m_pHScrollbar->IsAuto();
578 : }
579 :
580 9396 : void SwView::ShowVScrollbar(bool bShow)
581 : {
582 : assert(m_pVScrollbar && "Scrollbar invalid");
583 9396 : m_pVScrollbar->ExtendedShow(bShow);
584 9396 : }
585 :
586 0 : bool SwView::IsVScrollbarVisible()const
587 : {
588 : assert(m_pVScrollbar && "Scrollbar invalid");
589 0 : return m_pVScrollbar->IsVisible( false );
590 : }
591 :
592 6 : void SwView::EnableHScrollbar(bool bEnable)
593 : {
594 6 : if (m_bHScrollbarEnabled != bEnable)
595 : {
596 4 : m_bHScrollbarEnabled = bEnable;
597 4 : InvalidateBorder();
598 : }
599 6 : }
600 :
601 6 : void SwView::EnableVScrollbar(bool bEnable)
602 : {
603 6 : if (m_bVScrollbarEnabled != bEnable)
604 : {
605 6 : m_bVScrollbarEnabled = bEnable;
606 6 : InvalidateBorder();
607 : }
608 276 : }
609 :
610 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|