yoga_layout 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/Gemfile +6 -0
- data/README.md +35 -0
- data/Rakefile +176 -0
- data/bin/console +10 -0
- data/bin/demo +89 -0
- data/bin/setup +8 -0
- data/ext/yoga_layout/extconf.rb +3 -0
- data/lib/yoga_layout.rb +33 -0
- data/lib/yoga_layout/bindings.rb +39 -0
- data/lib/yoga_layout/bindings/enums.rb +131 -0
- data/lib/yoga_layout/bindings/misc.rb +23 -0
- data/lib/yoga_layout/bindings/typedefs.rb +51 -0
- data/lib/yoga_layout/bindings/ygconfig.rb +37 -0
- data/lib/yoga_layout/bindings/ygnode.rb +59 -0
- data/lib/yoga_layout/bindings/ygnode_properties.rb +93 -0
- data/lib/yoga_layout/config.rb +56 -0
- data/lib/yoga_layout/node.rb +333 -0
- data/lib/yoga_layout/version.rb +3 -0
- data/lib/yoga_layout/wrapper.rb +103 -0
- data/yoga_layout.gemspec +45 -0
- metadata +175 -0
@@ -0,0 +1,131 @@
|
|
1
|
+
# This file is auto-generated by //enums.py
|
2
|
+
# Do not edit by hand!
|
3
|
+
module YogaLayout
|
4
|
+
module Bindings
|
5
|
+
|
6
|
+
Align = enum(
|
7
|
+
:auto,
|
8
|
+
:flex_start,
|
9
|
+
:center,
|
10
|
+
:flex_end,
|
11
|
+
:stretch,
|
12
|
+
:baseline,
|
13
|
+
:space_between,
|
14
|
+
:space_around,
|
15
|
+
)
|
16
|
+
typedef Align, :YGAlign
|
17
|
+
|
18
|
+
Dimension = enum(
|
19
|
+
:width,
|
20
|
+
:height,
|
21
|
+
)
|
22
|
+
typedef Dimension, :YGDimension
|
23
|
+
|
24
|
+
Direction = enum(
|
25
|
+
:inherit,
|
26
|
+
:ltr,
|
27
|
+
:rtl,
|
28
|
+
)
|
29
|
+
typedef Direction, :YGDirection
|
30
|
+
|
31
|
+
Display = enum(
|
32
|
+
:flex,
|
33
|
+
:none,
|
34
|
+
)
|
35
|
+
typedef Display, :YGDisplay
|
36
|
+
|
37
|
+
Edge = enum(
|
38
|
+
:left,
|
39
|
+
:top,
|
40
|
+
:right,
|
41
|
+
:bottom,
|
42
|
+
:start,
|
43
|
+
:end,
|
44
|
+
:horizontal,
|
45
|
+
:vertical,
|
46
|
+
:all,
|
47
|
+
)
|
48
|
+
typedef Edge, :YGEdge
|
49
|
+
|
50
|
+
ExperimentalFeature = enum(
|
51
|
+
:web_flex_basis,
|
52
|
+
)
|
53
|
+
typedef ExperimentalFeature, :YGExperimentalFeature
|
54
|
+
|
55
|
+
FlexDirection = enum(
|
56
|
+
:column,
|
57
|
+
:column_reverse,
|
58
|
+
:row,
|
59
|
+
:row_reverse,
|
60
|
+
)
|
61
|
+
typedef FlexDirection, :YGFlexDirection
|
62
|
+
|
63
|
+
Justify = enum(
|
64
|
+
:flex_start,
|
65
|
+
:center,
|
66
|
+
:flex_end,
|
67
|
+
:space_between,
|
68
|
+
:space_around,
|
69
|
+
)
|
70
|
+
typedef Justify, :YGJustify
|
71
|
+
|
72
|
+
LogLevel = enum(
|
73
|
+
:error,
|
74
|
+
:warn,
|
75
|
+
:info,
|
76
|
+
:debug,
|
77
|
+
:verbose,
|
78
|
+
:fatal,
|
79
|
+
)
|
80
|
+
typedef LogLevel, :YGLogLevel
|
81
|
+
|
82
|
+
MeasureMode = enum(
|
83
|
+
:undefined,
|
84
|
+
:exactly,
|
85
|
+
:at_most,
|
86
|
+
)
|
87
|
+
typedef MeasureMode, :YGMeasureMode
|
88
|
+
|
89
|
+
NodeType = enum(
|
90
|
+
:default,
|
91
|
+
:text,
|
92
|
+
)
|
93
|
+
typedef NodeType, :YGNodeType
|
94
|
+
|
95
|
+
Overflow = enum(
|
96
|
+
:visible,
|
97
|
+
:hidden,
|
98
|
+
:scroll,
|
99
|
+
)
|
100
|
+
typedef Overflow, :YGOverflow
|
101
|
+
|
102
|
+
PositionType = enum(
|
103
|
+
:relative,
|
104
|
+
:absolute,
|
105
|
+
)
|
106
|
+
typedef PositionType, :YGPositionType
|
107
|
+
|
108
|
+
PrintOptions = enum(
|
109
|
+
:layout, 1,
|
110
|
+
:style, 2,
|
111
|
+
:children, 4,
|
112
|
+
)
|
113
|
+
typedef PrintOptions, :YGPrintOptions
|
114
|
+
|
115
|
+
Unit = enum(
|
116
|
+
:undefined,
|
117
|
+
:point,
|
118
|
+
:percent,
|
119
|
+
:auto,
|
120
|
+
)
|
121
|
+
typedef Unit, :YGUnit
|
122
|
+
|
123
|
+
Wrap = enum(
|
124
|
+
:no_wrap,
|
125
|
+
:wrap,
|
126
|
+
:wrap_reverse,
|
127
|
+
)
|
128
|
+
typedef Wrap, :YGWrap
|
129
|
+
|
130
|
+
end
|
131
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module YogaLayout
|
2
|
+
module Bindings
|
3
|
+
# Disabled, because YGLogger type is unsupported by Ruby's FFI
|
4
|
+
# remember_function :YCConfigSetLogger, [:YGConfigRef, :YGLogger], :void
|
5
|
+
remember_function :YGLog, [:YGNodeRef, :YGLogLevel, :string, :varargs], :void
|
6
|
+
remember_function :YGLogWithConfig, [:YGConfigRef, :YGLogLevel, :string, :varargs], :void
|
7
|
+
remember_function :YGAssert, [:bool, :string], :void
|
8
|
+
remember_function :YGAssertWithNode, [:YGNodeRef, :bool, :string], :void
|
9
|
+
remember_function :YGAssertWithConfig, [:YGConfigRef, :bool, :string], :void
|
10
|
+
|
11
|
+
# Disabled, because YGLogger type is unsupported by Ruby's FFI
|
12
|
+
# rememebr_function :YGConfigSetLogger, [:YGConfigRef, :YGLogger], :void
|
13
|
+
remember_function :YGLog, [:YGNodeRef, :YGLogLevel, :string, :varargs], :void
|
14
|
+
remember_function :YGLogWithConfig, [:YGConfigRef, :YGLogLevel, :string, :varargs], :void
|
15
|
+
remember_function :YGAssert, [:bool, :string], :void
|
16
|
+
remember_function :YGAssertWithNode, [:YGNodeRef, :bool, :string], :void
|
17
|
+
remember_function :YGAssertWithConfig, [:YGConfigRef, :bool, :string], :void
|
18
|
+
|
19
|
+
remember_function :YGSetMemoryFuncs, [:YGMalloc, :YGCalloc, :YGRealloc, :YGFree], :void
|
20
|
+
|
21
|
+
remember_function :YGFloatIsUndefined, [:float], :bool
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module YogaLayout
|
2
|
+
module Bindings
|
3
|
+
typedef :pointer, :YGNodeRef
|
4
|
+
typedef :pointer, :YGConfigRef
|
5
|
+
|
6
|
+
class Size < FFI::Struct
|
7
|
+
layout :width, :float,
|
8
|
+
:height, :float
|
9
|
+
end
|
10
|
+
typedef Size.by_value, :YGSize
|
11
|
+
|
12
|
+
class Value < FFI::Struct
|
13
|
+
layout :value, :float,
|
14
|
+
:unit, :YGUnit
|
15
|
+
end
|
16
|
+
typedef Value.by_value, :YGValue
|
17
|
+
|
18
|
+
callback :YGMeasureFunc, [
|
19
|
+
:YGNodeRef,
|
20
|
+
:float, # width
|
21
|
+
:YGMeasureMode, # widthMode
|
22
|
+
:float, # height
|
23
|
+
:YGMeasureMode, # heightMode
|
24
|
+
], :YGSize
|
25
|
+
|
26
|
+
callback :YGPrintFunc, [:YGNodeRef], :void
|
27
|
+
|
28
|
+
callback :YGBaselineFunc, [
|
29
|
+
:YGNodeRef,
|
30
|
+
:float, # width
|
31
|
+
:float, # height
|
32
|
+
], :float
|
33
|
+
|
34
|
+
# Can't support YGLogger type because Ruby's FFI bindings don't support
|
35
|
+
# va_args types on major platforms.
|
36
|
+
#
|
37
|
+
# callback :YGLogger, [
|
38
|
+
# :YGConfigRef,
|
39
|
+
# :YGNodeRef,
|
40
|
+
# :YGLogLevel,
|
41
|
+
# :string, # format
|
42
|
+
# :va_list, # args
|
43
|
+
# ], :int
|
44
|
+
|
45
|
+
# it would be crazy to actually use ruby to implement these...
|
46
|
+
callback :YGMalloc, [:size_t], :pointer
|
47
|
+
callback :YGCalloc, [:size_t, :size_t], :pointer
|
48
|
+
callback :YGRealloc, [:pointer, :size_t], :pointer
|
49
|
+
callback :YGFree, [:pointer], :void
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module YogaLayout
|
2
|
+
module Bindings
|
3
|
+
# This file contains the Yoga functions that operate primarily on YGConfigRef
|
4
|
+
|
5
|
+
# Set this to number of pixels in 1 point to round calculation results. If
|
6
|
+
# you want to avoid rounding - set PointScaleFactor to 0
|
7
|
+
remember_function :YGConfigSetPointScaleFactor, [:YGConfigRef, :float], :void
|
8
|
+
|
9
|
+
# Yoga previously had an error where containers would take the maximum
|
10
|
+
# space possible instead of the minimum like they are supposed to. In
|
11
|
+
# practice this resulted in implicit behaviour similar to align-self:
|
12
|
+
# stretch; Because this was such a long-standing bug we must allow legacy
|
13
|
+
# users to switch back to this behaviour.
|
14
|
+
remember_function :YGConfigSetUseLegacyStretchBehaviour, [:YGConfigRef, :bool], :void
|
15
|
+
|
16
|
+
remember_function :YGConfigNew, [], :YGConfigRef
|
17
|
+
remember_function :YGConfigFree, [:YGConfigRef], :void
|
18
|
+
remember_function :YGConfigCopy, [
|
19
|
+
:YGConfigRef, # dest
|
20
|
+
:YGConfigRef, # source
|
21
|
+
], :void
|
22
|
+
remember_function :YGConfigGetInstanceCount, [], :int32_t
|
23
|
+
|
24
|
+
remember_function :YGConfigSetExperimentalFeatureEnabled, [:YGConfigRef, :YGExperimentalFeature, :bool], :void
|
25
|
+
remember_function :YGConfigIsExperimentalFeatureEnabled, [:YGConfigRef, :YGExperimentalFeature], :bool
|
26
|
+
|
27
|
+
remember_function :YGConfigSetUseWebDefaults, [:YGConfigRef, :bool], :void
|
28
|
+
remember_function :YGConfigGetUseWebDefaults, [:YGConfigRef], :bool
|
29
|
+
|
30
|
+
# "Exported only for C#"
|
31
|
+
# TODO: should we wrap this in the Ruby library, or not?
|
32
|
+
remember_function :YGConfigGetDefault, [], :YGConfigRef
|
33
|
+
|
34
|
+
remember_function :YGConfigSetContext, [:YGConfigRef, :pointer], :void
|
35
|
+
remember_function :YGConfigGetContext, [:YGConfigRef], :pointer
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module YogaLayout
|
2
|
+
module Bindings
|
3
|
+
# This file defines non-propety methods of YGNodde
|
4
|
+
|
5
|
+
# Lifecycle
|
6
|
+
remember_function :YGNodeNew, [], :YGNodeRef
|
7
|
+
remember_function :YGNodeNewWithConfig, [:YGConfigRef], :YGNodeRef
|
8
|
+
remember_function :YGNodeFree, [:YGNodeRef], :void
|
9
|
+
remember_function :YGNodeFreeRecursive, [:YGNodeRef], :void
|
10
|
+
remember_function :YGNodeReset, [:YGNodeRef], :void
|
11
|
+
remember_function :YGNodeGetInstanceCount, [], :int32_t
|
12
|
+
|
13
|
+
# Children
|
14
|
+
remember_function :YGNodeInsertChild, [:YGNodeRef, :YGNodeRef, :uint32_t], :void
|
15
|
+
remember_function :YGNodeRemoveChild, [:YGNodeRef, :YGNodeRef], :void
|
16
|
+
remember_function :YGNodeGetChild, [:YGNodeRef, :uint32_t], :YGNodeRef
|
17
|
+
remember_function :YGNodeGetParent, [:YGNodeRef], :YGNodeRef
|
18
|
+
remember_function :YGNodeGetChildCount, [:YGNodeRef], :uint32_t
|
19
|
+
|
20
|
+
# Layout
|
21
|
+
remember_function :YGNodeCalculateLayout, [
|
22
|
+
:YGNodeRef,
|
23
|
+
:float, # availableWidth
|
24
|
+
:float, # availibleHeight
|
25
|
+
:YGDirection, # parentDirection
|
26
|
+
], :void
|
27
|
+
# Mark a node as dirty. Only valid for nodes with a custom measure
|
28
|
+
# function set. YG knows when to mark all other nodes as dirty but because
|
29
|
+
# nodes with measure functions depends on information not known to YG they
|
30
|
+
# must perform this dirty marking manually.
|
31
|
+
remember_function :YGNodeMarkDirty, [:YGNodeRef], :void
|
32
|
+
remember_function :YGNodeIsDirty, [:YGNodeRef], :bool
|
33
|
+
|
34
|
+
# Printing (for debug???)
|
35
|
+
remember_function :YGNodePrint, [:YGNodeRef, PrintOptions], :void
|
36
|
+
|
37
|
+
# No idea what this is used for
|
38
|
+
remember_function :YGNodeCanUseCachedMeasurement, [
|
39
|
+
:YGMeasureMode, # widthMode
|
40
|
+
:float, # width
|
41
|
+
:YGMeasureMode, # heightMode
|
42
|
+
:float, # height
|
43
|
+
:YGMeasureMode, # lastWidthMode
|
44
|
+
:float, # lastWidth
|
45
|
+
:YGMeasureMode, # lastHeightMode
|
46
|
+
:float, # lastHeight
|
47
|
+
:float, # lastComputedWidth
|
48
|
+
:float, # lastComputedHeight
|
49
|
+
:float, # marginRow
|
50
|
+
:float, # marginColumn
|
51
|
+
:YGConfigRef, # config
|
52
|
+
], :bool
|
53
|
+
|
54
|
+
remember_function :YGNodeCopyStyle, [
|
55
|
+
:YGNodeRef, # destination
|
56
|
+
:YGNodeRef, # source
|
57
|
+
], :void
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# Auto-generated by Rake from Yoga.h
|
2
|
+
# Do not edit by hand
|
3
|
+
module YogaLayout
|
4
|
+
module Bindings
|
5
|
+
remember_function :YGNodeSetContext, [:YGNodeRef, :pointer], :void
|
6
|
+
remember_function :YGNodeGetContext, [:YGNodeRef], :pointer
|
7
|
+
remember_function :YGNodeSetMeasureFunc, [:YGNodeRef, :YGMeasureFunc], :void
|
8
|
+
remember_function :YGNodeGetMeasureFunc, [:YGNodeRef], :YGMeasureFunc
|
9
|
+
remember_function :YGNodeSetBaselineFunc, [:YGNodeRef, :YGBaselineFunc], :void
|
10
|
+
remember_function :YGNodeGetBaselineFunc, [:YGNodeRef], :YGBaselineFunc
|
11
|
+
remember_function :YGNodeSetPrintFunc, [:YGNodeRef, :YGPrintFunc], :void
|
12
|
+
remember_function :YGNodeGetPrintFunc, [:YGNodeRef], :YGPrintFunc
|
13
|
+
remember_function :YGNodeSetHasNewLayout, [:YGNodeRef, :bool], :void
|
14
|
+
remember_function :YGNodeGetHasNewLayout, [:YGNodeRef], :bool
|
15
|
+
remember_function :YGNodeSetNodeType, [:YGNodeRef, :YGNodeType], :void
|
16
|
+
remember_function :YGNodeGetNodeType, [:YGNodeRef], :YGNodeType
|
17
|
+
remember_function :YGNodeStyleSetDirection, [:YGNodeRef, :YGDirection], :void
|
18
|
+
remember_function :YGNodeStyleGetDirection, [:YGNodeRef], :YGDirection
|
19
|
+
remember_function :YGNodeStyleSetFlexDirection, [:YGNodeRef, :YGFlexDirection], :void
|
20
|
+
remember_function :YGNodeStyleGetFlexDirection, [:YGNodeRef], :YGFlexDirection
|
21
|
+
remember_function :YGNodeStyleSetJustifyContent, [:YGNodeRef, :YGJustify], :void
|
22
|
+
remember_function :YGNodeStyleGetJustifyContent, [:YGNodeRef], :YGJustify
|
23
|
+
remember_function :YGNodeStyleSetAlignContent, [:YGNodeRef, :YGAlign], :void
|
24
|
+
remember_function :YGNodeStyleGetAlignContent, [:YGNodeRef], :YGAlign
|
25
|
+
remember_function :YGNodeStyleSetAlignItems, [:YGNodeRef, :YGAlign], :void
|
26
|
+
remember_function :YGNodeStyleGetAlignItems, [:YGNodeRef], :YGAlign
|
27
|
+
remember_function :YGNodeStyleSetAlignSelf, [:YGNodeRef, :YGAlign], :void
|
28
|
+
remember_function :YGNodeStyleGetAlignSelf, [:YGNodeRef], :YGAlign
|
29
|
+
remember_function :YGNodeStyleSetPositionType, [:YGNodeRef, :YGPositionType], :void
|
30
|
+
remember_function :YGNodeStyleGetPositionType, [:YGNodeRef], :YGPositionType
|
31
|
+
remember_function :YGNodeStyleSetFlexWrap, [:YGNodeRef, :YGWrap], :void
|
32
|
+
remember_function :YGNodeStyleGetFlexWrap, [:YGNodeRef], :YGWrap
|
33
|
+
remember_function :YGNodeStyleSetOverflow, [:YGNodeRef, :YGOverflow], :void
|
34
|
+
remember_function :YGNodeStyleGetOverflow, [:YGNodeRef], :YGOverflow
|
35
|
+
remember_function :YGNodeStyleSetDisplay, [:YGNodeRef, :YGDisplay], :void
|
36
|
+
remember_function :YGNodeStyleGetDisplay, [:YGNodeRef], :YGDisplay
|
37
|
+
remember_function :YGNodeStyleSetFlex, [:YGNodeRef, :float], :void
|
38
|
+
remember_function :YGNodeStyleGetFlex, [:YGNodeRef], :float
|
39
|
+
remember_function :YGNodeStyleSetFlexGrow, [:YGNodeRef, :float], :void
|
40
|
+
remember_function :YGNodeStyleGetFlexGrow, [:YGNodeRef], :float
|
41
|
+
remember_function :YGNodeStyleSetFlexShrink, [:YGNodeRef, :float], :void
|
42
|
+
remember_function :YGNodeStyleGetFlexShrink, [:YGNodeRef], :float
|
43
|
+
remember_function :YGNodeStyleSetFlexBasis, [:YGNodeRef, :float], :void
|
44
|
+
remember_function :YGNodeStyleSetFlexBasisPercent, [:YGNodeRef, :float], :void
|
45
|
+
remember_function :YGNodeStyleGetFlexBasis, [:YGNodeRef], :YGValue
|
46
|
+
remember_function :YGNodeStyleSetFlexBasisAuto, [:YGNodeRef], :void
|
47
|
+
remember_function :YGNodeStyleSetPosition, [:YGNodeRef, :YGEdge, :float], :void
|
48
|
+
remember_function :YGNodeStyleSetPositionPercent, [:YGNodeRef, :YGEdge, :float], :void
|
49
|
+
remember_function :YGNodeStyleGetPosition, [:YGNodeRef, :YGEdge], :YGValue
|
50
|
+
remember_function :YGNodeStyleSetMargin, [:YGNodeRef, :YGEdge, :float], :void
|
51
|
+
remember_function :YGNodeStyleSetMarginPercent, [:YGNodeRef, :YGEdge, :float], :void
|
52
|
+
remember_function :YGNodeStyleGetMargin, [:YGNodeRef, :YGEdge], :YGValue
|
53
|
+
remember_function :YGNodeStyleSetMarginAuto, [:YGNodeRef, :YGEdge], :void
|
54
|
+
remember_function :YGNodeStyleSetPadding, [:YGNodeRef, :YGEdge, :float], :void
|
55
|
+
remember_function :YGNodeStyleSetPaddingPercent, [:YGNodeRef, :YGEdge, :float], :void
|
56
|
+
remember_function :YGNodeStyleGetPadding, [:YGNodeRef, :YGEdge], :YGValue
|
57
|
+
remember_function :YGNodeStyleSetBorder, [:YGNodeRef, :YGEdge, :float], :void
|
58
|
+
remember_function :YGNodeStyleGetBorder, [:YGNodeRef, :YGEdge], :float
|
59
|
+
remember_function :YGNodeStyleSetWidth, [:YGNodeRef, :float], :void
|
60
|
+
remember_function :YGNodeStyleSetWidthPercent, [:YGNodeRef, :float], :void
|
61
|
+
remember_function :YGNodeStyleGetWidth, [:YGNodeRef], :YGValue
|
62
|
+
remember_function :YGNodeStyleSetWidthAuto, [:YGNodeRef], :void
|
63
|
+
remember_function :YGNodeStyleSetHeight, [:YGNodeRef, :float], :void
|
64
|
+
remember_function :YGNodeStyleSetHeightPercent, [:YGNodeRef, :float], :void
|
65
|
+
remember_function :YGNodeStyleGetHeight, [:YGNodeRef], :YGValue
|
66
|
+
remember_function :YGNodeStyleSetHeightAuto, [:YGNodeRef], :void
|
67
|
+
remember_function :YGNodeStyleSetMinWidth, [:YGNodeRef, :float], :void
|
68
|
+
remember_function :YGNodeStyleSetMinWidthPercent, [:YGNodeRef, :float], :void
|
69
|
+
remember_function :YGNodeStyleGetMinWidth, [:YGNodeRef], :YGValue
|
70
|
+
remember_function :YGNodeStyleSetMinHeight, [:YGNodeRef, :float], :void
|
71
|
+
remember_function :YGNodeStyleSetMinHeightPercent, [:YGNodeRef, :float], :void
|
72
|
+
remember_function :YGNodeStyleGetMinHeight, [:YGNodeRef], :YGValue
|
73
|
+
remember_function :YGNodeStyleSetMaxWidth, [:YGNodeRef, :float], :void
|
74
|
+
remember_function :YGNodeStyleSetMaxWidthPercent, [:YGNodeRef, :float], :void
|
75
|
+
remember_function :YGNodeStyleGetMaxWidth, [:YGNodeRef], :YGValue
|
76
|
+
remember_function :YGNodeStyleSetMaxHeight, [:YGNodeRef, :float], :void
|
77
|
+
remember_function :YGNodeStyleSetMaxHeightPercent, [:YGNodeRef, :float], :void
|
78
|
+
remember_function :YGNodeStyleGetMaxHeight, [:YGNodeRef], :YGValue
|
79
|
+
remember_function :YGNodeStyleSetAspectRatio, [:YGNodeRef, :float], :void
|
80
|
+
remember_function :YGNodeStyleGetAspectRatio, [:YGNodeRef], :float
|
81
|
+
remember_function :YGNodeLayoutGetLeft, [:YGNodeRef], :float
|
82
|
+
remember_function :YGNodeLayoutGetTop, [:YGNodeRef], :float
|
83
|
+
remember_function :YGNodeLayoutGetRight, [:YGNodeRef], :float
|
84
|
+
remember_function :YGNodeLayoutGetBottom, [:YGNodeRef], :float
|
85
|
+
remember_function :YGNodeLayoutGetWidth, [:YGNodeRef], :float
|
86
|
+
remember_function :YGNodeLayoutGetHeight, [:YGNodeRef], :float
|
87
|
+
remember_function :YGNodeLayoutGetDirection, [:YGNodeRef], :YGDirection
|
88
|
+
remember_function :YGNodeLayoutGetHadOverflow, [:YGNodeRef], :bool
|
89
|
+
remember_function :YGNodeLayoutGetMargin, [:YGNodeRef, :YGEdge], :float
|
90
|
+
remember_function :YGNodeLayoutGetBorder, [:YGNodeRef, :YGEdge], :float
|
91
|
+
remember_function :YGNodeLayoutGetPadding, [:YGNodeRef, :YGEdge], :float
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'yoga_layout/wrapper'
|
2
|
+
|
3
|
+
module YogaLayout
|
4
|
+
# Config changes the way the Yoga layout system works.
|
5
|
+
#
|
6
|
+
# Yoga has the concept of experiments. An experiment is a feature which is
|
7
|
+
# not yet stable. To enable a feature use the
|
8
|
+
# {#set_experimental_feature_enabled} method. Once a feature has been tested
|
9
|
+
# and is ready to be released as a stable API we will remove its feature
|
10
|
+
# flag.
|
11
|
+
#
|
12
|
+
# @example Use web defaults by default
|
13
|
+
# YogaLayout::Config.default.set_use_web_defaults(true)
|
14
|
+
#
|
15
|
+
# @example Create a node tree with a custom config
|
16
|
+
# config = YogaLayout::Config.new
|
17
|
+
# node = YogaLayout::Node.new_with_config(config)
|
18
|
+
# node.insert_child(config.new_node, 0)
|
19
|
+
class Config < YogaLayout::Wrapper
|
20
|
+
# @override
|
21
|
+
# @api private
|
22
|
+
def self.unsafe_new_pointer
|
23
|
+
YogaLayout::Bindings.YGConfigNew
|
24
|
+
end
|
25
|
+
|
26
|
+
# @override
|
27
|
+
# @api private
|
28
|
+
def self.unsafe_free_pointer(pointer)
|
29
|
+
YogaLayout::Bindings.YGConfigFree(pointer)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Use this to adjust the default settings.
|
33
|
+
def self.default
|
34
|
+
# Not using auto_ptr, because you can't deallocate the default config
|
35
|
+
@default ||= new(YogaLayout::Bindings.YGConfigGetDefault)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Convinience method to create new nodes with this config.
|
39
|
+
#
|
40
|
+
# @return [YogaLayout::Node]
|
41
|
+
def new_node
|
42
|
+
YogaLayout::Node.new_with_config(self)
|
43
|
+
end
|
44
|
+
|
45
|
+
map_method(:copy_from, :YGConfigCopy)
|
46
|
+
|
47
|
+
map_method(:set_point_scaling_factor, :YGConfigSetPointScaleFactor)
|
48
|
+
map_method(:set_use_legacy_stretch_behavior, :YGConfigSetUseLegacyStretchBehaviour)
|
49
|
+
|
50
|
+
map_method(:set_experimental_feature_enabled, :YGConfigSetExperimentalFeatureEnabled)
|
51
|
+
map_method(:experimental_feature_enabled?, :YGConfigIsExperimentalFeatureEnabled)
|
52
|
+
|
53
|
+
map_method(:set_use_web_defaults, :YGConfigSetUseWebDefaults)
|
54
|
+
map_method(:use_web_defaults?, :YGConfigGetUseWebDefaults)
|
55
|
+
end
|
56
|
+
end
|