aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/src/menu/UMenuText.pas
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/src/menu/UMenuText.pas')
-rw-r--r--cmake/src/menu/UMenuText.pas57
1 files changed, 25 insertions, 32 deletions
diff --git a/cmake/src/menu/UMenuText.pas b/cmake/src/menu/UMenuText.pas
index b5507327..ab180b77 100644
--- a/cmake/src/menu/UMenuText.pas
+++ b/cmake/src/menu/UMenuText.pas
@@ -45,8 +45,8 @@ type
TText = class
private
SelectBool: boolean;
- TextString: string;
- TextTiles: array of string;
+ TextString: UTF8String;
+ TextTiles: array of UTF8String;
STicks: cardinal;
SelectBlink: boolean;
@@ -75,22 +75,23 @@ type
procedure SetSelect(Value: boolean);
property Selected: boolean read SelectBool write SetSelect;
- procedure SetText(Value: string);
- property Text: string read TextString write SetText;
+ procedure SetText(Value: UTF8String);
+ property Text: UTF8String read TextString write SetText;
- procedure DeleteLastL; // procedure to delete last letter
+ procedure DeleteLastLetter; //< Deletes the rightmost letter
procedure Draw;
constructor Create; overload;
- constructor Create(X, Y: real; Text: string); overload;
- constructor Create(ParX, ParY, ParW: real; ParStyle: integer; ParSize, ParColR, ParColG, ParColB: real; ParAlign: integer; ParText: string; ParReflection: boolean; ParReflectionSpacing: real; ParZ: real); overload;
+ constructor Create(X, Y: real; const Text: UTF8String); overload;
+ constructor Create(ParX, ParY, ParW: real; ParStyle: integer; ParSize, ParColR, ParColG, ParColB: real; ParAlign: integer; const ParText: UTF8String; ParReflection: boolean; ParReflectionSpacing: real; ParZ: real); overload;
end;
implementation
uses
- StrUtils,
- UGraphic;
+ UGraphic,
+ UUnicodeUtils,
+ StrUtils;
procedure TText.SetSelect(Value: boolean);
begin
@@ -101,7 +102,7 @@ begin
STicks := SDL_GetTicks() div 550;
end;
-procedure TText.SetText(Value: string);
+procedure TText.SetText(Value: UTF8String);
var
NextPos: cardinal; // next pos of a space etc.
LastPos: cardinal; // last pos "
@@ -244,23 +245,15 @@ begin
AddBreak(LastBreak, Length(Value)+1);
end;
-procedure TText.DeleteLastL;
-var
- S: string;
- L: integer;
+procedure TText.DeleteLastLetter;
begin
- S := TextString;
- L := Length(S);
- if (L > 0) then
- SetLength(S, L-1);
-
- SetText(S);
+ SetText(UTF8Copy(TextString, 1, LengthUTF8(TextString)-1));
end;
procedure TText.Draw;
var
X2, Y2: real;
- Text2: string;
+ Text2: UTF8String;
I: integer;
Ticks: cardinal;
begin
@@ -304,7 +297,7 @@ begin
SetFontPos(X2, Y);
glPrint(Text2);
- SetFontStyle(0); // reset to default
+ SetFontStyle(ftNormal); // reset to default
end
else
begin}
@@ -333,12 +326,12 @@ begin
{if Size >= 10 then
Y2 := Y2 + Size * 0.93
else}
- if (Style = 1) then
+ if (Style = ftBold) then
Y2 := Y2 + Size * 0.93
else
Y2 := Y2 + Size * 0.72;
end;
- SetFontStyle(0); // reset to default
+ SetFontStyle(ftNormal); // reset to default
//end;
end;
@@ -349,19 +342,19 @@ begin
Create(0, 0, '');
end;
-constructor TText.Create(X, Y: real; Text: string);
+constructor TText.Create(X, Y: real; const Text: UTF8String);
begin
- Create(X, Y, 0, 0, 30, 0, 0, 0, 0, Text, false, 0, 0);
+ Create(X, Y, 0, ftNormal, 30, 0, 0, 0, 0, Text, false, 0, 0);
end;
constructor TText.Create(ParX, ParY, ParW: real;
ParStyle: integer;
- ParSize, ParColR, ParColG, ParColB: real;
- ParAlign: integer;
- ParText: string;
- ParReflection: boolean;
- ParReflectionSpacing: real;
- ParZ: real);
+ ParSize, ParColR, ParColG, ParColB: real;
+ ParAlign: integer;
+ const ParText: UTF8String;
+ ParReflection: boolean;
+ ParReflectionSpacing: real;
+ ParZ: real);
begin
inherited Create;
Alpha := 1;