-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathAboutBox.m
More file actions
129 lines (99 loc) · 3.63 KB
/
Copy pathAboutBox.m
File metadata and controls
129 lines (99 loc) · 3.63 KB
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/* AboutBox.m - AboutBox window
class and support functions for the
Macintosh OS X SDL port of Stella
Mark Grebe <atarimac@cox.net>
*/
/* $Id: AboutBox.m,v 1.2 2005/06/04 02:04:06 markgrebe Exp $ */
#import "AboutBox.h"
#import "Preferences.h"
@implementation AboutBox
static AboutBox *sharedInstance = nil;
+ (AboutBox *)sharedInstance
{
return sharedInstance ? sharedInstance : [[self alloc] init];
}
- (id)init
{
if (sharedInstance) {
[self dealloc];
} else {
sharedInstance = [super init];
}
return sharedInstance;
}
/*------------------------------------------------------------------------------
* showPanel - Display the About Box.
*-----------------------------------------------------------------------------*/
- (IBAction)showPanel:(id)sender
{
NSRect creditsBounds;
NSString *userName;
if (!appNameField)
{
NSWindow *theWindow;
NSString *creditsPath;
NSMutableAttributedString *creditsString;
NSString *appName;
NSString *versionString;
NSDictionary *infoDictionary;
CFBundleRef localInfoBundle;
NSDictionary *localInfoDict;
if (![NSBundle loadNibNamed:@"AboutBox" owner:self])
{
NSLog( @"Failed to load AboutBox.nib" );
NSBeep();
return;
}
theWindow = [appNameField window];
// Get the info dictionary (Info.plist)
infoDictionary = [[NSBundle mainBundle] infoDictionary];
// Get the localized info dictionary (InfoPlist.strings)
localInfoBundle = CFBundleGetMainBundle();
localInfoDict = (NSDictionary *)
CFBundleGetLocalInfoDictionary( localInfoBundle );
// Setup the app name field
appName = @"Sio2OSX";
[appNameField setStringValue:appName];
// Set the about box window title
[theWindow setTitle:[NSString stringWithFormat:@"About %@", appName]];
// Setup the version field
versionString = [infoDictionary objectForKey:@"CFBundleVersion"];
[versionField setStringValue:[NSString stringWithFormat:@"Version %@",
versionString]];
// Setup our credits
creditsPath = [[NSBundle mainBundle] pathForResource:@"Credits"
ofType:@"html"];
creditsString = [[NSMutableAttributedString alloc] initWithPath:creditsPath
documentAttributes:nil];
[creditsString addAttribute:NSForegroundColorAttributeName
value: NSColor.controlTextColor
range: NSMakeRange( 0, creditsString.length-1)];
[creditsField replaceCharactersInRange:NSMakeRange( 0, 0 )
withRTF:[creditsString RTFFromRange:
NSMakeRange( 0, [creditsString length] )
documentAttributes:nil]];
// Prepare some scroll info
creditsBounds = [creditsField bounds];
maxScrollHeight = creditsBounds.size.height*2.75;
// Setup the window
[theWindow setExcludedFromWindowsMenu:YES];
[theWindow setMenu:nil];
[theWindow center];
}
// Setup the registration info
[registrationField setStringValue:@""];
if (![[appNameField window] isVisible])
{
currentPosition = 0;
restartAtTop = NO;
[creditsField scrollPoint:NSMakePoint( 0, 0 )];
}
// Show the window
[NSApp runModalForWindow:[appNameField window]];
[[appNameField window] close];
}
- (void)OK:(id)sender
{
[NSApp stopModal];
}
@end