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