diff options
Diffstat (limited to 'src/LineMarker.cxx')
| -rw-r--r-- | src/LineMarker.cxx | 31 | 
1 files changed, 31 insertions, 0 deletions
| diff --git a/src/LineMarker.cxx b/src/LineMarker.cxx index df8c3d55a..9794f523c 100644 --- a/src/LineMarker.cxx +++ b/src/LineMarker.cxx @@ -514,6 +514,37 @@ void LineMarker::Draw(Surface *surface, const PRectangle &rcWhole, const Font *f  		}  		break; +	case MarkerSymbol::Bar: { +			PRectangle rcBar = rcWhole; +			const XYPOSITION widthBar = std::floor(rcWhole.Width() / 3.0); +			rcBar.left = centreX - std::floor(widthBar / 2.0); +			rcBar.right = rcBar.left + widthBar; +			surface->SetClip(rcWhole); +			switch (part) { +			case LineMarker::FoldPart::headWithTail: +				surface->RectangleDraw(rcBar, FillStroke(back, fore, strokeWidth)); +				break; +			case LineMarker::FoldPart::head: +				rcBar.bottom += 5; +				surface->RectangleDraw(rcBar, FillStroke(back, fore, strokeWidth)); +				break; +			case LineMarker::FoldPart::tail: +				rcBar.top -= 5; +				surface->RectangleDraw(rcBar, FillStroke(back, fore, strokeWidth)); +				break; +			case LineMarker::FoldPart::body: +				rcBar.top -= 5; +				rcBar.bottom += 5; +				surface->RectangleDraw(rcBar, FillStroke(back, fore, strokeWidth)); +				break; +			default: +				break; +			} +			surface->PopClip(); +		} +		break; + +  	case MarkerSymbol::Bookmark: {  			const XYPOSITION halfHeight = std::floor(minDim / 3);  			Point pts[] = { | 
