Swiftgram/AsyncDisplayKit/Details/ASIndexedNodeContext.h
Michael Schneider 12e4e5b048 [Layout] Improve Layout System Abstraction (#2941)
* Improve Layout Abstraction

* Address naming comments

- Rename ASPrimitiveTraitEnvironment to ASTraitEnvironment
- Rename ASPrimitiveTraitCollectionPropagateDown to ASTraitCollectionPropagateDown
- Rename progagateNewPrimitiveTraitCollection: to propagateNewTraitCollection:
2017-02-03 13:04:20 -08:00

51 lines
1.7 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// ASIndexedNodeContext.h
// AsyncDisplayKit
//
// Created by Huy Nguyen on 2/28/16.
//
// 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 <AsyncDisplayKit/ASDataController.h>
#import <AsyncDisplayKit/ASTraitCollection.h>
NS_ASSUME_NONNULL_BEGIN
@interface ASIndexedNodeContext : NSObject
/**
* The index path at which this node was originally inserted. Don't rely on this
* property too heavily we should remove it in the future.
*/
@property (nonatomic, readonly, strong) NSIndexPath *indexPath;
@property (nonatomic, readonly, copy, nullable) NSString *supplementaryElementKind;
@property (nonatomic, readonly, assign) ASSizeRange constrainedSize;
@property (weak, nonatomic) id<ASTraitEnvironment> traitEnvironment;
- (instancetype)initWithNodeBlock:(ASCellNodeBlock)nodeBlock
indexPath:(NSIndexPath *)indexPath
supplementaryElementKind:(nullable NSString *)supplementaryElementKind
constrainedSize:(ASSizeRange)constrainedSize
environment:(id<ASTraitEnvironment>)environment;
/**
* @return The node, running the node block if necessary. The node block will be discarded
* after the first time it is run.
*/
@property (strong, readonly) ASCellNode *node;
/**
* @return The node, if the node block has been run already.
*/
@property (strong, readonly, nullable) ASCellNode *nodeIfAllocated;
+ (NSArray<NSIndexPath *> *)indexPathsFromContexts:(NSArray<ASIndexedNodeContext *> *)contexts;
@end
NS_ASSUME_NONNULL_END