20#include <config_wasm_strip.h>
25#include <com/sun/star/accessibility/XAccessible.hpp>
26#include <com/sun/star/awt/PopupMenuDirection.hpp>
27#include <com/sun/star/awt/XPopupMenu.hpp>
28#include <com/sun/star/i18n/XBreakIterator.hpp>
29#include <com/sun/star/i18n/ScriptType.hpp>
30#include <com/sun/star/i18n/InputSequenceCheckMode.hpp>
31#include <com/sun/star/i18n/UnicodeScript.hpp>
32#include <com/sun/star/i18n/XExtendedInputSequenceChecker.hpp>
33#include <com/sun/star/ui/ContextMenuExecuteEvent.hpp>
62#include <editeng/editeng.hxx>
74#include <bookmark.hxx>
101#include <inputwin.hxx>
150#include "../../core/crsr/callnk.hxx"
155#include <strings.hrc>
199 SdrObject* pTextBox = pTextBoxFormat->FindRealSdrObject();
244 aHitTestPos +=
Point( -1, 1 );
248 aHitTestPos +=
Point( 1, 1 );
263 static constexpr sal_uInt16
nNoPos = std::numeric_limits<sal_uInt16>::max();
355 eStyle = PointerStyle::NotAllowed;
363 bool bFrameIsValidTarget =
false;
367 bFrameIsValidTarget = (
m_pApplyTempl->eType == SfxStyleFamily::Frame );
369 if( bFrameIsValidTarget &&
386 rSh.SwCursorShell::SetVisibleCursor( rLPt );
402 ? PointerStyle::ChainNotAllowed : PointerStyle::Chain;
422 if ( !bExecHyperlinks )
425 if ( ( bSecureOption && nModifier ==
KEY_MOD1 ) ||
426 ( !bSecureOption && nModifier !=
KEY_MOD1 ) )
427 bExecHyperlinks =
true;
430 const bool bExecSmarttags = nModifier ==
KEY_MOD1;
433 bool bPrefSdrPointer =
false;
434 bool bHitHandle =
false;
435 bool bCntAtPos =
false;
442 else if ( (bHitHandle = (pSdrView->
PickHandle(rLPt) !=
nullptr)) )
445 bPrefSdrPointer =
true;
454 eStyle = PointerStyle::Arrow;
456 bPrefSdrPointer =
true;
462 SdrObject* pObj = (bNotInSelObj && bExecHyperlinks) ?
483 bPrefSdrPointer =
true;
490 if (eHit == SdrHitKind::UrlField && bExecHyperlinks)
493 bPrefSdrPointer =
true;
509 eStyle = bMovable ? PointerStyle::Move : PointerStyle::Arrow;
527 eStyle = PointerStyle::NotAllowed;
529 eStyle = PointerStyle::Move;
535 bPrefSdrPointer =
true;
543 if ( bPrefSdrPointer )
558 eStyle = PointerStyle::Arrow;
580 eStyle = PointerStyle::RefHand;
586 if( !bClickToFollow ||
589 eStyle = PointerStyle::RefHand;
592 else if (
GetView().GetWrtShell().GetViewOptions()->IsShowOutlineContentVisibilityButton())
601 eStyle = PointerStyle::RefHand;
611 OUString sQuickHelp(
SwResId(STR_CLICK_OUTLINE_CONTENT_TOGGLE_VISIBILITY));
613 &&
nPos + 1 < nOutlineNodesCount
615 sQuickHelp +=
" (" +
SwResId(STR_CLICK_OUTLINE_CONTENT_TOGGLE_VISIBILITY_EXT) +
")";
627 eStyle = PointerStyle::TextVertical;
632 eStyle = PointerStyle::ShowWhitespace;
634 eStyle = PointerStyle::HideWhitespace;
639 if( text::HoriOrientation::LEFT ==
m_eOrient )
640 eStyle = PointerStyle::AutoScrollE;
642 eStyle = PointerStyle::AutoScrollW;
655 Point aModPt( m_aMovePos );
663 const int nMaxScroll = 40;
669 rSh.
Drag(&aModPt,
false);
677 if ( m_xRowColumnSelectionStart )
679 Point aPos( aModPt );
692 if( aModPt.
Y() < ( rVisArea.
Top() + rVisArea.
Height() / 2 ) )
783 uno::Reference < i18n::XBreakIterator > xBI = pBreakIter->
GetBreakIter();
787 if (xBI->getScriptType( rText, 0 ) == i18n::ScriptType::COMPLEX)
790 nCTLScriptPos = xBI->nextScript( rText, 0, i18n::ScriptType::COMPLEX );
792 return (0 <= nCTLScriptPos && nCTLScriptPos <= rText.getLength());
798 const OUString &rInBuffer)
819 default: bLang =
false;
826 if(SfxItemState::DEFAULT <= aLangSet.
GetItemState(nWhich))
829 if ( eLang == eBufferLanguage )
860 i18n::UnicodeScript
eType = !rInBuffer.isEmpty() ?
862 i18n::UnicodeScript_kScriptCount;
864 bool bSystemIsNonLatin =
false;
867 case i18n::UnicodeScript_kGreek:
868 case i18n::UnicodeScript_kCyrillic:
871 bSystemIsNonLatin =
true;
879 bLang = (bSystemIsNonLatin != bOOoLangIsNonLatin);
904 uno::Reference < i18n::XExtendedInputSequenceChecker > xISC =
pCheckIt->
xCheck;
920 const sal_Int32 nOldLen = aOldText.getLength();
922 sal_Int32 nExpandSelection = 0;
925 sal_Int32 nTmpPos = nOldLen;
927 i18n::InputSequenceCheckMode::STRICT : i18n::InputSequenceCheckMode::BASIC;
929 OUString aNewText( aOldText );
932 for( sal_Int32 k = 0; k <
m_aInBuffer.getLength(); ++k)
935 const sal_Int32 nPrevPos =xISC->correctInputSequence( aNewText, nTmpPos - 1, cChar, nCheckMode );
938 if (nPrevPos != aNewText.getLength())
939 nTmpPos = nPrevPos + 1;
943 sal_Int32 nNewLen = aNewText.getLength();
946 sal_Int32 nChgPos = 0;
947 while ( nChgPos < nOldLen && nChgPos < nNewLen &&
948 pOldText[nChgPos] == pNewText[nChgPos] )
951 const sal_Int32 nChgLen = nNewLen - nChgPos;
955 nExpandSelection = nOldLen - nChgPos;
962 for( sal_Int32 k = 0; k <
m_aInBuffer.getLength(); ++k )
965 if (xISC->checkInputSequence( aNewText, nTmpPos - 1, cChar, nCheckMode ))
968 aNewText += OUStringChar( cChar );
972 m_aInBuffer = aNewText.copy( aOldText.getLength() );
987 OSL_ENSURE( nCursorStartPos >= nExpandSelection,
"cannot expand selection as specified!!" );
988 if (nExpandSelection && nCursorStartPos >= nExpandSelection)
996 uno::Reference< frame::XDispatchRecorder > xRecorder =
998 if ( xRecorder.is() )
1023#define MOVE_LEFT_SMALL 0
1024#define MOVE_UP_SMALL 1
1025#define MOVE_RIGHT_BIG 2
1026#define MOVE_DOWN_BIG 3
1027#define MOVE_LEFT_BIG 4
1028#define MOVE_UP_BIG 5
1029#define MOVE_RIGHT_SMALL 6
1030#define MOVE_DOWN_SMALL 7
1033#define MOVE_LEFT_HUGE 8
1034#define MOVE_UP_HUGE 9
1035#define MOVE_RIGHT_HUGE 10
1036#define MOVE_DOWN_HUGE 11
1091 const bool bFollowTextFlow =
1096 &rFormatAnchor, bFollowTextFlow,
1097 false, &aRefPoint );
1119 nRight = aSnap.
Width();
1134 default: OSL_ENSURE(
true,
"ChangeFly: Unknown direction." );
1137 if ((RndStdIds::FLY_AS_CHAR == eAnchorId) && ( nDir % 2 ))
1142 else if ( aDiff < -aTmp.
Height() )
1149 bool bDown = 0 != ( nDir & 0x02 );
1152 case text::VertOrientation::CHAR_TOP:
1153 if( bDown ) eNew = text::VertOrientation::CENTER;
1155 case text::VertOrientation::CENTER:
1156 eNew = bDown ? text::VertOrientation::TOP : text::VertOrientation::CHAR_TOP;
1158 case text::VertOrientation::TOP:
1159 if( !bDown ) eNew = text::VertOrientation::CENTER;
1161 case text::VertOrientation::LINE_TOP:
1162 if( bDown ) eNew = text::VertOrientation::LINE_CENTER;
1164 case text::VertOrientation::LINE_CENTER:
1165 eNew = bDown ? text::VertOrientation::LINE_BOTTOM : text::VertOrientation::LINE_TOP;
1167 case text::VertOrientation::LINE_BOTTOM:
1168 if( !bDown ) eNew = text::VertOrientation::LINE_CENTER;
1182 if (bWeb && (RndStdIds::FLY_AT_PARA == eAnchorId)
1190 case text::HoriOrientation::RIGHT:
1192 eNew = text::HoriOrientation::LEFT;
1194 case text::HoriOrientation::LEFT:
1196 eNew = text::HoriOrientation::RIGHT;
1210 bool bSetPos = (RndStdIds::FLY_AS_CHAR != eAnchorId);
1213 bSetPos = RndStdIds::FLY_AT_PAGE == eAnchorId;
1230 const bool bOnePixel(
1268 if(0 != nX || 0 != nY)
1289 nX *= aSnap.
Width();
1303 bool bDummy1, bDummy2;
1304 const bool bVertAnchor = rSh.
IsFrameVertical(
true, bDummy1, bDummy2 );
1305 bool bHoriMove = !bVertAnchor == !( nDir % 2 );
1307 !bHoriMove || (rSh.
GetAnchorId() != RndStdIds::FLY_AS_CHAR);
1320 if( SdrHdlKind::Anchor == pHdl->
GetKind() ||
1321 SdrHdlKind::Anchor_TR == pHdl->
GetKind() )
1336 pSdrView->
BegDragObj(aStartPoint,
nullptr, pHdl, 0);
1340 bool bWasNoSnap = rDragStat.
IsNoSnap();
1355 const_cast<SdrDragStat&
>(rDragStat).SetNoSnap(bWasNoSnap);
1379 pWindow->KeyInput(rKEvt);
1445 bool bFlushBuffer =
false;
1446 bool bNormalChar =
false;
1483 if( ( bVertText && ( !bTableCursor || bVertTable ) ) ||
1484 ( bTableCursor && bVertTable ) )
1487 if (eDirection == SvxFrameDirection::Vertical_LR_BT)
1539 std::shared_ptr<SwContentControl> pContentControl = rFormatContentControl.
GetContentControl();
1540 if (pContentControl->ShouldOpenPopup(rKeyCode))
1546 if (pContentControlButton)
1548 pContentControlButton->StartPopup();
1574 = static_txtattr_cast<SwTextContentControl*>(pAttr);
1577 std::shared_ptr<SwContentControl> pContentControl
1579 if (pContentControl->IsInteractingCharacter(aCh))
1595 nEvent = SvMacroItemId::SwFrmKeyInputAlpha;
1597 nEvent = SvMacroItemId::SwFrmKeyInputNoAlpha;
1604 xVar->PutString( pFlyFormat->
GetName() );
1605 xArgs->Put(xVar.
get(), 1);
1608 if( SvMacroItemId::SwFrmKeyInputAlpha == nEvent )
1609 xVar->PutChar( aCh );
1612 xArgs->Put(xVar.
get(), 2);
1616 if( !sRet.isEmpty() && sRet.toInt32()!=0 )
1632 pAnchor = rHdlList.
GetHdl(SdrHdlKind::Anchor_TR);
1641 uno::Reference< frame::XDispatchRecorder > xRecorder =
1643 if ( !xRecorder.is() )
1651 OUString sFormulaEntry;
1653 enum class SwKeyState { CheckKey, InsChar, InsTab,
1654 NoNum, NumOff, NumOrNoNum, NumDown, NumUp,
1655 NumIndentInc, NumIndentDec,
1658 NextCell, PrevCell, OutlineUp, OutlineDown,
1659 GlossaryExpand, NextPrevGlossary,
1663 LaunchOLEObject, GoIntoFly, GoIntoDrawing,
1664 EnterDrawHandleMode,
1665 CheckDocReadOnlyKeys,
1666 CheckAutoCorrect, EditFormula,
1667 ColLeftBig, ColRightBig,
1668 ColLeftSmall, ColRightSmall,
1671 CellLeftBig, CellRightBig,
1672 CellLeftSmall, CellRightSmall,
1673 CellTopBig, CellBottomBig,
1674 CellTopSmall, CellBottomSmall,
1676 Fly_Change, Draw_Change,
1683 SwKeyState eKeyState = bIsDocReadOnly ? SwKeyState::CheckDocReadOnlyKeys : SwKeyState::CheckKey;
1684 SwKeyState eNextKeyState = SwKeyState::End;
1693 while( SwKeyState::End != eKeyState )
1695 SwKeyState eFlyState = SwKeyState::KeyToView;
1699 case SwKeyState::CheckKey:
1700 eKeyState = SwKeyState::KeyToView;
1703 !rKeyCode.
IsMod2() &&
'=' == aCh &&
1718 eKeyState = SwKeyState::EditFormula;
1726 sFormulaEntry =
"=";
1738 eKeyState = SwKeyState::GlossaryExpand;
1745 eKeyState = SwKeyState::ColRightBig;
1746 eFlyState = SwKeyState::Fly_Change;
1748 goto KEYINPUT_CHECKTABLE;
1751 eKeyState = SwKeyState::ColRightSmall;
1752 eFlyState = SwKeyState::Fly_Change;
1754 goto KEYINPUT_CHECKTABLE;
1757 eKeyState = SwKeyState::ColLeftSmall;
1758 goto KEYINPUT_CHECKTABLE;
1761 eKeyState = SwKeyState::ColLeftBig;
1762 goto KEYINPUT_CHECKTABLE;
1765 eKeyState = SwKeyState::CellRightBig;
1766 goto KEYINPUT_CHECKTABLE;
1769 eKeyState = SwKeyState::CellRightSmall;
1770 goto KEYINPUT_CHECKTABLE;
1773 eKeyState = SwKeyState::CellLeftSmall;
1774 goto KEYINPUT_CHECKTABLE;
1777 eKeyState = SwKeyState::CellLeftBig;
1778 goto KEYINPUT_CHECKTABLE;
1781 eKeyState = SwKeyState::ColBottomSmall;
1782 eFlyState = SwKeyState::Fly_Change;
1784 goto KEYINPUT_CHECKTABLE;
1787 eKeyState = SwKeyState::ColBottomBig;
1788 eFlyState = SwKeyState::Fly_Change;
1790 goto KEYINPUT_CHECKTABLE;
1793 eKeyState = SwKeyState::CellBottomSmall;
1794 goto KEYINPUT_CHECKTABLE;
1797 eKeyState = SwKeyState::CellBottomBig;
1798 goto KEYINPUT_CHECKTABLE;
1801 eKeyState = SwKeyState::CellTopBig;
1802 goto KEYINPUT_CHECKTABLE;
1805 eKeyState = SwKeyState::CellTopSmall;
1806 goto KEYINPUT_CHECKTABLE;
1814 ! (Window::GetIndicatorState() & KeyIndicatorState::CAPSLOCK)
1818 bFlushBuffer =
true;
1819 bNormalChar =
false;
1820 eKeyState = SwKeyState::End;
1826 if(!pFlyFormat && SwKeyState::KeyToView != eFlyState &&
1829 eKeyState = SwKeyState::Draw_Change;
1832 eKeyState = eFlyState;
1833 else if( SwKeyState::Draw_Change != eKeyState)
1834 eKeyState = SwKeyState::EnterCharCell;
1850 eKeyState = pFlyFormat ? SwKeyState::Fly_Change : SwKeyState::Draw_Change;
1854 eKeyState = SwKeyState::Draw_Change;
1873 eFlyState = SwKeyState::Fly_Change;
1876 goto KEYINPUT_CHECKTABLE_INSDEL;
1880 goto KEYINPUT_CHECKTABLE_INSDEL;
1888 eFlyState = SwKeyState::Fly_Change;
1891 goto KEYINPUT_CHECKTABLE_INSDEL;
1902 pDropDown->LaunchPopup();
1903 eKeyState = SwKeyState::End;
1906 eFlyState = SwKeyState::Fly_Change;
1909 goto KEYINPUT_CHECKTABLE_INSDEL;
1912KEYINPUT_CHECKTABLE_INSDEL:
1917 eKeyState = SwKeyState::KeyToView;
1918 if(SwKeyState::KeyToView != eFlyState)
1922 eKeyState = SwKeyState::Draw_Change;
1924 eKeyState = SwKeyState::Fly_Change;
1934 eKeyState = SwKeyState::NumOrNoNum;
1939 eKeyState = SwKeyState::End;
1951 eKeyState = SwKeyState::LaunchOLEObject;
1953 eKeyState = SwKeyState::GoIntoFly;
1958 eKeyState = SwKeyState::GoIntoDrawing;
1960 eKeyState = SwKeyState::GoIntoFly;
1964 eKeyState = SwKeyState::GlossaryExpand;
1973 eKeyState = SwKeyState::NumOff;
1974 eNextKeyState = SwKeyState::OutlineLvOff;
1983 eKeyState = SwKeyState::AutoFormatByInput;
1987 eNextKeyState = eKeyState;
1988 eKeyState = SwKeyState::CheckAutoCorrect;
2000 eKeyState = SwKeyState::NoNum;
2003 eKeyState = SwKeyState::SpecialInsert;
2022 || ( rSh.
IsNoNum() && bOnlyBackspaceKey ) ) )
2028 eKeyState = SwKeyState::End;
2036 eKeyState = SwKeyState::NumUp;
2042 eKeyState = SwKeyState::NumIndentDec;
2061 bool bCallNumOrNoNum(
false );
2062 if ( bOnlyBackspaceKey && !rSh.
IsNoNum() )
2064 bCallNumOrNoNum =
true;
2066 else if ( !bOnlyBackspaceKey && rSh.
IsNoNum() )
2068 bCallNumOrNoNum =
true;
2070 else if ( bOnlyBackspaceKey
2076 if ( pCurrNumRule !=
nullptr
2079 bCallNumOrNoNum =
true;
2082 if ( bCallNumOrNoNum
2085 eKeyState = SwKeyState::NumOrNoNum;
2093 eKeyState = SwKeyState::End;
2099 eFlyState = SwKeyState::Fly_Change;
2101 goto KEYINPUT_CHECKTABLE_INSDEL;
2111 eKeyState = SwKeyState::GotoNextFieldMark;
2116 eKeyState = SwKeyState::End;
2124 eKeyState = SwKeyState::NumDown;
2128 eKeyState = SwKeyState::InsTab;
2138 eKeyState = SwKeyState::NextObject;
2143 eKeyState = SwKeyState::NextCell;
2146 eKeyState = SwKeyState::CheckAutoCorrect;
2147 eNextKeyState = SwKeyState::NextCell;
2150 else if (pTextContentControl)
2155 switch (pCC->GetType())
2158 eKeyState = SwKeyState::InsTab;
2161 eKeyState = SwKeyState::GotoNextFieldMark;
2167 eKeyState = SwKeyState::InsTab;
2175 eKeyState = SwKeyState::OutlineDown;
2186 eKeyState = SwKeyState::GotoPrevFieldMark;
2191 eKeyState = SwKeyState::End;
2197 eKeyState = SwKeyState::NumUp;
2206 eKeyState = SwKeyState::PrevObject;
2211 eKeyState = SwKeyState::PrevCell;
2214 eKeyState = SwKeyState::CheckAutoCorrect;
2215 eNextKeyState = SwKeyState::PrevCell;
2218 else if (pTextContentControl)
2220 eKeyState = SwKeyState::GotoPrevFieldMark;
2224 eKeyState = SwKeyState::End;
2231 eKeyState = SwKeyState::OutlineUp;
2243 aTmpQHD.
Next( pACorr &&
2245 eKeyState = SwKeyState::NextPrevGlossary;
2248 eKeyState = SwKeyState::InsTab;
2253 eKeyState = SwKeyState::EnterDrawHandleMode;
2258 eKeyState = SwKeyState::NumIndentInc;
2271 eKeyState = SwKeyState::NextPrevGlossary;
2277 eKeyState = SwKeyState::EnterDrawHandleMode;
2283 eKeyState = SwKeyState::NumIndentDec;
2292 eKeyState = SwKeyState::GoIntoFly;
2295 eKeyState = SwKeyState::GoIntoDrawing;
2297 eKeyState = SwKeyState::GoIntoFly;
2304 case SwKeyState::CheckDocReadOnlyKeys:
2306 eKeyState = SwKeyState::KeyToView;
2311 bNormalChar =
false;
2312 eKeyState = SwKeyState::End;
2322 SwKeyState::PrevObject : SwKeyState::NextObject;
2338 eKeyState = SwKeyState::GoIntoFly;
2346 bNormalChar =
false;
2347 eKeyState = SwKeyState::End;
2357 case SwKeyState::EnterCharCell:
2359 eKeyState = SwKeyState::KeyToView;
2364 eKeyState = SwKeyState::End;
2369 eKeyState = SwKeyState::End;
2376 case SwKeyState::KeyToView:
2378 eKeyState = SwKeyState::End;
2390 if( !
m_aInBuffer.isEmpty() && ( !bNormalChar || bIsDocReadOnly ))
2398 eKeyState = SwKeyState::End;
2402 bFlushBuffer =
true;
2403 bNormalChar =
false;
2413 if( !bIsDocReadOnly && bNormalChar )
2420 bool bTextBox =
false;
2427 if (bDrawObject && !bTextBox)
2434 pSwDrawTextShell->Init();
2442 m_rView.AttrChangedNotify(
nullptr);
2445 eKeyState = SwKeyState::InsChar;
2449 bNormalChar =
false;
2450 Window::KeyInput( aKeyEvent );
2455 case SwKeyState::LaunchOLEObject:
2458 eKeyState = SwKeyState::End;
2461 case SwKeyState::GoIntoFly:
2465 m_rView.AttrChangedNotify(
nullptr);
2467 eKeyState = SwKeyState::End;
2470 case SwKeyState::GoIntoDrawing:
2474 SdrObject* pObj = pMark->GetMarkedSdrObj();
2479 pSwDrawTextShell->Init();
2482 eKeyState = SwKeyState::End;
2485 case SwKeyState::EnterDrawHandleMode:
2490 const_cast<SdrHdlList&
>(rHdlList).TravelFocusHdl(bForward);
2491 eKeyState = SwKeyState::End;
2494 case SwKeyState::InsTab:
2498 Window::KeyInput( aKeyEvent );
2499 eKeyState = SwKeyState::End;
2504 case SwKeyState::InsChar:
2515 auto pTextContentControl = static_txtattr_cast<SwTextContentControl*>(pAttr);
2517 std::shared_ptr<SwContentControl> pContentControl = rFormatContentControl.
GetContentControl();
2518 if (pContentControl->IsInteractingCharacter(aCh))
2521 eKeyState = SwKeyState::End;
2533 OSL_ENSURE(pFieldmark,
2534 "Where is my FieldMark??");
2538 OSL_ENSURE(pFieldmark->IsExpanded(),
2539 "where is the otherpos?");
2540 if (pFieldmark->IsExpanded())
2545 eKeyState = SwKeyState::End;
2550 const bool bIsNormalChar =
2552 if( bAppendSpace && bIsNormalChar &&
2564 (
'*' == aCh ||
'_' == aCh ) ) ||
2565 ( pACorr->
IsAutoCorrFlag( ACFlags::ChgQuotes ) && (
'\"' == aCh ))||
2566 ( pACorr->
IsAutoCorrFlag( ACFlags::ChgSglQuotes ) && (
'\'' == aCh))))
2570 if(
'\"' != aCh &&
'\'' != aCh )
2575 pACorr->
IsAutoCorrFlag( ACFlags::CapitalStartSentence | ACFlags::CapitalStartWord |
2576 ACFlags::ChgOrdinalNumber | ACFlags::AddNonBrkSpace |
2577 ACFlags::ChgToEnEmDash | ACFlags::SetINetAttr |
2578 ACFlags::Autocorrect | ACFlags::TransliterateRTL |
2579 ACFlags::SetDOIAttr ) &&
2580 '\"' != aCh &&
'\'' != aCh &&
'*' != aCh &&
'_' != aCh
2593 bFlushBuffer = !delayFlush;
2597 keyInputFlushTimerStop.dismiss();
2602 eKeyState = SwKeyState::End;
2607 eKeyState = SwKeyState::End;
2611 case SwKeyState::CheckAutoCorrect:
2614 pACorr->
IsAutoCorrFlag( ACFlags::CapitalStartSentence | ACFlags::CapitalStartWord |
2615 ACFlags::ChgOrdinalNumber | ACFlags::TransliterateRTL |
2616 ACFlags::ChgToEnEmDash | ACFlags::SetINetAttr |
2617 ACFlags::Autocorrect | ACFlags::SetDOIAttr ) &&
2623 eKeyState = eNextKeyState;
2629 sal_uInt16 nSlotId = 0;
2633 case SwKeyState::SpecialInsert:
2637 case SwKeyState::NoNum:
2641 case SwKeyState::NumOff:
2645 case SwKeyState::OutlineLvOff:
2648 case SwKeyState::NumDown:
2652 case SwKeyState::NumUp:
2656 case SwKeyState::NumIndentInc:
2661 case SwKeyState::GotoNextFieldMark:
2667 case SwKeyState::GotoPrevFieldMark:
2673 case SwKeyState::NumIndentDec:
2677 case SwKeyState::OutlineDown:
2680 case SwKeyState::OutlineUp:
2684 case SwKeyState::NextCell:
2689 case SwKeyState::PrevCell:
2693 case SwKeyState::AutoFormatByInput:
2697 case SwKeyState::NextObject:
2698 case SwKeyState::PrevObject:
2707 m_rView.AttrChangedNotify(
nullptr);
2713 case SwKeyState::GlossaryExpand:
2718 OUString sFnd(aTmpQHD.
CurStr());
2736 sFnd = sFnd.copy(aTmpQHD.
CurLen());
2745 case SwKeyState::NextPrevGlossary:
2750 case SwKeyState::EditFormula:
2752 const sal_uInt16
nId = SwInputChild::GetChildWindowId();
2757 GetChildWindow(
nId ));
2778 case SwKeyState::Fly_Change:
2788 case SwKeyState::Draw_Change :
2799 eKeyState = SwKeyState::End;
2817 const bool bAutoTextShown
2859 const bool bOnlyText,
bool bLockView )
2864 int nTmpSetCursor = 0;
2915 pWindow->MouseButtonDown(aMEvt);
2929 if( bExecFormatPaintbrush )
2940 bool bOverFly =
false;
2941 bool bPageAnchored =
false;
2945 if (bOverHeaderFooterFly && (!bIsDocReadOnly && rSh.
GetCurField()))
2947 bOverHeaderFooterFly =
false;
2957 bool bActive =
true;
3050 rSh.
Chain( *pFormat, aDocPos );
3059 bool bCallBase =
true;
3093 if ( SwTab::SEL_HORI <= nMouseTabCol && SwTab::COLSEL_VERT >= nMouseTabCol )
3168 bool bOnlyText =
false;
3186 if( !bIsDocReadOnly &&
3189 nullptr != ( pHdl = pSdrView->
PickHandle(aDocPos) ) &&
3190 ( pHdl->
GetKind() == SdrHdlKind::Anchor ||
3191 pHdl->
GetKind() == SdrHdlKind::Anchor_TR ) )
3217 bool bHitHandle = pHdl && pHdl->
GetKind() != SdrHdlKind::Anchor &&
3218 pHdl->
GetKind() != SdrHdlKind::Anchor_TR;
3243 if ( !bExecHyperlinks )
3248 bExecHyperlinks =
true;
3253 if (0 == nNumberOfClicks && 0 < aMEvt.
GetClicks())
3254 nNumberOfClicks = 4;
3256 bool bExecDrawTextLink =
false;
3267 if (1 == nNumberOfClicks)
3274 if (bExecHyperlinks && pSdrView)
3277 pSdrView->
PickAnything(aMEvt, SdrMouseEventKind::BUTTONDOWN, aVEvt);
3279 if (aVEvt.
meEvent == SdrEventKind::ExecuteUrl)
3280 bExecDrawTextLink =
true;
3284 if (1 == nNumberOfClicks && !bExecDrawTextLink)
3319 m_rView.AttrChangedNotify(
nullptr);
3345 ( pHdl->
GetKind() == SdrHdlKind::Anchor ||
3346 pHdl->
GetKind() == SdrHdlKind::Anchor_TR ) )
3364 m_rView.AttrChangedNotify(
nullptr);
3367 bool bSelObj = rSh.
SelectObj( aDocPos, nFlag );
3377 m_rView.AttrChangedNotify(
nullptr);
3393 m_rView.AttrChangedNotify(
nullptr);
3402 switch ( nNumberOfClicks )
3427 SfxCallMode::RECORD|SfxCallMode::SLOT);
3443 SfxCallMode::RECORD|SfxCallMode::SLOT);
3451 pSwDrawTextShell->Init();
3466 if( !bIsDocReadOnly &&
3528 IFieldmark *pFieldBM =
const_cast< IFieldmark*
> ( aContentAtPos.
aFnd.
pFieldmark );
3542 const OUString sToxText = aToxContentAtPos.
sStr;
3543 if (!sToxText.isEmpty() && aToxContentAtPos.
pFndTextAttr)
3581 if ( 3 == nNumberOfClicks )
3635 if ( !bExecDrawTextLink )
3709 if (nNumberOfClicks == 2)
3717 SfxCallMode::RECORD | SfxCallMode::SLOT);
3731 if (rMarkList.
GetMark(0) ==
nullptr)
3734 m_rView.AttrChangedNotify(
nullptr);
3778 m_rView.AttrChangedNotify(
nullptr);
3791 if( bExecHyperlinks )
3837 bool bEditableFieldClicked =
false;
3842 bool bEditableField = (aFieldAtPos.
pFndTextAttr !=
nullptr
3845 if (!bEditableField)
3864 bEditableFieldClicked =
true;
3869 bool bOverURLGrf =
false;
3871 bOverURLGrf = bOverSelect =
nullptr != rSh.
IsURLGrfAtPos( aDocPos );
3875 MoveCursor( rSh, aDocPos, bOnlyText, bLockView );
3878 if (!bOverURLGrf && !bExecDrawTextLink && !bOnlyText)
3892 if ( !bOverSelect && bEditableFieldClicked && (!pCursorField ||
3951 Window::MouseButtonDown(aMEvt);
3963 bool bChkTableSel =
false;
3965 switch ( nMouseTabCol )
3969 nPointer = PointerStyle::VSizeBar;
3970 bChkTableSel =
true;
3974 nPointer = PointerStyle::HSizeBar;
3975 bChkTableSel =
true;
3979 nPointer = PointerStyle::TabSelectSE;
3983 nPointer = PointerStyle::TabSelectSW;
3987 nPointer = PointerStyle::TabSelectS;
3990 nPointer = PointerStyle::TabSelectE;
3994 nPointer = PointerStyle::TabSelectW;
3999 if ( PointerStyle::Null != nPointer &&
4015 ? PointerStyle::VSizeBar
4016 : PointerStyle::HSizeBar;
4032 pWindow->MouseMove(rMEvt);
4041 if( bExecFormatPaintbrush )
4178 Point aPos( aDocPt );
4201 Point aTmp( aDocPt );
4213 if(aRelPos.
X() >= 0)
4217 const SfxPointItem aTmp1( SID_ATTR_POSITION, aRelPos );
4225 const SvxStatusItem aCell( SID_TABLE_CELL, OUString(), StatusCategory::NONE );
4236 bool bDelShadCursor =
true;
4256 if( pSdrView && (
nullptr!=( pHdl = pSdrView->
PickHandle( aOld ) )||
4258 ( pHdl->
GetKind() == SdrHdlKind::Anchor ||
4259 pHdl->
GetKind() == SdrHdlKind::Anchor_TR ) )
4262 if( aNew.
X() || aNew.
Y() )
4329 ? SvMacroItemId::SwFrmMove
4330 : SvMacroItemId::SwFrmResize;
4332 if (
nullptr != pFlyFormat)
4334 if (
nullptr != pMacro &&
4339 sal_uInt32
nPos = 0;
4342 xVar->PutString( pFlyFormat->
GetName() );
4343 xArgs->Put(xVar.
get(), ++
nPos);
4345 if( SvMacroItemId::SwFrmResize == nEvent )
4348 xVar->PutUShort(
static_cast< sal_uInt16
>(
g_eSdrMoveHdl) );
4349 xArgs->Put(xVar.
get(), ++
nPos);
4353 xVar->PutLong( aDocPt.
X() - aSttPt.
X() );
4354 xArgs->Put(xVar.
get(), ++
nPos);
4356 xVar->PutLong( aDocPt.
Y() - aSttPt.
Y() );
4357 xArgs->Put(xVar.
get(), ++
nPos);
4367 if( !sRet.isEmpty() && sRet.toInt32()!=0 )
4373 if( bIsDocReadOnly )
4387 bResizeKeepRatio = bResizeKeepRatio && pHdl->
IsCornerHdl();
4395 pSdrView->
SetOrtho(!bResizeKeepRatio);
4403 pSdrView->
SetOrtho(bResizeKeepRatio);
4412 else if( bIsDocReadOnly )
4417 Point aTmp( aDocPt );
4438 Point aTmp( aDocPt );
4450 rSh.
Drag( &aDocPt,
false );
4488 bool bTstShdwCursor =
true;
4498 const void* pTmp = pINet;
4503 bTstShdwCursor =
false;
4520 rSh.
CallEvent( SvMacroItemId::OnMouseOut,
4521 aLastCallEvent,
true );
4523 if( !rSh.
CallEvent( SvMacroItemId::OnMouseOver,
4528 else if( aLastCallEvent.
HasEvent() )
4531 rSh.
CallEvent( SvMacroItemId::OnMouseOut,
4532 aLastCallEvent,
true );
4535 if( bTstShdwCursor && bInsWin && !bIsDocReadOnly &&
4549 if( text::HoriOrientation::RIGHT !=
m_eOrient && text::HoriOrientation::CENTER !=
m_eOrient )
4550 m_eOrient = text::HoriOrientation::LEFT;
4552 bDelShadCursor =
false;
4560 rSh.
Drag( &aDocPt,
false );
4583 pWindow->MouseButtonUp(rMEvt);
4588 bool bCallBase =
true;
4639 rSh.
EndDrag( &aDocPt,
false );
4662 pSdrView->
MarkObj(pShape, pPV);
4680 if( aPnt.
X() || aPnt.
Y() )
4718 m_rView.AttrChangedNotify(
nullptr);
4728 bool bPopMode =
false;
4737 m_rView.AttrChangedNotify(
nullptr);
4760 Point aEndPt, aSttPt;
4771 if ( aSttPt != aEndPt )
4774 rSh.
Copy(rSh, aSttPt, aEndPt);
4779 rSh.
EndDrag( &aDocPt,
false );
4789 ? SvMacroItemId::SwFrmMove
4790 : SvMacroItemId::SwFrmResize;
4792 if (
nullptr != pFlyFormat)
4794 if (
nullptr != pMacro)
4798 sal_uInt32
nPos = 0;
4801 xVar->PutString( pFlyFormat->
GetName() );
4802 xArgs->Put(xVar.
get(), ++
nPos);
4804 if( SvMacroItemId::SwFrmResize == nEvent )
4807 xVar->PutUShort(
static_cast< sal_uInt16
>(eOldSdrMoveHdl) );
4808 xArgs->Put(xVar.
get(), ++
nPos);
4812 xVar->PutLong( aDocPt.
X() - aSttPt.
X() );
4813 xArgs->Put(xVar.
get(), ++
nPos);
4815 xVar->PutLong( aDocPt.
Y() - aSttPt.
Y() );
4816 xArgs->Put(xVar.
get(), ++
nPos);
4819 xVar->PutUShort( 1 );
4820 xArgs->Put(xVar.
get(), ++
nPos);
4846 = static_txtattr_cast<SwTextContentControl*>(pAttr);
4855 rSh.
EndDrag( &aDocPt,
false );
4867 rSh.
EndDrag( &aDocPt,
false );
4877 rSh.
EndDrag( &aDocPt,
false );
4899 rSh.
EndDrag( &aDocPt,
false );
4909 if ( !bExecHyperlinks )
4914 bExecHyperlinks =
true;
4920 bExecHyperlinks =
false;
4943 bool bAddMode(
false);
4982 auto pTextContentControl
4983 = static_txtattr_cast<const SwTextContentControl*>(
4997 OSL_ENSURE( aContentAtPos.
aFnd.
pFieldmark !=
nullptr,
"where is my field ptr???");
5000 IFieldmark *fieldBM =
const_cast< IFieldmark*
> ( aContentAtPos.
aFnd.
pFieldmark );
5005 rCheckboxFm.Invalidate();
5015 if (val.startsWith(
"#"))
5016 bExecHyperlinks =
true;
5018 if ( bExecHyperlinks && aContentAtPos.
aFnd.
pAttr )
5023 bCallShadowCursor =
false;
5028 if( !rSh.
GetContentAtPos( aDocPt, aContentAtPos,
true ) && bExecHyperlinks )
5033 pSdrView->
PickAnything(rMEvt, SdrMouseEventKind::BUTTONDOWN, aVEvt);
5035 if (pSdrView && aVEvt.
meEvent == SdrEventKind::ExecuteUrl)
5041 const OUString& sURL(pField->
GetURL());
5045 bCallShadowCursor =
false;
5052 bCallShadowCursor =
false;
5057 if( bCallShadowCursor &&
5099 if( pFormatClipboard )
5104 bool bNoCharacterFormats =
false;
5105 bool bNoParagraphFormats =
true;
5112 bNoCharacterFormats =
true;
5113 bNoParagraphFormats =
false;
5116 bNoParagraphFormats =
false;
5119 pFormatClipboard->
Paste( rWrtShell, pPool, bNoCharacterFormats, bNoParagraphFormats );
5133 case SID_ATTR_CHAR_COLOR_EXT:
5136 case SID_ATTR_CHAR_BACK_COLOR:
5137 case SID_ATTR_CHAR_COLOR_BACKGROUND:
5166 OUString aStyleName;
5169 case SfxStyleFamily::Para:
5181 case SfxStyleFamily::Char:
5196 case SfxStyleFamily::Frame :
5210 case SfxStyleFamily::Page:
5219 case SfxStyleFamily::Pseudo:
5235 uno::Reference< frame::XDispatchRecorder > xRecorder =
5237 if ( !aStyleName.isEmpty() && xRecorder.is() )
5262 Window::MouseButtonUp(rMEvt);
5271 if (eHit == SdrHitKind::TextEditObj && rMarkList.
GetMarkCount() == 1)
5277 pSwDrawTextShell->Init();
5287 static bool bIdle =
false;
5309 else if( rTempl.
eType != SfxStyleFamily::None )
5328 static sal_uInt16 aInva[] =
5331 SID_ATTR_CHAR_COLOR_EXT,
5332 SID_ATTR_CHAR_COLOR_BACKGROUND_EXT,
5343 DropTargetHelper( this ),
5344 DragSourceHelper( this ),
5346 m_aTimer(
"SwEditWin"),
5347 m_aKeyInputFlushTimer(
"SwEditWin m_aKeyInputFlushTimer"),
5349 m_aTemplateTimer(
"SwEditWin m_aTemplateTimer"),
5350 m_pUserMarkerObj( nullptr ),
5359 m_eBezierMode(SID_BEZIER_INSERT),
5360 m_nInsFrameColCount( 1 ),
5363 m_bMBPressed(false),
5369 m_bOldIdleSet(false),
5370 m_bChainMode(false),
5371 m_bWasShdwCursor(false),
5372 m_bLockInput(false),
5373 m_bIsRowDrag(false),
5374 m_bUseInputLanguage(false),
5375 m_bObjectSelect(false),
5376 m_nKS_NUMDOWN_Count(0),
5377 m_nKS_NUMINDENTINC_Count(0),
5409 InputContextFlags::ExtText ) );
5455 m_rView.AttrChangedNotify(
nullptr);
5473 m_rView.AttrChangedNotify(
nullptr);
5494 m_rView.AttrChangedNotify(
nullptr);
5515#if !ENABLE_WASM_STRIP_ACCESSIBILITY
5523#if !ENABLE_WASM_STRIP_ACCESSIBILITY
5527 Window::LoseFocus();
5537 Window::Command(rCEvt);
5549 if ( bIsOleActive && ( rCEvt.
GetCommand() == CommandEventId::ContextMenu ))
5555 bool bCallBase =
true;
5559 case CommandEventId::ContextMenu:
5561 const sal_uInt16
nId = SwInputChild::GetChildWindowId();
5563 GetChildWindow(
nId ));
5574 bool bOverFly =
false;
5575 bool bPageAnchored =
false;
5608 ui::ContextMenuExecuteEvent
aEvent;
5610 aEvent.ExecutePosition.X = aPixPos.
X();
5611 aEvent.ExecutePosition.Y = aPixPos.
Y();
5614 if (
GetView().TryContextMenuInterception(xMenuInterface,
"private:resource/ReadonlyContextMenu", xMenu,
aEvent))
5618 css::uno::Reference<css::awt::XWindowPeer> xParent(
aEvent.SourceWindow, css::uno::UNO_QUERY);
5619 sal_uInt16 nExecId = xMenu->execute(xParent, css::awt::Rectangle(aPixPos.
X(), aPixPos.
Y(), 1, 1),
5620 css::awt::PopupMenuDirection::EXECUTE_DOWN);
5622 aROPopup.
Execute(
this, nExecId);
5625 aROPopup.
Execute(
this, aPixPos);
5641 case CommandEventId::Wheel:
5642 case CommandEventId::StartAutoScroll:
5643 case CommandEventId::AutoScroll:
5653 case CommandEventId::GestureZoom:
5665 case CommandEventId::GestureLongPress:
5666 case CommandEventId::GestureSwipe:
5669 case CommandEventId::StartExtTextInput:
5692 case CommandEventId::EndExtTextInput:
5707 uno::Reference< frame::XDispatchRecorder > xRecorder =
5710 if ( !sRecord.isEmpty() )
5715 const sal_Unicode aCh = sRecord[sRecord.getLength() - 1];
5719 (( pACorr->
IsAutoCorrFlag( ACFlags::ChgQuotes ) && (
'\"' == aCh ))||
5720 ( pACorr->
IsAutoCorrFlag( ACFlags::ChgSglQuotes ) && (
'\'' == aCh))))
5726 if ( xRecorder.is() )
5743 case CommandEventId::ExtTextInput:
5766 uno::Reference< frame::XDispatchRecorder > xRecorder =
5787 case CommandEventId::CursorPos:
5791 case CommandEventId::PasteSelection:
5800 if( nDropDestination == SotExchangeDest::NONE )
5810 SotClipboardFormatId::NONE,
nullptr,
5816 nDropFormat, nDropDestination,
false,
5822 case CommandEventId::ModKeyChange :
5827 sal_uInt16 nSlot = 0;
5829 nSlot = SID_ATTR_PARA_LEFT_TO_RIGHT;
5831 nSlot = SID_ATTR_PARA_RIGHT_TO_LEFT;
5837 case CommandEventId::InputLanguageChange :
5842 case CommandEventId::SelectionChange:
5853 case CommandEventId::PrepareReconversion:
5860 if (pCursor && !pCursor->
HasMark() &&
5884 if( nPosNodeIdx < nMarkNodeIdx )
5890 else if( nPosNodeIdx == nMarkNodeIdx )
5906 case CommandEventId::QueryCharPosition:
5945 SAL_WARN(
"sw.ui",
"unknown command.");
5949 Window::Command(rCEvt);
5985 bool bVertical = pOutliner->IsVertical();
5986 const EditEngine& rEditEng = pOutliner->GetEditEngine();
5987 Point aEEPos(aDocPos);
5995 aEEPos.
setX( aEEPos.
Y() );
5996 aEEPos.
setY( nTemp );
5999 aEEPos -= rOutputArea.
TopLeft();
6005 if(!(aCompare < aSelection) && !(aCompare > aSelection))
6047 bool bSelObj = rSh.
SelectObj( aDocPos );
6064 m_rView.AttrChangedNotify(
nullptr);
6080 !bIsInsideSelectedObj))
6090 m_rView.AttrChangedNotify(
nullptr);
6093 bool bSelObj = rSh.
SelectObj( aDocPos, 0 );
6104 m_rView.AttrChangedNotify(
nullptr);
6119 m_rView.AttrChangedNotify(
nullptr);
6137 bool bOverURLGrf =
false;
6139 bOverURLGrf = bOverSelect =
nullptr != rSh.
IsURLGrfAtPos( aDocPos );
6167 for(sal_uInt16
i = 0;
true; ++
i )
6170 if( !pShell ||
dynamic_cast< const SwTextShell *
>( pShell ) !=
nullptr )
6212 static sal_uInt16 aInva[] =
6221#if !ENABLE_WASM_STRIP_ACCESSIBILITY
6224 OSL_ENSURE( pSh,
"no writer shell, no accessible object" );
6226 css::accessibility::XAccessible > xAcc;
6274 QuickHelpFlags::Left | QuickHelpFlags::Bottom);
6279 sStr = sStr.copy(
CurLen());
6280 sal_uInt16 nL = sStr.getLength();
6282 ExtTextInputAttr::Highlight;
6283 const std::vector<ExtTextInputAttr> aAttrs( nL, nVal );
6316 enum Capitalization { CASE_LOWER, CASE_UPPER, CASE_SENTENCE, CASE_OTHER };
6320 const OUString sWordLower = rCC.
lowercase( rWord );
6321 Capitalization aWordCase = CASE_OTHER;
6322 if ( !rWord.isEmpty() )
6324 if ( rWord[0] == sWordLower[0] )
6326 if ( rWord == sWordLower )
6327 aWordCase = CASE_LOWER;
6332 OUString sWordSentence = sWordLower.replaceAt( 0, 1, rtl::OUStringChar(rWord[0]) );
6333 if ( rWord == sWordSentence )
6334 aWordCase = CASE_SENTENCE;
6338 aWordCase = CASE_UPPER;
6347 for (
const auto& aNames : { rCalendar.
getMonths(), rCalendar.
getDays() } )
6349 for (
const auto& rName : aNames )
6351 const OUString& rStr( rName.FullName );
6353 if( rStr.getLength() > rWord.getLength() &&
6354 rCC.
lowercase( rStr, 0, rWord.getLength() ) == sWordLower )
6360 if (rStr.startsWith(rWord))
6365 if ( aWordCase == CASE_LOWER )
6367 else if ( aWordCase == CASE_SENTENCE )
6368 sStr = rCC.
lowercase(rStr).replaceAt(0, 1, rtl::OUStringChar(rStr[0]));
6369 else if ( aWordCase == CASE_UPPER )
6372 if (!sStr.isEmpty())
6384 if (!rWord.isEmpty() && rWord.getLength() != 4 && rWord[0] ==
'2')
6387 if (rStrToday.startsWith(rWord))
6393 std::vector<OUString> strings;
6398 for (
const OUString & aCompletedString : strings)
6403 if (!rStrToday.isEmpty() && aCompletedString.startsWith(rWord))
6410 if (aCompletedString.startsWith(rWord))
6411 m_aHelpStrings.emplace_back(aCompletedString, rWord.getLength());
6413 sStr = aCompletedString;
6415 if (aWordCase == CASE_LOWER)
6417 else if (aWordCase == CASE_SENTENCE)
6419 .replaceAt(0, 1, rtl::OUStringChar(aCompletedString[0]));
6420 else if (aWordCase == CASE_UPPER)
6423 if (!sStr.isEmpty())
6424 m_aHelpStrings.emplace_back(aCompletedString, rWord.getLength());
6430class CompareIgnoreCaseAsciiFavorExact
6432 const OUString &m_rOrigWord;
6434 explicit CompareIgnoreCaseAsciiFavorExact(
const OUString& rOrigWord)
6435 : m_rOrigWord(rOrigWord)
6439 bool operator()(
const std::pair<OUString, sal_uInt16>& s1,
6440 const std::pair<OUString, sal_uInt16>& s2)
const
6442 int nRet = s1.first.compareToIgnoreAsciiCase(s2.first);
6447 int n1StartsWithOrig = s1.first.startsWith(m_rOrigWord) ? 0 : 1;
6448 int n2StartsWithOrig = s2.first.startsWith(m_rOrigWord) ? 0 : 1;
6449 return n1StartsWithOrig < n2StartsWithOrig;
6455struct EqualIgnoreCaseAscii
6457 bool operator()(
const std::pair<OUString, sal_uInt16>& s1,
6458 const std::pair<OUString, sal_uInt16>& s2)
const
6460 return s1.first.equalsIgnoreAsciiCase(s2.first);
6471 CompareIgnoreCaseAsciiFavorExact(rOrigWord) );
6513 if (!rChunkCandidates.empty())
6529 if (rWord.isEmpty())
6567 if ( pControl && pControl->Contains( aPoint ) )
6577 if ( pControl && pControl->Contains( aPoint ) )
6591 Point aPt( rDocPos );
6609 bRet = bInHeader || bInFooter;
6612 else if ( bInFooter )
6630 rBind.
Invalidate( SID_ATTR_CHAR_FONTHEIGHT );
6651 ::std::optional<SwCallLink> aLink(std::in_place, rSh);
6688 aSel =
Selection( 0, sReturn.getLength() );
6700 ::std::optional<SwCallLink> aLink(std::in_place, rSh);
6769 if (pSdrView->GetTextEditObject())
6771 EditView& rEditView = pSdrView->GetTextEditOutlinerView()->GetEditView();
6782 pWin->SetCursorLogicPosition(rPosition, bPoint, bClearMark);
6790 bool bCreateSelection =
false;
6796 bCreateSelection = !rShell.
HasMark();
6798 if (bCreateSelection)
6810 if (bCreateSelection)
6844 if (
GetView().GetDrawView()->IsTextEdit())
6869 }
while (++
nPos < nOutlineNodesCount
std::shared_ptr< SwFrameControl > SwFrameControlPtr
static bool AnyInput(VclInputFlags nType=VCL_INPUT_ANY)
static bool IsHeadlessModeEnabled()
css::uno::Sequence< css::i18n::CalendarItem2 > getDays() const
css::uno::Sequence< css::i18n::CalendarItem2 > getMonths() const
OUString uppercase(const OUString &rStr, sal_Int32 nPos, sal_Int32 nCount) const
OUString lowercase(const OUString &rStr, sal_Int32 nPos, sal_Int32 nCount) const
bool isLetterNumeric(const OUString &rStr, sal_Int32 nPos) const
css::i18n::UnicodeScript getScript(const OUString &rStr, sal_Int32 nPos) const
CommandEventId GetCommand() const
const Point & GetMousePosPixel() const
const CommandModKeyData * GetModKeyData() const
const CommandSelectionChangeData * GetSelectionChangeData() const
const CommandExtTextInputData * GetExtTextInputData() const
bool IsMouseEvent() const
bool IsRightShift() const
EPosition FindDocPosition(const Point &rDocPos) const
void SetCursorLogicPosition(const Point &rPosition, bool bPoint, bool bClearMark)
static void * ShowPopover(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rText, QuickHelpFlags nStyle)
static void HidePopover(vcl::Window const *pParent, void *nId)
virtual SdrLayerID GetHellId() const =0
virtual void ClearFieldActivation()=0
virtual tSortedOutlineNodeList::size_type getOutlineNodesCount() const =0
virtual int getOutlineLevel(const tSortedOutlineNodeList::size_type nIdx) const =0
sal_Unicode GetCharCode() const
const vcl::KeyCode & GetKeyCode() const
sal_uInt16 GetRepeat() const
MouseEventModifiers GetMode() const
sal_uInt16 GetModifier() const
sal_uInt16 GetClicks() const
sal_uInt16 GetButtons() const
const Point & GetPosPixel() const
static bool isNonLatinWestern(LanguageType nLang)
bool Command(const CommandEvent &rCEvt)
OUString GetSurroundingText() const
tools::Rectangle const & GetOutputArea() const
ESelection GetSelection() const
Selection GetSurroundingTextSelection() const
bool DeleteSurroundingText(const Selection &rRange)
GDIMetaFile * GetConnectMetaFile() const
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
SAL_WARN_UNUSED_RESULT Point LogicToPixel(const Point &rLogicPt) const
constexpr tools::Long Y() const
void setX(tools::Long nX)
void setY(tools::Long nY)
tools::Long AdjustY(tools::Long nVertMove)
constexpr tools::Long X() const
constexpr tools::Long getX() const
constexpr tools::Long getY() const
virtual void MovAction(const Point &rPnt) override
virtual void TakeActionRect(tools::Rectangle &rRect) const override
bool EndDragObj(bool bCopy=false)
virtual bool BegDragObj(const Point &rPnt, OutputDevice *pOut, SdrHdl *pHdl, short nMinMov=-3, SdrDragMethod *pForcedMeth=nullptr)
void MoveAllMarked(const Size &rSiz, bool bCopy=false)
void SetFocusHdl(SdrHdl *pNew)
SdrHdl * GetFocusHdl() const
SdrHdl * GetHdl(size_t nNum) const
void SetSelected(bool bJa=true)
SdrHdlKind GetKind() const
void SetPos(const Point &rPnt)
const Point & GetPos() const
size_t GetMarkCount() const
SdrMark * GetMark(size_t nNum) const
SdrHdl * PickHandle(const Point &rPnt) const
const SdrMarkList & GetMarkedObjectList() const
bool AreObjectsMarked() const
const SdrHdlList & GetHdlList() const
SdrObject * PickObj(const Point &rPnt, short nTol, SdrPageView *&rpPV, SdrSearchOptions nOptions, SdrObject **ppRootObj, bool *pbHitPassDirect=nullptr) const
SdrDragMode GetDragMode() const
void UnmarkAllObj(SdrPageView const *pPV=nullptr)
const tools::Rectangle & GetAllMarkedRect() const
bool MarkObj(const Point &rPnt, short nTol=-2, bool bToggle=false, bool bDeep=false)
SdrObject * GetMarkedSdrObj() const
const OutlinerView * GetTextEditOutlinerView() const
virtual bool IsTextEdit() const final override
const SdrOutliner * GetTextEditOutliner() const
const SdrPageView * pPageView
virtual SdrLayerID GetLayer() const
virtual PointerStyle GetMacroPointer(const SdrObjMacroHitRec &rRec) const
virtual const tools::Rectangle & GetLogicRect() const
void SetHitTolerancePixel(sal_uInt16 nVal)
const SdrDragStat & GetDragStat() const
sal_uInt16 getHitTolLog() const
void SetSnapEnabled(bool bOn)
void SetAngleSnapEnabled(bool bOn)
bool IsSnapEnabled() const
virtual bool MouseButtonDown(const MouseEvent &rMEvt, OutputDevice *pWin) override
bool KeyInput(const KeyEvent &rKEvt, vcl::Window *pWin) override
virtual bool MouseButtonUp(const MouseEvent &rMEvt, OutputDevice *pWin) override
SdrHitKind PickAnything(const MouseEvent &rMEvt, SdrMouseEventKind nMouseDownOrMoveOrUp, SdrViewEvent &rVEvt) const
PointerStyle GetPreferredPointer(const Point &rMousePos, const OutputDevice *pOut, sal_uInt16 nModifier=0, bool bLeftDown=false) const
virtual bool MouseMove(const MouseEvent &rMEvt, OutputDevice *pWin) override
void SetState(const SfxItemSet &rSet)
void Update(sal_uInt16 nId)
bool Execute(sal_uInt16 nSlot, const SfxPoolItem **pArgs=nullptr, SfxCallMode nCall=SfxCallMode::SLOT)
void Invalidate(sal_uInt16 nId)
const css::uno::Reference< css::frame::XDispatchRecorder > & GetRecorder() const
void InvalidateAll(bool bWithMsg)
const SfxPoolItem * Execute(sal_uInt16 nSlot, SfxCallMode nCall=SfxCallMode::SLOT, const SfxPoolItem **pArgs=nullptr, sal_uInt16 nModi=0, const SfxPoolItem **pInternalArgs=nullptr)
void ExecutePopup(const OUString &rResName, vcl::Window *pWin=nullptr, const Point *pPos=nullptr)
SfxShell * GetShell(sal_uInt16 nIdx) const
bool IsObjectInPlaceActive() const
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
static void notifyInvalidation(SfxViewShell const *pThisView, tools::Rectangle const *)
SfxProgress * GetProgress() const
void AppendItem(const SfxPoolItem &)
void Done(bool bRemove=false)
SfxItemPool & GetPool() const
void ToggleChildWindow(sal_uInt16)
SfxBindings & GetBindings()
SfxDispatcher * GetDispatcher()
SfxChildWindow * GetChildWindow(sal_uInt16)
virtual SfxObjectShell * GetObjectShell() override
SfxViewFrame & GetViewFrame() const
SfxInPlaceClient * GetIPClient() const
virtual bool KeyInput(const KeyEvent &rKeyEvent)
constexpr tools::Long Height() const
void setWidth(tools::Long nWidth)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
static sal_uInt8 GetExchangeAction(const DataFlavorExVector &rDataFlavorExVector, SotExchangeDest nDestination, sal_uInt16 nSourceOptions, sal_uInt8 nUserAction, SotClipboardFormatId &rFormat, sal_uInt8 &rDefaultAction, SotClipboardFormatId nOnlyTestFormat=SotClipboardFormatId::NONE, const css::uno::Reference< css::datatransfer::XTransferable > *pxTransferable=nullptr, SotExchangeActionFlags *pActionFlags=nullptr)
static bool IsCTLFontEnabled()
static bool IsCTLSequenceCheckingTypeAndReplace()
static bool IsCTLSequenceChecking()
static bool IsCTLSequenceCheckingRestricted()
bool IsIgnoreLanguageChange() const
bool IsAutoFormatByInput() const
SvxAutoCorrect * GetAutoCorrect()
static SvxAutoCorrCfg & Get()
bool IsAutoTextTip() const
bool IsAutoCorrFlag(ACFlags nFlag) const
static bool IsAutoCorrectChar(sal_Unicode cChar)
SvxSwAutoFormatFlags & GetSwFlags()
const SvxMacroTableDtor & GetMacroTable() const
const SvxMacro * Get(SvMacroItemId nEvent) const
const OUString & GetTargetFrame() const
const OUString & GetURL() const
void ChgHdl(SdrHdl *pNew)
Point GetPosForHitTest(const OutputDevice &rOut)
void SetLastPos(const Point &rNew)
void SetPos(const Point &rNew)
const Point & GetLastPos() const
SwAnchorMarker(SdrHdl *pH)
const Point & GetHdlPos() const
bool GetWordsMatching(std::u16string_view aMatch, std::vector< OUString > &aWords) const
Return all words matching a given prefix.
css::uno::Reference< css::i18n::XBreakIterator > const & GetBreakIter() const
void LoadDefaultCalendar(LanguageType nLang)
css::uno::Reference< css::i18n::XExtendedInputSequenceChecker > xCheck
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
SwContentFrame * getLayoutFrame(const SwRootFrame *, const SwPosition *pPos=nullptr, std::pair< Point, bool > const *pViewPosAndCalcFrame=nullptr) const
virtual sal_Int32 Len() const
void GotoFormControl(bool bNext)
Go to the next (or previous) form control, based first on tabIndex and then paragraph position,...
bool GetShadowCursorPos(const Point &rPt, SwFillMode eFillMode, SwRect &rRect, sal_Int16 &rOrient)
void Push()
store a copy of the current cursor on the cursor stack
bool IsSelOnePara() const
bool IsReadOnlyAvailable() const
bool IsInVerticalText(const Point *pPt=nullptr) const
bool GoPrevCursor()
go to the previous SSelection
SwShellCursor * GetCursor_()
const SwRect & GetCharRect() const
int SetCursor(const Point &rPt, bool bOnlyText=false, bool bBlock=true)
bool IsMultiSelection() const
virtual SwCursor & GetCurrentShellCursor() override
Return the current shell cursor.
void NormalizePam(bool bPointFirst=true)
Ensure point and mark of the current PaM are in a specific order.
bool IsCursorReadonly() const
SwCursor * GetCursor(bool bMakeTableCursor=true) const
Return pointer to the current shell cursor.
bool SelectTextModel(sal_Int32 nStart, sal_Int32 nEnd)
bool ExtendSelection(bool bEnd=true, sal_Int32 nCount=1)
extend current SSelection by n characters
bool IsOverReadOnlyPos(const Point &rPt) const
bool CursorInsideInputField() const
SwField * GetCurField(const bool bIncludeInputFieldAtStart=false) const
bool SetShadowCursorPos(const Point &rPt, SwFillMode eFillMode)
bool SetVisibleCursor(const Point &rPt)
Move visible cursor to given position in document.
SAL_DLLPRIVATE SvxFrameDirection GetTextDirection(const Point *pPt=nullptr) const
bool IsStartOfDoc() const
bool IsPageAtPos(const Point &rPt) const
bool TestCurrPam(const Point &rPt, bool bTstHit=false)
Search in the selected area for a Selection that covers the given point.
const SwShellTableCursor * GetTableCursor() const
bool IsInRightToLeftText() const
bool IsSendAccessibleCursorEvents() const
SwTextContentControl * CursorInsideContentControl() const
SwShellCursor * getShellCursor(bool bBlock)
Delivers the current shell cursor.
bool MoveSection(SwWhichSection, SwMoveFnCollection const &)
void GetCharRectAt(SwRect &rRect, const SwPosition *pPos)
::sw::mark::IFieldmark * GetCurrentFieldmark()
bool HasReadonlySel(bool isReplace=false) const
bool GetContentAtPos(const Point &rPt, SwContentAtPos &rContentAtPos, bool bSetCursor=false, SwRect *pFieldRect=nullptr)
bool IsInFrontOfLabel() const
bool MoveFieldType(const SwFieldType *pFieldType, const bool bNext, const SwFieldIds nResType=SwFieldIds::Unknown, const bool bAddSetExpressionFieldsToInputFields=true)
void EndCursorMove(const bool bIdleEnd=false)
bool GoNextCell(bool bAppendLine=true)
set cursor into next/previous cell
void SetSendAccessibleCursorEvents(bool bEnable)
sal_Unicode GetChar(bool bEnd=true, tools::Long nOffset=0)
get the nth character of the current SSelection
void UnSetVisibleCursor()
SwWrtShell * GetWrtShell()
Access to the SwWrtShell belonging to SwView.
virtual SfxStyleSheetBasePool * GetStyleSheetPool() override
For Style PI.
SwDoc * GetDoc()
returns Doc. But be careful!
void dumpAsXml(xmlTextWriterPtr=nullptr) const
Dumps the entire nodes structure to the given destination (file nodes.xml in the current directory by...
SwExtTextInput * GetExtTextInput(const SwNode &rNd, sal_Int32 nContentPos=-1) const
IDocumentUndoRedo & GetIDocumentUndoRedo()
IDocumentDrawModelAccess const & getIDocumentDrawModelAccess() const
virtual void Activate(const sal_uInt16 nSlotId)
virtual void Deactivate()
virtual bool MouseButtonDown(const MouseEvent &rMEvt)
virtual bool MouseButtonUp(const MouseEvent &rMEvt)
bool IsInsertForm() const
bool MouseMove(const MouseEvent &rMEvt)
SfxShell subclass that is used while interacting with the editeng-based text of a shape.
virtual void CalcLayout() override
To enable set up of StartActions and EndActions.
OUString DeleteExtTextInput(bool bInsText=true)
bool GetCurAttr(SfxItemSet &, const bool bMergeIndentValuesOfNumRule=false) const
void StartAllAction()
For all views of this document.
bool IsNoNum(bool bChkStart=true) const
void DoSpecialInsert()
Special insert: Insert a new text node just before or after a section or table, if the cursor is posi...
bool IsNbspRunNext() const
void SetExtTextInputData(const CommandExtTextInputData &)
SwUndoId StartUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Undo: set up Undo parenthesis, return nUndoId of this parenthesis.
bool Delete(bool isArtificialSelection=false)
Delete content of all ranges.
bool IsCursorInParagraphMetadataField() const
Returns true iff the cursor is within a paragraph metadata field.
static SwAutoCompleteWord & GetAutoCompleteWords()
Interface for access to AutoComplete-list.
void SetAttrItem(const SfxPoolItem &, SetAttrMode nFlags=SetAttrMode::DEFAULT, const bool bParagraphSetting=false)
SwFrameFormat * GetTableFormat()
void CreateExtTextInput(LanguageType eInputLanguage)
Interface for TextInputData - (for input of Japanese/Chinese chars.)
bool GetLastUndoInfo(OUString *const o_pStr, SwUndoId *const o_pId, const SwView *pView=nullptr) const
void SetTextFormatColl(SwTextFormatColl *, const bool bResetListAttrs=false)
Add 2nd optional parameter <bResetListAttrs> - see also <SwDoc::SetTextFormatColl(....
void NoNum()
Paragraphs without enumeration but with indents.
void SetCurNumRule(const SwNumRule &, const bool bCreateNewList, const OUString &sContinuedListId=OUString(), const bool bResetIndentAttrs=false)
Optional parameter <bResetIndentAttrs> (default value false).
bool NumOrNoNum(bool bDelete=false, bool bChkStart=true)
Switch on/off of numbering via Delete/Backspace.
void ChangeIndentOfAllListLevels(sal_Int32 nDiff)
Remove unused default parameter <nLevel> and <bRelative>.
bool CanSpecialInsert() const
a node can be special-inserted (alt-Enter) whenever lcl_SpecialInsertNode finds a suitable position
SwFieldType * GetFieldType(size_t nField, SwFieldIds nResId=SwFieldIds::Unknown) const
get field types with a ResId, if 0 get all
sal_uInt8 GetNumLevel() const
void Undo(sal_uInt16 const nCount=1, sal_uInt16 nOffset=0)
const SwNumRule * GetOutlineNumRule() const
std::vector< OUString > GetChunkForAutoText()
const SwNumRule * GetNumRuleAtCurrCursorPos() const
void DelNumRules()
Delete, split enumeration list.
bool GetCurFootnote(SwFormatFootnote *pToFillFootnote=nullptr)
Query and set footnote-text/number. Set... to current SSelection!
bool OutlineUpDown(short nOffset=1)
SwUndoId EndUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Closes parenthesis of nUndoId, not used by UI.
void NumUpDown(bool bDown=true)
SwTextFormatColl * GetCurTextFormatColl() const
Get the named paragraph format of the current selection.
void GetSelectedText(OUString &rBuf, ParaBreakType nHndlParaBreak=ParaBreakType::ToBlank)
Query text within selection.
LanguageType GetCurLang() const
bool IsTableBoxTextFormat() const
OUString GetPrevAutoCorrWord(SvxAutoCorrect &rACorr)
Window class for the Writer edit area, this is the one handling mouse and keyboard events and doing t...
Color m_aWaterCanTextColor
static tools::Long s_nDDStartPosY
std::unique_ptr< SdrDropMarkerOverlay > m_pUserMarker
void SetApplyTemplate(const SwApplyTemplate &)
Apply template.
void MoveCursor(SwWrtShell &rSh, const Point &rDocPos, const bool bOnlyText, bool bLockView)
void InsFrame(sal_uInt16 nCols)
Insert mode for frames.
static tools::Long s_nDDStartPosX
void FlushInBuffer()
Character buffer is inserted into the document.
virtual void dispose() override
virtual void KeyInput(const KeyEvent &rKEvt) override
KeyEvents.
void ChangeFly(sal_uInt8 nDir, bool bWeb)
bool IsInHeaderFooter(const Point &rDocPt, FrameControlType &rControl) const
Returns true if in header/footer area, or in the header/footer control.
void SelectMenuPosition(SwWrtShell &rSh, const Point &rMousePos)
virtual ~SwEditWin() override
LanguageType m_eBufferLanguage
bool IsDrawAction() const
std::optional< Point > m_xRowColumnSelectionStart
void SetUseInputLanguage(bool bNew)
#i42732# display status of font size/name depending on either the input language or the selection pos...
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override
bool IsObjectSelect() const
bool RulerMarginDrag(const MouseEvent &rMEvt, const bool bVerticalMode)
void SetChainMode(bool bOn)
SotExchangeDest GetDropDestination(const Point &rPixPnt, SdrObject **ppObj=nullptr)
Timer m_aKeyInputFlushTimer
void UpdatePointer(const Point &, sal_uInt16 nButtons=0)
static bool IsInputSequenceCheckingRequired(const OUString &rText, const SwPaM &rCursor)
bool IsOverHeaderFooterFly(const Point &rDocPos, FrameControlType &rControl, bool &bOverFly, bool &bPageAnchored) const
Color m_aWaterCanTextBackColor
static void FinitStaticData()
bool EnterDrawMode(const MouseEvent &rMEvt, const Point &aDocPos)
Turn on DrawMode.
void ChangeDrawing(sal_uInt8 nDir)
void LeaveArea(const Point &)
sal_uInt16 m_nInsFrameColCount
virtual void MouseButtonUp(const MouseEvent &rMEvt) override
Button Up.
const SwView & GetView() const
bool RulerColumnDrag(const MouseEvent &rMEvt, bool bVerticalMode)
virtual void MouseMove(const MouseEvent &rMEvt) override
void EnterDrawTextMode(const Point &aDocPos)
Turn on DrawTextEditMode.
sal_uInt16 m_nKS_NUMDOWN_Count
SwCallMouseEvent m_aSaveCallEvent
void StdDrawMode(SdrObjKind eSdrObjectKind, bool bObjSelect)
virtual void Command(const CommandEvent &rCEvt) override
bool changeMousePointer(Point const &rDocPoint)
static void InitStaticData()
void ShowAutoCorrectQuickHelp(const OUString &rWord, SvxAutoCorrect &rACorr)
std::unique_ptr< SwShadowCursor, o3tl::default_delete< SwShadowCursor > > m_pShadCursor
virtual bool DeleteSurroundingText(const Selection &rSelection) override
void ResetMouseButtonDownFlags()
MouseEvents.
void LogicInvalidate(const tools::Rectangle *pRectangle) override
virtual void GetFocus() override
std::unique_ptr< SwAnchorMarker > m_pAnchorMarker
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
static QuickHelpData * s_pQuickHlpData
bool IsDrawSelMode() const
SwEditWin(vcl::Window *pParent, SwView &)
Ctor.
bool m_bUseInputLanguage
#i42732# display status of font size/name depending on either the input language or the selection pos...
virtual void LoseFocus() override
SwTextFrame * m_pSavedOutlineFrame
void StopDDTimer(SwWrtShell *, const Point &)
sal_uInt16 m_nKS_NUMINDENTINC_Count
void SetSdrDrawMode(SdrObjKind eSdrObjectKind)
bool ShowAutoText(const std::vector< OUString > &rChunkCandidates)
virtual Selection GetSurroundingTextSelection() const override
SwFrameControlsManager & GetFrameControlsManager()
void ToggleOutlineContentVisibility(const size_t nOutlinePos, const bool bSubs)
std::unique_ptr< SwFrameControlsManager > m_pFrameControlsManager
void SetCursorTwipPosition(const Point &rPosition, bool bPoint, bool bClearMark)
Allows adjusting the point or mark of the selection to a document coordinate.
std::unique_ptr< SwApplyTemplate > m_pApplyTempl
void SetGraphicTwipPosition(bool bStart, const Point &rPosition)
Allows starting or ending a graphic move or resize action.
virtual OUString GetSurroundingText() const override
SwRect GetFlyRect() const
For moving flys with keyboard.
bool SetFlyFrameAttr(SfxItemSet &rSet)
FrameTypeFlags GetFrameType(const Point *pPt, bool bStopAtFly) const
For return values see above FrameType.
void SetFrameFormat(SwFrameFormat *pFormat, bool bKeepOrient=false, Point const *pDocPos=nullptr)
If frame then set frame style.
SwTextNode * GetNumRuleNodeAtPos(const Point &rPot)
FlyProtectFlags IsSelObjProtected(FlyProtectFlags eType) const
Which Protection is set at selected object?
bool IsNumLabel(const Point &rPt, int nMaxOffset=-1)
void SetFlyPos(const Point &rAbsPos)
bool GotoNextFly(GotoObjFlags eType=GotoObjFlags::FlyAny)
Independent selecting of flys.
RndStdIds GetAnchorId() const
Anchor type of selected object, RndStdIds::UNKNOWN if ambiguous or in case of frame selection.
bool ShouldObjectBeSelected(const Point &rPt)
Test if there is a draw object at that position and if it should be selected.
const SwFrameFormat * SelFlyGrabCursor()
If a fly is selected, it draws cursor into the first ContentFrame.
bool IsFrameSelected() const
Point FindAnchorPos(const Point &rAbsPos, bool bMoveIt=false)
bool GotoObj(bool bNext, GotoObjFlags eType=GotoObjFlags::DrawAny)
const SwFrameFormat * IsURLGrfAtPos(const Point &rPt, OUString *pURL=nullptr, OUString *pTargetFrameName=nullptr, OUString *pURLDescription=nullptr) const
Position is a graphic with URL?
bool IsTableVertical() const
virtual void MakeSelVisible() override
Show current selection (frame / draw object as required).
bool MoveAnchor(SwMove nDir)
FrameTypeFlags GetSelFrameType() const
bool IsFrameVertical(const bool bEnvironment, bool &bRightToLeft, bool &bVertL2R) const
Determines whether a frame or its environment is vertically formatted and right-to-left.
bool IsObjSelectable(const Point &rPt)
The following two methods return enum SdrHdlKind.
const SwFrameFormat * GetFormatFromObj(const Point &rPt, SwRect **pRectToFill=nullptr) const
void ToggleHeaderFooterEdit()
SdrObject * GetObjAt(const Point &rPt)
Same as IsObjSelectable(), but return the object as well.
bool IsDrawCreate() const
SwTab WhichMouseTabCol(const Point &rPt) const
SwChainRet Chain(SwFrameFormat &rSource, const Point &rPt)
void Copy(SwDoc &rClpDoc, const OUString *pNewClpText=nullptr)
Copy and Paste methods for internal clipboard.
static ObjCntType GetObjCntType(const SdrObject &rObj)
bool GetFlyFrameAttr(SfxItemSet &rSet) const
void EndTextEdit()
Deletes object if required.
const SwFrameFormat * GetFormatFromAnyObj(const Point &rPt) const
void ChgCurPageDesc(const SwPageDesc &)
PageDescriptor-interface.
bool FinishOLEObj()
Shutdown server.
size_t IsObjSelected() const
void SetColRowWidthHeight(TableChgWidthHeightType eType, sal_uInt16 nDiff)
bool SelectObj(const Point &rSelPt, sal_uInt8 nFlag=0, SdrObject *pObj=nullptr)
If an object has been given, exactly this object is selected (instead of searching over position).
void CalcBoundRect(SwRect &_orRect, const RndStdIds _nAnchorId, const sal_Int16 _eHoriRelOrient=css::text::RelOrientation::FRAME, const sal_Int16 _eVertRelOrient=css::text::RelOrientation::FRAME, const SwFormatAnchor *_pToCharContentPos=nullptr, const bool _bFollowTextFlow=false, bool _bMirror=false, Point *_opRef=nullptr, Size *_opPercent=nullptr, const SwFormatFrameSize *pFormatFrameSize=nullptr) const
i#17567 - adjustments to allow negative vertical positions for fly frames anchored to paragraph or to...
Point GetContentPos(const Point &rPoint, bool bNext) const
Provide information about content situated closes to given Point.
Point GetRelativePagePosition(const Point &rDocPos)
Convert document position into position relative to the current page.
static bool IsVerticalModeAtNdAndPos(const SwTextNode &_rTextNode, const Point &_rDocPos)
SwChainRet Chainable(SwRect &rRect, const SwFrameFormat &rSource, const Point &rPt) const
For Chain always connect Fly specified by format with that hit by point.
bool IsInsideSelectedObj(const Point &rPt)
returns enum values
const SwFrameFormat * GetFlyFrameFormat() const
Get FlyFrameFormat; for UI macro linkage at Flys.
Instances of SwFields and those derived from it occur 0 to n times.
Base class of all fields.
SwFieldTypesEnum GetTypeId() const
SwFieldIds Which() const
ResId.
SfxPoolItem subclass that wraps an SwContentControl.
const std::shared_ptr< SwContentControl > & GetContentControl() const
bool isFrameAreaDefinitionValid() const
A container for the Header/Footer, PageBreak, and Outline Content Visibility controls.
void RemoveControlsByType(FrameControlType eType, const SwFrame *pFrame)
void SetOutlineContentVisibilityButton(const SwContentFrame *pContentFrame)
SwFrameControlPtr GetControl(FrameControlType eType, const SwFrame *pFrame)
bool InsertGlossary(const OUString &rName)
void SetCurGroup(const OUString &aGrp, bool bApi=false, bool bAlwaysCreateNew=false)
void HasLongName(const std::vector< OUString > &rBeginCandidates, std::vector< std::pair< OUString, sal_uInt16 > > &rLongNames)
bool GetShortName(std::u16string_view rLongName, OUString &rShortName, OUString &rGroupName)
sal_uInt16 GetTableVMove() const
sal_uInt16 GetTableHMove() const
Class for automated call of Start- and EndCursorMove().
Base class of the Writer document model elements.
SwFrameFormat * GetFlyFormat() const
If node is in a fly return the respective format.
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
const SwStartNode * FindFooterStartNode() const
const SwStartNode * FindHeaderStartNode() const
const SwStartNode * FindFlyStartNode() const
SwContentNode * GetContentNode()
const SwOutlineNodes & GetOutLineNds() const
Array of all OutlineNodes.
bool IsOutlineRule() const
bool Seek_Entry(SwNode *rP, size_type *pnPos) const
PaM is Point and Mark: a selection of the document model.
const SwPosition * GetMark() const
virtual void SetMark()
Unless this is called, the getter method of Mark will return Point.
SwContentNode * GetPointContentNode() const
const SwPosition * End() const
SwContentNode * GetMarkContentNode() const
const SwPosition * GetPoint() const
const SwPosition * Start() const
bool HasMark() const
A PaM marks a selection if Point and Mark are distinct positions.
SwFrameFormat * GetRightFormat(bool const bFirst=false)
Layout uses the following methods to obtain a format in order to be able to create a page.
SwFrameFormat * GetLeftFormat(bool const bFirst=false)
A page of the document layout.
bool IsOverHeaderFooterArea(const Point &rPt, FrameControlType &rControl) const
If in header or footer area, it also indicates the exact area in rControl.
SwPageDesc * GetPageDesc()
void GrabFocusOnActiveSidebarWin()
void SetShadowState(const SwPostItField *pField, bool bCursor=true)
void SetActiveSidebarWin(sw::annotation::SwAnnotationWin *p)
vcl::Window * IsHitSidebarWindow(const Point &rPointLogic)
Get the matching window that is responsible for handling mouse events of rPointLogic,...
sw::annotation::SwAnnotationWin * GetActiveSidebarWin()
SW_DLLPUBLIC bool HasActiveSidebarWin() const
bool IsHit(const Point &aPointPixel)
Of course Writer needs its own rectangles.
void Height(tools::Long nNew)
void Top(const tools::Long nTop)
void Right(const tools::Long nRight)
void Bottom(const tools::Long nBottom)
void Pos(const Point &rNew)
bool Contains(const Point &rPOINT) const
tools::Rectangle SVRect() const
void Left(const tools::Long nLeft)
void Width(tools::Long nNew)
The root element of a Writer document layout.
bool IsBetweenPages(const Point &rPt) const
Point rPt: The point to test.
const SwPageFrame * GetPageAtPos(const Point &rPt, const Size *pSize=nullptr, bool bExtend=false) const
Point rPt: The point that should be used to find the page Size pSize: If given, we return the (first)...
void dumpAsXml(xmlTextWriterPtr writer=nullptr) const override
virtual bool GetModelPositionForViewPoint(SwPosition *, Point &, SwCursorMoveState *=nullptr, bool bTestBackground=false) const override
Primary passes the call to the first page.
const VclPtr< SwContentControlButton > & GetContentControlButton() const
Represents the current text cursor of one opened edit window.
static SwSmartTagMgr & Get()
Starts a section of nodes in the document model.
const SwTOXType * GetTOXType() const
A wrapper around SfxPoolItem to store the start position of (usually) a text portion,...
const sal_Int32 * End() const
sal_Int32 GetStart() const
const SwFormatContentControl & GetContentControl() const
const SwFormatField & GetFormatField() const
const SwTOXMark & GetTOXMark() const
static SwFrameFormat * getOtherTextBoxFormat(const SwFrameFormat *pFormat, sal_uInt16 nType, const SdrObject *pObject=nullptr)
If we have an associated TextFrame, then return that.
SwTextAttr subclass that tracks the location of the wrapped SwFormatContentControl.
Represents the style of a paragraph.
bool IsAssignedToListLevelOfOutlineStyle() const
int GetAssignedOutlineStyleLevel() const
Represents the visualization of a paragraph.
SwTextNode * GetTextNodeFirst()
SwTextNode is a paragraph in the document model.
void GetAttrOutlineContentVisible(bool &bOutlineContentVisibleAttr)
GetAttrOutlineContentVisible.
SwTextAttr * GetTextAttrAt(sal_Int32 const nIndex, sal_uInt16 const nWhich, ::sw::GetTextAttrMode const eMode=::sw::GetTextAttrMode::Default) const
get the innermost text attribute covering position nIndex.
void SetAttrOutlineContentVisible(bool bVisible)
static bool PasteData(TransferableDataHelper &rData, SwWrtShell &rSh, sal_uInt8 nAction, SotExchangeActionFlags nActionFlags, SotClipboardFormatId nFormat, SotExchangeDest nDestination, bool bIsPasteFormat, bool bIsDefault, const Point *pDDPos=nullptr, sal_Int8 nDropAction=0, bool bPasteSelection=false, RndStdIds nAnchorType=RndStdIds::FLY_AT_PARA, bool bIgnoreComments=false, SwPasteContext *pContext=nullptr, PasteTableType nPaste=PasteTableType::PASTE_DEFAULT)
void SetIdle(bool b) const
bool IsHideWhitespaceMode() const
void SetHideWhitespaceMode(bool bMode)
bool IsShadowCursor() const
bool IsShowOutlineContentVisibilityButton() const
SwFillMode GetShdwCursorFillMode() const
short GetDivisionY() const
bool IsTreatSubOutlineLevelsAsContent() const
const Size & GetSnapSize() const
bool getBrowseMode() const
bool CanHideWhitespace() const
The rules that allow for hiding whitespace.
short GetDivisionX() const
bool IsUseHeaderFooterMenu() const
bool IsViewLocked() const
vcl::RenderContext * GetOut() const
bool IsHeaderFooterEdit() const
Acts both for headers / footers, depending on the bShow(Header|Footer)Separator flags.
const SwViewOption * GetViewOptions() const
const SwNodes & GetNodes() const
const IDocumentMarkAccess * getIDocumentMarkAccess() const
Provides access to the document bookmark interface.
void InvalidateAccessibleFocus()
SwRootFrame * GetLayout() const
const SwRect & VisArea() const
css::uno::Reference< css::accessibility::XAccessible > CreateAccessible()
void InvalidateWindows(const SwRect &rRect)
bool IsShowHeaderFooterSeparator(FrameControlType eControl)
SfxViewShell * GetSfxViewShell() const
const IDocumentOutlineNodes * getIDocumentOutlineNodesAccess() const
const SfxItemPool & GetAttrPool() const
void SetTabColFromDocPos(const Point &rPt)
SwWrtShell & GetWrtShell() const
void SetNumRuleNodeFromDoc(SwTextNode *pNumRuleNode)
bool HandleWheelCommands(const CommandEvent &)
bool ExecSpellPopup(const Point &rPt)
! End of extra code for context menu modifying extensions
bool HandleGestureZoomCommand(const CommandEvent &)
void SelectShellForDrop()
const tools::Rectangle & GetVisArea() const
SwPostItMgr * GetPostItMgr()
SwWrtShell * GetWrtShellPtr() const
SwDrawBase * GetDrawFuncPtr() const
SwGlossaryHdl * GetGlosHdl()
void ExecSmartTagPopup(const Point &rPt)
Function: ExecSmartTagPopup.
void SetDrawFuncPtr(std::unique_ptr< SwDrawBase > pFuncPtr)
SwDocShell * GetDocShell()
void SetTabRowFromDoc(bool b)
void InvalidateRulerPos()
bool EnterDrawTextMode(const Point &aDocPos)
void SetTabColFromDoc(bool b)
Used by the UI to modify the document model.
void ClickToField(const SwField &rField, bool bExecHyperlinks)
bool IsSelFrameMode() const
bool Down(bool bSelect, sal_uInt16 nCount=1, bool bBasicCall=false)
bool EndPg(bool bSelect=false)
void EnterSelFrameMode(const Point *pStartDrag=nullptr)
bool ClickToINetGrf(const Point &rDocPt, LoadUrlFlags nFilter)
bool Right(SwCursorSkipMode nMode, bool bSelect, sal_uInt16 nCount, bool bBasicCall, bool bVisual=false)
bool IsOutlineContentVisible(const size_t nPos)
void addCurrentPosition()
bool GetAttrOutlineContentVisible(const size_t nPos) const
bool Left(SwCursorSkipMode nMode, bool bSelect, sal_uInt16 nCount, bool bBasicCall, bool bVisual=false)
void SelectNextPrevHyperlink(bool bNext)
bool Is_FnDragEQBeginDrag() const
void Insert(const OUString &)
bool GotoContentControl(const SwFormatContentControl &rContentControl, bool bOnlyRefresh=false)
sal_uInt16 CallEvent(SvMacroItemId nEvent, const SwCallMouseEvent &rCallEvent, bool bCheckPtr=false)
SelectionType GetSelectionType() const
void SelPara(const Point *)
tools::Long CallSetCursor(const Point *pPt, bool bProp)
void SelSentence(const Point *)
void SplitNode(bool bAutoFormat=false)
bool SttPg(bool bSelect=false)
virtual void ApplyViewOptions(const SwViewOption &rOpt) override
Apply ViewOptions with Start-/EndAction.
void Do(DoType eDoType, sal_uInt16 nCnt=1, sal_uInt16 nOffset=0)
void ExecMacro(const SvxMacro &rMacro, OUString *pRet=nullptr, SbxArray *pArgs=nullptr)
void NoEdit(bool bHideCursor=true)
bool Up(bool bSelect, sal_uInt16 nCount=1, bool bBasicCall=false)
virtual void SetShowHeaderFooterSeparator(FrameControlType eControl, bool bShow) override
virtual void InfoReadOnlyDialog(bool bAsync) const override
Selected area has readonly content.
void EndDrag(const Point *pPt, bool bProp)
void Drag(const Point *pPt, bool bProp)
void GotoOutline(SwOutlineNodes::size_type nIdx)
bool DelRight(bool isReplaceHeuristic=false)
void AutoCorrect(SvxAutoCorrect &rACorr, sal_Unicode cChar)
bool HasSelection() const
void InvalidateOutlineContentVisibility()
bool SelWrd(const Point *=nullptr)
void LaunchOLEObj(sal_Int32 nVerb=css::embed::EmbedVerbs::MS_OLEVERB_PRIMARY)
bool SelectTableRowCol(const Point &rPt, const Point *pEnd=nullptr, bool bRowDrag=false)
void ClickToINetAttr(const SwFormatINetFormat &rItem, LoadUrlFlags nFilter=LoadUrlFlags::NONE)
bool Pop(SwCursorShell::PopMode, ::std::optional< SwCallLink > &roLink)
const SwView & GetView() const
void SetTimeout(sal_uInt64 nTimeoutMs)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
virtual void Start(bool bStartTimer=true) override
static TransferableDataHelper CreateFromPrimarySelection()
const DataFlavorExVector & GetDataFlavorExVector() const
css::uno::Reference< css::datatransfer::XTransferable > GetXTransferable() const
static css::uno::Reference< css::awt::XWindow > GetInterface(vcl::Window *pWindow)
std::vector< Value >::size_type size_type
virtual void SetChecked(bool checked)=0
virtual bool IsChecked() const =0
virtual void SetPointer(PointerStyle) override
sal_uInt16 GetCode() const
sal_uInt16 GetModifier() const
KeyFuncType GetFunction() const
sal_uInt16 GetFullCode() const
Point OutputToScreenPixel(const Point &rPos) const
virtual void dispose() override
void SetInputContext(const InputContext &rInputContext)
bool IsMouseCaptured() const
Point LogicToPixel(const Point &rLogicPt) const
LanguageType GetInputLanguage() const
void set_id(const OUString &rID)
const AllSettings & GetSettings() const
void SetCompositionCharRect(const tools::Rectangle *pRect, tools::Long nCompositionLength, bool bVertical=false)
::OutputDevice const * GetOutDev() const
Point PixelToLogic(const Point &rDevicePt) const
void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
void SetQuickHelpText(const OUString &rHelpText)
void SetDialogControlFlags(DialogControlFlags nFlags)
PointerStyle GetPointer() const
void EnableChildTransparentMode(bool bEnable=true)
void SetHelpId(const OUString &)
#define FN_GOTO_NEXT_CELL
#define FN_EDIT_AUTH_ENTRY_DLG
#define FN_GOTO_PREV_CELL
#define FN_FORMAT_FRAME_DLG
#define FN_GOTO_PREV_INPUTFLD
#define FN_EDIT_IDX_ENTRY_DLG
#define FN_FORMAT_GRAFIC_DLG
#define FN_GOTO_NEXT_INPUTFLD
#define FN_UPDATE_INPUTFIELDS
static sal_uInt16 lcl_isNonDefaultLanguage(LanguageType eBufferLanguage, SwView const &rView, const OUString &rInBuffer)
static bool IsDrawObjSelectable(const SwWrtShell &rSh, const Point &rPt)
For MouseButtonDown - determine whether a DrawObject a NO SwgFrame was hit! Shift/Ctrl should only re...
static bool IsMinMove(const Point &rStartPos, const Point &rLPt)
static bool g_bHoldSelection
static bool lcl_goIntoTextBox(SwEditWin &rEditWin, SwWrtShell &rSh)
Check if the selected shape has a TextBox: if so, go into that instead.
static bool lcl_urlOverBackground(SwWrtShell &rSh, const Point &rDocPos)
Determines if the current position has a clickable url over a background frame.
#define HIT_PIX
Avoid minimal movement shiver.
static SdrHdlKind g_eSdrMoveHdl
IMPL_LINK_NOARG(SwEditWin, TimerHandler, Timer *, void)
Increase timer for selection.
static SfxShell * lcl_GetTextShellFromDispatcher(SwView const &rView)
static bool g_bValidCursorPos
static bool g_bInputLanguageSwitched
Globals.
#define EXCHG_INOUT_ACTION_NONE
#define EXCHG_IN_ACTION_COPY
#define SW_ALLOW_TEXTBOX
Allow SwFEShell::SelectObj() to select the TextBox of a shape.
FlyProtectFlags
values can be combined via logical or
@ Parent
Check only parents.
SwFieldTypesEnum
List of FieldTypes at UI.
constexpr OUStringLiteral HID_EDIT_WIN
#define CH_TXT_ATR_FORMELEMENT
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_LANGUAGE(10)
constexpr TypedWhichId< SwFormatFrameSize > RES_FRM_SIZE(89)
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_CTL_LANGUAGE(29)
constexpr TypedWhichId< SwFormatCol > RES_COL(115)
constexpr TypedWhichId< SwFormatHoriOrient > RES_HORI_ORIENT(109)
constexpr TypedWhichId< SwFormatVertOrient > RES_VERT_ORIENT(108)
constexpr TypedWhichId< SwFormatINetFormat > RES_TXTATR_INETFMT(51)
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_CJK_LANGUAGE(24)
constexpr TypedWhichId< SvxBrushItem > RES_CHRATR_BACKGROUND(21)
constexpr TypedWhichId< SwFlyFrameFormat > RES_FLYFRMFMT(162)
constexpr TypedWhichId< SvxProtectItem > RES_PROTECT(106)
constexpr TypedWhichId< SwFormatContentControl > RES_TXTATR_CONTENTCONTROL(56)
constexpr TypedWhichId< SwDrawFrameFormat > RES_DRAWFRMFMT(165)
constexpr TypedWhichId< SwFormatAnchor > RES_ANCHOR(110)
constexpr sal_uInt16 INVALID_HINT(HINT_END)
constexpr TypedWhichId< SwFormatFollowTextFlow > RES_FOLLOW_TEXT_FLOW(130)
constexpr TypedWhichId< SwFormatField > RES_TXTATR_INPUTFIELD(55)
constexpr TypedWhichId< SvxColorItem > RES_CHRATR_COLOR(3)
SwCalendarWrapper & s_getCalendarWrapper()
CharClass & GetAppCharClass()
SwGlossaryList * GetGlossaryList()
constexpr sal_uInt16 KEY_RETURN
constexpr sal_uInt16 KEY_F2
constexpr sal_uInt16 KEY_MOD2
constexpr sal_uInt16 KEY_ESCAPE
constexpr sal_uInt16 KEY_MOD1
constexpr sal_uInt16 KEY_LEFT
constexpr sal_uInt16 KEY_PAGEDOWN
constexpr sal_uInt16 KEY_TAB
constexpr sal_uInt16 KEY_UP
constexpr sal_uInt16 KEY_A
constexpr sal_uInt16 KEY_RIGHT
constexpr sal_uInt16 KEY_DELETE
constexpr sal_uInt16 KEY_F12
constexpr sal_uInt16 KEY_DOWN
constexpr sal_uInt16 KEY_PAGEUP
constexpr sal_uInt16 KEY_SHIFT
constexpr sal_uInt16 KEY_BACKSPACE
#define LANGUAGE_DONTKNOW
#define LINK(Instance, Class, Member)
#define SAL_WARN(area, stream)
std::unique_ptr< sal_Int32[]> pData
sal_Int16 GetI18NScriptTypeOfLanguage(LanguageType nLang)
bool IsOptionSet(EOption eOption)
LanguageType GetLanguage(SfxItemSet const &aSet, sal_uInt16 nLangWhichId)
SfxDispatcher * GetDispatcher()
OStringBuffer & padToLength(OStringBuffer &rBuffer, sal_Int32 nLength, char cFill='\0')
bool ChangeIndentOnTabAtFirstPosOfFirstListItem()
configuration, if at first position of the first list item the <TAB>-key increased the indent of the ...
bool NumDownChangesIndent(const SwWrtShell &rShell)
Decides if increasing ("downing") the numbering level will change the amount of indentation or not.
@ Parent
EXPAND : (Start < nIndex <= End)
OUString toISO8601(const css::util::DateTime &rDateTime)
bool IsInPopupMenuExecute()
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
SwNodeOffset abs(const SwNodeOffset &a)
constexpr OUStringLiteral ODF_FORMCHECKBOX
constexpr OUStringLiteral ODF_FORMDATE
constexpr OUStringLiteral ODF_FORMDROPDOWN
bool GoCurrSection(SwPaM &rPam, SwMoveFnCollection const &fnMove)
SwMoveFnCollection const & fnSectionEnd
SwMoveFnCollection const & fnSectionStart
constexpr auto RULER_MOUSE_MARGINWIDTH
Assists with auto-completion of AutoComplete words and AutoText names.
static constexpr sal_uInt16 nNoPos
bool m_bIsDisplayed
Help string is currently displayed.
void * nTipId
Tip ID when a help string is displayed as a tip.
sal_uInt16 CurLen() const
bool m_bIsTip
Display help string as a tip rather than inline.
std::vector< std::pair< OUString, sal_uInt16 > > m_aHelpStrings
Strings that at least partially match an input word, and match length.
void Next(bool bEndLess)
Next help string.
const OUString & CurStr() const
void FillStrArr(SwWrtShell const &rSh, const OUString &rWord)
bool m_bAppendSpace
Append a space character to the displayed help string (if appropriate).
void Move(QuickHelpData &rCpy)
void Stop(SwWrtShell &rSh)
void Start(SwWrtShell &rSh, bool bRestart)
void SortAndFilter(const OUString &rOrigWord)
sal_uInt16 nCurArrPos
Index of the current help string.
void Previous(bool bEndLess)
Previous help string.
bool m_bIsAutoText
Help data stores AutoText names rather than AutoComplete words.
const SvxURLField * mpURLField
SwFormatClipboard * m_pFormatClipboard
void Set(SwCallEventObjectType eTyp, const SwFrameFormat *pFormat)
union SwContentAtPos::@21 aFnd
bool IsInProtectSect() const
is the node in a protected section?
const SfxPoolItem * pAttr
const SwTextAttr * pFndTextAttr
IsAttrAtPos eContentAtPos
const sw::mark::IFieldmark * pFieldmark
Marks a position in the document model.
void Assign(const SwNode &rNd, SwNodeOffset nDelta, sal_Int32 nContentOffset=0)
These all set both nNode and nContent.
void SetContent(sal_Int32 nContentIndex)
Set content index, only valid to call this if the position points to a SwContentNode subclass.
SwNodeOffset GetNodeIndex() const
sal_Int32 GetContentIndex() const
void AdjustContent(sal_Int32 nDelta)
Adjust content index, only valid to call this if the position points to a SwContentNode subclass.
OUString SwResId(TranslateId aId)
constexpr bool SW_ISPRINTABLE(sal_Unicode c)
constexpr sal_uInt8 MAXLEVEL
WinBits const WB_DIALOGCONTROL
WinBits const WB_CLIPCHILDREN
void LoadURL(SwViewShell &rVSh, const OUString &rURL, LoadUrlFlags nFilter, const OUString &rTargetFrameName)