diff options
author | Simon Howard | 2010-01-04 22:01:32 +0000 |
---|---|---|
committer | Simon Howard | 2010-01-04 22:01:32 +0000 |
commit | 6921f30a44e0bdf1c3a2f8982e4a8cd290c22462 (patch) | |
tree | e597201e79368095e58e7ea753eea76906db1c03 /pkg/osx/LauncherManager.m | |
parent | 9b0b0629e02deba1788d4a4e190b31977f7c0b1f (diff) | |
download | chocolate-doom-6921f30a44e0bdf1c3a2f8982e4a8cd290c22462.tar.gz chocolate-doom-6921f30a44e0bdf1c3a2f8982e4a8cd290c22462.tar.bz2 chocolate-doom-6921f30a44e0bdf1c3a2f8982e4a8cd290c22462.zip |
Import OS X launcher code to trunk.
Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 1784
Diffstat (limited to 'pkg/osx/LauncherManager.m')
-rw-r--r-- | pkg/osx/LauncherManager.m | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/pkg/osx/LauncherManager.m b/pkg/osx/LauncherManager.m new file mode 100644 index 00000000..cda7b3e7 --- /dev/null +++ b/pkg/osx/LauncherManager.m @@ -0,0 +1,98 @@ +/* ... */ +//----------------------------------------------------------------------------- +// +// Copyright(C) 2009 Simon Howard +// +// 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., 59 Temple Place - Suite 330, Boston, MA +// 02111-1307, USA. +// +//----------------------------------------------------------------------------- + +#include <AppKit/AppKit.h> +#include "Execute.h" +#include "LauncherManager.h" +#include "config.h" + +@implementation LauncherManager + +// Save configuration. Invoked when we launch the game or quit. + +- (void) saveConfig +{ + NSUserDefaults *defaults; + + // Save IWAD configuration and selected IWAD. + + [self->iwadController saveConfig]; + + // Save command line arguments. + + defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:[self->commandLineArguments stringValue] + forKey:@"command_line_args"]; +} + +// Load configuration, invoked on startup. + +- (void) setConfig +{ + NSUserDefaults *defaults; + NSString *args; + + defaults = [NSUserDefaults standardUserDefaults]; + + args = [defaults stringForKey:@"command_line_args"]; + + if (args != nil) + { + [self->commandLineArguments setStringValue:args]; + } +} + +- (void) launch: (id)sender +{ + NSString *iwad; + NSString *args; + + [self saveConfig]; + + iwad = [self->iwadController getIWADLocation]; + args = [self->commandLineArguments stringValue]; + + if (iwad != nil) + { + ExecuteProgram(PACKAGE_TARNAME, [iwad UTF8String], + [args UTF8String]); + [NSApp terminate:sender]; + } +} + +- (void) runSetup: (id)sender +{ + [self saveConfig]; + + [self->iwadController setEnvironment]; + ExecuteProgram("chocolate-setup", NULL, NULL); +} + +- (void) awakeFromNib +{ + [self->packageLabel setStringValue: @PACKAGE_STRING]; + [self->launcherWindow setTitle: @PACKAGE_NAME " Launcher"]; + [self setConfig]; +} + +@end + |