Commit 5a76e020 by Daniel Dahan

finished preprocessors

parent b0e21e3b
...@@ -12,9 +12,10 @@ ...@@ -12,9 +12,10 @@
965FE9651FDCCE910098BDD0 /* MotionProgressRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE9641FDCCE910098BDD0 /* MotionProgressRunner.swift */; }; 965FE9651FDCCE910098BDD0 /* MotionProgressRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE9641FDCCE910098BDD0 /* MotionProgressRunner.swift */; };
965FE9671FDD99800098BDD0 /* Motion+Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE9661FDD99800098BDD0 /* Motion+Start.swift */; }; 965FE9671FDD99800098BDD0 /* Motion+Start.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE9661FDD99800098BDD0 /* Motion+Start.swift */; };
965FE9691FDDA1F20098BDD0 /* MotionViewOrderStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE9681FDDA1F20098BDD0 /* MotionViewOrderStrategy.swift */; }; 965FE9691FDDA1F20098BDD0 /* MotionViewOrderStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE9681FDDA1F20098BDD0 /* MotionViewOrderStrategy.swift */; };
965FE96B1FDDA4EA0098BDD0 /* BaseMotionPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE96A1FDDA4EA0098BDD0 /* BaseMotionPreprocessor.swift */; }; 965FE96B1FDDA4EA0098BDD0 /* MotionCorePreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE96A1FDDA4EA0098BDD0 /* MotionCorePreprocessor.swift */; };
965FE96D1FDDA6400098BDD0 /* MotionCoreAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE96C1FDDA6400098BDD0 /* MotionCoreAnimator.swift */; }; 965FE96D1FDDA6400098BDD0 /* MotionCoreAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE96C1FDDA6400098BDD0 /* MotionCoreAnimator.swift */; };
965FE96F1FDEFA8B0098BDD0 /* Motion+Animate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE96E1FDEFA8B0098BDD0 /* Motion+Animate.swift */; }; 965FE96F1FDEFA8B0098BDD0 /* Motion+Animate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE96E1FDEFA8B0098BDD0 /* Motion+Animate.swift */; };
965FE9771FE0976F0098BDD0 /* ConditionalPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965FE9761FE0976F0098BDD0 /* ConditionalPreprocessor.swift */; };
96E409651F24F7370015A2B5 /* MotionAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4093D1F24F7370015A2B5 /* MotionAnimator.swift */; }; 96E409651F24F7370015A2B5 /* MotionAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4093D1F24F7370015A2B5 /* MotionAnimator.swift */; };
96E409661F24F7370015A2B5 /* MotionAnimatorViewContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4093E1F24F7370015A2B5 /* MotionAnimatorViewContext.swift */; }; 96E409661F24F7370015A2B5 /* MotionAnimatorViewContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4093E1F24F7370015A2B5 /* MotionAnimatorViewContext.swift */; };
96E409671F24F7370015A2B5 /* MotionCoreAnimationViewContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4093F1F24F7370015A2B5 /* MotionCoreAnimationViewContext.swift */; }; 96E409671F24F7370015A2B5 /* MotionCoreAnimationViewContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4093F1F24F7370015A2B5 /* MotionCoreAnimationViewContext.swift */; };
...@@ -42,7 +43,6 @@ ...@@ -42,7 +43,6 @@
96E409801F24F7370015A2B5 /* MotionTransitionObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4095B1F24F7370015A2B5 /* MotionTransitionObserver.swift */; }; 96E409801F24F7370015A2B5 /* MotionTransitionObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4095B1F24F7370015A2B5 /* MotionTransitionObserver.swift */; };
96E409811F24F7370015A2B5 /* MotionTransitionState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4095C1F24F7370015A2B5 /* MotionTransitionState.swift */; }; 96E409811F24F7370015A2B5 /* MotionTransitionState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4095C1F24F7370015A2B5 /* MotionTransitionState.swift */; };
96E409821F24F7370015A2B5 /* CascadePreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4095E1F24F7370015A2B5 /* CascadePreprocessor.swift */; }; 96E409821F24F7370015A2B5 /* CascadePreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4095E1F24F7370015A2B5 /* CascadePreprocessor.swift */; };
96E409831F24F7370015A2B5 /* DurationPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E4095F1F24F7370015A2B5 /* DurationPreprocessor.swift */; };
96E409841F24F7370015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E409601F24F7370015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift */; }; 96E409841F24F7370015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E409601F24F7370015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift */; };
96E409851F24F7370015A2B5 /* MatchPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E409611F24F7370015A2B5 /* MatchPreprocessor.swift */; }; 96E409851F24F7370015A2B5 /* MatchPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E409611F24F7370015A2B5 /* MatchPreprocessor.swift */; };
96E409861F24F7370015A2B5 /* MotionPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E409621F24F7370015A2B5 /* MotionPreprocessor.swift */; }; 96E409861F24F7370015A2B5 /* MotionPreprocessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E409621F24F7370015A2B5 /* MotionPreprocessor.swift */; };
...@@ -74,7 +74,6 @@ ...@@ -74,7 +74,6 @@
96E409A51F24F7570015A2B5 /* MotionTransitionObserver.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E4095B1F24F7370015A2B5 /* MotionTransitionObserver.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 96E409A51F24F7570015A2B5 /* MotionTransitionObserver.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E4095B1F24F7370015A2B5 /* MotionTransitionObserver.swift */; settings = {ATTRIBUTES = (Public, ); }; };
96E409A61F24F7570015A2B5 /* MotionTransitionState.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E4095C1F24F7370015A2B5 /* MotionTransitionState.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 96E409A61F24F7570015A2B5 /* MotionTransitionState.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E4095C1F24F7370015A2B5 /* MotionTransitionState.swift */; settings = {ATTRIBUTES = (Public, ); }; };
96E409A71F24F7570015A2B5 /* CascadePreprocessor.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E4095E1F24F7370015A2B5 /* CascadePreprocessor.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 96E409A71F24F7570015A2B5 /* CascadePreprocessor.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E4095E1F24F7370015A2B5 /* CascadePreprocessor.swift */; settings = {ATTRIBUTES = (Public, ); }; };
96E409A81F24F7570015A2B5 /* DurationPreprocessor.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E4095F1F24F7370015A2B5 /* DurationPreprocessor.swift */; settings = {ATTRIBUTES = (Public, ); }; };
96E409A91F24F7570015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E409601F24F7370015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 96E409A91F24F7570015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E409601F24F7370015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift */; settings = {ATTRIBUTES = (Public, ); }; };
96E409AA1F24F7570015A2B5 /* MatchPreprocessor.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E409611F24F7370015A2B5 /* MatchPreprocessor.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 96E409AA1F24F7570015A2B5 /* MatchPreprocessor.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E409611F24F7370015A2B5 /* MatchPreprocessor.swift */; settings = {ATTRIBUTES = (Public, ); }; };
96E409AB1F24F7570015A2B5 /* MotionPreprocessor.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E409621F24F7370015A2B5 /* MotionPreprocessor.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 96E409AB1F24F7570015A2B5 /* MotionPreprocessor.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96E409621F24F7370015A2B5 /* MotionPreprocessor.swift */; settings = {ATTRIBUTES = (Public, ); }; };
...@@ -88,9 +87,10 @@ ...@@ -88,9 +87,10 @@
965FE9641FDCCE910098BDD0 /* MotionProgressRunner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionProgressRunner.swift; sourceTree = "<group>"; }; 965FE9641FDCCE910098BDD0 /* MotionProgressRunner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionProgressRunner.swift; sourceTree = "<group>"; };
965FE9661FDD99800098BDD0 /* Motion+Start.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Motion+Start.swift"; sourceTree = "<group>"; }; 965FE9661FDD99800098BDD0 /* Motion+Start.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Motion+Start.swift"; sourceTree = "<group>"; };
965FE9681FDDA1F20098BDD0 /* MotionViewOrderStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionViewOrderStrategy.swift; sourceTree = "<group>"; }; 965FE9681FDDA1F20098BDD0 /* MotionViewOrderStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionViewOrderStrategy.swift; sourceTree = "<group>"; };
965FE96A1FDDA4EA0098BDD0 /* BaseMotionPreprocessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseMotionPreprocessor.swift; sourceTree = "<group>"; }; 965FE96A1FDDA4EA0098BDD0 /* MotionCorePreprocessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionCorePreprocessor.swift; sourceTree = "<group>"; };
965FE96C1FDDA6400098BDD0 /* MotionCoreAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionCoreAnimator.swift; sourceTree = "<group>"; }; 965FE96C1FDDA6400098BDD0 /* MotionCoreAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionCoreAnimator.swift; sourceTree = "<group>"; };
965FE96E1FDEFA8B0098BDD0 /* Motion+Animate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Motion+Animate.swift"; sourceTree = "<group>"; }; 965FE96E1FDEFA8B0098BDD0 /* Motion+Animate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Motion+Animate.swift"; sourceTree = "<group>"; };
965FE9761FE0976F0098BDD0 /* ConditionalPreprocessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConditionalPreprocessor.swift; sourceTree = "<group>"; };
96C98DD11E424AB000B22906 /* Motion.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Motion.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 96C98DD11E424AB000B22906 /* Motion.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Motion.framework; sourceTree = BUILT_PRODUCTS_DIR; };
96E4093D1F24F7370015A2B5 /* MotionAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MotionAnimator.swift; sourceTree = "<group>"; }; 96E4093D1F24F7370015A2B5 /* MotionAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MotionAnimator.swift; sourceTree = "<group>"; };
96E4093E1F24F7370015A2B5 /* MotionAnimatorViewContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MotionAnimatorViewContext.swift; sourceTree = "<group>"; }; 96E4093E1F24F7370015A2B5 /* MotionAnimatorViewContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MotionAnimatorViewContext.swift; sourceTree = "<group>"; };
...@@ -119,7 +119,6 @@ ...@@ -119,7 +119,6 @@
96E4095B1F24F7370015A2B5 /* MotionTransitionObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MotionTransitionObserver.swift; sourceTree = "<group>"; }; 96E4095B1F24F7370015A2B5 /* MotionTransitionObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MotionTransitionObserver.swift; sourceTree = "<group>"; };
96E4095C1F24F7370015A2B5 /* MotionTransitionState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MotionTransitionState.swift; sourceTree = "<group>"; }; 96E4095C1F24F7370015A2B5 /* MotionTransitionState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MotionTransitionState.swift; sourceTree = "<group>"; };
96E4095E1F24F7370015A2B5 /* CascadePreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CascadePreprocessor.swift; sourceTree = "<group>"; }; 96E4095E1F24F7370015A2B5 /* CascadePreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CascadePreprocessor.swift; sourceTree = "<group>"; };
96E4095F1F24F7370015A2B5 /* DurationPreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DurationPreprocessor.swift; sourceTree = "<group>"; };
96E409601F24F7370015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IgnoreSubviewModifiersPreprocessor.swift; sourceTree = "<group>"; }; 96E409601F24F7370015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IgnoreSubviewModifiersPreprocessor.swift; sourceTree = "<group>"; };
96E409611F24F7370015A2B5 /* MatchPreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatchPreprocessor.swift; sourceTree = "<group>"; }; 96E409611F24F7370015A2B5 /* MatchPreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatchPreprocessor.swift; sourceTree = "<group>"; };
96E409621F24F7370015A2B5 /* MotionPreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MotionPreprocessor.swift; sourceTree = "<group>"; }; 96E409621F24F7370015A2B5 /* MotionPreprocessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MotionPreprocessor.swift; sourceTree = "<group>"; };
...@@ -208,14 +207,14 @@ ...@@ -208,14 +207,14 @@
96E4095D1F24F7370015A2B5 /* Preprocessors */ = { 96E4095D1F24F7370015A2B5 /* Preprocessors */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
965FE96A1FDDA4EA0098BDD0 /* BaseMotionPreprocessor.swift */, 965FE96A1FDDA4EA0098BDD0 /* MotionCorePreprocessor.swift */,
96E4095E1F24F7370015A2B5 /* CascadePreprocessor.swift */, 96E4095E1F24F7370015A2B5 /* CascadePreprocessor.swift */,
96E4095F1F24F7370015A2B5 /* DurationPreprocessor.swift */,
96E409601F24F7370015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift */, 96E409601F24F7370015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift */,
96E409611F24F7370015A2B5 /* MatchPreprocessor.swift */, 96E409611F24F7370015A2B5 /* MatchPreprocessor.swift */,
96E409621F24F7370015A2B5 /* MotionPreprocessor.swift */, 96E409621F24F7370015A2B5 /* MotionPreprocessor.swift */,
96E409631F24F7370015A2B5 /* SourcePreprocessor.swift */, 96E409631F24F7370015A2B5 /* SourcePreprocessor.swift */,
96E409641F24F7370015A2B5 /* TransitionPreprocessor.swift */, 96E409641F24F7370015A2B5 /* TransitionPreprocessor.swift */,
965FE9761FE0976F0098BDD0 /* ConditionalPreprocessor.swift */,
); );
path = Preprocessors; path = Preprocessors;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -253,7 +252,6 @@ ...@@ -253,7 +252,6 @@
96E409A51F24F7570015A2B5 /* MotionTransitionObserver.swift in Headers */, 96E409A51F24F7570015A2B5 /* MotionTransitionObserver.swift in Headers */,
96E409A61F24F7570015A2B5 /* MotionTransitionState.swift in Headers */, 96E409A61F24F7570015A2B5 /* MotionTransitionState.swift in Headers */,
96E409A71F24F7570015A2B5 /* CascadePreprocessor.swift in Headers */, 96E409A71F24F7570015A2B5 /* CascadePreprocessor.swift in Headers */,
96E409A81F24F7570015A2B5 /* DurationPreprocessor.swift in Headers */,
96E409A91F24F7570015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift in Headers */, 96E409A91F24F7570015A2B5 /* IgnoreSubviewModifiersPreprocessor.swift in Headers */,
96E409AA1F24F7570015A2B5 /* MatchPreprocessor.swift in Headers */, 96E409AA1F24F7570015A2B5 /* MatchPreprocessor.swift in Headers */,
96E409AB1F24F7570015A2B5 /* MotionPreprocessor.swift in Headers */, 96E409AB1F24F7570015A2B5 /* MotionPreprocessor.swift in Headers */,
...@@ -322,8 +320,7 @@ ...@@ -322,8 +320,7 @@
files = ( files = (
96E409731F24F7370015A2B5 /* MotionAnimationFillMode.swift in Sources */, 96E409731F24F7370015A2B5 /* MotionAnimationFillMode.swift in Sources */,
96E409791F24F7370015A2B5 /* MotionContext.swift in Sources */, 96E409791F24F7370015A2B5 /* MotionContext.swift in Sources */,
96E409831F24F7370015A2B5 /* DurationPreprocessor.swift in Sources */, 965FE96B1FDDA4EA0098BDD0 /* MotionCorePreprocessor.swift in Sources */,
965FE96B1FDDA4EA0098BDD0 /* BaseMotionPreprocessor.swift in Sources */,
965FE9631FDCCE030098BDD0 /* Motion+Complete.swift in Sources */, 965FE9631FDCCE030098BDD0 /* Motion+Complete.swift in Sources */,
96E4097D1F24F7370015A2B5 /* MotionPlugin.swift in Sources */, 96E4097D1F24F7370015A2B5 /* MotionPlugin.swift in Sources */,
965FE96D1FDDA6400098BDD0 /* MotionCoreAnimator.swift in Sources */, 965FE96D1FDDA6400098BDD0 /* MotionCoreAnimator.swift in Sources */,
...@@ -348,6 +345,7 @@ ...@@ -348,6 +345,7 @@
965FE9691FDDA1F20098BDD0 /* MotionViewOrderStrategy.swift in Sources */, 965FE9691FDDA1F20098BDD0 /* MotionViewOrderStrategy.swift in Sources */,
96E409871F24F7370015A2B5 /* SourcePreprocessor.swift in Sources */, 96E409871F24F7370015A2B5 /* SourcePreprocessor.swift in Sources */,
96E409701F24F7370015A2B5 /* Motion+UIKit.swift in Sources */, 96E409701F24F7370015A2B5 /* Motion+UIKit.swift in Sources */,
965FE9771FE0976F0098BDD0 /* ConditionalPreprocessor.swift in Sources */,
96E4097B1F24F7370015A2B5 /* MotionCoordinateSpace.swift in Sources */, 96E4097B1F24F7370015A2B5 /* MotionCoordinateSpace.swift in Sources */,
96E409881F24F7370015A2B5 /* TransitionPreprocessor.swift in Sources */, 96E409881F24F7370015A2B5 /* TransitionPreprocessor.swift in Sources */,
965FE9671FDD99800098BDD0 /* Motion+Start.swift in Sources */, 965FE9671FDD99800098BDD0 /* Motion+Start.swift in Sources */,
......
...@@ -102,13 +102,12 @@ fileprivate extension Motion { ...@@ -102,13 +102,12 @@ fileprivate extension Motion {
/// Prepares the preprocessors. /// Prepares the preprocessors.
func preparePreprocessors() { func preparePreprocessors() {
for x in [ for x in [IgnoreSubviewTransitionsPreprocessor(),
IgnoreSubviewTransitionsPreprocessor(), ConditionalPreprocessor(),
MatchPreprocessor(), TransitionPreprocessor(),
SourcePreprocessor(), MatchPreprocessor(),
CascadePreprocessor(), SourcePreprocessor(),
TransitionPreprocessor(motion: self), CascadePreprocessor()] as [MotionPreprocessor] {
DurationPreprocessor()] as [MotionPreprocessor] {
preprocessors.append(x) preprocessors.append(x)
} }
......
...@@ -441,7 +441,7 @@ public extension Motion { ...@@ -441,7 +441,7 @@ public extension Motion {
} }
let s = MotionTransitionState(transitions: transitions) let s = MotionTransitionState(transitions: transitions)
let v = context.transitionPairedView(for: view) ?? view let v = context.pairedView(for: view) ?? view
for a in animators { for a in animators {
a.apply(state: s, to: v) a.apply(state: s, to: v)
......
...@@ -148,7 +148,7 @@ public extension MotionContext { ...@@ -148,7 +148,7 @@ public extension MotionContext {
source and destination view controllers. source and destination view controllers.
- Returns: An optional UIView. - Returns: An optional UIView.
*/ */
func transitionPairedView(for view: UIView) -> UIView? { func pairedView(for view: UIView) -> UIView? {
if let i = view.motionIdentifier { if let i = view.motionIdentifier {
if view == sourceView(for: i) { if view == sourceView(for: i) {
return destinationView(for: i) return destinationView(for: i)
...@@ -316,7 +316,7 @@ public extension MotionContext { ...@@ -316,7 +316,7 @@ public extension MotionContext {
hide(view: view) hide(view: view)
} }
if let pairedView = transitionPairedView(for: view), let pairedSnapshot = viewToSnapshot[pairedView] { if let pairedView = pairedView(for: view), let pairedSnapshot = viewToSnapshot[pairedView] {
let siblingViews = pairedView.superview!.subviews let siblingViews = pairedView.superview!.subviews
let nextSiblings = siblingViews[siblingViews.index(of: pairedView)! + 1..<siblingViews.count] let nextSiblings = siblingViews[siblingViews.index(of: pairedView)! + 1..<siblingViews.count]
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
import UIKit import UIKit
class MotionPlugin: BaseMotionPreprocessor, MotionAnimator { class MotionPlugin: MotionCorePreprocessor, MotionAnimator {
/** /**
Determines whether or not to receive `seekTo` callback on every frame. Determines whether or not to receive `seekTo` callback on every frame.
......
...@@ -45,6 +45,9 @@ public struct MotionTransitionState { ...@@ -45,6 +45,9 @@ public struct MotionTransitionState {
/// The initial state that the transition will start at. /// The initial state that the transition will start at.
internal var beginState: MotionTransitionStateWrapper? internal var beginState: MotionTransitionStateWrapper?
public var conditionalTransitions: [((MotionConditionalContext) -> Bool, [MotionTransition])]?
/// The start state if there is a match in the desition view controller. /// The start state if there is a match in the desition view controller.
public var beginStateIfMatched: [MotionTransition]? public var beginStateIfMatched: [MotionTransition]?
......
...@@ -60,7 +60,7 @@ public enum CascadeDirection { ...@@ -60,7 +60,7 @@ public enum CascadeDirection {
} }
} }
class CascadePreprocessor: BaseMotionPreprocessor { class CascadePreprocessor: MotionCorePreprocessor {
/** /**
Processes the transitionary views. Processes the transitionary views.
- Parameter fromViews: An Array of UIViews. - Parameter fromViews: An Array of UIViews.
...@@ -91,10 +91,10 @@ class CascadePreprocessor: BaseMotionPreprocessor { ...@@ -91,10 +91,10 @@ class CascadePreprocessor: BaseMotionPreprocessor {
let delay = TimeInterval(i) * deltaTime + initialDelay let delay = TimeInterval(i) * deltaTime + initialDelay
func applyDelay(view: UIView) { func applyDelay(view: UIView) {
if context.transitionPairedView(for: view) == nil { if context.pairedView(for: view) == nil {
context[view]?.delay = delay context[view]?.delay = delay
} else if delayMatchedViews, let paired = context.transitionPairedView(for: view) { } else if delayMatchedViews, let paired = context.pairedView(for: view) {
context[view]?.delay = finalDelay context[view]?.delay = finalDelay
context[paired]?.delay = finalDelay context[paired]?.delay = finalDelay
} }
......
/*
* The MIT License (MIT)
*
* Copyright (C) 2017, Daniel Dahan and CosmicMind, Inc. <http://cosmicmind.com>.
* All rights reserved.
*
* Original Inspiration & Author
* Copyright (c) 2016 Luke Zhao <me@lkzhao.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
import UIKit
public struct MotionConditionalContext {
internal weak var motion: Motion!
public weak var view: UIView!
public private(set) var isAppearing: Bool
public var isPresenting: Bool {
return motion.isPresenting
}
public var isTabBarController: Bool {
return motion.isTabBarController
}
public var isNavigationController: Bool {
return motion.isNavigationController
}
public var isMatched: Bool {
return matchedView != nil
}
public var isAncestorViewMatched: Bool {
return matchedAncestorView != nil
}
public var matchedView: UIView? {
return motion.context.pairedView(for: view)
}
public var matchedAncestorView: (UIView, UIView)? {
var current = view.superview
while let ancestor = current, ancestor != motion.context.container {
if let pairedView = motion.context.pairedView(for: ancestor) {
return (ancestor, pairedView)
}
current = ancestor.superview
}
return nil
}
public var fromViewController: UIViewController {
return motion.fromViewController!
}
public var toViewController: UIViewController {
return motion.toViewController!
}
public var currentViewController: UIViewController {
return isAppearing ? toViewController : fromViewController
}
public var otherViewController: UIViewController {
return isAppearing ? fromViewController : toViewController
}
}
class ConditionalPreprocessor: MotionCorePreprocessor {
override func process(fromViews: [UIView], toViews: [UIView]) {
process(views: fromViews, isAppearing: false)
process(views: toViews, isAppearing: true)
}
func process(views: [UIView], isAppearing: Bool) {
for v in views {
guard let conditionalTransitions = context[v]?.conditionalTransitions else {
continue
}
for (condition, transitions) in conditionalTransitions {
if condition(MotionConditionalContext(motion: motion, view: v, isAppearing: isAppearing)) {
context[v]!.append(contentsOf: transitions)
}
}
}
}
}
/*
* The MIT License (MIT)
*
* Copyright (C) 2017, Daniel Dahan and CosmicMind, Inc. <http://cosmicmind.com>.
* All rights reserved.
*
* Original Inspiration & Author
* Copyright (c) 2016 Luke Zhao <me@lkzhao.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
import UIKit
class DurationPreprocessor: BaseMotionPreprocessor {
/**
Processes the transitionary views.
- Parameter fromViews: An Array of UIViews.
- Parameter toViews: An Array of UIViews.
*/
override func process(fromViews: [UIView], toViews: [UIView]) {
var maxDuration: TimeInterval = 0
maxDuration = applyOptimizedDurationIfNoDuration(views: fromViews)
maxDuration = max(maxDuration, applyOptimizedDurationIfNoDuration(views: toViews))
setDurationForInfiniteDuration(views: fromViews, duration: maxDuration)
setDurationForInfiniteDuration(views: toViews, duration: maxDuration)
}
/**
Retrieves the optimized duration for a given UIView.
- Parameter for view: A UIView.
- Returns: A TimeInterval.
*/
func optimizedDuration(for view: UIView) -> TimeInterval {
let v = context[view]!
return view.optimizedDuration(position: context.container.convert(view.layer.position, from: view.superview),
size: v.size,
transform: v.transform)
}
/**
Applies the optimized duration for an Array of UIViews.
- Parameter views: An Array of UIViews.
- Returns: A TimeInterval.
*/
func applyOptimizedDurationIfNoDuration(views: [UIView]) -> TimeInterval {
var d: TimeInterval = 0
for v in views where nil != context[v] {
if nil == context[v]?.duration {
context[v]!.duration = optimizedDuration(for: v)
}
d = .infinity == context[v]!.duration! ?
max(d, optimizedDuration(for: v)) :
max(d, context[v]!.duration!)
}
return d
}
/**
Sets the duration if the duration of a transition is set to `.infinity`.
- Parameter views: An Array of UIViews.
- Parameter duration: A TimeInterval.
*/
func setDurationForInfiniteDuration(views: [UIView], duration: TimeInterval) {
for v in views where .infinity == context[v]?.duration {
context[v]!.duration = duration
}
}
}
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
import UIKit import UIKit
class IgnoreSubviewTransitionsPreprocessor: BaseMotionPreprocessor { class IgnoreSubviewTransitionsPreprocessor: MotionCorePreprocessor {
/** /**
Processes the transitionary views. Processes the transitionary views.
- Parameter fromViews: An Array of UIViews. - Parameter fromViews: An Array of UIViews.
...@@ -64,12 +64,12 @@ class IgnoreSubviewTransitionsPreprocessor: BaseMotionPreprocessor { ...@@ -64,12 +64,12 @@ class IgnoreSubviewTransitionsPreprocessor: BaseMotionPreprocessor {
} }
} }
extension IgnoreSubviewTransitionsPreprocessor { fileprivate extension IgnoreSubviewTransitionsPreprocessor {
/** /**
Clears the transition for a given view's subviews. Clears the transition for a given view's subviews.
- Parameter for view: A UIView. - Parameter for view: A UIView.
*/ */
fileprivate func cleanSubviewTransitions(for view: UIView) { func cleanSubviewTransitions(for view: UIView) {
for v in view.subviews { for v in view.subviews {
context[v] = nil context[v] = nil
cleanSubviewTransitions(for: v) cleanSubviewTransitions(for: v)
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
import UIKit import UIKit
class MatchPreprocessor: BaseMotionPreprocessor { class MatchPreprocessor: MotionCorePreprocessor {
/** /**
Processes the transitionary views. Processes the transitionary views.
- Parameter fromViews: An Array of UIViews. - Parameter fromViews: An Array of UIViews.
...@@ -36,23 +36,17 @@ class MatchPreprocessor: BaseMotionPreprocessor { ...@@ -36,23 +36,17 @@ class MatchPreprocessor: BaseMotionPreprocessor {
*/ */
override func process(fromViews: [UIView], toViews: [UIView]) { override func process(fromViews: [UIView], toViews: [UIView]) {
for tv in toViews { for tv in toViews {
guard let i = tv.motionIdentifier, let fv = context.sourceView(for: i) else { continue } guard let motionIdentifier = tv.motionIdentifier, let fv = context.sourceView(for: motionIdentifier) else {
continue
}
var tvState = context[tv] ?? MotionTransitionState() var tvState = context[tv] ?? MotionTransitionState()
var fvState = context[fv] ?? MotionTransitionState() var fvState = context[fv] ?? MotionTransitionState()
if let v = tvState.beginStateIfMatched { // match is just a two-way source effect
tvState.append(.beginWith(transitions: v)) tvState.motionIdentifier = motionIdentifier
} fvState.motionIdentifier = motionIdentifier
if let v = fvState.beginStateIfMatched {
fvState.append(.beginWith(transitions: v))
}
tvState.motionIdentifier = i
tvState.opacity = 0
fvState.motionIdentifier = i
fvState.arc = tvState.arc fvState.arc = tvState.arc
fvState.duration = tvState.duration fvState.duration = tvState.duration
fvState.timingFunction = tvState.timingFunction fvState.timingFunction = tvState.timingFunction
...@@ -62,20 +56,34 @@ class MatchPreprocessor: BaseMotionPreprocessor { ...@@ -62,20 +56,34 @@ class MatchPreprocessor: BaseMotionPreprocessor {
let forceNonFade = tvState.nonFade || fvState.nonFade let forceNonFade = tvState.nonFade || fvState.nonFade
let isNonOpaque = !fv.isOpaque || fv.alpha < 1 || !tv.isOpaque || tv.alpha < 1 let isNonOpaque = !fv.isOpaque || fv.alpha < 1 || !tv.isOpaque || tv.alpha < 1
if !forceNonFade && isNonOpaque { if context.insertToViewFirst {
// Cross fade if from/toViews are not opaque.
fvState.opacity = 0 fvState.opacity = 0
if !forceNonFade && isNonOpaque {
tvState.opacity = 0
} else {
tvState.opacity = nil
if !tv.layer.masksToBounds && tvState.displayShadow {
fvState.displayShadow = false
}
}
} else { } else {
// No cross fade in this case, fromView is always displayed during the transition. tvState.opacity = 0
fvState.opacity = nil
/** if !forceNonFade && isNonOpaque {
We dont want two shadows showing up. Therefore we disable toView's // cross fade if from/toViews are not opaque
shadow when fromView is able to display its shadow. fvState.opacity = 0
*/ } else {
if !fv.layer.masksToBounds && fvState.displayShadow { // no cross fade in this case, fromView is always displayed during the transition.
tvState.displayShadow = false fvState.opacity = nil
// we dont want two shadows showing up. Therefore we disable toView's shadow when fromView is able to display its shadow
if !fv.layer.masksToBounds && fvState.displayShadow {
tvState.displayShadow = false
}
} }
} }
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
import UIKit import UIKit
class BaseMotionPreprocessor: MotionPreprocessor { class MotionCorePreprocessor: MotionPreprocessor {
weak public var motion: Motion! weak public var motion: Motion!
/// A reference to the MotionContext. /// A reference to the MotionContext.
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
import UIKit import UIKit
class SourcePreprocessor: BaseMotionPreprocessor { class SourcePreprocessor: MotionCorePreprocessor {
/** /**
Processes the transitionary views. Processes the transitionary views.
- Parameter fromViews: An Array of UIViews. - Parameter fromViews: An Array of UIViews.
......
...@@ -172,16 +172,7 @@ public enum MotionTransitionType { ...@@ -172,16 +172,7 @@ public enum MotionTransitionType {
} }
} }
class TransitionPreprocessor: BaseMotionPreprocessor { class TransitionPreprocessor: MotionCorePreprocessor {
/**
An initializer that accepts a given Motion instance.
- Parameter motion: A Motion.
*/
init(motion: Motion) {
super.init()
self.motion = motion
}
/** /**
Processes the transitionary views. Processes the transitionary views.
- Parameter fromViews: An Array of UIViews. - Parameter fromViews: An Array of UIViews.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment