22 #include <string_view>
49 #include <inputwin.hxx>
53 #include <strings.hrc>
54 #include <globstr.hrc>
55 #include <bitmaps.hlst>
60 #include <document.hxx>
65 #include <docfunc.hxx>
72 #include <com/sun/star/frame/XLayoutManager.hpp>
87 using com::sun::star::uno::UNO_QUERY;
89 using com::sun::star::frame::XLayoutManager;
94 constexpr
ToolBoxItemId SID_INPUT_FUNCTION (SC_VIEW_START + 47);
97 constexpr
ToolBoxItemId SID_INPUT_CANCEL (SC_VIEW_START + 50);
104 SC_NAME_INPUT_NAMEDRANGE_LOCAL,
105 SC_NAME_INPUT_NAMEDRANGE_GLOBAL,
106 SC_NAME_INPUT_DATABASE,
109 SC_NAME_INPUT_DEFINE,
110 SC_NAME_INPUT_BAD_NAME,
111 SC_NAME_INPUT_BAD_SELECTION,
132 SetAlignment(SfxChildAlignment::LOWESTTOP);
133 pBindings->Invalidate( FID_TOGGLEINPUTLINE );
165 pInputHdl ( nullptr ),
166 mpViewShell ( nullptr ),
168 bIsOkCancelMode ( false ),
181 OSL_ENSURE( pViewSh,
"no view shell for input window" );
190 InsertItem (SID_INPUT_FUNCTION,
Image(StockImage::Yes, RID_BMP_INPUT_FUNCTION), ToolBoxItemBits::NONE, 2);
196 if (!bIsLOKMobilePhone)
198 InsertItem (SID_INPUT_SUM,
Image(StockImage::Yes, RID_BMP_INPUT_SUM), ToolBoxItemBits::DROPDOWNONLY, 3);
199 InsertItem (SID_INPUT_EQUAL,
Image(StockImage::Yes, RID_BMP_INPUT_EQUAL), ToolBoxItemBits::NONE, 4);
200 InsertItem (SID_INPUT_CANCEL,
Image(StockImage::Yes, RID_BMP_INPUT_CANCEL), ToolBoxItemBits::NONE, 5);
201 InsertItem (SID_INPUT_OK,
Image(StockImage::Yes, RID_BMP_INPUT_OK), ToolBoxItemBits::NONE, 6);
221 if (!bIsLOKMobilePhone)
311 if(
const vcl::ILibreOfficeKitNotifier* pNotifier =
GetLOKNotifier())
343 if (curItemId == SID_INPUT_FUNCTION)
350 SfxCallMode::SYNCHRON | SfxCallMode::RECORD );
357 else if (curItemId == SID_INPUT_CANCEL)
362 else if (curItemId == SID_INPUT_OK)
368 else if (curItemId == SID_INPUT_EQUAL)
375 sal_Int32 nStartPos = 1;
376 sal_Int32 nEndPos = 1;
382 const sal_Int32 nLen = rString.getLength();
449 Window::PixelInvalidate(&aRect);
453 Window::PixelInvalidate(
nullptr);
464 if (
vcl::Window* pWorkWindow = pFrameWindowImpl->GetParent())
466 if (
vcl::Window* pImplBorderWindow = pWorkWindow->GetParent())
468 Size aSize = pImplBorderWindow->GetSizePixel();
470 pImplBorderWindow->SetSizePixel(aSize);
509 if (
const vcl::ILibreOfficeKitNotifier* pNotifier =
GetLOKNotifier())
511 std::vector<vcl::LOKPayloadItem> aItems;
515 pNotifier->notifyWindow(
GetLOKWindowId(),
"size_changed", aItems);
533 std::vector<vcl::LOKPayloadItem> aItems;
534 aItems.emplace_back(
"type",
"calc-input-win");
536 aItems.emplace_back(std::make_pair(
"size", aSize.
toString()));
560 sal_Int32 nLen = rString.getLength();
582 if (rString.getLength() <= 32767)
602 ShowItem ( SID_INPUT_CANCEL,
true );
685 if (
SC_MOD()->IsEditMode() )
720 if ( nType == StateChangedType::InitShow )
Resize();
725 if ( rDCEvt.
GetType() == DataChangedEventType::SETTINGS && (rDCEvt.
GetFlags() & AllSettingsFlags::STYLE) )
728 SetItemImage(SID_INPUT_FUNCTION,
Image(StockImage::Yes, RID_BMP_INPUT_FUNCTION));
764 bool bResetPointerPos =
false;
767 if (aPosPixel.Y() >=
mnMaxY)
769 bResetPointerPos =
true;
775 bResetPointerPos =
true;
779 bResetPointerPos =
true;
783 if (bResetPointerPos)
836 const OUString aFormula = pViewSh->
DoAutoSum(bRangeFinder, bSubTotal, eCode);
837 if ( aFormula.isEmpty() )
841 const sal_Int32 aOpen = aFormula.indexOf(
'(');
842 const sal_Int32 aLen = aFormula.getLength();
854 if ( aOpen != -1 && aLen > aOpen )
856 ESelection aSel( 0, aOpen + (bSubTotal ? 3 : 1), 0, aLen-1 );
868 , mxBackground(m_xBuilder->weld_container(
"background"))
870 , mxButtonUp(m_xBuilder->weld_button(
"up"))
871 , mxButtonDown(m_xBuilder->weld_button(
"down"))
1002 bool bSubTotal =
false;
1003 bool bRangeFinder =
false;
1005 if ( command ==
"sum" )
1009 else if ( command ==
"average" )
1013 else if ( command ==
"max" )
1017 else if ( command ==
"min" )
1021 else if ( command ==
"count" )
1026 AutoSum( bRangeFinder, bSubTotal, eCode );
1033 if (nCurID == SID_INPUT_SUM)
1038 std::unique_ptr<weld::Menu> xPopMenu(xBuilder->weld_menu(
"menu"));
1039 MenuHdl(xPopMenu->popup_at_rect(pPopupParent, aRect));
1045 if (mxTextWndGroup->GetNumLines() > 1)
1047 mxTextWndGroup->SetNumLines(1);
1049 mxButtonDown->show();
1053 mxTextWndGroup->SetNumLines(mxTextWndGroup->GetLastNumExpandedLines());
1054 mxButtonDown->hide();
1057 TriggerToolboxLayout();
1062 mxTextWndGroup->TextGrabFocus();
1083 if ( xPropSet.is() )
1085 css::uno::Any aValue = xPropSet->getPropertyValue(
"LayoutManager");
1086 aValue >>= xLayoutManager;
1089 if ( !xLayoutManager.is() )
1092 xLayoutManager->lock();
1093 DataChangedEvent aFakeUpdate( DataChangedEventType::SETTINGS,
nullptr, AllSettingsFlags::STYLE );
1109 xLayoutManager->unlock();
1121 : mxTextWnd(new
ScTextWnd(*this, pViewSh))
1122 , mxScrollWin(rParent.GetBuilder().weld_scrolled_window(
"scrolledwindow", true))
1123 , mxTextWndWin(new
weld::CustomWeld(rParent.GetBuilder(),
"sc_input_window", *mxTextWnd))
1157 mxTextWnd->InsertAccessibleTextData(rTextData);
1172 return mxTextWnd->GetLastNumExpandedLines();
1212 mxTextWnd->RemoveAccessibleTextData(rTextData);
1255 mxTextWnd->DoScroll();
1273 pView->Invalidate();
1298 OutputDevice& rDevice = GetDrawingArea()->get_ref_device();
1316 Size aOutputSize = GetOutputSizePixel();
1317 OutputDevice& rDevice = GetDrawingArea()->get_ref_device();
1323 if (
m_xEditView->GetVisArea().Top() > nMaxVisAreaTop)
1347 OutputDevice& rDevice = GetDrawingArea()->get_ref_device();
1351 int nCurrentDocPos =
m_xEditView->GetVisArea().Top();
1352 int nStepIncrement = GetTextHeight();
1353 int nPageIncrement = aOutputSize.
Height();
1354 int nPageSize = aOutputSize.
Height();
1364 nPageSize = std::min(nPageSize, nUpper);
1368 nStepIncrement, nPageIncrement, nPageSize);
1376 auto currentDocPos =
m_xEditView->GetVisArea().Top();
1408 std::unique_ptr<SfxPoolItem> pNewItem(rFontItem.
Clone());
1410 rSet.
Put( *pNewItem );
1412 rSet.
Put( *pNewItem );
1414 pNewItem.reset(rHeightItem.
Clone());
1416 rSet.
Put( *pNewItem );
1418 rSet.
Put( *pNewItem );
1420 pNewItem.reset(rWeightItem.
Clone());
1422 rSet.
Put( *pNewItem );
1424 rSet.
Put( *pNewItem );
1426 pNewItem.reset(rItalicItem.
Clone());
1428 rSet.
Put( *pNewItem );
1430 rSet.
Put( *pNewItem );
1432 pNewItem.reset(rLangItem.
Clone());
1434 rSet.
Put( *pNewItem );
1436 rSet.
Put( *pNewItem );
1466 std::unique_ptr<ScFieldEditEngine> pNew;
1472 pNew = std::make_unique<ScFieldEditEngine>(&rDoc, rDoc.
GetEnginePool(), rDoc.GetEditPool());
1476 pNew->SetExecuteURL(
false );
1479 Size barSize = GetOutputSizePixel();
1481 m_xEditEngine->SetPaperSize( GetDrawingArea()->get_ref_device().PixelToLogic(
Size(barSize.
Width(),10000)) );
1484 m_xEditEngine->SetReplaceLeadingSingleQuotationMark(
false );
1489 auto pSet = std::make_unique<SfxItemSet>(
m_xEditEngine->GetEmptyItemSet() );
1501 bool bFilled =
false;
1526 ScResId(STR_ACC_EDITLINE_NAME),
1527 ScResId(STR_ACC_EDITLINE_DESCR));
1535 m_xEditView->SetControlWord( n | EVControlBits::SINGLELINEPASTE );
1555 if ( nScript & SvtScriptType::COMPLEX )
1562 bIsInsertMode(true),
1563 bFormulaMode (false),
1565 mpViewShell(pViewSh),
1566 mrGroupBar(rParent),
1590 if (
SC_MOD()->IsEditMode() )
1594 bool bClickOnSelection =
false;
1600 if (!bClickOnSelection)
1632 bool bConsumed =
false;
1653 if ( nCommand == CommandEventId::StartDrag )
1657 if ( pEndViewSh != pStartViewSh && pStartViewSh !=
nullptr )
1668 else if ( nCommand == CommandEventId::EndExtTextInput )
1677 else if ( nCommand == CommandEventId::CursorPos )
1681 else if ( nCommand == CommandEventId::InputLanguageChange )
1691 rBindings.
Invalidate( SID_ATTR_CHAR_FONTHEIGHT );
1694 else if ( nCommand == CommandEventId::ContextMenu )
1703 Size aSize = GetOutputSizePixel();
1706 if (IsMouseCaptured())
1711 else if ( nCommand == CommandEventId::Wheel )
1715 else if ( nCommand == CommandEventId::Swipe )
1719 else if ( nCommand == CommandEventId::LongPress )
1723 else if ( nCommand == CommandEventId::ModKeyChange )
1742 return sSelection.isEmpty();
1751 if (!
SC_MOD()->InputKeyEvent( rKEvt ))
1788 nControl |= EEControlBits::AUTOCORRECT;
1790 if ( nControl != nOld )
1803 if (m_xEditView && !bInputMode)
1852 std::vector<ReferenceMark> aReferenceMarks;
1863 while ( i < rStr1.getLength() )
1866 if ( *pStr1 != *pStr2 )
1899 if (
auto pDocShell = dynamic_cast<ScDocShell*>( pObjSh) )
1906 bPaintAll = ( nOldScript & SvtScriptType::COMPLEX ) || ( nNewScript & SvtScriptType::COMPLEX );
1918 if (rNewString.getLength() >
aString.getLength())
1925 if ( nSize1>0 && nSize2>0 )
1926 nTextSize = std::max( nSize1, nSize2 );
1928 nTextSize = GetOutputSizePixel().Width();
1930 Point aLogicStart = GetDrawingArea()->get_ref_device().PixelToLogic(
Point(0,0));
1934 nInvPos += GetTextWidth(
aString.copy(0,nDifPos));
1970 std::unique_ptr<ScFieldEditEngine> pNew;
1975 pNew = std::make_unique<ScFieldEditEngine>(&rDoc, rDoc.
GetEnginePool(), rDoc.GetEditPool());
1979 pNew->SetExecuteURL(
false );
1986 auto pSet = std::make_unique<SfxItemSet>(
m_xEditEngine->GetEmptyItemSet() );
2000 ScResId(STR_ACC_EDITLINE_NAME),
2001 ScResId(STR_ACC_EDITLINE_DESCR));
2037 pDrawingArea->
set_cursor(PointerStyle::Text);
2091 "ScTextWnd::InsertAccessibleTextData - passed object already registered" );
2098 AccTextDataVector::iterator aIt = ::std::find(
maAccTextDatas.begin(), aEnd, &rTextData );
2099 OSL_ENSURE( aIt != aEnd,
"ScTextWnd::RemoveAccessibleTextData - passed object not registered" );
2107 CustomWidgetController::Invalidate();
2118 ,
m_xWidget(m_xBuilder->weld_combo_box(
"pos_window"))
2119 , m_nAsyncGetFocusId(nullptr)
2120 , nTipVisible(nullptr)
2121 , bFormulaMode(false)
2192 return OUString::Concat(rName) +
" (" + rTableName +
")";
2201 if (
auto pDocShell = dynamic_cast<ScDocShell*>( pObjSh) )
2206 m_xWidget->append_separator(
"separator");
2209 std::set<OUString> aSet;
2211 for (
const auto& rEntry : *pRangeNames)
2213 if (rEntry.second->IsValidReference(aDummy))
2214 aSet.
insert(rEntry.second->GetName());
2219 if (pLocalRangeName && !pLocalRangeName->
empty())
2221 OUString aTableName;
2223 for (
const auto& rEntry : *pLocalRangeName)
2225 if (rEntry.second->IsValidReference(aDummy))
2231 for (
const auto& rItem : aSet)
2245 OUString aFirstName;
2252 sal_uInt32 nListCount = pFuncList->
GetCount();
2253 for (sal_uInt16
i=0;
i<nMRUCount;
i++)
2255 sal_uInt16
nId = pMRUList[
i];
2256 for (sal_uInt32 j=0; j<nListCount; j++)
2262 if (aFirstName.isEmpty())
2285 if (
auto pEventHint = dynamic_cast<const SfxEventHint*>(&rHint) )
2288 if ( nEventId == SfxEventHintId::ActivateDoc )
2294 if (nHintId == SfxHintId::ScAreasChanged || nHintId == SfxHintId::ScNavigatorUpdateAll
2295 || nHintId == SfxHintId::ScTablesRenamed)
2334 if (rText ==
ScResId(STR_MANAGE_NAMES))
2335 eRet = SC_MANAGE_NAMES;
2337 eRet = SC_NAME_INPUT_RANGE;
2339 eRet = SC_NAME_INPUT_CELL;
2342 eRet = ((eNameScope ==
RUTL_NAMES_LOCAL) ? SC_NAME_INPUT_NAMEDRANGE_LOCAL :
2343 SC_NAME_INPUT_NAMEDRANGE_GLOBAL);
2346 eRet = SC_NAME_INPUT_DATABASE;
2348 ( nNumeric = rText.toInt32() ) > 0 && nNumeric <= rDoc.
MaxRow()+1 )
2349 eRet = SC_NAME_INPUT_ROW;
2350 else if ( rDoc.
GetTable( rText, nNameTab ) )
2351 eRet = SC_NAME_INPUT_SHEET;
2355 eRet = SC_NAME_INPUT_DEFINE;
2357 eRet = SC_NAME_INPUT_BAD_SELECTION;
2360 eRet = SC_NAME_INPUT_BAD_NAME;
2370 if (
m_xWidget->changed_by_direct_pick())
2382 const char* pStrId =
nullptr;
2385 case SC_NAME_INPUT_CELL:
2386 pStrId = STR_NAME_INPUT_CELL;
2388 case SC_NAME_INPUT_RANGE:
2389 case SC_NAME_INPUT_NAMEDRANGE_LOCAL:
2390 case SC_NAME_INPUT_NAMEDRANGE_GLOBAL:
2391 pStrId = STR_NAME_INPUT_RANGE;
2393 case SC_NAME_INPUT_DATABASE:
2394 pStrId = STR_NAME_INPUT_DBRANGE;
2396 case SC_NAME_INPUT_ROW:
2397 pStrId = STR_NAME_INPUT_ROW;
2399 case SC_NAME_INPUT_SHEET:
2400 pStrId = STR_NAME_INPUT_SHEET;
2402 case SC_NAME_INPUT_DEFINE:
2403 pStrId = STR_NAME_INPUT_DEFINE;
2417 aPos = LogicToPixel( pCur->
GetPos() );
2418 aPos = OutputToScreenPixel( aPos );
2421 OUString aText =
ScResId(pStrId);
2422 QuickHelpFlags const nAlign = QuickHelpFlags::Left|QuickHelpFlags::Bottom;
2428 OUString aText =
m_xWidget->get_active_text();
2429 if ( !aText.isEmpty() )
2434 if ( aText ==
ScResId(STR_FUNCTIONLIST_MORE) )
2441 if ( pViewFrm && !pViewFrm->
GetChildWindow( SID_OPENDLG_FUNCTION ) )
2443 SfxCallMode::SYNCHRON | SfxCallMode::RECORD );
2465 if ( eType == SC_NAME_INPUT_BAD_NAME || eType == SC_NAME_INPUT_BAD_SELECTION )
2467 const char* pId = (eType == SC_NAME_INPUT_BAD_NAME) ? STR_NAME_ERROR_NAME : STR_NAME_ERROR_SELECTION;
2470 else if ( eType == SC_NAME_INPUT_DEFINE )
2481 if ( aNewRanges.
insert(pNew) )
2488 else if (eType == SC_MANAGE_NAMES)
2490 sal_uInt16
nId = ScNameDlgWrapper::GetChildWindowId();
2494 SC_MOD()->SetRefDialog( nId, pWnd ==
nullptr );
2498 bool bForceGlobalName =
false;
2500 if (eType == SC_NAME_INPUT_CELL || eType == SC_NAME_INPUT_RANGE)
2508 else if (eType == SC_NAME_INPUT_NAMEDRANGE_GLOBAL)
2510 bForceGlobalName =
true;
2516 SfxBoolItem aForceGlobalName( FN_PARAM_3, bForceGlobalName );
2519 SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
2520 { &aPosItem, &aUnmarkItem, &aForceGlobalName });
2539 bool bHandled =
true;
2541 switch (rKEvt.GetKeyCode().GetCode())
2556 ReleaseFocus_Impl();
2564 return bHandled || ChildKeyInput(rKEvt);
2569 m_nAsyncGetFocusId =
nullptr;
2575 if (m_nAsyncGetFocusId)
2583 if (m_nAsyncGetFocusId)
2586 m_nAsyncGetFocusId =
nullptr;
virtual Point GetPosPixel() const
SC_DLLPUBLIC ScRefFlags ParseAny(const OUString &, const ScDocument &, const ScAddress::Details &rDetails=ScAddress::detailsOOOa1)
SfxViewFrame * GetViewFrame() const
#define LINK(Instance, Class, Member)
tools::Long mnLastExpandedLines
List of spreadsheet functions.
vcl::Window & GetVclParent()
WinBits const WB_NOSHADOW
const SfxPoolItem * ExecuteList(sal_uInt16 nSlot, SfxCallMode nCall, std::initializer_list< SfxPoolItem const * > args, std::initializer_list< SfxPoolItem const * > internalargs=std::initializer_list< SfxPoolItem const * >())
void SetFillColor(const Color &)
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO_CJK(EE_CHAR_START+17)
Point GetPointerPosPixel()
virtual const OUString & GetTextString() const override
vcl::LOKWindowId GetLOKWindowId() const
void SetNumLines(tools::Long nLines)
virtual void SetTextString(const OUString &rString) override
constexpr TypedWhichId< SvxScriptSpaceItem > EE_PARA_ASIANCJKSPACING(EE_PARA_START+4)
virtual void SetFormulaMode(bool bSet) override
void SetFontSize(const Size &)
ScDocShell * GetDocShell() const
ScTextWndGroup & mrGroupBar
SfxChildWindow * GetChildWindow(sal_uInt16)
bool isLOKMobilePhone() const
#define LINE_SPACE_DEFAULT_HEIGHT
virtual tools::Long GetNumLines() const override
void setWidth(tools::Long nWidth)
virtual void StyleUpdated() override
virtual SfxPoolItem * Clone(SfxItemPool *pPool=nullptr) const =0
bool SfxKeyInput(const KeyEvent &rKEvt)
virtual void TextGrabFocus() override
tools::Long getWidth() const
SfxDispatcher * GetDispatcher()
virtual void dispose() override
sal_uInt16 GetLRUFuncListCount() const
const StyleSettings & GetStyleSettings() const
static const AllSettings & GetSettings()
virtual bool MouseMove(const MouseEvent &rMEvt) override
SC_DLLPUBLIC ScRangeName * GetRangeName(SCTAB nTab) const
const Color & GetFaceColor() const
std::unique_ptr< weld::ComboBox > m_xWidget
tools::Long GetOutOffXPixel() const
void SetAccessibleName(const OUString &rName)
virtual Size GetSizePixel() const
virtual void MakeDialogEditView() override
virtual void SetSizePixel(const Size &rNewSize)
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC(EE_CHAR_START+7)
const OutputDevice & GetEditViewDevice() const
void SetWeight(FontWeight)
ScPosWnd(vcl::Window *pParent)
static weld::Builder * CreateBuilder(weld::Widget *pParent, const OUString &rUIFile, bool bMobile=false)
virtual void StartEditEngine() override
ScTextWndGroup(ScInputBarGroup &pParent, ScTabViewShell *pViewSh)
void SetLOKNotifier(const vcl::ILibreOfficeKitNotifier *pNotifier, bool bParent=false)
bool HasEditView(ScSplitPos eWhich) const
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
void InputSelection(const EditView *pView)
DataChangedEventType GetType() const
ScSplitPos GetActivePart() const
ScDocument & GetDocument() const
constexpr TypedWhichId< SvxAdjustItem > EE_PARA_JUST(EE_PARA_START+15)
static SfxObjectShell * Current()
constexpr TypedWhichId< SvxLanguageItem > EE_CHAR_LANGUAGE_CJK(EE_CHAR_START+15)
void SetHelpId(const OString &)
void Invalidate(sal_uInt16 nId)
virtual void EditViewScrollStateChange() override
void SetQuickHelpText(const OUString &rHelpText)
SC_DLLPUBLIC formula::FormulaGrammar::AddressConvention GetAddressConvention() const
virtual const OUString & GetTextString() const override
OUString DoAutoSum(bool &rRangeFinder, bool &rSubTotal, const OpCode eCode)
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT(EE_CHAR_START+2)
void ExecutePopup(const OUString &rResName, vcl::Window *pWin=nullptr, const Point *pPos=nullptr)
SC_DLLPUBLIC SvtScriptType GetStringScriptType(const OUString &rString)
void SetEditEngineUpdateMode(bool bUpdate)
constexpr TypedWhichId< SvxLineSpacingItem > EE_PARA_SBL(EE_PARA_START+14)
virtual void SetTextString(const OUString &rString) override
SC_DLLPUBLIC void InputEnterHandler(ScEnterMode nBlockMode=ScEnterMode::NORMAL)
void SetVisArea(const tools::Rectangle &rRect)
SfxApplication * SfxGetpApp()
void SetNumLines(tools::Long nLines)
tools::Long GetGridHeight(ScVSplitPos eWhich)
void SetPropLineSpace(const sal_uInt16 nProp)
virtual bool StartDrag() override
void Enable(bool bEnable=true, bool bChild=true)
SC_DLLPUBLIC SCROW MaxRow() const
SC_DLLPUBLIC SCTAB GetTableCount() const
vcl::Cursor * GetCursor() const
const vcl::Font & GetFont() const
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO_CTL(EE_CHAR_START+18)
bool IsMouseEvent() const
SfxFrame & GetFrame() const
static SfxViewShell * GetNext(const SfxViewShell &rPrev, bool bOnlyVisible=true, const std::function< bool(const SfxViewShell *)> &isViewShell=nullptr)
virtual void InsertAccessibleTextData(ScAccessibleEditLineTextData &rTextData) override
sal_uInt16 * GetLRUFuncList() const
ScTextWnd(ScTextWndGroup &rParent, ScTabViewShell *pViewSh)
AllSettingsFlags GetFlags() const
rtl::Reference< ScAccessibleEditObject > pAcc
static SfxViewShell * Current()
static void * ShowPopover(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rText, QuickHelpFlags nStyle)
virtual bool KeyInput(const KeyEvent &rKEvt) override
SC_DLLPUBLIC bool GetTable(const OUString &rName, SCTAB &rTab) const
virtual void InsertAccessibleTextData(ScAccessibleEditLineTextData &rTextData) override
void UpdateInputHandler(bool bForce=false, bool bStopEditing=true)
void SetInEditCommand(bool bNew)
virtual void Resize() override
virtual bool MouseButtonUp(const MouseEvent &rMEvt) override
virtual OutputDevice & get_ref_device()=0
bool isdigitAsciiString(const OString &rString)
int GetPixelHeightForLines(tools::Long nLines)
void SetPointerPosPixel(const Point &rPos)
Size GetOutputSizePixel() const
ScViewData & GetViewData()
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT(EE_CHAR_START+4)
virtual ~ScTextWnd() override
virtual bool IsInputActive() override
virtual ~ScTextWndGroup() override
void SetFormShellAtTop(bool bSet)
const Point & GetPos() const
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
void UpdateAutoCorrFlag()
virtual ~ScPosWnd() override
virtual bool HasEditView() const override
virtual EditView * GetEditView() const override
Point GetCursorScreenPixelPos(bool bBelowLine)
SC_DLLPUBLIC ScRangeData * findByUpperName(const OUString &rName)
virtual void set_cursor(PointerStyle ePointerStyle)=0
bool IsRTLEnabled() const
virtual bool Command(const CommandEvent &rCEvt) override
SFX_IMPL_CHILDWINDOW_WITHID(SvxSearchDialogWrapper, SID_SEARCH_DLG)
static void HidePopover(vcl::Window const *pParent, void *nId)
virtual void MakeDialogEditView() override
MouseMiddleButtonAction GetMiddleButtonAction() const
virtual EditView * GetEditView() const override
class SAL_NO_VTABLE XPropertySet
virtual void StartEditEngine() override
sal_uInt32 GetTextLen() const
EditEngine * GetEditEngine() const
weld::Window * GetPopupParent(vcl::Window &rOutWin, tools::Rectangle &rRect)
SfxBindings & GetBindings()
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
SC_DLLPUBLIC OUString Format(const ScDocument &rDocument, ScRefFlags nFlags=ScRefFlags::ZERO, const ScAddress::Details &rDetails=ScAddress::detailsOOOa1, bool bFullAddressNotation=false) const
Returns string with formatted cell range from aStart to aEnd, according to provided address conventio...
Size GetOutputSize() const
std::unique_ptr< weld::ScrolledWindow > mxScrollWin
static SC_DLLPUBLIC IsNameValidType IsNameValid(const OUString &rName, const ScDocument &rDoc)
SC_DLLPUBLIC SfxItemPool * GetEnginePool() const
tools::Long Width() const
virtual bool MouseButtonUp(const MouseEvent &rMEvt) override
const tools::Rectangle & GetVisArea() const
CommandEventId GetCommand() const
int GetPixelHeightForLines(tools::Long nLines)
OUString uppercase(const OUString &rStr, sal_Int32 nPos, sal_Int32 nCount) const
OUString ScResId(const char *pId)
ScMarkType GetSimpleArea(SCCOL &rStartCol, SCROW &rStartRow, SCTAB &rStartTab, SCCOL &rEndCol, SCROW &rEndRow, SCTAB &rEndTab) const
std::unique_ptr< ScTextWnd > mxTextWnd
static bool GetLayoutRTL()
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT_CJK(EE_CHAR_START+21)
const Size & GetFontSize() const
std::unique_ptr< EditView > m_xEditView
virtual void GetFocus() override
rtl::Reference< svt::OStringTransferable > m_xHelper
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC_CTL(EE_CHAR_START+24)
void SetPaintTransparent(bool bTransparent)
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override
#define HID_INSWIN_CANCEL
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
static SfxViewShell * GetFirst(bool bOnlyVisible=true, const std::function< bool(const SfxViewShell *)> &isViewShell=nullptr)
vcl::Window * GetParent() const
const ScFuncDesc * GetFunction(sal_uInt32 nIndex) const
SfxViewShell * GetViewShell() const
void SetFormulaMode(bool bSet)
const css::uno::Reference< css::frame::XFrame > & GetFrameInterface() const
static ScFunctionList * GetStarCalcFunctionList()
sal_Int32 GetParagraphCount() const
static bool MakeRangeFromName(const OUString &rName, const ScDocument &rDoc, SCTAB nCurTab, ScRange &rRange, RutlNameScope eScope=RUTL_NAMES, ScAddress::Details const &rDetails=ScAddress::detailsOOOa1)
constexpr sal_uInt16 KEY_RETURN
tools::Long GetOutOffYPixel() const
void SetColor(const Color &)
ScDBFunc * GetView() const
static SfxItemPool * CreatePool()
ScAddress GetCurPos() const
const Point & GetMousePosPixel() const
Point PixelToLogic(const Point &rDevicePt) const
Point LogicToPixel(const Point &rLogicPt) const
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual void SetDrawingArea(weld::DrawingArea *pDrawingArea) override
constexpr TypedWhichId< SvxLanguageItem > EE_CHAR_LANGUAGE_CTL(EE_CHAR_START+16)
static std::unique_ptr< SvtSysLocale > xSysLocale
bool IsInputActive() override
void SetPointer(PointerStyle)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
Size GetSizePixel() const override
virtual bool MouseButtonDown(const MouseEvent &rMEvt) override
std::optional< OUString > mxFuncName
Function name.
static SfxViewFrame * Current()
ScTabViewShell * mpViewShell
static ScTabViewShell * GetActiveViewShell()
std::unique_ptr< weld::Container > m_xContainer
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT_CTL(EE_CHAR_START+20)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
void ErrorMessage(const char *pGlobStrId)
constexpr sal_uInt16 KEY_ESCAPE
void SetFont(const vcl::Font &rNewFont)
virtual void dispose() override
const o3tl::enumarray< SvxAdjust, unsigned short > aSvxToUnoAdjust USHRT_MAX
tools::Long GetHeight() const
virtual void StopEditEngine(bool bAll) override
const OutputDevice & GetEditViewDevice() const
void SetTransparent(bool bTransparent)
tools::Long GetTextHeight() const
void SetWhich(sal_uInt16 nId)
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT_CTL(EE_CHAR_START+22)
void InputChanged(const EditView *pView)
SfxDispatcher & GetDispatcher()
SfxViewFrame * GetFrame() const
static VclPtr< reference_type > Create(Arg &&...arg)
SC_DLLPUBLIC ScRefFlags Parse(const OUString &, const ScDocument &, const ScAddress::Details &rDetails=ScAddress::detailsOOOa1, ScAddress::ExternalInfo *pExtInfo=nullptr, const css::uno::Sequence< css::sheet::ExternalLinkInfo > *pExternalLinks=nullptr, const OUString *pErrRef=nullptr)
static OUString ModifyDelimiters(const OUString &rOld)
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
void SetPointFont(OutputDevice &rDevice, const vcl::Font &rFont)
tools::Long Height() const
bool IsInModalMode() const
static SC_DLLPUBLIC const CharClass * getCharClassPtr()
const MouseSettings & GetMouseSettings() const
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
const Color & GetWindowColor() const
const ScDocument & GetDocument() const
constexpr TypedWhichId< SvxLanguageItem > EE_CHAR_LANGUAGE(EE_CHAR_START+14)
const Point & GetPosPixel() const
sal_uInt16 nFIndex
Unique function index.
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO(EE_CHAR_START+1)
vcl::Window * GetWindow() const
sal_uInt32 GetCount() const
static void SetFontInfoInItemSet(SfxItemSet &rItemSet, const vcl::Font &rFont)
void InputCancelHandler()
const vcl::Font & GetAppFont() const
void SetSelection(const ESelection &rNewSel)
void setHeight(tools::Long nHeight)
tools::Long GetLastNumExpandedLines() const
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC_CJK(EE_CHAR_START+23)
SfxDispatcher * GetDispatcher() const
std::unique_ptr< EditEngine > m_xEditEngine
virtual void RemoveAccessibleTextData(ScAccessibleEditLineTextData &rTextData) override
reference_type * get() const
const vcl::ILibreOfficeKitNotifier * GetLOKNotifier() const
virtual void TextGrabFocus() override
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT_CJK(EE_CHAR_START+19)
int GetEditEngTxtHeight() const
ScInputHandler * GetInputHdl(ScTabViewShell *pViewSh=nullptr, bool bUseRef=true)
Input-Handler.
SC_DLLPUBLIC ScRefFlags Parse(const OUString &, const ScDocument &, const Details &rDetails=detailsOOOa1, ExternalInfo *pExtInfo=nullptr, const css::uno::Sequence< css::sheet::ExternalLinkInfo > *pExternalLinks=nullptr, sal_Int32 *pSheetEndPos=nullptr, const OUString *pErrRef=nullptr)
virtual void SetFormulaMode(bool bSet) override
Point OutputToScreenPixel(const Point &rPos) const
void ReleaseLOKNotifier()
const SfxPoolItem * Execute(sal_uInt16 nSlot, SfxCallMode nCall=SfxCallMode::SLOT, const SfxPoolItem **pArgs=nullptr, sal_uInt16 nModi=0, const SfxPoolItem **pInternalArgs=nullptr)
const Size & GetPaperSize() const
virtual bool MouseButtonDown(const MouseEvent &rMEvt) override
virtual bool HasEditView() const override
virtual OutputDevice & EditViewOutputDevice() const override
TOOLS_DLLPUBLIC rtl::OString toString() const
static OUString createLocalRangeName(std::u16string_view rName, std::u16string_view rTableName)
Stores and generates human readable descriptions for spreadsheet-functions, e.g. functions used in fo...
const ScInputHandler * GetInputHandler() const
BaseContainerNodeSharedPtr & mrParent
virtual void RemoveAccessibleTextData(ScAccessibleEditLineTextData &rTextData) override
virtual void GetFocus() override
AccTextDataVector maAccTextDatas
WinBits const WB_CLIPCHILDREN
ImplSVEvent * m_nAsyncGetFocusId
virtual void Resize() override
SC_DLLPUBLIC bool GetName(SCTAB nTab, OUString &rName) const
virtual SfxChildWinInfo GetInfo() const
SC_DLLPUBLIC bool insert(ScRangeData *p, bool bReuseFreeIndex=true)
Insert object into set.
void ModifyRangeNames(const ScRangeName &rNewRanges, SCTAB nTab=-1)
const Color & GetWindowTextColor() const
SC_DLLPUBLIC void GetCellType(SCCOL nCol, SCROW nRow, SCTAB nTab, CellType &rCellType) const
void InitControlBase(weld::Widget *pWidget)
weld::ScrolledWindow & GetScrollWin()
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
OUString toString(OptionInfo const *info)
void SetPos(const OUString &rPosStr)
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
virtual void StopEditEngine(bool bAll) override