aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorZufu Liu <unknown>2023-02-15 12:01:42 +1100
committerZufu Liu <unknown>2023-02-15 12:01:42 +1100
commit5e886f24d13438063a58e06e74e6c371cf8311e7 (patch)
tree120ef5cb8e1d9a0ea503914fc9b147725b95ed76
parent00fe0093156d19a55d5eefcf67dbbe8a73640933 (diff)
downloadscintilla-mirror-5e886f24d13438063a58e06e74e6c371cf8311e7.tar.gz
Feature [feature-requests:#1477] More typesafe bindings of *Full APIs in
ScintillaCall.
-rw-r--r--call/ScintillaCall.cxx8
-rw-r--r--doc/ScintillaHistory.html4
-rw-r--r--include/ScintillaCall.h13
-rw-r--r--scripts/ScintillaAPIFacer.py6
4 files changed, 20 insertions, 11 deletions
diff --git a/call/ScintillaCall.cxx b/call/ScintillaCall.cxx
index 27ad8a738..dcffb8a7e 100644
--- a/call/ScintillaCall.cxx
+++ b/call/ScintillaCall.cxx
@@ -231,7 +231,7 @@ Position ScintillaCall::GetStyledText(void *tr) {
return CallPointer(Message::GetStyledText, 0, tr);
}
-Position ScintillaCall::GetStyledTextFull(void *tr) {
+Position ScintillaCall::GetStyledTextFull(TextRangeFull *tr) {
return CallPointer(Message::GetStyledTextFull, 0, tr);
}
@@ -1159,7 +1159,7 @@ Position ScintillaCall::FindText(Scintilla::FindOption searchFlags, void *ft) {
return CallPointer(Message::FindText, static_cast<uintptr_t>(searchFlags), ft);
}
-Position ScintillaCall::FindTextFull(Scintilla::FindOption searchFlags, void *ft) {
+Position ScintillaCall::FindTextFull(Scintilla::FindOption searchFlags, TextToFindFull *ft) {
return CallPointer(Message::FindTextFull, static_cast<uintptr_t>(searchFlags), ft);
}
@@ -1167,7 +1167,7 @@ Position ScintillaCall::FormatRange(bool draw, void *fr) {
return CallPointer(Message::FormatRange, draw, fr);
}
-Position ScintillaCall::FormatRangeFull(bool draw, void *fr) {
+Position ScintillaCall::FormatRangeFull(bool draw, RangeToFormatFull *fr) {
return CallPointer(Message::FormatRangeFull, draw, fr);
}
@@ -1235,7 +1235,7 @@ Position ScintillaCall::GetTextRange(void *tr) {
return CallPointer(Message::GetTextRange, 0, tr);
}
-Position ScintillaCall::GetTextRangeFull(void *tr) {
+Position ScintillaCall::GetTextRangeFull(TextRangeFull *tr) {
return CallPointer(Message::GetTextRangeFull, 0, tr);
}
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html
index 5caeb139a..7e544789c 100644
--- a/doc/ScintillaHistory.html
+++ b/doc/ScintillaHistory.html
@@ -587,6 +587,10 @@
Released 8 February 2023.
</li>
<li>
+ More typesafe bindings of *Full APIs in ScintillaCall.
+ <a href="https://sourceforge.net/p/scintilla/feature-requests/1477/">Feature #1477</a>.
+ </li>
+ <li>
Fix overlapping of text with line end wrap marker.
<a href="https://sourceforge.net/p/scintilla/bugs/2378/">Bug #2378</a>.
</li>
diff --git a/include/ScintillaCall.h b/include/ScintillaCall.h
index 9c851d567..8a01f2acb 100644
--- a/include/ScintillaCall.h
+++ b/include/ScintillaCall.h
@@ -15,6 +15,11 @@ namespace Scintilla {
enum class Message; // Declare in case ScintillaMessages.h not included
+// Declare in case ScintillaStructures.h not included
+struct TextRangeFull;
+struct TextToFindFull;
+struct RangeToFormatFull;
+
using FunctionDirect = intptr_t(*)(intptr_t ptr, unsigned int iMessage, uintptr_t wParam, intptr_t lParam, int *pStatus);
struct Failure {
@@ -96,7 +101,7 @@ public:
void SelectAll();
void SetSavePoint();
Position GetStyledText(void *tr);
- Position GetStyledTextFull(void *tr);
+ Position GetStyledTextFull(TextRangeFull *tr);
bool CanRedo();
Line MarkerLineFromHandle(int markerHandle);
void MarkerDeleteHandle(int markerHandle);
@@ -328,9 +333,9 @@ public:
void SetPrintColourMode(Scintilla::PrintOption mode);
Scintilla::PrintOption PrintColourMode();
Position FindText(Scintilla::FindOption searchFlags, void *ft);
- Position FindTextFull(Scintilla::FindOption searchFlags, void *ft);
+ Position FindTextFull(Scintilla::FindOption searchFlags, TextToFindFull *ft);
Position FormatRange(bool draw, void *fr);
- Position FormatRangeFull(bool draw, void *fr);
+ Position FormatRangeFull(bool draw, RangeToFormatFull *fr);
void SetChangeHistory(Scintilla::ChangeHistoryOption changeHistory);
Scintilla::ChangeHistoryOption ChangeHistory();
Line FirstVisibleLine();
@@ -347,7 +352,7 @@ public:
Position GetSelText(char *text);
std::string GetSelText();
Position GetTextRange(void *tr);
- Position GetTextRangeFull(void *tr);
+ Position GetTextRangeFull(TextRangeFull *tr);
void HideSelection(bool hide);
bool SelectionHidden();
int PointXFromPosition(Position pos);
diff --git a/scripts/ScintillaAPIFacer.py b/scripts/ScintillaAPIFacer.py
index e30f48380..f26389abb 100644
--- a/scripts/ScintillaAPIFacer.py
+++ b/scripts/ScintillaAPIFacer.py
@@ -19,9 +19,9 @@ typeAliases = {
"colour": "Colour",
"colouralpha": "ColourAlpha",
"findtext": "void *",
- "findtextfull": "void *",
+ "findtextfull": "TextToFindFull *",
"formatrange": "void *",
- "formatrangefull": "void *",
+ "formatrangefull": "RangeToFormatFull *",
"int": "int",
"keymod": "int",
"line": "Line",
@@ -30,7 +30,7 @@ typeAliases = {
"string": "const char *",
"stringresult": "char *",
"textrange": "void *",
- "textrangefull": "void *",
+ "textrangefull": "TextRangeFull *",
}
basicTypes = [