CEDIT: optional highlighting of operators and delimiters

git-svn-id: svn://kolibrios.org@9193 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Anton Krotov
2021-09-15 21:40:33 +00:00
parent 93b5078632
commit 7524609331
6 changed files with 79 additions and 66 deletions
+10 -6
View File
@@ -19,7 +19,7 @@
MODULE Graph;
IMPORT SYSTEM, K := KOSAPI, Lines;
IMPORT SYSTEM, K := KOSAPI, Lines, Languages;
CONST
@@ -247,11 +247,11 @@ BEGIN
END clear;
PROCEDURE TextOut* (canvas: tCanvas; x, y: INTEGER; text: INTEGER; n: INTEGER);
PROCEDURE TextOut* (canvas: tCanvas; x, y: INTEGER; text: INTEGER; n: INTEGER; delimColor: INTEGER);
CONST
WCHAR_SIZE = 2;
VAR
color, i: INTEGER;
color, i, ecx: INTEGER;
c: WCHAR;
BEGIN
IF (0 <= y) & (y <= canvas.height - canvas.font.height - 1) THEN
@@ -271,13 +271,17 @@ BEGIN
WHILE n > 0 DO
SYSTEM.GET(text + i*WCHAR_SIZE, c);
IF ~Lines.isSpace(c) THEN
K.sysfunc6(4, x*65536 + y, LSL(28H + canvas.font.size, 24) + canvas.textColor, SYSTEM.ADR(c), 1, canvas.bitmap - 8)
IF Languages.isDelim(c) THEN
ecx := LSL(28H + canvas.font.size, 24) + delimColor
ELSE
ecx := LSL(28H + canvas.font.size, 24) + canvas.textColor
END;
K.sysfunc6(4, x*65536 + y, ecx, SYSTEM.ADR(c), 1, canvas.bitmap - 8)
END;
INC(x, canvas.font.width);
INC(i);
DEC(n)
END
(*K.sysfunc6(4, x*65536 + y, LSL(28H + canvas.font.size, 24) + canvas.textColor, text + i*WCHAR_SIZE, n, canvas.bitmap - 8)*)
END
END
END TextOut;
@@ -285,7 +289,7 @@ END TextOut;
PROCEDURE TextOut2* (canvas: tCanvas; x, y: INTEGER; text: ARRAY OF WCHAR; n: INTEGER);
BEGIN
TextOut(canvas, x, y, SYSTEM.ADR(text[0]), n)
TextOut(canvas, x, y, SYSTEM.ADR(text[0]), n, canvas.textColor)
END TextOut2;