/
WorkInProgress.m
98 lines (81 loc) · 2.52 KB
/
WorkInProgress.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/* vim: set ft=objc ts=4 et sw=4 nowrap: */
/*
* WorkInProgress.m
*
* Copyright (c) 2004
*
* Author: Andreas Heppel <aheppel@web.de>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
#include <AppKit/NSProgressIndicator.h>
#include "Functions.h"
#include "Constants.h"
#include "WorkInProgress.h"
static NSString *nibName = @"WorkInProgress";
#define PI_LENGTH 2
@implementation WorkInProgress
- (void) dealloc
{
TEST_RELEASE (win);
[super dealloc];
}
- (id) init
{
self = [super init];
if (self) {
if ([NSBundle loadNibNamed: nibName owner: self] == NO) {
logToConsole(MessageStatusError, [NSString stringWithFormat:
_(@"Common.loadNibFail"), nibName]);
DESTROY (self);
return self;
} else {
NSRect wframe = [win frame];
NSRect scrframe = [[NSScreen mainScreen] frame];
NSRect winrect = NSMakeRect((scrframe.size.width - wframe.size.width) / 2,
(scrframe.size.height - wframe.size.height) / 2,
wframe.size.width,
wframe.size.height);
[win setFrame: winrect display: NO];
}
}
return self;
}
- (void) startAnimationWithString: (NSString *) string
appName: (NSString *) appname;
{
if (win) {
[win setTitle: appname];
[textField setStringValue: string];
[progInd setAnimationDelay: 1./6.];
[progInd startAnimation: self];
if ([win isVisible] == NO) {
[win orderFrontRegardless];
}
}
}
- (void) stopAnimation
{
[progInd stopAnimation: self];
[win close];
}
- (BOOL) windowShouldClose: (id) sender
{
[progInd stopAnimation: self];
return YES;
}
@end