28#include <bitmaps.hlst>
38#include <com/sun/star/beans/XMultiPropertySet.hpp>
39#include <com/sun/star/beans/XPropertiesChangeListener.hpp>
40#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
41#include <com/sun/star/script/XLibraryContainer2.hpp>
45#include <officecfg/Office/Common.hxx>
55#include <svx/svxids.hrc>
68#include <com/sun/star/reflection/theCoreReflection.hpp>
83sal_uInt16
const NoMarker = 0xFFFF;
98Image GetImage(
const OUString& rId)
100 return Image(StockImage::Yes, rId);
103int const nScrollLine = 12;
104int const nScrollPage = 60;
105int const DWBORDER = 3;
107std::u16string_view
const cSuffixes =
u"%&!#@$";
123 rEngine.
Write( aMemStream );
124 std::size_t nSize = aMemStream.
Tell();
125 OUString aText(
static_cast<const char*
>(aMemStream.
GetData()),
126 nSize, RTL_TEXTENCODING_UTF8 );
134 SvMemoryStream aMemStream(
const_cast<char *
>(aUTF8Str.getStr()), aUTF8Str.getLength(),
138 rEngine.
Read(aMemStream);
157 Point(aSz.Width(), aSz.Height() - 1));
161void lcl_SeparateNameAndIndex(
const OUString& rVName, OUString& rVar, OUString& rIndex )
165 sal_Int32 nIndexStart = rVar.indexOf(
'(' );
166 if ( nIndexStart != -1 )
168 sal_Int32 nIndexEnd = rVar.indexOf(
')', nIndexStart );
171 rIndex = rVar.copy(nIndexStart + 1, nIndexEnd - nIndexStart - 1);
172 rVar = rVar.copy(0, nIndexStart);
178 if ( !rVar.isEmpty() )
180 sal_uInt16 nLastChar = rVar.getLength()-1;
181 if ( cSuffixes.find(rVar[ nLastChar ] ) != std::u16string_view::npos )
182 rVar = rVar.replaceAt( nLastChar, 1, u
"" );
184 if ( !rIndex.isEmpty() )
186 sal_uInt16 nLastChar = rIndex.getLength()-1;
187 if ( cSuffixes.find(rIndex[ nLastChar ] ) != std::u16string_view::npos )
188 rIndex = rIndex.replaceAt( nLastChar, 1, u
"" );
199 public cppu::WeakImplHelper< beans::XPropertiesChangeListener >
207 virtual void SAL_CALL
disposing(lang::EventObject
const &)
override
242 rModulWindow(*pModulWindow),
244 m_nSetSourceInBasicId(nullptr),
246 aSyntaxIdle(
"basctl EditorWindow aSyntaxIdle" ),
247 bHighlighting(false),
248 bDoSyntaxHighlight(true),
249 bDelayHighlight(true),
261 officecfg::Office::Common::Font::SourceViewFont::get(),
264 std::unique_lock g(
mutex_);
272 n->addPropertiesChangeListener(aPropertyNames,
listener_);
291 std::unique_lock g(
mutex_);
324 sal_Int32 nSelStart = rSelStart.
GetIndex();
325 sal_Int32 nSelEnd = rSelEnd.
GetIndex();
326 sal_Int32
nLength = aText.getLength();
327 sal_Int32 nStart = 0;
333 if ( aURLObj.
GetProtocol() == INetProtocol::VndSunStarHelp
334 && nSelStart >= nStart && nSelStart <= nEnd && nSelEnd >= nStart && nSelEnd <= nEnd )
345 if ( aWord.isEmpty() )
346 aWord = pTextEngine->
GetWord( rSelEnd );
349 if ( aWord.isEmpty() &&
pEditView->HasSelection() )
350 aWord = pTextEngine->
GetWord( rSelStart );
364 if ( rHEvt.
GetMode() & HelpEventMode::CONTEXT )
370 else if ( rHEvt.
GetMode() & HelpEventMode::QUICK )
384 sal_uInt16 nLastChar = aWord.getLength() - 1;
385 if ( cSuffixes.find(aWord[ nLastChar ] ) != std::u16string_view::npos )
386 aWord = aWord.replaceAt( nLastChar, 1,
u"" );
399 aHelpText = pVar->GetName();
400 if ( aHelpText.isEmpty() )
402 aHelpText +=
"=" + pVar->GetOUString();
405 if ( !aHelpText.isEmpty() )
410 aHelpRect = aStartWordRect.
GetUnion(aEndWordRect);
415 aHelpRect.
SetPos(aTopLeft);
425 Window::RequestHelp( rHEvt );
440 if ( nMaxVisAreaStart < 0 )
441 nMaxVisAreaStart = 0;
442 if (
pEditView->GetStartDocPos().Y() > nMaxVisAreaStart )
445 aStartDocPos.
setY( nMaxVisAreaStart );
446 pEditView->SetStartDocPos( aStartDocPos );
452 if ( nVisY !=
pEditView->GetStartDocPos().Y() )
471 pBindings->Invalidate( SID_BASICIDE_STAT_POS );
472 pBindings->Invalidate( SID_BASICIDE_STAT_TITLE );
499 if ( ( rCEvt.
GetCommand() == CommandEventId::Wheel ) ||
500 ( rCEvt.
GetCommand() == CommandEventId::StartAutoScroll ) ||
501 ( rCEvt.
GetCommand() == CommandEventId::AutoScroll ) )
510 if(
pData->GetDelta() < 0 )
521 else if ( rCEvt.
GetCommand() == CommandEventId::ContextMenu ) {
534 bool bCanModify =
true;
540 VclMessageType::Question, VclButtonsType::OkCancel,
542 if (xQueryBox->run() ==
RET_OK)
558 bool const bWasModified =
pEditEngine->IsModified();
561 bool bDone = pVS && pVS->
KeyInput( rKEvt );
617 Window::KeyInput( rKEvt );
623 pBindings->Invalidate( SID_BASICIDE_STAT_POS );
624 pBindings->Invalidate( SID_BASICIDE_STAT_TITLE );
627 pBindings->Update( SID_BASICIDE_STAT_POS );
628 pBindings->Update( SID_BASICIDE_STAT_TITLE );
639 pBindings->Invalidate( SID_SAVEDOC );
640 pBindings->Invalidate( SID_DOC_MODIFIED );
641 pBindings->Invalidate( SID_UNDO );
644 pBindings->Invalidate( SID_ATTR_INSERT );
657 std::vector<HighlightPortion> aPortions;
660 if( aPortions.empty() )
664 if(
static_cast<size_t>(
nIndex) != aPortions.size()-1 )
666 for (
auto const& portion : aPortions)
668 if( portion.nEnd ==
nIndex )
678 if( ( r.
tokenType == TokenType::Whitespace ) || sStr.isEmpty() )
689 sStr = sStr.toAsciiLowerCase();
695 sStr = sStr.replaceAt( 0, 1, OUString(sStr[0]).toAsciiUpperCase() );
700 if( r.
tokenType != TokenType::Identifier )
714 for (sal_uInt32
i = 0;
i < pArr->
Count(); ++
i)
716 if (pArr->
Get(
i)->
GetName().equalsIgnoreAsciiCase(sStr))
732 std::vector<HighlightPortion> aPortions;
735 assert(!aPortions.empty());
737 if(
static_cast<size_t>(
nIndex) != aPortions.size()-1 )
739 for (
auto const& portion : aPortions)
741 if( portion.nEnd ==
nIndex )
749 if( aPortions.empty() )
764 if( aLine.getLength() > 0 && aLine[aSel.
GetEnd().
GetIndex()-1] !=
'(' )
779 std::vector<HighlightPortion> aPortions;
782 if( aPortions.empty() )
785 if( aLine.getLength() > 0 && !aLine.endsWith(
"\"") && (aPortions.back().tokenType != TokenType::String) )
807 OUString sText(
"\nEnd ");
809 if( sProcType.equalsIgnoreAsciiCase(
"function") )
810 sText +=
"Function\n";
811 if( sProcType.equalsIgnoreAsciiCase(
"sub") )
821 for( sal_uInt32
i = nLine+1;
i <
pEditEngine->GetParagraphCount(); ++
i )
824 std::vector<HighlightPortion> aCurrPortions;
827 if( aCurrPortions.size() >= 3 )
850 std::vector<HighlightPortion> aPortions;
853 if( aPortions.empty() )
856 bool bFoundType =
false;
857 bool bFoundName =
false;
859 for (
auto const& portion : aPortions)
861 std::u16string_view sTokStr = rLine.substr(portion.nBegin, portion.nEnd - portion.nBegin);
869 if( portion.tokenType == TokenType::Identifier && bFoundType )
877 if( !bFoundType || !bFoundName )
891 std::vector< OUString > aVect;
893 std::vector<HighlightPortion> aPortions;
896 if( aPortions.empty() )
900 for( std::vector<HighlightPortion>::reverse_iterator
i(
902 i != aPortions.rend(); ++
i)
904 if(
i->tokenType == TokenType::Whitespace )
906 if(
i->tokenType == TokenType::Identifier ||
i->tokenType == TokenType::Keywords )
910 aVect.insert( aVect.begin(), aLine.copy(
i->nBegin,
i->nEnd -
i->nBegin) );
916 OUString sBaseName = aVect[aVect.size()-1];
922 if( !sStr.isEmpty() )
936 std::vector< OUString > aEntryVect;
938 aEntryVect.insert(aEntryVect.end(), aFieldVect.begin(), aFieldVect.end() );
942 aEntryVect.insert(aEntryVect.end(), aMethVect.begin(), aMethVect.end() );
944 if( !aEntryVect.empty() )
953 for(
const auto & l : aEntryVect)
989 m_nSetSourceInBasicId =
nullptr;
1008sal_Int32
searchEOL( std::u16string_view rStr, sal_Int32 fromIndex )
1010 size_t iLF = rStr.find(
LINE_SEP, fromIndex );
1011 if( iLF != std::u16string_view::npos )
1015 return iCR == std::u16string_view::npos ? -1 : iCR;
1036 sal_Int32 nLines = 0;
1067 for (sal_Int32 nLine = 0; nLine < nLines; nLine++)
1080 pBindings->Invalidate(SID_BASICIDE_STAT_POS);
1081 pBindings->Invalidate(SID_BASICIDE_STAT_TITLE);
1090 if (xModLibContainer.is()
1091 && xModLibContainer->hasByName(aOULibName)
1092 && xModLibContainer->isLibraryReadOnly(aOULibName))
1107 TextHint const& rTextHint = *pTextHint;
1108 if( rTextHint.GetId() == SfxHintId::TextViewScrolled )
1117 else if( rTextHint.GetId() == SfxHintId::TextHeightChanged )
1123 if ( nTextHeight < nOutHeight )
1131 else if( rTextHint.GetId() == SfxHintId::TextFormatted )
1146 else if( rTextHint.GetId() == SfxHintId::TextParaInserted )
1151 else if( rTextHint.GetId() == SfxHintId::TextParaRemoved )
1155 else if( rTextHint.GetId() == SfxHintId::TextParaContentChanged )
1159 else if( rTextHint.GetId() == SfxHintId::TextViewSelectionChanged )
1163 pBindings->Invalidate( SID_CUT );
1164 pBindings->Invalidate( SID_COPY );
1172 for (sal_uInt32
i = 0;
i < pMethods->Count();
i++)
1179 if( (l1 <= nLine+1) && (nLine+1 <= l2) )
1224 bool const bWasModified =
pEditEngine->IsModified();
1226 std::vector<HighlightPortion> aPortions;
1229 for (
auto const& portion : aPortions)
1258 OUString sFontName(officecfg::Office::Common::Font::SourceViewFont::FontName::get().value_or(OUString()));
1259 if (sFontName.isEmpty())
1263 GetDefaultFontFlags::NONE,
GetOutDev()));
1266 sal_uInt16 nDefaultFontHeight = officecfg::Office::Common::Font::SourceViewFont::FontHeight::get();
1269 sal_uInt16 nNewFontHeight = nDefaultFontHeight * (
static_cast<float>(
nCurrentZoomLevel) / 100);
1270 Size aFontSize(0, nNewFontHeight);
1291 pBindings->Invalidate( SID_BASICIDE_CURRENT_ZOOM );
1292 pBindings->Invalidate( SID_ATTR_ZOOMSLIDER );
1301 if (nNewZoomLevel < MIN_ZOOM_LEVEL || nNewZoomLevel >
MAX_ZOOM_LEVEL)
1312 if ( nPara < pEditEngine->GetParagraphCount() )
1342 DBG_ASSERT( pEditView,
"Not yet a View, but Syntax-Highlight?!" );
1344 bool const bWasModified = pEditEngine->IsModified();
1347 bHighlighting =
true;
1348 for (
auto const& syntaxLine : aSyntaxLineTable)
1350 DoSyntaxHighlight(syntaxLine);
1355 pEditView->ShowCursor(
false );
1357 pEditEngine->SetModified( bWasModified );
1359 aSyntaxLineTable.clear();
1360 bHighlighting =
false;
1396 GetShell()->GetViewFrame().GetObjectShell(),
1423 , rModulWindow(*pModulWindow)
1425 , nMarkerPos(NoMarker)
1426 , bErrorMarker(false)
1440 Image const aBrk[2] =
1442 GetImage(RID_BMP_BRKDISABLED),
1443 GetImage(RID_BMP_BRKENABLED)
1448 (nLineHeight - aBmpSz.
Height()) / 2);
1453 sal_uInt16
const nLine = rBrk.
nLine - 1;
1454 size_t const nY = nLine*nLineHeight -
nCurYOffset;
1469 Image aMarker = GetImage(
bErrorMarker ? OUString(RID_BMP_ERRORMARKER) : OUString(RID_BMP_STEPMARKER));
1473 Point aMarkerOff(0, 0);
1475 aMarkerOff.
setY( (nLineHeight - aMarkerSz.
Height()) / 2 );
1481 rRenderContext.
DrawImage(aPos, aMarker);
1487 Window::Scroll( 0, nVertScroll );
1508 nLineHeight = nLineHeight > 0 ? nLineHeight : 1;
1514 sal_uInt16 nLine = rBrk.
nLine-1;
1515 size_t nY = nLine*nLineHeight;
1516 if ( ( nYPos > nY ) && ( nYPos < ( nY + nLineHeight ) ) )
1540 if ( rCEvt.
GetCommand() != CommandEventId::ContextMenu )
1547 std::unique_ptr<weld::Builder> xUIBuilder(
Application::CreateBuilder(pPopupParent,
"modules/BasicIDE/ui/breakpointmenus.ui"));
1554 std::unique_ptr<weld::Menu> xBrkPropMenu = xUIBuilder->weld_menu(
"breakmenu");
1555 xBrkPropMenu->set_active(
"active", pBrk->
bEnabled);
1556 OUString sCommand = xBrkPropMenu->popup_at_rect(pPopupParent, aRect);
1557 if (sCommand ==
"active")
1563 else if (sCommand ==
"properties")
1573 std::unique_ptr<weld::Menu> xBrkListMenu = xUIBuilder->weld_menu(
"breaklistmenu");
1574 OUString sCommand = xBrkListMenu->popup_at_rect(pPopupParent, aRect);
1575 if (sCommand ==
"manage")
1603 Window::DataChanged(rDCEvt);
1604 if (rDCEvt.
GetType() == DataChangedEventType::SETTINGS
1605 && (rDCEvt.
GetFlags() & AllSettingsFlags::STYLE))
1638 explicit WatchItem (OUString aName):
1645 void clearWatchItem ()
1650 WatchItem* GetRootItem();
1657 :
DockingWindow(pParent,
"modules/BasicIDE/ui/dockingwatch.ui",
"DockingWatch")
1658 , m_nUpdateWatchesId(nullptr)
1662 nVirtToolBoxHeight =
m_xTitleArea->get_preferred_size().Height();
1690 std::vector<int> aWidths { 220, 100, 1250 };
1691 std::vector<bool> aEditables {
false,
true,
false };
1718 WatchItem* pItem = weld::fromId<WatchItem*>(
m_xTreeListBox->get_id(rEntry));
1734 lcl_DrawIDEWindowFrame(
this, rRenderContext);
1742 if ( aBoxSz.
Width() < 4 )
1744 if ( aBoxSz.
Height() < 4 )
1747 m_xBox->SetPosSizePixel(
Point(DWBORDER, DWBORDER), aBoxSz);
1752WatchItem* WatchItem::GetRootItem()
1757 if( pItem->mpArray.is() )
1759 pItem = pItem->mpArrayParentItem;
1766 WatchItem* pRootItem = GetRootItem();
1769 pRet = pRootItem->mpArray.get();
1776 lcl_SeparateNameAndIndex( rVName, aVar,
aIndex );
1777 WatchItem* pWatchItem =
new WatchItem(aVar);
1780 std::unique_ptr<weld::TreeIter> xRet =
m_xTreeListBox->make_iterator();
1781 m_xTreeListBox->insert(
nullptr, -1, &aVar, &
sId,
nullptr,
nullptr,
false, xRet.get());
1795 std::unique_ptr<weld::TreeIter> xEntry =
m_xTreeListBox->make_iterator();
1804 m_xEdit->set_text(OUString());
1813 pDispatcher->Execute(SID_BASICIDE_REMOVEWATCH);
1818 std::unique_ptr<weld::TreeIter> xCurEntry = m_xTreeListBox->make_iterator();
1819 bool bCurEntry = m_xTreeListBox->get_cursor(xCurEntry.get());
1822 WatchItem* pItem = weld::fromId<WatchItem*>(m_xTreeListBox->get_id(*xCurEntry));
1825 m_xEdit->set_text(pItem->maName);
1830 OUString aCurText(m_xEdit->get_text());
1831 if (!aCurText.isEmpty())
1834 m_xEdit->select_region(0, -1);
1841 bool bHandled =
false;
1843 sal_uInt16 nKeyCode = rKEvt.GetKeyCode().GetCode();
1846 m_xEdit->set_text(OUString());
1855 :
DockingWindow(pParent,
"modules/BasicIDE/ui/dockingstack.ui",
"DockingStack")
1860 m_xTitle->set_size_request(-1, nVirtToolBoxHeight);
1892 lcl_DrawIDEWindowFrame(
this, rRenderContext);
1900 if ( aBoxSz.
Width() < 4 )
1902 if ( aBoxSz.
Height() < 4 )
1905 m_xBox->SetPosSizePixel(
Point(DWBORDER, DWBORDER), aBoxSz);
1920 sal_Int32 nScope = 0;
1924 OUStringBuffer aEntry( OUString::number(nScope ));
1925 if ( aEntry.getLength() < 2 )
1926 aEntry.insert(0,
" ");
1927 aEntry.append(
": " + pMethod->
GetName());
1929 SbxInfo* pInfo = pMethod->
GetInfo();
1934 for (sal_uInt32 nParam = 1; nParam < pParams->
Count(); nParam++)
1937 assert(pVar &&
"Parameter?!");
1938 if ( !pVar->
GetName().isEmpty() )
1940 aEntry.append(pVar->
GetName());
1944 assert(nParam <= std::numeric_limits<sal_uInt16>::max());
1945 const SbxParamInfo* pParam = pInfo->GetParam( sal::static_int_cast<sal_uInt16>(nParam) );
1948 aEntry.append(pParam->
aName);
1955 aEntry.append(
"...");
1961 if (nParam < (pParams->
Count() - 1))
1963 aEntry.append(
", ");
2033 Size aBrkSz(nBrkWidth, aSz.
Height() - nSBHeight);
2045 Size aEWSz(aSz.
Width() - nBrkWidth - nSBWidth, aSz.
Height() - nSBHeight);
2047 aEdtWindow->SetPosSizePixel(
Point(DWBORDER + nBrkWidth, DWBORDER), aEWSz);
2053 Size(aSz.
Width() - nSBWidth, nSBHeight));
2058 if (aEdtWindow->GetEditView())
2060 tools::Long nXDiff = aEdtWindow->GetEditView()->GetStartDocPos().X() - aEWHScrollBar->GetThumbPos();
2061 tools::Long nYDiff = aEdtWindow->GetEditView()->GetStartDocPos().Y() - aEWVScrollBar->GetThumbPos();
2062 aEdtWindow->GetEditView()->Scroll(nXDiff, nYDiff);
2063 aBrkWindow->DoScroll( nYDiff );
2064 aLineNumberWindow->DoScroll( nYDiff );
2065 aEdtWindow->GetEditView()->ShowCursor(
false);
2066 aEWVScrollBar->SetThumbPos( aEdtWindow->GetEditView()->GetStartDocPos().Y() );
2072 Window::DataChanged(rDCEvt);
2073 if (rDCEvt.
GetType() == DataChangedEventType::SETTINGS
2074 && (rDCEvt.
GetFlags() & AllSettingsFlags::STYLE))
2092uno::Reference< awt::XVclWindowPeer >
2095 uno::Reference< awt::XVclWindowPeer > xPeer(
2096 Window::GetComponentInterface(
false));
2097 if (!xPeer.is() && bCreate)
2111 sal_uInt32 nPropCount =
p->Count();
2112 if (nPropCount >= 3 &&
p->Get(nPropCount - 1)->GetName().equalsIgnoreAsciiCase(
"Dbg_Methods")
2113 &&
p->Get(nPropCount - 2)->GetName().equalsIgnoreAsciiCase(
"Dbg_Properties")
2114 &&
p->Get(nPropCount - 3)->GetName().equalsIgnoreAsciiCase(
"Dbg_SupportedInterfaces"))
2126 if (m_xTreeListBox->iter_has_child(rParent))
2129 WatchItem* pItem = weld::fromId<WatchItem*>(m_xTreeListBox->get_id(rParent));
2130 std::unique_ptr<weld::TreeIter> xRet = m_xTreeListBox->make_iterator();
2134 bool bArrayIsRootArray =
false;
2135 if( !pArray && pRootArray )
2137 pArray = pRootArray;
2138 bArrayIsRootArray =
true;
2141 SbxObject* pObj = pItem->mpObject.get();
2147 pItem->maMemberList.reserve(nPropCount);
2149 for( sal_uInt32
i = 0 ;
i < nPropCount ; ++
i )
2153 pItem->maMemberList.push_back(pVar->
GetName());
2154 OUString
const& rName = pItem->maMemberList.back();
2156 WatchItem* pWatchItem =
new WatchItem(rName);
2159 m_xTreeListBox->insert(&rParent, -1, &rName, &
sId,
nullptr,
nullptr,
false, xRet.get());
2160 m_xTreeListBox->set_text(*xRet,
"", 1);
2161 m_xTreeListBox->set_text(*xRet,
"", 2);
2164 if (nPropCount > 0 && !m_nUpdateWatchesId)
2171 sal_uInt16 nElementCount = 0;
2174 int nParentLevel = bArrayIsRootArray ? pItem->nDimLevel : 0;
2175 int nThisLevel = nParentLevel + 1;
2176 sal_Int32 nMin, nMax;
2177 if (pArray->
GetDim(nThisLevel, nMin, nMax))
2179 for (sal_Int32
i = nMin;
i <= nMax;
i++)
2181 WatchItem* pChildItem =
new WatchItem(pItem->maName);
2185 OUStringBuffer aIndexStr =
"(";
2186 pChildItem->mpArrayParentItem = pItem;
2187 pChildItem->nDimLevel = nThisLevel;
2188 pChildItem->nDimCount = pItem->nDimCount;
2189 pChildItem->vIndices.resize(pChildItem->nDimCount);
2191 for (j = 0; j < nParentLevel; j++)
2193 sal_Int32
n = pChildItem->vIndices[j] = pItem->vIndices[j];
2194 aIndexStr.append( OUString::number(
n) +
"," );
2196 pChildItem->vIndices[nParentLevel] =
i;
2197 aIndexStr.append( OUString::number(
i) +
")" );
2199 OUString aDisplayName;
2200 WatchItem* pArrayRootItem = pChildItem->GetRootItem();
2201 if (pArrayRootItem && pArrayRootItem->mpArrayParentItem)
2202 aDisplayName = pItem->maDisplayName;
2204 aDisplayName = pItem->maName;
2205 aDisplayName += aIndexStr;
2206 pChildItem->maDisplayName = aDisplayName;
2210 m_xTreeListBox->insert(&rParent, -1, &aDisplayName, &
sId,
nullptr,
nullptr,
false,
2212 m_xTreeListBox->set_text(*xRet,
"", 1);
2213 m_xTreeListBox->set_text(*xRet,
"", 2);
2218 if (nElementCount > 0 && !m_nUpdateWatchesId)
2229 m_nUpdateWatchesId =
nullptr;
2236 rbArrayElement =
false;
2238 WatchItem* pItem = weld::fromId<WatchItem*>(
m_xTreeListBox->get_id(rEntry));
2239 OUString aVName( pItem->maName );
2241 std::unique_ptr<weld::TreeIter> xParentEntry =
m_xTreeListBox->make_iterator(&rEntry);
2243 WatchItem* pParentItem = bParentEntry ? weld::fromId<WatchItem*>(
m_xTreeListBox->get_id(*xParentEntry)) :
nullptr;
2246 SbxObject* pObj = pParentItem->mpObject.get();
2250 pSBX = pObj->
Find( aVName, SbxClassType::DontCare );
2251 if (
SbxVariable const* pVar = IsSbxVariable(pSBX))
2260 else if( (pArray = pItem->GetRootArray()) !=
nullptr )
2262 rbArrayElement =
true;
2263 if( pParentItem->nDimLevel + 1 == pParentItem->nDimCount )
2264 pSBX = pArray->
Get(pItem->vIndices.empty() ?
nullptr : &*pItem->vIndices.begin());
2276 WatchItem* pItem = weld::fromId<WatchItem*>(m_xTreeListBox->get_id(rIter));
2283 SbxBase* pSbx = ImplGetSBXForEntry(rIter, bArrayElement);
2284 if (IsSbxVariable(pSbx) || bArrayElement)
2287 if( !pItem->mpObject.is() && ( !pItem->mpArray.is() || pItem->nDimLevel == pItem->nDimCount ) )
2289 aEditingRes = m_xTreeListBox->get_text(rIter, 1);
2304 sal_uInt16 nResultLen = aResult.getLength();
2307 if( cFirst ==
'\"' && cLast ==
'\"' )
2308 aResult = aResult.copy( 1, nResultLen - 2 );
2310 if (aResult == aEditingRes)
2314 SbxBase* pSBX = ImplGetSBXForEntry(rIter, bArrayElement);
2324 pVar->PutStringExt( aResult );
2347 std::unique_ptr<weld::TreeIter> xDeleteEntry = rTree.
make_iterator(&rParent);
2351 implCollapseModifiedObjectEntry(*xDeleteEntry, rTree);
2353 WatchItem* pItem = weld::fromId<WatchItem*>(rTree.
get_id(*xDeleteEntry));
2355 rTree.
remove(*xDeleteEntry);
2360OUString implCreateTypeStringForDimArray( WatchItem* pItem,
SbxDataType eType )
2366 pArray = pItem->GetRootArray();
2370 int nDims = pItem->nDimCount;
2376 sal_Int32 nMin, nMax;
2377 pArray->
GetDim(sal::static_int_cast<sal_Int32>(i + 1), nMin, nMax);
2378 aRetStr += OUString::number(nMin) +
" to " + OUString::number(nMax);
2412 WatchItem* pItem = weld::fromId<WatchItem*>(
m_xTreeListBox->get_id(rEntry));
2413 DBG_ASSERT( !pItem->maName.isEmpty(),
"Var? - Must not be empty!" );
2418 bool bCollapse =
false;
2425 if( bArrayElement && pItem->nDimLevel < pItem->nDimCount )
2429 aTypeStr = implCreateTypeStringForDimArray( pItem,
eType );
2444 bool bArrayChanged =
false;
2445 if (pOldArray !=
nullptr)
2449 sal_Int32 nOldDims = pOldArray->
GetDims();
2450 sal_Int32 nNewDims = pNewArray->GetDims();
2451 if( nOldDims != nNewDims )
2453 bArrayChanged =
true;
2457 for( sal_Int32
i = 0 ;
i < nOldDims ;
i++ )
2459 sal_Int32 nOldMin, nOldMax;
2460 sal_Int32 nNewMin, nNewMax;
2462 pOldArray->
GetDim(
i + 1, nOldMin, nOldMax);
2463 pNewArray->GetDim(
i + 1, nNewMin, nNewMax);
2464 if( nOldMin != nNewMin || nOldMax != nNewMax )
2466 bArrayChanged =
true;
2474 bArrayChanged =
true;
2478 if( pNewArray != pOldArray )
2480 pItem->clearWatchItem();
2483 pItem->mpArray = pNewArray;
2484 sal_Int32 nDims = pNewArray->GetDims();
2485 pItem->nDimLevel = 0;
2486 pItem->nDimCount = nDims;
2488 if( bArrayChanged && pOldArray !=
nullptr )
2492 aTypeStr = implCreateTypeStringForDimArray( pItem,
eType );
2503 if ( pItem->mpObject.is() && !pItem->maMemberList.empty() )
2506 SbxArray* pProps = pObj->GetProperties();
2509 bCollapse = pItem->maMemberList.size() != nPropCount;
2510 for( sal_uInt32
i = 0 ; !bCollapse &&
i < nPropCount ;
i++ )
2513 if( pItem->maMemberList[
i] != pVar_->
GetName() )
2518 pItem->mpObject = pObj;
2525 if( pItem->mpObject.is() )
2534 if( pItem->mpObject.is() )
2541 OUString aStrStr(
"\"" );
2544 aWatchStr += aStrStr;
2548 pVar->SetFlag(SbxFlagBits::NoBroadcast);
2549 aWatchStr += pVar->GetOUString();
2550 pVar->SetFlags(nFlags);
2553 aWatchStr += aStrStr;
2556 if( aTypeStr.isEmpty() )
2558 if( !pVar->IsFixed() )
2560 aTypeStr =
"Variant/";
2565 else if( !bArrayElement )
2567 aWatchStr +=
"<Out of Scope>";
2573 pItem->clearWatchItem();
2579 else if( bBasicStopped )
2581 if( pItem->mpObject.is() || pItem->mpArray.is() )
2584 pItem->mpObject.clear();
2585 pItem->mpArray.clear();
2587 pItem->clearWatchItem();
2604 InsertSelectedEntry();
2611 pParent->GrabFocus();
2616 return pParent->GetEditView();
2621 OUString sSelectedEntry =
m_xListBox->get_selected_text();
2629 if (!sSelectedEntry.isEmpty())
2637 if (!sSelectedEntry.isEmpty())
2648 for (sal_Int32
i = 0, nEntryCount =
m_xListBox->n_children();
i< nEntryCount; ++
i)
2651 if (sEntry.startsWithIgnoreAsciiCase(
aFuncBuffer))
2661 return HandleKeyInput(rKEvt);
2666 bool bHandled =
true;
2669 if( (( aChar >=
KEY_A ) && ( aChar <=
KEY_Z ))
2705 OUString sTypedText =
pParent->GetEditEngine()->GetText(aTextSelection);
2708 sal_Int32 nInd =
m_xListBox->get_selected_index();
2713 bool bFound =
false;
2714 for (sal_Int32
i = nInd;
i != nEntryCount; ++
i)
2717 if( sEntry.startsWithIgnoreAsciiCase(
aFuncBuffer )
2718 && (std::u16string_view(
aFuncBuffer) != sTypedText) && (
i != nInd) )
2748 if( !aTabInsertedStr.isEmpty() && aTabInsertedStr != std::u16string_view(
aFuncBuffer) )
2794 :
InterimItemWindow(pPar,
"modules/BasicIDE/ui/codecomplete.ui",
"CodeComplete")
2796 , m_xListBox(m_xBuilder->weld_tree_view(
"treeview"))
2845 aPos.
setY( (aPos.
Y() - nViewYOffset) + nBasePad );
2848 const sal_uInt16 nLines =
static_cast<sal_uInt16
>(std::min(6,
m_xListBox->n_children()));
2862 const tools::Long& nParentFontHeight =
pParent->GetEditEngine()->GetFont().GetFontHeight();
2887: bCanComplete( true )
2889 if( aVect.empty() || sVarType.isEmpty() )
2898 xClass = css::reflection::theCoreReflection::get(
2908 bCanComplete = std::none_of(aVect.begin() + 1, aVect.end(), [
this](
const OUString& rMethName) {
2909 return (!CodeCompleteOptions::IsExtendedTypeDeclaration() || !CheckMethod(rMethName)) && !CheckField(rMethName); });
2914 std::vector< OUString > aRetVect;
2920 aRetVect.push_back( rMethod->getName() );
2928 std::vector< OUString > aRetVect;
2934 aRetVect.push_back( rxField->getName() );
2948 if( xField !=
nullptr )
2950 xClass = xField->getType();
std::vector< sal_Int32 > vIndices
std::vector< OUString > maMemberList
WatchItem * mpArrayParentItem
const StyleSettings & GetStyleSettings() const
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)
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, const ILibreOfficeKitNotifier *pNotifier=nullptr)
static bool IsExtendedTypeDeclaration()
static bool IsAutoCloseParenthesisOn()
static bool IsAutoCorrectOn()
static bool IsProcedureAutoCompleteOn()
static bool IsCodeCompleteOn()
static bool IsAutoCloseQuotesOn()
CommandEventId GetCommand() const
const CommandWheelData * GetWheelData() const
const Point & GetMousePosPixel() const
bool IsMouseEvent() const
DataChangedEventType GetType() const
AllSettingsFlags GetFlags() const
const AllSettings * GetOldSettings() const
bool IsFloatingMode() const
virtual void SetText(const OUString &rStr) override
Size GetOutputSizePixel() const
HelpEventMode GetMode() const
const Point & GetMousePosPixel() const
virtual void SearchKeyword(const OUString &rKeyWord)
static void ShowQuickHelp(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rHelpText, QuickHelpFlags nStyle=QuickHelpFlags::NONE)
INetProtocol GetProtocol() const
virtual void Start(bool bStartTimer=true) override
Size GetSizePixel() const
virtual void dispose() override
std::unique_ptr< weld::Container > m_xContainer
sal_Unicode GetCharCode() const
const vcl::KeyCode & GetKeyCode() const
sal_uInt16 GetClicks() const
const Point & GetPosPixel() const
Size GetOutputSize() const
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
void DrawLine(const Point &rStartPt, const Point &rEndPt)
void DrawImage(const Point &rPos, const Image &rImage, DrawImageFlags nStyle=DrawImageFlags::NONE)
const Color & GetLineColor() const
tools::Long GetTextHeight() const
static vcl::Font GetDefaultFont(DefaultFontType nType, LanguageType eLang, GetDefaultFontFlags nFlags, const OutputDevice *pOutDev=nullptr)
constexpr tools::Long Y() const
void setX(tools::Long nX)
void setY(tools::Long nY)
tools::Long AdjustY(tools::Long nVertMove)
tools::Long AdjustX(tools::Long nHorzMove)
constexpr tools::Long getX() const
constexpr tools::Long getY() const
VclPtr< vcl::Window > m_xBox
virtual SbxInfo * GetInfo() override
void GetLineRange(sal_uInt16 &, sal_uInt16 &)
void GetCodeCompleteDataFromParse(CodeCompleteDataCache &aCache)
static OUString GetKeywordCase(std::u16string_view sKeyword)
const SbxArrayRef & GetMethods() const
virtual SbxDataType GetType() const override
SbxVariable * Get(sal_uInt32)
static void SetError(ErrCode)
static ErrCode const & GetError()
bool GetDim(sal_Int32, sal_Int32 &, sal_Int32 &) const
SbxVariable * Get(SbxArray *)
sal_Int32 GetDims() const
SbxArray * GetProperties()
virtual SbxVariable * Find(const OUString &, SbxClassType)
OUString GetOUString() const
virtual SbxDataType GetType() const override
SbxArray * GetParameters() const
const OUString & GetName(SbxNameType=SbxNameType::NONE) const
void ExecutePopup(const OUString &rResName, vcl::Window *pWin=nullptr, const Point *pPos=nullptr)
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
void SetState(sal_uInt32 nVal, sal_uInt32 nNewRange=0)
static SAL_WARN_UNUSED_RESULT SfxViewShell * Current()
virtual bool KeyInput(const KeyEvent &rKeyEvent)
constexpr tools::Long getHeight() const
constexpr tools::Long Height() const
tools::Long AdjustHeight(tools::Long n)
constexpr tools::Long getWidth() const
void setWidth(tools::Long nWidth)
tools::Long AdjustWidth(tools::Long n)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
static SbxBase * FindSBXInCurrentScope(const OUString &rName)
static SbMethod * GetActiveMethod(sal_uInt16 nLevel=0)
const Color & GetFieldColor() const
const Color & GetFaceColor() const
void SetLineDelimiter(LineEnd eLineEnd)
void SetStreamCharSet(rtl_TextEncoding eCharSet)
void getHighlightPortions(std::u16string_view rLine, std::vector< HighlightPortion > &pPortions) const
TaskPaneList * GetTaskPaneList()
void AddWindow(vcl::Window *pWindow)
void RemoveWindow(vcl::Window *pWindow)
bool Read(SvStream &rInput, const TextSelection *pSel=nullptr)
TextPaM GetPaM(const Point &rDocPos)
OUString GetWord(const TextPaM &rCursorPos, TextPaM *pStartOfWord=nullptr, TextPaM *pEndOfWord=nullptr)
void Write(SvStream &rOutput)
OUString GetText(LineEnd aSeparator=LINEEND_LF) const
static bool DoesKeyChangeText(const KeyEvent &rKeyEvent)
void SetText(const OUString &rStr)
sal_Int32 GetValue() const
sal_uInt32 GetPara() const
sal_Int32 GetIndex() const
const TextPaM & GetStart() const
const TextPaM & GetEnd() const
void SetSelection(const TextSelection &rNewSel)
vcl::Window * GetWindow() const
Point GetWindowPos(const Point &rDocPos) const
Point GetDocPos(const Point &rWindowPos) const
const TextSelection & GetSelection() const
void InsertText(const OUString &rNew)
TextEngine * GetTextEngine() const
const Point & GetStartDocPos() const
void SetInvokeHandler(const Link< Timer *, void > &rLink)
virtual void Invoke() override
const OUString & GetLibName() const
void ShowReadOnlyInfoBar()
const ScriptDocument & GetDocument() const
void SetCurrentBreakPoint(BreakPoint const &rBrk)
void AdjustBreakPoints(sal_uInt16 nLine, bool bInserted)
BreakPoint & at(size_t i)
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
ModulWindow & rModulWindow
virtual void DataChanged(DataChangedEvent const &rDCEvt) override
BreakPoint * FindBreakPoint(const Point &rMousePos)
void ShowMarker(vcl::RenderContext &rRenderContext)
BreakPointList & GetBreakPoints()
void SetMarkerPos(sal_uInt16 nLine, bool bErrorMarker=false)
void setBackgroundColor(Color aColor)
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &) override
BreakPointWindow(vcl::Window *pParent, ModulWindow *)
tools::Long & GetCurYOffset()
void DoScroll(tools::Long nVertScroll)
virtual void Command(const CommandEvent &rCEvt) override
TextView * GetParentEditView()
void SetTextSelection(const TextSelection &aSel)
virtual ~CodeCompleteWindow() override
TextSelection m_aTextSelection
void HideAndRestoreFocus()
void InsertSelectedEntry()
VclPtr< EditorWindow > pParent
std::unique_ptr< weld::TreeView > m_xListBox
OUStringBuffer aFuncBuffer
CodeCompleteWindow(EditorWindow *pPar)
const TextSelection & GetTextSelection() const
void SetMatchingEntries()
void InsertEntry(const OUString &aStr)
virtual void dispose() override
void ResizeAndPositionListBox()
bool HandleKeyInput(const KeyEvent &rKeyEvt)
virtual void Resize() override
VclPtr< ScrollAdaptor > aEWVScrollBar
ComplexEditorWindow(ModulWindow *pParent)
virtual void DataChanged(DataChangedEvent const &rDCEvt) override
virtual void dispose() override
VclPtr< LineNumberWindow > aLineNumberWindow
virtual ~ComplexEditorWindow() override
VclPtr< EditorWindow > aEdtWindow
VclPtr< BreakPointWindow > aBrkWindow
void SetLineNumberDisplay(bool b)
VclPtr< ScrollAdaptor > aEWHScrollBar
std::unique_ptr< weld::Builder > m_xBuilder
virtual void dispose() override
static std::unique_ptr< UIObject > create(vcl::Window *pWindow)
virtual void SAL_CALL disposing(lang::EventObject const &) override
virtual ~ChangesListener() override
ChangesListener(EditorWindow &editor)
virtual void SAL_CALL propertiesChange(Sequence< beans::PropertyChangeEvent > const &) override
ProgressInfo(SfxObjectShell *pObjSh, OUString const &rText, sal_uInt32 nRange)
SyntaxHighlighter aHighlighter
EditorWindow(vcl::Window *pParent, ModulWindow *)
css::uno::Reference< css::beans::XMultiPropertySet > notifier_
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual void KeyInput(const KeyEvent &rKeyEvt) override
OUString GetWordAtCursor()
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &) override
tools::Long nCurTextWidth
void HandleAutoCloseParen()
void UpdateSyntaxHighlighting()
TextView * GetEditView() const
bool GetProcedureName(std::u16string_view rLine, OUString &rProcType, OUString &rProcName) const
void ChangeFontColor(Color aColor)
virtual void dispose() override
virtual void Command(const CommandEvent &rCEvt) override
FactoryFunction GetUITestFactory() const override
void SetEditorZoomLevel(sal_uInt16 nNewZoomLevel)
std::set< sal_uInt16 > aSyntaxLineTable
virtual void LoseFocus() override
TextSelection GetLastHighlightPortionTextSelection() const
void HandleProcedureCompletion()
void ImpDoHighlight(sal_uInt32 nLineOff)
void ForceSyntaxTimeout()
virtual void RequestHelp(const HelpEvent &rHEvt) override
ImplSVEvent * m_nSetSourceInBasicId
void DoDelayedSyntaxHighlight(sal_uInt32 nPara)
void HandleAutoCloseDoubleQuotes()
std::unique_ptr< TextView > pEditView
ModulWindow & rModulWindow
virtual css::uno::Reference< css::awt::XVclWindowPeer > GetComponentInterface(bool bCreate=true) override
CodeCompleteDataCache aCodeCompleteCache
void DoSyntaxHighlight(sal_uInt32 nPara)
std::unique_ptr< ProgressInfo > pProgress
virtual ~EditorWindow() override
virtual void MouseMove(const MouseEvent &rMEvt) override
void HandleCodeCompletion()
void CreateProgress(const OUString &rText, sal_uInt32 nRange)
OUString GetActualSubName(sal_uInt32 nLine)
sal_uInt16 nCurrentZoomLevel
void SetScrollBarRanges()
void SetupAndShowCodeCompleteWnd(const std::vector< OUString > &aEntryVect, TextSelection aSel)
virtual void Resize() override
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
VclPtr< CodeCompleteWindow > pCodeCompleteWnd
virtual void MouseButtonUp(const MouseEvent &rMEvt) override
void ParagraphInsertedDeleted(sal_uInt32 nNewPara, bool bInserted)
std::unique_ptr< ExtTextEngine > pEditEngine
rtl::Reference< ChangesListener > listener_
sal_uInt16 GetCurrentZoom()
void DoScroll(tools::Long nVertScroll)
tools::Long & GetCurYOffset()
Color const & GetSyntaxBackgroundColor() const
Color const & GetSyntaxColor(TokenType eType) const
Color const & GetFontColor() const
ModulWindowLayout & GetLayout()
BreakPointWindow & GetBreakPointWindow()
const OUString & GetModule() const
ScrollAdaptor & GetEditVScrollBar()
virtual void SetReadOnly(bool bReadOnly) override
BreakPointList & GetBreakPoints()
BasicStatus & GetBasicStatus()
void ToggleBreakPoint(sal_uInt16 nLine)
virtual bool IsReadOnly() override
ScrollAdaptor & GetEditHScrollBar()
void UpdateBreakPoint(const BreakPoint &rBrk)
LineNumberWindow & GetLineNumberWindow()
encapsulates a document which contains Basic scripts and dialogs
sal_uInt16 GetCurrentZoomSliderValue()
void SetGlobalEditorZoomLevel(sal_uInt16 nNewZoomLevel)
static sal_uInt16 GetMinZoom()
static sal_uInt16 GetMaxZoom()
std::unique_ptr< weld::Label > m_xTitle
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
StackWindow(Layout *pParent)
virtual void dispose() override
std::unique_ptr< weld::TreeView > m_xTreeListBox
virtual void Resize() override
virtual ~StackWindow() override
UnoTypeCodeCompletetor(const std::vector< OUString > &aVect, const OUString &sVarType)
std::vector< OUString > GetXIdlClassMethods() const
bool CanCodeComplete() const
css::uno::Reference< css::reflection::XIdlClass > xClass
std::vector< OUString > GetXIdlClassFields() const
bool CheckMethod(const OUString &sMethName)
bool CheckField(const OUString &sFieldName)
virtual void dispose() override
std::unique_ptr< weld::TreeView > m_xTreeListBox
void UpdateWatches(bool bBasicStopped=false)
virtual ~WatchWindow() override
ImplSVEvent * m_nUpdateWatchesId
void RemoveSelectedWatch()
void AddWatch(const OUString &rVName)
std::unique_ptr< weld::Label > m_xTitle
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
void implEnableChildren(const weld::TreeIter &rEntry, bool bEnable)
SbxBase * ImplGetSBXForEntry(const weld::TreeIter &rEntry, bool &rbArrayElement)
WatchWindow(Layout *pParent)
std::unique_ptr< weld::Container > m_xTitleArea
std::unique_ptr< weld::Entry > m_xEdit
virtual void Resize() override
std::unique_ptr< weld::Button > m_xRemoveWatchButton
void SetColor(const Color &)
const OUString & GetFamilyName() const
sal_uInt16 GetGroup() const
sal_uInt16 GetCode() const
Point OutputToScreenPixel(const Point &rPos) const
virtual void dispose() override
tools::Long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
void SetFont(const vcl::Font &rNewFont)
Point LogicToPixel(const Point &rLogicPt) const
bool HandleScrollCommand(const CommandEvent &rCmd, Scrollable *pHScrl, Scrollable *pVScrl)
virtual void SetSizePixel(const Size &rNewSize)
vcl::Window * GetWindow(GetWindowType nType) const
void set_id(const OUString &rID)
tools::Long GetTextHeight() const
const AllSettings & GetSettings() const
::OutputDevice const * GetOutDev() const
const vcl::Font & GetFont() const
SystemWindow * GetSystemWindow() const
Point PixelToLogic(const Point &rDevicePt) const
virtual Size GetSizePixel() const
Size GetOutputSizePixel() const
virtual void SetPointer(PointerStyle)
void SetPointFont(vcl::RenderContext &rRenderContext, const vcl::Font &rFont)
void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
virtual void SetPosPixel(const Point &rNewPos)
void SetComponentInterface(css::uno::Reference< css::awt::XVclWindowPeer > const &xIFace)
Point ScreenToOutputPixel(const Point &rPos) const
virtual void SetPosSizePixel(const Point &rNewPos, const Size &rNewSize)
void SetHelpId(const OUString &)
virtual std::unique_ptr< TreeIter > make_iterator(const TreeIter *pOrig=nullptr) const=0
virtual void copy_iterator(const TreeIter &rSource, TreeIter &rDest) const=0
virtual void remove(int pos)=0
virtual void collapse_row(const TreeIter &rIter)=0
virtual bool iter_children(TreeIter &rIter) const=0
virtual OUString get_id(int pos) const=0
#define DBG_ASSERT(sCon, aError)
std::deque< AttacherIndex_Impl > aIndex
constexpr OUStringLiteral IsReadOnly(u"IsReadOnly")
constexpr OUStringLiteral HID_BASICIDE_WATCHWINDOW_LIST
constexpr OUStringLiteral HID_BASICIDE_WATCHWINDOW_EDIT
constexpr OUStringLiteral HID_BASICIDE_EDITORWINDOW
constexpr OUStringLiteral HID_BASICIDE_STACKWINDOW
constexpr OUStringLiteral HID_BASICIDE_REMOVEWATCH
constexpr OUStringLiteral HID_BASICIDE_BREAKPOINTWINDOW
constexpr OUStringLiteral HID_BASICIDE_WATCHWINDOW
constexpr OUStringLiteral HID_BASICIDE_STACKWINDOW_LIST
std::function< std::unique_ptr< UIObject >(vcl::Window *)> FactoryFunction
constexpr sal_uInt16 KEY_RETURN
constexpr sal_uInt16 KEY_0
constexpr sal_uInt16 KEYGROUP_ALPHA
constexpr sal_uInt16 KEY_ESCAPE
constexpr sal_uInt16 KEY_LEFT
constexpr sal_uInt16 KEY_TAB
constexpr sal_uInt16 KEY_POINT
constexpr sal_uInt16 KEY_UP
constexpr sal_uInt16 KEY_9
constexpr sal_uInt16 KEY_Z
constexpr sal_uInt16 KEY_A
constexpr sal_uInt16 KEY_RIGHT
constexpr sal_uInt16 KEY_DELETE
constexpr sal_uInt16 KEY_DOWN
constexpr sal_uInt16 KEY_SPACE
constexpr sal_uInt16 KEYGROUP_NUM
constexpr sal_uInt16 KEY_INSERT
constexpr sal_uInt16 KEY_BACKSPACE
constexpr sal_uInt16 KEYGROUP_CURSOR
#define LINK(Instance, Class, Member)
std::unique_ptr< sal_Int32[]> pData
SVL_DLLPUBLIC OUString FindFirstURLInText(OUString const &rText, sal_Int32 &rBegin, sal_Int32 &rEnd, CharClass const &rCharClass, INetURLObject::EncodeMechanism eMechanism=INetURLObject::EncodeMechanism::WasEncoded, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8)
constexpr auto LINE_SEP_CR
SfxBindings * GetBindingsPtr()
void setTextEngineText(ExtTextEngine &, std::u16string_view)
static sal_uInt32 getCorrectedPropCount(SbxArray *p)
sal_Int32 searchEOL(std::u16string_view rStr, sal_Int32 fromIndex)
OUString getTextEngineText(ExtTextEngine &)
Helper functions to get/set text in TextEngine using the stream interface.
SfxDispatcher * GetDispatcher()
IMPL_LINK(AccessibleDialogWindow, WindowEventListener, VclWindowEvent &, rEvent, void)
constexpr sal_uInt16 MAX_ZOOM_LEVEL
css::uno::Reference< css::awt::XVclWindowPeer > createTextWindowPeer(TextView &view)
IMPL_STATIC_LINK_NOARG(WatchWindow, ButtonHdl, weld::Button &, void)
IMPL_LINK_NOARG(EditorWindow, SetSourceInBasicHdl, void *, void)
OUString IDEResId(TranslateId aId)
bool isdigitAsciiString(std::string_view rString)
OString strip(const OString &rIn, char c)
OString stripEnd(const OString &rIn, char c)
Reference< XComponentContext > getProcessComponentContext()
bool equalsIgnoreAsciiCase(std::u16string_view s1, std::u16string_view s2)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
weld::Window * GetPopupParent(vcl::Window &rOutWin, tools::Rectangle &rRect)
OUString toId(const void *pValue)
void setBasicWatchMode(bool bOn)
BASIC_DLLPUBLIC OUString getBasicTypeName(SbxDataType eType)
void createAllObjectProperties(SbxObject *pObj)
OUString getBasicObjectTypeName(SbxObject *pObj)
constexpr Method aMethods[]
void GetSelection(struct ESelection &rSel, SvxTextForwarder const *pForwarder) noexcept
WinBits const WB_CLIPCHILDREN