| 1 | // Scintilla source code edit control |
| 2 | /** @file ScintillaStructures.h |
| 3 | ** Structures used to communicate with Scintilla. |
| 4 | ** The same structures are defined for C in Scintilla.h. |
| 5 | ** Uses definitions from ScintillaTypes.h. |
| 6 | **/ |
| 7 | // Copyright 2021 by Neil Hodgson <neilh@scintilla.org> |
| 8 | // The License.txt file describes the conditions under which this software may be distributed. |
| 9 | |
| 10 | #ifndef SCINTILLASTRUCTURES_H |
| 11 | #define SCINTILLASTRUCTURES_H |
| 12 | |
| 13 | namespace Scintilla { |
| 14 | |
| 15 | using PositionCR = long; |
| 16 | |
| 17 | struct CharacterRange { |
| 18 | PositionCR cpMin; |
| 19 | PositionCR cpMax; |
| 20 | }; |
| 21 | |
| 22 | struct { |
| 23 | CharacterRange ; |
| 24 | char *; |
| 25 | }; |
| 26 | |
| 27 | struct TextToFind { |
| 28 | CharacterRange chrg; |
| 29 | const char *lpstrText; |
| 30 | CharacterRange chrgText; |
| 31 | }; |
| 32 | |
| 33 | using SurfaceID = void *; |
| 34 | |
| 35 | struct Rectangle { |
| 36 | int left; |
| 37 | int top; |
| 38 | int right; |
| 39 | int bottom; |
| 40 | }; |
| 41 | |
| 42 | /* This structure is used in printing. Not needed by most client code. */ |
| 43 | |
| 44 | struct RangeToFormat { |
| 45 | SurfaceID hdc; |
| 46 | SurfaceID hdcTarget; |
| 47 | Rectangle rc; |
| 48 | Rectangle rcPage; |
| 49 | CharacterRange chrg; |
| 50 | }; |
| 51 | |
| 52 | struct { |
| 53 | /* Compatible with Windows NMHDR. |
| 54 | * hwndFrom is really an environment specific window handle or pointer |
| 55 | * but most clients of Scintilla.h do not have this type visible. */ |
| 56 | void *; |
| 57 | uptr_t ; |
| 58 | Notification ; |
| 59 | }; |
| 60 | |
| 61 | struct NotificationData { |
| 62 | NotifyHeader nmhdr; |
| 63 | Position position; |
| 64 | /* SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK, */ |
| 65 | /* SCN_NEEDSHOWN, SCN_DWELLSTART, SCN_DWELLEND, SCN_CALLTIPCLICK, */ |
| 66 | /* SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, SCN_HOTSPOTRELEASECLICK, */ |
| 67 | /* SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ |
| 68 | /* SCN_USERLISTSELECTION, SCN_AUTOCSELECTION */ |
| 69 | |
| 70 | int ch; |
| 71 | /* SCN_CHARADDED, SCN_KEY, SCN_AUTOCCOMPLETED, SCN_AUTOCSELECTION, */ |
| 72 | /* SCN_USERLISTSELECTION */ |
| 73 | KeyMod modifiers; |
| 74 | /* SCN_KEY, SCN_DOUBLECLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, */ |
| 75 | /* SCN_HOTSPOTRELEASECLICK, SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ |
| 76 | |
| 77 | ModificationFlags modificationType; /* SCN_MODIFIED */ |
| 78 | const char *text; |
| 79 | /* SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION, SCN_URIDROPPED */ |
| 80 | |
| 81 | Position length; /* SCN_MODIFIED */ |
| 82 | Position linesAdded; /* SCN_MODIFIED */ |
| 83 | Message message; /* SCN_MACRORECORD */ |
| 84 | uptr_t wParam; /* SCN_MACRORECORD */ |
| 85 | sptr_t lParam; /* SCN_MACRORECORD */ |
| 86 | Position line; /* SCN_MODIFIED */ |
| 87 | FoldLevel foldLevelNow; /* SCN_MODIFIED */ |
| 88 | FoldLevel foldLevelPrev; /* SCN_MODIFIED */ |
| 89 | int margin; /* SCN_MARGINCLICK */ |
| 90 | int listType; /* SCN_USERLISTSELECTION */ |
| 91 | int x; /* SCN_DWELLSTART, SCN_DWELLEND */ |
| 92 | int y; /* SCN_DWELLSTART, SCN_DWELLEND */ |
| 93 | int token; /* SCN_MODIFIED with SC_MOD_CONTAINER */ |
| 94 | Position annotationLinesAdded; /* SCN_MODIFIED with SC_MOD_CHANGEANNOTATION */ |
| 95 | Update updated; /* SCN_UPDATEUI */ |
| 96 | CompletionMethods listCompletionMethod; |
| 97 | /* SCN_AUTOCSELECTION, SCN_AUTOCCOMPLETED, SCN_USERLISTSELECTION, */ |
| 98 | CharacterSource characterSource; /* SCN_CHARADDED */ |
| 99 | }; |
| 100 | |
| 101 | } |
| 102 | |
| 103 | #endif |
| 104 | |