49#include <inputwin.hxx>
55#include <bitmaps.hlst>
60#include <document.hxx>
72#include <com/sun/star/frame/XLayoutManager.hpp>
88using com::sun::star::uno::UNO_QUERY;
90using com::sun::star::frame::XLayoutManager;
95constexpr ToolBoxItemId SID_INPUT_FUNCTION (SC_VIEW_START + 47);
105 SC_NAME_INPUT_NAMEDRANGE_LOCAL,
106 SC_NAME_INPUT_NAMEDRANGE_GLOBAL,
107 SC_NAME_INPUT_DATABASE,
110 SC_NAME_INPUT_DEFINE,
111 SC_NAME_INPUT_BAD_NAME,
112 SC_NAME_INPUT_BAD_SELECTION,
131 pWin->SetSizePixel( pWin->CalcWindowSizePixel() );
133 SetAlignment(SfxChildAlignment::LOWESTTOP);
134 pBindings->Invalidate( FID_TOGGLEINPUTLINE );
166 pInputHdl ( nullptr ),
167 mpViewShell ( nullptr ),
169 mnStandardItemHeight(0),
170 bIsOkCancelMode ( false ),
183 OSL_ENSURE( pViewSh,
"no view shell for input window" );
192 InsertItem (SID_INPUT_FUNCTION,
Image(StockImage::Yes, RID_BMP_INPUT_FUNCTION), ToolBoxItemBits::NONE, 2);
198 if (!bIsLOKMobilePhone)
200 InsertItem (SID_INPUT_SUM,
Image(StockImage::Yes, RID_BMP_INPUT_SUM), ToolBoxItemBits::DROPDOWNONLY, 3);
201 InsertItem (SID_INPUT_EQUAL,
Image(StockImage::Yes, RID_BMP_INPUT_EQUAL), ToolBoxItemBits::NONE, 4);
202 InsertItem (SID_INPUT_CANCEL,
Image(StockImage::Yes, RID_BMP_INPUT_CANCEL), ToolBoxItemBits::NONE, 5);
203 InsertItem (SID_INPUT_OK,
Image(StockImage::Yes, RID_BMP_INPUT_OK), ToolBoxItemBits::NONE, 6);
223 if (!bIsLOKMobilePhone)
344 if (curItemId == SID_INPUT_FUNCTION)
351 SfxCallMode::SYNCHRON | SfxCallMode::RECORD );
358 else if (curItemId == SID_INPUT_CANCEL)
363 else if (curItemId == SID_INPUT_OK)
369 else if (curItemId == SID_INPUT_EQUAL)
383 sal_Int32 nStartPos = 1;
384 sal_Int32 nEndPos = 1;
389 const OUString& rString =
mxTextWindow->GetTextString();
390 const sal_Int32 nLen = rString.getLength();
419 sal_Int32 nStartPara = 0, nEndPara = 0;
447 Window::PixelInvalidate(&aRect);
451 Window::PixelInvalidate(
nullptr);
462 if (
vcl::Window* pWorkWindow = pFrameWindowImpl->GetParent())
464 if (
vcl::Window* pImplBorderWindow = pWorkWindow->GetParent())
466 Size aSize = pImplBorderWindow->GetSizePixel();
468 pImplBorderWindow->SetSizePixel(aSize);
482 Size aSize = aStartSize;
500 int nNormalHeight =
mxTextWindow->GetPixelHeightForLines(1);
502 if (nInitialTopMargin > 0)
503 nTopOffset = nInitialTopMargin;
509 if (aStartSize != aSize)
539 sal_Int32 nLen = rString.getLength();
562 if (rString.getLength() <= 32767)
582 ShowItem ( SID_INPUT_CANCEL,
true );
666 if (
SC_MOD()->IsEditMode() )
707 if (
nType == StateChangedType::InitShow )
Resize();
712 if ( rDCEvt.
GetType() == DataChangedEventType::SETTINGS && (rDCEvt.
GetFlags() & AllSettingsFlags::STYLE) )
715 SetItemImage(SID_INPUT_FUNCTION,
Image(StockImage::Yes, RID_BMP_INPUT_FUNCTION));
751 bool bResetPointerPos =
false;
754 if (aPosPixel.Y() >=
mnMaxY)
756 bResetPointerPos =
true;
762 bResetPointerPos =
true;
766 bResetPointerPos =
true;
770 if (bResetPointerPos)
823 const OUString aFormula = pViewSh->
DoAutoSum(bRangeFinder, bSubTotal, eCode);
824 if ( aFormula.isEmpty() )
828 const sal_Int32 aOpen = aFormula.indexOf(
'(');
829 const sal_Int32 aLen = aFormula.getLength();
841 if ( aOpen != -1 && aLen > aOpen )
843 ESelection aSel( 0, aOpen + (bSubTotal ? 3 : 1), 0, aLen-1 );
854 :
InterimItemWindow(pParent,
"modules/scalc/ui/inputbar.ui",
"InputBar", true, reinterpret_cast<sal_uInt64>(pViewSh))
855 , mxBackground(m_xBuilder->weld_container(
"background"))
857 , mxButtonUp(m_xBuilder->weld_button(
"up"))
858 , mxButtonDown(m_xBuilder->weld_button(
"down"))
901 if ((rDCEvt.
GetType() == DataChangedEventType::SETTINGS) && (rDCEvt.
GetFlags() & AllSettingsFlags::STYLE))
1005 if (command.empty())
1008 bool bSubTotal =
false;
1009 bool bRangeFinder =
false;
1011 if ( command ==
"sum" )
1015 else if ( command ==
"average" )
1019 else if ( command ==
"max" )
1023 else if ( command ==
"min" )
1027 else if ( command ==
"count" )
1031 else if ( command ==
"counta" )
1035 else if ( command ==
"product" )
1039 else if (command ==
"stdev")
1043 else if (command ==
"stdevp")
1047 else if (command ==
"var")
1051 else if (command ==
"varp")
1056 AutoSum( bRangeFinder, bSubTotal, eCode );
1064 if (nCurID == SID_INPUT_SUM)
1069 std::unique_ptr<weld::Menu> xPopMenu(xBuilder->weld_menu(
"menu"));
1070 MenuHdl(xPopMenu->popup_at_rect(pPopupParent, aRect));
1076 if (mxTextWndGroup->GetNumLines() > 1)
1077 mxTextWndGroup->SetNumLines(1);
1079 mxTextWndGroup->SetNumLines(mxTextWndGroup->GetLastNumExpandedLines());
1117 if ( xPropSet.is() )
1119 css::uno::Any aValue = xPropSet->getPropertyValue(
"LayoutManager");
1120 aValue >>= xLayoutManager;
1123 if ( !xLayoutManager.is() )
1126 xLayoutManager->lock();
1127 DataChangedEvent aFakeUpdate( DataChangedEventType::SETTINGS,
nullptr, AllSettingsFlags::STYLE );
1143 xLayoutManager->unlock();
1155 : mxTextWnd(new
ScTextWnd(*this, pViewSh))
1156 , mxScrollWin(rParent.GetBuilder().weld_scrolled_window(
"scrolledwindow", true))
1157 , mxTextWndWin(new
weld::CustomWeld(rParent.GetBuilder(),
"sc_input_window", *mxTextWnd))
1193 mxTextWnd->InsertAccessibleTextData(rTextData);
1208 return mxTextWnd->GetLastNumExpandedLines();
1213 mxTextWnd->SetLastNumExpandedLines(nLastExpandedLines);
1253 mxTextWnd->RemoveAccessibleTextData(rTextData);
1296 mxTextWnd->DoScroll();
1311 pView->Invalidate();
1347 OutputDevice& rDevice = GetDrawingArea()->get_ref_device();
1373 Size aOutputSize = GetOutputSizePixel();
1374 OutputDevice& rDevice = GetDrawingArea()->get_ref_device();
1380 if (
m_xEditView->GetVisArea().Top() > nMaxVisAreaTop)
1404 OutputDevice& rDevice = GetDrawingArea()->get_ref_device();
1408 int nCurrentDocPos =
m_xEditView->GetVisArea().Top();
1409 int nStepIncrement = GetTextHeight();
1410 int nPageIncrement = aOutputSize.
Height();
1411 int nPageSize = aOutputSize.
Height();
1421 nPageSize = std::min(nPageSize, nUpper);
1425 nStepIncrement, nPageIncrement, nPageSize);
1433 auto currentDocPos =
m_xEditView->GetVisArea().Top();
1465 std::unique_ptr<SfxPoolItem> pNewItem(rFontItem.
Clone());
1471 pNewItem.reset(rHeightItem.
Clone());
1477 pNewItem.reset(rWeightItem.
Clone());
1483 pNewItem.reset(rItalicItem.
Clone());
1489 pNewItem.reset(rLangItem.
Clone());
1523 std::unique_ptr<ScFieldEditEngine> pNew;
1533 pNew->SetExecuteURL(
false );
1536 Size barSize = GetOutputSizePixel();
1538 m_xEditEngine->SetPaperSize( GetDrawingArea()->get_ref_device().PixelToLogic(
Size(barSize.
Width(),10000)) );
1541 m_xEditEngine->SetReplaceLeadingSingleQuotationMark(
false );
1546 auto pSet = std::make_unique<SfxItemSet>(
m_xEditEngine->GetEmptyItemSet() );
1558 bool bFilled =
false;
1587 ScResId(STR_ACC_EDITLINE_NAME),
1588 ScResId(STR_ACC_EDITLINE_DESCR));
1596 m_xEditView->SetControlWord(
n | EVControlBits::SINGLELINEPASTE );
1617 if ( nScript & SvtScriptType::COMPLEX )
1624 bIsInsertMode(true),
1625 bFormulaMode (false),
1627 mpViewShell(pViewSh),
1628 mrGroupBar(rParent),
1648 return SC_MOD()->IsEditMode();
1660 bool bClickOnSelection =
false;
1666 if (!bClickOnSelection)
1698 bool bConsumed =
false;
1719 if ( nCommand == CommandEventId::StartDrag )
1723 if ( pEndViewSh != pStartViewSh && pStartViewSh !=
nullptr )
1734 else if ( nCommand == CommandEventId::EndExtTextInput )
1743 else if ( nCommand == CommandEventId::CursorPos )
1747 else if ( nCommand == CommandEventId::InputLanguageChange )
1757 rBindings.
Invalidate( SID_ATTR_CHAR_FONTHEIGHT );
1760 else if ( nCommand == CommandEventId::ContextMenu )
1769 Size aSize = GetOutputSizePixel();
1772 if (IsMouseCaptured())
1777 else if ( nCommand == CommandEventId::Wheel )
1781 else if ( nCommand == CommandEventId::GestureSwipe )
1785 else if ( nCommand == CommandEventId::GestureLongPress )
1789 else if ( nCommand == CommandEventId::ModKeyChange )
1814 sal_Int32 nParaStart, nParaEnd, nPosStart, nPosEnd;
1820 nParaStart = nParaEnd =
m_xEditView->GetEditEngine()->GetParagraphCount() ?
1821 (
m_xEditView->GetEditEngine()->GetParagraphCount() - 1) : 0;
1822 nPosStart = nPosEnd =
m_xEditView->GetEditEngine()->GetTextLen(nParaStart);
1826 nParaStart = pParaPoint ? pParaPoint->X() : 0;
1827 nParaEnd = pParaPoint ? pParaPoint->Y() : 0;
1828 nPosStart =
m_xEditView->GetPosNoField(nParaStart, aSelectionStartEnd.X());
1829 nPosEnd =
m_xEditView->GetPosNoField(nParaEnd, aSelectionStartEnd.Y());
1852 return sSelection.isEmpty();
1861 if (!
SC_MOD()->InputKeyEvent( rKEvt ))
1898 nControl |= EEControlBits::AUTOCORRECT;
1900 if ( nControl != nOld )
1913 if (m_xEditView && !bInputMode)
1927 SetScrollBarRange();
1970 std::vector<ReferenceMark> aReferenceMarks;
1981 while (
i < rStr1.getLength() )
1984 if ( *pStr1 != *pStr2 )
2017 if (
auto pDocShell =
dynamic_cast<ScDocShell*
>( pObjSh) )
2024 bPaintAll = ( nOldScript & SvtScriptType::COMPLEX ) || ( nNewScript & SvtScriptType::COMPLEX );
2036 if (rNewString.getLength() >
aString.getLength())
2043 if ( nSize1>0 && nSize2>0 )
2044 nTextSize = std::max( nSize1, nSize2 );
2046 nTextSize = GetOutputSizePixel().Width();
2048 Point aLogicStart = GetDrawingArea()->get_ref_device().PixelToLogic(
Point(0,0));
2052 nInvPos += GetTextWidth(
aString.copy(0,nDifPos));
2094 std::unique_ptr<ScFieldEditEngine> pNew;
2103 pNew->SetExecuteURL(
false );
2106 const bool bPrevUpdateLayout =
m_xEditEngine->SetUpdateLayout(
false );
2110 auto pSet = std::make_unique<SfxItemSet>(
m_xEditEngine->GetEmptyItemSet() );
2128 ScResId(STR_ACC_EDITLINE_NAME),
2129 ScResId(STR_ACC_EDITLINE_DESCR));
2165 pDrawingArea->
set_cursor(PointerStyle::Text);
2219 "ScTextWnd::InsertAccessibleTextData - passed object already registered" );
2226 AccTextDataVector::iterator aIt = ::std::find(
maAccTextDatas.begin(), aEnd, &rTextData );
2227 OSL_ENSURE( aIt != aEnd,
"ScTextWnd::RemoveAccessibleTextData - passed object not registered" );
2235 CustomWidgetController::Invalidate();
2246 ,
m_xWidget(m_xBuilder->weld_combo_box(
"pos_window"))
2247 , m_nAsyncGetFocusId(nullptr)
2248 , nTipVisible(nullptr)
2249 , bFormulaMode(false)
2320 return OUString::Concat(rName) +
" (" + rTableName +
")";
2329 if (
auto pDocShell =
dynamic_cast<ScDocShell*
>( pObjSh) )
2334 m_xWidget->append_separator(
"separator");
2337 std::set<OUString> aSet;
2339 for (
const auto& rEntry : *pRangeNames)
2341 if (rEntry.second->IsValidReference(aDummy))
2342 aSet.
insert(rEntry.second->GetName());
2347 if (pLocalRangeName && !pLocalRangeName->
empty())
2349 OUString aTableName;
2351 for (
const auto& rEntry : *pLocalRangeName)
2353 if (rEntry.second->IsValidReference(aDummy))
2359 for (
const auto& rItem : aSet)
2373 OUString aFirstName;
2380 sal_uInt32 nListCount = pFuncList->
GetCount();
2381 for (sal_uInt16
i=0;
i<nMRUCount;
i++)
2383 sal_uInt16
nId = pMRUList[
i];
2384 for (sal_uInt32 j=0; j<nListCount; j++)
2390 if (aFirstName.isEmpty())
2413 if (
auto pEventHint =
dynamic_cast<const SfxEventHint*
>(&rHint) )
2416 if ( nEventId == SfxEventHintId::ActivateDoc )
2422 if (nHintId == SfxHintId::ScAreasChanged || nHintId == SfxHintId::ScNavigatorUpdateAll)
2438 ScNameInputType eRet = SC_NAME_INPUT_BAD_NAME;
2461 if (rText ==
ScResId(STR_MANAGE_NAMES))
2462 eRet = SC_MANAGE_NAMES;
2464 eRet = SC_NAME_INPUT_RANGE;
2466 eRet = SC_NAME_INPUT_CELL;
2469 eRet = ((eNameScope ==
RUTL_NAMES_LOCAL) ? SC_NAME_INPUT_NAMEDRANGE_LOCAL :
2470 SC_NAME_INPUT_NAMEDRANGE_GLOBAL);
2473 eRet = SC_NAME_INPUT_DATABASE;
2475 ( nNumeric = rText.toInt32() ) > 0 && nNumeric <= rDoc.
MaxRow()+1 )
2476 eRet = SC_NAME_INPUT_ROW;
2477 else if ( rDoc.
GetTable( rText, nNameTab ) )
2478 eRet = SC_NAME_INPUT_SHEET;
2483 eRet = SC_NAME_INPUT_DEFINE;
2485 eRet = SC_NAME_INPUT_BAD_SELECTION;
2488 eRet = SC_NAME_INPUT_BAD_NAME;
2498 if (
m_xWidget->changed_by_direct_pick())
2513 case SC_NAME_INPUT_CELL:
2514 pStrId = STR_NAME_INPUT_CELL;
2516 case SC_NAME_INPUT_RANGE:
2517 case SC_NAME_INPUT_NAMEDRANGE_LOCAL:
2518 case SC_NAME_INPUT_NAMEDRANGE_GLOBAL:
2519 pStrId = STR_NAME_INPUT_RANGE;
2521 case SC_NAME_INPUT_DATABASE:
2522 pStrId = STR_NAME_INPUT_DBRANGE;
2524 case SC_NAME_INPUT_ROW:
2525 pStrId = STR_NAME_INPUT_ROW;
2527 case SC_NAME_INPUT_SHEET:
2528 pStrId = STR_NAME_INPUT_SHEET;
2530 case SC_NAME_INPUT_DEFINE:
2531 pStrId = STR_NAME_INPUT_DEFINE;
2545 aPos = LogicToPixel( pCur->
GetPos() );
2546 aPos = OutputToScreenPixel( aPos );
2549 OUString aText =
ScResId(pStrId);
2550 QuickHelpFlags const nAlign = QuickHelpFlags::Left|QuickHelpFlags::Bottom;
2556 bool bOpenManageNamesDialog =
false;
2557 OUString aText =
m_xWidget->get_active_text();
2558 if ( !aText.isEmpty() )
2563 if ( aText ==
ScResId(STR_FUNCTIONLIST_MORE) )
2570 if ( pViewFrm && !pViewFrm->
GetChildWindow( SID_OPENDLG_FUNCTION ) )
2572 SfxCallMode::SYNCHRON | SfxCallMode::RECORD );
2594 if (
eType == SC_NAME_INPUT_BAD_NAME ||
eType == SC_NAME_INPUT_BAD_SELECTION )
2596 TranslateId pId = (
eType == SC_NAME_INPUT_BAD_NAME) ? STR_NAME_ERROR_NAME : STR_NAME_ERROR_SELECTION;
2599 else if (
eType == SC_NAME_INPUT_DEFINE )
2610 if ( aNewRanges.
insert(pNew) )
2617 else if (
eType == SC_MANAGE_NAMES)
2620 bOpenManageNamesDialog =
true;
2624 bool bForceGlobalName =
false;
2626 if (
eType == SC_NAME_INPUT_CELL ||
eType == SC_NAME_INPUT_RANGE)
2634 else if (
eType == SC_NAME_INPUT_NAMEDRANGE_GLOBAL)
2636 bForceGlobalName =
true;
2642 SfxBoolItem aForceGlobalName( FN_PARAM_3, bForceGlobalName );
2645 SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
2646 { &aPosItem, &aUnmarkItem, &aForceGlobalName });
2656 if (bOpenManageNamesDialog)
2658 const sal_uInt16
nId = ScNameDlgWrapper::GetChildWindowId();
2663 SC_MOD()->SetRefDialog(
nId, pWnd ==
nullptr );
2675 bool bHandled =
true;
2677 switch (rKEvt.GetKeyCode().GetCode())
2692 ReleaseFocus_Impl();
2700 return bHandled || ChildKeyInput(rKEvt);
2705 m_nAsyncGetFocusId =
nullptr;
2711 if (m_nAsyncGetFocusId)
2719 if (m_nAsyncGetFocusId)
2722 m_nAsyncGetFocusId =
nullptr;
BaseContainerNodeSharedPtr & mrParent
SfxApplication * SfxGetpApp()
const MouseSettings & GetMouseSettings() const
const StyleSettings & GetStyleSettings() const
static bool GetLayoutRTL()
static const AllSettings & GetSettings()
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
static std::unique_ptr< weld::Builder > CreateBuilder(weld::Widget *pParent, const OUString &rUIFile, bool bMobile=false, sal_uInt64 nLOKWindowId=0)
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
OUString uppercase(const OUString &rStr, sal_Int32 nPos, sal_Int32 nCount) const
CommandEventId GetCommand() const
const Point & GetMousePosPixel() const
void * GetEventData() const
bool IsMouseEvent() const
DataChangedEventType GetType() const
AllSettingsFlags GetFlags() const
Size GetSizePixel() const override
Size GetOutputSizePixel() const
sal_Int32 GetParagraphCount() const
const Size & GetPaperSize() const
sal_Int32 GetTextLen() const
static rtl::Reference< SfxItemPool > CreatePool()
static void SetFontInfoInItemSet(SfxItemSet &rItemSet, const vcl::Font &rFont)
tools::Rectangle GetVisArea() const
void SetSelection(const ESelection &rNewSel)
vcl::Cursor * GetCursor() const
EditEngine * GetEditEngine() const
void SetVisArea(const tools::Rectangle &rRect)
bool SetEditEngineUpdateLayout(bool bUpdate)
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 void Resize() override
virtual void dispose() override
std::unique_ptr< weld::Container > m_xContainer
void InitControlBase(weld::Widget *pWidget)
const Point & GetPosPixel() const
MouseMiddleButtonAction GetMiddleButtonAction() const
Size GetOutputSize() const
const vcl::Font & GetFont() const
void SetFont(const vcl::Font &rNewFont)
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
SAL_WARN_UNUSED_RESULT Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
SAL_WARN_UNUSED_RESULT Point LogicToPixel(const Point &rLogicPt) const
const MapMode & GetMapMode() const
tools::Long GetTextHeight() const
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)
sal_uInt16 GetLRUFuncListCount() const
sal_uInt16 * GetLRUFuncList() const
void ModifyRangeNames(const ScRangeName &rNewRanges, SCTAB nTab=-1)
const ScDocument & GetDocument() const
SC_DLLPUBLIC SfxItemPool * GetEnginePool() const
SC_DLLPUBLIC bool GetTable(const OUString &rName, SCTAB &rTab) const
SC_DLLPUBLIC formula::FormulaGrammar::AddressConvention GetAddressConvention() const
SC_DLLPUBLIC SCROW MaxRow() const
SC_DLLPUBLIC SvtScriptType GetStringScriptType(const OUString &rString)
SC_DLLPUBLIC SfxItemPool * GetEditPool() const
SC_DLLPUBLIC ScRangeName * GetRangeName(SCTAB nTab) const
SC_DLLPUBLIC CellType GetCellType(SCCOL nCol, SCROW nRow, SCTAB nTab) const
SC_DLLPUBLIC bool GetName(SCTAB nTab, OUString &rName) const
SC_DLLPUBLIC SCTAB GetTableCount() const
static OUString ModifyDelimiters(const OUString &rOld)
Stores and generates human readable descriptions for spreadsheet-functions, e.g. functions used in fo...
sal_uInt16 nFIndex
Unique function index.
std::optional< OUString > mxFuncName
Function name.
List of spreadsheet functions.
const ScFuncDesc * GetFunction(sal_uInt32 nIndex) const
sal_uInt32 GetCount() const
static ScFunctionList * GetStarCalcFunctionList()
static std::optional< SvtSysLocale > oSysLocale
static SC_DLLPUBLIC const CharClass & getCharClass()
ScInputHandler * GetInputHdl(ScTabViewShell *pViewSh=nullptr, bool bUseRef=true)
Input-Handler.
void InputChanged(const EditView *pView)
void SetInEditCommand(bool bNew)
SC_DLLPUBLIC void InputEnterHandler(ScEnterMode nBlockMode=ScEnterMode::NORMAL, bool bBeforeSavingInLOK=false)
void InputCancelHandler()
void InputSelection(const EditView *pView)
std::unique_ptr< weld::ComboBox > m_xWidget
void SetPos(const OUString &rPosStr)
void SetFormulaMode(bool bSet)
ScPosWnd(vcl::Window *pParent)
ImplSVEvent * m_nAsyncGetFocusId
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual void dispose() override
virtual ~ScPosWnd() override
static OUString createLocalRangeName(std::u16string_view rName, std::u16string_view rTableName)
static SC_DLLPUBLIC IsNameValidType IsNameValid(const OUString &rName, const ScDocument &rDoc)
SC_DLLPUBLIC ScRangeData * findByUpperName(const OUString &rName)
SC_DLLPUBLIC bool insert(ScRangeData *p, bool bReuseFreeIndex=true)
Insert object into set.
static bool MakeRangeFromName(const OUString &rName, const ScDocument &rDoc, SCTAB nCurTab, ScRange &rRange, RutlNameScope eScope=RUTL_NAMES, ScAddress::Details const &rDetails=ScAddress::detailsOOOa1, bool bUseDetailsPos=false)
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...
ScRefFlags ParseAny(const OUString &, const ScDocument &, const ScAddress::Details &rDetails=ScAddress::detailsOOOa1)
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)
void UpdateInputHandler(bool bForce=false, bool bStopEditing=true)
OUString DoAutoSum(bool &rRangeFinder, bool &rSubTotal, const OpCode eCode)
void SetFormShellAtTop(bool bSet)
static ScTabViewShell * GetActiveViewShell()
const ScInputHandler * GetInputHandler() const
bool SfxKeyInput(const KeyEvent &rKEvt)
void ErrorMessage(TranslateId pGlobStrId)
tools::Long GetGridHeight(ScVSplitPos eWhich)
ScViewData & GetViewData()
tools::Long GetLastNumExpandedLines() const
virtual void RemoveAccessibleTextData(ScAccessibleEditLineTextData &rTextData) override
std::unique_ptr< ScTextWnd > mxTextWnd
virtual EditView * GetEditView() const override
const OutputDevice & GetEditViewDevice() const
virtual void StopEditEngine(bool bAll) override
virtual bool HasEditView() const override
virtual void SetFormulaMode(bool bSet) override
void SetNumLines(tools::Long nLines)
int GetPixelHeightForLines(tools::Long nLines)
virtual const OUString & GetTextString() const override
virtual void StartEditEngine() override
virtual ~ScTextWndGroup() override
std::unique_ptr< weld::ScrolledWindow > mxScrollWin
virtual bool IsInputActive() override
virtual void InsertAccessibleTextData(ScAccessibleEditLineTextData &rTextData) override
virtual tools::Long GetNumLines() const override
ScTextWndGroup(ScInputBarGroup &pParent, ScTabViewShell *pViewSh)
vcl::Window & GetVclParent()
virtual void MakeDialogEditView() override
Point GetCursorScreenPixelPos(bool bBelowLine)
virtual void TextGrabFocus() override
weld::ScrolledWindow & GetScrollWin()
void SetLastNumExpandedLines(tools::Long nLastExpandedLines)
virtual void SetTextString(const OUString &rString) override
ScTextWndGroup & mrGroupBar
virtual void GetFocus() override
virtual void Resize() override
virtual bool MouseButtonUp(const MouseEvent &rMEvt) override
AccTextDataVector maAccTextDatas
virtual void SetDrawingArea(weld::DrawingArea *pDrawingArea) override
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
bool IsInputActive() override
void UpdateAutoCorrFlag()
rtl::Reference< ScAccessibleEditObject > pAcc
virtual void RemoveAccessibleTextData(ScAccessibleEditLineTextData &rTextData) override
const OutputDevice & GetEditViewDevice() const
virtual const OUString & GetTextString() const override
int GetEditEngTxtHeight() const
virtual void EditViewScrollStateChange() override
virtual bool MouseButtonDown(const MouseEvent &rMEvt) override
virtual void StartEditEngine() override
virtual bool CanFocus() const override
ScTabViewShell * mpViewShell
int GetPixelHeightForLines(tools::Long nLines)
virtual void InsertAccessibleTextData(ScAccessibleEditLineTextData &rTextData) override
virtual bool StartDrag() override
virtual void MakeDialogEditView() override
virtual bool MouseMove(const MouseEvent &rMEvt) override
virtual void StopEditEngine(bool bAll) override
virtual ~ScTextWnd() override
virtual void TextGrabFocus() override
void SetNumLines(tools::Long nLines)
virtual void SetFormulaMode(bool bSet) override
virtual void StyleUpdated() override
tools::Long mnLastExpandedLines
virtual EditView * GetEditView() const override
virtual bool Command(const CommandEvent &rCEvt) override
virtual void SetTextString(const OUString &rString) override
virtual tools::Long GetNumLines() const override
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override
virtual bool HasEditView() const override
virtual bool KeyInput(const KeyEvent &rKEvt) override
ScTextWnd(ScTextWndGroup &rParent, ScTabViewShell *pViewSh)
rtl::Reference< svt::OStringTransferable > m_xHelper
SfxDispatcher & GetDispatcher()
void SetFormulaBarLines(sal_Int16 nLines)
ScDocument & GetDocument() const
ScDocShell * GetDocShell() const
ScMarkType GetSimpleArea(SCCOL &rStartCol, SCROW &rStartRow, SCTAB &rStartTab, SCCOL &rEndCol, SCROW &rEndRow, SCTAB &rEndTab) const
ScDBFunc * GetView() const
ScSplitPos GetActivePart() const
ScAddress GetCurPos() const
bool HasEditView(ScSplitPos eWhich) const
sal_Int16 GetFormulaBarLines() const
SfxDispatcher * GetDispatcher() const
void Invalidate(sal_uInt16 nId)
virtual SfxChildWinInfo GetInfo() const
const SfxPoolItem * Execute(sal_uInt16 nSlot, SfxCallMode nCall=SfxCallMode::SLOT, const SfxPoolItem **pArgs=nullptr, sal_uInt16 nModi=0, const SfxPoolItem **pInternalArgs=nullptr)
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 * >())
SfxViewFrame * GetFrame() const
void ExecutePopup(const OUString &rResName, vcl::Window *pWin=nullptr, const Point *pPos=nullptr)
const css::uno::Reference< css::frame::XFrame > & GetFrameInterface() const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
bool IsInModalMode() const
static SAL_WARN_UNUSED_RESULT SfxObjectShell * Current()
void SetWhich(sal_uInt16 nId)
virtual SfxPoolItem * Clone(SfxItemPool *pPool=nullptr) const=0
SfxViewShell * GetViewShell() const
static SAL_WARN_UNUSED_RESULT SfxViewFrame * Current()
SfxBindings & GetBindings()
SfxDispatcher * GetDispatcher()
SfxChildWindow * GetChildWindow(sal_uInt16)
SfxFrame & GetFrame() const
bool isLOKMobilePhone() const
SfxViewFrame & GetViewFrame() const
static SAL_WARN_UNUSED_RESULT SfxViewShell * GetNext(const SfxViewShell &rPrev, bool bOnlyVisible=true, const std::function< bool(const SfxViewShell *)> &isViewShell=nullptr)
static SAL_WARN_UNUSED_RESULT SfxViewShell * GetFirst(bool bOnlyVisible=true, const std::function< bool(const SfxViewShell *)> &isViewShell=nullptr)
static SAL_WARN_UNUSED_RESULT SfxViewShell * Current()
bool isLOKDesktop() const
vcl::Window * GetWindow() const
constexpr tools::Long Height() const
constexpr tools::Long getWidth() const
void setWidth(tools::Long nWidth)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
const Color & GetWindowColor() const
const Color & GetWindowTextColor() const
const Color & GetFaceColor() const
const vcl::Font & GetAppFont() const
void SetPropLineSpace(const sal_uInt16 nProp)
reference_type * get() const
static VclPtr< reference_type > Create(Arg &&... arg)
std::unique_ptr< EditEngine > m_xEditEngine
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
std::unique_ptr< EditView > m_xEditView
virtual OutputDevice & EditViewOutputDevice() const override
virtual bool MouseButtonDown(const MouseEvent &rMEvt) override
virtual bool MouseButtonUp(const MouseEvent &rMEvt) override
virtual void GetFocus() override
const Point & GetPos() const
tools::Long GetHeight() const
void SetFontSize(const Size &)
void SetTransparent(bool bTransparent)
void SetFillColor(const Color &)
void SetColor(const Color &)
void SetWeight(FontWeight)
const Size & GetFontSize() const
Point OutputToScreenPixel(const Point &rPos) const
vcl::Window * GetParent() const
tools::Long GetOutOffXPixel() const
void SetLOKNotifier(const vcl::ILibreOfficeKitNotifier *pNotifier, bool bParent=false)
Point LogicToPixel(const Point &rLogicPt) const
virtual void SetSizePixel(const Size &rNewSize)
void ReleaseLOKNotifier()
void Enable(bool bEnable=true, bool bChild=true)
tools::Long GetOutOffYPixel() const
void SetAccessibleName(const OUString &rName)
const vcl::ILibreOfficeKitNotifier * GetLOKNotifier() const
void SetPointerPosPixel(const Point &rPos)
bool IsRTLEnabled() const
virtual Size GetSizePixel() const
virtual void DataChanged(const DataChangedEvent &rDCEvt)
Point GetPointerPosPixel()
virtual void SetPointer(PointerStyle)
void SetPaintTransparent(bool bTransparent)
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
virtual OutputDevice & get_ref_device()=0
virtual void set_cursor(PointerStyle ePointerStyle)=0
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO_CJK(EE_CHAR_START+17)
constexpr TypedWhichId< SvxAdjustItem > EE_PARA_JUST(EE_PARA_START+16)
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT(EE_CHAR_START+2)
constexpr TypedWhichId< SvxLanguageItem > EE_CHAR_LANGUAGE_CTL(EE_CHAR_START+16)
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT(EE_CHAR_START+4)
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT_CTL(EE_CHAR_START+22)
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC(EE_CHAR_START+7)
constexpr TypedWhichId< SvxLineSpacingItem > EE_PARA_SBL(EE_PARA_START+15)
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT_CTL(EE_CHAR_START+20)
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT_CJK(EE_CHAR_START+21)
constexpr TypedWhichId< SvxLanguageItem > EE_CHAR_LANGUAGE_CJK(EE_CHAR_START+15)
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC_CJK(EE_CHAR_START+23)
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO_CTL(EE_CHAR_START+18)
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC_CTL(EE_CHAR_START+24)
constexpr TypedWhichId< SvxLanguageItem > EE_CHAR_LANGUAGE(EE_CHAR_START+14)
constexpr TypedWhichId< SvxScriptSpaceItem > EE_PARA_ASIANCJKSPACING(EE_PARA_START+4)
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT_CJK(EE_CHAR_START+19)
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO(EE_CHAR_START+1)
constexpr OStringLiteral HID_INSWIN_CALC
constexpr OStringLiteral HID_INSWIN_SUMME
constexpr OStringLiteral HID_INSWIN_CANCEL
constexpr OStringLiteral HID_SC_INPUTWIN
constexpr OStringLiteral HID_INSWIN_OK
constexpr OStringLiteral HID_INSWIN_INPUT
constexpr OStringLiteral HID_INSWIN_FUNC
constexpr OStringLiteral HID_INSWIN_POS
constexpr sal_uInt16 KEY_RETURN
constexpr sal_uInt16 KEY_ESCAPE
#define LINK(Instance, Class, Member)
#define LINE_SPACE_DEFAULT_HEIGHT
class SAL_NO_VTABLE XPropertySet
bool isdigitAsciiString(std::string_view rString)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
void SetPointFont(OutputDevice &rDevice, const vcl::Font &rFont)
weld::Window * GetPopupParent(vcl::Window &rOutWin, tools::Rectangle &rRect)
OUString ScResId(TranslateId aId)
SFX_IMPL_CHILDWINDOW_WITHID(SvxSearchDialogWrapper, SID_SEARCH_DLG)
WinBits const WB_CLIPCHILDREN
WinBits const WB_NOSHADOW