diff options
Diffstat (limited to 'include/ScintillaStructures.h')
-rw-r--r-- | include/ScintillaStructures.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/include/ScintillaStructures.h b/include/ScintillaStructures.h new file mode 100644 index 000000000..6bd16e8c1 --- /dev/null +++ b/include/ScintillaStructures.h @@ -0,0 +1,103 @@ +// Scintilla source code edit control +/** @file ScintillaStructures.h + ** Structures used to communicate with Scintilla. + ** The same structures are defined for C in Scintilla.h. + ** Uses definitions from ScintillaTypes.h. + **/ +// Copyright 2021 by Neil Hodgson <neilh@scintilla.org> +// The License.txt file describes the conditions under which this software may be distributed. + +#ifndef SCINTILLASTRUCTURES_H +#define SCINTILLASTRUCTURES_H + +namespace Scintilla { + +using PositionCR = long; + +struct CharacterRange { + PositionCR cpMin; + PositionCR cpMax; +}; + +struct TextRange { + CharacterRange chrg; + char *lpstrText; +}; + +struct TextToFind { + CharacterRange chrg; + const char *lpstrText; + CharacterRange chrgText; +}; + +using SurfaceID = void *; + +struct Rectangle { + int left; + int top; + int right; + int bottom; +}; + +/* This structure is used in printing. Not needed by most client code. */ + +struct RangeToFormat { + SurfaceID hdc; + SurfaceID hdcTarget; + Rectangle rc; + Rectangle rcPage; + CharacterRange chrg; +}; + +struct NotifyHeader { + /* Compatible with Windows NMHDR. + * hwndFrom is really an environment specific window handle or pointer + * but most clients of Scintilla.h do not have this type visible. */ + void *hwndFrom; + uptr_t idFrom; + Notification code; +}; + +struct NotificationData { + NotifyHeader nmhdr; + Position position; + /* SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK, */ + /* SCN_NEEDSHOWN, SCN_DWELLSTART, SCN_DWELLEND, SCN_CALLTIPCLICK, */ + /* SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, SCN_HOTSPOTRELEASECLICK, */ + /* SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ + /* SCN_USERLISTSELECTION, SCN_AUTOCSELECTION */ + + int ch; + /* SCN_CHARADDED, SCN_KEY, SCN_AUTOCCOMPLETED, SCN_AUTOCSELECTION, */ + /* SCN_USERLISTSELECTION */ + KeyMod modifiers; + /* SCN_KEY, SCN_DOUBLECLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, */ + /* SCN_HOTSPOTRELEASECLICK, SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ + + ModificationFlags modificationType; /* SCN_MODIFIED */ + const char *text; + /* SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION, SCN_URIDROPPED */ + + Position length; /* SCN_MODIFIED */ + Position linesAdded; /* SCN_MODIFIED */ + Message message; /* SCN_MACRORECORD */ + uptr_t wParam; /* SCN_MACRORECORD */ + sptr_t lParam; /* SCN_MACRORECORD */ + Position line; /* SCN_MODIFIED */ + FoldLevel foldLevelNow; /* SCN_MODIFIED */ + FoldLevel foldLevelPrev; /* SCN_MODIFIED */ + int margin; /* SCN_MARGINCLICK */ + int listType; /* SCN_USERLISTSELECTION */ + int x; /* SCN_DWELLSTART, SCN_DWELLEND */ + int y; /* SCN_DWELLSTART, SCN_DWELLEND */ + int token; /* SCN_MODIFIED with SC_MOD_CONTAINER */ + Position annotationLinesAdded; /* SCN_MODIFIED with SC_MOD_CHANGEANNOTATION */ + Update updated; /* SCN_UPDATEUI */ + CompletionMethods listCompletionMethod; + /* SCN_AUTOCSELECTION, SCN_AUTOCCOMPLETED, SCN_USERLISTSELECTION, */ + CharacterSource characterSource; /* SCN_CHARADDED */ +}; + +} + +#endif |