mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
Add Layout nodes.
- The code is forked from LayoutComponents in ComponentKit. - Public interfaces are modified to be strictly Objective-C. As a result, users are not forced to switch to Objective-C++, the linker can happily compile and Swift fans can continue using the mighty ASDK.
This commit is contained in:
36
AsyncDisplayKit/Private/ASStackUnpositionedLayout.h
Normal file
36
AsyncDisplayKit/Private/ASStackUnpositionedLayout.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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. */
|
||||
ASStackLayoutNodeChild *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<ASStackLayoutNodeChild *> &children,
|
||||
const ASStackLayoutNodeStyle &style,
|
||||
const ASSizeRange &sizeRange);
|
||||
};
|
||||
Reference in New Issue
Block a user