initial import of SheepShaver Launcher project for Mac OS X (WIP)

This commit is contained in:
asvitkine 2009-08-02 18:34:57 +00:00
parent 80a7589e29
commit e8e5440b31
17 changed files with 5702 additions and 0 deletions

View File

@ -0,0 +1,30 @@
/*
* AppController.h - Cocoa SheepShaver launcher for Mac OS X
*
* Copyright (C) 2009 Alexei Svitkine
*
* 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
*/
#import <Cocoa/Cocoa.h>
@interface AppController : NSObject {
}
- (void) awakeFromNib;
- (IBAction) openVirtualMachinesList: (id) sender;
@end

View File

@ -0,0 +1,36 @@
/*
* AppController.mm - Cocoa SheepShaver launcher for Mac OS X
*
* Copyright (C) 2009 Alexei Svitkine
*
* 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
*/
#import "AppController.h"
#import "VMListController.h"
@implementation AppController
- (void) awakeFromNib
{
[self openVirtualMachinesList:self];
}
- (IBAction) openVirtualMachinesList: (id) sender
{
[[VMListController sharedInstance] showWindow:sender];
}
@end

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IBClasses</key>
<array>
<dict>
<key>CLASS</key>
<string>FirstResponder</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>SUPERCLASS</key>
<string>NSObject</string>
</dict>
<dict>
<key>ACTIONS</key>
<dict>
<key>openVirtualMachinesList</key>
<string>id</string>
</dict>
<key>CLASS</key>
<string>AppController</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>SUPERCLASS</key>
<string>NSObject</string>
</dict>
</array>
<key>IBVersion</key>
<string>1</string>
</dict>
</plist>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IBFramework Version</key>
<string>677</string>
<key>IBLastKnownRelativeProjectPath</key>
<string>../SheepShaverPrefs.xcodeproj</string>
<key>IBOldestOS</key>
<integer>4</integer>
<key>IBOpenObjects</key>
<array>
<integer>24</integer>
</array>
<key>IBSystem Version</key>
<string>9J61</string>
<key>targetFramework</key>
<string>IBCocoaFramework</string>
</dict>
</plist>

View File

@ -0,0 +1,661 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">1050</int>
<string key="IBDocument.SystemVersion">9J61</string>
<string key="IBDocument.InterfaceBuilderVersion">677</string>
<string key="IBDocument.AppKitVersion">949.46</string>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</object>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSCustomObject" id="1001">
<string key="NSClassName">VMListController</string>
</object>
<object class="NSCustomObject" id="1003">
<string key="NSClassName">FirstResponder</string>
</object>
<object class="NSCustomObject" id="1004">
<string key="NSClassName">NSApplication</string>
</object>
<object class="NSWindowTemplate" id="1005">
<int key="NSWindowStyleMask">15</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{196, 309}, {412, 201}}</string>
<int key="NSWTFlags">536870912</int>
<string key="NSWindowTitle">SheepShaver Virtual Machines</string>
<string key="NSWindowClass">NSWindow</string>
<nil key="NSViewClass"/>
<string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
<string key="NSWindowContentMinSize">{412, 201}</string>
<object class="NSView" key="NSWindowView" id="1006">
<nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSScrollView" id="459107301">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">274</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSClipView" id="665987475">
<reference key="NSNextResponder" ref="459107301"/>
<int key="NSvFlags">2304</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableView" id="1061134531">
<reference key="NSNextResponder" ref="665987475"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{374, 94}</string>
<reference key="NSSuperview" ref="665987475"/>
<bool key="NSEnabled">YES</bool>
<object class="_NSCornerView" key="NSCornerView">
<nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<string key="NSFrame">{{375, 0}, {16, 17}}</string>
</object>
<object class="NSMutableArray" key="NSTableColumns">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableColumn" id="289063287">
<double key="NSWidth">3.710000e+02</double>
<double key="NSMinWidth">4.000000e+01</double>
<double key="NSMaxWidth">1.000000e+03</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628032</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">1.100000e+01</double>
<int key="NSfFlags">3100</int>
</object>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
</object>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerTextColor</string>
<object class="NSColor" key="NSColor" id="212734233">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="795064133">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<object class="NSFont" key="NSSupport" id="30348852">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">1.300000e+01</double>
<int key="NSfFlags">1044</int>
</object>
<reference key="NSControlView" ref="1061134531"/>
<object class="NSColor" key="NSBackgroundColor" id="241468539">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<object class="NSColor" key="NSColor" id="251310741">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="781088430">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<reference key="NSColor" ref="212734233"/>
</object>
</object>
<reference key="NSTableView" ref="1061134531"/>
</object>
</object>
<double key="NSIntercellSpacingWidth">3.000000e+00</double>
<double key="NSIntercellSpacingHeight">2.000000e+00</double>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="NSGridColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">1.700000e+01</double>
<int key="NSTvFlags">316669952</int>
<int key="NSGridStyleMask">2</int>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">YES</bool>
</object>
</object>
<string key="NSFrame">{{1, 1}, {355, 94}}</string>
<string key="NSBounds">{{19, 0}, {355, 94}}</string>
<reference key="NSSuperview" ref="459107301"/>
<reference key="NSDocView" ref="1061134531"/>
<reference key="NSBGColor" ref="241468539"/>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="1054079060">
<reference key="NSNextResponder" ref="459107301"/>
<int key="NSvFlags">256</int>
<string key="NSFrame">{{356, 1}, {15, 94}}</string>
<reference key="NSSuperview" ref="459107301"/>
<reference key="NSTarget" ref="459107301"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">3.947369e-01</double>
</object>
<object class="NSScroller" id="61958229">
<reference key="NSNextResponder" ref="459107301"/>
<int key="NSvFlags">256</int>
<string key="NSFrame">{{-100, -100}, {374, 15}}</string>
<reference key="NSSuperview" ref="459107301"/>
<bool key="NSEnabled">YES</bool>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="459107301"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">9.904762e-01</double>
</object>
</object>
<string key="NSFrame">{{20, 60}, {372, 96}}</string>
<reference key="NSSuperview" ref="1006"/>
<int key="NSsFlags">146</int>
<reference key="NSVScroller" ref="1054079060"/>
<reference key="NSHScroller" ref="61958229"/>
<reference key="NSContentView" ref="665987475"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
</object>
<object class="NSButton" id="389169892">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">293</int>
<string key="NSFrame">{{302, 12}, {96, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="918506050">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Run</string>
<reference key="NSSupport" ref="30348852"/>
<reference key="NSControlView" ref="389169892"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="1038941780">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">293</int>
<string key="NSFrame">{{206, 12}, {96, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="816832141">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Settings...</string>
<reference key="NSSupport" ref="30348852"/>
<reference key="NSControlView" ref="1038941780"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="995142338">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">293</int>
<string key="NSFrame">{{14, 12}, {96, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="752809530">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">New...</string>
<reference key="NSSupport" ref="30348852"/>
<reference key="NSControlView" ref="995142338"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSTextField" id="560343337">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 164}, {147, 17}}</string>
<reference key="NSSuperview" ref="1006"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="397198339">
<int key="NSCellFlags">68288064</int>
<int key="NSCellFlags2">272630784</int>
<string key="NSContents">Virtual Machine List:</string>
<reference key="NSSupport" ref="30348852"/>
<reference key="NSControlView" ref="560343337"/>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<reference key="NSColor" ref="251310741"/>
</object>
<reference key="NSTextColor" ref="781088430"/>
</object>
</object>
<object class="NSButton" id="999915076">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">293</int>
<string key="NSFrame">{{110, 11}, {96, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="45041965">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Import...</string>
<reference key="NSSupport" ref="30348852"/>
<reference key="NSControlView" ref="999915076"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
</object>
<string key="NSFrameSize">{412, 201}</string>
</object>
<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
<string key="NSMinSize">{412, 223}</string>
<string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="1005"/>
<reference key="destination" ref="1001"/>
</object>
<int key="connectionID">46</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">runVirtualMachine:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="389169892"/>
</object>
<int key="connectionID">47</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">newVirtualMachine:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="995142338"/>
</object>
<int key="connectionID">48</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">importVirtualMachine:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="999915076"/>
</object>
<int key="connectionID">49</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">editVirtualMachineSettings:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1038941780"/>
</object>
<int key="connectionID">50</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">vmList</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1061134531"/>
</object>
<int key="connectionID">51</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1005"/>
</object>
<int key="connectionID">52</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBObjectRecord">
<int key="objectID">0</int>
<object class="NSArray" key="object" id="1002">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="1001"/>
<reference key="parent" ref="1002"/>
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="1003"/>
<reference key="parent" ref="1002"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="1004"/>
<reference key="parent" ref="1002"/>
<string key="objectName">Application</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="1005"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="1006"/>
</object>
<reference key="parent" ref="1002"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="1006"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="459107301"/>
<reference ref="389169892"/>
<reference ref="1038941780"/>
<reference ref="995142338"/>
<reference ref="999915076"/>
<reference ref="560343337"/>
</object>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">13</int>
<reference key="object" ref="459107301"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="1061134531"/>
<reference ref="1054079060"/>
<reference ref="61958229"/>
</object>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">14</int>
<reference key="object" ref="1061134531"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="289063287"/>
</object>
<reference key="parent" ref="459107301"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">15</int>
<reference key="object" ref="1054079060"/>
<reference key="parent" ref="459107301"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">16</int>
<reference key="object" ref="61958229"/>
<reference key="parent" ref="459107301"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">17</int>
<reference key="object" ref="289063287"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="795064133"/>
</object>
<reference key="parent" ref="1061134531"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">21</int>
<reference key="object" ref="389169892"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="918506050"/>
</object>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">22</int>
<reference key="object" ref="918506050"/>
<reference key="parent" ref="389169892"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">23</int>
<reference key="object" ref="1038941780"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="816832141"/>
</object>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">24</int>
<reference key="object" ref="816832141"/>
<reference key="parent" ref="1038941780"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">25</int>
<reference key="object" ref="995142338"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="752809530"/>
</object>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">26</int>
<reference key="object" ref="752809530"/>
<reference key="parent" ref="995142338"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="795064133"/>
<reference key="parent" ref="289063287"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">31</int>
<reference key="object" ref="560343337"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="397198339"/>
</object>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">32</int>
<reference key="object" ref="397198339"/>
<reference key="parent" ref="560343337"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">43</int>
<reference key="object" ref="999915076"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="45041965"/>
</object>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">44</int>
<reference key="object" ref="45041965"/>
<reference key="parent" ref="999915076"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.IBPluginDependency</string>
<string>-2.IBPluginDependency</string>
<string>-3.IBPluginDependency</string>
<string>1.IBEditorWindowLastContentRect</string>
<string>1.IBWindowTemplateEditedContentRect</string>
<string>1.NSWindowTemplate.visibleAtLaunch</string>
<string>1.WindowOrigin</string>
<string>1.editorWindowContentRectSynchronizationRect</string>
<string>1.windowTemplate.hasMinSize</string>
<string>1.windowTemplate.minSize</string>
<string>13.IBPluginDependency</string>
<string>13.ImportedFromIB2</string>
<string>14.IBPluginDependency</string>
<string>14.ImportedFromIB2</string>
<string>15.IBPluginDependency</string>
<string>15.IBShouldRemoveOnLegacySave</string>
<string>16.IBPluginDependency</string>
<string>16.IBShouldRemoveOnLegacySave</string>
<string>17.IBPluginDependency</string>
<string>17.ImportedFromIB2</string>
<string>18.IBPluginDependency</string>
<string>18.IBShouldRemoveOnLegacySave</string>
<string>2.IBPluginDependency</string>
<string>21.IBPluginDependency</string>
<string>22.IBPluginDependency</string>
<string>23.IBPluginDependency</string>
<string>24.IBPluginDependency</string>
<string>25.IBPluginDependency</string>
<string>26.IBPluginDependency</string>
<string>31.IBPluginDependency</string>
<string>32.IBPluginDependency</string>
<string>43.IBPluginDependency</string>
<string>44.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{151, 461}, {412, 201}}</string>
<string>{{151, 461}, {412, 201}}</string>
<integer value="1"/>
<string>{196, 240}</string>
<string>{{357, 418}, {480, 270}}</string>
<boolean value="YES" id="5"/>
<string>{412, 201}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="5"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="5"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="5"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="5"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="5"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="5"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">52</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">VMListController</string>
<string key="superclassName">NSWindowController</string>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>editVirtualMachineSettings:</string>
<string>importVirtualMachine:</string>
<string>newVirtualMachine:</string>
<string>runVirtualMachine:</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">vmList</string>
<string key="NS.object.0">NSTableView</string>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">VMListController.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.LastKnownRelativeProjectPath">../SheepShaverLauncher.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
</data>
</archive>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>net.sourceforge.SheepShaverLauncher</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>2.3</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

View File

@ -0,0 +1,345 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 42;
objects = {
/* Begin PBXBuildFile section */
084186B10B3A0515004B1F63 /* VMSettingsController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 084186B00B3A0515004B1F63 /* VMSettingsController.mm */; };
08B5FAFD102497FA0047FD1B /* VMSettingsWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = 08B5FAFB102497FA0047FD1B /* VMSettingsWindow.nib */; };
08B5FB01102498B00047FD1B /* VMListWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = 08B5FAFF102498B00047FD1B /* VMListWindow.nib */; };
08B5FB221024FE320047FD1B /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 08B5FB211024FE320047FD1B /* AppController.mm */; };
08DC90BD0B67074C00799A45 /* prefs_items.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08DC90BC0B67074C00799A45 /* prefs_items.cpp */; };
08DC90BF0B67075D00799A45 /* prefs_unix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08DC90BE0B67075D00799A45 /* prefs_unix.cpp */; };
08DC90C10B67077300799A45 /* prefs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08DC90C00B67077300799A45 /* prefs.cpp */; };
08F4D174102601C500C6436D /* VMListController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 08F4D173102601C500C6436D /* VMListController.mm */; };
8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
084186AF0B3A0515004B1F63 /* VMSettingsController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = VMSettingsController.h; sourceTree = "<group>"; };
084186B00B3A0515004B1F63 /* VMSettingsController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = VMSettingsController.mm; sourceTree = "<group>"; };
089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
08B5FAFC102497FA0047FD1B /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/VMSettingsWindow.nib; sourceTree = "<group>"; };
08B5FB00102498B00047FD1B /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/VMListWindow.nib; sourceTree = "<group>"; };
08B5FB201024FE320047FD1B /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppController.h; sourceTree = "<group>"; };
08B5FB211024FE320047FD1B /* AppController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AppController.mm; sourceTree = "<group>"; };
08DC90BC0B67074C00799A45 /* prefs_items.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = prefs_items.cpp; path = ../../prefs_items.cpp; sourceTree = SOURCE_ROOT; };
08DC90BE0B67075D00799A45 /* prefs_unix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = prefs_unix.cpp; path = ../../Unix/prefs_unix.cpp; sourceTree = SOURCE_ROOT; };
08DC90C00B67077300799A45 /* prefs.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = prefs.cpp; path = ../../prefs.cpp; sourceTree = SOURCE_ROOT; };
08DC90C20B67078300799A45 /* prefs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = prefs.h; path = ../../include/prefs.h; sourceTree = SOURCE_ROOT; };
08DC90C40B67079800799A45 /* sys.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sys.h; path = ../../include/sys.h; sourceTree = SOURCE_ROOT; };
08DC90C50B6707AC00799A45 /* user_strings_unix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = user_strings_unix.h; path = ../../Unix/user_strings_unix.h; sourceTree = SOURCE_ROOT; };
08DC90C60B6707B400799A45 /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = config.h; path = ../../Unix/config.h; sourceTree = SOURCE_ROOT; };
08DC90C70B6707BE00799A45 /* sysdeps.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sysdeps.h; path = ../../Unix/sysdeps.h; sourceTree = SOURCE_ROOT; };
08F4D172102601C500C6436D /* VMListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMListController.h; sourceTree = "<group>"; };
08F4D173102601C500C6436D /* VMListController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = VMListController.mm; sourceTree = "<group>"; };
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D1107320486CEB800E47090 /* SheepShaverLauncher.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SheepShaverLauncher.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8D11072E0486CEB800E47090 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
080E96DDFE201D6D7F000001 /* Classes */ = {
isa = PBXGroup;
children = (
);
name = Classes;
sourceTree = "<group>";
};
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup;
children = (
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
);
name = "Linked Frameworks";
sourceTree = "<group>";
};
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
isa = PBXGroup;
children = (
29B97324FDCFA39411CA2CEA /* AppKit.framework */,
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
29B97325FDCFA39411CA2CEA /* Foundation.framework */,
);
name = "Other Frameworks";
sourceTree = "<group>";
};
19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D1107320486CEB800E47090 /* SheepShaverLauncher.app */,
);
name = Products;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* SheepShaverLauncher */ = {
isa = PBXGroup;
children = (
08DC90C20B67078300799A45 /* prefs.h */,
08DC90C40B67079800799A45 /* sys.h */,
08DC90C50B6707AC00799A45 /* user_strings_unix.h */,
08DC90C60B6707B400799A45 /* config.h */,
08DC90C70B6707BE00799A45 /* sysdeps.h */,
08DC90BC0B67074C00799A45 /* prefs_items.cpp */,
08DC90BE0B67075D00799A45 /* prefs_unix.cpp */,
08DC90C00B67077300799A45 /* prefs.cpp */,
080E96DDFE201D6D7F000001 /* Classes */,
29B97315FDCFA39411CA2CEA /* Other Sources */,
29B97317FDCFA39411CA2CEA /* Resources */,
29B97323FDCFA39411CA2CEA /* Frameworks */,
19C28FACFE9D520D11CA2CBB /* Products */,
08B5FB201024FE320047FD1B /* AppController.h */,
08B5FB211024FE320047FD1B /* AppController.mm */,
084186AF0B3A0515004B1F63 /* VMSettingsController.h */,
084186B00B3A0515004B1F63 /* VMSettingsController.mm */,
08F4D172102601C500C6436D /* VMListController.h */,
08F4D173102601C500C6436D /* VMListController.mm */,
);
name = SheepShaverLauncher;
sourceTree = "<group>";
};
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
isa = PBXGroup;
children = (
29B97316FDCFA39411CA2CEA /* main.m */,
);
name = "Other Sources";
sourceTree = "<group>";
};
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
8D1107310486CEB800E47090 /* Info.plist */,
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
08B5FAFB102497FA0047FD1B /* VMSettingsWindow.nib */,
08B5FAFF102498B00047FD1B /* VMListWindow.nib */,
);
name = Resources;
sourceTree = "<group>";
};
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
isa = PBXGroup;
children = (
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
8D1107260486CEB800E47090 /* SheepShaver Launcher */ = {
isa = PBXNativeTarget;
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "SheepShaver Launcher" */;
buildPhases = (
8D1107290486CEB800E47090 /* Resources */,
8D11072C0486CEB800E47090 /* Sources */,
8D11072E0486CEB800E47090 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = "SheepShaver Launcher";
productInstallPath = "$(HOME)/Applications";
productName = SheepShaverLauncher;
productReference = 8D1107320486CEB800E47090 /* SheepShaverLauncher.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SheepShaverLauncher" */;
compatibilityVersion = "Xcode 2.4";
hasScannedForEncodings = 1;
mainGroup = 29B97314FDCFA39411CA2CEA /* SheepShaverLauncher */;
projectDirPath = "";
projectRoot = "";
targets = (
8D1107260486CEB800E47090 /* SheepShaver Launcher */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D1107290486CEB800E47090 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */,
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
08B5FAFD102497FA0047FD1B /* VMSettingsWindow.nib in Resources */,
08B5FB01102498B00047FD1B /* VMListWindow.nib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D11072C0486CEB800E47090 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8D11072D0486CEB800E47090 /* main.m in Sources */,
084186B10B3A0515004B1F63 /* VMSettingsController.mm in Sources */,
08DC90BD0B67074C00799A45 /* prefs_items.cpp in Sources */,
08DC90BF0B67075D00799A45 /* prefs_unix.cpp in Sources */,
08DC90C10B67077300799A45 /* prefs.cpp in Sources */,
08B5FB221024FE320047FD1B /* AppController.mm in Sources */,
08F4D174102601C500C6436D /* VMListController.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
089C165DFE840E0CC02AAC07 /* English */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
08B5FAFB102497FA0047FD1B /* VMSettingsWindow.nib */ = {
isa = PBXVariantGroup;
children = (
08B5FAFC102497FA0047FD1B /* English */,
);
name = VMSettingsWindow.nib;
sourceTree = "<group>";
};
08B5FAFF102498B00047FD1B /* VMListWindow.nib */ = {
isa = PBXVariantGroup;
children = (
08B5FB00102498B00047FD1B /* English */,
);
name = VMListWindow.nib;
sourceTree = "<group>";
};
29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = {
isa = PBXVariantGroup;
children = (
29B97319FDCFA39411CA2CEA /* English */,
);
name = MainMenu.nib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
C01FCF4B08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
PREFS_EDITOR,
STANDALONE_PREFS,
);
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
OTHER_CFLAGS = "$(inherited)";
PRODUCT_NAME = SheepShaverLauncher;
WRAPPER_EXTENSION = app;
ZERO_LINK = YES;
};
name = Debug;
};
C01FCF4C08A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
);
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
GCC_MODEL_TUNING = G5;
GCC_PREPROCESSOR_DEFINITIONS = (
PREFS_EDITOR,
STANDALONE_PREFS,
);
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
OTHER_CFLAGS = "$(inherited)";
PRODUCT_NAME = SheepShaverLauncher;
WRAPPER_EXTENSION = app;
};
name = Release;
};
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Debug;
};
C01FCF5008A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "SheepShaver Launcher" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4B08A954540054247B /* Debug */,
C01FCF4C08A954540054247B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SheepShaverLauncher" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4F08A954540054247B /* Debug */,
C01FCF5008A954540054247B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}

View File

@ -0,0 +1,38 @@
/*
* VMListController.h - SheepShaver VM manager in Cocoa on Mac OS X
*
* Copyright (C) 2009 Alexei Svitkine
*
* 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
*/
#import <Cocoa/Cocoa.h>
@interface VMListController : NSWindowController {
IBOutlet NSTableView *vmList;
NSMutableArray *vmArray;
}
+ (id) sharedInstance;
- (id) init;
- (void) awakeFromNib;
- (IBAction) newVirtualMachine: (id) sender;
- (IBAction) importVirtualMachine: (id) sender;
- (IBAction) editVirtualMachineSettings: (id) sender;
- (IBAction) runVirtualMachine: (id) sender;
@end

View File

@ -0,0 +1,133 @@
/*
* VMListController.mm - SheepShaver VM manager in Cocoa on Mac OS X
*
* Copyright (C) 2009 Alexei Svitkine
*
* 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
*/
#import "VMListController.h"
#import "VMSettingsController.h"
@implementation VMListController
+ (id) sharedInstance
{
static VMListController *_sharedInstance = nil;
if (!_sharedInstance) {
_sharedInstance = [[VMListController allocWithZone:[self zone]] init];
}
return _sharedInstance;
}
- (id) init
{
self = [super initWithWindowNibName:@"VMListWindow"];
NSArray *vms = [[NSUserDefaults standardUserDefaults] stringArrayForKey:@"vm_list"];
vmArray = [[NSMutableArray alloc] initWithCapacity:[vms count]];
[vmArray addObjectsFromArray:vms];
return self;
}
- (void) awakeFromNib
{
[vmList setDataSource: self];
//[vmList setDelegate: self];
[vmList reloadData];
}
- (int) numberOfRowsInTableView: (NSTableView *) table
{
return [vmArray count];
}
- (id) tableView: (NSTableView *) table objectValueForTableColumn: (NSTableColumn *) c row: (int) r
{
return [vmArray objectAtIndex: r]; // [[vmArray objectAtIndex: r] lastPathComponent];
}
//- (NSString *) tableView: (NSTableView *) table toolTipForCell: (NSCell *) cell rect: (NSRectPointer) rect
// tableColumn: (NSTableColumn *) c row: (int) r mouseLocation: (NSPoint) loc
//{
// return [vmArray objectAtIndex: r];
//}
- (IBAction) newVirtualMachine: (id) sender
{
NSSavePanel *save = [NSSavePanel savePanel];
[save setMessage: @"New SheepShaver Virtual Machine:"];
[save setRequiredFileType: @"sheepvm"];
[save setCanSelectHiddenExtension: YES];
[save setExtensionHidden: NO];
[save beginSheetForDirectory: nil
file: @"New.sheepvm"
modalForWindow: [self window]
modalDelegate: self
didEndSelector: @selector(_newVirtualMachineDone: returnCode: contextInfo:)
contextInfo: nil];
}
- (IBAction) _newVirtualMachineDone: (NSSavePanel *) save returnCode: (int) returnCode contextInfo: (void *) contextInfo
{
if (returnCode == NSOKButton) {
// make dir.
// create prefs file in there
// edit said prefs file
// advanced: show sub-panel in save dialog that says "Create Disk:"
}
}
- (IBAction) importVirtualMachine: (id) sender
{
NSOpenPanel *open = [NSOpenPanel openPanel];
[open setMessage:@"Import SheepShaver Virtual Machine:"];
[open setResolvesAliases:YES];
// Curiously, bundles are treated as "files" not "directories" by NSOpenPanel.
[open setCanChooseDirectories:NO];
[open setCanChooseFiles:YES];
[open setAllowsMultipleSelection:NO];
[open beginSheetForDirectory: nil
file: nil
types: [NSArray arrayWithObject:@"sheepvm"]
modalForWindow: [self window]
modalDelegate: self
didEndSelector: @selector(_importVirtualMachineDone: returnCode: contextInfo:)
contextInfo: nil];
}
- (void) _importVirtualMachineDone: (NSOpenPanel *) open returnCode: (int) returnCode contextInfo: (void *) contextInfo
{
if (returnCode == NSOKButton) {
[vmArray addObject:[open filename]];
[vmList reloadData];
[[NSUserDefaults standardUserDefaults] setObject:vmArray forKey:@"vm_list"];
}
}
- (IBAction) editVirtualMachineSettings:(id)sender
{
int selectedRow = [vmList selectedRow];
if (selectedRow >= 0) {
[[VMSettingsController sharedInstance] editSettingsFor:[vmArray objectAtIndex:selectedRow] sender:sender];
}
}
- (IBAction) runVirtualMachine:(id)sender
{
}
@end

View File

@ -0,0 +1,76 @@
/*
* VMSettingsController.h - Preferences editing in Cocoa on Mac OS X
*
* Copyright (C) 2006-2009 Alexei Svitkine
*
* 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
*/
#import <Cocoa/Cocoa.h>
@interface VMSettingsController : NSWindowController
{
IBOutlet NSView *diskSaveSize;
IBOutlet NSTextField *diskSaveSizeField;
NSMutableArray *diskArray;
// Setup
IBOutlet NSTableView *disks;
IBOutlet NSComboBox *bootFrom;
IBOutlet NSButton *disableCdrom;
IBOutlet NSTextField *ramSize;
IBOutlet NSStepper *ramSizeStepper;
IBOutlet NSTextField *romFile;
IBOutlet NSTextField *unixRoot;
// Audio/Video
IBOutlet NSPopUpButton *videoType;
IBOutlet NSPopUpButton *refreshRate;
IBOutlet NSComboBox *width;
IBOutlet NSComboBox *height;
IBOutlet NSButton *qdAccel;
IBOutlet NSButton *disableSound;
IBOutlet NSTextField *outDevice;
IBOutlet NSTextField *mixDevice;
// Keyboard/Mouse
IBOutlet NSButton *useRawKeyCodes;
IBOutlet NSTextField *rawKeyCodes;
IBOutlet NSPopUpButton *mouseWheel;
IBOutlet NSTextField *scrollLines;
IBOutlet NSStepper *scrollLinesStepper;
// CPU/Misc
IBOutlet NSButton *ignoreIllegalMemoryAccesses;
IBOutlet NSButton *ignoreIllegalInstructions;
IBOutlet NSButton *dontUseCPUWhenIdle;
IBOutlet NSButton *enableJIT;
IBOutlet NSButton *enable68kDREmulator;
IBOutlet NSTextField *modemPort;
IBOutlet NSTextField *printerPort;
IBOutlet NSTextField *ethernetInterface;
}
+ (id) sharedInstance;
- (id) init;
- (void) editSettingsFor: (NSString *) vmdir sender: (id) sender;
- (IBAction) addDisk: (id) sender;
- (IBAction) removeDisk: (id) sender;
- (IBAction) createDisk: (id) sender;
- (IBAction) useRawKeyCodesClicked: (id) sender;
- (IBAction) browseForROMFileClicked: (id) sender;
- (IBAction) browseForUnixRootClicked: (id) sender;
- (void) cancelEdit: (id) sender;
- (void) saveChanges: (id) sender;
- (void) dealloc;
@end

View File

@ -0,0 +1,357 @@
/*
* VMSettingsController.mm - Preferences editing in Cocoa on Mac OS X
*
* Copyright (C) 2006-2009 Alexei Svitkine
*
* 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
*/
#import "VMSettingsController.h"
#import "sysdeps.h"
#import "prefs.h"
const int CDROMRefNum = -62; // RefNum of driver
void prefs_init()
{
}
void prefs_exit()
{
}
@implementation VMSettingsController
+ (id) sharedInstance
{
static VMSettingsController *_sharedInstance = nil;
if (!_sharedInstance) {
_sharedInstance = [[VMSettingsController allocWithZone:[self zone]] init];
}
return _sharedInstance;
}
- (id) init
{
return [super initWithWindowNibName:@"VMSettingsWindow"];
}
- (int) numberOfRowsInTableView: (NSTableView *) table
{
return [diskArray count];
}
- (id) tableView: (NSTableView *) table objectValueForTableColumn: (NSTableColumn *) col row: (int) row
{
return [diskArray objectAtIndex: row];
}
static NSString *getStringFromPrefs(const char *key)
{
const char *value = PrefsFindString(key);
if (value == NULL)
return @"";
return [NSString stringWithCString: value];
}
- (void) setupGUI
{
diskArray = [[NSMutableArray alloc] init];
const char *dsk;
int index = 0;
while ((dsk = PrefsFindString("disk", index++)) != NULL)
[diskArray addObject: [NSString stringWithCString: dsk ]];
[disks setDataSource: self];
[disks reloadData];
int bootdriver = PrefsFindInt32("bootdriver"), active = 0;
switch (bootdriver) {
case 0: active = 0; break;
case CDROMRefNum: active = 1; break;
}
[bootFrom selectItemAtIndex: active ];
[romFile setStringValue: getStringFromPrefs("rom") ];
[unixRoot setStringValue: getStringFromPrefs("extfs") ];
[disableCdrom setIntValue: PrefsFindBool("nocdrom") ];
[ramSize setIntValue: PrefsFindInt32("ramsize") / (1024*1024) ];
[ramSizeStepper setIntValue: PrefsFindInt32("ramsize") / (1024*1024) ];
int display_type = 0;
int dis_width = 640;
int dis_height = 480;
const char *str = PrefsFindString("screen");
if (str != NULL) {
if (sscanf(str, "win/%d/%d", &dis_width, &dis_height) == 2)
display_type = 0;
else if (sscanf(str, "dga/%d/%d", &dis_width, &dis_height) == 2)
display_type = 1;
}
[videoType selectItemAtIndex: display_type ];
[width setIntValue: dis_width ];
[height setIntValue: dis_height ];
int frameskip = PrefsFindInt32("frameskip");
int item = -1;
switch (frameskip) {
case 12: item = 0; break;
case 8: item = 1; break;
case 6: item = 2; break;
case 4: item = 3; break;
case 2: item = 4; break;
case 1: item = 5; break;
case 0: item = 6; break;
}
if (item >= 0)
[refreshRate selectItemAtIndex: item ];
[qdAccel setIntValue: PrefsFindBool("gfxaccel") ];
[disableSound setIntValue: PrefsFindBool("nosound") ];
[outDevice setStringValue: getStringFromPrefs("dsp") ];
[mixDevice setStringValue: getStringFromPrefs("mixer") ];
[useRawKeyCodes setIntValue: PrefsFindBool("keycodes") ];
[rawKeyCodes setStringValue: getStringFromPrefs("keycodefile") ];
[rawKeyCodes setEnabled:[useRawKeyCodes intValue]];
int wheelmode = PrefsFindInt32("mousewheelmode"), wheel = 0;
switch (wheelmode) {
case 0: wheel = 0; break;
case 1: wheel = 1; break;
}
[mouseWheel selectItemAtIndex: wheel ];
[scrollLines setIntValue: PrefsFindInt32("mousewheellines") ];
[scrollLinesStepper setIntValue: PrefsFindInt32("mousewheellines") ];
[ignoreIllegalMemoryAccesses setIntValue: PrefsFindBool("ignoresegv") ];
[ignoreIllegalInstructions setIntValue: PrefsFindBool("ignoreillegal") ];
[dontUseCPUWhenIdle setIntValue: PrefsFindBool("idlewait") ];
[enableJIT setIntValue: PrefsFindBool("jit") ];
[enable68kDREmulator setIntValue: PrefsFindBool("jit68k") ];
[modemPort setStringValue: getStringFromPrefs("seriala") ];
[printerPort setStringValue: getStringFromPrefs("serialb") ];
[ethernetInterface setStringValue: getStringFromPrefs("ether") ];
}
- (void) editSettingsFor: (NSString *) vmdir sender: (id) sender
{
chdir([vmdir fileSystemRepresentation]);
AddPrefsDefaults();
AddPlatformPrefsDefaults();
LoadPrefs([vmdir fileSystemRepresentation]);
NSWindow *window = [self window];
[self setupGUI];
[NSApp runModalForWindow:window];
}
static NSString *makeRelativeIfNecessary(NSString *path)
{
char cwd[1024], filename[1024];
int cwdlen;
strlcpy(filename, [path fileSystemRepresentation], sizeof(filename));
getcwd(cwd, sizeof(cwd));
cwdlen = strlen(cwd);
if (!strncmp(cwd, filename, cwdlen)) {
if (cwdlen >= 0 && cwd[cwdlen-1] != '/')
cwdlen++;
return [NSString stringWithCString: filename + cwdlen];
}
return path;
}
- (IBAction) addDisk: (id) sender
{
NSOpenPanel *open = [NSOpenPanel openPanel];
[open setCanChooseDirectories:NO];
[open setAllowsMultipleSelection:NO];
[open beginSheetForDirectory: @""
file: @"Unknown"
modalForWindow: [self window]
modalDelegate: self
didEndSelector: @selector(_addDiskEnd: returnCode: contextInfo:)
contextInfo: nil];
}
- (void) _addDiskEnd: (NSOpenPanel *) open returnCode: (int) theReturnCode contextInfo: (void *) theContextInfo
{
if (theReturnCode == NSOKButton) {
[diskArray addObject: makeRelativeIfNecessary([open filename])];
[disks reloadData];
}
}
- (IBAction) removeDisk: (id) sender
{
int selectedRow = [disks selectedRow];
if (selectedRow >= 0) {
[diskArray removeObjectAtIndex: selectedRow];
[disks reloadData];
}
}
- (IBAction) createDisk: (id) sender
{
NSSavePanel *save = [NSSavePanel savePanel];
[save setAccessoryView: diskSaveSize];
[save beginSheetForDirectory: @""
file: @"New.dsk"
modalForWindow: [self window]
modalDelegate: self
didEndSelector: @selector(_createDiskEnd: returnCode: contextInfo:)
contextInfo: nil];
}
- (void) _createDiskEnd: (NSSavePanel *) save returnCode: (int) theReturnCode contextInfo: (void *) theContextInfo
{
if (theReturnCode == NSOKButton) {
int size = [diskSaveSizeField intValue];
if (size >= 0 && size <= 10000) {
char cmd[1024];
snprintf(cmd, sizeof(cmd), "dd if=/dev/zero \"of=%s\" bs=1024k count=%d", [[save filename] UTF8String], [diskSaveSizeField intValue]);
int ret = system(cmd);
if (ret == 0) {
[diskArray addObject: makeRelativeIfNecessary([save filename])];
[disks reloadData];
}
}
}
[(NSData *)theContextInfo release];
}
- (IBAction) useRawKeyCodesClicked: (id) sender
{
[rawKeyCodes setEnabled:[useRawKeyCodes intValue]];
}
- (IBAction) browseForROMFileClicked: (id) sender
{
NSOpenPanel *open = [NSOpenPanel openPanel];
[open setCanChooseDirectories:NO];
[open setAllowsMultipleSelection:NO];
[open beginSheetForDirectory: @""
file: [romFile stringValue]
modalForWindow: [self window]
modalDelegate: self
didEndSelector: @selector(_browseForROMFileEnd: returnCode: contextInfo:)
contextInfo: nil];
}
- (void) _browseForROMFileEnd: (NSOpenPanel *) open returnCode: (int) theReturnCode contextInfo: (void *) theContextInfo
{
if (theReturnCode == NSOKButton) {
[romFile setStringValue: makeRelativeIfNecessary([open filename])];
}
}
- (IBAction) browseForUnixRootClicked: (id) sender
{
NSOpenPanel *open = [NSOpenPanel openPanel];
[open setCanChooseDirectories:YES];
[open setCanChooseFiles:NO];
[open setAllowsMultipleSelection:NO];
[open beginSheetForDirectory: @""
file: [unixRoot stringValue]
modalForWindow: [self window]
modalDelegate: self
didEndSelector: @selector(_browseForUnixRootEnd: returnCode: contextInfo:)
contextInfo: nil];
}
- (void) _browseForUnixRootEnd: (NSOpenPanel *) open returnCode: (int) theReturnCode contextInfo: (void *) theContextInfo
{
if (theReturnCode == NSOKButton) {
[unixRoot setStringValue: makeRelativeIfNecessary([open filename])];
}
}
- (void) cancelEdit: (id) sender
{
PrefsExit();
[[self window] close];
[NSApp stopModal];
}
- (void) saveChanges: (id) sender
{
while (PrefsFindString("disk"))
PrefsRemoveItem("disk");
for (int i = 0; i < [diskArray count]; i++) {
PrefsAddString("disk", [[diskArray objectAtIndex:i] UTF8String]);
}
PrefsReplaceInt32("bootdriver", ([bootFrom indexOfSelectedItem] == 1 ? CDROMRefNum : 0));
PrefsReplaceString("rom", [[romFile stringValue] UTF8String]);
PrefsReplaceString("extfs", [[unixRoot stringValue] UTF8String]);
PrefsReplaceBool("nocdrom", [disableCdrom intValue]);
PrefsReplaceInt32("ramsize", [ramSize intValue] << 20);
char pref[256];
snprintf(pref, sizeof(pref), "%s/%d/%d", [videoType indexOfSelectedItem] == 0 ? "win" : "dga", [width intValue], [height intValue]);
PrefsReplaceString("screen", pref);
int rate = 8;
switch ([refreshRate indexOfSelectedItem]) {
case 0: rate = 12; break;
case 1: rate = 8; break;
case 2: rate = 6; break;
case 3: rate = 4; break;
case 4: rate = 2; break;
case 5: rate = 1; break;
case 6: rate = 0; break;
}
PrefsReplaceInt32("frameskip", rate);
PrefsReplaceBool("gfxaccel", [qdAccel intValue]);
PrefsReplaceBool("nosound", [disableSound intValue]);
PrefsReplaceString("dsp", [[outDevice stringValue] UTF8String]);
PrefsReplaceString("mixer", [[mixDevice stringValue] UTF8String]);
PrefsReplaceBool("keycodes", [useRawKeyCodes intValue]);
PrefsReplaceString("keycodefile", [[rawKeyCodes stringValue] UTF8String]);
PrefsReplaceInt32("mousewheelmode", [mouseWheel indexOfSelectedItem]);
PrefsReplaceInt32("mousewheellines", [scrollLines intValue]);
PrefsReplaceBool("ignoresegv", [ignoreIllegalMemoryAccesses intValue]);
PrefsReplaceBool("ignoreillegal", [ignoreIllegalInstructions intValue]);
PrefsReplaceBool("idlewait", [dontUseCPUWhenIdle intValue]);
PrefsReplaceBool("jit", [enableJIT intValue]);
PrefsReplaceBool("jit68k", [enable68kDREmulator intValue]);
PrefsReplaceString("seriala", [[modemPort stringValue] UTF8String]);
PrefsReplaceString("serialb", [[printerPort stringValue] UTF8String]);
PrefsReplaceString("ether", [[ethernetInterface stringValue] UTF8String]);
SavePrefs();
PrefsExit();
[[self window] close];
[NSApp stopModal];
}
- (void) dealloc
{
[super dealloc];
}
@end

View File

@ -0,0 +1,26 @@
/*
* main.m - Cocoa SheepShaver launcher for Mac OS X
*
* Copyright (C) 2006-2009 Alexei Svitkine
*
* 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
*/
#import <Cocoa/Cocoa.h>
int main(int argc, char *argv[])
{
return NSApplicationMain(argc, (const char **) argv);
}