Scott Wolchok
d932c96ddc
Don't preallocate child lists
...
Reviewed By: emilsjolander
Differential Revision: D4078012
fbshipit-source-id: 7cdcab03ec4067550a5fee5e1baea14344f3a8f9
2016-10-25 17:13:36 -07:00
Emil Sjolander
942f724166
Suggest the compiler to inline smaller functions
...
Reviewed By: gkassabli
Differential Revision: D4074580
fbshipit-source-id: 69b63fadf2011cb688af58f09d67c2cb711a0e20
2016-10-25 10:43:41 -07:00
Kazuki Sakamoto
31d3926784
Update CSSNodeFree for C#, Java and Objective-C
...
Reviewed By: emilsjolander
Differential Revision: D4069655
fbshipit-source-id: 1fd764059784d7968af38b6aaf7fb6f70fdee8ee
2016-10-25 07:43:44 -07:00
Emil Sjolander
3c5a7ae859
Fix bug in canUseCachedMeasurement causing unneeded double measure
...
Reviewed By: gkassabli
Differential Revision: D4071621
fbshipit-source-id: 19d87d939051ddf8ee2e1c6e60efee22d173bbb9
2016-10-25 07:43:44 -07:00
Emil Sjolander
1ba4e8b9c6
Reduce duplicate function calls
...
Reviewed By: gkassabli
Differential Revision: D4068140
fbshipit-source-id: 91261afb73e1c5e23c2cfc84df6ecc5c844a4e78
2016-10-24 12:28:39 -07:00
Emil Sjolander
58b5e28e71
Simplify memory model between managed and unmanaged memory
...
Differential Revision: D4051454
fbshipit-source-id: 8f5d010be520b3d1c981a7f85e5e6d95773ea6c1
2016-10-24 10:43:43 -07:00
Emil Sjolander
ea6458b63e
Remove flex shorthand getter because it doesnt make a lot of sense
...
Reviewed By: gkassabli
Differential Revision: D4064674
fbshipit-source-id: 69935b85042020b4e8c61a393c1be8f4d42a6674
2016-10-24 03:44:22 -07:00
Emil Sjolander
dc142ad8f9
Dont override flexShrink, flexGrow, and flexBasis with shorthand flex
...
Reviewed By: gkassabli
Differential Revision: D4064696
fbshipit-source-id: db2d4b8e60209f0a9eed6794a167b85e453be41c
2016-10-24 03:44:18 -07:00
Emil Sjolander
978d45ddef
Forward gLogger output to adb on android platforms
...
Reviewed By: splhack
Differential Revision: D4064619
fbshipit-source-id: de23e72844e25106d0db756064f5699959f45ed2
2016-10-23 10:58:40 -07:00
Emil Sjolander
9ed8cae47e
Fixup format file for hopefully the last time in a while and re-format code
...
Reviewed By: gkassabli
Differential Revision: D4044545
fbshipit-source-id: 60ebb73cfdd9dbc9b5fae62ddebf37e9b1e6eecf
2016-10-20 06:28:33 -07:00
Kazuki Sakamoto
1607ff2466
Introduce CSSLayoutSetLogger to pass the print result to C# side
...
Reviewed By: emilsjolander
Differential Revision: D4027044
fbshipit-source-id: 90e2e449260888770f71fa7ea790ca9764d91c44
2016-10-19 11:13:59 -07:00
Emil Sjolander
a9d94c2dfb
Change flex basis to override main axis size
...
Reviewed By: gkassabli
Differential Revision: D4029374
fbshipit-source-id: bc3c72879f3937a50bf8a636b547adc7b9a4f5a7
2016-10-19 06:43:57 -07:00
Emil Sjolander
6d3ecbe07a
Use typedefs from header
...
Reviewed By: gkassabli
Differential Revision: D4036421
fbshipit-source-id: 01f15cb840363850970e6a60e661af06fd6ec9e0
2016-10-18 10:29:30 -07:00
Emil Sjolander
c805cf8376
Use switch instead of ifelse chain
...
Reviewed By: gkassabli
Differential Revision: D4036445
fbshipit-source-id: 2159946f53507ff3d7505795e5baa5f820cdb65c
2016-10-18 10:13:39 -07:00
Emil Sjolander
0699a30980
Fix flex-shrink when shrinking to zero size
...
Reviewed By: gkassabli
Differential Revision: D4036345
fbshipit-source-id: f6848d7a316a694426f761d5e51d972bd379d90e
2016-10-18 09:28:45 -07:00
Emil Sjolander
4d0b3e684a
Remove default: usage to ensure compiler can help with missing cases
...
Reviewed By: gkassabli
Differential Revision: D4036440
fbshipit-source-id: f5ef4c8afff0f353de50681ad304878f90255fef
2016-10-18 07:02:01 -07:00
Emil Sjolander
02fc4c8ffa
Move absolute layout calculation out into seperate function
...
Reviewed By: gkassabli
Differential Revision: D4028329
fbshipit-source-id: 2903f66b028063cec0a6b3037ca7cb4d6552176d
2016-10-17 12:14:17 -07:00
Emil Sjolander
3e332d9cc8
Fix justify content + min dimension when children overflow
...
Reviewed By: gkassabli
Differential Revision: D4029442
fbshipit-source-id: d28ebd269c452c3359e16ecc5749a415da6e4d75
2016-10-17 08:13:38 -07:00
Emil Sjolander
72cd12ed13
Move flex basis calculation out into seperate function
...
Reviewed By: gkassabli
Differential Revision: D4028328
fbshipit-source-id: 6d5f3bf1321077675eaa65408a70c9dc92a675be
2016-10-17 05:43:50 -07:00
Emil Sjolander
d376155e2c
Fix justify content + min dimension usage in root
...
Reviewed By: gkassabli, lucasr
Differential Revision: D4021443
fbshipit-source-id: 00f58c6078ac3076221e1148aacc34712786deb5
2016-10-17 04:14:34 -07:00
Emil Sjolander
9a33f3f40e
Don't assume a node with a measure function is a leaf node
...
Reviewed By: gkassabli
Differential Revision: D4021096
fbshipit-source-id: 7e039239b1697a0ac42dce9f4b7e252a931bad7e
2016-10-14 04:43:38 -07:00
Georgiy Kassabli
ef021348af
Compatibility with Apple TVOS
...
Reviewed By: emilsjolander
Differential Revision: D4001901
fbshipit-source-id: f095b4ac0ba91addb28d877b411ec27ecff4aad6
2016-10-13 10:58:47 -07:00
Scott Wolchok
863459064f
Fix build with -Wmissing-prototypes
...
Reviewed By: mzlee
Differential Revision: D4012611
fbshipit-source-id: f56949d464e0ce602138b60f4abfd45b211be3b2
2016-10-12 21:13:45 -07:00
Kazuki Sakamoto
9673c885fd
Introduce CSSAssertSetFailFunc and CSSAsserFail to throw managed exception
...
Reviewed By: emilsjolander
Differential Revision: D3982084
fbshipit-source-id: 058a87c10ca89238362be4d8759cc00dd0c9b376
2016-10-07 12:43:58 -07:00
Kazuki Sakamoto
dd6d297c55
Introduce CSSNodeGetInstanceCount API
...
Reviewed By: emilsjolander
Differential Revision: D3981990
fbshipit-source-id: 98005ae1fc21d4c8802f24030fff9ffb00bd292d
2016-10-07 11:13:33 -07:00
Emil Sjolander
a75ec1153c
Free memory used in tests to enable use of valgrind
...
Reviewed By: javache
Differential Revision: D3937493
fbshipit-source-id: 23c6970d7769b081575d39de583ba954fc65a397
2016-09-29 04:13:33 -07:00
Emil Sjolander
b32a857d60
Fix bug introduced by D3886866
...
Reviewed By: lucasr
Differential Revision: D3923635
fbshipit-source-id: bfeb175bb40393be63cafb6a995b22701b87ffec
2016-09-27 10:14:35 -07:00
Emil Sjolander
0a9b6bedb3
BREAKING - Fix unconstraint sizing in main axis
...
Summary:
This fixes measuring of items in the main axis of a container. Previously items were in a lot of cases measured with UNSPECIFIED instead of AT_MOST. This was to support scrolling containers. The correct way to handle scrolling containers is to instead provide them with their own overflow value to activate this behavior. This is also similar to how the web works.
This is a breaking change. Most of your layouts will continue to function as before however some of them might not. Typically this is due to having a `flex: 1` style where it is currently a no-op due to being measured with an undefined size but after this change it may collapse your component to take zero size due to the implicit `flexBasis: 0` now being correctly treated. Removing the bad `flex: 1` style or changing it to `flexGrow: 1` should solve most if not all layout issues your see after this diff.
Reviewed By: majak
Differential Revision: D3876927
fbshipit-source-id: 81ea1c9d6574dd4564a3333f1b3617cf84b4022f
2016-09-26 06:13:56 -07:00
mattpodwysocki
2da08884b2
Introducing .NET version of css-layout using P/Invoke
...
Summary:
This version of the css-layout project includes support for .NET projects. Up in the air is how many configurations of .NET projects we allow for, such as Portable Class Libraries, Universal Windows Platform, .NET Core, etc. Still needs integration with Buck.
Closes https://github.com/facebook/css-layout/pull/220
Reviewed By: lucasr
Differential Revision: D3909367
Pulled By: emilsjolander
fbshipit-source-id: aaaa9c4ff2d3452649f256c3268cf873cf33a0b9
2016-09-22 16:28:38 -07:00
Emil Sjolander
375a5805d1
Cleanup some multiline code
...
Reviewed By: lucasr
Differential Revision: D3886866
fbshipit-source-id: e19c1be4af58605933f90b5bf381008338be2236
2016-09-20 10:30:15 -07:00
Emil Sjolander
10601c921e
Move justifyContent check into switch statement
...
Reviewed By: lucasr
Differential Revision: D3886861
fbshipit-source-id: 17ba2962016af34b5add3ce6d8355c9c305a35c0
2016-09-20 10:30:13 -07:00
Emil Sjolander
be140107b9
Remove empty line in function call
...
Reviewed By: lucasr
Differential Revision: D3886856
fbshipit-source-id: cf76ad9b6c85a62b9f2683618a6abe986d98acc2
2016-09-20 10:30:11 -07:00
Emil Sjolander
7f2bbf4263
Remove use of snake_case
...
Reviewed By: lucasr
Differential Revision: D3886849
fbshipit-source-id: eaf3f219fe1ccb717ba363dba0d2f475ffb204e3
2016-09-20 10:30:08 -07:00
Emil Sjolander
a6e1e33a50
Reverted commit D3855801
...
Summary: Introduce `overflow:scroll` so that scrolling can be implemented without the current overflow:visible hackiness. Currently we use AT_MOST to measure in the cross axis but not in the main axis. This was done to enable scrolling containers where children are not constraint in the main axis by their parent. This caused problems for non-scrolling containers though as it meant that their children cannot be measured correctly in the main axis. Introducing `overflow:scroll` fixes this.
Reviewed By: astreet
Differential Revision: D3855801
fbshipit-source-id: 3c365f9e6ef612fd9d9caaaa8c650e9702176e77
2016-09-14 11:28:34 -07:00
Emil Sjolander
1f9c9ecb4b
BREAKING - Fix unconstraint sizing in main axis
...
Summary: Introduce `overflow:scroll` so that scrolling can be implemented without the current overflow:visible hackiness. Currently we use AT_MOST to measure in the cross axis but not in the main axis. This was done to enable scrolling containers where children are not constraint in the main axis by their parent. This caused problems for non-scrolling containers though as it meant that their children cannot be measured correctly in the main axis. Introducing `overflow:scroll` fixes this.
Reviewed By: astreet
Differential Revision: D3855801
fbshipit-source-id: 6077b0bcb68fe5ddd4aa22926acab40ff4d83949
2016-09-14 09:14:02 -07:00
Emil Sjolander
8eee79b5d1
Remove legacy test suite
...
Reviewed By: lucasr
Differential Revision: D3863095
fbshipit-source-id: a2c4f87cd2263b4cc1fcdec4f2a0964f0696472f
2016-09-14 08:58:35 -07:00
Adam Comella
6897f40af7
Fix sizing of absolutely positioned nodes inside overflow:hidden parent
...
Summary:
When an absolutely positioned node appeared inside an overflow:hidden
parent, we were limiting its height. This is inconsistent with how
layout behaves on the web.
Closes https://github.com/facebook/css-layout/pull/218
Reviewed By: lucasr
Differential Revision: D3797285
Pulled By: emilsjolander
fbshipit-source-id: 98f98e77aa26edce86b9882c1cac284799b69a27
2016-08-31 08:13:41 -07:00
Emil Sjolander
e5aa29c195
Fix and add tests for cssedge priority
...
Reviewed By: lucasr
Differential Revision: D3791106
fbshipit-source-id: 3e0c943f94218848a1fbf36e5ae48dbc720ea923
2016-08-31 08:13:41 -07:00
Emil Sjolander
2a859eb7e3
Revert changes causing layout failures
...
Differential Revision: D3776987
fbshipit-source-id: 06bd154a36f895782f45511cd8cf49cc6d7cbe7d
2016-08-26 03:13:41 -07:00
Emil Sjolander
06ee832928
Generate tests for flex properties
...
Differential Revision: D3771513
fbshipit-source-id: 1b5edc7a28bb26217e8a6d10d1829d9031c3ae2e
2016-08-25 15:44:23 -07:00
rh389
d943e28bc6
Use quote style for local includes
...
Summary:
This PR changes `#include <CSSLayout/*.h>` to `#include "*.h"` within the `CSSLayout` directory.
Rationale: Quote includes are preferred for user (aka local/project) includes, whereas angle includes are preferred for standard libraries and external frameworks. In particular, XCode 7.1+ will not search user paths (even the current directory) when angle brackets are used unless "Always search user paths" is enabled - it is off by default and [Apple recommend](https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html#//apple_ref/doc/uid/TP40003931-CH3-SW110 ) that it is only enabled for backwards compatibility.
I think this is the best fix for https://github.com/facebook/react-native/issues/9014 , and seems like good practice in any case.
Closes https://github.com/facebook/css-layout/pull/217
Reviewed By: majak
Differential Revision: D3764132
Pulled By: emilsjolander
fbshipit-source-id: c8a6e8d19db71455922e3ba8f6c72bd66018fa84
2016-08-24 10:43:42 -07:00
Emil Sjolander
25f2a26ce9
Use const where possible
...
Reviewed By: IanChilds
Differential Revision: D3741999
fbshipit-source-id: 1ba7da5784c3047f2d4c03746890192f724aa65e
2016-08-22 06:59:03 -07:00
Emil Sjolander
50b0943c16
Remove unnecessary indirection
...
Reviewed By: IanChilds
Differential Revision: D3741988
fbshipit-source-id: fdb31dc45a478508b41c522f0e1b3ef842971b50
2016-08-22 06:59:03 -07:00
Emil Sjolander
0da5fd21c7
Compute edge values similar to how Spacing.java does it
...
Reviewed By: lexs
Differential Revision: D3728742
fbshipit-source-id: aa19400880afa49664f7bde72b1df45314e699bb
2016-08-17 10:44:01 -07:00
Emil Sjolander
fa9cf22074
Remove CSSPosition in favor of CSSEdge
...
Reviewed By: IanChilds
Differential Revision: D3728740
fbshipit-source-id: 19dc817a637b80d1f6df8d76982feb2e1fb2705a
2016-08-17 10:44:01 -07:00
Emil Sjolander
f7a22bc33c
Use single function for margin, position, padding, and border
...
Reviewed By: lucasr
Differential Revision: D3715201
fbshipit-source-id: ea81ed426f0f7853bb542355c01fc16ae4360238
2016-08-15 09:28:41 -07:00
Emil Sjolander
0ea4198009
Add support for flex-grow, flex-shrink, and flex-basis
...
Reviewed By: lucasr
Differential Revision: D3714520
fbshipit-source-id: 80d3a9a1e2b6f74b863bbe22357f2c9865fa290e
2016-08-15 09:28:41 -07:00
Emil Sjolander
451cc2dee7
Use library style imports
...
Reviewed By: IanChilds
Differential Revision: D3714512
fbshipit-source-id: 4c42d52b3ab92903e9e9451df0ca1564e2d33f0f
2016-08-15 09:28:41 -07:00
Emil Sjolander
043a6cd2c1
Update clang-format rules
...
Reviewed By: IanChilds
Differential Revision: D3714510
fbshipit-source-id: f6d0436346416aab023aacbedd70ea189e583e8d
2016-08-15 09:28:41 -07:00
Emil Sjolander
656f9f4b9d
Use modern initializer syntax instead of comments
...
Reviewed By: adamjernst
Differential Revision: D3698569
fbshipit-source-id: c92b18540140662979cf001aeedaa76504c6a3ac
2016-08-11 02:58:31 -07:00