Swiftgram/AsyncDisplayKit/Private/ASStackUnpositionedLayout.h
Huy Nguyen 95e787b226 Remove stack children type:
- ASLayoutable requires mutable properties that are used when attached to a stack layout.
- Thus, ASLayoutable objects (including ASDisplayNode) can be injected into stack layout directly.
- ASStackLayoutNodeChild no longer needed.
- Tests and Kitten sample updated.
2015-06-26 11:47:42 +07:00

37 lines
1.4 KiB
Objective-C

/*
* Copyright (c) 2014-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#import <vector>
#import "ASLayout.h"
#import "ASStackLayoutNode.h"
struct ASStackUnpositionedItem {
/** The original source child. */
id<ASLayoutable> child;
/** The proposed layout. */
ASLayout *layout;
};
/** Represents a set of stack layout children that have their final layout computed, but are not yet positioned. */
struct ASStackUnpositionedLayout {
/** A set of proposed child layouts, not yet positioned. */
const std::vector<ASStackUnpositionedItem> items;
/** The total size of the children in the stack dimension, including all spacing. */
const CGFloat stackDimensionSum;
/** The amount by which stackDimensionSum violates constraints. If positive, less than min; negative, greater than max. */
const CGFloat violation;
/** Given a set of children, computes the unpositioned layouts for those children. */
static ASStackUnpositionedLayout compute(const std::vector<id<ASLayoutable>> &children,
const ASStackLayoutNodeStyle &style,
const ASSizeRange &sizeRange);
};