1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: wrtsh.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
33 #include <com/sun/star/embed/XEmbeddedObject.hpp>
36 #include <sortopt.hxx>
46 class SwFlyFrmAttrMgr
;
52 class SwInputFieldList
;
57 class SvxINetBookmark
;
59 class NaviContentBookmark
;
60 struct SwCallMouseEvent
;
62 struct ChartSelectionInfo
;
63 class SfxStringListItem
;
66 namespace com
{ namespace sun
{ namespace star
{ namespace util
{
71 typedef sal_Int32 SelectionType
;
72 namespace nsSelectionType
74 const SelectionType SEL_TXT
= CNT_TXT
; // Text, niemals auch Rahmen 0x0001
75 const SelectionType SEL_GRF
= CNT_GRF
; // Grafik 0x0002
76 const SelectionType SEL_OLE
= CNT_OLE
; // OLE 0x0010
77 const SelectionType SEL_FRM
= 0x000020; // Rahmen, keine Inhaltsform
78 const SelectionType SEL_NUM
= 0x000040; // NumListe
79 const SelectionType SEL_TBL
= 0x000080; // Cursor steht in Tabelle
80 const SelectionType SEL_TBL_CELLS
= 0x000100; // Tabellenzellen sind selektiert
81 const SelectionType SEL_DRW
= 0x000200; // Zeichenobjekte (Rechteck, Kreis...)
82 const SelectionType SEL_DRW_TXT
= 0x000400; // Draw-Textobjekte im Editmode
83 const SelectionType SEL_BEZ
= 0x000800; // Bezierobjekte editieren
84 const SelectionType SEL_DRW_FORM
= 0x001000; // Zeichenobjekte: DB-Forms
85 const SelectionType SEL_FOC_FRM_CTRL
= 0x002000; // a form control is focused. Neither set nor evaluated by the SwWrtShell itself, only by it's clients.
86 const SelectionType SEL_MEDIA
= 0x004000; // Media object
87 const SelectionType SEL_EXTRUDED_CUSTOMSHAPE
= 0x008000; // extruded custom shape
88 const SelectionType SEL_FONTWORK
= 0x010000; // fontwork
89 const SelectionType SEL_POSTIT
= 0x020000; //annotation
93 class SW_DLLPUBLIC SwWrtShell
: public SwFEShell
96 using SwCrsrShell::Left
;
97 using SwCrsrShell::Right
;
98 using SwCrsrShell::Up
;
99 using SwCrsrShell::Down
;
100 using SwCrsrShell::LeftMargin
;
101 using SwCrsrShell::RightMargin
;
102 using SwCrsrShell::SelectTxtAttr
;
103 using SwCrsrShell::GotoPage
;
104 using SwFEShell::InsertObject
;
105 using SwEditShell::AutoCorrect
;
106 using SwCrsrShell::GotoMark
;
110 using SwEditShell::Insert
;
112 typedef long (SwWrtShell::*SELECTFUNC
)(const Point
*, BOOL bProp
);
115 SELECTFUNC fnSetCrsr
;
116 SELECTFUNC fnEndDrag
;
117 SELECTFUNC fnKillSel
;
119 // Alle Selektionen aufheben
120 long ResetSelect( const Point
*, BOOL
);
122 //setzt den Cursorstack nach dem Bewegen mit PageUp/-Down
123 //zurueck, falls ein Stack aufgebaut ist
124 inline void ResetCursorStack();
125 SelectionType
GetSelectionType() const;
127 BOOL
IsModePushed() const { return 0 != pModeStack
; }
133 BOOL
IsInSelect() const { return bInSelect
; }
134 void SetInSelect(BOOL bSel
= TRUE
) { bInSelect
= bSel
; }
135 // Liegt eine Text- oder Rahmenselektion vor?
136 BOOL
HasSelection() const { return SwCrsrShell::HasSelection() ||
137 IsMultiSelection() || IsSelFrmMode() || IsObjSelected(); }
138 BOOL
Pop( BOOL bOldCrsr
= TRUE
);
141 BOOL
IsStdMode() const { return !bExtMode
&& !bAddMode
&& !bBlockMode
; }
145 long ToggleExtMode();
146 BOOL
IsExtMode() const { return bExtMode
; }
150 long ToggleAddMode();
151 BOOL
IsAddMode() const { return bAddMode
; }
153 void EnterBlockMode();
154 void LeaveBlockMode();
155 long ToggleBlockMode();
156 BOOL
IsBlockMode() const { return bBlockMode
; }
158 void SetInsMode( BOOL bOn
= TRUE
);
159 void ToggleInsMode() { SetInsMode( !bIns
); }
160 BOOL
IsInsMode() const { return bIns
; }
161 void SetRedlineModeAndCheckInsMode( USHORT eMode
);
163 void EnterSelFrmMode(const Point
*pStartDrag
= 0);
164 void LeaveSelFrmMode();
165 BOOL
IsSelFrmMode() const { return bLayoutMode
; }
166 // Selektion von Rahmen aufheben
169 // Tabellenzellen selektieren fuer Bearbeiten von Formeln in der Ribbonbar
170 inline void SelTblCells( const Link
&rLink
, BOOL bMark
= TRUE
);
171 inline void EndSelTblCells();
173 //Wortweisen oder zeilenweisen Selektionsmodus verlassen. Wird
174 //in der Regel in MB-Up gerufen.
175 BOOL
IsExtSel() const { return bSelWrd
|| bSelLn
; }
177 // erfrage, ob der akt. fnDrag - Pointer auf BeginDrag gesetzt ist
178 // Wird fuer MouseMove gebraucht, um die Bugs 55592/55931 zu umgehen.
179 inline BOOL
Is_FnDragEQBeginDrag() const;
182 BOOL
IsInWrd() { return IsInWord(); }
183 BOOL
IsSttWrd() { return IsStartWord(); }
185 BOOL
IsSttOfPara() const { return IsSttPara(); }
186 BOOL
IsEndOfPara() const { return IsEndPara(); }
188 //Word bzw. Satz selektieren.
189 BOOL
SelNearestWrd();
190 BOOL
SelWrd (const Point
* = 0, BOOL bProp
=FALSE
);
191 // --> FME 2004-07-30 #i32329# Enhanced selection
192 void SelSentence (const Point
* = 0, BOOL bProp
=FALSE
);
193 void SelPara (const Point
* = 0, BOOL bProp
=FALSE
);
197 //Basiscursortravelling
198 typedef BOOL (SwWrtShell:: *FNSimpleMove
)();
199 BOOL
SimpleMove( FNSimpleMove
, BOOL bSelect
);
201 BOOL
Left ( USHORT nMode
, BOOL bSelect
,
202 USHORT nCount
, BOOL bBasicCall
, BOOL bVisual
= FALSE
);
203 BOOL
Right ( USHORT nMode
, BOOL bSelect
,
204 USHORT nCount
, BOOL bBasicCall
, BOOL bVisual
= FALSE
);
205 BOOL
Up ( BOOL bSelect
= FALSE
, USHORT nCount
= 1,
206 BOOL bBasicCall
= FALSE
);
207 BOOL
Down ( BOOL bSelect
= FALSE
, USHORT nCount
= 1,
208 BOOL bBasicCall
= FALSE
);
209 BOOL
NxtWrd ( BOOL bSelect
= FALSE
) { return SimpleMove( &SwWrtShell::_NxtWrd
, bSelect
); }
210 BOOL
PrvWrd ( BOOL bSelect
= FALSE
) { return SimpleMove( &SwWrtShell::_PrvWrd
, bSelect
); }
212 BOOL
LeftMargin ( BOOL bSelect
, BOOL bBasicCall
);
213 BOOL
RightMargin( BOOL bSelect
, BOOL bBasicCall
);
215 BOOL
SttDoc ( BOOL bSelect
= FALSE
);
216 BOOL
EndDoc ( BOOL bSelect
= FALSE
);
218 BOOL
SttNxtPg ( BOOL bSelect
= FALSE
);
219 BOOL
SttPrvPg ( BOOL bSelect
= FALSE
);
220 BOOL
EndNxtPg ( BOOL bSelect
= FALSE
);
221 BOOL
EndPrvPg ( BOOL bSelect
= FALSE
);
222 BOOL
SttPg ( BOOL bSelect
= FALSE
);
223 BOOL
EndPg ( BOOL bSelect
= FALSE
);
224 BOOL
SttPara ( BOOL bSelect
= FALSE
);
225 BOOL
EndPara ( BOOL bSelect
= FALSE
);
226 BOOL
FwdPara ( BOOL bSelect
= FALSE
)
227 { return SimpleMove( &SwWrtShell::_FwdPara
, bSelect
); }
228 BOOL
BwdPara ( BOOL bSelect
= FALSE
)
229 { return SimpleMove( &SwWrtShell::_BwdPara
, bSelect
); }
230 BOOL
FwdSentence( BOOL bSelect
= FALSE
)
231 { return SimpleMove( &SwWrtShell::_FwdSentence
, bSelect
); }
232 BOOL
BwdSentence( BOOL bSelect
= FALSE
)
233 { return SimpleMove( &SwWrtShell::_BwdSentence
, bSelect
); }
235 // --> FME 2004-07-30 #i20126# Enhanced table selection
236 BOOL
SelectTableRowCol( const Point
& rPt
, const Point
* pEnd
= 0, bool bRowDrag
= false );
238 BOOL
SelectTableRow();
239 BOOL
SelectTableCol();
240 BOOL
SelectTableCell();
242 BOOL
SelectTxtAttr( USHORT nWhich
, const SwTxtAttr
* pAttr
= 0 );
244 // Spaltenweise Spruenge
245 BOOL
StartOfColumn ( BOOL bSelect
= FALSE
);
246 BOOL
EndOfColumn ( BOOL bSelect
= FALSE
);
247 BOOL
StartOfNextColumn ( BOOL bSelect
= FALSE
);
248 BOOL
EndOfNextColumn ( BOOL bSelect
= FALSE
);
249 BOOL
StartOfPrevColumn ( BOOL bSelect
= FALSE
);
250 BOOL
EndOfPrevColumn ( BOOL bSelect
= FALSE
);
252 // setze den Cursor auf die Seite "nPage" an den Anfang
253 // zusaetzlich zu der gleichnamigen Implementierung in crsrsh.hxx
254 // werden hier alle bestehenden Selektionen vor dem Setzen des
255 // Cursors aufgehoben
256 BOOL
GotoPage( USHORT nPage
, BOOL bRecord
);
258 //setzen des Cursors; merken der alten Position fuer Zurueckblaettern.
259 DECL_LINK( ExecFlyMac
, void * );
261 BOOL
PageCrsr(SwTwips lOffset
, BOOL bSelect
);
264 void UpdateInputFlds( SwInputFieldList
* pLst
= 0, BOOL bOnlyInSel
= FALSE
);
266 void NoEdit(BOOL bHideCrsr
= TRUE
);
268 BOOL
IsNoEdit() const { return bNoEdit
; }
270 BOOL
IsRetainSelection() const { return mbRetainSelection
; }
271 void SetRetainSelection( BOOL bRet
) { mbRetainSelection
= bRet
; }
273 // change current data base and notify
274 void ChgDBData(const SwDBData
& SwDBData
);
277 long DelToEndOfLine();
278 long DelToStartOfLine();
282 // loescht auch Rahmen bzw. setzt den Cursor in den Rahmen,
283 // wenn bDelFrm == FALSE ist
285 long DelToEndOfPara();
286 long DelToStartOfPara();
287 long DelToEndOfSentence();
288 long DelToStartOfSentence();
292 // Prueft, ob eine Wortselektion vorliegt.
293 // Gemaess den Regeln fuer intelligentes Cut / Paste
294 // werden umgebende Spaces rausgeschnitten.
295 // Liefert Art der Wortselektion zurueck (siehe enum)
298 WORD_SPACE_BEFORE
= 1,
299 WORD_SPACE_AFTER
= 2,
302 int IntelligentCut(int nSelectionType
, BOOL bCut
= TRUE
);
305 void Insert(SwField
&);
306 void Insert(const String
&);
308 void Insert( const String
&rPath
, const String
&rFilter
,
309 const Graphic
&, SwFlyFrmAttrMgr
* = 0,
310 BOOL bRule
= FALSE
);
312 void InsertByWord( const String
& );
313 void InsertPageBreak(const String
*pPageDesc
= 0, USHORT nPgNum
= 0 );
314 void InsertLineBreak();
315 void InsertColumnBreak();
316 void InsertFootnote(const String
&, BOOL bEndNote
= FALSE
, BOOL bEdit
= TRUE
);
317 void SplitNode( BOOL bAutoFormat
= FALSE
, BOOL bCheckTableStart
= TRUE
);
321 void InsertTableOf(const SwTOXBase
& rTOX
, const SfxItemSet
* pSet
= 0);
322 BOOL
UpdateTableOf(const SwTOXBase
& rTOX
, const SfxItemSet
* pSet
= 0);
325 BOOL
UpdateField( sw::mark::IFieldmark
&fieldBM
);
327 // Numerierung und Bullets
329 Turns on numbering or bullets.
331 @param bNum TRUE: turn on numbering
332 FALSE: turn on bullets
334 void NumOrBulletOn(BOOL bNum
); // #i29560#
335 void NumOrBulletOff(); // #i29560#
340 void InsertObject( /*SvInPlaceObjectRef *pObj, */ // != 0 fuer Clipboard
341 const svt::EmbeddedObjectRef
&,
342 SvGlobalName
*pName
= 0, // != 0 entspr. Object erzeugen.
343 BOOL bActivate
= TRUE
,
344 USHORT nSlotId
= 0); // SlotId fuer Dialog
346 BOOL
InsertOleObject( const svt::EmbeddedObjectRef
& xObj
, SwFlyFrmFmt
**pFlyFrmFmt
= 0 );
347 void LaunchOLEObj( long nVerb
= 0 ); // Server starten
348 BOOL
IsOLEObj() const { return GetCntType() == CNT_OLE
;}
349 virtual void MoveObjectIfActive( svt::EmbeddedObjectRef
& xObj
, const Point
& rOffset
);
350 virtual void CalcAndSetScale( svt::EmbeddedObjectRef
& xObj
,
351 const SwRect
*pFlyPrtRect
= 0,
352 const SwRect
*pFlyFrmRect
= 0 );
353 virtual void ConnectObj( svt::EmbeddedObjectRef
& xIPObj
, const SwRect
&rPrt
,
354 const SwRect
&rFrm
);
356 // Vorlagen und Formate
358 // enum gibt an, was geschehen soll, wenn das Style nicht gefunden wurde
359 enum GetStyle
{ GETSTYLE_NOCREATE
, // keins anlegen
360 GETSTYLE_CREATESOME
, // falls auf PoolId mapt anlegen
361 GETSTYLE_CREATEANY
}; // ggfs Standard returnen
363 SwTxtFmtColl
* GetParaStyle(const String
&rCollName
,
364 GetStyle eCreate
= GETSTYLE_NOCREATE
);
365 SwCharFmt
* GetCharStyle(const String
&rFmtName
,
366 GetStyle eCreate
= GETSTYLE_NOCREATE
);
367 SwFrmFmt
* GetTblStyle(const String
&rFmtName
);
369 void SetPageStyle(const String
&rCollName
);
371 String
GetCurPageStyle( const BOOL bCalcFrm
= TRUE
) const;
373 // Aktuelle Vorlage anhand der geltenden Attribute aendern
374 void QuickUpdateStyle();
376 enum DoType
{ UNDO
, REDO
, REPEAT
};
378 void Do( DoType eDoType
, USHORT nCnt
= 1 );
379 String
GetDoString( DoType eDoType
) const;
380 String
GetRepeatString() const;
381 USHORT
GetDoStrings( DoType eDoType
, SfxStringListItem
& rStrLstItem
) const;
383 //Suchen oder Ersetzen
384 ULONG
SearchPattern(const com::sun::star::util::SearchOptions
& rSearchOpt
,
386 SwDocPositions eStart
, SwDocPositions eEnde
,
387 FindRanges eFlags
= FND_IN_BODY
,
388 int bReplace
= FALSE
);
390 ULONG
SearchTempl (const String
&rTempl
,
391 SwDocPositions eStart
, SwDocPositions eEnde
,
392 FindRanges eFlags
= FND_IN_BODY
,
393 const String
* pReplTempl
= 0 );
395 ULONG
SearchAttr (const SfxItemSet
& rFindSet
,
397 SwDocPositions eStart
,SwDocPositions eEnde
,
398 FindRanges eFlags
= FND_IN_BODY
,
399 const com::sun::star::util::SearchOptions
* pSearchOpt
= 0,
400 const SfxItemSet
* pReplaceSet
= 0);
402 void AutoCorrect( SvxAutoCorrect
& rACorr
, sal_Unicode cChar
= ' ' );
404 // Aktion vor Cursorbewegung
405 // Hebt gfs. Selektionen auf, triggert Timer und GCAttr()
406 void MoveCrsr( BOOL bWithSelect
= FALSE
);
408 // Eingabefelder updaten
409 BOOL
StartInputFldDlg(SwField
*, BOOL bNextButton
, Window
* pParentWin
= 0, ByteString
* pWindowState
= 0);
410 // update DropDown fields
411 BOOL
StartDropDownFldDlg(SwField
*, BOOL bNextButton
, ByteString
* pWindowState
= 0);
413 //"Handler" fuer Anederungen an der DrawView - fuer Controls.
414 virtual void DrawSelChanged( );
416 // springe zum Bookmark und setze die "Selections-Flags" wieder richtig
417 BOOL
GotoMark( const ::sw::mark::IMark
* const pMark
);
418 BOOL
GotoMark( const ::sw::mark::IMark
* const pMark
, BOOL bSelect
, BOOL bStart
);
419 BOOL
GotoMark( const ::rtl::OUString
& rName
);
420 BOOL
GoNextBookmark(); // TRUE, wenn's noch eine gab
421 BOOL
GoPrevBookmark();
423 bool GotoFieldmark(::sw::mark::IFieldmark
const * const pMark
);
425 BOOL
GotoField( const SwFmtFld
& rFld
);
427 // jump to the next / previous hyperlink - inside text and also
429 BOOL
SelectNextPrevHyperlink( BOOL bNext
= TRUE
);
431 // Zugehoerige SwView ermitteln
432 const SwView
& GetView() const { return rView
; }
433 SwView
& GetView() { return rView
; }
435 //Weil es sonst keiner macht, gibt es hier eine ExecMacro()
436 void ExecMacro( const SvxMacro
& rMacro
, String
* pRet
= 0, SbxArray
* pArgs
= 0 );
437 // rufe ins dunkle Basic/JavaScript
438 USHORT
CallEvent( USHORT nEvent
, const SwCallMouseEvent
& rCallEvent
,
439 BOOL bCheckPtr
= FALSE
, SbxArray
* pArgs
= 0,
440 const Link
* pCallBack
= 0 );
442 // ein Klick aus das angegebene Feld. Der Cursor steht auf diesem.
443 // Fuehre die vor definierten Aktionen aus.
444 void ClickToField( const SwField
& rFld
);
445 void ClickToINetAttr( const SwFmtINetFmt
& rItem
, USHORT nFilter
= URLLOAD_NOFILTER
);
446 BOOL
ClickToINetGrf( const Point
& rDocPt
, USHORT nFilter
= URLLOAD_NOFILTER
);
447 inline BOOL
IsInClickToEdit() const ;
449 // fall ein URL-Button selektiert ist, dessen URL returnen, ansonsten
451 BOOL
GetURLFromButton( String
& rURL
, String
& rDescr
) const;
453 void NavigatorPaste( const NaviContentBookmark
& rBkmk
,
454 const USHORT nAction
);
456 // die Core erzeugt eine Selektion, das SttSelect muss gerufen werden
457 virtual void NewCoreSelection();
459 // autom. Update von Vorlagen
460 void AutoUpdateFrame(SwFrmFmt
* pFmt
, const SfxItemSet
& rStyleSet
);
461 void AutoUpdatePara(SwTxtFmtColl
* pColl
, const SfxItemSet
& rStyleSet
);
463 // Link fuers einfuegen von Bereichen uebers Drag&Drop/Clipboard
464 DECL_STATIC_LINK( SwWrtShell
, InsertRegionDialog
, SwSection
* );
467 //ctoren, der erstere ist eine Art kontrollierter copy ctor fuer weitere
468 //Sichten auf ein Dokument
469 SwWrtShell( SwWrtShell
&, Window
*pWin
, SwView
&rShell
);
470 SwWrtShell( SwDoc
& rDoc
, Window
*pWin
, SwView
&rShell
,
471 const SwViewOption
*pViewOpt
= 0);
472 virtual ~SwWrtShell();
474 BOOL
TryRemoveIndent(); // #i23725#
476 String
GetSelDescr() const;
480 SW_DLLPRIVATE
void OpenMark();
481 SW_DLLPRIVATE
void CloseMark( BOOL bOkFlag
);
483 SW_DLLPRIVATE String
GetWrdDelim();
484 SW_DLLPRIVATE String
GetSDelim();
485 SW_DLLPRIVATE String
GetBothDelim();
494 ModeStack(ModeStack
*pNextMode
, BOOL _bIns
, BOOL _bExt
, BOOL _bAdd
, BOOL _bBlock
):
503 // Cursor bei PageUp / -Down mitnehmen
515 BOOL bValidCurPos
: 1;
519 CrsrStack( BOOL bValid
, BOOL bFrmSel
, const Point
&rDocPos
,
520 SwTwips lOff
, CrsrStack
*pN
)
523 bValidCurPos( bValid
),
524 bIsFrmSel( bFrmSel
),
537 BOOL
HasCrsrStack() const { return 0 != pCrsrStack
; }
538 SW_DLLPRIVATE BOOL
PushCrsr(SwTwips lOffset
, BOOL bSelect
);
539 SW_DLLPRIVATE BOOL
PopCrsr(BOOL bUpdate
, BOOL bSelect
= FALSE
);
541 // ENDE Cursor bei PageUp / -Down mitnehmen
542 SW_DLLPRIVATE BOOL
_SttWrd();
543 SW_DLLPRIVATE BOOL
_EndWrd();
544 SW_DLLPRIVATE BOOL
_NxtWrd();
545 SW_DLLPRIVATE BOOL
_PrvWrd();
546 // --> OD 2008-08-06 #i92468#
547 SW_DLLPRIVATE BOOL
_NxtWrdForDelete();
548 SW_DLLPRIVATE BOOL
_PrvWrdForDelete();
550 SW_DLLPRIVATE BOOL
_FwdSentence();
551 SW_DLLPRIVATE BOOL
_BwdSentence();
553 SW_DLLPRIVATE BOOL
_BwdPara();
566 BOOL bIsInClickToEdit
:1;
567 BOOL bClearMark
:1; // Selektion fuer ChartAutoPilot nicht loeschen
568 BOOL mbRetainSelection
:1; // Do not remove selections
573 SELECTFUNC fnLeaveSelect
;
575 //setzt den Cursorstack nach dem Bewegen mit PageUp/-Down zurueck.
576 SW_DLLPRIVATE
void _ResetCursorStack();
578 SW_DLLPRIVATE
void SttDragDrop(Timer
*);
580 using SwCrsrShell::SetCrsr
;
581 SW_DLLPRIVATE
long SetCrsr(const Point
*, BOOL bProp
=FALSE
);
583 SW_DLLPRIVATE
long SetCrsrKillSel(const Point
*, BOOL bProp
=FALSE
);
585 SW_DLLPRIVATE
long StdSelect(const Point
*, BOOL bProp
=FALSE
);
586 SW_DLLPRIVATE
long BeginDrag(const Point
*, BOOL bProp
=FALSE
);
587 SW_DLLPRIVATE
long Drag(const Point
*, BOOL bProp
=FALSE
);
588 SW_DLLPRIVATE
long EndDrag(const Point
*, BOOL bProp
=FALSE
);
590 SW_DLLPRIVATE
long ExtSelWrd(const Point
*, BOOL bProp
=FALSE
);
591 SW_DLLPRIVATE
long ExtSelLn(const Point
*, BOOL bProp
=FALSE
);
593 //Verschieben von Text aus Drag and Drop; Point ist
594 //Destination fuer alle Selektionen.
595 SW_DLLPRIVATE
long MoveText(const Point
*, BOOL bProp
=FALSE
);
597 SW_DLLPRIVATE
long BeginFrmDrag(const Point
*, BOOL bProp
=FALSE
);
599 //nach SSize/Move eines Frames Update; Point ist Destination.
600 SW_DLLPRIVATE
long UpdateLayoutFrm(const Point
*, BOOL bProp
=FALSE
);
602 SW_DLLPRIVATE
long SttLeaveSelect(const Point
*, BOOL bProp
=FALSE
);
603 SW_DLLPRIVATE
long AddLeaveSelect(const Point
*, BOOL bProp
=FALSE
);
604 SW_DLLPRIVATE
long Ignore(const Point
*, BOOL bProp
=FALSE
);
606 SW_DLLPRIVATE
void LeaveExtSel() { bSelWrd
= bSelLn
= FALSE
;}
607 SW_DLLPRIVATE BOOL
_CanInsert();
609 SW_DLLPRIVATE BOOL
GoStart(BOOL KeepArea
= FALSE
, BOOL
* = 0,
610 BOOL bSelect
= FALSE
, BOOL bDontMoveRegion
= FALSE
);
611 SW_DLLPRIVATE BOOL
GoEnd(BOOL KeepArea
= FALSE
, BOOL
* = 0);
618 BOOKMARK_LAST_LAST_ENTRY
621 SW_DLLPRIVATE BOOL
MoveBookMark(BookMarkMove eFuncId
, const ::sw::mark::IMark
* const pMark
=NULL
);
624 inline void SwWrtShell::ResetCursorStack()
626 if ( HasCrsrStack() )
630 inline void SwWrtShell::SelTblCells(const Link
&rLink
, BOOL bMark
)
632 SetSelTblCells( TRUE
);
636 inline void SwWrtShell::EndSelTblCells()
638 SetSelTblCells( FALSE
);
642 inline BOOL
SwWrtShell::IsInClickToEdit() const { return bIsInClickToEdit
; }
644 inline BOOL
SwWrtShell::Is_FnDragEQBeginDrag() const
647 SELECTFUNC fnTmp
= &SwWrtShell::BeginDrag
;
648 return fnDrag
== fnTmp
;
650 return sal::static_int_cast
< BOOL
>(fnDrag
== &SwWrtShell::BeginDrag
);