progress drawing spaces within search string, and drawing behind background of search string

This commit is contained in:
2024-11-15 09:50:35 +00:00
parent 025f9d2bf4
commit d5eb19f8d9
3 changed files with 59 additions and 26 deletions

View File

@@ -40,7 +40,7 @@ struct
val left = (left - halfWidth) / halfWidth
val right = (right - halfWidth) / halfWidth
val vec =
in
#[ left, top, r, g, b
, right, top, r, g, b
, left, bottom, r, g, b
@@ -49,8 +49,6 @@ struct
, right, bottom, r, g, b
, right, top, r, g, b
]
in
[vec]
end
(* builds text from a string with char-wrap.
@@ -106,7 +104,8 @@ struct
val {fw, fh, ...} = windowData
val {r, g, b, ...} = colourData
val cursorAcc = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorHd = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorAcc = cursorHd :: cursorAcc
in
buildTextString
( pos + 1, str, acc, posX + xSpace, posY, startX
@@ -129,7 +128,8 @@ struct
val {fw, fh, ...} = windowData
val {r, g, b, ...} = colourData
val cursorAcc = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorHd = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorAcc = cursorHd :: cursorAcc
in
buildTextString
( pos + 1, str, acc, startX, posY + ySpace, startX
@@ -184,7 +184,8 @@ struct
let
val {fw, fh, ...} = windowData
val {r, g, b, hr, hg, hb} = colourData
val cursorAcc = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorHd = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorAcc = cursorHd :: cursorAcc
in
if posX + xSpace < #w windowData then
let
@@ -278,6 +279,26 @@ struct
* else, just skip as usual *)
if absIdx <> cursorPos then
(* not in cursur *)
if isInSearchRange (absIdx, searchPos, searchHd, searchLen) then
(* draw *)
let
(* todo: temp colours *)
val r: Real32.real = 0.3
val g: Real32.real = 0.1
val b: Real32.real = 0.1
val {fw, fh, ...} = windowData
val space = buildCursor (posX, posY, fw, fh, r, g, b)
val cursorAcc = space :: cursorAcc
in
buildTextStringSearch
( pos + 1, str, acc, posX + xSpace, posY, startX
, tl, absIdx + 1, cursorPos, cursorAcc
, windowData, colourData
, searchHd, searchTl, searchPos, searchLen
)
end
else
buildTextStringSearch
( pos + 1, str, acc, posX + xSpace, posY, startX
, tl, absIdx + 1, cursorPos, cursorAcc
@@ -290,7 +311,8 @@ struct
val {fw, fh, ...} = windowData
val {r, g, b, ...} = colourData
val cursorAcc = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorHd = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorAcc = cursorHd :: cursorAcc
in
buildTextStringSearch
( pos + 1, str, acc, posX + xSpace, posY, startX
@@ -315,7 +337,8 @@ struct
val {fw, fh, ...} = windowData
val {r, g, b, ...} = colourData
val cursorAcc = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorHd = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorAcc = cursorHd :: cursorAcc
in
buildTextStringSearch
( pos + 1, str, acc, startX, posY + ySpace, startX
@@ -338,13 +361,22 @@ struct
val {fw, fh, ...} = windowData
(* todo: temp colours *)
val r: Real32.real = 0.5
val g: Real32.real = 0.5
val b: Real32.real = 0.5
val r: Real32.real = 0.7
val g: Real32.real = 0.7
val b: Real32.real = 0.7
(* build char vec *)
val chrVec =
chrFun (posX, posY, fontSize, fontSize, fw, fh, r, g, b)
val acc = chrVec :: acc
(* build cursor (behind text) vec *)
val r: Real32.real = 0.3
val g: Real32.real = 0.1
val b: Real32.real = 0.1
val space = buildCursor (posX, posY, fw, fh, r, g, b)
val cursorAcc = space :: cursorAcc
in
buildTextStringSearch
( pos + 1, str, acc, posX + xSpace, posY, startX
@@ -398,7 +430,8 @@ struct
let
val {fw, fh, ...} = windowData
val {r, g, b, hr, hg, hb} = colourData
val cursorAcc = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorHd = buildCursor (posX, posY, fw, fh, r, g ,b)
val cursorAcc = cursorHd :: cursorAcc
in
if posX + xSpace < #w windowData then
let

BIN
shf

Binary file not shown.