Skip to content

Commit d9be478

Browse files
authored
[ASLayout] General Layout Cleanup (facebookarchive#2920)
* Remove duplicate import * Move `ASLayoutController` related code out of CoreGraphics+ASConvenience * Further cleanup * Move private layout files to Privat/Layout * Move ASLayoutElementStylePrivate into Private/Layout * Further cleanup * Move tvOS related files to tvOS folder * Further cleanup
1 parent 9a5f6d3 commit d9be478

43 files changed

Lines changed: 225 additions & 195 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AsyncDisplayKit.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Pod::Spec.new do |spec|
2323
core.public_header_files = [
2424
'AsyncDisplayKit/*.h',
2525
'AsyncDisplayKit/Details/**/*.h',
26-
'AsyncDisplayKit/Layout/*.h',
26+
'AsyncDisplayKit/Layout/**/*.h',
2727
'Base/*.h',
2828
'AsyncDisplayKit/Debug/ASLayoutElementInspectorNode.h',
2929
'AsyncDisplayKit/TextKit/ASTextNodeTypes.h',

AsyncDisplayKit.xcodeproj/project.pbxproj

Lines changed: 83 additions & 75 deletions
Large diffs are not rendered by default.

AsyncDisplayKit/ASPagerNode.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
//
1212

1313
#import <AsyncDisplayKit/ASCollectionNode.h>
14-
#import <AsyncDisplayKit/ASDataController.h>
1514

1615
@class ASPagerNode;
1716
@class ASPagerFlowLayout;

AsyncDisplayKit/Details/ASAbstractLayoutController.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,20 @@
1313

1414
NS_ASSUME_NONNULL_BEGIN
1515

16+
ASDISPLAYNODE_EXTERN_C_BEGIN
17+
18+
FOUNDATION_EXPORT ASRangeTuningParameters const ASRangeTuningParametersZero;
19+
20+
FOUNDATION_EXPORT BOOL ASRangeTuningParametersEqualToRangeTuningParameters(ASRangeTuningParameters lhs, ASRangeTuningParameters rhs);
21+
22+
FOUNDATION_EXPORT ASDirectionalScreenfulBuffer ASDirectionalScreenfulBufferHorizontal(ASScrollDirection scrollDirection, ASRangeTuningParameters rangeTuningParameters);
23+
24+
FOUNDATION_EXPORT ASDirectionalScreenfulBuffer ASDirectionalScreenfulBufferVertical(ASScrollDirection scrollDirection, ASRangeTuningParameters rangeTuningParameters);
25+
26+
FOUNDATION_EXPORT CGRect CGRectExpandToRangeWithScrollableDirections(CGRect rect, ASRangeTuningParameters tuningParameters, ASScrollDirection scrollableDirections, ASScrollDirection scrollDirection);
27+
28+
ASDISPLAYNODE_EXTERN_C_END
29+
1630
@interface ASAbstractLayoutController : NSObject <ASLayoutController>
1731

1832
@end

AsyncDisplayKit/Details/ASAbstractLayoutController.mm

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
//
1010

1111
#import "ASAbstractLayoutController.h"
12+
1213
#import "ASAssert.h"
14+
1315
#include <vector>
1416

1517
extern ASRangeTuningParameters const ASRangeTuningParametersZero = {};
@@ -19,6 +21,68 @@ extern BOOL ASRangeTuningParametersEqualToRangeTuningParameters(ASRangeTuningPar
1921
return lhs.leadingBufferScreenfuls == rhs.leadingBufferScreenfuls && lhs.trailingBufferScreenfuls == rhs.trailingBufferScreenfuls;
2022
}
2123

24+
extern ASDirectionalScreenfulBuffer ASDirectionalScreenfulBufferHorizontal(ASScrollDirection scrollDirection,
25+
ASRangeTuningParameters rangeTuningParameters)
26+
{
27+
ASDirectionalScreenfulBuffer horizontalBuffer = {0, 0};
28+
BOOL movingRight = ASScrollDirectionContainsRight(scrollDirection);
29+
30+
horizontalBuffer.positiveDirection = movingRight ? rangeTuningParameters.leadingBufferScreenfuls
31+
: rangeTuningParameters.trailingBufferScreenfuls;
32+
horizontalBuffer.negativeDirection = movingRight ? rangeTuningParameters.trailingBufferScreenfuls
33+
: rangeTuningParameters.leadingBufferScreenfuls;
34+
return horizontalBuffer;
35+
}
36+
37+
extern ASDirectionalScreenfulBuffer ASDirectionalScreenfulBufferVertical(ASScrollDirection scrollDirection,
38+
ASRangeTuningParameters rangeTuningParameters)
39+
{
40+
ASDirectionalScreenfulBuffer verticalBuffer = {0, 0};
41+
BOOL movingDown = ASScrollDirectionContainsDown(scrollDirection);
42+
43+
verticalBuffer.positiveDirection = movingDown ? rangeTuningParameters.leadingBufferScreenfuls
44+
: rangeTuningParameters.trailingBufferScreenfuls;
45+
verticalBuffer.negativeDirection = movingDown ? rangeTuningParameters.trailingBufferScreenfuls
46+
: rangeTuningParameters.leadingBufferScreenfuls;
47+
return verticalBuffer;
48+
}
49+
50+
extern CGRect CGRectExpandHorizontally(CGRect rect, ASDirectionalScreenfulBuffer buffer)
51+
{
52+
CGFloat negativeDirectionWidth = buffer.negativeDirection * rect.size.width;
53+
CGFloat positiveDirectionWidth = buffer.positiveDirection * rect.size.width;
54+
rect.size.width = negativeDirectionWidth + rect.size.width + positiveDirectionWidth;
55+
rect.origin.x -= negativeDirectionWidth;
56+
return rect;
57+
}
58+
59+
extern CGRect CGRectExpandVertically(CGRect rect, ASDirectionalScreenfulBuffer buffer)
60+
{
61+
CGFloat negativeDirectionHeight = buffer.negativeDirection * rect.size.height;
62+
CGFloat positiveDirectionHeight = buffer.positiveDirection * rect.size.height;
63+
rect.size.height = negativeDirectionHeight + rect.size.height + positiveDirectionHeight;
64+
rect.origin.y -= negativeDirectionHeight;
65+
return rect;
66+
}
67+
68+
extern CGRect CGRectExpandToRangeWithScrollableDirections(CGRect rect, ASRangeTuningParameters tuningParameters,
69+
ASScrollDirection scrollableDirections, ASScrollDirection scrollDirection)
70+
{
71+
// Can scroll horizontally - expand the range appropriately
72+
if (ASScrollDirectionContainsHorizontalDirection(scrollableDirections)) {
73+
ASDirectionalScreenfulBuffer horizontalBuffer = ASDirectionalScreenfulBufferHorizontal(scrollDirection, tuningParameters);
74+
rect = CGRectExpandHorizontally(rect, horizontalBuffer);
75+
}
76+
77+
// Can scroll vertically - expand the range appropriately
78+
if (ASScrollDirectionContainsVerticalDirection(scrollableDirections)) {
79+
ASDirectionalScreenfulBuffer verticalBuffer = ASDirectionalScreenfulBufferVertical(scrollDirection, tuningParameters);
80+
rect = CGRectExpandVertically(rect, verticalBuffer);
81+
}
82+
83+
return rect;
84+
}
85+
2286
@interface ASAbstractLayoutController () {
2387
std::vector<std::vector<ASRangeTuningParameters>> _tuningParameters;
2488
CGSize _viewportSize;

AsyncDisplayKit/Details/ASCollectionViewFlowLayoutInspector.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
#pragma once
1212

13-
#include "ASCollectionViewLayoutInspector.h"
13+
#import "ASCollectionViewLayoutInspector.h"
1414

1515
NS_ASSUME_NONNULL_BEGIN
1616

AsyncDisplayKit/Details/ASLayoutController.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,20 @@ NS_ASSUME_NONNULL_BEGIN
1818

1919
@class ASCellNode;
2020

21+
ASDISPLAYNODE_EXTERN_C_BEGIN
22+
2123
typedef struct {
2224
CGFloat leadingBufferScreenfuls;
2325
CGFloat trailingBufferScreenfuls;
2426
} ASRangeTuningParameters;
2527

26-
FOUNDATION_EXPORT ASRangeTuningParameters const ASRangeTuningParametersZero;
28+
struct ASDirectionalScreenfulBuffer {
29+
CGFloat positiveDirection; // Positive relative to iOS Core Animation layer coordinate space.
30+
CGFloat negativeDirection;
31+
};
32+
typedef struct ASDirectionalScreenfulBuffer ASDirectionalScreenfulBuffer;
2733

28-
FOUNDATION_EXPORT BOOL ASRangeTuningParametersEqualToRangeTuningParameters(ASRangeTuningParameters lhs, ASRangeTuningParameters rhs);
34+
ASDISPLAYNODE_EXTERN_C_END
2935

3036
@protocol ASLayoutController <NSObject>
3137

AsyncDisplayKit/Details/ASScrollDirection.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@
99
//
1010

1111
#import <Foundation/Foundation.h>
12+
#import <CoreGraphics/CGAffineTransform.h>
1213

13-
#import "ASBaseDefines.h"
14-
15-
#include <CoreGraphics/CGAffineTransform.h>
14+
#import <AsyncDisplayKit/ASBaseDefines.h>
1615

1716
NS_ASSUME_NONNULL_BEGIN
1817

AsyncDisplayKit/Details/CoreGraphics+ASConvenience.h

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99
//
1010

1111
#import <Foundation/Foundation.h>
12+
1213
#import <CoreGraphics/CoreGraphics.h>
14+
#import <tgmath.h>
15+
16+
#import <AsyncDisplayKit/ASBaseDefines.h>
1317

14-
#import "ASBaseDefines.h"
15-
#import "ASLayoutController.h"
16-
#include "tgmath.h"
1718

1819
#ifndef CGFLOAT_EPSILON
1920
#if CGFLOAT_IS_DOUBLE
@@ -50,23 +51,6 @@ ASDISPLAYNODE_INLINE BOOL CGSizeEqualToSizeWithIn(CGSize size1, CGSize size2, CG
5051
return fabs(size1.width - size2.width) < delta && fabs(size1.height - size2.height) < delta;
5152
};
5253

53-
struct ASDirectionalScreenfulBuffer {
54-
CGFloat positiveDirection; // Positive relative to iOS Core Animation layer coordinate space.
55-
CGFloat negativeDirection;
56-
};
57-
typedef struct ASDirectionalScreenfulBuffer ASDirectionalScreenfulBuffer;
58-
59-
ASDirectionalScreenfulBuffer ASDirectionalScreenfulBufferHorizontal(ASScrollDirection scrollDirection,
60-
ASRangeTuningParameters rangeTuningParameters);
61-
62-
ASDirectionalScreenfulBuffer ASDirectionalScreenfulBufferVertical(ASScrollDirection scrollDirection,
63-
ASRangeTuningParameters rangeTuningParameters);
64-
65-
CGRect CGRectExpandToRangeWithScrollableDirections(CGRect rect,
66-
ASRangeTuningParameters tuningParameters,
67-
ASScrollDirection scrollableDirections,
68-
ASScrollDirection scrollDirection);
69-
7054
ASDISPLAYNODE_EXTERN_C_END
7155

7256
NS_ASSUME_NONNULL_END

AsyncDisplayKit/Details/CoreGraphics+ASConvenience.m

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -10,65 +10,3 @@
1010

1111
#import "CoreGraphics+ASConvenience.h"
1212

13-
ASDirectionalScreenfulBuffer ASDirectionalScreenfulBufferHorizontal(ASScrollDirection scrollDirection,
14-
ASRangeTuningParameters rangeTuningParameters)
15-
{
16-
ASDirectionalScreenfulBuffer horizontalBuffer = {0, 0};
17-
BOOL movingRight = ASScrollDirectionContainsRight(scrollDirection);
18-
19-
horizontalBuffer.positiveDirection = movingRight ? rangeTuningParameters.leadingBufferScreenfuls
20-
: rangeTuningParameters.trailingBufferScreenfuls;
21-
horizontalBuffer.negativeDirection = movingRight ? rangeTuningParameters.trailingBufferScreenfuls
22-
: rangeTuningParameters.leadingBufferScreenfuls;
23-
return horizontalBuffer;
24-
}
25-
26-
ASDirectionalScreenfulBuffer ASDirectionalScreenfulBufferVertical(ASScrollDirection scrollDirection,
27-
ASRangeTuningParameters rangeTuningParameters)
28-
{
29-
ASDirectionalScreenfulBuffer verticalBuffer = {0, 0};
30-
BOOL movingDown = ASScrollDirectionContainsDown(scrollDirection);
31-
32-
verticalBuffer.positiveDirection = movingDown ? rangeTuningParameters.leadingBufferScreenfuls
33-
: rangeTuningParameters.trailingBufferScreenfuls;
34-
verticalBuffer.negativeDirection = movingDown ? rangeTuningParameters.trailingBufferScreenfuls
35-
: rangeTuningParameters.leadingBufferScreenfuls;
36-
return verticalBuffer;
37-
}
38-
39-
CGRect CGRectExpandHorizontally(CGRect rect, ASDirectionalScreenfulBuffer buffer)
40-
{
41-
CGFloat negativeDirectionWidth = buffer.negativeDirection * rect.size.width;
42-
CGFloat positiveDirectionWidth = buffer.positiveDirection * rect.size.width;
43-
rect.size.width = negativeDirectionWidth + rect.size.width + positiveDirectionWidth;
44-
rect.origin.x -= negativeDirectionWidth;
45-
return rect;
46-
}
47-
48-
CGRect CGRectExpandVertically(CGRect rect, ASDirectionalScreenfulBuffer buffer)
49-
{
50-
CGFloat negativeDirectionHeight = buffer.negativeDirection * rect.size.height;
51-
CGFloat positiveDirectionHeight = buffer.positiveDirection * rect.size.height;
52-
rect.size.height = negativeDirectionHeight + rect.size.height + positiveDirectionHeight;
53-
rect.origin.y -= negativeDirectionHeight;
54-
return rect;
55-
}
56-
57-
CGRect CGRectExpandToRangeWithScrollableDirections(CGRect rect, ASRangeTuningParameters tuningParameters,
58-
ASScrollDirection scrollableDirections, ASScrollDirection scrollDirection)
59-
{
60-
// Can scroll horizontally - expand the range appropriately
61-
if (ASScrollDirectionContainsHorizontalDirection(scrollableDirections)) {
62-
ASDirectionalScreenfulBuffer horizontalBuffer = ASDirectionalScreenfulBufferHorizontal(scrollDirection, tuningParameters);
63-
rect = CGRectExpandHorizontally(rect, horizontalBuffer);
64-
}
65-
66-
// Can scroll vertically - expand the range appropriately
67-
if (ASScrollDirectionContainsVerticalDirection(scrollableDirections)) {
68-
ASDirectionalScreenfulBuffer verticalBuffer = ASDirectionalScreenfulBufferVertical(scrollDirection, tuningParameters);
69-
rect = CGRectExpandVertically(rect, verticalBuffer);
70-
}
71-
72-
return rect;
73-
}
74-

0 commit comments

Comments
 (0)