Files
AsyncDisplayKit/AsyncDisplayKit/Details/ASEnvironment.mm
2016-05-10 14:44:43 -07:00

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()
};
}