+ unicode fixes in TCluster.DrawMultiBox

git-svn-id: branches/unicodekvm@48634 -
This commit is contained in:
nickysn 2021-02-10 21:44:19 +00:00
parent 1c9c84d01e
commit af4d301af9

View File

@ -271,7 +271,7 @@ TYPE
PROCEDURE Press (Item: Sw_Integer); Virtual;
PROCEDURE MovedTo (Item: Sw_Integer); Virtual;
PROCEDURE SetState (AState: Word; Enable: Boolean); Virtual;
PROCEDURE DrawMultiBox (Const Icon, Marker: String);
PROCEDURE DrawMultiBox (Const Icon, Marker: Sw_String);
PROCEDURE DrawBox (Const Icon: String; Marker: Char);
PROCEDURE SetButtonState (AMask: Longint; Enable: Boolean);
PROCEDURE GetData (Var Rec); Virtual;
@ -2274,7 +2274,7 @@ END;
{--TCluster-----------------------------------------------------------------}
{ DrawMultiBox -> Platforms DOS/DPMI/WIN/NT - Updated 05Jun98 LdB }
{---------------------------------------------------------------------------}
PROCEDURE TCluster.DrawMultiBox (Const Icon, Marker: String);
PROCEDURE TCluster.DrawMultiBox (Const Icon, Marker: Sw_String);
VAR I, J, Cur, Col: Sw_Integer; CNorm, CSel, CDis, Color: Word; B: TDrawBuffer;
BEGIN
CNorm := GetColor($0301); { Normal colour }
@ -2298,15 +2298,26 @@ BEGIN
MoveChar(B[Col], ' ', Byte(Color),
Size.X-Col); { Set this colour }
MoveStr(B[Col], Icon, Byte(Color)); { Transfer icon string }
{$ifdef FV_UNICODE}
B[Col+2].ExtendedGraphemeCluster := Marker[
MultiMark(Cur) + 1]; { Transfer marker }
{$else FV_UNICODE}
WordRec(B[Col+2]).Lo := Byte(Marker[
MultiMark(Cur) + 1]); { Transfer marker }
{$endif FV_UNICODE}
MoveCStr(B[Col+5], PString(Strings.At(
Cur))^, Color); { Transfer item string }
If ShowMarkers AND (State AND sfFocused <> 0)
AND (Cur = Sel) Then Begin { Current is selected }
{$ifdef FV_UNICODE}
B[Col].ExtendedGraphemeCluster := SpecialChars[0];
B[Column(Cur+Size.Y)-1].ExtendedGraphemeCluster
:= SpecialChars[1]; { Set special character }
{$else FV_UNICODE}
WordRec(B[Col]).Lo := Byte(SpecialChars[0]);
WordRec(B[Column(Cur+Size.Y)-1]).Lo
WordRec(B[Column(Cur+Size.Y)-1]).Lo
:= Byte(SpecialChars[1]); { Set special character }
{$endif FV_UNICODE}
End;
End;
End;