A damn fine start

This commit is contained in:
Tony Garnock-Jones 2012-05-01 13:16:53 -04:00
parent 982218c6ba
commit c82aa12c32
6 changed files with 386 additions and 3012 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
.DS_Store
build build
*.pbxuser *.pbxuser
*.mode1v3 *.mode1v3

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,7 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
256AC3DA0F4B6AC300CF3369 /* gui_ocamlmsgAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* gui_ocamlmsgAppDelegate.m */; }; 256AC3DA0F4B6AC300CF3369 /* gui_ocamlmsgAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* gui_ocamlmsgAppDelegate.m */; };
8AC89E371550397E00BACB4E /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8AC89E361550397E00BACB4E /* WebKit.framework */; };
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
@ -25,8 +26,9 @@
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; 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>"; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
8AC89E361550397E00BACB4E /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
8D1107310486CEB800E47090 /* gui_ocamlmsg-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "gui_ocamlmsg-Info.plist"; sourceTree = "<group>"; }; 8D1107310486CEB800E47090 /* gui_ocamlmsg-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "gui_ocamlmsg-Info.plist"; sourceTree = "<group>"; };
8D1107320486CEB800E47090 /* gui-ocamlmsg.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "gui-ocamlmsg.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 8D1107320486CEB800E47090 /* Ocamlmsg.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ocamlmsg.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -35,6 +37,7 @@
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
8AC89E371550397E00BACB4E /* WebKit.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -54,6 +57,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
8AC89E361550397E00BACB4E /* WebKit.framework */,
); );
name = "Linked Frameworks"; name = "Linked Frameworks";
sourceTree = "<group>"; sourceTree = "<group>";
@ -71,7 +75,7 @@
19C28FACFE9D520D11CA2CBB /* Products */ = { 19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
8D1107320486CEB800E47090 /* gui-ocamlmsg.app */, 8D1107320486CEB800E47090 /* Ocamlmsg.app */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@ -119,9 +123,9 @@
/* End PBXGroup section */ /* End PBXGroup section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
8D1107260486CEB800E47090 /* gui-ocamlmsg */ = { 8D1107260486CEB800E47090 /* Ocamlmsg */ = {
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "gui-ocamlmsg" */; buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Ocamlmsg" */;
buildPhases = ( buildPhases = (
8D1107290486CEB800E47090 /* Resources */, 8D1107290486CEB800E47090 /* Resources */,
8D11072C0486CEB800E47090 /* Sources */, 8D11072C0486CEB800E47090 /* Sources */,
@ -131,10 +135,10 @@
); );
dependencies = ( dependencies = (
); );
name = "gui-ocamlmsg"; name = Ocamlmsg;
productInstallPath = "$(HOME)/Applications"; productInstallPath = "$(HOME)/Applications";
productName = "gui-ocamlmsg"; productName = Ocamlmsg;
productReference = 8D1107320486CEB800E47090 /* gui-ocamlmsg.app */; productReference = 8D1107320486CEB800E47090 /* Ocamlmsg.app */;
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
}; };
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
@ -142,6 +146,9 @@
/* Begin PBXProject section */ /* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = { 29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = {
ORGANIZATIONNAME = "Tony Garnock-Jones";
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "gui-ocamlmsg" */; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "gui-ocamlmsg" */;
compatibilityVersion = "Xcode 3.1"; compatibilityVersion = "Xcode 3.1";
developmentRegion = English; developmentRegion = English;
@ -156,7 +163,7 @@
projectDirPath = ""; projectDirPath = "";
projectRoot = ""; projectRoot = "";
targets = ( targets = (
8D1107260486CEB800E47090 /* gui-ocamlmsg */, 8D1107260486CEB800E47090 /* Ocamlmsg */,
); );
}; };
/* End PBXProject section */ /* End PBXProject section */
@ -218,7 +225,7 @@
GCC_PREFIX_HEADER = gui_ocamlmsg_Prefix.pch; GCC_PREFIX_HEADER = gui_ocamlmsg_Prefix.pch;
INFOPLIST_FILE = "gui_ocamlmsg-Info.plist"; INFOPLIST_FILE = "gui_ocamlmsg-Info.plist";
INSTALL_PATH = "$(HOME)/Applications"; INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = "gui-ocamlmsg"; PRODUCT_NAME = Ocamlmsg;
}; };
name = Debug; name = Debug;
}; };
@ -232,7 +239,7 @@
GCC_PREFIX_HEADER = gui_ocamlmsg_Prefix.pch; GCC_PREFIX_HEADER = gui_ocamlmsg_Prefix.pch;
INFOPLIST_FILE = "gui_ocamlmsg-Info.plist"; INFOPLIST_FILE = "gui_ocamlmsg-Info.plist";
INSTALL_PATH = "$(HOME)/Applications"; INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = "gui-ocamlmsg"; PRODUCT_NAME = Ocamlmsg;
}; };
name = Release; name = Release;
}; };
@ -265,7 +272,7 @@
/* End XCBuildConfiguration section */ /* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */ /* Begin XCConfigurationList section */
C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "gui-ocamlmsg" */ = { C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Ocamlmsg" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
C01FCF4B08A954540054247B /* Debug */, C01FCF4B08A954540054247B /* Debug */,

View File

@ -7,9 +7,9 @@
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string> <string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string></string> <string>Ocamlmsg2.icns</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string> <string>org.eighty-twenty.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
@ -17,11 +17,11 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.0</string> <string>0.0.1</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1</string> <string>alpha</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string> <string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSMainNibFile</key> <key>NSMainNibFile</key>

View File

@ -7,11 +7,16 @@
// //
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#import <WebKit/WebKit.h>
@interface gui_ocamlmsgAppDelegate : NSObject <NSApplicationDelegate> { @interface gui_ocamlmsgAppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window; NSWindow *window;
WebView *webview;
NSTask *task;
} }
@property (assign) IBOutlet NSWindow *window; @property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet WebView *webview;
@end @end

View File

@ -11,9 +11,34 @@
@implementation gui_ocamlmsgAppDelegate @implementation gui_ocamlmsgAppDelegate
@synthesize window; @synthesize window;
@synthesize webview;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application task = [NSTask new];
[[NSNotificationCenter defaultCenter]
addObserver: self
selector: @selector(taskStatusChanged:)
name: NSTaskDidTerminateNotification
object: nil];
[task setCurrentDirectoryPath: @"/Users/tonyg/src/ocamlmsg"];
[task setLaunchPath: @"/Users/tonyg/src/ocamlmsg/ocamlmsg.native"];
[task setArguments: [NSArray new]];
[task launch];
sleep(1);
[[webview mainFrame] loadRequest:
[NSURLRequest requestWithURL:
[NSURL URLWithString: @"http://localhost:5678/"]]];
}
- (void) applicationWillTerminate: (NSNotification *) notification {
[task terminate];
}
- (void) taskStatusChanged: (NSNotification *) aNotification {
[NSApp terminate: self];
} }
@end @end