diff options
| author | nyamatongwe <unknown> | 2001-08-17 08:17:08 +0000 | 
|---|---|---|
| committer | nyamatongwe <unknown> | 2001-08-17 08:17:08 +0000 | 
| commit | aefc679df4ad0260c26f8992a6608d26c2bc1c44 (patch) | |
| tree | 62e34d71faff983c90dd12db8b1a147bfbbb3fb5 | |
| parent | 7b5687f084d82ba785e3a5f5a62427fe25b264ab (diff) | |
| download | scintilla-mirror-aefc679df4ad0260c26f8992a6608d26c2bc1c44.tar.gz | |
Made header blobs larger and odd number of pixels in size so that minus
and plus signs can be centred.
| -rw-r--r-- | src/LineMarker.cxx | 82 | 
1 files changed, 42 insertions, 40 deletions
| diff --git a/src/LineMarker.cxx b/src/LineMarker.cxx index 7414b5b4d..dc1468d83 100644 --- a/src/LineMarker.cxx +++ b/src/LineMarker.cxx @@ -10,12 +10,13 @@  #include "Scintilla.h"  #include "LineMarker.h" -static void DrawBox(Surface *surface, int centreX, int centreY, int armSize) { -	surface->MoveTo(centreX - armSize, centreY - armSize); -	surface->LineTo(centreX + armSize, centreY - armSize); -	surface->LineTo(centreX + armSize, centreY + armSize); -	surface->LineTo(centreX - armSize, centreY + armSize); -	surface->LineTo(centreX - armSize, centreY - armSize); +static void DrawBox(Surface *surface, int centreX, int centreY, int armSize, Colour fore, Colour back) { +	PRectangle rc; +	rc.left = centreX - armSize; +	rc.top = centreY - armSize; +	rc.right = centreX + armSize + 1; +	rc.bottom = centreY + armSize + 1; +	surface->RectangleDraw(rc, back, fore);  }  static void DrawCircle(Surface *surface, int centreX, int centreY, int armSize, Colour fore, Colour back) { @@ -27,16 +28,16 @@ static void DrawCircle(Surface *surface, int centreX, int centreY, int armSize,  	surface->Ellipse(rcCircle, back, fore);  } -static void DrawPlus(Surface *surface, int centreX, int centreY, int armSize) { -	surface->MoveTo(centreX - armSize + 2, centreY); -	surface->LineTo(centreX + armSize - 2 + 1, centreY); -	surface->MoveTo(centreX, centreY - armSize + 2); -	surface->LineTo(centreX, centreY + armSize - 2 + 1); +static void DrawPlus(Surface *surface, int centreX, int centreY, int armSize, Colour fore) { +	PRectangle rcV(centreX, centreY - armSize + 2, centreX + 1, centreY + armSize - 2 + 1); +	surface->FillRectangle(rcV, fore); +	PRectangle rcH(centreX - armSize + 2, centreY, centreX + armSize - 2 + 1, centreY+1); +	surface->FillRectangle(rcH, fore);  } -static void DrawMinus(Surface *surface, int centreX, int centreY, int armSize) { -	surface->MoveTo(centreX - armSize + 2, centreY); -	surface->LineTo(centreX + armSize - 2 + 1, centreY); +static void DrawMinus(Surface *surface, int centreX, int centreY, int armSize, Colour fore) { +	PRectangle rcH(centreX - armSize + 2, centreY, centreX + armSize - 2 + 1, centreY+1); +	surface->FillRectangle(rcH, fore);  }  void LineMarker::Draw(Surface *surface, PRectangle &rcWhole) { @@ -50,6 +51,7 @@ void LineMarker::Draw(Surface *surface, PRectangle &rcWhole) {  	int centreY = (rc.bottom + rc.top) / 2;  	int dimOn2 = minDim / 2;  	int dimOn4 = minDim / 4; +	int blobSize = dimOn2-1;  	int armSize = dimOn2-2;  	if (rc.Width() > (rc.Height() * 2)) {  		// Wide column is line number so move to left to try to avoid overlapping number @@ -160,73 +162,73 @@ void LineMarker::Draw(Surface *surface, PRectangle &rcWhole) {  	} else if (markType == SC_MARK_BOXPLUS) {  		surface->PenColour(back.allocated); -		DrawBox(surface, centreX, centreY, armSize); -		DrawPlus(surface, centreX, centreY, armSize); +		DrawBox(surface, centreX, centreY, blobSize, fore.allocated, back.allocated); +		DrawPlus(surface, centreX, centreY, blobSize, back.allocated);  	} else if (markType == SC_MARK_BOXPLUSCONNECTED) {  		surface->PenColour(back.allocated); -		DrawBox(surface, centreX, centreY, armSize); -		DrawPlus(surface, centreX, centreY, armSize); +		DrawBox(surface, centreX, centreY, blobSize, fore.allocated, back.allocated); +		DrawPlus(surface, centreX, centreY, blobSize, back.allocated); -		surface->MoveTo(centreX, centreY + armSize); +		surface->MoveTo(centreX, centreY + blobSize);  		surface->LineTo(centreX, rcWhole.bottom);  		surface->MoveTo(centreX, rcWhole.top); -		surface->LineTo(centreX, centreY - armSize); +		surface->LineTo(centreX, centreY - blobSize);  	} else if (markType == SC_MARK_BOXMINUS) {  		surface->PenColour(back.allocated); -		DrawBox(surface, centreX, centreY, armSize); -		DrawMinus(surface, centreX, centreY, armSize); +		DrawBox(surface, centreX, centreY, blobSize, fore.allocated, back.allocated); +		DrawMinus(surface, centreX, centreY, blobSize, back.allocated); -		surface->MoveTo(centreX, centreY + armSize); +		surface->MoveTo(centreX, centreY + blobSize);  		surface->LineTo(centreX, rcWhole.bottom);  	} else if (markType == SC_MARK_BOXMINUSCONNECTED) {  		surface->PenColour(back.allocated); -		DrawBox(surface, centreX, centreY, armSize); -		DrawMinus(surface, centreX, centreY, armSize); +		DrawBox(surface, centreX, centreY, blobSize, fore.allocated, back.allocated); +		DrawMinus(surface, centreX, centreY, blobSize, back.allocated); -		surface->MoveTo(centreX, centreY + armSize); +		surface->MoveTo(centreX, centreY + blobSize);  		surface->LineTo(centreX, rcWhole.bottom);  		surface->MoveTo(centreX, rcWhole.top); -		surface->LineTo(centreX, centreY - armSize); +		surface->LineTo(centreX, centreY - blobSize);  	} else if (markType == SC_MARK_CIRCLEPLUS) { -		DrawCircle(surface, centreX, centreY, armSize, fore.allocated, back.allocated); +		DrawCircle(surface, centreX, centreY, blobSize, fore.allocated, back.allocated);  		surface->PenColour(back.allocated); -		DrawPlus(surface, centreX, centreY, armSize); +		DrawPlus(surface, centreX, centreY, blobSize, back.allocated);  	} else if (markType == SC_MARK_CIRCLEPLUSCONNECTED) { -		DrawCircle(surface, centreX, centreY, armSize, fore.allocated, back.allocated); +		DrawCircle(surface, centreX, centreY, blobSize, fore.allocated, back.allocated);  		surface->PenColour(back.allocated); -		DrawPlus(surface, centreX, centreY, armSize); +		DrawPlus(surface, centreX, centreY, blobSize, back.allocated); -		surface->MoveTo(centreX, centreY + armSize); +		surface->MoveTo(centreX, centreY + blobSize);  		surface->LineTo(centreX, rcWhole.bottom);  		surface->MoveTo(centreX, rcWhole.top); -		surface->LineTo(centreX, centreY - armSize); +		surface->LineTo(centreX, centreY - blobSize);  	} else if (markType == SC_MARK_CIRCLEMINUS) { -		DrawCircle(surface, centreX, centreY, armSize, fore.allocated, back.allocated); +		DrawCircle(surface, centreX, centreY, blobSize, fore.allocated, back.allocated);  		surface->PenColour(back.allocated); -		DrawMinus(surface, centreX, centreY, armSize); +		DrawMinus(surface, centreX, centreY, blobSize, back.allocated); -		surface->MoveTo(centreX, centreY + armSize); +		surface->MoveTo(centreX, centreY + blobSize);  		surface->LineTo(centreX, rcWhole.bottom);  	} else if (markType == SC_MARK_CIRCLEMINUSCONNECTED) { -		DrawCircle(surface, centreX, centreY, armSize, fore.allocated, back.allocated); +		DrawCircle(surface, centreX, centreY, blobSize, fore.allocated, back.allocated);  		surface->PenColour(back.allocated); -		DrawMinus(surface, centreX, centreY, armSize); +		DrawMinus(surface, centreX, centreY, blobSize, back.allocated); -		surface->MoveTo(centreX, centreY + armSize); +		surface->MoveTo(centreX, centreY + blobSize);  		surface->LineTo(centreX, rcWhole.bottom);  		surface->MoveTo(centreX, rcWhole.top); -		surface->LineTo(centreX, centreY - armSize); +		surface->LineTo(centreX, centreY - blobSize);  	} else { // SC_MARK_SHORTARROW  		Point pts[] = { | 
