diff --git a/AsyncDisplayKit/Layout/ASDimension.h b/AsyncDisplayKit/Layout/ASDimension.h index ee642a59fe..a1640f350b 100644 --- a/AsyncDisplayKit/Layout/ASDimension.h +++ b/AsyncDisplayKit/Layout/ASDimension.h @@ -172,7 +172,7 @@ ASDISPLAYNODE_INLINE AS_WARN_UNUSED_RESULT CGFloat ASDimensionResolve(ASDimensio @end -#pragma mark - ASRelativeSize +#pragma mark - ASLayoutSize /** * Expresses a size with relative dimensions. Only used for calculations internally in ASDimension.h @@ -180,14 +180,14 @@ ASDISPLAYNODE_INLINE AS_WARN_UNUSED_RESULT CGFloat ASDimensionResolve(ASDimensio typedef struct { ASDimension width; ASDimension height; -} ASRelativeSize; +} ASLayoutSize; /* - * Creates an ASRelativeSize with provided min and max dimensions. + * Creates an ASLayoutSize with provided min and max dimensions. */ -ASDISPLAYNODE_INLINE AS_WARN_UNUSED_RESULT ASRelativeSize ASRelativeSizeMake(ASDimension width, ASDimension height) +ASDISPLAYNODE_INLINE AS_WARN_UNUSED_RESULT ASLayoutSize ASLayoutSizeMake(ASDimension width, ASDimension height) { - ASRelativeSize size; + ASLayoutSize size; size.width = width; size.height = height; return size; @@ -196,7 +196,7 @@ ASDISPLAYNODE_INLINE AS_WARN_UNUSED_RESULT ASRelativeSize ASRelativeSizeMake(ASD /* * Returns a string representation of a relative size. */ -ASDISPLAYNODE_INLINE AS_WARN_UNUSED_RESULT NSString *NSStringFromASRelativeSize(ASRelativeSize size); +ASDISPLAYNODE_INLINE AS_WARN_UNUSED_RESULT NSString *NSStringFromASLayoutSize(ASLayoutSize size); #pragma mark - ASSizeRange diff --git a/AsyncDisplayKit/Layout/ASDimension.mm b/AsyncDisplayKit/Layout/ASDimension.mm index aaf534d828..260b232e51 100644 --- a/AsyncDisplayKit/Layout/ASDimension.mm +++ b/AsyncDisplayKit/Layout/ASDimension.mm @@ -70,17 +70,17 @@ NSString *NSStringFromASDimension(ASDimension dimension) @end -#pragma mark - ASRelativeSize +#pragma mark - ASLayoutSize // ** Resolve this relative size relative to a parent size. */ -ASDISPLAYNODE_INLINE CGSize ASRelativeSizeResolveSize(ASRelativeSize relativeSize, CGSize parentSize, CGSize autoSize) +ASDISPLAYNODE_INLINE CGSize ASLayoutSizeResolveSize(ASLayoutSize layoutSize, CGSize parentSize, CGSize autoSize) { - return CGSizeMake(ASDimensionResolve(relativeSize.width, parentSize.width, autoSize.width), - ASDimensionResolve(relativeSize.height, parentSize.height, autoSize.height)); + return CGSizeMake(ASDimensionResolve(layoutSize.width, parentSize.width, autoSize.width), + ASDimensionResolve(layoutSize.height, parentSize.height, autoSize.height)); } -// ** Returns a string formatted to contain the data from an ASRelativeSize. */ -ASDISPLAYNODE_INLINE NSString *NSStringFromASRelativeSize(ASRelativeSize size) +// ** Returns a string formatted to contain the data from an ASLayoutSize. */ +ASDISPLAYNODE_INLINE NSString *NSStringFromASLayoutSize(ASLayoutSize size) { return [NSString stringWithFormat:@"{%@, %@}", NSStringFromASDimension(size.width), @@ -94,9 +94,9 @@ NSString *NSStringFromASLayoutElementSize(ASLayoutElementSize size) { return [NSString stringWithFormat: @"", - NSStringFromASRelativeSize(ASRelativeSizeMake(size.width, size.height)), - NSStringFromASRelativeSize(ASRelativeSizeMake(size.minWidth, size.minHeight)), - NSStringFromASRelativeSize(ASRelativeSizeMake(size.maxWidth, size.maxHeight))]; + NSStringFromASLayoutSize(ASLayoutSizeMake(size.width, size.height)), + NSStringFromASLayoutSize(ASLayoutSizeMake(size.minWidth, size.minHeight)), + NSStringFromASLayoutSize(ASLayoutSizeMake(size.maxWidth, size.maxHeight))]; } ASDISPLAYNODE_INLINE void ASLayoutElementSizeConstrain(CGFloat minVal, CGFloat exactVal, CGFloat maxVal, CGFloat *outMin, CGFloat *outMax) @@ -133,9 +133,9 @@ ASDISPLAYNODE_INLINE void ASLayoutElementSizeConstrain(CGFloat minVal, CGFloat e ASSizeRange ASLayoutElementSizeResolveAutoSize(ASLayoutElementSize size, const CGSize parentSize, ASSizeRange autoASSizeRange) { - CGSize resolvedExact = ASRelativeSizeResolveSize(ASRelativeSizeMake(size.width, size.height), parentSize, {NAN, NAN}); - CGSize resolvedMin = ASRelativeSizeResolveSize(ASRelativeSizeMake(size.minWidth, size.minHeight), parentSize, autoASSizeRange.min); - CGSize resolvedMax = ASRelativeSizeResolveSize(ASRelativeSizeMake(size.maxWidth, size.maxHeight), parentSize, autoASSizeRange.max); + CGSize resolvedExact = ASLayoutSizeResolveSize(ASLayoutSizeMake(size.width, size.height), parentSize, {NAN, NAN}); + CGSize resolvedMin = ASLayoutSizeResolveSize(ASLayoutSizeMake(size.minWidth, size.minHeight), parentSize, autoASSizeRange.min); + CGSize resolvedMax = ASLayoutSizeResolveSize(ASLayoutSizeMake(size.maxWidth, size.maxHeight), parentSize, autoASSizeRange.max); CGSize rangeMin, rangeMax; ASLayoutElementSizeConstrain(resolvedMin.width, resolvedExact.width, resolvedMax.width, &rangeMin.width, &rangeMax.width); diff --git a/AsyncDisplayKit/Layout/ASLayoutElement.h b/AsyncDisplayKit/Layout/ASLayoutElement.h index 47881c6e8a..e7680abc0b 100644 --- a/AsyncDisplayKit/Layout/ASLayoutElement.h +++ b/AsyncDisplayKit/Layout/ASLayoutElement.h @@ -247,7 +247,7 @@ extern NSString * const ASLayoutElementStyleLayoutPositionProperty; * and the preferredSize exceeds these, the minSize or maxSize will be enforced. If this optional value is not * provided, the layout element’s size will default to it’s intrinsic content size provided calculateSizeThatFits: * - * @discussion This method is optional, but one of either preferredSize or preferredRelativeSize is required + * @discussion This method is optional, but one of either preferredSize or preferredLayoutSize is required * for nodes that either have no intrinsic content size or * should be laid out at a different size than its intrinsic content size. For example, this property could be * set on an ASImageNode to display at a size different from the underlying image size. @@ -280,27 +280,27 @@ extern NSString * const ASLayoutElementStyleLayoutPositionProperty; - (CGSize)maxSize UNAVAILABLE_ATTRIBUTE; /** - * @abstract Provides a suggested RELATIVE size for a layout element. An ASRelativeSize uses percentages rather - * than points to specify layout. E.g. width should be 50% of the parent’s width. If the optional minRelativeSize or - * maxRelativeSize are provided, and the preferredRelativeSize exceeds these, the minRelativeSize or maxRelativeSize + * @abstract Provides a suggested RELATIVE size for a layout element. An ASLayoutSize uses percentages rather + * than points to specify layout. E.g. width should be 50% of the parent’s width. If the optional minLayoutSize or + * maxLayoutSize are provided, and the preferredLayoutSize exceeds these, the minLayoutSize or maxLayoutSize * will be enforced. If this optional value is not provided, the layout element’s size will default to its intrinsic content size * provided calculateSizeThatFits: */ -@property (nonatomic, assign, readwrite) ASRelativeSize preferredRelativeSize; +@property (nonatomic, assign, readwrite) ASLayoutSize preferredLayoutSize; /** * @abstract An optional property that provides a minimum RELATIVE size bound for a layout element. If provided, this * restriction will always be enforced. If a parent layout element’s minimum relative size is smaller than its child’s minimum * relative size, the child’s minimum relative size will be enforced and its size will extend out of the layout spec’s. */ -@property (nonatomic, assign, readwrite) ASRelativeSize minRelativeSize; +@property (nonatomic, assign, readwrite) ASLayoutSize minLayoutSize; /** * @abstract An optional property that provides a maximum RELATIVE size bound for a layout element. If provided, this * restriction will always be enforced. If a parent layout element’s maximum relative size is smaller than its child’s maximum * relative size, the child’s maximum relative size will be enforced and its size will extend out of the layout spec’s. */ -@property (nonatomic, assign, readwrite) ASRelativeSize maxRelativeSize; +@property (nonatomic, assign, readwrite) ASLayoutSize maxLayoutSize; #pragma mark - ASStackLayoutElement diff --git a/AsyncDisplayKit/Layout/ASLayoutElement.mm b/AsyncDisplayKit/Layout/ASLayoutElement.mm index ac1fe5573a..8387c2ef2e 100644 --- a/AsyncDisplayKit/Layout/ASLayoutElement.mm +++ b/AsyncDisplayKit/Layout/ASLayoutElement.mm @@ -113,7 +113,7 @@ do {\ } @dynamic width, height, minWidth, maxWidth, minHeight, maxHeight; -@dynamic preferredSize, minSize, maxSize, preferredRelativeSize, minRelativeSize, maxRelativeSize; +@dynamic preferredSize, minSize, maxSize, preferredLayoutSize, minLayoutSize, maxLayoutSize; #pragma mark - Lifecycle @@ -250,40 +250,40 @@ do {\ self.maxHeight = ASDimensionMakeWithPoints(maxSize.height); } -- (ASRelativeSize)preferredRelativeSize +- (ASLayoutSize)preferredLayoutSize { ASDN::MutexLocker l(__instanceLock__); - return ASRelativeSizeMake(_size.width, _size.height); + return ASLayoutSizeMake(_size.width, _size.height); } -- (void)setPreferredRelativeSize:(ASRelativeSize)preferredRelativeSize +- (void)setPreferredLayoutSize:(ASLayoutSize)preferredLayoutSize { - self.width = preferredRelativeSize.width; - self.height = preferredRelativeSize.height; + self.width = preferredLayoutSize.width; + self.height = preferredLayoutSize.height; } -- (ASRelativeSize)minRelativeSize +- (ASLayoutSize)minLayoutSize { ASDN::MutexLocker l(__instanceLock__); - return ASRelativeSizeMake(_size.minWidth, _size.minHeight); + return ASLayoutSizeMake(_size.minWidth, _size.minHeight); } -- (void)setMinRelativeSize:(ASRelativeSize)minRelativeSize +- (void)setMinLayoutSize:(ASLayoutSize)minLayoutSize { - self.minWidth = minRelativeSize.width; - self.minHeight = minRelativeSize.height; + self.minWidth = minLayoutSize.width; + self.minHeight = minLayoutSize.height; } -- (ASRelativeSize)maxRelativeSize +- (ASLayoutSize)maxLayoutSize { ASDN::MutexLocker l(__instanceLock__); - return ASRelativeSizeMake(_size.maxWidth, _size.maxHeight); + return ASLayoutSizeMake(_size.maxWidth, _size.maxHeight); } -- (void)setMaxRelativeSize:(ASRelativeSize)maxRelativeSize +- (void)setMaxLayoutSize:(ASLayoutSize)maxLayoutSize { - self.maxWidth = maxRelativeSize.width; - self.maxHeight = maxRelativeSize.height; + self.maxWidth = maxLayoutSize.width; + self.maxHeight = maxLayoutSize.height; } diff --git a/AsyncDisplayKitTests/ASLayoutElementStyleTests.m b/AsyncDisplayKitTests/ASLayoutElementStyleTests.m index ecdbeff6bf..4e749d8243 100644 --- a/AsyncDisplayKitTests/ASLayoutElementStyleTests.m +++ b/AsyncDisplayKitTests/ASLayoutElementStyleTests.m @@ -73,29 +73,29 @@ XCTAssertTrue(ASDimensionEqualToDimension(style.maxHeight, ASDimensionMakeWithPoints(size.height))); } -- (void)setSettingSizeViaRelativeSize +- (void)setSettingSizeViaLayoutSize { ASLayoutElementStyle *style = [ASLayoutElementStyle new]; - ASRelativeSize relativeSize = ASRelativeSizeMake(ASDimensionMake(100), ASDimensionMake(100)); + ASLayoutSize layoutSize = ASLayoutSizeMake(ASDimensionMake(100), ASDimensionMake(100)); - style.preferredRelativeSize = relativeSize; - XCTAssertTrue(ASDimensionEqualToDimension(style.width, relativeSize.width)); - XCTAssertTrue(ASDimensionEqualToDimension(style.height, relativeSize.height)); - XCTAssertTrue(ASDimensionEqualToDimension(style.preferredRelativeSize.width, relativeSize.width)); - XCTAssertTrue(ASDimensionEqualToDimension(style.preferredRelativeSize.height, relativeSize.height)); + style.preferredLayoutSize = layoutSize; + XCTAssertTrue(ASDimensionEqualToDimension(style.width, layoutSize.width)); + XCTAssertTrue(ASDimensionEqualToDimension(style.height, layoutSize.height)); + XCTAssertTrue(ASDimensionEqualToDimension(style.preferredLayoutSize.width, layoutSize.width)); + XCTAssertTrue(ASDimensionEqualToDimension(style.preferredLayoutSize.height, layoutSize.height)); - style.minRelativeSize = relativeSize; - XCTAssertTrue(ASDimensionEqualToDimension(style.minWidth, relativeSize.width)); - XCTAssertTrue(ASDimensionEqualToDimension(style.minHeight, relativeSize.height)); - XCTAssertTrue(ASDimensionEqualToDimension(style.minRelativeSize.width, relativeSize.width)); - XCTAssertTrue(ASDimensionEqualToDimension(style.minRelativeSize.height, relativeSize.height)); + style.minLayoutSize = layoutSize; + XCTAssertTrue(ASDimensionEqualToDimension(style.minWidth, layoutSize.width)); + XCTAssertTrue(ASDimensionEqualToDimension(style.minHeight, layoutSize.height)); + XCTAssertTrue(ASDimensionEqualToDimension(style.minLayoutSize.width, layoutSize.width)); + XCTAssertTrue(ASDimensionEqualToDimension(style.minLayoutSize.height, layoutSize.height)); - style.maxRelativeSize = relativeSize; - XCTAssertTrue(ASDimensionEqualToDimension(style.maxWidth, relativeSize.width)); - XCTAssertTrue(ASDimensionEqualToDimension(style.maxHeight, relativeSize.height)); - XCTAssertTrue(ASDimensionEqualToDimension(style.maxRelativeSize.width, relativeSize.width)); - XCTAssertTrue(ASDimensionEqualToDimension(style.maxRelativeSize.height, relativeSize.height)); + style.maxLayoutSize = layoutSize; + XCTAssertTrue(ASDimensionEqualToDimension(style.maxWidth, layoutSize.width)); + XCTAssertTrue(ASDimensionEqualToDimension(style.maxHeight, layoutSize.height)); + XCTAssertTrue(ASDimensionEqualToDimension(style.maxLayoutSize.width, layoutSize.width)); + XCTAssertTrue(ASDimensionEqualToDimension(style.maxLayoutSize.height, layoutSize.height)); } - (void)testSettingPropertiesWillCallDelegate