diff options
author | Neil <nyamatongwe@gmail.com> | 2021-05-24 19:31:06 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2021-05-24 19:31:06 +1000 |
commit | 92290868cf9753d2df0d494cb44e2ff62a570b58 (patch) | |
tree | 001e6cfce84372a03997de3138d630751ee8d38a /include/ScintillaTypes.h | |
parent | ee1886079d0a5cd350ee8e3379be347943ba93ae (diff) | |
download | scintilla-mirror-92290868cf9753d2df0d494cb44e2ff62a570b58.tar.gz |
Define C++ version of the Scintilla API in ScintillaTypes.h, ScintillaMessages.h
and ScintillaStructures.h using scoped enumerations.
Use these headers instead of Scintilla.h internally.
External definitions go in the Scintilla namespace and internal definitio0ns in
Scintilla::Internal.
Diffstat (limited to 'include/ScintillaTypes.h')
-rw-r--r-- | include/ScintillaTypes.h | 786 |
1 files changed, 786 insertions, 0 deletions
diff --git a/include/ScintillaTypes.h b/include/ScintillaTypes.h new file mode 100644 index 000000000..6b5714b69 --- /dev/null +++ b/include/ScintillaTypes.h @@ -0,0 +1,786 @@ +// Scintilla source code edit control +/** @file ScintillaTypes.h + ** Types used to communicate with Scintilla. + **/ +// Copyright 1998-2019 by Neil Hodgson <neilh@scintilla.org> +// The License.txt file describes the conditions under which this software may be distributed. + +/* Most of this file is automatically generated from the Scintilla.iface interface definition + * file which contains any comments about the definitions. ScintillaAPIFacer.py does the generation. */ + +#ifndef SCINTILLATYPES_H +#define SCINTILLATYPES_H + +namespace Scintilla { + +// Enumerations +//++Autogenerated -- start of section automatically generated from Scintilla.iface + +enum class WhiteSpace { + Invisible = 0, + VisibleAlways = 1, + VisibleAfterIndent = 2, + VisibleOnlyInIndent = 3, +}; + +enum class TabDrawMode { + LongArrow = 0, + StrikeOut = 1, +}; + +enum class EndOfLine { + CrLf = 0, + Cr = 1, + Lf = 2, +}; + +enum class IMEInteraction { + Windowed = 0, + Inline = 1, +}; + +enum class Alpha { + Transparent = 0, + Opaque = 255, + NoAlpha = 256, +}; + +enum class CursorShape { + Normal = -1, + Arrow = 2, + Wait = 4, + ReverseArrow = 7, +}; + +enum class MarkerSymbol { + Circle = 0, + RoundRect = 1, + Arrow = 2, + SmallRect = 3, + ShortArrow = 4, + Empty = 5, + ArrowDown = 6, + Minus = 7, + Plus = 8, + VLine = 9, + LCorner = 10, + TCorner = 11, + BoxPlus = 12, + BoxPlusConnected = 13, + BoxMinus = 14, + BoxMinusConnected = 15, + LCornerCurve = 16, + TCornerCurve = 17, + CirclePlus = 18, + CirclePlusConnected = 19, + CircleMinus = 20, + CircleMinusConnected = 21, + Background = 22, + DotDotDot = 23, + Arrows = 24, + Pixmap = 25, + FullRect = 26, + LeftRect = 27, + Available = 28, + Underline = 29, + RgbaImage = 30, + Bookmark = 31, + VerticalBookmark = 32, + Character = 10000, +}; + +enum class MarkerOutline { + FolderEnd = 25, + FolderOpenMid = 26, + FolderMidTail = 27, + FolderTail = 28, + FolderSub = 29, + Folder = 30, + FolderOpen = 31, +}; + +enum class MarginType { + Symbol = 0, + Number = 1, + Back = 2, + Fore = 3, + Text = 4, + RText = 5, + Colour = 6, +}; + +enum class StylesCommon { + Default = 32, + LineNumber = 33, + BraceLight = 34, + BraceBad = 35, + ControlChar = 36, + IndentGuide = 37, + CallTip = 38, + FoldDisplayText = 39, + LastPredefined = 39, + Max = 255, +}; + +enum class CharacterSet { + Ansi = 0, + Default = 1, + Baltic = 186, + ChineseBig5 = 136, + EastEurope = 238, + GB2312 = 134, + Greek = 161, + Hangul = 129, + Mac = 77, + Oem = 255, + Russian = 204, + Oem866 = 866, + Cyrillic = 1251, + ShiftJis = 128, + Symbol = 2, + Turkish = 162, + Johab = 130, + Hebrew = 177, + Arabic = 178, + Vietnamese = 163, + Thai = 222, + Iso8859_15 = 1000, +}; + +enum class CaseVisible { + Mixed = 0, + Upper = 1, + Lower = 2, + Camel = 3, +}; + +enum class FontWeight { + Normal = 400, + SemiBold = 600, + Bold = 700, +}; + +enum class Element { + List = 0, + ListBack = 1, + ListSelected = 2, + ListSelectedBack = 3, + SelectionText = 10, + SelectionBack = 11, + SelectionAdditionalText = 12, + SelectionAdditionalBack = 13, + SelectionSecondaryText = 14, + SelectionSecondaryBack = 15, + SelectionNoFocusText = 16, + SelectionNoFocusBack = 17, + Caret = 40, + CaretAdditional = 41, + CaretLineBack = 50, + WhiteSpace = 60, + WhiteSpaceBack = 61, + HotSpotActive = 70, + HotSpotActiveBack = 71, +}; + +enum class Layer { + Base = 0, + UnderText = 1, + OverText = 2, +}; + +enum class IndicatorStyle { + Plain = 0, + Squiggle = 1, + TT = 2, + Diagonal = 3, + Strike = 4, + Hidden = 5, + Box = 6, + RoundBox = 7, + StraightBox = 8, + Dash = 9, + Dots = 10, + SquiggleLow = 11, + DotBox = 12, + SquigglePixmap = 13, + CompositionThick = 14, + CompositionThin = 15, + FullBox = 16, + TextFore = 17, + Point = 18, + PointCharacter = 19, + Gradient = 20, + GradientCentre = 21, +}; + +enum class IndicatorNumbers { + Container = 8, + Ime = 32, + ImeMax = 35, + Max = 35, +}; + +enum class IndicValue { + Bit = 0x1000000, + Mask = 0xFFFFFF, +}; + +enum class IndicFlag { + None = 0, + ValueFore = 1, +}; + +enum class IndentView { + None = 0, + Real = 1, + LookForward = 2, + LookBoth = 3, +}; + +enum class PrintOption { + Normal = 0, + InvertLight = 1, + BlackOnWhite = 2, + ColourOnWhite = 3, + ColourOnWhiteDefaultBG = 4, + ScreenColours = 5, +}; + +enum class FindOption { + None = 0x0, + WholeWord = 0x2, + MatchCase = 0x4, + WordStart = 0x00100000, + RegExp = 0x00200000, + Posix = 0x00400000, + Cxx11RegEx = 0x00800000, +}; + +enum class FoldLevel { + None = 0x0, + Base = 0x400, + WhiteFlag = 0x1000, + HeaderFlag = 0x2000, + NumberMask = 0x0FFF, +}; + +enum class FoldDisplayTextStyle { + Hidden = 0, + Standard = 1, + Boxed = 2, +}; + +enum class FoldAction { + Contract = 0, + Expand = 1, + Toggle = 2, +}; + +enum class AutomaticFold { + None = 0x0000, + Show = 0x0001, + Click = 0x0002, + Change = 0x0004, +}; + +enum class FoldFlag { + None = 0x0000, + LineBeforeExpanded = 0x0002, + LineBeforeContracted = 0x0004, + LineAfterExpanded = 0x0008, + LineAfterContracted = 0x0010, + LevelNumbers = 0x0040, + LineState = 0x0080, +}; + +enum class IdleStyling { + None = 0, + ToVisible = 1, + AfterVisible = 2, + All = 3, +}; + +enum class Wrap { + None = 0, + Word = 1, + Char = 2, + WhiteSpace = 3, +}; + +enum class WrapVisualFlag { + None = 0x0000, + End = 0x0001, + Start = 0x0002, + Margin = 0x0004, +}; + +enum class WrapVisualLocation { + Default = 0x0000, + EndByText = 0x0001, + StartByText = 0x0002, +}; + +enum class WrapIndentMode { + Fixed = 0, + Same = 1, + Indent = 2, + DeepIndent = 3, +}; + +enum class LineCache { + None = 0, + Caret = 1, + Page = 2, + Document = 3, +}; + +enum class PhasesDraw { + One = 0, + Two = 1, + Multiple = 2, +}; + +enum class FontQuality { + QualityMask = 0xF, + QualityDefault = 0, + QualityNonAntialiased = 1, + QualityAntialiased = 2, + QualityLcdOptimized = 3, +}; + +enum class MultiPaste { + Once = 0, + Each = 1, +}; + +enum class Accessibility { + Disabled = 0, + Enabled = 1, +}; + +enum class EdgeVisualStyle { + None = 0, + Line = 1, + Background = 2, + MultiLine = 3, +}; + +enum class PopUp { + Never = 0, + All = 1, + Text = 2, +}; + +enum class DocumentOption { + Default = 0, + StylesNone = 0x1, + TextLarge = 0x100, +}; + +enum class Status { + Ok = 0, + Failure = 1, + BadAlloc = 2, + WarnStart = 1000, + RegEx = 1001, +}; + +enum class VisiblePolicy { + Slop = 0x01, + Strict = 0x04, +}; + +enum class CaretPolicy { + Slop = 0x01, + Strict = 0x04, + Jumps = 0x10, + Even = 0x08, +}; + +enum class SelectionMode { + Stream = 0, + Rectangle = 1, + Lines = 2, + Thin = 3, +}; + +enum class CaseInsensitiveBehaviour { + RespectCase = 0, + IgnoreCase = 1, +}; + +enum class MultiAutoComplete { + Once = 0, + Each = 1, +}; + +enum class Ordering { + PreSorted = 0, + PerformSort = 1, + Custom = 2, +}; + +enum class CaretSticky { + Off = 0, + On = 1, + WhiteSpace = 2, +}; + +enum class CaretStyle { + Invisible = 0, + Line = 1, + Block = 2, + OverstrikeBar = 0, + OverstrikeBlock = 0x10, + InsMask = 0xF, + BlockAfter = 0x100, +}; + +enum class MarginOption { + None = 0, + SubLineSelect = 1, +}; + +enum class AnnotationVisible { + Hidden = 0, + Standard = 1, + Boxed = 2, + Indented = 3, +}; + +enum class UndoFlags { + None = 0, + MayCoalesce = 1, +}; + +enum class VirtualSpace { + None = 0, + RectangularSelection = 1, + UserAccessible = 2, + NoWrapLineStart = 4, +}; + +enum class Technology { + Default = 0, + DirectWrite = 1, + DirectWriteRetain = 2, + DirectWriteDC = 3, +}; + +enum class LineEndType { + Default = 0, + Unicode = 1, +}; + +enum class EOLAnnotationVisible { + Hidden = 0x0, + Standard = 0x1, + Boxed = 0x2, + Stadium = 0x100, + FlatCircle = 0x101, + AngleCircle = 0x102, + CircleFlat = 0x110, + Flats = 0x111, + AngleFlat = 0x112, + CircleAngle = 0x120, + FlatAngle = 0x121, + Angles = 0x122, +}; + +enum class Supports { + LineDrawsFinal = 0, + PixelDivisions = 1, + FractionalStrokeWidth = 2, + TranslucentStroke = 3, + PixelModification = 4, +}; + +enum class LineCharacterIndexType { + None = 0, + Utf32 = 1, + Utf16 = 2, +}; + +enum class TypeProperty { + Boolean = 0, + Integer = 1, + String = 2, +}; + +enum class ModificationFlags { + None = 0x0, + InsertText = 0x1, + DeleteText = 0x2, + ChangeStyle = 0x4, + ChangeFold = 0x8, + User = 0x10, + Undo = 0x20, + Redo = 0x40, + MultiStepUndoRedo = 0x80, + LastStepInUndoRedo = 0x100, + ChangeMarker = 0x200, + BeforeInsert = 0x400, + BeforeDelete = 0x800, + MultilineUndoRedo = 0x1000, + StartAction = 0x2000, + ChangeIndicator = 0x4000, + ChangeLineState = 0x8000, + ChangeMargin = 0x10000, + ChangeAnnotation = 0x20000, + Container = 0x40000, + LexerState = 0x80000, + InsertCheck = 0x100000, + ChangeTabStops = 0x200000, + ChangeEOLAnnotation = 0x400000, + EventMaskAll = 0x7FFFFF, +}; + +enum class Update { + None = 0x0, + Content = 0x1, + Selection = 0x2, + VScroll = 0x4, + HScroll = 0x8, +}; + +enum class FocusChange { + Change = 768, + Setfocus = 512, + Killfocus = 256, +}; + +enum class Keys { + Down = 300, + Up = 301, + Left = 302, + Right = 303, + Home = 304, + End = 305, + Prior = 306, + Next = 307, + Delete = 308, + Insert = 309, + Escape = 7, + Back = 8, + Tab = 9, + Return = 13, + Add = 310, + Subtract = 311, + Divide = 312, + Win = 313, + RWin = 314, + Menu = 315, +}; + +enum class KeyMod { + Norm = 0, + Shift = 1, + Ctrl = 2, + Alt = 4, + Super = 8, + Meta = 16, +}; + +enum class CompletionMethods { + FillUp = 1, + DoubleClick = 2, + Tab = 3, + Newline = 4, + Command = 5, +}; + +enum class CharacterSource { + DirectInput = 0, + TentativeInput = 1, + ImeResult = 2, +}; + +enum class Bidirectional { + Disabled = 0, + L2R = 1, + R2L = 2, +}; + +enum class Notification { + StyleNeeded = 2000, + CharAdded = 2001, + SavePointReached = 2002, + SavePointLeft = 2003, + ModifyAttemptRO = 2004, + Key = 2005, + DoubleClick = 2006, + UpdateUI = 2007, + Modified = 2008, + MacroRecord = 2009, + MarginClick = 2010, + NeedShown = 2011, + Painted = 2013, + UserListSelection = 2014, + URIDropped = 2015, + DwellStart = 2016, + DwellEnd = 2017, + Zoom = 2018, + HotSpotClick = 2019, + HotSpotDoubleClick = 2020, + CallTipClick = 2021, + AutoCSelection = 2022, + IndicatorClick = 2023, + IndicatorRelease = 2024, + AutoCCancelled = 2025, + AutoCCharDeleted = 2026, + HotSpotReleaseClick = 2027, + FocusIn = 2028, + FocusOut = 2029, + AutoCCompleted = 2030, + MarginRightClick = 2031, + AutoCSelectionChange = 2032, +}; +//--Autogenerated -- end of section automatically generated from Scintilla.iface + +using Position = intptr_t; +using Line = intptr_t; +using Colour = int; +using ColourAlpha = int; +using uptr_t = uintptr_t; +using sptr_t = intptr_t; + +//++Autogenerated -- start of section automatically generated from Scintilla.iface +//**1 \(\*\n\) +constexpr Position InvalidPosition = -1; +constexpr int CpUtf8 = 65001; +constexpr int MarkerMax = 31; +constexpr int MaskFolders = 0xFE000000; +constexpr int MaxMargin = 4; +constexpr int FontSizeMultiplier = 100; +constexpr int TimeForever = 10000000; +constexpr int KeywordsetMax = 8; + +//--Autogenerated -- end of section automatically generated from Scintilla.iface + +constexpr int IndicatorMax = static_cast<int>(IndicatorNumbers::Max); + +// Functions to manipulate fields from a MarkerOutline + +inline int operator<<(int i, MarkerOutline marker) noexcept { + return i << static_cast<int>(marker); +} + +// Functions to manipulate fields from a FindOption + +constexpr FindOption operator|(FindOption a, FindOption b) noexcept { + return static_cast<FindOption>(static_cast<int>(a) | static_cast<int>(b)); +} + +inline FindOption &operator|=(FindOption &self, FindOption a) noexcept { + self = self | a; + return self; +} + +// Functions to retrieve and manipulate fields from a FoldLevel + +constexpr FoldLevel operator&(FoldLevel lhs, FoldLevel rhs) noexcept { + return static_cast<FoldLevel>(static_cast<int>(lhs) & static_cast<int>(rhs)); +} + +constexpr FoldLevel LevelNumberPart(FoldLevel level) noexcept { + return level & FoldLevel::NumberMask; +} + +constexpr int LevelNumber(FoldLevel level) noexcept { + return static_cast<int>(LevelNumberPart(level)); +} + +constexpr bool LevelIsHeader(FoldLevel level) noexcept { + return (level & FoldLevel::HeaderFlag) == FoldLevel::HeaderFlag; +} + +constexpr bool LevelIsWhitespace(FoldLevel level) noexcept { + return (level & FoldLevel::WhiteFlag) == FoldLevel::WhiteFlag; +} + +// Functions to manipulate fields from a FoldFlag + +constexpr FoldFlag operator|(FoldFlag a, FoldFlag b) noexcept { + return static_cast<FoldFlag>(static_cast<int>(a) | static_cast<int>(b)); +} + +// Functions to manipulate fields from a FontQuality + +constexpr FontQuality operator&(FontQuality a, FontQuality b) noexcept { + return static_cast<FontQuality>(static_cast<int>(a) & static_cast<int>(b)); +} + +// Functions to manipulate fields from a DocumentOption + +constexpr DocumentOption operator|(DocumentOption a, DocumentOption b) noexcept { + return static_cast<DocumentOption>(static_cast<int>(a) | static_cast<int>(b)); +} + +// Functions to manipulate fields from a CaretPolicy + +constexpr CaretPolicy operator|(CaretPolicy a, CaretPolicy b) noexcept { + return static_cast<CaretPolicy>(static_cast<int>(a) | static_cast<int>(b)); +} + +// Functions to manipulate fields from a CaretStyle + +constexpr CaretStyle operator|(CaretStyle a, CaretStyle b) noexcept { + return static_cast<CaretStyle>(static_cast<int>(a) | static_cast<int>(b)); +} + +constexpr CaretStyle operator&(CaretStyle a, CaretStyle b) noexcept { + return static_cast<CaretStyle>(static_cast<int>(a) & static_cast<int>(b)); +} + +// Functions to manipulate fields from a LineEndType + +constexpr LineEndType operator&(LineEndType a, LineEndType b) noexcept { + return static_cast<LineEndType>(static_cast<int>(a) & static_cast<int>(b)); +} + +// Functions to manipulate fields from a LineCharacterIndexType + +constexpr LineCharacterIndexType operator|(LineCharacterIndexType a, LineCharacterIndexType b) noexcept { + return static_cast<LineCharacterIndexType>(static_cast<int>(a) | static_cast<int>(b)); +} + +// Functions to manipulate fields from a ModificationFlags + +constexpr ModificationFlags operator|(ModificationFlags a, ModificationFlags b) noexcept { + return static_cast<ModificationFlags>(static_cast<int>(a) | static_cast<int>(b)); +} + +constexpr ModificationFlags operator&(ModificationFlags a, ModificationFlags b) noexcept { + return static_cast<ModificationFlags>(static_cast<int>(a) & static_cast<int>(b)); +} + +inline ModificationFlags &operator|=(ModificationFlags &self, ModificationFlags a) noexcept { + self = self | a; + return self; +} + +// Functions to manipulate fields from a Update + +constexpr Update operator|(Update a, Update b) noexcept { + return static_cast<Update>(static_cast<int>(a) | static_cast<int>(b)); +} + +// Functions to manipulate fields from a KeyMod + +constexpr KeyMod operator|(KeyMod a, KeyMod b) noexcept { + return static_cast<KeyMod>(static_cast<int>(a) | static_cast<int>(b)); +} + +constexpr KeyMod operator&(KeyMod a, KeyMod b) noexcept { + return static_cast<KeyMod>(static_cast<int>(a) & static_cast<int>(b)); +} + +// Test if an enum class value has the bit flag(s) of test set. +template <typename T> +constexpr bool FlagSet(T value, T test) { + return (static_cast<int>(value) & static_cast<int>(test)) == static_cast<int>(test); +} + +} + +#endif |