xref: /trunk/main/editeng/source/outliner/outlin2.cxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_editeng.hxx"
30 
31 #include <svl/intitem.hxx>
32 #include <editeng/editeng.hxx>
33 #include <editeng/editview.hxx>
34 #include <editeng/editdata.hxx>
35 #include <editeng/eerdll.hxx>
36 #include <editeng/lrspitem.hxx>
37 #include <editeng/fhgtitem.hxx>
38 #include <tools/list.hxx>
39 #include <svl/style.hxx>
40 #include <vcl/mapmod.hxx>
41 
42 #include <editeng/forbiddencharacterstable.hxx>
43 
44 #define _OUTLINER_CXX
45 
46 #include <editeng/outliner.hxx>
47 #include <paralist.hxx>
48 #include <editeng/outlobj.hxx>
49 #include <outleeng.hxx>
50 #include <outlundo.hxx>
51 #include <editeng/eeitem.hxx>
52 #include <editeng/editstat.hxx>
53 
54 DBG_NAMEEX(Outliner)
55 
56 using namespace ::com::sun::star::uno;
57 using namespace ::com::sun::star::linguistic2;
58 
59 // =====================================================================
60 // ======================   Einfache Durchreicher =======================
61 // ======================================================================
62 
63 void Outliner::SetUpdateMode( sal_Bool bUpdate )
64 {
65 	DBG_CHKTHIS(Outliner,0);
66 	pEditEngine->SetUpdateMode( bUpdate );
67 }
68 
69 
70 sal_Bool Outliner::GetUpdateMode() const
71 {
72 	DBG_CHKTHIS(Outliner,0);
73 	return pEditEngine->GetUpdateMode();
74 }
75 
76 const SfxItemSet& Outliner::GetEmptyItemSet() const
77 {
78 	DBG_CHKTHIS(Outliner,0);
79 	return pEditEngine->GetEmptyItemSet();
80 }
81 
82 void Outliner::EnableUndo( sal_Bool bEnable )
83 {
84 	DBG_CHKTHIS(Outliner,0);
85 	pEditEngine->EnableUndo( bEnable );
86 }
87 
88 sal_Bool Outliner::IsUndoEnabled() const
89 {
90 	DBG_CHKTHIS(Outliner,0);
91 	return pEditEngine->IsUndoEnabled();
92 }
93 
94 MapMode	Outliner::GetRefMapMode() const
95 {
96 	DBG_CHKTHIS(Outliner,0);
97 	return pEditEngine->GetRefMapMode();
98 }
99 
100 void Outliner::SetRefMapMode( const MapMode& rMMode )
101 {
102 	DBG_CHKTHIS(Outliner,0);
103 	pEditEngine->SetRefMapMode( rMMode );
104 }
105 
106 void Outliner::SetBackgroundColor( const Color& rColor )
107 {
108 	DBG_CHKTHIS(Outliner,0);
109 	pEditEngine->SetBackgroundColor( rColor );
110 }
111 
112 Color Outliner::GetBackgroundColor() const
113 {
114 	DBG_CHKTHIS(Outliner,0);
115 	return pEditEngine->GetBackgroundColor();
116 }
117 
118 
119 void Outliner::ClearModifyFlag()
120 {
121 	DBG_CHKTHIS(Outliner,0);
122 	pEditEngine->ClearModifyFlag();
123 }
124 
125 sal_Bool Outliner::IsModified() const
126 {
127 	DBG_CHKTHIS(Outliner,0);
128 	return pEditEngine->IsModified();
129 }
130 
131 sal_uLong Outliner::GetTextHeight() const
132 {
133 	DBG_CHKTHIS(Outliner,0);
134 	return pEditEngine->GetTextHeight();
135 }
136 
137 void Outliner::SetModifyHdl( const Link& rLink )
138 {
139 	DBG_CHKTHIS(Outliner,0);
140     pEditEngine->SetModifyHdl( rLink );
141 }
142 
143 Link Outliner::GetModifyHdl() const
144 {
145 	DBG_CHKTHIS(Outliner,0);
146 	return pEditEngine->GetModifyHdl();
147 }
148 
149 void Outliner::SetNotifyHdl( const Link& rLink )
150 {
151 	DBG_CHKTHIS(Outliner,0);
152     pEditEngine->aOutlinerNotifyHdl = rLink;
153 
154     if ( rLink.IsSet() )
155 	    pEditEngine->SetNotifyHdl( LINK( this, Outliner, EditEngineNotifyHdl ) );
156     else
157 	    pEditEngine->SetNotifyHdl( Link() );
158 
159 }
160 
161 Link Outliner::GetNotifyHdl() const
162 {
163 	DBG_CHKTHIS(Outliner,0);
164 	return pEditEngine->aOutlinerNotifyHdl;
165 }
166 
167 void Outliner::SetStatusEventHdl( const Link& rLink )
168 {
169 	DBG_CHKTHIS(Outliner,0);
170 	pEditEngine->SetStatusEventHdl( rLink );
171 }
172 
173 Link Outliner::GetStatusEventHdl() const
174 {
175 	DBG_CHKTHIS(Outliner,0);
176 	return pEditEngine->GetStatusEventHdl();
177 }
178 
179 void Outliner::SetDefTab( sal_uInt16 nTab )
180 {
181 	DBG_CHKTHIS(Outliner,0);
182 	pEditEngine->SetDefTab( nTab );
183 }
184 
185 sal_uInt16 Outliner::GetDefTab() const
186 {
187 	DBG_CHKTHIS(Outliner,0);
188 	return pEditEngine->GetDefTab();
189 }
190 
191 sal_Bool Outliner::IsFlatMode() const
192 {
193 	DBG_CHKTHIS(Outliner,0);
194 	return pEditEngine->IsFlatMode();
195 }
196 
197 sal_Bool Outliner::UpdateFields()
198 {
199 	DBG_CHKTHIS(Outliner,0);
200 	return pEditEngine->UpdateFields();
201 }
202 
203 void Outliner::RemoveFields( sal_Bool bKeepFieldText, TypeId aType )
204 {
205 	DBG_CHKTHIS(Outliner,0);
206 	pEditEngine->RemoveFields( bKeepFieldText, aType );
207 }
208 
209 void Outliner::SetWordDelimiters( const String& rDelimiters )
210 {
211 	DBG_CHKTHIS(Outliner,0);
212 	pEditEngine->SetWordDelimiters( rDelimiters );
213 }
214 
215 String Outliner::GetWordDelimiters() const
216 {
217 	DBG_CHKTHIS(Outliner,0);
218 	return pEditEngine->GetWordDelimiters();
219 }
220 
221 String Outliner::GetWord( sal_uInt16 nPara, sal_uInt16 nIndex )
222 {
223 	DBG_CHKTHIS(Outliner,0);
224 	return pEditEngine->GetWord( nPara, nIndex );
225 }
226 
227 void Outliner::Draw( OutputDevice* pOutDev, const Rectangle& rOutRect )
228 {
229 	DBG_CHKTHIS(Outliner,0);
230 	pEditEngine->Draw( pOutDev, rOutRect );
231 }
232 
233 void Outliner::Draw( OutputDevice* pOutDev, const Rectangle& rOutRect, const Point& rStartDocPos )
234 {
235 	DBG_CHKTHIS(Outliner,0);
236 	pEditEngine->Draw( pOutDev, rOutRect, rStartDocPos );
237 }
238 
239 
240 void Outliner::Draw( OutputDevice* pOutDev, const Point& rStartPos, short nOrientation )
241 {
242 	DBG_CHKTHIS(Outliner,0);
243 	pEditEngine->Draw( pOutDev, rStartPos, nOrientation );
244 }
245 
246 void Outliner::SetPaperSize( const Size& rSize )
247 {
248 	DBG_CHKTHIS(Outliner,0);
249 	pEditEngine->SetPaperSize( rSize );
250 }
251 
252 const Size& Outliner::GetPaperSize() const
253 {
254 	DBG_CHKTHIS(Outliner,0);
255 	return pEditEngine->GetPaperSize();
256 }
257 
258 void Outliner::SetPolygon( const basegfx::B2DPolyPolygon& rPolyPolygon )
259 {
260 	DBG_CHKTHIS( Outliner, 0 );
261 	pEditEngine->SetPolygon( rPolyPolygon );
262 }
263 
264 void Outliner::SetPolygon( const basegfx::B2DPolyPolygon& rPolyPolygon, const basegfx::B2DPolyPolygon* pLinePolyPolygon)
265 {
266 	DBG_CHKTHIS( Outliner, 0 );
267 	pEditEngine->SetPolygon( rPolyPolygon, pLinePolyPolygon);
268 }
269 
270 void Outliner::ClearPolygon()
271 {
272 	DBG_CHKTHIS( Outliner, 0 );
273 	pEditEngine->ClearPolygon();
274 }
275 
276 const PolyPolygon* Outliner::GetPolygon()
277 {
278 	DBG_CHKTHIS( Outliner, 0 );
279 	return pEditEngine->GetPolygon();
280 }
281 
282 const Size& Outliner::GetMinAutoPaperSize() const
283 {
284 	DBG_CHKTHIS(Outliner,0);
285 	return pEditEngine->GetMinAutoPaperSize();
286 }
287 
288 void Outliner::SetMinAutoPaperSize( const Size& rSz )
289 {
290 	DBG_CHKTHIS(Outliner,0);
291 	pEditEngine->SetMinAutoPaperSize( rSz );
292 }
293 
294 const Size& Outliner::GetMaxAutoPaperSize() const
295 {
296 	DBG_CHKTHIS(Outliner,0);
297 	return pEditEngine->GetMaxAutoPaperSize();
298 }
299 
300 void Outliner::SetMaxAutoPaperSize( const Size& rSz )
301 {
302 	DBG_CHKTHIS(Outliner,0);
303 	pEditEngine->SetMaxAutoPaperSize( rSz );
304 }
305 
306 sal_Bool Outliner::IsExpanded( Paragraph* pPara ) const
307 {
308 	DBG_CHKTHIS(Outliner,0);
309 	return pParaList->HasVisibleChilds( pPara );
310 }
311 
312 Paragraph* Outliner::GetParent( Paragraph* pParagraph ) const
313 {
314 	DBG_CHKTHIS(Outliner,0);
315 	return pParaList->GetParent( pParagraph );
316 }
317 
318 sal_uLong Outliner::GetChildCount( Paragraph* pParent ) const
319 {
320 	DBG_CHKTHIS(Outliner,0);
321 	return pParaList->GetChildCount( pParent );
322 }
323 
324 Size Outliner::CalcTextSize()
325 {
326 	DBG_CHKTHIS(Outliner,0);
327 	return Size(pEditEngine->CalcTextWidth(),pEditEngine->GetTextHeight());
328 }
329 
330 Point Outliner::GetDocPos( Paragraph* pPara )
331 {
332 	DBG_CHKTHIS(Outliner,0);
333 	return pEditEngine->GetDocPosTopLeft( (sal_uInt16)pParaList->GetAbsPos( pPara ) );
334 }
335 
336 void Outliner::SetStyleSheetPool( SfxStyleSheetPool* pSPool )
337 {
338 	DBG_CHKTHIS(Outliner,0);
339 	pEditEngine->SetStyleSheetPool( pSPool );
340 }
341 
342 SfxStyleSheetPool* Outliner::GetStyleSheetPool()
343 {
344 	DBG_CHKTHIS(Outliner,0);
345 	return pEditEngine->GetStyleSheetPool();
346 }
347 
348 SfxStyleSheet* Outliner::GetStyleSheet( sal_uLong nPara )
349 {
350 	DBG_CHKTHIS(Outliner,0);
351 	return pEditEngine->GetStyleSheet( (sal_uInt16)nPara );
352 }
353 
354 sal_Bool Outliner::IsInSelectionMode() const
355 {
356 	DBG_CHKTHIS(Outliner,0);
357 	return pEditEngine->IsInSelectionMode();
358 }
359 
360 void Outliner::SetControlWord( sal_uLong nWord )
361 {
362 	DBG_CHKTHIS(Outliner,0);
363 	pEditEngine->SetControlWord( nWord );
364 }
365 
366 sal_uLong Outliner::GetControlWord() const
367 {
368 	DBG_CHKTHIS(Outliner,0);
369 	return pEditEngine->GetControlWord();
370 }
371 
372 void Outliner::SetAsianCompressionMode( sal_uInt16 n )
373 {
374 	DBG_CHKTHIS(Outliner,0);
375 	pEditEngine->SetAsianCompressionMode( n );
376 }
377 
378 sal_uInt16 Outliner::GetAsianCompressionMode() const
379 {
380 	DBG_CHKTHIS(Outliner,0);
381 	return pEditEngine->GetAsianCompressionMode();
382 }
383 
384 void Outliner::SetKernAsianPunctuation( sal_Bool b )
385 {
386 	DBG_CHKTHIS(Outliner,0);
387 	pEditEngine->SetKernAsianPunctuation( b );
388 }
389 
390 sal_Bool Outliner::IsKernAsianPunctuation() const
391 {
392 	DBG_CHKTHIS(Outliner,0);
393 	return pEditEngine->IsKernAsianPunctuation();
394 }
395 
396 void Outliner::SetAddExtLeading( sal_Bool bExtLeading )
397 {
398     DBG_CHKTHIS(Outliner,0);
399     pEditEngine->SetAddExtLeading( bExtLeading );
400 }
401 
402 sal_Bool Outliner::IsAddExtLeading() const
403 {
404     DBG_CHKTHIS(Outliner,0);
405     return pEditEngine->IsAddExtLeading();
406 }
407 
408 void Outliner::UndoActionStart( sal_uInt16 nId )
409 {
410 	DBG_CHKTHIS(Outliner,0);
411 	pEditEngine->UndoActionStart( nId );
412 }
413 
414 void Outliner::UndoActionEnd( sal_uInt16 nId )
415 {
416 	DBG_CHKTHIS(Outliner,0);
417 	pEditEngine->UndoActionEnd( nId );
418 }
419 
420 void Outliner::InsertUndo( EditUndo* pUndo )
421 {
422 #ifndef SVX_LIGHT
423 	DBG_CHKTHIS(Outliner,0);
424 	pEditEngine->GetUndoManager().AddUndoAction( pUndo, sal_False );
425 #endif
426 }
427 
428 sal_Bool Outliner::IsInUndo()
429 {
430 	DBG_CHKTHIS(Outliner,0);
431 	return pEditEngine->IsInUndo();
432 }
433 
434 sal_uLong Outliner::GetLineCount( sal_uLong nParagraph ) const
435 {
436 	DBG_CHKTHIS(Outliner,0);
437 	return pEditEngine->GetLineCount( (sal_uInt16)nParagraph );
438 }
439 
440 sal_uInt16 Outliner::GetLineLen( sal_uLong nParagraph, sal_uInt16 nLine ) const
441 {
442 	DBG_CHKTHIS(Outliner,0);
443 	return pEditEngine->GetLineLen( (sal_uInt16)nParagraph, nLine );
444 }
445 
446 sal_uLong Outliner::GetLineHeight( sal_uLong nParagraph, sal_uLong nLine )
447 {
448 	DBG_CHKTHIS(Outliner,0);
449 	return pEditEngine->GetLineHeight( (sal_uInt16)nParagraph, (sal_uInt16)nLine );
450 }
451 
452 void Outliner::QuickRemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich )
453 {
454 	DBG_CHKTHIS(Outliner,0);
455 	pEditEngine->QuickRemoveCharAttribs( nPara, nWhich );
456 }
457 
458 EESpellState Outliner::HasSpellErrors()
459 {
460 	DBG_CHKTHIS(Outliner,0);
461 	return pEditEngine->HasSpellErrors();
462 }
463 
464 sal_Bool Outliner::HasConvertibleTextPortion( LanguageType nLang )
465 {
466     DBG_CHKTHIS(Outliner,0);
467     return pEditEngine->HasConvertibleTextPortion( nLang );
468 }
469 
470 sal_Bool Outliner::ConvertNextDocument()
471 {
472     DBG_CHKTHIS(Outliner,0);
473     return sal_False;
474 }
475 
476 void Outliner::SetDefaultLanguage( LanguageType eLang )
477 {
478 	DBG_CHKTHIS(Outliner,0);
479 	pEditEngine->SetDefaultLanguage( eLang );
480 }
481 
482 LanguageType Outliner::GetDefaultLanguage() const
483 {
484 	DBG_CHKTHIS(Outliner,0);
485 	return pEditEngine->GetDefaultLanguage();
486 }
487 
488 sal_Bool Outliner::HasOnlineSpellErrors() const
489 {
490 	DBG_CHKTHIS(Outliner,0);
491 	return pEditEngine->HasOnlineSpellErrors();
492 }
493 
494 void Outliner::CompleteOnlineSpelling()
495 {
496 	DBG_CHKTHIS(Outliner,0);
497 	pEditEngine->CompleteOnlineSpelling();
498 }
499 
500 sal_Bool Outliner::HasText( const SvxSearchItem& rSearchItem )
501 {
502 	DBG_CHKTHIS(Outliner,0);
503 	return pEditEngine->HasText( rSearchItem );
504 }
505 
506 void Outliner::SetEditTextObjectPool( SfxItemPool* pPool )
507 {
508 	DBG_CHKTHIS(Outliner,0);
509 	pEditEngine->SetEditTextObjectPool( pPool );
510 }
511 
512 SfxItemPool* Outliner::GetEditTextObjectPool() const
513 {
514 	DBG_CHKTHIS(Outliner,0);
515 	return pEditEngine->GetEditTextObjectPool();
516 }
517 
518 sal_Bool Outliner::SpellNextDocument()
519 {
520 	DBG_CHKTHIS(Outliner,0);
521 	return sal_False;
522 }
523 
524 
525 void Outliner::SetSpeller( Reference< XSpellChecker1 > &xSpeller )
526 {
527 	DBG_CHKTHIS(Outliner,0);
528 	pEditEngine->SetSpeller( xSpeller );
529 }
530 Reference< XSpellChecker1 > Outliner::GetSpeller()
531 {
532 	DBG_CHKTHIS(Outliner,0);
533 	return pEditEngine->GetSpeller();
534 }
535 
536 void Outliner::SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars )
537 {
538 	DBG_CHKTHIS(Outliner,0);
539 	pEditEngine->SetForbiddenCharsTable( xForbiddenChars );
540 }
541 
542 vos::ORef<SvxForbiddenCharactersTable> Outliner::GetForbiddenCharsTable() const
543 {
544 	DBG_CHKTHIS(Outliner,0);
545 	return pEditEngine->GetForbiddenCharsTable();
546 }
547 
548 
549 Reference< XHyphenator > Outliner::GetHyphenator() const
550 {
551 	DBG_CHKTHIS(Outliner,0);
552 	return pEditEngine->GetHyphenator();
553 }
554 
555 void Outliner::SetHyphenator( Reference< XHyphenator >& xHyph )
556 {
557 	DBG_CHKTHIS(Outliner,0);
558 	pEditEngine->SetHyphenator( xHyph );
559 }
560 
561 OutputDevice* Outliner::GetRefDevice() const
562 {
563 	DBG_CHKTHIS(Outliner,0);
564 	return pEditEngine->GetRefDevice();
565 }
566 
567 sal_uInt16 Outliner::GetFirstLineOffset( sal_uLong nParagraph )
568 {
569 	DBG_CHKTHIS(Outliner,0);
570 	return pEditEngine->GetFirstLineOffset( (sal_uInt16)nParagraph );
571 }
572 
573 sal_uLong Outliner::GetTextHeight( sal_uLong nParagraph ) const
574 {
575 	DBG_CHKTHIS(Outliner,0);
576 	return pEditEngine->GetTextHeight((sal_uInt16)nParagraph );
577 }
578 
579 Point Outliner::GetDocPos( const Point& rPaperPos ) const
580 {
581 	DBG_CHKTHIS(Outliner,0);
582 	return pEditEngine->GetDocPos( rPaperPos );
583 }
584 
585 Point Outliner::GetDocPosTopLeft( sal_uLong nParagraph )
586 {
587 	DBG_CHKTHIS(Outliner,0);
588 	return pEditEngine->GetDocPosTopLeft( (sal_uInt16)nParagraph );
589 }
590 
591 sal_Bool Outliner::IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder )
592 {
593     return IsTextPos( rPaperPos, nBorder, NULL );
594 }
595 
596 sal_Bool Outliner::IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder, sal_Bool* pbBullet )
597 {
598 	DBG_CHKTHIS(Outliner,0);
599     if ( pbBullet)
600         *pbBullet = sal_False;
601 	sal_Bool bTextPos = pEditEngine->IsTextPos( rPaperPos, nBorder );
602 	if ( !bTextPos )
603 	{
604 		Point aDocPos = GetDocPos( rPaperPos );
605 		sal_uInt16 nPara = pEditEngine->FindParagraph( aDocPos.Y() );
606 		if ( ( nPara != EE_PARA_NOT_FOUND ) && ImplHasBullet( nPara ) )
607 		{
608 			Rectangle aBulArea = ImpCalcBulletArea( nPara, sal_True, sal_True );
609 			if ( aBulArea.IsInside( rPaperPos ) )
610 			{
611 				bTextPos = sal_True;
612                 if ( pbBullet)
613                     *pbBullet = sal_True;
614 			}
615 		}
616 	}
617 
618 	return bTextPos;
619 }
620 
621 void Outliner::QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel )
622 {
623 	DBG_CHKTHIS(Outliner,0);
624 	pEditEngine->QuickSetAttribs( rSet, rSel );
625 }
626 
627 void Outliner::QuickInsertText( const XubString& rText, const ESelection& rSel )
628 {
629 	bFirstParaIsEmpty = sal_False;
630 	pEditEngine->QuickInsertText( rText, rSel );
631 }
632 
633 void Outliner::QuickDelete( const ESelection& rSel )
634 {
635 	bFirstParaIsEmpty = sal_False;
636 	pEditEngine->QuickDelete( rSel );
637 }
638 
639 void Outliner::QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel )
640 {
641 	DBG_CHKTHIS(Outliner,0);
642 	bFirstParaIsEmpty = sal_False;
643 	pEditEngine->QuickInsertField( rFld, rSel );
644 }
645 
646 void Outliner::QuickInsertLineBreak( const ESelection& rSel )
647 {
648 	DBG_CHKTHIS(Outliner,0);
649 	bFirstParaIsEmpty = sal_False;
650 	pEditEngine->QuickInsertLineBreak( rSel );
651 }
652 
653 void Outliner::QuickFormatDoc( sal_Bool bFull )
654 {
655 	DBG_CHKTHIS(Outliner,0);
656 	pEditEngine->QuickFormatDoc( bFull );
657 }
658 
659 void Outliner::SetGlobalCharStretching( sal_uInt16 nX, sal_uInt16 nY )
660 {
661 	DBG_CHKTHIS(Outliner,0);
662 	pEditEngine->SetGlobalCharStretching( nX, nY );
663 }
664 
665 void Outliner::GetGlobalCharStretching( sal_uInt16& rX, sal_uInt16& rY )
666 {
667 	DBG_CHKTHIS(Outliner,0);
668 	pEditEngine->GetGlobalCharStretching( rX, rY );
669 }
670 
671 
672 void Outliner::DoStretchChars( sal_uInt16 nX, sal_uInt16 nY )
673 {
674 	DBG_CHKTHIS(Outliner,0);
675 	pEditEngine->DoStretchChars( nX, nY );
676 }
677 
678 void Outliner::EraseVirtualDevice()
679 {
680 	DBG_CHKTHIS(Outliner,0);
681 	pEditEngine->EraseVirtualDevice();
682 }
683 
684 void Outliner::SetBigTextObjectStart( sal_uInt16 nStartAtPortionCount )
685 {
686 	DBG_CHKTHIS(Outliner,0);
687 	pEditEngine->SetBigTextObjectStart( nStartAtPortionCount );
688 }
689 
690 sal_uInt16 Outliner::GetBigTextObjectStart() const
691 {
692 	DBG_CHKTHIS(Outliner,0);
693 	return pEditEngine->GetBigTextObjectStart();
694 }
695 
696 sal_Bool Outliner::ShouldCreateBigTextObject() const
697 {
698 	DBG_CHKTHIS(Outliner,0);
699 	return pEditEngine->ShouldCreateBigTextObject();
700 }
701 
702 void Outliner::SetVertical( sal_Bool b )
703 {
704 	DBG_CHKTHIS(Outliner,0);
705 	pEditEngine->SetVertical( b );
706 }
707 
708 sal_Bool Outliner::IsVertical() const
709 {
710 	DBG_CHKTHIS(Outliner,0);
711 	return pEditEngine->IsVertical();
712 }
713 
714 void Outliner::SetFixedCellHeight( sal_Bool bUseFixedCellHeight )
715 {
716 	DBG_CHKTHIS(Outliner,0);
717 	pEditEngine->SetFixedCellHeight( bUseFixedCellHeight );
718 }
719 
720 sal_Bool Outliner::IsFixedCellHeight() const
721 {
722 	DBG_CHKTHIS(Outliner,0);
723 	return pEditEngine->IsFixedCellHeight();
724 }
725 
726 
727 void Outliner::SetDefaultHorizontalTextDirection( EEHorizontalTextDirection eHTextDir )
728 {
729 	DBG_CHKTHIS(Outliner,0);
730 	pEditEngine->SetDefaultHorizontalTextDirection( eHTextDir );
731 }
732 
733 EEHorizontalTextDirection Outliner::GetDefaultHorizontalTextDirection() const
734 {
735 	return pEditEngine->GetDefaultHorizontalTextDirection();
736 }
737 
738 sal_uInt16 Outliner::GetScriptType( const ESelection& rSelection ) const
739 {
740 	DBG_CHKTHIS(Outliner,0);
741 	return pEditEngine->GetScriptType( rSelection );
742 }
743 
744 LanguageType Outliner::GetLanguage( sal_uInt16 nPara, sal_uInt16 nPos ) const
745 {
746 	DBG_CHKTHIS(Outliner,0);
747 	return pEditEngine->GetLanguage( nPara, nPos );
748 }
749 
750 void Outliner::RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich )
751 {
752 	DBG_CHKTHIS(Outliner,0);
753 	pEditEngine->RemoveAttribs( rSelection, bRemoveParaAttribs, nWhich );
754 }
755 
756 void Outliner::EnableAutoColor( sal_Bool b )
757 {
758 	DBG_CHKTHIS(Outliner,0);
759 	pEditEngine->EnableAutoColor( b );
760 }
761 
762 sal_Bool Outliner::IsAutoColorEnabled() const
763 {
764 	DBG_CHKTHIS(Outliner,0);
765 	return pEditEngine->IsAutoColorEnabled();
766 }
767 
768 void Outliner::ForceAutoColor( sal_Bool b )
769 {
770 	DBG_CHKTHIS(Outliner,0);
771 	pEditEngine->ForceAutoColor( b );
772 }
773 
774 sal_Bool Outliner::IsForceAutoColor() const
775 {
776 	DBG_CHKTHIS(Outliner,0);
777 	return pEditEngine->IsForceAutoColor();
778 }
779 /*-- 13.10.2003 16:56:23---------------------------------------------------
780 
781   -----------------------------------------------------------------------*/
782 void Outliner::StartSpelling(EditView& rEditView, sal_Bool bMultipleDoc)
783 {
784     pEditEngine->StartSpelling(rEditView, bMultipleDoc);
785 }
786 /*-- 13.10.2003 16:56:23---------------------------------------------------
787 
788   -----------------------------------------------------------------------*/
789 void Outliner::EndSpelling()
790 {
791     pEditEngine->EndSpelling();
792 }
793 /*-- 13.10.2003 16:56:23---------------------------------------------------
794 
795   -----------------------------------------------------------------------*/
796 bool Outliner::SpellSentence(EditView& rEditView, ::svx::SpellPortions& rToFill, bool bIsGrammarChecking )
797 {
798     return pEditEngine->SpellSentence(rEditView, rToFill, bIsGrammarChecking );
799 }
800 /*-- 08.09.2008 11:39:05---------------------------------------------------
801 
802   -----------------------------------------------------------------------*/
803 void Outliner::PutSpellingToSentenceStart( EditView& rEditView )
804 {
805     pEditEngine->PutSpellingToSentenceStart( rEditView );
806 }
807 /*-- 13.10.2003 16:56:25---------------------------------------------------
808 
809   -----------------------------------------------------------------------*/
810 void Outliner::ApplyChangedSentence(EditView& rEditView, const ::svx::SpellPortions& rNewPortions, bool bRecheck )
811 {
812     pEditEngine->ApplyChangedSentence( rEditView, rNewPortions, bRecheck );
813 }
814