2 ** Visual elements added over text.
4 // Copyright 1998-2007 by Neil Hodgson <neilh@scintilla.org>
5 // The License.txt file describes the conditions under which this software may be distributed.
10 namespace Scintilla::Internal
{
14 virtual ~IDecoration() {}
15 virtual bool Empty() const noexcept
= 0;
16 virtual int Indicator() const noexcept
= 0;
17 virtual Sci::Position
Length() const noexcept
= 0;
18 virtual int ValueAt(Sci::Position position
) const noexcept
= 0;
19 virtual Sci::Position
StartRun(Sci::Position position
) const noexcept
= 0;
20 virtual Sci::Position
EndRun(Sci::Position position
) const noexcept
= 0;
21 virtual void SetValueAt(Sci::Position position
, int value
) = 0;
22 virtual void InsertSpace(Sci::Position position
, Sci::Position insertLength
) = 0;
23 virtual Sci::Position
Runs() const noexcept
= 0;
26 class IDecorationList
{
28 virtual ~IDecorationList() {}
30 virtual const std::vector
<const IDecoration
*> &View() const noexcept
= 0;
32 virtual void SetCurrentIndicator(int indicator
) = 0;
33 virtual int GetCurrentIndicator() const noexcept
= 0;
35 virtual void SetCurrentValue(int value
) noexcept
= 0;
36 virtual int GetCurrentValue() const noexcept
= 0;
38 // Returns with changed=true if some values may have changed
39 virtual FillResult
<Sci::Position
> FillRange(Sci::Position position
, int value
, Sci::Position fillLength
) = 0;
40 virtual void InsertSpace(Sci::Position position
, Sci::Position insertLength
) = 0;
41 virtual void DeleteRange(Sci::Position position
, Sci::Position deleteLength
) = 0;
42 virtual void DeleteLexerDecorations() = 0;
44 virtual int AllOnFor(Sci::Position position
) const noexcept
= 0;
45 virtual int ValueAt(int indicator
, Sci::Position position
) noexcept
= 0;
46 virtual Sci::Position
Start(int indicator
, Sci::Position position
) noexcept
= 0;
47 virtual Sci::Position
End(int indicator
, Sci::Position position
) noexcept
= 0;
49 virtual bool ClickNotified() const noexcept
= 0;
50 virtual void SetClickNotified(bool notified
) noexcept
= 0;
53 std::unique_ptr
<IDecoration
> DecorationCreate(bool largeDocument
, int indicator
);
55 std::unique_ptr
<IDecorationList
> DecorationListCreate(bool largeDocument
);