xref: /MusicPlayer2/scintilla/src/MarginView.h (revision 8af74909132ed5e696cb05b6689ae4baf14c1c96)
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