mirror of
https://github.com/HackPlan/AsyncDisplayKit.git
synced 2026-06-19 06:26:13 +08:00
83 lines
2.8 KiB
Plaintext
83 lines
2.8 KiB
Plaintext
/*
|
|
* 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 "ASEnvironment.h"
|
|
#import "ASEnvironmentInternal.h"
|
|
#import <AsyncDisplayKit/ASAvailability.h>
|
|
|
|
ASEnvironmentLayoutOptionsState _ASEnvironmentLayoutOptionsStateMakeDefault()
|
|
{
|
|
return (ASEnvironmentLayoutOptionsState) {
|
|
// Default values can be defined in here
|
|
};
|
|
}
|
|
|
|
ASEnvironmentHierarchyState _ASEnvironmentHierarchyStateMakeDefault()
|
|
{
|
|
return (ASEnvironmentHierarchyState) {
|
|
// Default values can be defined in here
|
|
};
|
|
}
|
|
|
|
extern void ASDisplayTraitsClearDisplayContext(id<ASEnvironment> rootEnvironment)
|
|
{
|
|
ASEnvironmentState envState = [rootEnvironment environmentState];
|
|
ASEnvironmentDisplayTraits displayTraits = envState.displayTraits;
|
|
displayTraits.displayContext = nil;
|
|
envState.displayTraits = displayTraits;
|
|
[rootEnvironment setEnvironmentState:envState];
|
|
|
|
for (id<ASEnvironment> child in [rootEnvironment children]) {
|
|
ASEnvironmentStatePropagateDown(child, displayTraits);
|
|
}
|
|
}
|
|
|
|
ASEnvironmentDisplayTraits _ASEnvironmentDisplayTraitsMakeDefault()
|
|
{
|
|
return (ASEnvironmentDisplayTraits) {
|
|
// Default values can be defined in here
|
|
};
|
|
}
|
|
|
|
ASEnvironmentDisplayTraits ASEnvironmentDisplayTraitsFromUITraitCollection(UITraitCollection *traitCollection)
|
|
{
|
|
ASEnvironmentDisplayTraits displayTraits;
|
|
if (AS_AT_LEAST_IOS8) {
|
|
displayTraits.displayScale = traitCollection.displayScale;
|
|
displayTraits.horizontalSizeClass = traitCollection.horizontalSizeClass;
|
|
displayTraits.verticalSizeClass = traitCollection.verticalSizeClass;
|
|
displayTraits.userInterfaceIdiom = traitCollection.userInterfaceIdiom;
|
|
if (AS_AT_LEAST_IOS9) {
|
|
displayTraits.forceTouchCapability = traitCollection.forceTouchCapability;
|
|
}
|
|
}
|
|
return displayTraits;
|
|
}
|
|
|
|
BOOL ASEnvironmentDisplayTraitsIsEqualToASEnvironmentDisplayTraits(ASEnvironmentDisplayTraits displayTraits0, ASEnvironmentDisplayTraits displayTraits1)
|
|
{
|
|
return
|
|
displayTraits0.verticalSizeClass == displayTraits1.verticalSizeClass &&
|
|
displayTraits0.horizontalSizeClass == displayTraits1.horizontalSizeClass &&
|
|
displayTraits0.displayScale == displayTraits1.displayScale &&
|
|
displayTraits0.userInterfaceIdiom == displayTraits1.userInterfaceIdiom &&
|
|
displayTraits0.forceTouchCapability == displayTraits1.forceTouchCapability;
|
|
}
|
|
|
|
ASEnvironmentState ASEnvironmentStateMakeDefault()
|
|
{
|
|
return (ASEnvironmentState) {
|
|
.layoutOptionsState = _ASEnvironmentLayoutOptionsStateMakeDefault(),
|
|
.hierarchyState = _ASEnvironmentHierarchyStateMakeDefault(),
|
|
.displayTraits = _ASEnvironmentDisplayTraitsMakeDefault()
|
|
};
|
|
}
|
|
|