From cdacaaca39d282910148785bcab0497e7a3aec3e Mon Sep 17 00:00:00 2001 From: fancymax Date: Mon, 24 Oct 2016 15:58:08 +0800 Subject: [PATCH] improve tip --- 12306ForMac-Swift.h | 2 +- 12306ForMac.xcodeproj/project.pbxproj | 12 +- .../UserInterfaceState.xcuserstate | Bin 59097 -> 57024 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 64 +++--- .../OrderViewController.swift | 27 ++- .../Sheets/LoginWindowController.swift | 4 +- .../Sheets/SubmitWindowController.swift | 4 +- .../TicketQueryViewController.swift | 6 +- DJProgressHUD/DJLayerView.h | 32 +++ .../{DJProgressHUD.m => DJLayerView.m} | 184 ++++-------------- DJProgressHUD/DJProgressHUD.h | 48 ----- DJProgressHUD/DJTipHUD.m | 41 ++-- 12 files changed, 144 insertions(+), 280 deletions(-) create mode 100644 DJProgressHUD/DJLayerView.h rename DJProgressHUD/{DJProgressHUD.m => DJLayerView.m} (62%) mode change 100755 => 100644 delete mode 100755 DJProgressHUD/DJProgressHUD.h diff --git a/12306ForMac-Swift.h b/12306ForMac-Swift.h index 0aaf49a..dd40bfa 100644 --- a/12306ForMac-Swift.h +++ b/12306ForMac-Swift.h @@ -10,8 +10,8 @@ #define _Train12306_Swift_h #import "MASPreferences.h" -#import "DJProgressHUD.h" #import "DJTipHUD.h" +#import "DJLayerView.h" #import #endif diff --git a/12306ForMac.xcodeproj/project.pbxproj b/12306ForMac.xcodeproj/project.pbxproj index f27ef5f..2eaab6d 100644 --- a/12306ForMac.xcodeproj/project.pbxproj +++ b/12306ForMac.xcodeproj/project.pbxproj @@ -69,10 +69,10 @@ F13E9C981D0AA9760011F7E2 /* TrainInfoTableCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F13E9C971D0AA9760011F7E2 /* TrainInfoTableCellView.swift */; }; F13E9C9A1D0AB3310011F7E2 /* TrainTableRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F13E9C991D0AB3310011F7E2 /* TrainTableRowView.swift */; }; F14243141DB610FF0012B5E4 /* DJActivityIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = F14243111DB610FF0012B5E4 /* DJActivityIndicator.m */; }; - F14243151DB610FF0012B5E4 /* DJProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = F14243131DB610FF0012B5E4 /* DJProgressHUD.m */; }; F142431B1DB628CB0012B5E4 /* DJTipHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = F142431A1DB628CB0012B5E4 /* DJTipHUD.m */; }; F147763E1D6B2B2E002FD6AF /* InfoButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = F147763D1D6B2B2E002FD6AF /* InfoButton.swift */; }; F14D6BE41D86E91C00CBD36C /* FilterTrainCodeTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F14D6BE31D86E91C00CBD36C /* FilterTrainCodeTransformer.swift */; }; + F159C9D51DBDD76A00202143 /* DJLayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = F159C9D41DBDD76A00202143 /* DJLayerView.m */; }; F17AB1CC1C95630E00FEB221 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = F17AB1CB1C95630E00FEB221 /* Credits.rtf */; }; F1AF72B81DAA24FB0047486B /* DataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1AF72B71DAA24FB0047486B /* DataManager.swift */; }; F1C075211D83F97A006EFABB /* TicketConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1C075201D83F97A006EFABB /* TicketConstants.swift */; }; @@ -181,13 +181,13 @@ F13E9C991D0AB3310011F7E2 /* TrainTableRowView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TrainTableRowView.swift; sourceTree = ""; }; F14243101DB610FF0012B5E4 /* DJActivityIndicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DJActivityIndicator.h; sourceTree = ""; }; F14243111DB610FF0012B5E4 /* DJActivityIndicator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DJActivityIndicator.m; sourceTree = ""; }; - F14243121DB610FF0012B5E4 /* DJProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DJProgressHUD.h; sourceTree = ""; }; - F14243131DB610FF0012B5E4 /* DJProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DJProgressHUD.m; sourceTree = ""; }; F14243191DB628CB0012B5E4 /* DJTipHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DJTipHUD.h; sourceTree = ""; }; F142431A1DB628CB0012B5E4 /* DJTipHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DJTipHUD.m; sourceTree = ""; }; F147763D1D6B2B2E002FD6AF /* InfoButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoButton.swift; sourceTree = ""; }; F14D6BE31D86E91C00CBD36C /* FilterTrainCodeTransformer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterTrainCodeTransformer.swift; sourceTree = ""; }; F15277071DAB78D3002BAF17 /* 12306ForMac.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = 12306ForMac.entitlements; path = 12306ForMac/12306ForMac.entitlements; sourceTree = ""; }; + F159C9D31DBDD76A00202143 /* DJLayerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DJLayerView.h; sourceTree = ""; }; + F159C9D41DBDD76A00202143 /* DJLayerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DJLayerView.m; sourceTree = ""; }; F17AB1CB1C95630E00FEB221 /* Credits.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; name = Credits.rtf; path = 12306ForMac/Resources/Credits.rtf; sourceTree = SOURCE_ROOT; }; F1AF72B71DAA24FB0047486B /* DataManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataManager.swift; sourceTree = ""; }; F1C075201D83F97A006EFABB /* TicketConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TicketConstants.swift; sourceTree = ""; }; @@ -427,12 +427,12 @@ F142430F1DB610FF0012B5E4 /* DJProgressHUD */ = { isa = PBXGroup; children = ( + F159C9D31DBDD76A00202143 /* DJLayerView.h */, + F159C9D41DBDD76A00202143 /* DJLayerView.m */, F14243191DB628CB0012B5E4 /* DJTipHUD.h */, F142431A1DB628CB0012B5E4 /* DJTipHUD.m */, F14243101DB610FF0012B5E4 /* DJActivityIndicator.h */, F14243111DB610FF0012B5E4 /* DJActivityIndicator.m */, - F14243121DB610FF0012B5E4 /* DJProgressHUD.h */, - F14243131DB610FF0012B5E4 /* DJProgressHUD.m */, ); path = DJProgressHUD; sourceTree = ""; @@ -610,6 +610,7 @@ F111549F1C8D929200FA6059 /* Service+Login.swift in Sources */, F1CA120D1D1135E2003EFD0B /* Theme.swift in Sources */, F1CA12051D10F546003EFD0B /* TrainCodeDetailHeaderCell.swift in Sources */, + F159C9D51DBDD76A00202143 /* DJLayerView.m in Sources */, F1CCA2DE1D0D4A1400B6853E /* TrainCodeDetail.swift in Sources */, F1C075211D83F97A006EFABB /* TicketConstants.swift in Sources */, F11154981C8D927C00FA6059 /* StationData.swift in Sources */, @@ -642,7 +643,6 @@ F11154721C8D921400FA6059 /* LeftTicketParam.swift in Sources */, F1FEE7A21D8D464900B02C84 /* NotifySpeaker.swift in Sources */, F1FCFF4B1D386F8F0070A32C /* URLButton.swift in Sources */, - F14243151DB610FF0012B5E4 /* DJProgressHUD.m in Sources */, F11154A11C8D929200FA6059 /* Service+QueryOrder.swift in Sources */, F11154A21C8D929200FA6059 /* Service+QueryTicket.swift in Sources */, F11154A91C8D92A700FA6059 /* LoginWindowController.swift in Sources */, diff --git a/12306ForMac.xcodeproj/project.xcworkspace/xcuserdata/lindahai.xcuserdatad/UserInterfaceState.xcuserstate b/12306ForMac.xcodeproj/project.xcworkspace/xcuserdata/lindahai.xcuserdatad/UserInterfaceState.xcuserstate index fb90ea526861159046791d8102bcb75110114979..8fca12937f27b11da1cb5f23b537d62f9547f4cb 100644 GIT binary patch literal 57024 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 literal 59097 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 VwDjU1EZ>S>DQN4zV)>R{{SPz!-NFC> diff --git a/12306ForMac.xcodeproj/xcuserdata/lindahai.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/12306ForMac.xcodeproj/xcuserdata/lindahai.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 741cb90..9579579 100644 --- a/12306ForMac.xcodeproj/xcuserdata/lindahai.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/12306ForMac.xcodeproj/xcuserdata/lindahai.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -26,11 +26,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "12306ForMac/OrderViewControllers/OrderViewController.swift" - timestampString = "498559506.056539" + timestampString = "498981115.057717" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "130" - endingLineNumber = "130" + startingLineNumber = "139" + endingLineNumber = "139" landmarkName = "queryAllOrder()" landmarkType = "5"> @@ -42,11 +42,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "12306ForMac/OrderViewControllers/OrderViewController.swift" - timestampString = "498559506.056539" + timestampString = "498981115.057717" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "93" - endingLineNumber = "93" + startingLineNumber = "102" + endingLineNumber = "102" landmarkName = "queryHistoryOrder()" landmarkType = "5"> @@ -58,11 +58,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "12306ForMac/OrderViewControllers/OrderViewController.swift" - timestampString = "498559506.056539" + timestampString = "498981115.057717" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "118" - endingLineNumber = "118" + startingLineNumber = "127" + endingLineNumber = "127" landmarkName = "queryAllOrder()" landmarkType = "5"> @@ -74,11 +74,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "12306ForMac/OrderViewControllers/OrderViewController.swift" - timestampString = "498559506.056539" + timestampString = "498981115.057717" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "102" - endingLineNumber = "102" + startingLineNumber = "111" + endingLineNumber = "111" landmarkName = "queryHistoryOrder()" landmarkType = "5"> @@ -211,22 +211,6 @@ landmarkType = "5"> - - - - @@ -266,7 +250,7 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "12306ForMac/TicketViewControllers/TicketQueryViewController.swift" - timestampString = "498643637.085131" + timestampString = "498988230.929609" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "451" @@ -282,7 +266,7 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "12306ForMac/TicketViewControllers/TicketQueryViewController.swift" - timestampString = "498562034.070445" + timestampString = "498988230.929609" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "330" @@ -298,11 +282,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "DJProgressHUD/DJTipHUD.m" - timestampString = "498563564.481737" + timestampString = "498988164.484067" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "82" - endingLineNumber = "82" + startingLineNumber = "79" + endingLineNumber = "79" landmarkName = "-updateLayout" landmarkType = "5"> @@ -310,15 +294,15 @@ diff --git a/12306ForMac/OrderViewControllers/OrderViewController.swift b/12306ForMac/OrderViewControllers/OrderViewController.swift index ebd103f..625472d 100644 --- a/12306ForMac/OrderViewControllers/OrderViewController.swift +++ b/12306ForMac/OrderViewControllers/OrderViewController.swift @@ -43,6 +43,15 @@ class OrderViewController: NSViewController{ DJTipHUD.showStatus(tip, fromView: self.view) } + func startLoadingTip(tip:String) + { + DJLayerView.showStatus(tip, fromView: self.view) + } + + func stopLoadingTip(){ + DJLayerView.dismiss() + } + func receiveLogoutMessageNotification(notification: NSNotification) { MainModel.noCompleteOrderList.removeAll() self.orderList.removeAll() @@ -61,18 +70,18 @@ class OrderViewController: NSViewController{ alert.beginSheetModalForWindow(self.view.window!, completionHandler: { reponse in if reponse == NSAlertFirstButtonReturn { if let sequence_no = MainModel.noCompleteOrderList[0].sequence_no { - DJProgressHUD.showStatus("正在取消...", fromView: self.view) + self.startLoadingTip("正在取消...") let successHandler = { MainModel.noCompleteOrderList.removeAll() self.orderList = MainModel.historyOrderList self.orderListTable.reloadData() - DJProgressHUD.dismiss() + self.stopLoadingTip() self.showTip("取消订单成功") self.hasOrder = false } let failureHandler = {(error:NSError)->() in - DJProgressHUD.dismiss() + self.stopLoadingTip() self.showTip(translate(error)) } self.service.cancelOrderWith(sequence_no, success: successHandler, failure:failureHandler) @@ -86,17 +95,17 @@ class OrderViewController: NSViewController{ } func queryHistoryOrder(){ - DJProgressHUD.showStatus("正在查询...", fromView: self.view) + self.startLoadingTip("正在查询...") let successHandler = { self.orderList.appendContentsOf(MainModel.historyOrderList) self.orderListTable.reloadData() - DJProgressHUD.dismiss() + self.stopLoadingTip() } let failureHandler = { - DJProgressHUD.dismiss() + self.stopLoadingTip() } service.queryHistoryOrderFlow((success: successHandler, failure: failureHandler)) } @@ -111,13 +120,13 @@ class OrderViewController: NSViewController{ self.orderListTable.reloadData() hasQuery = true - DJProgressHUD.showStatus("正在查询...", fromView: self.view) + self.startLoadingTip("正在查询...") let successHandler = { self.orderList = MainModel.noCompleteOrderList self.orderListTable.reloadData() - DJProgressHUD.dismiss() + self.stopLoadingTip() if self.orderList.count > 0 { self.hasOrder = true @@ -130,7 +139,7 @@ class OrderViewController: NSViewController{ } let failureHandler = { - DJProgressHUD.dismiss() + self.stopLoadingTip() self.hasOrder = false } service.queryNoCompleteOrderFlow(success: successHandler, failure: failureHandler) diff --git a/12306ForMac/Sheets/LoginWindowController.swift b/12306ForMac/Sheets/LoginWindowController.swift index e588825..26b0efc 100644 --- a/12306ForMac/Sheets/LoginWindowController.swift +++ b/12306ForMac/Sheets/LoginWindowController.swift @@ -88,11 +88,11 @@ class LoginWindowController: NSWindowController{ func startLoadingTip(tip:String) { - DJProgressHUD.showStatus(tip, fromView: self.window?.contentView) + DJLayerView.showStatus(tip, fromView: self.window?.contentView) } func stopLoadingTip(){ - DJProgressHUD.dismiss() + DJLayerView.dismiss() } diff --git a/12306ForMac/Sheets/SubmitWindowController.swift b/12306ForMac/Sheets/SubmitWindowController.swift index 5fac653..fe36837 100644 --- a/12306ForMac/Sheets/SubmitWindowController.swift +++ b/12306ForMac/Sheets/SubmitWindowController.swift @@ -64,11 +64,11 @@ class SubmitWindowController: NSWindowController{ func startLoadingTip(tip:String) { - DJProgressHUD.showStatus(tip, fromView: self.window?.contentView) + DJLayerView.showStatus(tip, fromView: self.window?.contentView) } func stopLoadingTip(){ - DJProgressHUD.dismiss() + DJLayerView.dismiss() } func showTip(tip:String){ diff --git a/12306ForMac/TicketViewControllers/TicketQueryViewController.swift b/12306ForMac/TicketViewControllers/TicketQueryViewController.swift index aa6af57..46fa315 100644 --- a/12306ForMac/TicketViewControllers/TicketQueryViewController.swift +++ b/12306ForMac/TicketViewControllers/TicketQueryViewController.swift @@ -394,16 +394,16 @@ class TicketQueryViewController: NSViewController { } func showTip(tip:String){ - DJTipHUD.showStatus(tip, fromView: self.secondSearchView) + DJTipHUD.showStatus(tip, fromView: self.view) } func startLoadingTip(tip:String) { - DJProgressHUD.showStatus(tip, fromView: self.view) + DJLayerView.showStatus(tip, fromView: self.view) } func stopLoadingTip(){ - DJProgressHUD.dismiss() + DJLayerView.dismiss() } func queryLeftTicket(summitHandler:()->() = {}) { diff --git a/DJProgressHUD/DJLayerView.h b/DJProgressHUD/DJLayerView.h new file mode 100644 index 0000000..e46cf18 --- /dev/null +++ b/DJProgressHUD/DJLayerView.h @@ -0,0 +1,32 @@ +// +// DJLayerView.h +// Playground +// +// Created by fancymax on 16/10/24. +// Copyright © 2016年 Daniel Jackson. All rights reserved. +// + +#import + +@interface DJLayerView : NSView + ++(void)showStatus:(NSString*)status FromView:(NSView *)view; ++(void)dismiss; + +// Customization +#define pMaxWidth1 250 +#define pMaxHeight1 200 + +//General Popup Values +@property (nonatomic) CGVector pOffset; +@property (nonatomic) CGFloat pAlpha; + +//Padding +@property (nonatomic) CGFloat pPadding; + +@property (nonatomic) CGSize indicatorSize; +@property (nonatomic) CGVector indicatorOffset; +@property (nonatomic) CGSize labelSize; +@property (nonatomic) CGVector labelOffset; + +@end diff --git a/DJProgressHUD/DJProgressHUD.m b/DJProgressHUD/DJLayerView.m old mode 100755 new mode 100644 similarity index 62% rename from DJProgressHUD/DJProgressHUD.m rename to DJProgressHUD/DJLayerView.m index 3c447e0..27add2e --- a/DJProgressHUD/DJProgressHUD.m +++ b/DJProgressHUD/DJLayerView.m @@ -1,18 +1,15 @@ // -// CPProgressView.m -// Cloud Play OSX +// DJLayerView.m +// Playground // -// Created by Daniel Jackson on 4/22/14. -// Copyright (c) 2014 Daniel Jackson. All rights reserved. +// Created by fancymax on 16/10/24. +// Copyright © 2016年 Daniel Jackson. All rights reserved. // -#import "DJProgressHUD.h" +#import "DJLayerView.h" #import "DJActivityIndicator.h" -typedef void (^CompletionHander)(void); - -@interface DJProgressHUD () -{ +@interface DJLayerView(){ NSView* parentView; CGSize pSize; //This is set automatically based on the content @@ -20,122 +17,58 @@ @interface DJProgressHUD () NSTextField* label; } -@property CGFloat backgroundAlpha; - @end -@implementation DJProgressHUD +@implementation DJLayerView -#pragma mark - -#pragma mark Class Methods - -+ (void)showStatus:(NSString*)status FromView:(NSView*)view -{ - [[self instance] showStatus:status FromView:view]; ++(void)showStatus:(NSString *)status FromView:(NSView *)parentView{ + [[self instance] showStatus:status FromView:parentView]; } -+ (void)dismiss -{ - [[self instance] hideViewAnimated]; -} - -#pragma mark - -#pragma mark Master Methods - -- (void)showStatus:(NSString*)status FromView:(NSView*)view -{ - parentView = view; - - label.stringValue = status; - - [activityIndicator setHidden:FALSE]; - [activityIndicator startAnimation:nil]; - - if(![self displaying]) - [self showViewAnimated]; - else - [self replaceViewQuick]; -} - -#pragma mark - -#pragma mark Instance Methods - --(void)replaceViewQuick -{ - [self beginShowView]; - [self.layer setOpacity:_pAlpha]; -} - -- (void)beginShowView -{ - [self updateLayout]; - NSRect size = [self getCenterWithinRect:parentView.frame scale:1.0]; - - if(!self.superview) [parentView addSubview:self]; - [self.layer setFrame:size]; - - _displaying = true; - - [activityIndicator.layer setOpacity:1.0]; - [label.layer setOpacity:1.0]; ++(void)dismiss { + [[self instance] finishHideView]; } -(void)finishHideView { - if([parentView wantsLayer]) - { - [parentView setWantsLayer:NO]; - } [self removeFromSuperview]; parentView = nil; - _displaying = false; [activityIndicator stopAnimation:nil]; } -- (void)showViewAnimated -{ - if(![parentView wantsLayer]) - { - [parentView setWantsLayer:TRUE]; - [parentView setLayer:[CALayer layer]]; - } - - [self beginShowView]; - - self.layer.opacity = 0.0; - [self.layer setFrame:[self getCenterWithinRect:parentView.frame scale:0.75]]; - +-(void)showStatus:(NSString*)status FromView:(NSView *)view { + parentView = view; + label.stringValue = status; + [activityIndicator startAnimation:nil]; - [CATransaction flush]; - [CATransaction begin]; - [CATransaction setValue:[NSNumber numberWithFloat:0.6f] - forKey:kCATransactionAnimationDuration]; - [CATransaction setCompletionBlock:^{ - - }]; - - [self.layer setFrame:[self getCenterWithinRect:parentView.frame scale:1]]; - [self.layer setOpacity:_pAlpha]; - [CATransaction commit]; + if (!self.superview) { + [parentView addSubview:self]; + } - [self setNeedsDisplay:TRUE]; + [self updateLayout]; + + CGColorRef bgcolor = CGColorCreateGenericRGB(0.05, 0.05, 0.05, 0.8); + self.layer.backgroundColor = bgcolor; + self.layer.cornerRadius = 15.0; + [self setFrame:[self getCenterWithinRect:parentView.frame scale:1]]; } -- (void)hideViewAnimated +- (NSRect)getCenterWithinRect:(NSRect)parentFrame scale:(CGFloat)scale { - [self finishHideView]; - - [self setNeedsDisplay:TRUE]; + NSRect result; + CGFloat newWidth = pSize.width*scale; + CGFloat newHeight = pSize.height*scale; + result.origin.x = parentFrame.size.width/2 - newWidth/2 + _pOffset.dx; + result.origin.y = parentFrame.size.height/2 - newHeight/2 + _pOffset.dy; + result.size.width = newWidth; + result.size.height = newHeight; + + return result; } -#pragma mark - -#pragma mark Laying It Out - - (void)updateLayout { - [self setBackground]; - CGSize maxContentSize = CGSizeMake(pMaxWidth1-(_pPadding*2), pMaxHeight1-(_pPadding*2)); CGSize minContentSize = CGSizeMake(_indicatorSize.width, _indicatorSize.height); @@ -170,36 +103,15 @@ - (void)updateLayout activityIndicator.frame = indicatorRect; CGFloat spaceOnTop = (stringHeight != 0) ? _pPadding/3 : 0; - + [activityIndicator setColor:[NSColor whiteColor]]; pSize.width = popupWidth; pSize.height = iY+iH+_pPadding+spaceOnTop;//+(_pPadding/2); [self setAutoresizesSubviews:YES]; - - [self setNeedsDisplay:TRUE]; -} - -- (void)setBackground -{ - CGColorRef bgcolor = CGColorCreateGenericRGB(0.05, 0.05, 0.05, _pAlpha); - - if(![self layer]) { - CALayer* bgLayer = [CALayer layer]; - [self setLayer:bgLayer]; - [self.layer setCornerRadius:15.0]; - [self setWantsLayer:TRUE]; - } - - [self.layer setBackgroundColor:bgcolor]; - - [self setNeedsDisplay:TRUE]; } -#pragma mark - -#pragma mark Other - -(CGFloat) heightForString:(NSString *)myString font:(NSFont*) myFont width:(CGFloat)myWidth { NSTextStorage *textStorage = [[NSTextStorage alloc] initWithString:myString]; @@ -217,36 +129,20 @@ -(CGFloat) heightForString:(NSString *)myString font:(NSFont*) myFont width:(CGF usedRectForTextContainer:textContainer].size.height; } -- (NSRect)getCenterWithinRect:(NSRect)parentFrame scale:(CGFloat)scale -{ - NSRect result; - CGFloat newWidth = pSize.width*scale; - CGFloat newHeight = pSize.height*scale; - result.origin.x = parentFrame.size.width/2 - newWidth/2 + _pOffset.dx; - result.origin.y = parentFrame.size.height/2 - newHeight/2 + _pOffset.dy; - result.size.width = newWidth; - result.size.height = newHeight; - - return result; -} - -#pragma mark - - - (void)initializePopup { + [self setWantsLayer:YES]; + self.autoresizingMask = NSViewMaxXMargin | NSViewMaxYMargin | NSViewMinXMargin | NSViewMinYMargin; activityIndicator = [[DJActivityIndicator alloc] init]; label = [[NSTextField alloc] init]; - [self addSubview:label]; [self addSubview:activityIndicator]; //----DEFAULT VALUES---- - _backgroundAlpha = 0.4; - _pOffset = CGVectorMake(0, 0); _pAlpha = 0.9; _pPadding = 10; @@ -259,14 +155,14 @@ - (void)initializePopup [label setEditable:NO]; [label setSelectable:NO]; - label.font = [NSFont systemFontOfSize:12]; + label.font = [NSFont systemFontOfSize:13.0]; [label setTextColor:[NSColor colorWithCalibratedWhite:1.0 alpha:0.85]]; } -+ (DJProgressHUD *) instance ++ (DJLayerView *) instance { static dispatch_once_t once; - static DJProgressHUD *sharedView; + static DJLayerView *sharedView; dispatch_once(&once, ^ { sharedView = [[self alloc] init]; [sharedView initializePopup]; diff --git a/DJProgressHUD/DJProgressHUD.h b/DJProgressHUD/DJProgressHUD.h deleted file mode 100755 index fe3fc71..0000000 --- a/DJProgressHUD/DJProgressHUD.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// CPProgressView.h -// Cloud Play OSX -// -// Created by Daniel Jackson on 4/22/14. -// Copyright (c) 2014 Daniel Jackson. All rights reserved. -// - -#import -#import - -/*#define popupWidth 120 -#define popupHeight 120 - -#define popupAlpha 0.9 - -#define xOffset 0 -#define yOffset 0 - -#define indicatorSize 40*/ - -@class DJActivityIndicator; - -@interface DJProgressHUD : NSView - -+ (void)showStatus:(NSString*)status FromView:(NSView*)view; - -+ (void)dismiss; - -@property (nonatomic, readonly) BOOL displaying; - -// Customization -#define pMaxWidth1 250 -#define pMaxHeight1 200 - -//General Popup Values -@property (nonatomic) CGVector pOffset; -@property (nonatomic) CGFloat pAlpha; - -//Padding -@property (nonatomic) CGFloat pPadding; - -@property (nonatomic) CGSize indicatorSize; -@property (nonatomic) CGVector indicatorOffset; -@property (nonatomic) CGSize labelSize; -@property (nonatomic) CGVector labelOffset; - -@end diff --git a/DJProgressHUD/DJTipHUD.m b/DJProgressHUD/DJTipHUD.m index 625cdce..d2cb15e 100755 --- a/DJProgressHUD/DJTipHUD.m +++ b/DJProgressHUD/DJTipHUD.m @@ -39,16 +39,26 @@ - (void)showStatus:(NSString*)status FromView:(NSView*)view } parentView = view; - label.stringValue = status; - [self showViewAnimated]; + if(!self.superview) { + [parentView addSubview:self]; + _displaying = true; + } + + CGColorRef bgcolor = CGColorCreateGenericRGB(0.05, 0.05, 0.05, 0.8); + self.layer.backgroundColor = bgcolor; + self.layer.cornerRadius = 15.0; + + [self updateLayout]; + NSRect size = [self getCenterWithinRect:parentView.frame scale:1.0]; + [self setFrame:size]; + // [self setFrame:[self getCenterWithinRect:parentView.frame scale:1.0]]; NSInteger interval = 2; if ([status length] >= 10) { interval = 10; } - [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(finishHideView) userInfo:nil repeats:NO]; } @@ -62,19 +72,6 @@ -(void)finishHideView _displaying = false; } -- (void)showViewAnimated -{ - [self updateLayout]; - NSRect size = [self getCenterWithinRect:parentView.frame scale:1.0]; - - if(!self.superview) [parentView addSubview:self]; - [self setFrame:size]; - - _displaying = true; - - [self setNeedsDisplay:TRUE]; -} - #pragma mark - #pragma mark Laying It Out @@ -117,8 +114,6 @@ - (void)updateLayout pSize.height = iY+iH+_pPadding+spaceOnTop;//+(_pPadding/2); [self setAutoresizesSubviews:YES]; - - [self setNeedsDisplay:TRUE]; } #pragma mark - @@ -154,16 +149,12 @@ - (NSRect)getCenterWithinRect:(NSRect)parentFrame scale:(CGFloat)scale return result; } -- (void)drawRect:(NSRect)frame { - NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:frame xRadius:6.0 yRadius:6.0]; - [[NSColor colorWithCalibratedWhite:0.0 alpha:0.75] set]; - [path fill]; -} - #pragma mark - - (void)initializePopup { + [self setWantsLayer:YES]; + self.autoresizingMask = NSViewMaxXMargin | NSViewMaxYMargin | NSViewMinXMargin | NSViewMinYMargin; label = [[NSTextField alloc] init]; @@ -185,7 +176,7 @@ - (void)initializePopup [label setEditable:NO]; [label setSelectable:NO]; - label.font = [NSFont systemFontOfSize:12.0]; + label.font = [NSFont systemFontOfSize:13.0]; [label setTextColor:[NSColor colorWithCalibratedWhite:1.0 alpha:0.85]]; }