1*8af74909SZhong Yang // Scintilla source code edit control 2*8af74909SZhong Yang /** @file MarginView.h 3*8af74909SZhong Yang ** Defines the appearance of the editor margin. 4*8af74909SZhong Yang **/ 5*8af74909SZhong Yang // Copyright 1998-2014 by Neil Hodgson <[email protected]> 6*8af74909SZhong Yang // The License.txt file describes the conditions under which this software may be distributed. 7*8af74909SZhong Yang 8*8af74909SZhong Yang #ifndef MARGINVIEW_H 9*8af74909SZhong Yang #define MARGINVIEW_H 10*8af74909SZhong Yang 11*8af74909SZhong Yang namespace Scintilla { 12*8af74909SZhong Yang 13*8af74909SZhong Yang void DrawWrapMarker(Surface *surface, PRectangle rcPlace, bool isEndMarker, ColourDesired wrapColour); 14*8af74909SZhong Yang 15*8af74909SZhong Yang typedef void (*DrawWrapMarkerFn)(Surface *surface, PRectangle rcPlace, bool isEndMarker, ColourDesired wrapColour); 16*8af74909SZhong Yang 17*8af74909SZhong Yang /** 18*8af74909SZhong Yang * MarginView draws the margins. 19*8af74909SZhong Yang */ 20*8af74909SZhong Yang class MarginView { 21*8af74909SZhong Yang public: 22*8af74909SZhong Yang std::unique_ptr<Surface> pixmapSelMargin; 23*8af74909SZhong Yang std::unique_ptr<Surface> pixmapSelPattern; 24*8af74909SZhong Yang std::unique_ptr<Surface> pixmapSelPatternOffset1; 25*8af74909SZhong Yang // Highlight current folding block 26*8af74909SZhong Yang HighlightDelimiter highlightDelimiter; 27*8af74909SZhong Yang 28*8af74909SZhong Yang int wrapMarkerPaddingRight; // right-most pixel padding of wrap markers 29*8af74909SZhong Yang /** Some platforms, notably PLAT_CURSES, do not support Scintilla's native 30*8af74909SZhong Yang * DrawWrapMarker function for drawing wrap markers. Allow those platforms to 31*8af74909SZhong Yang * override it instead of creating a new method in the Surface class that 32*8af74909SZhong Yang * existing platforms must implement as empty. */ 33*8af74909SZhong Yang DrawWrapMarkerFn customDrawWrapMarker; 34*8af74909SZhong Yang 35*8af74909SZhong Yang MarginView() noexcept; 36*8af74909SZhong Yang 37*8af74909SZhong Yang void DropGraphics(bool freeObjects); 38*8af74909SZhong Yang void AllocateGraphics(const ViewStyle &vsDraw); 39*8af74909SZhong Yang void RefreshPixMaps(Surface *surfaceWindow, WindowID wid, const ViewStyle &vsDraw); 40*8af74909SZhong Yang void PaintMargin(Surface *surface, Sci::Line topLine, PRectangle rc, PRectangle rcMargin, 41*8af74909SZhong Yang const EditModel &model, const ViewStyle &vs); 42*8af74909SZhong Yang }; 43*8af74909SZhong Yang 44*8af74909SZhong Yang } 45*8af74909SZhong Yang 46*8af74909SZhong Yang #endif 47