blob: 5c9045a7cedca834b09127582a1546a1b31c9329 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
unit UMenuButtonCollection;
interface
uses UMenuButton;
type
//----------------
//TButtonCollection
//No Extra Attributes or Functions ATM
//----------------
AButton = Array of TButton;
PAButton = ^AButton;
TButtonCollection = class(TButton)
//num of the First Button, that can be Selected
FirstChild: Byte;
CountChilds: Byte;
ScreenButton: PAButton;
procedure SetSelect(Value : Boolean); override;
procedure Draw; override;
end;
implementation
procedure TButtonCollection.SetSelect(Value : Boolean);
var I: Integer;
begin
inherited;
//Set Visible for Every Button that is a Child of this ButtonCollection
if (Not Fade) then
For I := 0 to High(ScreenButton^) do
if (ScreenButton^[I].Parent = Parent) then
ScreenButton^[I].Visible := Value;
end;
procedure TButtonCollection.Draw;
var I, J: Integer;
begin
inherited;
//If fading is activated, Fade Child Buttons
if (Fade) then
begin
For I := 0 to High(ScreenButton^) do
if (ScreenButton^[I].Parent = Parent) then
begin
if (FadeProgress < 0.5) then
begin
ScreenButton^[I].Visible := SelectBool;
For J := 0 to High(ScreenButton^[I].Text) do
ScreenButton^[I].Text[J].Visible := SelectBool;
end
else
begin
ScreenButton^[I].Texture.Alpha := (FadeProgress-0.666)*3;
For J := 0 to High(ScreenButton^[I].Text) do
ScreenButton^[I].Text[J].Alpha := (FadeProgress-0.666)*3;
end;
end;
end;
end;
end.
|