xref: /aoo4110/main/sw/source/core/edit/edws.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include <vcl/window.hxx>
28*b1cdbd2cSJim Jagielski 
29*b1cdbd2cSJim Jagielski #include <editsh.hxx>
30*b1cdbd2cSJim Jagielski #include <doc.hxx>
31*b1cdbd2cSJim Jagielski #include <IDocumentUndoRedo.hxx>
32*b1cdbd2cSJim Jagielski #include <pam.hxx>
33*b1cdbd2cSJim Jagielski #include <docary.hxx>
34*b1cdbd2cSJim Jagielski #include <acorrect.hxx>
35*b1cdbd2cSJim Jagielski #include <swtable.hxx>
36*b1cdbd2cSJim Jagielski #include <ndtxt.hxx>
37*b1cdbd2cSJim Jagielski #include <swundo.hxx>
38*b1cdbd2cSJim Jagielski #include <SwRewriter.hxx>
39*b1cdbd2cSJim Jagielski 
40*b1cdbd2cSJim Jagielski /********************************************************
41*b1cdbd2cSJim Jagielski  * Ctor/Dtor
42*b1cdbd2cSJim Jagielski  ********************************************************/
43*b1cdbd2cSJim Jagielski // verkleideter Copy-Constructor
44*b1cdbd2cSJim Jagielski 
45*b1cdbd2cSJim Jagielski 
SwEditShell(SwEditShell & rEdSH,Window * pWindow)46*b1cdbd2cSJim Jagielski SwEditShell::SwEditShell( SwEditShell& rEdSH, Window *pWindow )
47*b1cdbd2cSJim Jagielski     : SwCrsrShell( rEdSH, pWindow )
48*b1cdbd2cSJim Jagielski {
49*b1cdbd2cSJim Jagielski }
50*b1cdbd2cSJim Jagielski 
51*b1cdbd2cSJim Jagielski // ctor/dtor
52*b1cdbd2cSJim Jagielski 
53*b1cdbd2cSJim Jagielski 
SwEditShell(SwDoc & rDoc,Window * pWindow,const SwViewOption * pOptions)54*b1cdbd2cSJim Jagielski SwEditShell::SwEditShell( SwDoc& rDoc, Window *pWindow, const SwViewOption *pOptions )
55*b1cdbd2cSJim Jagielski     : SwCrsrShell( rDoc, pWindow, pOptions )
56*b1cdbd2cSJim Jagielski {
57*b1cdbd2cSJim Jagielski     GetDoc()->GetIDocumentUndoRedo().DoUndo(true);
58*b1cdbd2cSJim Jagielski }
59*b1cdbd2cSJim Jagielski 
60*b1cdbd2cSJim Jagielski 
~SwEditShell()61*b1cdbd2cSJim Jagielski SwEditShell::~SwEditShell() // USED
62*b1cdbd2cSJim Jagielski {
63*b1cdbd2cSJim Jagielski }
64*b1cdbd2cSJim Jagielski 
65*b1cdbd2cSJim Jagielski /******************************************************************************
66*b1cdbd2cSJim Jagielski  *					sal_Bool SwEditShell::IsModified() const
67*b1cdbd2cSJim Jagielski  ******************************************************************************/
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski 
IsModified() const70*b1cdbd2cSJim Jagielski sal_Bool SwEditShell::IsModified() const
71*b1cdbd2cSJim Jagielski {
72*b1cdbd2cSJim Jagielski 	return GetDoc()->IsModified();
73*b1cdbd2cSJim Jagielski }
74*b1cdbd2cSJim Jagielski /******************************************************************************
75*b1cdbd2cSJim Jagielski  *					  void SwEditShell::SetModified()
76*b1cdbd2cSJim Jagielski  ******************************************************************************/
77*b1cdbd2cSJim Jagielski 
78*b1cdbd2cSJim Jagielski 
SetModified()79*b1cdbd2cSJim Jagielski void SwEditShell::SetModified()
80*b1cdbd2cSJim Jagielski {
81*b1cdbd2cSJim Jagielski 	GetDoc()->SetModified();
82*b1cdbd2cSJim Jagielski }
83*b1cdbd2cSJim Jagielski /******************************************************************************
84*b1cdbd2cSJim Jagielski  *					 void SwEditShell::ResetModified()
85*b1cdbd2cSJim Jagielski  ******************************************************************************/
86*b1cdbd2cSJim Jagielski 
87*b1cdbd2cSJim Jagielski 
ResetModified()88*b1cdbd2cSJim Jagielski void SwEditShell::ResetModified()
89*b1cdbd2cSJim Jagielski {
90*b1cdbd2cSJim Jagielski 	GetDoc()->ResetModified();
91*b1cdbd2cSJim Jagielski }
92*b1cdbd2cSJim Jagielski 
SetUndoNoResetModified()93*b1cdbd2cSJim Jagielski void SwEditShell::SetUndoNoResetModified()
94*b1cdbd2cSJim Jagielski {
95*b1cdbd2cSJim Jagielski 	GetDoc()->SetModified();
96*b1cdbd2cSJim Jagielski     GetDoc()->GetIDocumentUndoRedo().SetUndoNoResetModified();
97*b1cdbd2cSJim Jagielski }
98*b1cdbd2cSJim Jagielski 
99*b1cdbd2cSJim Jagielski /******************************************************************************
100*b1cdbd2cSJim Jagielski  *				   void SwEditShell::StartAllAction()
101*b1cdbd2cSJim Jagielski  ******************************************************************************/
102*b1cdbd2cSJim Jagielski 
103*b1cdbd2cSJim Jagielski 
StartAllAction()104*b1cdbd2cSJim Jagielski void SwEditShell::StartAllAction()
105*b1cdbd2cSJim Jagielski {
106*b1cdbd2cSJim Jagielski 	ViewShell *pSh = this;
107*b1cdbd2cSJim Jagielski 	do {
108*b1cdbd2cSJim Jagielski 		if( pSh->IsA( TYPE( SwEditShell ) ) )
109*b1cdbd2cSJim Jagielski 			((SwEditShell*)pSh)->StartAction();
110*b1cdbd2cSJim Jagielski 		else
111*b1cdbd2cSJim Jagielski 			pSh->StartAction();
112*b1cdbd2cSJim Jagielski 		pSh = (ViewShell *)pSh->GetNext();
113*b1cdbd2cSJim Jagielski 	} while(pSh != this);
114*b1cdbd2cSJim Jagielski }
115*b1cdbd2cSJim Jagielski /******************************************************************************
116*b1cdbd2cSJim Jagielski  *					void SwEditShell::EndAllAction()
117*b1cdbd2cSJim Jagielski  ******************************************************************************/
118*b1cdbd2cSJim Jagielski 
119*b1cdbd2cSJim Jagielski 
EndAllAction()120*b1cdbd2cSJim Jagielski void SwEditShell::EndAllAction()
121*b1cdbd2cSJim Jagielski {
122*b1cdbd2cSJim Jagielski 	ViewShell *pSh = this;
123*b1cdbd2cSJim Jagielski 	do {
124*b1cdbd2cSJim Jagielski 		if( pSh->IsA( TYPE( SwEditShell ) ) )
125*b1cdbd2cSJim Jagielski 			((SwEditShell*)pSh)->EndAction();
126*b1cdbd2cSJim Jagielski 		else
127*b1cdbd2cSJim Jagielski 			pSh->EndAction();
128*b1cdbd2cSJim Jagielski 		pSh = (ViewShell *)pSh->GetNext();
129*b1cdbd2cSJim Jagielski 	} while(pSh != this);
130*b1cdbd2cSJim Jagielski }
131*b1cdbd2cSJim Jagielski 
132*b1cdbd2cSJim Jagielski /******************************************************************************
133*b1cdbd2cSJim Jagielski  *					void SwEditShell::CalcLayout()
134*b1cdbd2cSJim Jagielski  ******************************************************************************/
135*b1cdbd2cSJim Jagielski 
136*b1cdbd2cSJim Jagielski 
CalcLayout()137*b1cdbd2cSJim Jagielski void SwEditShell::CalcLayout()
138*b1cdbd2cSJim Jagielski {
139*b1cdbd2cSJim Jagielski 	StartAllAction();
140*b1cdbd2cSJim Jagielski 	ViewShell::CalcLayout();
141*b1cdbd2cSJim Jagielski 
142*b1cdbd2cSJim Jagielski 	ViewShell *pSh = this;
143*b1cdbd2cSJim Jagielski 	do
144*b1cdbd2cSJim Jagielski 	{
145*b1cdbd2cSJim Jagielski 		if ( pSh->GetWin() )
146*b1cdbd2cSJim Jagielski 			pSh->GetWin()->Invalidate();
147*b1cdbd2cSJim Jagielski 		pSh = (ViewShell*)pSh->GetNext();
148*b1cdbd2cSJim Jagielski 
149*b1cdbd2cSJim Jagielski 	} while ( pSh != this );
150*b1cdbd2cSJim Jagielski 
151*b1cdbd2cSJim Jagielski 	EndAllAction();
152*b1cdbd2cSJim Jagielski }
153*b1cdbd2cSJim Jagielski 
154*b1cdbd2cSJim Jagielski /******************************************************************************
155*b1cdbd2cSJim Jagielski  *						Inhaltsform bestimmen, holen
156*b1cdbd2cSJim Jagielski  ******************************************************************************/
157*b1cdbd2cSJim Jagielski // OPT: wird fuer jedes Attribut gerufen?
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski 
GetCntType() const160*b1cdbd2cSJim Jagielski sal_uInt16 SwEditShell::GetCntType() const
161*b1cdbd2cSJim Jagielski {
162*b1cdbd2cSJim Jagielski 	// nur noch am SPoint ist der Inhalt interessant
163*b1cdbd2cSJim Jagielski 	sal_uInt16 nRet = 0;
164*b1cdbd2cSJim Jagielski 	if( IsTableMode() )
165*b1cdbd2cSJim Jagielski 		nRet = CNT_TXT;
166*b1cdbd2cSJim Jagielski 	else
167*b1cdbd2cSJim Jagielski 		switch( GetCrsr()->GetNode()->GetNodeType() )
168*b1cdbd2cSJim Jagielski 		{
169*b1cdbd2cSJim Jagielski 		case ND_TEXTNODE:   nRet = CNT_TXT;	break;
170*b1cdbd2cSJim Jagielski 		case ND_GRFNODE:    nRet = CNT_GRF; break;
171*b1cdbd2cSJim Jagielski 		case ND_OLENODE:    nRet = CNT_OLE; break;
172*b1cdbd2cSJim Jagielski 		}
173*b1cdbd2cSJim Jagielski 
174*b1cdbd2cSJim Jagielski 	ASSERT( nRet, ERR_OUTOFSCOPE );
175*b1cdbd2cSJim Jagielski 	return nRet;
176*b1cdbd2cSJim Jagielski }
177*b1cdbd2cSJim Jagielski 
178*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------
179*b1cdbd2cSJim Jagielski 
180*b1cdbd2cSJim Jagielski 
HasOtherCnt() const181*b1cdbd2cSJim Jagielski sal_Bool SwEditShell::HasOtherCnt() const
182*b1cdbd2cSJim Jagielski 
183*b1cdbd2cSJim Jagielski {
184*b1cdbd2cSJim Jagielski 	if ( GetDoc()->GetSpzFrmFmts()->Count() )
185*b1cdbd2cSJim Jagielski 		return sal_True;
186*b1cdbd2cSJim Jagielski 
187*b1cdbd2cSJim Jagielski 	const SwNodes &rNds = GetDoc()->GetNodes();
188*b1cdbd2cSJim Jagielski 	const SwNode *pNd;
189*b1cdbd2cSJim Jagielski 
190*b1cdbd2cSJim Jagielski 	pNd = &rNds.GetEndOfInserts();
191*b1cdbd2cSJim Jagielski 	if ( 1 != (pNd->GetIndex() - pNd->StartOfSectionIndex()) )
192*b1cdbd2cSJim Jagielski 		return sal_True;
193*b1cdbd2cSJim Jagielski 
194*b1cdbd2cSJim Jagielski 	pNd = &rNds.GetEndOfAutotext();
195*b1cdbd2cSJim Jagielski 	if ( 1 != (pNd->GetIndex() - pNd->StartOfSectionIndex()) )
196*b1cdbd2cSJim Jagielski 		return sal_True;
197*b1cdbd2cSJim Jagielski 
198*b1cdbd2cSJim Jagielski 	return sal_False;
199*b1cdbd2cSJim Jagielski }
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski /******************************************************************************
202*b1cdbd2cSJim Jagielski  *				Zugriffsfunktionen fuer Filename-Behandlung
203*b1cdbd2cSJim Jagielski  ******************************************************************************/
204*b1cdbd2cSJim Jagielski 
205*b1cdbd2cSJim Jagielski 
SwActKontext(SwEditShell * pShell)206*b1cdbd2cSJim Jagielski SwActKontext::SwActKontext(SwEditShell *pShell)
207*b1cdbd2cSJim Jagielski 	: pSh(pShell)
208*b1cdbd2cSJim Jagielski {
209*b1cdbd2cSJim Jagielski 	pSh->StartAction();
210*b1cdbd2cSJim Jagielski }
211*b1cdbd2cSJim Jagielski 
212*b1cdbd2cSJim Jagielski 
~SwActKontext()213*b1cdbd2cSJim Jagielski SwActKontext::~SwActKontext()
214*b1cdbd2cSJim Jagielski {
215*b1cdbd2cSJim Jagielski 	pSh->EndAction();
216*b1cdbd2cSJim Jagielski }
217*b1cdbd2cSJim Jagielski 
218*b1cdbd2cSJim Jagielski /******************************************************************************
219*b1cdbd2cSJim Jagielski  * 			Klasse fuer den automatisierten Aufruf von Start- und
220*b1cdbd2cSJim Jagielski  * 								EndCrsrMove();
221*b1cdbd2cSJim Jagielski  ******************************************************************************/
222*b1cdbd2cSJim Jagielski 
223*b1cdbd2cSJim Jagielski 
SwMvKontext(SwEditShell * pShell)224*b1cdbd2cSJim Jagielski SwMvKontext::SwMvKontext(SwEditShell *pShell ) : pSh(pShell)
225*b1cdbd2cSJim Jagielski {
226*b1cdbd2cSJim Jagielski 	pSh->SttCrsrMove();
227*b1cdbd2cSJim Jagielski }
228*b1cdbd2cSJim Jagielski 
229*b1cdbd2cSJim Jagielski 
~SwMvKontext()230*b1cdbd2cSJim Jagielski SwMvKontext::~SwMvKontext()
231*b1cdbd2cSJim Jagielski {
232*b1cdbd2cSJim Jagielski 	pSh->EndCrsrMove();
233*b1cdbd2cSJim Jagielski }
234*b1cdbd2cSJim Jagielski 
235*b1cdbd2cSJim Jagielski 
GetTableFmt()236*b1cdbd2cSJim Jagielski SwFrmFmt *SwEditShell::GetTableFmt()	// OPT: schnellster Test auf Tabelle?
237*b1cdbd2cSJim Jagielski {
238*b1cdbd2cSJim Jagielski 	const SwTableNode* pTblNd = IsCrsrInTbl();
239*b1cdbd2cSJim Jagielski 	return pTblNd ? (SwFrmFmt*)pTblNd->GetTable().GetFrmFmt() : 0;
240*b1cdbd2cSJim Jagielski }
241*b1cdbd2cSJim Jagielski 
242*b1cdbd2cSJim Jagielski // OPT: wieso 3x beim neuen Dokument
243*b1cdbd2cSJim Jagielski 
244*b1cdbd2cSJim Jagielski 
GetTOXTypeCount(TOXTypes eTyp) const245*b1cdbd2cSJim Jagielski sal_uInt16 SwEditShell::GetTOXTypeCount(TOXTypes eTyp) const
246*b1cdbd2cSJim Jagielski {
247*b1cdbd2cSJim Jagielski 	return pDoc->GetTOXTypeCount(eTyp);
248*b1cdbd2cSJim Jagielski }
249*b1cdbd2cSJim Jagielski 
250*b1cdbd2cSJim Jagielski 
InsertTOXType(const SwTOXType & rTyp)251*b1cdbd2cSJim Jagielski void SwEditShell::InsertTOXType(const SwTOXType& rTyp)
252*b1cdbd2cSJim Jagielski {
253*b1cdbd2cSJim Jagielski 	pDoc->InsertTOXType(rTyp);
254*b1cdbd2cSJim Jagielski }
255*b1cdbd2cSJim Jagielski 
256*b1cdbd2cSJim Jagielski 
257*b1cdbd2cSJim Jagielski 
DoUndo(sal_Bool bOn)258*b1cdbd2cSJim Jagielski void SwEditShell::DoUndo( sal_Bool bOn )
259*b1cdbd2cSJim Jagielski { GetDoc()->GetIDocumentUndoRedo().DoUndo( bOn ); }
260*b1cdbd2cSJim Jagielski 
261*b1cdbd2cSJim Jagielski 
DoesUndo() const262*b1cdbd2cSJim Jagielski sal_Bool SwEditShell::DoesUndo() const
263*b1cdbd2cSJim Jagielski { return GetDoc()->GetIDocumentUndoRedo().DoesUndo(); }
264*b1cdbd2cSJim Jagielski 
265*b1cdbd2cSJim Jagielski 
DoGroupUndo(sal_Bool bOn)266*b1cdbd2cSJim Jagielski void SwEditShell::DoGroupUndo( sal_Bool bOn )
267*b1cdbd2cSJim Jagielski { GetDoc()->GetIDocumentUndoRedo().DoGroupUndo( bOn ); }
268*b1cdbd2cSJim Jagielski 
269*b1cdbd2cSJim Jagielski 
DoesGroupUndo() const270*b1cdbd2cSJim Jagielski sal_Bool SwEditShell::DoesGroupUndo() const
271*b1cdbd2cSJim Jagielski { return GetDoc()->GetIDocumentUndoRedo().DoesGroupUndo(); }
272*b1cdbd2cSJim Jagielski 
273*b1cdbd2cSJim Jagielski 
DelAllUndoObj()274*b1cdbd2cSJim Jagielski void SwEditShell::DelAllUndoObj()
275*b1cdbd2cSJim Jagielski {
276*b1cdbd2cSJim Jagielski     GetDoc()->GetIDocumentUndoRedo().DelAllUndoObj();
277*b1cdbd2cSJim Jagielski }
278*b1cdbd2cSJim Jagielski 
279*b1cdbd2cSJim Jagielski // Zusammenfassen von Kontinuierlichen Insert/Delete/Overwrite von
280*b1cdbd2cSJim Jagielski // Charaktern. Default ist sdbcx::Group-Undo.
281*b1cdbd2cSJim Jagielski 
282*b1cdbd2cSJim Jagielski // setzt Undoklammerung auf, liefert nUndoId der Klammerung
283*b1cdbd2cSJim Jagielski 
284*b1cdbd2cSJim Jagielski 
StartUndo(SwUndoId eUndoId,const SwRewriter * pRewriter)285*b1cdbd2cSJim Jagielski SwUndoId SwEditShell::StartUndo( SwUndoId eUndoId,
286*b1cdbd2cSJim Jagielski                                    const SwRewriter *pRewriter )
287*b1cdbd2cSJim Jagielski { return GetDoc()->GetIDocumentUndoRedo().StartUndo( eUndoId, pRewriter ); }
288*b1cdbd2cSJim Jagielski 
289*b1cdbd2cSJim Jagielski // schliesst Klammerung der nUndoId, nicht vom UI benutzt
290*b1cdbd2cSJim Jagielski 
291*b1cdbd2cSJim Jagielski 
EndUndo(SwUndoId eUndoId,const SwRewriter * pRewriter)292*b1cdbd2cSJim Jagielski SwUndoId SwEditShell::EndUndo(SwUndoId eUndoId,
293*b1cdbd2cSJim Jagielski                                 const SwRewriter *pRewriter)
294*b1cdbd2cSJim Jagielski { return GetDoc()->GetIDocumentUndoRedo().EndUndo(eUndoId, pRewriter); }
295*b1cdbd2cSJim Jagielski 
296*b1cdbd2cSJim Jagielski 
GetLastUndoInfo(::rtl::OUString * const o_pStr,SwUndoId * const o_pId) const297*b1cdbd2cSJim Jagielski bool     SwEditShell::GetLastUndoInfo(::rtl::OUString *const o_pStr,
298*b1cdbd2cSJim Jagielski                                       SwUndoId *const o_pId) const
299*b1cdbd2cSJim Jagielski { return GetDoc()->GetIDocumentUndoRedo().GetLastUndoInfo(o_pStr, o_pId); }
300*b1cdbd2cSJim Jagielski 
GetFirstRedoInfo(::rtl::OUString * const o_pStr) const301*b1cdbd2cSJim Jagielski bool     SwEditShell::GetFirstRedoInfo(::rtl::OUString *const o_pStr) const
302*b1cdbd2cSJim Jagielski { return GetDoc()->GetIDocumentUndoRedo().GetFirstRedoInfo(o_pStr); }
303*b1cdbd2cSJim Jagielski 
GetRepeatInfo(::rtl::OUString * const o_pStr) const304*b1cdbd2cSJim Jagielski SwUndoId SwEditShell::GetRepeatInfo(::rtl::OUString *const o_pStr) const
305*b1cdbd2cSJim Jagielski { return GetDoc()->GetIDocumentUndoRedo().GetRepeatInfo(o_pStr); }
306*b1cdbd2cSJim Jagielski 
307*b1cdbd2cSJim Jagielski 
308*b1cdbd2cSJim Jagielski 
309*b1cdbd2cSJim Jagielski // AutoKorrektur - JP 27.01.94
AutoCorrect(SvxAutoCorrect & rACorr,sal_Bool bInsert,sal_Unicode cChar)310*b1cdbd2cSJim Jagielski void SwEditShell::AutoCorrect( SvxAutoCorrect& rACorr, sal_Bool bInsert,
311*b1cdbd2cSJim Jagielski 								sal_Unicode cChar )
312*b1cdbd2cSJim Jagielski {
313*b1cdbd2cSJim Jagielski 	SET_CURR_SHELL( this );
314*b1cdbd2cSJim Jagielski 
315*b1cdbd2cSJim Jagielski 	StartAllAction();
316*b1cdbd2cSJim Jagielski 
317*b1cdbd2cSJim Jagielski 	SwPaM* pCrsr = getShellCrsr( true );
318*b1cdbd2cSJim Jagielski 	SwTxtNode* pTNd = pCrsr->GetNode()->GetTxtNode();
319*b1cdbd2cSJim Jagielski 
320*b1cdbd2cSJim Jagielski 	SwAutoCorrDoc aSwAutoCorrDoc( *this, *pCrsr, cChar );
321*b1cdbd2cSJim Jagielski 	rACorr.AutoCorrect( aSwAutoCorrDoc,
322*b1cdbd2cSJim Jagielski 					pTNd->GetTxt(), pCrsr->GetPoint()->nContent.GetIndex(),
323*b1cdbd2cSJim Jagielski 					cChar, bInsert );
324*b1cdbd2cSJim Jagielski 	if( cChar )
325*b1cdbd2cSJim Jagielski 		SaveTblBoxCntnt( pCrsr->GetPoint() );
326*b1cdbd2cSJim Jagielski 	EndAllAction();
327*b1cdbd2cSJim Jagielski }
328*b1cdbd2cSJim Jagielski 
329*b1cdbd2cSJim Jagielski 
SetNewDoc(sal_Bool bNew)330*b1cdbd2cSJim Jagielski void SwEditShell::SetNewDoc(sal_Bool bNew)
331*b1cdbd2cSJim Jagielski {
332*b1cdbd2cSJim Jagielski 	GetDoc()->SetNewDoc(bNew);
333*b1cdbd2cSJim Jagielski }
334*b1cdbd2cSJim Jagielski 
335*b1cdbd2cSJim Jagielski 
GetPrevAutoCorrWord(SvxAutoCorrect & rACorr,String & rWord)336*b1cdbd2cSJim Jagielski sal_Bool SwEditShell::GetPrevAutoCorrWord( SvxAutoCorrect& rACorr, String& rWord )
337*b1cdbd2cSJim Jagielski {
338*b1cdbd2cSJim Jagielski 	SET_CURR_SHELL( this );
339*b1cdbd2cSJim Jagielski 
340*b1cdbd2cSJim Jagielski 	sal_Bool bRet;
341*b1cdbd2cSJim Jagielski 	SwPaM* pCrsr = getShellCrsr( true );
342*b1cdbd2cSJim Jagielski 	xub_StrLen nPos = pCrsr->GetPoint()->nContent.GetIndex();
343*b1cdbd2cSJim Jagielski 	SwTxtNode* pTNd = pCrsr->GetNode()->GetTxtNode();
344*b1cdbd2cSJim Jagielski 	if( pTNd && nPos )
345*b1cdbd2cSJim Jagielski 	{
346*b1cdbd2cSJim Jagielski 		SwAutoCorrDoc aSwAutoCorrDoc( *this, *pCrsr, 0 );
347*b1cdbd2cSJim Jagielski 		bRet = rACorr.GetPrevAutoCorrWord( aSwAutoCorrDoc,
348*b1cdbd2cSJim Jagielski 											pTNd->GetTxt(), nPos, rWord );
349*b1cdbd2cSJim Jagielski 	}
350*b1cdbd2cSJim Jagielski 	else
351*b1cdbd2cSJim Jagielski 		bRet = sal_False;
352*b1cdbd2cSJim Jagielski 	return bRet;
353*b1cdbd2cSJim Jagielski }
354*b1cdbd2cSJim Jagielski 
GetAutoCompleteWords()355*b1cdbd2cSJim Jagielski SwAutoCompleteWord& SwEditShell::GetAutoCompleteWords()
356*b1cdbd2cSJim Jagielski {
357*b1cdbd2cSJim Jagielski 	return SwDoc::GetAutoCompleteWords();
358*b1cdbd2cSJim Jagielski }
359*b1cdbd2cSJim Jagielski 
360*b1cdbd2cSJim Jagielski 
361*b1cdbd2cSJim Jagielski 
362