From 1030e29175f5836f4033cfb0656200c43b5d7b11 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Fri, 25 Dec 2009 00:42:51 +0000 Subject: [PATCH] Check in current launcher code. Subversion-branch: /launcher Subversion-revision: 1751 --- .gitignore | 17 ++++ AppController.h | 54 +++++++++++ AppController.m | 88 +++++++++++++++++ GNUmakefile | 54 +++++++++++ GNUmakefile.postamble | 40 ++++++++ GNUmakefile.preamble | 25 +++++ IWADList.h | 16 +++ IWADList.m | 139 +++++++++++++++++++++++++++ LauncherManager.h | 15 +++ LauncherManager.m | 51 ++++++++++ PC.project | 87 +++++++++++++++++ Resources/Main.gsmarkup | 8 ++ Resources/MainMenu-GNUstep.gsmarkup | 32 ++++++ Resources/MainMenu-OSX.gsmarkup | 63 ++++++++++++ Resources/launcher.gorm/128x128.png | Bin 0 -> 23029 bytes Resources/launcher.gorm/data.classes | 43 +++++++++ Resources/launcher.gorm/data.info | Bin 0 -> 184 bytes Resources/launcher.gorm/objects.gorm | Bin 0 -> 76510 bytes chocolate-launcherInfo.plist | 12 +++ main.m | 29 ++++++ 20 files changed, 773 insertions(+) create mode 100644 .gitignore create mode 100644 AppController.h create mode 100644 AppController.m create mode 100644 GNUmakefile create mode 100644 GNUmakefile.postamble create mode 100644 GNUmakefile.preamble create mode 100644 IWADList.h create mode 100644 IWADList.m create mode 100644 LauncherManager.h create mode 100644 LauncherManager.m create mode 100644 PC.project create mode 100644 Resources/Main.gsmarkup create mode 100644 Resources/MainMenu-GNUstep.gsmarkup create mode 100644 Resources/MainMenu-OSX.gsmarkup create mode 100644 Resources/launcher.gorm/128x128.png create mode 100644 Resources/launcher.gorm/data.classes create mode 100644 Resources/launcher.gorm/data.info create mode 100644 Resources/launcher.gorm/objects.gorm create mode 100644 chocolate-launcherInfo.plist create mode 100644 main.m diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9bbee65 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ + +# These are the default patterns globally ignored by Subversion: +*.o +*.lo +*.la +*.al +.libs +*.so +*.so.[0-9]* +*.a +*.pyc +*.pyo +*.rej +*~ +.#* +.*.swp +.DS_store diff --git a/AppController.h b/AppController.h new file mode 100644 index 0000000..3c09bab --- /dev/null +++ b/AppController.h @@ -0,0 +1,54 @@ +/* + Project: chocolate-launcher + + Copyright (C) 2009 Free Software Foundation + + Author: Simon Howard,,, + + Created: 2009-12-24 22:48:58 +0000 by fraggle + + Application Controller + + This application 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 application 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 + Library General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. +*/ + +#ifndef _PCAPPPROJ_APPCONTROLLER_H +#define _PCAPPPROJ_APPCONTROLLER_H + +#include +// Uncomment if your application is Renaissance-based +//#include + +@interface AppController : NSObject +{ +} + ++ (void)initialize; + +- (id)init; +- (void)dealloc; + +- (void)awakeFromNib; + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotif; +- (BOOL)applicationShouldTerminate:(id)sender; +- (void)applicationWillTerminate:(NSNotification *)aNotif; +- (BOOL)application:(NSApplication *)application openFile:(NSString *)fileName; + +- (void)showPrefPanel:(id)sender; + +@end + +#endif diff --git a/AppController.m b/AppController.m new file mode 100644 index 0000000..c1e4055 --- /dev/null +++ b/AppController.m @@ -0,0 +1,88 @@ +/* + Project: chocolate-launcher + + Copyright (C) 2009 Free Software Foundation + + Author: Simon Howard,,, + + Created: 2009-12-24 22:48:58 +0000 by fraggle + + Application Controller + + This application 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 application 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 + Library General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. +*/ + +#include "AppController.h" + +@implementation AppController + ++ (void)initialize +{ + NSMutableDictionary *defaults = [NSMutableDictionary dictionary]; + + /* + * Register your app's defaults here by adding objects to the + * dictionary, eg + * + * [defaults setObject:anObject forKey:keyForThatObject]; + * + */ + + [[NSUserDefaults standardUserDefaults] registerDefaults:defaults]; + [[NSUserDefaults standardUserDefaults] synchronize]; +} + +- (id)init +{ + if ((self = [super init])) + { + } + return self; +} + +- (void)dealloc +{ + [super dealloc]; +} + +- (void)awakeFromNib +{ + [[NSApp mainMenu] setTitle:@"chocolate-launcher"]; +} + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotif +{ +// Uncomment if your application is Renaissance-based +// [NSBundle loadGSMarkupNamed:@"Main" owner:self]; +} + +- (BOOL)applicationShouldTerminate:(id)sender +{ + return YES; +} + +- (void)applicationWillTerminate:(NSNotification *)aNotif +{ +} + +- (BOOL)application:(NSApplication *)application openFile:(NSString *)fileName +{ +} + +- (void)showPrefPanel:(id)sender +{ +} + +@end diff --git a/GNUmakefile b/GNUmakefile new file mode 100644 index 0000000..9e69818 --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,54 @@ +# +# GNUmakefile - Generated by ProjectCenter +# + +include $(GNUSTEP_MAKEFILES)/common.make + +# +# Application +# +VERSION = 0.1 +PACKAGE_NAME = chocolate-launcher +APP_NAME = chocolate-launcher +chocolate-launcher_APPLICATION_ICON = + + +# +# Resource files +# +chocolate-launcher_RESOURCE_FILES = \ +Resources/launcher.gorm \ +Resources/Main.gsmarkup \ +Resources/MainMenu-GNUstep.gsmarkup \ +Resources/MainMenu-OSX.gsmarkup + + +# +# Header files +# +chocolate-launcher_HEADER_FILES = \ +AppController.h \ +IWADList.h \ +LauncherManager.h + +# +# Class files +# +chocolate-launcher_OBJC_FILES = \ +AppController.m \ +IWADList.m \ +LauncherManager.m + +# +# Other sources +# +chocolate-launcher_OBJC_FILES += \ +main.m + +# +# Makefiles +# +-include GNUmakefile.preamble +include $(GNUSTEP_MAKEFILES)/aggregate.make +include $(GNUSTEP_MAKEFILES)/application.make +-include GNUmakefile.postamble diff --git a/GNUmakefile.postamble b/GNUmakefile.postamble new file mode 100644 index 0000000..00007e8 --- /dev/null +++ b/GNUmakefile.postamble @@ -0,0 +1,40 @@ +# +# GNUmakefile.postamble - Generated by ProjectCenter +# + +# Things to do before compiling +# before-all:: + +# Things to do after compiling +# after-all:: + +# Things to do before installing +# before-install:: + +# Things to do after installing +# after-install:: + +# Things to do before uninstalling +# before-uninstall:: + +# Things to do after uninstalling +# after-uninstall:: + +# Things to do before cleaning +# before-clean:: + +# Things to do after cleaning +# after-clean:: + +# Things to do before distcleaning +# before-distclean:: + +# Things to do after distcleaning +# after-distclean:: + +# Things to do before checking +# before-check:: + +# Things to do after checking +# after-check:: + diff --git a/GNUmakefile.preamble b/GNUmakefile.preamble new file mode 100644 index 0000000..b33bdf0 --- /dev/null +++ b/GNUmakefile.preamble @@ -0,0 +1,25 @@ +# +# GNUmakefile.preamble - Generated by ProjectCenter +# + +# Additional flags to pass to the preprocessor +ADDITIONAL_CPPFLAGS += + +# Additional flags to pass to Objective C compiler +ADDITIONAL_OBJCFLAGS += + +# Additional flags to pass to C compiler +ADDITIONAL_CFLAGS += + +# Additional flags to pass to the linker +ADDITIONAL_LDFLAGS += + +# Additional include directories the compiler should search +ADDITIONAL_INCLUDE_DIRS += + +# Additional library directories the linker should search +ADDITIONAL_LIB_DIRS += + +# Additional GUI libraries to link +ADDITIONAL_GUI_LIBS += + diff --git a/IWADList.h b/IWADList.h new file mode 100644 index 0000000..3a97294 --- /dev/null +++ b/IWADList.h @@ -0,0 +1,16 @@ +/* All Rights reserved */ + +#include + +@interface IWADList : NSObject +{ + id iwadListTable; + NSMutableArray *iwads; +} + +- (void) addIwad: (id)sender; +- (void) deleteIwad: (id)sender; +- (NSString *) getSelectedIwad; + +@end + diff --git a/IWADList.m b/IWADList.m new file mode 100644 index 0000000..fb5a0d2 --- /dev/null +++ b/IWADList.m @@ -0,0 +1,139 @@ +/* ... */ +//----------------------------------------------------------------------------- +// +// 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. +// +//----------------------------------------------------------------------------- +// +// Controller for managing the list of IWAD files. +// +//----------------------------------------------------------------------------- + +#include +#include "IWADList.h" + +static id WAD_TYPES[] = { + @"wad", @"WAD" +}; + +@implementation IWADList + +// Constructor. + +- init +{ + self = [super init]; + + iwads = [NSMutableArray array]; + [iwads retain]; + + return self; +} + +// Callback invoked when the add IWAD button is clicked. + +- (void) addIwad: (id)sender +{ + NSArray *wadTypes = [NSArray arrayWithObjects: WAD_TYPES count: 2]; + NSArray *filenames; + id filename; + NSOpenPanel *openPanel; + int result; + + [wadTypes retain]; + + // Open a file selector for the new file. + + openPanel = [NSOpenPanel openPanel]; + [openPanel setTitle: @"Add IWAD file"]; + [openPanel setCanChooseFiles: YES]; + [openPanel setCanChooseDirectories: NO]; + + result = [openPanel runModalForTypes: wadTypes]; + + // If the "OK" button was clicked, add the new IWAD file to the list. + + if (result == NSOKButton) + { + filenames = [openPanel filenames]; + filename = [filenames lastObject]; + [filename retain]; + [iwads addObject: filename]; + [iwadListTable reloadData]; + } +} + +// Callback invoked when the delete IWAD button is clicked. + +- (void) deleteIwad: (id)sender +{ + int row; + id str; + + [iwadListTable setHeaderView: nil]; + + // Check that a valid IWAD is selected. + + row = [iwadListTable selectedRow]; + + if (row >= 0 && row < [iwads count]) + { + str = [iwads objectAtIndex:row]; + + // Remove from the list. + + [iwads removeObjectAtIndex: row]; + [str release]; + [iwadListTable reloadData]; + } +} + +// Used by the table controller - returns number of rows for the table. + +- (int) numberOfRowsInTableView:(NSTableView *)aTableView +{ +printf("numberOfRowsInTableView\n"); + return [iwads count]; +} + +// Used by the table controller to get the contents for a cell. + +- (id) tableView:(NSTableView *) aTableView + objectValueForTableColumn: (NSTableColumn *) aTableColumn + row: (int) rowIndex +{ +printf("tableView\n"); + return [iwads objectAtIndex:rowIndex]; +} + +// Public interface to get the selected IWAD. + +- (NSString *) getSelectedIwad +{ + if ([iwads count] <= 0) + { + return nil; + } + else + { + return [iwads objectAtIndex:[iwadListTable selectedRow]]; + } +} + +@end + diff --git a/LauncherManager.h b/LauncherManager.h new file mode 100644 index 0000000..96c7478 --- /dev/null +++ b/LauncherManager.h @@ -0,0 +1,15 @@ +/* All Rights reserved */ + +#include + +@interface LauncherManager : NSObject +{ + id commandLineArguments; + id iwadList; +} + +- (void) launch: (id)sender; +- (void) runSetup: (id)sender; + +@end + diff --git a/LauncherManager.m b/LauncherManager.m new file mode 100644 index 0000000..05417f8 --- /dev/null +++ b/LauncherManager.m @@ -0,0 +1,51 @@ +// Emacs style mode select -*- C++ -*- +//----------------------------------------------------------------------------- +// +// 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. +// +//----------------------------------------------------------------------------- +// +// Controller for the launcher program. +// +//----------------------------------------------------------------------------- + +#include +#include "LauncherManager.h" +#include "IWADList.h" + +@implementation LauncherManager + +// Callback invoked when the launch button is clicked. + +- (void) launch: (id)sender +{ + printf("launch the game\n"); + printf("arguments: -iwad %s %s\n", + [[iwadList getSelectedIwad] UTF8String], + [[commandLineArguments stringValue] UTF8String]); +} + +// Callback invoked when the setup tool button is clicked. + +- (void) runSetup: (id)sender +{ + printf("run setup tool\n"); +} + +@end + diff --git a/PC.project b/PC.project new file mode 100644 index 0000000..b30849d --- /dev/null +++ b/PC.project @@ -0,0 +1,87 @@ +{ + APPLICATIONICON = ""; + APP_DOCUMENT_BASED = NO; + APP_TYPE = GORM; + BUILDER_ARGS = ( + ); + CLASS_FILES = ( + AppController.m, + IWADList.m, + LauncherManager.m + ); + COMPILEROPTIONS = ""; + CPPOPTIONS = ""; + CREATION_DATE = "2009-12-24 22:48:58 +0000"; + DOCU_FILES = ( + ); + FRAMEWORKS = ( + ); + HEADER_FILES = ( + AppController.h, + IWADList.h, + LauncherManager.h + ); + IMAGES = ( + ); + INSTALLDIR = "$(HOME)/GNUstep"; + INTERFACES = ( + launcher.gorm, + Main.gsmarkup, + "MainMenu-GNUstep.gsmarkup", + "MainMenu-OSX.gsmarkup" + ); + LANGUAGE = English; + LAST_EDITING = "2009-12-25 00:36:37 +0000"; + LIBRARIES = ( + "gnustep-base", + "gnustep-gui" + ); + LINKEROPTIONS = ""; + LOCALIZED_RESOURCES = ( + ); + MAININTERFACE = launcher.gorm; + MAKEFILEDIR = "$(GNUSTEP_MAKEFILES)"; + OBJC_COMPILEROPTIONS = ""; + OTHER_RESOURCES = ( + ); + OTHER_SOURCES = ( + main.m + ); + PC_WINDOWS = { + ProjectBrowser = "{x = 0; y = 0; width = 786; height = 161}"; + ProjectWindow = "178 32 810 544 0 0 1024 600 "; + ShowToolbar = YES; + }; + PRINCIPAL_CLASS = NSApplication; + PROJECT_AUTHORS = ( + ); + PROJECT_COPYRIGHT = "Copyright (C) 200x"; + PROJECT_COPYRIGHT_DESC = "Released under ..."; + PROJECT_CREATOR = "Simon Howard,,,"; + PROJECT_DESCRIPTION = "No description avaliable!"; + PROJECT_DOCUMENTTYPES = ( + ); + PROJECT_GROUP = "No group avaliable!"; + PROJECT_MAINTAINER = "Simon Howard,,,"; + PROJECT_NAME = "chocolate-launcher"; + PROJECT_RELEASE = 0.1; + PROJECT_SUMMARY = "No summary avaliable!"; + PROJECT_TYPE = Application; + PROJECT_URL = ""; + SEARCH_HEADER_DIRS = ( + ); + SEARCH_LIB_DIRS = ( + ); + SUBPROJECTS = ( + ); + SUPPORTING_FILES = ( + GNUmakefile.preamble, + GNUmakefile, + GNUmakefile.postamble, + "chocolate-launcherInfo.plist" + ); + USER_LANGUAGES = ( + BritainEnglish, + English + ); +} \ No newline at end of file diff --git a/Resources/Main.gsmarkup b/Resources/Main.gsmarkup new file mode 100644 index 0000000..e403420 --- /dev/null +++ b/Resources/Main.gsmarkup @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Resources/MainMenu-GNUstep.gsmarkup b/Resources/MainMenu-GNUstep.gsmarkup new file mode 100644 index 0000000..fa9bb76 --- /dev/null +++ b/Resources/MainMenu-GNUstep.gsmarkup @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/MainMenu-OSX.gsmarkup b/Resources/MainMenu-OSX.gsmarkup new file mode 100644 index 0000000..a20024f --- /dev/null +++ b/Resources/MainMenu-OSX.gsmarkup @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/launcher.gorm/128x128.png b/Resources/launcher.gorm/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef1fe9c9d31aab1d334761f81c7887ba70f5517 GIT binary patch literal 23029 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 z%0A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 IM6N<$f(B&IXaE2J literal 0 HcmV?d00001 diff --git a/Resources/launcher.gorm/data.classes b/Resources/launcher.gorm/data.classes new file mode 100644 index 0000000..fece661 --- /dev/null +++ b/Resources/launcher.gorm/data.classes @@ -0,0 +1,43 @@ +{ + "## Comment" = "Do NOT change this file, Gorm maintains it"; + AppController = { + Actions = ( + "showPrefPanel:" + ); + Outlets = ( + ); + Super = NSObject; + }; + FirstResponder = { + Actions = ( + "addIwad:", + "deleteIwad:", + "launch:", + "orderFrontFontPanel:", + "runSetup:", + "showPrefPanel:" + ); + Super = NSObject; + }; + IWADList = { + Actions = ( + "addIwad:", + "deleteIwad:" + ); + Outlets = ( + iwadListTable + ); + Super = NSObject; + }; + LauncherManager = { + Actions = ( + "launch:", + "runSetup:" + ); + Outlets = ( + commandLineArguments, + iwadList + ); + Super = NSObject; + }; +} \ No newline at end of file diff --git a/Resources/launcher.gorm/data.info b/Resources/launcher.gorm/data.info new file mode 100644 index 0000000000000000000000000000000000000000..1b455497f6e23edd6f9fcc51d7558d29855bd481 GIT binary patch literal 184 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 + +int main(int argc, const char *argv[]) +{ + return NSApplicationMain (argc, argv); +} +