-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathFCheckBox.uc
73 lines (61 loc) · 1.84 KB
/
FCheckBox.uc
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
69
70
71
72
73
/* ========================================================
* Copyright 2012-2013 Eliot van Uytfanghe
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================
* FCheckBox: A simple button like component but instead toogles @bChecked and triggers OnChecked,
* - which is useful to setup boolean configurations such as "Enable Bloom".
* ======================================================== */
class FCheckBox extends FLabel;
var(CheckBox, Usage) bool bChecked;
delegate OnChecked( FComponent sender );
function Free()
{
super.Free();
OnChecked = none;
}
protected function RenderComponent( Canvas C )
{
super(FComponent).RenderComponent( C );
RenderBackground( C, GetImageColor() );
if( Text != "" )
{
TextDecoration = bChecked ? default.TextDecoration : D_Overlined;
RenderLabel( C, PosX, PosY, SizeX, SizeY, GetStateColor( FLabelStyle(Style).TextColor ) );
}
}
function Click( FComponent sender, optional bool bRight )
{
Checked( !IsChecked() );
}
function bool IsChecked()
{
return bChecked;
}
final function Checked( bool c )
{
bChecked = c;
OnChecked( self );
}
defaultproperties
{
OnClick=Click
Text="CheckBox"
TextAlign=TA_Left
TextDecorationColor=(R=200,G=0,B=0,A=128)
TextDecorationSize=3
StyleNames.Add(CheckBox)
bEnabled=true
bEnableClick=true
bEnableCollision=true
}