403 lines
14 KiB
Objective-C
Executable File
403 lines
14 KiB
Objective-C
Executable File
//
|
|
// MMProgressHUD+Class.m
|
|
// MMProgressHUDDemo
|
|
//
|
|
// Created by Lars Anderson on 7/2/12.
|
|
// Copyright (c) 2012 Mutual Mobile. All rights reserved.
|
|
//
|
|
|
|
#import "MMProgressHUD.h"
|
|
|
|
@interface MMProgressHUD()
|
|
|
|
- (CGPoint)_windowCenterForHUDAnchor:(CGPoint)anchor;
|
|
- (void)dismissWithCompletionState:(MMProgressHUDCompletionState)completionState
|
|
title:(NSString *)title
|
|
status:(NSString *)status
|
|
afterDelay:(NSTimeInterval)delay;
|
|
|
|
- (void)_updateHUDAnimated:(BOOL)animated
|
|
withCompletion:(void(^)(BOOL completed))completionBlock;
|
|
|
|
- (void)show;
|
|
- (void)dismiss;
|
|
- (void)dismissAfterDelay:(NSTimeInterval)delay;
|
|
|
|
@end
|
|
|
|
@implementation MMProgressHUD (Class)
|
|
|
|
//class setters
|
|
+ (void)setPresentationStyle:(MMProgressHUDPresentationStyle)animationStyle {
|
|
[[MMProgressHUD sharedHUD] setPresentationStyle:animationStyle];
|
|
}
|
|
|
|
+ (void)setDisplayStyle:(MMProgressHUDDisplayStyle)style {
|
|
MMHud *hud = [[MMProgressHUD sharedHUD] hud];
|
|
[hud setDisplayStyle:style];
|
|
}
|
|
|
|
+ (void)setSpinAnimationImages:(NSArray *)animationImages {
|
|
[[MMProgressHUD sharedHUD] setSpinAnimationImages:animationImages];
|
|
}
|
|
|
|
//updates
|
|
+ (void)updateStatus:(NSString *)status {
|
|
[MMProgressHUD updateTitle:nil status:status];
|
|
}
|
|
|
|
+ (void)updateTitle:(NSString *)title status:(NSString *)status {
|
|
MMProgressHUD *hud = [MMProgressHUD sharedHUD];
|
|
|
|
NSArray *images = nil;
|
|
if (hud.hud.animationImages.count > 0) {
|
|
images = hud.hud.animationImages;
|
|
}
|
|
else if (hud.hud.image != nil) {
|
|
images = @[hud.hud.image];
|
|
}
|
|
|
|
if (title == nil) {
|
|
title = hud.hud.titleText;
|
|
}
|
|
|
|
[MMProgressHUD showWithTitle:title
|
|
status:status
|
|
confirmationMessage:hud.confirmationMessage
|
|
cancelBlock:hud.cancelBlock
|
|
images:images];
|
|
}
|
|
|
|
+ (void)setProgressViewClass:(Class)progressClass{
|
|
[[MMProgressHUD sharedHUD] setProgressViewClass:progressClass];
|
|
}
|
|
|
|
//with progress
|
|
+ (void)showDeterminateProgressWithTitle:(NSString *)title
|
|
status:(NSString *)status {
|
|
[MMProgressHUD showDeterminateProgressWithTitle:title
|
|
status:status
|
|
confirmationMessage:nil
|
|
cancelBlock:nil];
|
|
}
|
|
|
|
+ (void)showDeterminateProgressWithTitle:(NSString *)title
|
|
status:(NSString *)status
|
|
confirmationMessage:(NSString *)confirmation
|
|
cancelBlock:(void (^)(void))cancelBlock {
|
|
[[MMProgressHUD sharedHUD] showDeterminateProgressWithTitle:title
|
|
status:status
|
|
confirmationMessage:confirmation
|
|
cancelBlock:cancelBlock
|
|
images:nil];
|
|
}
|
|
|
|
+ (void)updateProgress:(CGFloat)progress
|
|
withStatus:(NSString *)status
|
|
title:(NSString *)title {
|
|
[[MMProgressHUD sharedHUD] updateProgress:progress
|
|
withStatus:status
|
|
title:title];
|
|
}
|
|
|
|
+ (void)updateProgress:(CGFloat)progress
|
|
withStatus:(NSString *)status {
|
|
[MMProgressHUD updateProgress:progress
|
|
withStatus:status
|
|
title:nil];
|
|
}
|
|
|
|
+ (void)updateProgress:(CGFloat)progress {
|
|
[MMProgressHUD updateProgress:progress
|
|
withStatus:nil
|
|
title:nil];
|
|
}
|
|
|
|
//indeterminate status
|
|
|
|
+ (void)show {
|
|
[MMProgressHUD showWithTitle:nil status:nil];
|
|
}
|
|
|
|
+ (void)showWithTitle:(NSString *)title {
|
|
[MMProgressHUD showWithTitle:title
|
|
status:nil];
|
|
}
|
|
|
|
+ (void)showWithStatus:(NSString *)status {
|
|
[MMProgressHUD showWithTitle:nil
|
|
status:status];
|
|
}
|
|
|
|
+ (void)showWithTitle:(NSString *)title
|
|
status:(NSString *)status {
|
|
[MMProgressHUD showWithTitle:title
|
|
status:status
|
|
cancelBlock:nil
|
|
images:nil];
|
|
}
|
|
|
|
+ (void)showWithTitle:(NSString *)title
|
|
status:(NSString *)status
|
|
image:(UIImage *)image {
|
|
[MMProgressHUD showWithTitle:title
|
|
status:status
|
|
cancelBlock:nil
|
|
image:image];
|
|
}
|
|
|
|
+ (void)showWithTitle:(NSString *)title
|
|
status:(NSString *)status
|
|
images:(NSArray *)images {
|
|
[MMProgressHUD showWithTitle:title
|
|
status:status
|
|
cancelBlock:nil
|
|
images:images];
|
|
}
|
|
|
|
+ (void)showWithTitle:(NSString *)title
|
|
status:(NSString *)status
|
|
cancelBlock:(void(^)(void))cancelBlock {
|
|
[MMProgressHUD showWithTitle:title
|
|
status:status
|
|
cancelBlock:cancelBlock
|
|
images:nil];
|
|
}
|
|
|
|
//cancellation
|
|
+ (void)showWithTitle:(NSString *)title
|
|
status:(NSString *)status
|
|
cancelBlock:(void(^)(void))cancelBlock
|
|
image:(UIImage *)image {
|
|
[MMProgressHUD showWithTitle:title
|
|
status:status
|
|
cancelBlock:cancelBlock
|
|
images:(image != nil ? @[image] : nil)];
|
|
}
|
|
|
|
+ (void)showWithTitle:(NSString *)title
|
|
status:(NSString *)status
|
|
cancelBlock:(void(^)(void))cancelBlock
|
|
images:(NSArray *)images {
|
|
[MMProgressHUD showWithTitle:title
|
|
status:status
|
|
confirmationMessage:nil
|
|
cancelBlock:cancelBlock
|
|
images:images];
|
|
}
|
|
|
|
+ (void)showWithTitle:(NSString *)title
|
|
status:(NSString *)status
|
|
confirmationMessage:(NSString *)confirmation
|
|
cancelBlock:(void(^)(void))cancel {
|
|
[MMProgressHUD showWithTitle:title
|
|
status:status
|
|
confirmationMessage:confirmation
|
|
cancelBlock:cancel
|
|
images:nil];
|
|
}
|
|
|
|
+ (void)showWithTitle:(NSString *)title
|
|
status:(NSString *)status
|
|
confirmationMessage:(NSString *)confirmation
|
|
cancelBlock:(void(^)(void))cancelBlock
|
|
image:(UIImage *)image {
|
|
[MMProgressHUD showWithTitle:title
|
|
status:status
|
|
confirmationMessage:confirmation
|
|
cancelBlock:cancelBlock
|
|
images:image ? @[image] : nil];
|
|
}
|
|
|
|
+ (void)showWithTitle:(NSString *)title
|
|
status:(NSString *)status
|
|
confirmationMessage:(NSString *)confirmation
|
|
cancelBlock:(void(^)(void))cancelBlock
|
|
images:(NSArray *)images {
|
|
[[[MMProgressHUD sharedHUD] hud] setIndeterminate:YES];
|
|
|
|
if ([NSThread isMainThread] == NO) {
|
|
dispatch_sync(dispatch_get_main_queue(), ^{
|
|
[[MMProgressHUD sharedHUD] showWithTitle:title
|
|
status:status
|
|
confirmationMessage:confirmation
|
|
cancelBlock:cancelBlock
|
|
images:images];
|
|
});
|
|
}
|
|
else {
|
|
[[MMProgressHUD sharedHUD] showWithTitle:title
|
|
status:status
|
|
confirmationMessage:confirmation
|
|
cancelBlock:cancelBlock
|
|
images:images];
|
|
}
|
|
}
|
|
|
|
//dismissal
|
|
+ (void)dismissWithError:(NSString *)status
|
|
title:(NSString *)title
|
|
afterDelay:(NSTimeInterval)delay {
|
|
if ([NSThread isMainThread] == NO) {
|
|
dispatch_sync(dispatch_get_main_queue(), ^{
|
|
[[MMProgressHUD sharedHUD] dismissWithCompletionState:MMProgressHUDCompletionStateError
|
|
title:title
|
|
status:status
|
|
afterDelay:delay];
|
|
});
|
|
}
|
|
else {
|
|
[[MMProgressHUD sharedHUD] dismissWithCompletionState:MMProgressHUDCompletionStateError
|
|
title:title
|
|
status:status
|
|
afterDelay:delay];
|
|
}
|
|
}
|
|
|
|
+ (void)dismissWithError:(NSString *)status
|
|
title:(NSString *)title {
|
|
[MMProgressHUD dismissWithError:status
|
|
title:title
|
|
afterDelay:MMProgressHUDStandardDismissDelay];
|
|
}
|
|
|
|
+ (void)dismissWithError:(NSString *)status {
|
|
[MMProgressHUD dismissWithError:status
|
|
title:nil];
|
|
}
|
|
|
|
+ (void)dismissWithError:(NSString *)status
|
|
afterDelay:(NSTimeInterval)delay {
|
|
[MMProgressHUD dismissWithError:status
|
|
title:nil
|
|
afterDelay:delay];
|
|
}
|
|
|
|
+ (void)dismissWithSuccess:(NSString *)status
|
|
title:(NSString *)title
|
|
afterDelay:(NSTimeInterval)delay {
|
|
if ([NSThread isMainThread] == NO) {
|
|
dispatch_sync(dispatch_get_main_queue(), ^{
|
|
[[MMProgressHUD sharedHUD] dismissWithCompletionState:MMProgressHUDCompletionStateSuccess
|
|
title:title
|
|
status:status
|
|
afterDelay:delay];
|
|
});
|
|
}
|
|
else {
|
|
[[MMProgressHUD sharedHUD] dismissWithCompletionState:MMProgressHUDCompletionStateSuccess
|
|
title:title
|
|
status:status
|
|
afterDelay:delay];
|
|
}
|
|
}
|
|
|
|
+ (void)dismissWithSuccess:(NSString *)status
|
|
title:(NSString *)title {
|
|
[MMProgressHUD dismissWithSuccess:status
|
|
title:title
|
|
afterDelay:MMProgressHUDStandardDismissDelay];
|
|
}
|
|
|
|
+ (void)dismissWithSuccess:(NSString *)status {
|
|
[MMProgressHUD dismissWithSuccess:status
|
|
title:nil];
|
|
}
|
|
|
|
+ (void)dismissAfterDelay:(NSTimeInterval)delay {
|
|
[[MMProgressHUD sharedHUD] dismissAfterDelay:delay];
|
|
}
|
|
|
|
+ (void)dismiss {
|
|
if ([NSThread isMainThread] == NO) {
|
|
dispatch_sync(dispatch_get_main_queue(), ^{
|
|
[[MMProgressHUD sharedHUD] dismiss];
|
|
});
|
|
}
|
|
else {
|
|
[[MMProgressHUD sharedHUD] dismiss];
|
|
}
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation MMProgressHUD (Deprecated)
|
|
|
|
+ (void)showProgressWithStyle:(MMProgressHUDProgressStyle)progressStyle
|
|
title:(NSString *)title
|
|
status:(NSString *)status{
|
|
[MMProgressHUD showProgressWithStyle:progressStyle
|
|
title:title
|
|
status:status
|
|
confirmationMessage:nil
|
|
cancelBlock:nil
|
|
images:nil];
|
|
}
|
|
|
|
+ (void)showProgressWithStyle:(MMProgressHUDProgressStyle)progressStyle
|
|
title:(NSString *)title
|
|
status:(NSString *)status
|
|
image:(UIImage *)image{
|
|
[MMProgressHUD showProgressWithStyle:progressStyle
|
|
title:title
|
|
status:status
|
|
confirmationMessage:nil
|
|
cancelBlock:nil
|
|
images:image ? @[image] : nil];
|
|
}
|
|
|
|
+ (void)showProgressWithStyle:(MMProgressHUDProgressStyle)progressStyle
|
|
title:(NSString *)title
|
|
status:(NSString *)status
|
|
images:(NSArray *)images{
|
|
[MMProgressHUD showProgressWithStyle:progressStyle
|
|
title:title
|
|
status:status
|
|
confirmationMessage:nil
|
|
cancelBlock:nil
|
|
images:images];
|
|
}
|
|
|
|
+ (void)showProgressWithStyle:(MMProgressHUDProgressStyle)progressStyle
|
|
title:(NSString *)title
|
|
status:(NSString *)status
|
|
confirmationMessage:(NSString *)confirmation
|
|
cancelBlock:(void (^)(void))cancelBlock{
|
|
[MMProgressHUD showProgressWithStyle:progressStyle
|
|
title:title
|
|
status:status
|
|
confirmationMessage:confirmation
|
|
cancelBlock:cancelBlock
|
|
images:nil];
|
|
}
|
|
|
|
+ (void)showProgressWithStyle:(MMProgressHUDProgressStyle)progressStyle
|
|
title:(NSString *)title status:(NSString *)status
|
|
confirmationMessage:(NSString *)confirmation
|
|
cancelBlock:(void (^)(void))cancelBlock
|
|
image:(UIImage *)image{
|
|
[MMProgressHUD showProgressWithStyle:progressStyle
|
|
title:title
|
|
status:status
|
|
confirmationMessage:confirmation
|
|
cancelBlock:cancelBlock
|
|
images:image ? @[image] : nil];
|
|
}
|
|
|
|
+ (void)showProgressWithStyle:(MMProgressHUDProgressStyle)progressStyle
|
|
title:(NSString *)title
|
|
status:(NSString *)status
|
|
confirmationMessage:(NSString *)confirmation
|
|
cancelBlock:(void (^)(void))cancelBlock
|
|
images:(NSArray *)images{
|
|
[[MMProgressHUD sharedHUD] setProgressStyle:progressStyle];
|
|
[[MMProgressHUD sharedHUD] showWithTitle:title
|
|
status:status
|
|
confirmationMessage:confirmation
|
|
cancelBlock:cancelBlock
|
|
images:images];
|
|
}
|
|
|
|
|
|
@end
|