123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- //
- // SKTransitionController.h
- // Skim
- //
- // Created by Christiaan Hofman on 7/15/07.
- /*
- This software is Copyright (c) 2007-2018
- Christiaan Hofman. All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- - Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- - Neither the name of Christiaan Hofman nor the names of any
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- #import <Cocoa/Cocoa.h>
- extern NSString *SKStyleNameKey;
- extern NSString *SKDurationKey;
- extern NSString *SKShouldRestrictKey;
- // this corresponds to the CGSTransitionType enum
- typedef NS_ENUM(NSUInteger, SKAnimationTransitionStyle) {
- SKNoTransition,
- // Core Graphics transitions
- SKTransitionFade,
- SKTransitionZoom,
- SKTransitionReveal,
- SKTransitionSlide,
- SKTransitionWarpFade,
- SKTransitionSwap,
- SKTransitionCube,
- SKTransitionWarpSwitch,
- SKTransitionWarpFlip,
- // Core Image transitions
- SKCoreImageTransition
- };
- @class CIImage;
- extern NSString *KMTransitionStyleName;
- extern NSString *KMDurationName;
- extern NSString *KMShouldRestrictName;
- extern NSString *KMPageTransitionsName;
- extern NSString *KMOldValueName;
- extern NSString *KMNewValueName;
- @class SKTransitionController;
- @protocol SKTransitionControllerDelegate <NSObject>
- - (void)transitionController:(SKTransitionController *)controller valueDidChanged:(NSDictionary *)info;
- @end
- @interface SKTransitionController : NSObject {
- NSWindow *window;
- CIImage *initialImage;
- NSRect imageRect;
-
- SKAnimationTransitionStyle _transitionStyle;
- CGFloat _duration;
- BOOL _shouldRestrict;
-
- SKAnimationTransitionStyle currentTransitionStyle;
- CGFloat currentDuration;
- BOOL currentShouldRestrict;
- BOOL currentForward;
-
- NSArray *_pageTransitions;
- }
- @property (nonatomic, weak) NSView *view;
- @property (nonatomic) SKAnimationTransitionStyle transitionStyle;
- @property (nonatomic) CGFloat duration;
- @property (nonatomic) BOOL shouldRestrict;
- @property (nonatomic, copy) NSArray *pageTransitions;
- @property (nonatomic) BOOL hasTransition;
- @property (nonatomic, weak) id <SKTransitionControllerDelegate> delegate;
- + (NSArray *)transitionNames;
- + (NSString *)nameForStyle:(SKAnimationTransitionStyle)style;
- + (SKAnimationTransitionStyle)styleForName:(NSString *)name;
- + (NSString *)localizedNameForStyle:(SKAnimationTransitionStyle)style;
- - (id)initForView:(NSView *)aView;
- - (void)prepareAnimationForRect:(NSRect)rect from:(NSUInteger)fromIndex to:(NSUInteger)toIndex;
- - (void)animateForRect:(NSRect)rect;
- @end
- @interface SKTransitionController (KMExtension)
- //@property (nonatomic, weak) id <SKTransitionControllerDelegate> delegate;
- @end
|