forked from TotallyGamerJet/clay
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadditional.go
80 lines (67 loc) · 1.5 KB
/
additional.go
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
74
75
76
77
78
79
80
package clay
import "unsafe"
func (s String) String() string {
return unsafe.String(s.Chars, s.Length)
}
func (s StringSlice) String() string {
return unsafe.String(s.Chars, s.Length)
}
func ToString(s string) String {
return String{Length: int32(len(s)), Chars: unsafe.StringData(s)}
}
func ID(label string) ElementId {
return __HashString(ToString(label), 0, 0)
}
func PaddingAll(padding uint16) Padding {
return Padding{
padding,
padding,
padding,
padding,
}
}
func SizingGrow(sz float32) SizingAxis {
return SizingAxis{
Size: struct {
MinMax SizingMinMax
Percent float32
}{
MinMax: SizingMinMax{sz, sz},
},
Type: __SIZING_TYPE_GROW}
}
func SizingFixed(sz float32) SizingAxis {
return SizingAxis{
Size: struct {
MinMax SizingMinMax
Percent float32
}{
MinMax: SizingMinMax{sz, sz},
},
Type: __SIZING_TYPE_FIXED}
}
func CornerRadiusAll(radius float32) CornerRadius {
return CornerRadius{
radius,
radius,
radius,
radius,
}
}
// TODO: add generic iterator functions for types with [type]_GetValue functions that are converted into methods
func UI() func(decl ElementDeclaration, children func()) {
__OpenElement()
return func(decl ElementDeclaration, children func()) {
__ConfigureOpenElement(decl)
defer __CloseElement()
if children != nil {
children()
}
}
}
func Text(text String, config *TextElementConfig) {
__OpenTextElement(text, config)
}
func TextConfig(config TextElementConfig) *TextElementConfig {
return __StoreTextElementConfig(config)
}