progress drawing spaces within search string, and drawing behind background of search string
This commit is contained in:
@@ -40,17 +40,15 @@ struct
|
|||||||
val left = (left - halfWidth) / halfWidth
|
val left = (left - halfWidth) / halfWidth
|
||||||
val right = (right - 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
|
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
|
end
|
||||||
|
|
||||||
(* builds text from a string with char-wrap.
|
(* builds text from a string with char-wrap.
|
||||||
@@ -106,7 +104,8 @@ struct
|
|||||||
val {fw, fh, ...} = windowData
|
val {fw, fh, ...} = windowData
|
||||||
val {r, g, b, ...} = colourData
|
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
|
in
|
||||||
buildTextString
|
buildTextString
|
||||||
( pos + 1, str, acc, posX + xSpace, posY, startX
|
( pos + 1, str, acc, posX + xSpace, posY, startX
|
||||||
@@ -129,7 +128,8 @@ struct
|
|||||||
val {fw, fh, ...} = windowData
|
val {fw, fh, ...} = windowData
|
||||||
val {r, g, b, ...} = colourData
|
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
|
in
|
||||||
buildTextString
|
buildTextString
|
||||||
( pos + 1, str, acc, startX, posY + ySpace, startX
|
( pos + 1, str, acc, startX, posY + ySpace, startX
|
||||||
@@ -184,7 +184,8 @@ struct
|
|||||||
let
|
let
|
||||||
val {fw, fh, ...} = windowData
|
val {fw, fh, ...} = windowData
|
||||||
val {r, g, b, hr, hg, hb} = colourData
|
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
|
in
|
||||||
if posX + xSpace < #w windowData then
|
if posX + xSpace < #w windowData then
|
||||||
let
|
let
|
||||||
@@ -278,19 +279,40 @@ struct
|
|||||||
* else, just skip as usual *)
|
* else, just skip as usual *)
|
||||||
if absIdx <> cursorPos then
|
if absIdx <> cursorPos then
|
||||||
(* not in cursur *)
|
(* not in cursur *)
|
||||||
buildTextStringSearch
|
if isInSearchRange (absIdx, searchPos, searchHd, searchLen) then
|
||||||
( pos + 1, str, acc, posX + xSpace, posY, startX
|
(* draw *)
|
||||||
, tl, absIdx + 1, cursorPos, cursorAcc
|
let
|
||||||
, windowData, colourData
|
(* todo: temp colours *)
|
||||||
, searchHd, searchTl, searchPos, searchLen
|
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
|
else
|
||||||
(* in cursor *)
|
(* in cursor *)
|
||||||
let
|
let
|
||||||
val {fw, fh, ...} = windowData
|
val {fw, fh, ...} = windowData
|
||||||
val {r, g, b, ...} = colourData
|
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
|
in
|
||||||
buildTextStringSearch
|
buildTextStringSearch
|
||||||
( pos + 1, str, acc, posX + xSpace, posY, startX
|
( pos + 1, str, acc, posX + xSpace, posY, startX
|
||||||
@@ -315,7 +337,8 @@ struct
|
|||||||
val {fw, fh, ...} = windowData
|
val {fw, fh, ...} = windowData
|
||||||
val {r, g, b, ...} = colourData
|
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
|
in
|
||||||
buildTextStringSearch
|
buildTextStringSearch
|
||||||
( pos + 1, str, acc, startX, posY + ySpace, startX
|
( pos + 1, str, acc, startX, posY + ySpace, startX
|
||||||
@@ -338,13 +361,22 @@ struct
|
|||||||
val {fw, fh, ...} = windowData
|
val {fw, fh, ...} = windowData
|
||||||
|
|
||||||
(* todo: temp colours *)
|
(* todo: temp colours *)
|
||||||
val r: Real32.real = 0.5
|
val r: Real32.real = 0.7
|
||||||
val g: Real32.real = 0.5
|
val g: Real32.real = 0.7
|
||||||
val b: Real32.real = 0.5
|
val b: Real32.real = 0.7
|
||||||
|
|
||||||
|
(* build char vec *)
|
||||||
val chrVec =
|
val chrVec =
|
||||||
chrFun (posX, posY, fontSize, fontSize, fw, fh, r, g, b)
|
chrFun (posX, posY, fontSize, fontSize, fw, fh, r, g, b)
|
||||||
val acc = chrVec :: acc
|
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
|
in
|
||||||
buildTextStringSearch
|
buildTextStringSearch
|
||||||
( pos + 1, str, acc, posX + xSpace, posY, startX
|
( pos + 1, str, acc, posX + xSpace, posY, startX
|
||||||
@@ -398,7 +430,8 @@ struct
|
|||||||
let
|
let
|
||||||
val {fw, fh, ...} = windowData
|
val {fw, fh, ...} = windowData
|
||||||
val {r, g, b, hr, hg, hb} = colourData
|
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
|
in
|
||||||
if posX + xSpace < #w windowData then
|
if posX + xSpace < #w windowData then
|
||||||
let
|
let
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ struct
|
|||||||
val app = AppType.init (lineGap, 1920, 1080)
|
val app = AppType.init (lineGap, 1920, 1080)
|
||||||
|
|
||||||
(* todo: remove temp line below which tests search list *)
|
(* 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 *)
|
(* create mailboxes for CML communication *)
|
||||||
val inputMailbox = Mailbox.mailbox ()
|
val inputMailbox = Mailbox.mailbox ()
|
||||||
|
|||||||
Reference in New Issue
Block a user