diff options
author | Teddy Wing | 2023-09-16 16:21:49 +0200 |
---|---|---|
committer | Teddy Wing | 2023-09-16 16:21:49 +0200 |
commit | fb7f3b833d31cb7dcae259c6a9a0118cdeafc96c (patch) | |
tree | f81f225ba264440948be2e2be7afaa1e34f718ad /src | |
parent | cfe5c30df32bca2a098c683ddf69ad8a78ed305d (diff) | |
download | Base-Windowed-Application-fb7f3b833d31cb7dcae259c6a9a0118cdeafc96c.tar.bz2 |
Make a document-based application
Add the basic necessities for a document-based application. This is what
I came up with on 2023-09-10. The `DocumentWindowController` was just an
initial idea and doesn't do anything: we create the required window
controller in `Document`.
The `CFBundleDocumentTypes` entry enables us to interact with text
files.
This confirms that the "Open Recent" menu does get added automatically
below the "Open" menu.
Diffstat (limited to 'src')
-rw-r--r-- | src/Document.h | 4 | ||||
-rw-r--r-- | src/Document.m | 38 | ||||
-rw-r--r-- | src/DocumentWindowController.h | 4 | ||||
-rw-r--r-- | src/DocumentWindowController.m | 11 |
4 files changed, 57 insertions, 0 deletions
diff --git a/src/Document.h b/src/Document.h new file mode 100644 index 0000000..e566ac0 --- /dev/null +++ b/src/Document.h @@ -0,0 +1,4 @@ +#import <Cocoa/Cocoa.h> + +@interface Document : NSDocument +@end diff --git a/src/Document.m b/src/Document.m new file mode 100644 index 0000000..7b514eb --- /dev/null +++ b/src/Document.m @@ -0,0 +1,38 @@ +#import "Document.h" + +@implementation Document + +- (id)init +{ + self = [super init]; + if (self) { + } + return self; +} + +// TODO: Are window controllers deallocated automatically by the parent? +// [[NSWindowController alloc] initWithWindow:]? + +- (void)makeWindowControllers +{ + // DocumentWindowController *controller = [[DocumentWindowController alloc] init]; + + NSWindow *window = [[NSWindow alloc] + initWithContentRect:NSMakeRect(0, 0, 600, 500) + styleMask: + NSWindowStyleMaskTitled + | NSWindowStyleMaskClosable + | NSWindowStyleMaskMiniaturizable + | NSWindowStyleMaskResizable + backing:NSBackingStoreBuffered + defer:NO]; + // [window setFrameAutosaveName:@"document"]; // document name? + + NSWindowController *window_controller = [[NSWindowController alloc] + initWithWindow:window]; + // [window_controller setShouldCascadeWindows:YES]; + + [self addWindowController:window_controller]; +} + +@end diff --git a/src/DocumentWindowController.h b/src/DocumentWindowController.h new file mode 100644 index 0000000..e3b277b --- /dev/null +++ b/src/DocumentWindowController.h @@ -0,0 +1,4 @@ +#import <Cocoa/Cocoa.h> + +@interface DocumentWindowController : NSWindowController +@end diff --git a/src/DocumentWindowController.m b/src/DocumentWindowController.m new file mode 100644 index 0000000..e83af36 --- /dev/null +++ b/src/DocumentWindowController.m @@ -0,0 +1,11 @@ +#import "DocumentWindowController.h" + +@implementation DocumentWindowController + +- (void)windowWillLoad +{ + // NSWindow *window = ; + // self = [self initWithWindow:window]; +} + +@end |