1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
// 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 CharacterRangeFull {
Position cpMin;
Position cpMax;
};
struct TextRange {
CharacterRange chrg;
char *lpstrText;
};
struct TextRangeFull {
CharacterRangeFull chrg;
char *lpstrText;
};
struct TextToFind {
CharacterRange chrg;
const char *lpstrText;
CharacterRange chrgText;
};
struct TextToFindFull {
CharacterRangeFull chrg;
const char *lpstrText;
CharacterRangeFull 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 RangeToFormatFull {
SurfaceID hdc;
SurfaceID hdcTarget;
Rectangle rc;
Rectangle rcPage;
CharacterRangeFull 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;
};
enum class Message; // Declare in case ScintillaMessages.h not included
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
|