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,17 +40,15 @@ struct
val left = (left - halfWidth) / halfWidth
val right = (right - halfWidth) / halfWidth
val vec =
#[ left, top, r, g, b
, right, top, r, g, b
, left, bottom, r, g, b
, left, bottom, r, g, b
, right, bottom, r, g, b
, right, top, r, g, b
]
in
[vec]
#[ left, top, r, g, b
, right, top, r, g, b
, left, bottom, r, g, b
, left, bottom, r, g, b
, right, bottom, r, g, b
, right, top, r, g, b
]
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,19 +279,40 @@ struct
* else, just skip as usual *)
if absIdx <> cursorPos then
(* not in cursur *)
buildTextStringSearch
( pos + 1, str, acc, posX + xSpace, posY, startX
, tl, absIdx + 1, cursorPos, cursorAcc
, windowData, colourData
, searchHd, searchTl, searchPos, searchLen
)
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
, windowData, colourData
, searchHd, searchTl, searchPos, searchLen
)
else
(* in cursor *)
let
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

View File

@@ -64,7 +64,7 @@ struct
val app = AppType.init (lineGap, 1920, 1080)
(* todo: remove temp line below which tests search list *)
val app = BuildSearchList.build (app, 0, lineGap, "val")
val app = BuildSearchList.build (app, 0, lineGap, "val ")
(* create mailboxes for CML communication *)
val inputMailbox = Mailbox.mailbox ()

BIN
shf

Binary file not shown.