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 915 : void SwView::SetZoom( SvxZoomType eZoomType, short nFactor, bool bViewOnly )
63 : {
64 915 : bool const bCrsrIsVisible(m_pWrtShell->IsCrsrVisible());
65 915 : _SetZoom( GetEditWin().GetOutputSizePixel(), eZoomType, nFactor, bViewOnly );
66 : // fdo#40465 force the cursor to stay in view whilst zooming
67 915 : if (bCrsrIsVisible)
68 881 : m_pWrtShell->ShowCrsr();
69 915 : }
70 :
71 928 : void SwView::_SetZoom( const Size &rEditSize, SvxZoomType eZoomType,
72 : short nFactor, bool bViewOnly )
73 : {
74 928 : bool bUnLockView = !m_pWrtShell->IsViewLocked();
75 928 : m_pWrtShell->LockView( true );
76 928 : m_pWrtShell->LockPaint();
77 :
78 : { // start of SwActContext scope
79 928 : SwActContext aActContext(m_pWrtShell);
80 :
81 928 : long nFac = nFactor;
82 :
83 928 : const bool bWeb = this->ISA(SwWebView);
84 928 : SwMasterUsrPref *pUsrPref = const_cast<SwMasterUsrPref*>(SW_MOD()->GetUsrPref(bWeb));
85 :
86 928 : const SwPageDesc &rDesc = m_pWrtShell->GetPageDesc( m_pWrtShell->GetCurPageDesc() );
87 928 : const SvxLRSpaceItem &rLRSpace = rDesc.GetMaster().GetLRSpace();
88 928 : const SwViewOption *pOpt = m_pWrtShell->GetViewOptions();
89 928 : long lLeftMargin = 0;
90 :
91 928 : if( eZoomType != SvxZoomType::PERCENT )
92 : {
93 30 : const bool bAutomaticViewLayout = 0 == pOpt->GetViewLayoutColumns();
94 :
95 30 : const SwRect aPageRect( m_pWrtShell->GetAnyCurRect( RECT_PAGE_CALC ) );
96 30 : const SwRect aRootRect( m_pWrtShell->GetAnyCurRect( RECT_PAGES_AREA ) );
97 30 : Size aPageSize( aPageRect.SSize() );
98 30 : Size aRootSize( aRootRect.SSize() );
99 :
100 : //mod #i6193# added sidebar width
101 30 : SwPostItMgr* pPostItMgr = GetPostItMgr();
102 30 : if (pPostItMgr->HasNotes() && pPostItMgr->ShowNotes())
103 0 : aPageSize.Width() += pPostItMgr->GetSidebarWidth() + pPostItMgr->GetSidebarBorderWidth();
104 :
105 30 : const MapMode aTmpMap( MAP_TWIP );
106 30 : const Size aWindowSize( GetEditWin().PixelToLogic( rEditSize, aTmpMap ) );
107 :
108 30 : 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 30 : if( SvxZoomType::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 30 : else if(SvxZoomType::WHOLEPAGE == eZoomType || SvxZoomType::PAGEWIDTH == eZoomType )
122 : {
123 26 : const long nOf = DOCUMENTBORDER * 2L;
124 26 : long nTmpWidth = bAutomaticViewLayout ? aPageSize.Width() : aRootSize.Width();
125 26 : nTmpWidth += nOf;
126 26 : aPageSize.Height() += nOf;
127 26 : nFac = aWindowSize.Width() * 100 / nTmpWidth;
128 :
129 26 : if ( SvxZoomType::WHOLEPAGE == eZoomType )
130 : {
131 6 : long nVisPercent = aWindowSize.Height() * 100 / aPageSize.Height();
132 6 : nFac = std::min( nFac, nVisPercent );
133 26 : }
134 : }
135 : else
136 : {
137 4 : const long nTmpWidth = bAutomaticViewLayout ? aPageSize.Width() : aRootSize.Width();
138 4 : nFac = aWindowSize.Width() * 100 / nTmpWidth;
139 30 : }
140 : }
141 :
142 928 : nFac = std::max( long( MINZOOM ), nFac );
143 928 : const sal_uInt16 nZoomFac = static_cast<sal_uInt16>(nFac);
144 :
145 1856 : SwViewOption aOpt( *pOpt );
146 928 : if ( !GetViewFrame()->GetFrame().IsInPlace() )
147 : {
148 : //Update MasterUsrPrefs and after that update the ViewOptions of the current View.
149 928 : 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 928 : if ( pOpt->GetZoom() != nZoomFac )
159 : {
160 914 : aOpt.SetZoom(nZoomFac);
161 914 : aOpt.SetReadonly(pOpt->IsReadonly());
162 914 : m_pWrtShell->ApplyViewOptions( aOpt );
163 : }
164 928 : if ( eZoomType != SvxZoomType::PERCENT )
165 : {
166 30 : Point aPos;
167 :
168 30 : if ( eZoomType == SvxZoomType::WHOLEPAGE )
169 6 : 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 24 : aPos.X() = lLeftMargin;
175 24 : const SwRect &rCharRect = m_pWrtShell->GetCharRect();
176 48 : if ( rCharRect.Top() > GetVisArea().Bottom() ||
177 24 : rCharRect.Bottom() < aPos.Y() )
178 0 : aPos.Y() = rCharRect.Top() - rCharRect.Height();
179 : else
180 24 : aPos.Y() = GetVisArea().Top();
181 : }
182 30 : SetVisArea( aPos );
183 : }
184 : // Compromise solution - Under certain circumstances SetZoom is called
185 : // in CalcVisAreas again and thus be set wrong values.
186 928 : const_cast<SwViewOption*>(m_pWrtShell->GetViewOptions())->SetZoomType( eZoomType );
187 928 : 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 1856 : const Fraction aFrac( nFac, 100 );
196 928 : m_pVRuler->SetZoom( aFrac );
197 928 : m_pVRuler->ForceUpdate();
198 928 : m_pHRuler->SetZoom( aFrac );
199 928 : m_pHRuler->ForceUpdate();
200 1856 : const_cast<SwViewOption*>(m_pWrtShell->GetViewOptions())->SetZoomType( eZoomType );
201 : } // end of SwActContext scope
202 :
203 928 : m_pWrtShell->UnlockPaint();
204 928 : if( bUnLockView )
205 915 : m_pWrtShell->LockView( false );
206 928 : }
207 :
208 182 : void SwView::SetViewLayout( sal_uInt16 nColumns, bool bBookMode, bool bViewOnly )
209 : {
210 182 : const bool bUnLockView = !m_pWrtShell->IsViewLocked();
211 182 : m_pWrtShell->LockView( true );
212 182 : m_pWrtShell->LockPaint();
213 :
214 : {
215 :
216 182 : SwActContext aActContext(m_pWrtShell);
217 :
218 182 : if ( !GetViewFrame()->GetFrame().IsInPlace() && !bViewOnly )
219 : {
220 0 : const bool bWeb = this->ISA(SwWebView);
221 0 : SwMasterUsrPref *pUsrPref = const_cast<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 182 : const SwViewOption *pOpt = m_pWrtShell->GetViewOptions();
235 :
236 194 : if ( nColumns != pOpt->GetViewLayoutColumns() ||
237 12 : bBookMode != pOpt->IsViewLayoutBookMode() )
238 : {
239 170 : SwViewOption aOpt( *pOpt );
240 170 : aOpt.SetViewLayoutColumns( nColumns );
241 170 : aOpt.SetViewLayoutBookMode( bBookMode );
242 170 : m_pWrtShell->ApplyViewOptions( aOpt );
243 : }
244 :
245 182 : m_pVRuler->ForceUpdate();
246 182 : m_pHRuler->ForceUpdate();
247 :
248 : }
249 :
250 182 : m_pWrtShell->UnlockPaint();
251 182 : if( bUnLockView )
252 182 : m_pWrtShell->LockView( false );
253 :
254 182 : SfxBindings& rBnd = GetViewFrame()->GetBindings();
255 182 : rBnd.Invalidate( SID_ATTR_VIEWLAYOUT );
256 182 : rBnd.Invalidate( SID_ATTR_ZOOMSLIDER);
257 182 : }
258 :
259 : // Scrollbar - Handler
260 :
261 360638 : IMPL_LINK( SwView, WindowChildEventListener, VclSimpleEvent*, pEvent )
262 : {
263 : OSL_ENSURE( pEvent && pEvent->ISA( VclWindowEvent ), "Unknown WindowEvent!" );
264 180319 : if ( pEvent && pEvent->ISA( VclWindowEvent ) )
265 : {
266 180319 : VclWindowEvent *pVclEvent = static_cast< VclWindowEvent * >( pEvent );
267 : OSL_ENSURE( pVclEvent->GetWindow(), "Window???" );
268 180319 : vcl::Window* pChildWin = static_cast< vcl::Window* >( pVclEvent->GetData() );
269 :
270 180319 : switch ( pVclEvent->GetId() )
271 : {
272 : case VCLEVENT_WINDOW_HIDE:
273 1289 : if( pChildWin == m_pHScrollbar )
274 184 : ShowHScrollbar( false );
275 1105 : else if( pChildWin == m_pVScrollbar )
276 25 : ShowVScrollbar( false );
277 1289 : break;
278 : case VCLEVENT_WINDOW_SHOW:
279 29651 : if( pChildWin == m_pHScrollbar )
280 2656 : ShowHScrollbar( true );
281 26995 : else if( pChildWin == m_pVScrollbar )
282 2672 : ShowVScrollbar( true );
283 29651 : break;
284 : }
285 : }
286 :
287 180319 : return 0;
288 : }
289 :
290 5522 : int SwView::_CreateScrollbar( bool bHori )
291 : {
292 5522 : vcl::Window *pMDI = &GetViewFrame()->GetWindow();
293 5522 : VclPtr<SwScrollbar>& ppScrollbar = bHori ? m_pHScrollbar : m_pVScrollbar;
294 :
295 : assert(!ppScrollbar.get()); //check beforehand!
296 :
297 5522 : ppScrollbar = VclPtr<SwScrollbar>::Create( pMDI, bHori );
298 5522 : UpdateScrollbars();
299 5522 : if(bHori)
300 2761 : ppScrollbar->SetScrollHdl( LINK( this, SwView, EndScrollHdl ));
301 : else
302 2761 : ppScrollbar->SetScrollHdl( LINK( this, SwView, ScrollHdl ));
303 5522 : ppScrollbar->SetEndScrollHdl( LINK( this, SwView, EndScrollHdl ));
304 :
305 5522 : ppScrollbar->EnableDrag( true );
306 :
307 5522 : if(GetWindow())
308 0 : InvalidateBorder();
309 :
310 5522 : if (!m_bShowAtResize)
311 0 : ppScrollbar->ExtendedShow();
312 :
313 5522 : return 1;
314 : }
315 :
316 0 : IMPL_LINK( SwView, MoveNavigationHdl, bool *, pbNext )
317 : {
318 0 : if ( !pbNext )
319 0 : return 0;
320 0 : const bool bNext = *pbNext;
321 0 : SwWrtShell& rSh = GetWrtShell();
322 0 : switch( m_nMoveType )
323 : {
324 : case NID_PGE:
325 0 : bNext ? PhyPageDown() : 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 : GotoObjFlags eType = GotoObjFlags::FlyFrm;
339 0 : if(m_nMoveType == NID_GRF)
340 0 : eType = GotoObjFlags::FlyGrf;
341 0 : else if(m_nMoveType == NID_OLE)
342 0 : eType = GotoObjFlags::FlyOLE;
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 : GotoObjFlags::DrawSimple :
358 0 : GotoObjFlags::DrawControl);
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 : 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.GotoNextFootnoteAnchor() :
385 0 : rSh.GotoPrevFootnoteAnchor();
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::MarkType::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 : rSh.EnterStdMode();
427 0 : sw::sidebarwindows::SwSidebarWin* pPostIt = GetPostItMgr()->GetActiveSidebarWin();
428 0 : if (pPostIt)
429 0 : GetPostItMgr()->SetActiveSidebarWin(0);
430 0 : SwFieldType* pFieldType = rSh.GetFieldType(0, RES_POSTITFLD);
431 0 : if ( rSh.MoveFieldType( pFieldType, bNext ) )
432 0 : GetViewFrame()->GetDispatcher()->Execute(FN_POSTIT);
433 : else
434 : //first/last item
435 0 : GetPostItMgr()->SetActiveSidebarWin(pPostIt);
436 : }
437 0 : break;
438 :
439 : case NID_SRCH_REP:
440 0 : if(m_pSrchItem)
441 : {
442 0 : bool bBackward = m_pSrchItem->GetBackward();
443 0 : if (rSh.HasSelection() && bNext != rSh.IsCrsrPtAtEnd())
444 0 : rSh.SwapPam();
445 0 : m_pSrchItem->SetBackward(!bNext);
446 0 : SfxRequest aReq(FN_REPEAT_SEARCH, SfxCallMode::SLOT, GetPool());
447 0 : ExecSearch(aReq);
448 0 : m_pSrchItem->SetBackward(bBackward);
449 : }
450 0 : break;
451 : case NID_INDEX_ENTRY:
452 0 : rSh.GotoNxtPrvTOXMark(bNext);
453 0 : break;
454 :
455 : case NID_TABLE_FORMULA:
456 0 : rSh.GotoNxtPrvTableFormula( bNext );
457 0 : break;
458 :
459 : case NID_TABLE_FORMULA_ERROR:
460 0 : rSh.GotoNxtPrvTableFormula( bNext, true );
461 0 : break;
462 : }
463 0 : m_pEditWin->GrabFocus();
464 0 : delete pbNext;
465 0 : return 0;
466 : }
467 :
468 2787 : int SwView::CreateTab()
469 : {
470 2787 : m_pHRuler->SetActive(GetFrame() && IsActive());
471 :
472 2787 : m_pHRuler->Show();
473 2787 : InvalidateBorder();
474 2787 : return 1;
475 : }
476 :
477 86 : int SwView::KillTab()
478 : {
479 86 : m_pHRuler->Hide();
480 86 : InvalidateBorder();
481 86 : return 1;
482 : }
483 :
484 0 : void SwView::ChangeTabMetric( FieldUnit eUnit )
485 : {
486 0 : if(m_pHRuler->GetUnit() != eUnit )
487 : {
488 0 : m_pHRuler->SetUnit( eUnit );
489 0 : m_pHRuler->Invalidate();
490 : }
491 0 : }
492 :
493 0 : void SwView::ChangeVRulerMetric( FieldUnit eUnit )
494 : {
495 0 : if(m_pVRuler->GetUnit() != eUnit)
496 : {
497 0 : m_pVRuler->SetUnit( eUnit );
498 0 : m_pVRuler->Invalidate();
499 : }
500 0 : }
501 :
502 2 : void SwView::GetVRulerMetric(FieldUnit& eToFill) const
503 : {
504 2 : eToFill = m_pVRuler->GetUnit();
505 2 : }
506 :
507 2 : void SwView::GetHRulerMetric(FieldUnit& eToFill) const
508 : {
509 2 : eToFill = m_pHRuler->GetUnit();
510 2 : }
511 :
512 23 : int SwView::CreateVRuler()
513 : {
514 23 : m_pHRuler->SetBorderPos( m_pVRuler->GetSizePixel().Width()-1 );
515 :
516 23 : m_pVRuler->SetActive(GetFrame() && IsActive());
517 23 : m_pVRuler->Show();
518 23 : InvalidateBorder();
519 23 : return 1;
520 : }
521 :
522 90 : int SwView::KillVRuler()
523 : {
524 90 : m_pVRuler->Hide();
525 90 : m_pHRuler->SetBorderPos( 0 );
526 90 : InvalidateBorder();
527 90 : return 1;
528 : }
529 :
530 0 : IMPL_LINK( SwView, ExecRulerClick, Ruler *, pRuler )
531 : {
532 0 : OUString sDefPage;
533 0 : switch( pRuler->GetClickType() )
534 : {
535 : case RULER_TYPE_DONTKNOW:
536 : case RULER_TYPE_OUTSIDE:
537 : case RULER_TYPE_INDENT:
538 : case RULER_TYPE_MARGIN1:
539 : case RULER_TYPE_MARGIN2:
540 0 : sDefPage = "indents";
541 0 : break;
542 : default:
543 0 : sDefPage = "tabs";
544 :
545 : }
546 :
547 0 : SfxStringItem aDefPage(SID_PARA_DLG, sDefPage);
548 : GetViewFrame()->GetDispatcher()->Execute( SID_PARA_DLG,
549 : SfxCallMode::SYNCHRON|SfxCallMode::RECORD,
550 0 : &aDefPage, 0L );
551 0 : return 0;
552 : }
553 :
554 0 : sal_uInt16 SwView::GetMoveType()
555 : {
556 0 : return m_nMoveType;
557 : }
558 :
559 11 : void SwView::SetMoveType(sal_uInt16 nSet)
560 : {
561 11 : m_nMoveType = nSet;
562 11 : }
563 :
564 0 : void SwView::SetActMark(sal_Int32 nSet)
565 : {
566 0 : m_nActMark = nSet;
567 0 : }
568 :
569 5599 : void SwView::ShowHScrollbar(bool bShow)
570 : {
571 : assert(m_pHScrollbar && "Scrollbar invalid");
572 5599 : m_pHScrollbar->ExtendedShow(bShow);
573 5599 : }
574 :
575 0 : bool SwView::IsHScrollbarVisible()const
576 : {
577 : assert(m_pHScrollbar && "Scrollbar invalid");
578 0 : return m_pHScrollbar->IsVisible( false ) || m_pHScrollbar->IsAuto();
579 : }
580 :
581 5459 : void SwView::ShowVScrollbar(bool bShow)
582 : {
583 : assert(m_pVScrollbar && "Scrollbar invalid");
584 5459 : m_pVScrollbar->ExtendedShow(bShow);
585 5459 : }
586 :
587 0 : bool SwView::IsVScrollbarVisible()const
588 : {
589 : assert(m_pVScrollbar && "Scrollbar invalid");
590 0 : return m_pVScrollbar->IsVisible( false );
591 : }
592 :
593 3 : void SwView::EnableHScrollbar(bool bEnable)
594 : {
595 3 : if (m_bHScrollbarEnabled != bEnable)
596 : {
597 2 : m_bHScrollbarEnabled = bEnable;
598 2 : InvalidateBorder();
599 : }
600 3 : }
601 :
602 3 : void SwView::EnableVScrollbar(bool bEnable)
603 : {
604 3 : if (m_bVScrollbarEnabled != bEnable)
605 : {
606 3 : m_bVScrollbarEnabled = bEnable;
607 3 : InvalidateBorder();
608 : }
609 180 : }
610 :
611 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|