| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- /*
- * This file is part of the SDWebImage package.
- * (c) Olivier Poitrey <rs@dailymotion.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- #import "SDWebImageCompat.h"
- #if SD_UIKIT || SD_MAC
- // A protocol to custom the indicator during the image loading
- // All of these methods are called from main queue
- @protocol SDWebImageIndicator <NSObject>
- @required
- /**
- The view associate to the indicator.
- @return The indicator view
- */
- - (nonnull UIView *)indicatorView;
- /**
- Start the animating for indicator.
- */
- - (void)startAnimatingIndicator;
- /**
- Stop the animating for indicator.
- */
- - (void)stopAnimatingIndicator;
- @optional
- /**
- Update the loading progress (0-1.0) for indicator. Optional
-
- @param progress The progress, value between 0 and 1.0
- */
- - (void)updateIndicatorProgress:(double)progress;
- @end
- #pragma mark - Activity Indicator
- // Activity indicator class
- // for UIKit(macOS), it use a `UIActivityIndicatorView`
- // for AppKit(macOS), it use a `NSProgressIndicator` with the spinning style
- @interface SDWebImageActivityIndicator : NSObject <SDWebImageIndicator>
- #if SD_UIKIT
- @property (nonatomic, strong, readonly, nonnull) UIActivityIndicatorView *indicatorView;
- #else
- @property (nonatomic, strong, readonly, nonnull) NSProgressIndicator *indicatorView;
- #endif
- @end
- // Convenience way to use activity indicator.
- @interface SDWebImageActivityIndicator (Conveniences)
- /// gray-style activity indicator
- @property (nonatomic, class, nonnull, readonly) SDWebImageActivityIndicator *grayIndicator;
- /// large gray-style activity indicator
- @property (nonatomic, class, nonnull, readonly) SDWebImageActivityIndicator *grayLargeIndicator;
- /// white-style activity indicator
- @property (nonatomic, class, nonnull, readonly) SDWebImageActivityIndicator *whiteIndicator;
- /// large white-style activity indicator
- @property (nonatomic, class, nonnull, readonly) SDWebImageActivityIndicator *whiteLargeIndicator;
- @end
- #pragma mark - Progress Indicator
- // Progress indicator class
- // for UIKit(macOS), it use a `UIProgressView`
- // for AppKit(macOS), it use a `NSProgressIndicator` with the bar style
- @interface SDWebImageProgressIndicator : NSObject <SDWebImageIndicator>
- #if SD_UIKIT
- @property (nonatomic, strong, readonly, nonnull) UIProgressView *indicatorView;
- #else
- @property (nonatomic, strong, readonly, nonnull) NSProgressIndicator *indicatorView;
- #endif
- @end
- // Convenience way to create progress indicator. Remember to specify the indicator width or use layout constraint if need.
- @interface SDWebImageProgressIndicator (Conveniences)
- /// default-style progress indicator
- @property (nonatomic, class, nonnull, readonly) SDWebImageProgressIndicator *defaultIndicator;
- /// bar-style progress indicator
- @property (nonatomic, class, nonnull, readonly) SDWebImageProgressIndicator *barIndicator API_UNAVAILABLE(macos, tvos);
- @end
- #endif
|