Valentin Shergin
1bb6db36be
Fabric: Removed unused copy constructor YogaLayoutableShadowNode()
...
Summary: Trivial. We don't use it, and it shouldn't be exist by desing.
Reviewed By: mdvacca
Differential Revision: D7376351
fbshipit-source-id: 22f03af2b3596c274a22bab1fab6d8af854a7374
2018-03-25 22:48:18 -07:00
Valentin Shergin
53782eafc9
Fabric: Source shadow node is now stored as a weak pointer
...
Summary:
We use shource nodes only in the diffing alogorithm. It implies that we have strong pointers to those nodes in trees we compare against.
Using weak_ptr's allows to avoid memory leaks.
Reviewed By: mdvacca
Differential Revision: D7376348
fbshipit-source-id: 34e5f58f18a00475f6bcdfbea3996b41c84dff62
2018-03-25 22:48:18 -07:00
Jonathan Dann
2cc75f7d47
Add YGNodeSetChildren(), YGNodeTraversePreOrder()
...
Reviewed By: Woody17
Differential Revision: D7360203
fbshipit-source-id: 32df8e1213ead03bc0a026ec4bf453bc799bb9ce
2018-03-25 14:35:04 -07:00
Kevin Gozali
1acef45977
iOS: added placeholder test setup for fabric graphics/uimanager/view targets
...
Reviewed By: shergin
Differential Revision: D7390366
fbshipit-source-id: d49fcc335fc03d52402676341f1da24177c6084b
2018-03-23 22:22:20 -07:00
Kevin Gozali
408a5f264b
iOS: added fabric/core ComponentDescriptor tests
...
Summary: Basic test for ComponentDescriptor mechanism.
Reviewed By: shergin
Differential Revision: D7388297
fbshipit-source-id: 3b0c625656e31df03d71a2e036388621a5e2e21d
2018-03-23 17:32:52 -07:00
Kevin Gozali
e254474d4c
iOS: added fabric/core ShadowNode tests
...
Summary: basic tests for shadow nodes and props for fabric
Reviewed By: shergin
Differential Revision: D7377867
fbshipit-source-id: dc8e5bb369aeb32b4790fd8b56f333376bc1578c
2018-03-23 17:32:52 -07:00
Kevin Gozali
8c0070c706
iOS: added fabric/core primitives tests
...
Summary: basic tests for fabric core primitives
Reviewed By: shergin
Differential Revision: D7373952
fbshipit-source-id: e2d9b3c15716c16b1aab698883817e670dcb7a57
2018-03-23 17:32:52 -07:00
Kevin Gozali
10c95a25cc
fixed contacts for the test target
...
Reviewed By: mdvacca
Differential Revision: D7366977
fbshipit-source-id: 93341f8964da71a7e23049fc5d2324a0da376746
2018-03-22 10:49:44 -07:00
Kevin Gozali
6ae38feb65
Added sample iOS unit test setup for fabric/debug target
...
Summary: basic setup for unit testing Fabric impl
Reviewed By: hramos
Differential Revision: D7359239
fbshipit-source-id: ccaf36e775036f2fad4d8c882bce86bbbe06dd28
2018-03-21 16:40:06 -07:00
Kevin Gozali
f015900d30
fixed debug string formatting for structure
...
Summary:
Fixed minor issue:
* use double spaces instead of a tab character for indentation
* depth should increase by 1, not 2
Reviewed By: shergin
Differential Revision: D7332803
fbshipit-source-id: 74fda2c7a4be4f509270d3074a7d71a3d4d32fe4
2018-03-21 16:40:06 -07:00
Jonathan Dann
cb3103ce09
Mark more member functions as const
...
Reviewed By: priteshrnandgaonkar
Differential Revision: D7291364
fbshipit-source-id: 2e7d96cfe0345692ffa411bb21a80eb7a859880b
2018-03-21 16:40:06 -07:00
Jonathan Dann
ed0ba1bfc7
Pass some constructor argumetns by const-reference
...
Reviewed By: priteshrnandgaonkar
Differential Revision: D7291363
fbshipit-source-id: 22e606d0b3fa1133d7e0334c8cf9f5f1f32fe64b
2018-03-21 16:40:06 -07:00
Jonathan Dann
0b085a80bd
Pass-by-reference in YGNode::setStyle() ::setChildren() ::setLayout()
...
Reviewed By: priteshrnandgaonkar
Differential Revision: D7291096
fbshipit-source-id: 7a4025831811d622050adbb5f86608855b94d68e
2018-03-21 16:40:06 -07:00
Orta
cf036dbc7a
Updates Yoga to handle being in a Xcode framework project
...
Summary:
Updates the Yoga Podspec to work with Cocoa frameworks. Replicated a2's work over on Yoga https://github.com/facebook/yoga/pull/726
(Which should also get merged too please ❤️ )
Set it manually in my own project and tested 👍
Only https://github.com/facebook/yoga/pull/726
[IOS] [BUGFIX] [Yoga] - Fixes to yoga.podspec when integrating into an iOS app using Cocoa frameworks.
Closes https://github.com/facebook/react-native/pull/18492
Differential Revision: D7355907
Pulled By: hramos
fbshipit-source-id: 6986d2bc560a23bb7f0f20b80e88bb440079891a
2018-03-21 14:15:33 -07:00
Valentin Shergin
b808bfdce2
Fabric: Introducting ShadowNode.sourceNode
, the node used in copy-constructor
...
Summary: We will need this later in the diffing alogrithm.
Reviewed By: fkgozali
Differential Revision: D7330337
fbshipit-source-id: 3da44a62e4d5f30deed28b18a5779544153244f3
2018-03-19 17:08:31 -07:00
Valentin Shergin
39383d1189
Fabric: Improved YogaLayoutableShadowNode printing
...
Summary: `LTR` is actually a default value for `direction` here, because an `inherit` value makes no sense for YGLayout (because it's *computed* value by definition).
Reviewed By: fkgozali
Differential Revision: D7330335
fbshipit-source-id: b3c7736c104689f2296e150f0cf57d622483d537
2018-03-19 17:08:31 -07:00
Valentin Shergin
ff288b7416
Fabric: Complete implementation of layoutMetricsFromYogaNode
...
Summary: That was simply incomplete.
Reviewed By: fkgozali
Differential Revision: D7330336
fbshipit-source-id: c495c7f61d8e551fa963bfa6cc0408343eb8439b
2018-03-19 17:08:31 -07:00
Valentin Shergin
a5a34565e0
Fabric: Proper return value of LayoutableShadowNode::setLayoutMetrics()
...
Summary: `LayoutableShadowNode::setLayoutMetrics()` must return `false` is nothing was changes.
Reviewed By: fkgozali
Differential Revision: D7330334
fbshipit-source-id: 700d50b0047919fa2b919acfa72825f100cd496f
2018-03-19 17:08:31 -07:00
Valentin Shergin
aaaa946e6d
Fabric: Equality operators for geometry types
...
Summary: We will need this soon.
Reviewed By: fkgozali
Differential Revision: D7330338
fbshipit-source-id: 30aeadc182893e86c6a039c74d245f9b56624151
2018-03-19 17:08:31 -07:00
Naris Siamwalla
12535ae69d
Fix clang-6 strictness surrounding virtual destructors
...
Reviewed By: smeenai
Differential Revision: D7326765
fbshipit-source-id: 9df477dfa89812e05e79b5e6d510bcbbc793381c
2018-03-19 15:00:09 -07:00
Kevin Gozali
f42b5892a1
iOS C++: Add ICxxExceptionManager to access RCTExceptionsManager native module
...
Summary: It is sometimes useful to report soft/fatal errors from C++ (native) to the same RCTExceptionsManager that is already handling JS exceptions. `ICxxExceptionManager` is an approach to provide such access, which impl provided for ObjC++.
Reviewed By: shergin
Differential Revision: D7224944
fbshipit-source-id: 8c607226b67851d46f4c787f5b6e6c8cb6a1afea
2018-03-19 00:06:57 -07:00
Valentin Shergin
378da73201
DebugStringConvertibleOptions: Formating
...
Summary:
DebugStringConvertibleOptions allows pretty-format debug strings.
https://pxl.cl/ch0m
Reviewed By: fkgozali
Differential Revision: D7312622
fbshipit-source-id: 0ed62520bbc521790bedf5a6d18c796b42f85658
2018-03-18 19:17:39 -07:00
Valentin Shergin
4cda0df2e5
Switching to the new FabricUIManager and all new shadow tree infra
...
Reviewed By: fkgozali
Differential Revision: D7230670
fbshipit-source-id: bca7d2859b87931c0d15406782b7d689de1d8c36
2018-03-18 19:17:39 -07:00
Valentin Shergin
c2ad59a277
fabric/uimanager
module
...
Summary: `fabric/uimanager` implements FabricUIModule.
Reviewed By: fkgozali
Differential Revision: D7230669
fbshipit-source-id: db6228021352598feac7854b5871d9d6c5c85119
2018-03-18 19:17:39 -07:00
Valentin Shergin
965e60b05a
fabric/view
module
...
Summary: Defines `<View>`: Yoga-powered, Accessible and styleable component.
Reviewed By: fkgozali
Differential Revision: D7230673
fbshipit-source-id: 08a1d8626c0b41260fafdca938d4fe9489b1b793
2018-03-18 19:17:39 -07:00
Valentin Shergin
6b0960cbdb
Introducing ConcreteShadowNode
...
Summary: ConcreteShadowNode defines a template which connects typed Props and typed ShadowNode.
Reviewed By: fkgozali
Differential Revision: D7230667
fbshipit-source-id: be28314d6846d69960e921da852f01232951f965
2018-03-18 19:17:39 -07:00
Valentin Shergin
811d5bfc73
Introducing LayoutableShadowNode
...
Summary: LayoutableShadowNode defines a unified interface (and set of primitives) essential for laying out shadow nodes.
Reviewed By: fkgozali
Differential Revision: D7230668
fbshipit-source-id: d8c1772d4c3bd1f87c41f7240a39aecebf3696ae
2018-03-18 19:17:39 -07:00
Valentin Shergin
840638c441
Introducing ComponentDescriptor
...
Summary:
Abstract class and default template implementation.
`ComponentDescriptor`s define basic logic of managing (creation, cloning, applying props) ShadowNode of particular type.
Reviewed By: fkgozali
Differential Revision: D7230671
fbshipit-source-id: c32636f4db0716b55a1637f61c4f1872fc52cea7
2018-03-18 19:17:39 -07:00
Valentin Shergin
608d1fb590
fabric/graphics
module: all about graphics
...
Summary: `fabric/graphics` provides graphics primitives; the implementation should be platform-specific eventually.
Reviewed By: fkgozali
Differential Revision: D7230675
fbshipit-source-id: ff05d2673072fad5ee6f331f0155561969e1a8b6
2018-03-18 19:17:39 -07:00
Valentin Shergin
c623455845
Abstract classes for ShadowNode and Props
...
Summary: Foundation clases for Fabric designed to be "const-first".
Reviewed By: fkgozali
Differential Revision: D7230672
fbshipit-source-id: 433acd35a7958d5d577358b0a306923f970e573f
2018-03-18 19:17:39 -07:00
Valentin Shergin
d16772a31e
Sealable: fixed semantic; atomic type for the flag variable
...
Summary:
* Fixed semantic: all kinds of derivative instances lose `sealed` flag (which is expected);
* Using atomic<bool> for `sealed_` ivar.
Reviewed By: fkgozali
Differential Revision: D7230674
fbshipit-source-id: abe786610c20a45a0fabb9068120e24adeeeac7f
2018-03-18 19:17:39 -07:00
Pritesh Nandgaonkar
9102ff94e7
Moved YGFloatOptional from C struct to C++ struct
...
Reviewed By: emilsjolander
Differential Revision: D7288555
fbshipit-source-id: f61cc92c8fd0d48d2fc1f4d0e6fcef155f19ff8a
2018-03-15 12:41:16 -07:00
Pritesh Nandgaonkar
ce92b8592b
Fixed a typo and added a test case
...
Reviewed By: emilsjolander
Differential Revision: D7289221
fbshipit-source-id: 48ee9ccfac4adee51d515a366b5a11790f7236fc
2018-03-15 12:41:16 -07:00
Dmitry Zakharov
8e85bf84e8
Gatekeeper for Native Extensions
...
Reviewed By: danzimm, johnislarry
Differential Revision: D6965463
fbshipit-source-id: 28bcfbff980abfda3c63d7016ccf05beb1d178eb
2018-03-15 09:27:40 -07:00
Dmitry Zakharov
c989ea8728
Extract NativeExtensionsProvider definition
...
Reviewed By: danzimm
Differential Revision: D6964355
fbshipit-source-id: e20dfa99bd9d8784a5f31a313302104d6dc33652
2018-03-15 09:27:40 -07:00
Pritesh Nandgaonkar
da2d410122
Fix getters and setters if min and max Dimension
...
Reviewed By: emilsjolander
Differential Revision: D7274807
fbshipit-source-id: 7c1a4c19e8d0552b089a410c3330392cb26a6a47
2018-03-15 07:23:13 -07:00
Pritesh Nandgaonkar
040642dba3
Fix setter and getter of margin, position, border and padding
...
Reviewed By: emilsjolander
Differential Revision: D7274115
fbshipit-source-id: 942a91e6562ef789ae79102a828f397889468fa7
2018-03-15 07:23:13 -07:00
Pritesh Nandgaonkar
321b107685
Expose layout diffing flag to java
...
Reviewed By: emilsjolander
Differential Revision: D7272067
fbshipit-source-id: e67e82eb057e4c7124904c715f9dca4dcfea21ea
2018-03-14 08:48:52 -07:00
Pritesh Nandgaonkar
f3ef8f8510
Remove the use of YGUndefined for flex-basis
...
Reviewed By: emilsjolander
Differential Revision: D7243924
fbshipit-source-id: 2bfaca1a5e3da40d5292a273cabf705f59c9d666
2018-03-14 04:34:04 -07:00
Pritesh Nandgaonkar
e3af1508c8
Change the type of flexShrink to YGFloatOptional
...
Reviewed By: emilsjolander
Differential Revision: D7232171
fbshipit-source-id: 3111119d3d74a7035c01132bff61b30cf44e120a
2018-03-14 04:34:04 -07:00
Pritesh Nandgaonkar
3274e9fa51
Change the type of flexGrow to YGFloatOptional
...
Reviewed By: emilsjolander
Differential Revision: D7215355
fbshipit-source-id: 1298ee332551d44e4d070169a1e4103d005c4f43
2018-03-14 04:34:04 -07:00
Pritesh Nandgaonkar
5b3d59598a
Change the type of flex to YGFloatOptional
...
Reviewed By: emilsjolander
Differential Revision: D7211327
fbshipit-source-id: 0d979b6ba00317317b98bbc6e63979c7f1feb2da
2018-03-14 04:34:04 -07:00
Pritesh Nandgaonkar
9f7e70363a
Changed the return type of YGResolveValue
...
Reviewed By: emilsjolander
Differential Revision: D7195099
fbshipit-source-id: 72c4163cd08691cf6e40df05394cc52e83b0de14
2018-03-14 04:34:03 -07:00
Pritesh Nandgaonkar
af4a36337d
Remove the usage of YGUndefined in the default values of Border in YGStyle
...
Reviewed By: emilsjolander
Differential Revision: D7195115
fbshipit-source-id: e635cf55ac94d8a90caef6cafce281579da2cbfc
2018-03-14 04:34:02 -07:00
Amir Livneh
19dd9a2ce6
Use -fdata-sections in mode/opt
...
Differential Revision: D7194366
fbshipit-source-id: 676f2db2e493230b8d9698941f003ec4e96f15ea
2018-03-12 06:34:59 -07:00
Kevin Gozali
3c86701ea7
fabric/core
module and Sealable
class
...
Summary:
`Sealable` class represents something which can be *sealed* (imperatively marked as immutable).
Authored by shergin
Reviewed By: shergin
Differential Revision: D7174883
fbshipit-source-id: 8b26ca5b1a5154953a099895778eab86228acc46
2018-03-08 18:04:28 -08:00
Kevin Gozali
34f8e7f848
fabric/debug
module and DebugStringConvertible
class
...
Summary:
This is a very first diff in a series of undefined length implementing React Native Shadow Tree infra in C++.
All Shadow Nodes, Props and etc. implements `DebugStringConvertible`.
Authored by shergin
Reviewed By: shergin
Differential Revision: D7163868
fbshipit-source-id: 9c001aa5bd0723f709a07b1833f512c51e3bec11
2018-03-08 18:04:28 -08:00
Jakub Grzmiel
5f497ca302
Convert constant with build flags to function
...
Reviewed By: ttsugriy
Differential Revision: D7184372
fbshipit-source-id: c66f473ad15898532f24c6276898ab250e749744
2018-03-08 00:17:53 -08:00
Kevin Gozali
7bf3b20837
iOS: create C++ <-> ObjC++ connector for FabricUIManager to do UI operations
...
Reviewed By: shergin
Differential Revision: D7162911
fbshipit-source-id: 3e303020dafdccc51f52c3359a7054dc8a787978
2018-03-07 16:54:16 -08:00
Dan Zimmerman
19a4a7d3cb
Remove callFunctionSync experimental APIs
...
Reviewed By: michalgr
Differential Revision: D6124038
fbshipit-source-id: 219afe30783da92cf10f800dc35e64823b61cf4b
2018-03-05 14:32:00 -08:00