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