Add custom change to scintilla to query bounds of autocomplete box

This commit is contained in:
baldurk
2026-08-13 21:05:14 +01:00
parent 79ad933913
commit 586886b3f5
5 changed files with 41 additions and 0 deletions
+5
View File
@@ -1097,6 +1097,11 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
#define SCN_MARGINRIGHTCLICK 2031
/* --Autogenerated -- end of section automatically generated from Scintilla.iface */
#define SCI_AUTOCGETRECTLEFT 9001
#define SCI_AUTOCGETRECTRIGHT 9002
#define SCI_AUTOCGETRECTTOP 9003
#define SCI_AUTOCGETRECTBOTTOM 9004
/* These structures are defined to be exactly the same shape as the Win32
* CHARRANGE, TEXTRANGE, FINDTEXTEX, FORMATRANGE, and NMHDR structs.
* So older code that treats Scintilla as a RichEdit will work. */
@@ -240,6 +240,10 @@ public:
sptr_t autoCMaxWidth() const;
void autoCSetMaxHeight(sptr_t rowCount);
sptr_t autoCMaxHeight() const;
sptr_t autoCRectLeft() const;
sptr_t autoCRectRight() const;
sptr_t autoCRectTop() const;
sptr_t autoCRectBottom() const;
void setIndent(sptr_t indentSize);
sptr_t indent() const;
void setUseTabs(bool useTabs);
@@ -689,6 +689,22 @@ bool ScintillaEdit::autoCActive() {
return send(SCI_AUTOCACTIVE, 0, 0);
}
sptr_t ScintillaEdit::autoCRectLeft() const {
return send(SCI_AUTOCGETRECTLEFT, 0, 0);
}
sptr_t ScintillaEdit::autoCRectRight() const {
return send(SCI_AUTOCGETRECTRIGHT, 0, 0);
}
sptr_t ScintillaEdit::autoCRectTop() const {
return send(SCI_AUTOCGETRECTTOP, 0, 0);
}
sptr_t ScintillaEdit::autoCRectBottom() const {
return send(SCI_AUTOCGETRECTBOTTOM, 0, 0);
}
sptr_t ScintillaEdit::autoCPosStart() {
return send(SCI_AUTOCPOSSTART, 0, 0);
}
@@ -240,6 +240,10 @@ public:
sptr_t autoCMaxWidth() const;
void autoCSetMaxHeight(sptr_t rowCount);
sptr_t autoCMaxHeight() const;
sptr_t autoCRectLeft() const;
sptr_t autoCRectRight() const;
sptr_t autoCRectTop() const;
sptr_t autoCRectBottom() const;
void setIndent(sptr_t indentSize);
sptr_t indent() const;
void setUseTabs(bool useTabs);
+12
View File
@@ -902,6 +902,18 @@ sptr_t ScintillaBase::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lPara
case SCI_AUTOCGETMAXHEIGHT:
return ac.lb->GetVisibleRows();
case SCI_AUTOCGETRECTLEFT:
return ac.lb->GetPosition().left;
case SCI_AUTOCGETRECTRIGHT:
return ac.lb->GetPosition().right;
case SCI_AUTOCGETRECTTOP:
return ac.lb->GetPosition().top;
case SCI_AUTOCGETRECTBOTTOM:
return ac.lb->GetPosition().bottom;
case SCI_AUTOCSETMAXWIDTH:
maxListWidth = static_cast<int>(wParam);
break;