xref: /trunk/main/sw/source/ui/inc/wrtsh.hxx (revision 256193c1fa5bb28e88cb9c86285c4f546b4902e6)
11d2dbeb0SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
31d2dbeb0SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
41d2dbeb0SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
51d2dbeb0SAndrew Rist  * distributed with this work for additional information
61d2dbeb0SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
71d2dbeb0SAndrew Rist  * to you under the Apache License, Version 2.0 (the
81d2dbeb0SAndrew Rist  * "License"); you may not use this file except in compliance
91d2dbeb0SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
111d2dbeb0SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
131d2dbeb0SAndrew Rist  * Unless required by applicable law or agreed to in writing,
141d2dbeb0SAndrew Rist  * software distributed under the License is distributed on an
151d2dbeb0SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
161d2dbeb0SAndrew Rist  * KIND, either express or implied.  See the License for the
171d2dbeb0SAndrew Rist  * specific language governing permissions and limitations
181d2dbeb0SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
201d2dbeb0SAndrew Rist  *************************************************************/
211d2dbeb0SAndrew Rist 
22cdf0e10cSrcweir #ifndef _WRTSH_HXX
23cdf0e10cSrcweir #define _WRTSH_HXX
24cdf0e10cSrcweir 
25cdf0e10cSrcweir #include <com/sun/star/embed/XEmbeddedObject.hpp>
26cdf0e10cSrcweir #include "swdllapi.h"
27cdf0e10cSrcweir #include <fesh.hxx>
28cdf0e10cSrcweir #include <sortopt.hxx>
29cdf0e10cSrcweir #include <swurl.hxx>
30cdf0e10cSrcweir #include <IMark.hxx>
31cdf0e10cSrcweir 
32cdf0e10cSrcweir class Window;
33cdf0e10cSrcweir class OutputDevice;
34cdf0e10cSrcweir class SbxArray;
35cdf0e10cSrcweir class SwDoc;
36cdf0e10cSrcweir class SpellCheck;
37cdf0e10cSrcweir class SwViewOption;
38cdf0e10cSrcweir class SwFlyFrmAttrMgr;
39cdf0e10cSrcweir class SwField;
40cdf0e10cSrcweir class SwTOXBase;
41cdf0e10cSrcweir class SdrView;
42cdf0e10cSrcweir class SwView;
43cdf0e10cSrcweir class SvGlobalName;
44cdf0e10cSrcweir class SwInputFieldList;
45cdf0e10cSrcweir class SwSectionData;
46cdf0e10cSrcweir class Timer;
47cdf0e10cSrcweir class SvxMacro;
48cdf0e10cSrcweir class SwFmtINetFmt;
49cdf0e10cSrcweir class SvxINetBookmark;
50cdf0e10cSrcweir class SvxAutoCorrect;
51cdf0e10cSrcweir class NaviContentBookmark;
52cdf0e10cSrcweir struct SwCallMouseEvent;
53cdf0e10cSrcweir class DropEvent;
54cdf0e10cSrcweir struct ChartSelectionInfo;
55cdf0e10cSrcweir class SfxStringListItem;
56cdf0e10cSrcweir class SfxRequest;
57cdf0e10cSrcweir 
58cdf0e10cSrcweir namespace com { namespace sun { namespace star { namespace util {
59cdf0e10cSrcweir     struct SearchOptions;
60cdf0e10cSrcweir } } } }
61cdf0e10cSrcweir 
62cdf0e10cSrcweir 
63cdf0e10cSrcweir typedef sal_Int32 SelectionType;
64cdf0e10cSrcweir namespace nsSelectionType
65cdf0e10cSrcweir {
66cdf0e10cSrcweir     const SelectionType SEL_TXT             = CNT_TXT;  // Text, niemals auch Rahmen    0x0001
67cdf0e10cSrcweir     const SelectionType SEL_GRF             = CNT_GRF;  // Grafik                       0x0002
68cdf0e10cSrcweir     const SelectionType SEL_OLE             = CNT_OLE;  // OLE                          0x0010
69cdf0e10cSrcweir     const SelectionType SEL_FRM             = 0x000020; // Rahmen, keine Inhaltsform
70cdf0e10cSrcweir     const SelectionType SEL_NUM             = 0x000040; // NumListe
71cdf0e10cSrcweir     const SelectionType SEL_TBL             = 0x000080; // Cursor steht in Tabelle
72cdf0e10cSrcweir     const SelectionType SEL_TBL_CELLS       = 0x000100; // Tabellenzellen sind selektiert
73cdf0e10cSrcweir     const SelectionType SEL_DRW             = 0x000200; // Zeichenobjekte (Rechteck, Kreis...)
74cdf0e10cSrcweir     const SelectionType SEL_DRW_TXT         = 0x000400; // Draw-Textobjekte im Editmode
75cdf0e10cSrcweir     const SelectionType SEL_BEZ             = 0x000800; // Bezierobjekte editieren
76cdf0e10cSrcweir     const SelectionType SEL_DRW_FORM        = 0x001000; // Zeichenobjekte: DB-Forms
77*256193c1Smseidel     const SelectionType SEL_FOC_FRM_CTRL    = 0x002000; // a form control is focused. Neither set nor evaluated by the SwWrtShell itself, only by its clients.
78cdf0e10cSrcweir     const SelectionType SEL_MEDIA           = 0x004000; // Media object
79cdf0e10cSrcweir     const SelectionType SEL_EXTRUDED_CUSTOMSHAPE = 0x008000;    // extruded custom shape
80*256193c1Smseidel     const SelectionType SEL_FONTWORK        = 0x010000; // Fontwork
81*256193c1Smseidel     const SelectionType SEL_POSTIT          = 0x020000; // Annotation
82cdf0e10cSrcweir }
83cdf0e10cSrcweir 
84cdf0e10cSrcweir 
85cdf0e10cSrcweir class SW_DLLPUBLIC SwWrtShell: public SwFEShell
86cdf0e10cSrcweir {
87cdf0e10cSrcweir private:
88cdf0e10cSrcweir     using SwCrsrShell::Left;
89cdf0e10cSrcweir     using SwCrsrShell::Right;
90cdf0e10cSrcweir     using SwCrsrShell::Up;
91cdf0e10cSrcweir     using SwCrsrShell::Down;
92cdf0e10cSrcweir     using SwCrsrShell::LeftMargin;
93cdf0e10cSrcweir     using SwCrsrShell::RightMargin;
94cdf0e10cSrcweir     using SwCrsrShell::SelectTxtAttr;
95cdf0e10cSrcweir     using SwCrsrShell::GotoPage;
96cdf0e10cSrcweir     using SwFEShell::InsertObject;
97cdf0e10cSrcweir     using SwEditShell::AutoCorrect;
98cdf0e10cSrcweir     using SwCrsrShell::GotoMark;
99cdf0e10cSrcweir 
100cdf0e10cSrcweir public:
101cdf0e10cSrcweir 
102cdf0e10cSrcweir     using SwEditShell::Insert;
103cdf0e10cSrcweir 
104cdf0e10cSrcweir     typedef long (SwWrtShell::*SELECTFUNC)(const Point *, sal_Bool bProp );
105cdf0e10cSrcweir 
106cdf0e10cSrcweir     SELECTFUNC  fnDrag;
107cdf0e10cSrcweir     SELECTFUNC  fnSetCrsr;
108cdf0e10cSrcweir     SELECTFUNC  fnEndDrag;
109cdf0e10cSrcweir     SELECTFUNC  fnKillSel;
110cdf0e10cSrcweir 
111cdf0e10cSrcweir     // Alle Selektionen aufheben
112cdf0e10cSrcweir     long ResetSelect( const Point *, sal_Bool );
113cdf0e10cSrcweir 
114cdf0e10cSrcweir     // setzt den Cursorstack nach dem Bewegen mit PageUp/-Down
115*256193c1Smseidel     // zurück, falls ein Stack aufgebaut ist
116cdf0e10cSrcweir     inline void ResetCursorStack();
117cdf0e10cSrcweir     SelectionType   GetSelectionType() const;
118cdf0e10cSrcweir 
IsModePushed() const119cdf0e10cSrcweir     sal_Bool    IsModePushed() const { return 0 != pModeStack; }
120cdf0e10cSrcweir     void    PushMode();
121cdf0e10cSrcweir     void    PopMode();
122cdf0e10cSrcweir 
123cdf0e10cSrcweir     void    SttSelect();
124cdf0e10cSrcweir     void    EndSelect();
IsInSelect() const125cdf0e10cSrcweir     sal_Bool    IsInSelect() const { return bInSelect; }
SetInSelect(sal_Bool bSel=sal_True)126cdf0e10cSrcweir     void    SetInSelect(sal_Bool bSel = sal_True) { bInSelect = bSel; }
127cdf0e10cSrcweir         // Liegt eine Text- oder Rahmenselektion vor?
HasSelection() const128cdf0e10cSrcweir     sal_Bool    HasSelection() const { return SwCrsrShell::HasSelection() ||
129cdf0e10cSrcweir                                         IsMultiSelection() || IsSelFrmMode() || IsObjSelected(); }
130cdf0e10cSrcweir     sal_Bool Pop( sal_Bool bOldCrsr = sal_True );
131cdf0e10cSrcweir 
132cdf0e10cSrcweir     void    EnterStdMode();
IsStdMode() const133cdf0e10cSrcweir     sal_Bool    IsStdMode() const { return !bExtMode && !bAddMode && !bBlockMode; }
134cdf0e10cSrcweir 
135cdf0e10cSrcweir     void    EnterExtMode();
136cdf0e10cSrcweir     void    LeaveExtMode();
137cdf0e10cSrcweir     long    ToggleExtMode();
IsExtMode() const138cdf0e10cSrcweir     sal_Bool    IsExtMode() const { return bExtMode; }
139cdf0e10cSrcweir 
140cdf0e10cSrcweir     void    EnterAddMode();
141cdf0e10cSrcweir     void    LeaveAddMode();
142cdf0e10cSrcweir     long    ToggleAddMode();
IsAddMode() const143cdf0e10cSrcweir     sal_Bool    IsAddMode() const { return bAddMode; }
144cdf0e10cSrcweir 
145cdf0e10cSrcweir     void    EnterBlockMode();
146cdf0e10cSrcweir     void    LeaveBlockMode();
147cdf0e10cSrcweir     long    ToggleBlockMode();
IsBlockMode() const148cdf0e10cSrcweir     sal_Bool    IsBlockMode() const { return bBlockMode; }
149cdf0e10cSrcweir 
150cdf0e10cSrcweir     void    SetInsMode( sal_Bool bOn = sal_True );
ToggleInsMode()151cdf0e10cSrcweir     void    ToggleInsMode() { SetInsMode( !bIns ); }
IsInsMode() const152cdf0e10cSrcweir     sal_Bool    IsInsMode() const { return bIns; }
153cdf0e10cSrcweir     void    SetRedlineModeAndCheckInsMode( sal_uInt16 eMode );
154cdf0e10cSrcweir 
155cdf0e10cSrcweir     void    EnterSelFrmMode(const Point *pStartDrag = 0);
156cdf0e10cSrcweir     void    LeaveSelFrmMode();
IsSelFrmMode() const157cdf0e10cSrcweir     sal_Bool    IsSelFrmMode() const { return bLayoutMode; }
158cdf0e10cSrcweir         // Selektion von Rahmen aufheben
159cdf0e10cSrcweir     void    UnSelectFrm();
160cdf0e10cSrcweir 
161cdf0e10cSrcweir     void    Invalidate();
162cdf0e10cSrcweir 
163*256193c1Smseidel     // Tabellenzellen selektieren für Bearbeiten von Formeln in der Ribbonbar
164cdf0e10cSrcweir     inline void SelTblCells( const Link &rLink, sal_Bool bMark = sal_True );
165cdf0e10cSrcweir     inline void EndSelTblCells();
166cdf0e10cSrcweir 
167cdf0e10cSrcweir     // Wortweisen oder zeilenweisen Selektionsmodus verlassen. Wird
168cdf0e10cSrcweir     // in der Regel in MB-Up gerufen.
IsExtSel() const169cdf0e10cSrcweir     sal_Bool    IsExtSel() const { return bSelWrd || bSelLn; }
170cdf0e10cSrcweir 
171cdf0e10cSrcweir     // erfrage, ob der akt. fnDrag - Pointer auf BeginDrag gesetzt ist
172*256193c1Smseidel     // Wird für MouseMove gebraucht, um die Bugs 55592/55931 zu umgehen.
173cdf0e10cSrcweir     inline sal_Bool Is_FnDragEQBeginDrag() const;
174cdf0e10cSrcweir 
175cdf0e10cSrcweir     // Basisabfragen
IsInWrd()176cdf0e10cSrcweir     sal_Bool    IsInWrd()           { return IsInWord(); }
IsSttWrd()177cdf0e10cSrcweir     sal_Bool    IsSttWrd()          { return IsStartWord(); }
178cdf0e10cSrcweir     sal_Bool    IsEndWrd();
IsSttOfPara() const179cdf0e10cSrcweir     sal_Bool    IsSttOfPara() const { return IsSttPara(); }
IsEndOfPara() const180cdf0e10cSrcweir     sal_Bool    IsEndOfPara() const { return IsEndPara(); }
181cdf0e10cSrcweir 
182*256193c1Smseidel     // Wort bzw. Satz selektieren.
183cdf0e10cSrcweir     sal_Bool    SelNearestWrd();
184cdf0e10cSrcweir     sal_Bool    SelWrd      (const Point * = 0, sal_Bool bProp=sal_False );
185cdf0e10cSrcweir     // --> FME 2004-07-30 #i32329# Enhanced selection
186cdf0e10cSrcweir     void    SelSentence (const Point * = 0, sal_Bool bProp=sal_False );
187cdf0e10cSrcweir     void    SelPara     (const Point * = 0, sal_Bool bProp=sal_False );
188cdf0e10cSrcweir     // <--
189cdf0e10cSrcweir     long    SelAll();
190cdf0e10cSrcweir 
191cdf0e10cSrcweir     // Basiscursortravelling
192cdf0e10cSrcweir typedef sal_Bool (SwWrtShell:: *FNSimpleMove)();
193cdf0e10cSrcweir     sal_Bool SimpleMove( FNSimpleMove, sal_Bool bSelect );
194cdf0e10cSrcweir 
195cdf0e10cSrcweir     sal_Bool Left       ( sal_uInt16 nMode, sal_Bool bSelect,
196cdf0e10cSrcweir                             sal_uInt16 nCount, sal_Bool bBasicCall, sal_Bool bVisual = sal_False );
197cdf0e10cSrcweir     sal_Bool Right      ( sal_uInt16 nMode, sal_Bool bSelect,
198cdf0e10cSrcweir                             sal_uInt16 nCount, sal_Bool bBasicCall, sal_Bool bVisual = sal_False );
199cdf0e10cSrcweir     sal_Bool Up         ( sal_Bool bSelect = sal_False, sal_uInt16 nCount = 1,
200cdf0e10cSrcweir                             sal_Bool bBasicCall = sal_False );
201cdf0e10cSrcweir     sal_Bool Down       ( sal_Bool bSelect = sal_False, sal_uInt16 nCount = 1,
202cdf0e10cSrcweir                             sal_Bool bBasicCall = sal_False );
NxtWrd(sal_Bool bSelect=sal_False)203cdf0e10cSrcweir     sal_Bool NxtWrd     ( sal_Bool bSelect = sal_False ) { return SimpleMove( &SwWrtShell::_NxtWrd, bSelect ); }
PrvWrd(sal_Bool bSelect=sal_False)204cdf0e10cSrcweir     sal_Bool PrvWrd     ( sal_Bool bSelect = sal_False ) { return SimpleMove( &SwWrtShell::_PrvWrd, bSelect ); }
205cdf0e10cSrcweir 
206cdf0e10cSrcweir     sal_Bool LeftMargin ( sal_Bool bSelect, sal_Bool bBasicCall );
207cdf0e10cSrcweir     sal_Bool RightMargin( sal_Bool bSelect, sal_Bool bBasicCall );
208cdf0e10cSrcweir 
209cdf0e10cSrcweir     sal_Bool SttDoc     ( sal_Bool bSelect = sal_False );
210cdf0e10cSrcweir     sal_Bool EndDoc     ( sal_Bool bSelect = sal_False );
211cdf0e10cSrcweir 
212cdf0e10cSrcweir     sal_Bool SttNxtPg   ( sal_Bool bSelect = sal_False );
213cdf0e10cSrcweir     sal_Bool SttPrvPg   ( sal_Bool bSelect = sal_False );
214cdf0e10cSrcweir     sal_Bool EndNxtPg   ( sal_Bool bSelect = sal_False );
215cdf0e10cSrcweir     sal_Bool EndPrvPg   ( sal_Bool bSelect = sal_False );
216cdf0e10cSrcweir     sal_Bool SttPg      ( sal_Bool bSelect = sal_False );
217cdf0e10cSrcweir     sal_Bool EndPg      ( sal_Bool bSelect = sal_False );
218cdf0e10cSrcweir     sal_Bool SttPara    ( sal_Bool bSelect = sal_False );
219cdf0e10cSrcweir     sal_Bool EndPara    ( sal_Bool bSelect = sal_False );
FwdPara(sal_Bool bSelect=sal_False)220cdf0e10cSrcweir     sal_Bool FwdPara    ( sal_Bool bSelect = sal_False )
221cdf0e10cSrcweir                 { return SimpleMove( &SwWrtShell::_FwdPara, bSelect ); }
BwdPara(sal_Bool bSelect=sal_False)222cdf0e10cSrcweir     sal_Bool BwdPara    ( sal_Bool bSelect = sal_False )
223cdf0e10cSrcweir                 { return SimpleMove( &SwWrtShell::_BwdPara, bSelect ); }
FwdSentence(sal_Bool bSelect=sal_False)224cdf0e10cSrcweir     sal_Bool FwdSentence( sal_Bool bSelect = sal_False )
225cdf0e10cSrcweir                 { return SimpleMove( &SwWrtShell::_FwdSentence, bSelect ); }
BwdSentence(sal_Bool bSelect=sal_False)226cdf0e10cSrcweir     sal_Bool BwdSentence( sal_Bool bSelect = sal_False )
227cdf0e10cSrcweir                 { return SimpleMove( &SwWrtShell::_BwdSentence, bSelect ); }
228cdf0e10cSrcweir 
229cdf0e10cSrcweir     // --> FME 2004-07-30 #i20126# Enhanced table selection
230cdf0e10cSrcweir     sal_Bool SelectTableRowCol( const Point& rPt, const Point* pEnd = 0, bool bRowDrag = false );
231cdf0e10cSrcweir     // <--
232cdf0e10cSrcweir     sal_Bool SelectTableRow();
233cdf0e10cSrcweir     sal_Bool SelectTableCol();
234cdf0e10cSrcweir     sal_Bool SelectTableCell();
235cdf0e10cSrcweir 
236cdf0e10cSrcweir     sal_Bool SelectTxtAttr( sal_uInt16 nWhich, const SwTxtAttr* pAttr = 0 );
237cdf0e10cSrcweir 
238cdf0e10cSrcweir     // Spaltenweise Spruenge
239cdf0e10cSrcweir     sal_Bool StartOfColumn      ( sal_Bool bSelect = sal_False );
240cdf0e10cSrcweir     sal_Bool EndOfColumn        ( sal_Bool bSelect = sal_False );
241cdf0e10cSrcweir     sal_Bool StartOfNextColumn  ( sal_Bool bSelect = sal_False );
242cdf0e10cSrcweir     sal_Bool EndOfNextColumn    ( sal_Bool bSelect = sal_False );
243cdf0e10cSrcweir     sal_Bool StartOfPrevColumn  ( sal_Bool bSelect = sal_False );
244cdf0e10cSrcweir     sal_Bool EndOfPrevColumn    ( sal_Bool bSelect = sal_False );
245cdf0e10cSrcweir 
246*256193c1Smseidel     // Setze den Cursor auf die Seite "nPage" an den Anfang
247*256193c1Smseidel     // zusätzlich zu der gleichnamigen Implementierung in crsrsh.hxx
248cdf0e10cSrcweir     // werden hier alle bestehenden Selektionen vor dem Setzen des
249cdf0e10cSrcweir     // Cursors aufgehoben
250cdf0e10cSrcweir     sal_Bool    GotoPage( sal_uInt16 nPage, sal_Bool bRecord );
251cdf0e10cSrcweir 
252*256193c1Smseidel     // Setzen des Cursors; merken der alten Position für Zurückblättern.
253cdf0e10cSrcweir     DECL_LINK( ExecFlyMac, void * );
254cdf0e10cSrcweir 
255cdf0e10cSrcweir     sal_Bool    PageCrsr(SwTwips lOffset, sal_Bool bSelect);
256cdf0e10cSrcweir 
257cdf0e10cSrcweir     // Felder Update
25869a74367SOliver-Rainer Wittmann     void    UpdateInputFlds( SwInputFieldList* pLst = 0 );
259cdf0e10cSrcweir 
260cdf0e10cSrcweir     void    NoEdit(sal_Bool bHideCrsr = sal_True);
261cdf0e10cSrcweir     void    Edit();
IsNoEdit() const262cdf0e10cSrcweir     sal_Bool    IsNoEdit() const { return bNoEdit; }
263cdf0e10cSrcweir 
IsRetainSelection() const264cdf0e10cSrcweir     sal_Bool IsRetainSelection() const { return mbRetainSelection; }
SetRetainSelection(sal_Bool bRet)265cdf0e10cSrcweir     void SetRetainSelection( sal_Bool bRet ) { mbRetainSelection = bRet; }
266cdf0e10cSrcweir 
267cdf0e10cSrcweir     // change current data base and notify
268cdf0e10cSrcweir     void ChgDBData(const SwDBData& SwDBData);
269cdf0e10cSrcweir 
270*256193c1Smseidel     // Löschen
271cdf0e10cSrcweir     long    DelToEndOfLine();
272cdf0e10cSrcweir     long    DelToStartOfLine();
273cdf0e10cSrcweir     long    DelLine();
274cdf0e10cSrcweir     long    DelLeft();
275cdf0e10cSrcweir 
276*256193c1Smseidel     // löscht auch Rahmen bzw. setzt den Cursor in den Rahmen,
277cdf0e10cSrcweir     // wenn bDelFrm == sal_False ist
278cdf0e10cSrcweir     long    DelRight();
279cdf0e10cSrcweir     long    DelToEndOfPara();
280cdf0e10cSrcweir     long    DelToStartOfPara();
281cdf0e10cSrcweir     long    DelToEndOfSentence();
282cdf0e10cSrcweir     long    DelToStartOfSentence();
283cdf0e10cSrcweir     long    DelNxtWord();
284cdf0e10cSrcweir     long    DelPrvWord();
285cdf0e10cSrcweir 
286*256193c1Smseidel     // Prüft, ob eine Wortselektion vorliegt.
287*256193c1Smseidel     // Gemäss den Regeln für intelligentes Cut / Paste
288cdf0e10cSrcweir     // werden umgebende Spaces rausgeschnitten.
289*256193c1Smseidel     // Liefert Art der Wortselektion zurück (siehe enum)
290cdf0e10cSrcweir     enum word {
291cdf0e10cSrcweir             NO_WORD = 0,
292cdf0e10cSrcweir             WORD_SPACE_BEFORE = 1,
293cdf0e10cSrcweir             WORD_SPACE_AFTER = 2,
294cdf0e10cSrcweir             WORD_NO_SPACE = 3
295cdf0e10cSrcweir         };
296cdf0e10cSrcweir     int     IntelligentCut(int nSelectionType, sal_Bool bCut = sal_True);
297cdf0e10cSrcweir 
298cdf0e10cSrcweir     // Editieren
299dec99bbdSOliver-Rainer Wittmann     void Insert( SwField& rFld );
3003b32dd21SOliver-Rainer Wittmann 
301cdf0e10cSrcweir     void    Insert(const String &);
3023b32dd21SOliver-Rainer Wittmann 
303cdf0e10cSrcweir     // Graphic
304cdf0e10cSrcweir     void    Insert( const String &rPath, const String &rFilter,
305cdf0e10cSrcweir                     const Graphic &, SwFlyFrmAttrMgr * = 0,
306cdf0e10cSrcweir                     sal_Bool bRule = sal_False );
307cdf0e10cSrcweir 
308cdf0e10cSrcweir     void    InsertByWord( const String & );
309cdf0e10cSrcweir     void    InsertPageBreak(const String *pPageDesc = 0, sal_uInt16 nPgNum = 0 );
310cdf0e10cSrcweir     void    InsertLineBreak();
311cdf0e10cSrcweir     void    InsertColumnBreak();
312cdf0e10cSrcweir     void    InsertFootnote(const String &, sal_Bool bEndNote = sal_False, sal_Bool bEdit = sal_True );
313cdf0e10cSrcweir     void    SplitNode( sal_Bool bAutoFormat = sal_False, sal_Bool bCheckTableStart = sal_True );
31452f1c2eeSArmin Le Grand     bool    CanInsert();
315cdf0e10cSrcweir 
316cdf0e10cSrcweir     // Verzeichnisse
317cdf0e10cSrcweir     void    InsertTableOf(const SwTOXBase& rTOX, const SfxItemSet* pSet = 0);
318cdf0e10cSrcweir     sal_Bool    UpdateTableOf(const SwTOXBase& rTOX, const SfxItemSet* pSet = 0);
319cdf0e10cSrcweir 
320cdf0e10cSrcweir     // Numerierung und Bullets
321cdf0e10cSrcweir     /**
322cdf0e10cSrcweir        Turns on numbering or bullets.
323cdf0e10cSrcweir 
324cdf0e10cSrcweir        @param bNum    sal_True: turn on numbering
325cdf0e10cSrcweir                       sal_False: turn on bullets
326cdf0e10cSrcweir     */
327cdf0e10cSrcweir     void    NumOrBulletOn(sal_Bool bNum); // #i29560#
328cdf0e10cSrcweir     void    NumOrBulletOff(); // #i29560#
329cdf0e10cSrcweir     void    NumOn();
330cdf0e10cSrcweir     void    BulletOn();
331cdf0e10cSrcweir 
332cdf0e10cSrcweir     //OLE
333*256193c1Smseidel     void    InsertObject(     /*SvInPlaceObjectRef *pObj, */       // != 0 for Clipboard
334cdf0e10cSrcweir                           const svt::EmbeddedObjectRef&,
335cdf0e10cSrcweir                           SvGlobalName *pName = 0,      // != 0 entspr. Object erzeugen.
336cdf0e10cSrcweir                           sal_Bool bActivate = sal_True,
337*256193c1Smseidel                           sal_uInt16 nSlotId = 0);       // SlotId für Dialog
338cdf0e10cSrcweir 
339cdf0e10cSrcweir     sal_Bool    InsertOleObject( const svt::EmbeddedObjectRef& xObj, SwFlyFrmFmt **pFlyFrmFmt = 0 );
340cdf0e10cSrcweir     void    LaunchOLEObj( long nVerb = 0 );             // Server starten
IsOLEObj() const341cdf0e10cSrcweir     sal_Bool    IsOLEObj() const { return GetCntType() == CNT_OLE;}
342cdf0e10cSrcweir     virtual void MoveObjectIfActive( svt::EmbeddedObjectRef& xObj, const Point& rOffset );
343cdf0e10cSrcweir     virtual void CalcAndSetScale( svt::EmbeddedObjectRef& xObj,
344cdf0e10cSrcweir                                   const SwRect *pFlyPrtRect = 0,
345b3b0b271SMichael Stahl                                   const SwRect *pFlyFrmRect = 0,
346b3b0b271SMichael Stahl                                   const bool bNoTxtFrmPrtAreaChanged = false );
347cdf0e10cSrcweir     virtual void ConnectObj( svt::EmbeddedObjectRef&  xIPObj, const SwRect &rPrt,
348cdf0e10cSrcweir                              const SwRect &rFrm );
349cdf0e10cSrcweir 
350cdf0e10cSrcweir     // Vorlagen und Formate
351cdf0e10cSrcweir 
352cdf0e10cSrcweir     // enum gibt an, was geschehen soll, wenn das Style nicht gefunden wurde
353cdf0e10cSrcweir     enum GetStyle { GETSTYLE_NOCREATE,          // keins anlegen
354cdf0e10cSrcweir                     GETSTYLE_CREATESOME,        // falls auf PoolId mapt anlegen
355*256193c1Smseidel                     GETSTYLE_CREATEANY };       // ggfs. Standard returnen
356cdf0e10cSrcweir 
357cdf0e10cSrcweir     SwTxtFmtColl*   GetParaStyle(const String &rCollName,
358cdf0e10cSrcweir                                     GetStyle eCreate = GETSTYLE_NOCREATE);
359cdf0e10cSrcweir     SwCharFmt*      GetCharStyle(const String &rFmtName,
360cdf0e10cSrcweir                                     GetStyle eCreate = GETSTYLE_NOCREATE);
361cdf0e10cSrcweir     SwFrmFmt*       GetTblStyle(const String &rFmtName);
362cdf0e10cSrcweir 
363cdf0e10cSrcweir     void    SetPageStyle(const String &rCollName);
364cdf0e10cSrcweir 
365cdf0e10cSrcweir     String  GetCurPageStyle( const sal_Bool bCalcFrm = sal_True ) const;
366cdf0e10cSrcweir 
367*256193c1Smseidel     // Aktuelle Vorlage anhand der geltenden Attribute ändern
368cdf0e10cSrcweir     void    QuickUpdateStyle();
369cdf0e10cSrcweir 
370cdf0e10cSrcweir     enum DoType { UNDO, REDO, REPEAT };
371cdf0e10cSrcweir 
372cdf0e10cSrcweir     void    Do( DoType eDoType, sal_uInt16 nCnt = 1 );
373cdf0e10cSrcweir     String  GetDoString( DoType eDoType ) const;
374cdf0e10cSrcweir     String  GetRepeatString() const;
375cdf0e10cSrcweir     sal_uInt16  GetDoStrings( DoType eDoType, SfxStringListItem& rStrLstItem ) const;
376cdf0e10cSrcweir 
377cdf0e10cSrcweir     // Suchen oder Ersetzen
378cdf0e10cSrcweir     sal_uLong SearchPattern(const com::sun::star::util::SearchOptions& rSearchOpt,
379cdf0e10cSrcweir                          sal_Bool bSearchInNotes,
380cdf0e10cSrcweir                          SwDocPositions eStart, SwDocPositions eEnde,
381cdf0e10cSrcweir                          FindRanges eFlags = FND_IN_BODY,
382cdf0e10cSrcweir                          int bReplace = sal_False );
383cdf0e10cSrcweir 
384cdf0e10cSrcweir     sal_uLong SearchTempl  (const String &rTempl,
385cdf0e10cSrcweir                          SwDocPositions eStart, SwDocPositions eEnde,
386cdf0e10cSrcweir                          FindRanges eFlags = FND_IN_BODY,
387cdf0e10cSrcweir                          const String* pReplTempl = 0 );
388cdf0e10cSrcweir 
389cdf0e10cSrcweir     sal_uLong SearchAttr   (const SfxItemSet& rFindSet,
390cdf0e10cSrcweir                          sal_Bool bNoColls,
391cdf0e10cSrcweir                          SwDocPositions eStart,SwDocPositions eEnde,
392cdf0e10cSrcweir                          FindRanges eFlags = FND_IN_BODY,
393cdf0e10cSrcweir                          const com::sun::star::util::SearchOptions* pSearchOpt = 0,
394cdf0e10cSrcweir                          const SfxItemSet* pReplaceSet = 0);
395cdf0e10cSrcweir 
396cdf0e10cSrcweir     void AutoCorrect( SvxAutoCorrect& rACorr, sal_Unicode cChar = ' ' );
397cdf0e10cSrcweir 
398cdf0e10cSrcweir     // Aktion vor Cursorbewegung
399*256193c1Smseidel     // Hebt ggfs. Selektionen auf, triggert Timer und GCAttr()
400cdf0e10cSrcweir     void    MoveCrsr( sal_Bool bWithSelect = sal_False );
401cdf0e10cSrcweir 
402cdf0e10cSrcweir     // Eingabefelder updaten
403cdf0e10cSrcweir     sal_Bool    StartInputFldDlg(SwField*, sal_Bool bNextButton, Window* pParentWin = 0, ByteString* pWindowState = 0);
404cdf0e10cSrcweir     // update DropDown fields
405cdf0e10cSrcweir     sal_Bool    StartDropDownFldDlg(SwField*, sal_Bool bNextButton, ByteString* pWindowState = 0);
406cdf0e10cSrcweir 
407*256193c1Smseidel     // "Handler" für Änderungen an der DrawView - für Controls.
408cdf0e10cSrcweir     virtual void DrawSelChanged( );
409cdf0e10cSrcweir 
410cdf0e10cSrcweir     // springe zum Bookmark und setze die "Selections-Flags" wieder richtig
411cdf0e10cSrcweir     sal_Bool GotoMark( const ::sw::mark::IMark* const pMark );
412cdf0e10cSrcweir     sal_Bool GotoMark( const ::sw::mark::IMark* const pMark, sal_Bool bSelect, sal_Bool bStart );
413cdf0e10cSrcweir     sal_Bool GotoMark( const ::rtl::OUString& rName );
414cdf0e10cSrcweir     sal_Bool GoNextBookmark(); // sal_True, wenn's noch eine gab
415cdf0e10cSrcweir     sal_Bool GoPrevBookmark();
416cdf0e10cSrcweir 
417cdf0e10cSrcweir     bool GotoFieldmark(::sw::mark::IFieldmark const * const pMark);
418cdf0e10cSrcweir 
419cdf0e10cSrcweir     sal_Bool GotoField( const SwFmtFld& rFld );
420cdf0e10cSrcweir 
421cdf0e10cSrcweir     // jump to the next / previous hyperlink - inside text and also
422cdf0e10cSrcweir     // on graphics
423cdf0e10cSrcweir     sal_Bool SelectNextPrevHyperlink( sal_Bool bNext = sal_True );
424cdf0e10cSrcweir 
425*256193c1Smseidel     // Zugehörige SwView ermitteln
GetView() const426cdf0e10cSrcweir     const SwView&       GetView() const { return rView; }
GetView()427cdf0e10cSrcweir     SwView&             GetView() { return rView; }
428cdf0e10cSrcweir 
429cdf0e10cSrcweir     // Weil es sonst keiner macht, gibt es hier eine ExecMacro()
430cdf0e10cSrcweir     void ExecMacro( const SvxMacro& rMacro, String* pRet = 0, SbxArray* pArgs = 0 );
431cdf0e10cSrcweir     // rufe ins dunkle Basic/JavaScript
432cdf0e10cSrcweir     sal_uInt16 CallEvent( sal_uInt16 nEvent, const SwCallMouseEvent& rCallEvent,
433cdf0e10cSrcweir                         sal_Bool bCheckPtr = sal_False, SbxArray* pArgs = 0,
434cdf0e10cSrcweir                         const Link* pCallBack = 0 );
435cdf0e10cSrcweir 
436cdf0e10cSrcweir     // ein Klick aus das angegebene Feld. Der Cursor steht auf diesem.
437*256193c1Smseidel     // Führe die vor definierten Aktionen aus.
438cdf0e10cSrcweir     void ClickToField( const SwField& rFld );
439cdf0e10cSrcweir     void ClickToINetAttr( const SwFmtINetFmt& rItem, sal_uInt16 nFilter = URLLOAD_NOFILTER );
440cdf0e10cSrcweir     sal_Bool ClickToINetGrf( const Point& rDocPt, sal_uInt16 nFilter = URLLOAD_NOFILTER );
441cdf0e10cSrcweir     inline sal_Bool IsInClickToEdit() const ;
442cdf0e10cSrcweir 
443*256193c1Smseidel     // falls ein URL-Button selektiert ist, dessen URL returnen, ansonsten
444cdf0e10cSrcweir     // einen LeerString
445cdf0e10cSrcweir     sal_Bool GetURLFromButton( String& rURL, String& rDescr ) const;
446cdf0e10cSrcweir 
447cdf0e10cSrcweir     void NavigatorPaste( const NaviContentBookmark& rBkmk,
448cdf0e10cSrcweir                          const sal_uInt16 nAction );
449cdf0e10cSrcweir 
450cdf0e10cSrcweir     virtual void ApplyViewOptions( const SwViewOption &rOpt );
451cdf0e10cSrcweir 
452cdf0e10cSrcweir     // autom. Update von Vorlagen
453cdf0e10cSrcweir     void AutoUpdateFrame(SwFrmFmt* pFmt, const SfxItemSet& rStyleSet);
454cdf0e10cSrcweir     void AutoUpdatePara(SwTxtFmtColl* pColl, const SfxItemSet& rStyleSet);
455cdf0e10cSrcweir 
456*256193c1Smseidel     // Link fürs einfügen von Bereichen über Drag&Drop/Clipboard
457cdf0e10cSrcweir     DECL_STATIC_LINK( SwWrtShell, InsertRegionDialog, SwSectionData* );
458cdf0e10cSrcweir 
459cdf0e10cSrcweir 
460*256193c1Smseidel     // ctoren, der erstere ist eine Art kontrollierter copy ctor für weitere
461cdf0e10cSrcweir     // Sichten auf ein Dokument
462cdf0e10cSrcweir     SwWrtShell( SwWrtShell&, Window *pWin, SwView &rShell);
463cdf0e10cSrcweir     SwWrtShell( SwDoc& rDoc, Window *pWin, SwView &rShell,
464cdf0e10cSrcweir                 const SwViewOption *pViewOpt = 0);
465cdf0e10cSrcweir     virtual ~SwWrtShell();
466cdf0e10cSrcweir 
467cdf0e10cSrcweir     sal_Bool TryRemoveIndent(); // #i23725#
468cdf0e10cSrcweir 
469cdf0e10cSrcweir     String GetSelDescr() const;
470cdf0e10cSrcweir 
471cdf0e10cSrcweir private:
472cdf0e10cSrcweir 
473cdf0e10cSrcweir     SW_DLLPRIVATE void  OpenMark();
474cdf0e10cSrcweir     SW_DLLPRIVATE void  CloseMark( sal_Bool bOkFlag );
475cdf0e10cSrcweir 
476cdf0e10cSrcweir     SW_DLLPRIVATE String    GetWrdDelim();
477cdf0e10cSrcweir     SW_DLLPRIVATE String    GetSDelim();
478cdf0e10cSrcweir     SW_DLLPRIVATE String    GetBothDelim();
479cdf0e10cSrcweir 
480cdf0e10cSrcweir     struct ModeStack
481cdf0e10cSrcweir     {
482cdf0e10cSrcweir         ModeStack   *pNext;
483cdf0e10cSrcweir         sal_Bool        bAdd,
484cdf0e10cSrcweir                     bBlock,
485cdf0e10cSrcweir                     bExt,
486cdf0e10cSrcweir                     bIns;
ModeStackSwWrtShell::ModeStack487cdf0e10cSrcweir         ModeStack(ModeStack *pNextMode, sal_Bool _bIns, sal_Bool _bExt, sal_Bool _bAdd, sal_Bool _bBlock):
488cdf0e10cSrcweir             pNext(pNextMode),
489cdf0e10cSrcweir             bAdd(_bAdd),
490cdf0e10cSrcweir             bBlock(_bBlock),
491cdf0e10cSrcweir             bExt(_bExt),
492cdf0e10cSrcweir             bIns(_bIns)
493cdf0e10cSrcweir              {}
494cdf0e10cSrcweir     } *pModeStack;
495cdf0e10cSrcweir 
496cdf0e10cSrcweir     // Cursor bei PageUp/-Down mitnehmen
497cdf0e10cSrcweir     enum PageMove
498cdf0e10cSrcweir     {
499cdf0e10cSrcweir         MV_NO,
500cdf0e10cSrcweir         MV_PAGE_UP,
501cdf0e10cSrcweir         MV_PAGE_DOWN
502cdf0e10cSrcweir     }  ePageMove;
503cdf0e10cSrcweir 
504cdf0e10cSrcweir     struct CrsrStack
505cdf0e10cSrcweir     {
506cdf0e10cSrcweir         Point aDocPos;
507cdf0e10cSrcweir         CrsrStack *pNext;
508cdf0e10cSrcweir         sal_Bool bValidCurPos : 1;
509cdf0e10cSrcweir         sal_Bool bIsFrmSel : 1;
510cdf0e10cSrcweir         SwTwips lOffset;
511cdf0e10cSrcweir 
CrsrStackSwWrtShell::CrsrStack512cdf0e10cSrcweir         CrsrStack( sal_Bool bValid, sal_Bool bFrmSel, const Point &rDocPos,
513cdf0e10cSrcweir                     SwTwips lOff, CrsrStack *pN )
514cdf0e10cSrcweir             : aDocPos(rDocPos),
515cdf0e10cSrcweir             pNext(pN),
516cdf0e10cSrcweir             bValidCurPos( bValid ),
517cdf0e10cSrcweir             bIsFrmSel( bFrmSel ),
518cdf0e10cSrcweir             lOffset(lOff)
519cdf0e10cSrcweir         {
520cdf0e10cSrcweir 
521cdf0e10cSrcweir 
522cdf0e10cSrcweir         }
523cdf0e10cSrcweir 
524cdf0e10cSrcweir     } *pCrsrStack;
525cdf0e10cSrcweir 
526cdf0e10cSrcweir     SwView  &rView;
527cdf0e10cSrcweir 
528cdf0e10cSrcweir     Point   aDest;
529cdf0e10cSrcweir     sal_Bool    bDestOnStack;
HasCrsrStack() const530cdf0e10cSrcweir     sal_Bool    HasCrsrStack() const { return 0 != pCrsrStack; }
531cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool  PushCrsr(SwTwips lOffset, sal_Bool bSelect);
532cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool  PopCrsr(sal_Bool bUpdate, sal_Bool bSelect = sal_False);
533cdf0e10cSrcweir 
534cdf0e10cSrcweir     // ENDE Cursor bei PageUp/-Down mitnehmen
535cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool _SttWrd();
536cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool _EndWrd();
537cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool _NxtWrd();
538cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool _PrvWrd();
539cdf0e10cSrcweir     // --> OD 2008-08-06 #i92468#
540cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool _NxtWrdForDelete();
541cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool _PrvWrdForDelete();
542cdf0e10cSrcweir     // <--
543cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool _FwdSentence();
544cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool _BwdSentence();
545cdf0e10cSrcweir     sal_Bool _FwdPara();
546cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool _BwdPara();
547cdf0e10cSrcweir 
548cdf0e10cSrcweir     //  Selektionen
549cdf0e10cSrcweir     sal_Bool    bIns            :1;
550cdf0e10cSrcweir     sal_Bool    bInSelect       :1;
551cdf0e10cSrcweir     sal_Bool    bExtMode        :1;
552cdf0e10cSrcweir     sal_Bool    bAddMode        :1;
553cdf0e10cSrcweir     sal_Bool    bBlockMode      :1;
554cdf0e10cSrcweir     sal_Bool    bLayoutMode     :1;
555cdf0e10cSrcweir     sal_Bool    bNoEdit         :1;
556cdf0e10cSrcweir     sal_Bool    bCopy           :1;
557cdf0e10cSrcweir     sal_Bool    bSelWrd         :1;
558cdf0e10cSrcweir     sal_Bool    bSelLn          :1;
559cdf0e10cSrcweir     sal_Bool    bIsInClickToEdit:1;
560*256193c1Smseidel     sal_Bool    bClearMark      :1; // Selektion für ChartAutoPilot nicht löschen
561cdf0e10cSrcweir     sal_Bool    mbRetainSelection :1; // Do not remove selections
562cdf0e10cSrcweir 
563cdf0e10cSrcweir     Point   aStart;
564cdf0e10cSrcweir     Link    aSelTblLink;
565cdf0e10cSrcweir 
566cdf0e10cSrcweir     SELECTFUNC  fnLeaveSelect;
567cdf0e10cSrcweir 
568*256193c1Smseidel     // setzt den Cursorstack nach dem Bewegen mit PageUp/-Down zurück.
569cdf0e10cSrcweir     SW_DLLPRIVATE void  _ResetCursorStack();
570cdf0e10cSrcweir 
571cdf0e10cSrcweir     SW_DLLPRIVATE void  SttDragDrop(Timer *);
572cdf0e10cSrcweir 
573cdf0e10cSrcweir     using SwCrsrShell::SetCrsr;
574cdf0e10cSrcweir     SW_DLLPRIVATE long  SetCrsr(const Point *, sal_Bool bProp=sal_False );
575cdf0e10cSrcweir 
576cdf0e10cSrcweir     SW_DLLPRIVATE long  SetCrsrKillSel(const Point *, sal_Bool bProp=sal_False );
577cdf0e10cSrcweir 
578cdf0e10cSrcweir     SW_DLLPRIVATE long  StdSelect(const Point *, sal_Bool bProp=sal_False );
579cdf0e10cSrcweir     SW_DLLPRIVATE long  BeginDrag(const Point *, sal_Bool bProp=sal_False );
580cdf0e10cSrcweir     SW_DLLPRIVATE long  Drag(const Point *, sal_Bool bProp=sal_False );
581cdf0e10cSrcweir     SW_DLLPRIVATE long  EndDrag(const Point *, sal_Bool bProp=sal_False );
582cdf0e10cSrcweir 
583cdf0e10cSrcweir     SW_DLLPRIVATE long  ExtSelWrd(const Point *, sal_Bool bProp=sal_False );
584cdf0e10cSrcweir     SW_DLLPRIVATE long  ExtSelLn(const Point *, sal_Bool bProp=sal_False );
585cdf0e10cSrcweir 
586cdf0e10cSrcweir     // Verschieben von Text aus Drag and Drop; Point ist
587*256193c1Smseidel     // Destination für alle Selektionen.
588cdf0e10cSrcweir     SW_DLLPRIVATE long  MoveText(const Point *, sal_Bool bProp=sal_False );
589cdf0e10cSrcweir 
590cdf0e10cSrcweir     SW_DLLPRIVATE long  BeginFrmDrag(const Point *, sal_Bool bProp=sal_False );
591cdf0e10cSrcweir 
592cdf0e10cSrcweir     // nach SSize/Move eines Frames Update; Point ist Destination.
593cdf0e10cSrcweir     SW_DLLPRIVATE long  UpdateLayoutFrm(const Point *, sal_Bool bProp=sal_False );
594cdf0e10cSrcweir 
595cdf0e10cSrcweir     SW_DLLPRIVATE long  SttLeaveSelect(const Point *, sal_Bool bProp=sal_False );
596cdf0e10cSrcweir     SW_DLLPRIVATE long  AddLeaveSelect(const Point *, sal_Bool bProp=sal_False );
597cdf0e10cSrcweir     SW_DLLPRIVATE long  Ignore(const Point *, sal_Bool bProp=sal_False );
598cdf0e10cSrcweir 
LeaveExtSel()599cdf0e10cSrcweir     SW_DLLPRIVATE void  LeaveExtSel() { bSelWrd = bSelLn = sal_False;}
60052f1c2eeSArmin Le Grand     SW_DLLPRIVATE bool _CanInsert();
601cdf0e10cSrcweir 
602cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool  GoStart(sal_Bool KeepArea = sal_False, sal_Bool * = 0,
603cdf0e10cSrcweir             sal_Bool bSelect = sal_False, sal_Bool bDontMoveRegion = sal_False);
604cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool  GoEnd(sal_Bool KeepArea = sal_False, sal_Bool * = 0);
605cdf0e10cSrcweir 
606cdf0e10cSrcweir     enum BookMarkMove
607cdf0e10cSrcweir     {
608cdf0e10cSrcweir         BOOKMARK_INDEX,
609cdf0e10cSrcweir         BOOKMARK_NEXT,
610cdf0e10cSrcweir         BOOKMARK_PREV,
611cdf0e10cSrcweir         BOOKMARK_LAST_LAST_ENTRY
612cdf0e10cSrcweir     };
613cdf0e10cSrcweir 
614cdf0e10cSrcweir     SW_DLLPRIVATE sal_Bool MoveBookMark(BookMarkMove eFuncId, const ::sw::mark::IMark* const pMark=NULL);
615cdf0e10cSrcweir };
616cdf0e10cSrcweir 
ResetCursorStack()617cdf0e10cSrcweir inline void SwWrtShell::ResetCursorStack()
618cdf0e10cSrcweir {
619cdf0e10cSrcweir     if ( HasCrsrStack() )
620cdf0e10cSrcweir         _ResetCursorStack();
621cdf0e10cSrcweir }
622cdf0e10cSrcweir 
SelTblCells(const Link & rLink,sal_Bool bMark)623cdf0e10cSrcweir inline void SwWrtShell::SelTblCells(const Link &rLink, sal_Bool bMark )
624cdf0e10cSrcweir {
625cdf0e10cSrcweir     SetSelTblCells( sal_True );
626cdf0e10cSrcweir     bClearMark = bMark;
627cdf0e10cSrcweir     aSelTblLink = rLink;
628cdf0e10cSrcweir }
EndSelTblCells()629cdf0e10cSrcweir inline void SwWrtShell::EndSelTblCells()
630cdf0e10cSrcweir {
631cdf0e10cSrcweir     SetSelTblCells( sal_False );
632cdf0e10cSrcweir     bClearMark = sal_True;
633cdf0e10cSrcweir }
634cdf0e10cSrcweir 
IsInClickToEdit() const635cdf0e10cSrcweir inline sal_Bool SwWrtShell::IsInClickToEdit() const { return bIsInClickToEdit; }
636cdf0e10cSrcweir 
Is_FnDragEQBeginDrag() const637cdf0e10cSrcweir inline sal_Bool SwWrtShell::Is_FnDragEQBeginDrag() const
638cdf0e10cSrcweir {
639cdf0e10cSrcweir #ifdef GCC
640cdf0e10cSrcweir     SELECTFUNC  fnTmp = &SwWrtShell::BeginDrag;
641cdf0e10cSrcweir     return fnDrag == fnTmp;
642cdf0e10cSrcweir #else
643cdf0e10cSrcweir     return sal::static_int_cast< sal_Bool >(fnDrag == &SwWrtShell::BeginDrag);
644cdf0e10cSrcweir #endif
645cdf0e10cSrcweir }
646cdf0e10cSrcweir 
647cdf0e10cSrcweir #endif
648*256193c1Smseidel 
649*256193c1Smseidel /* vim: set noet sw=4 ts=4: */
650