Refactor AppDelegate header and implementation for improved readability and organization
This commit is contained in:
@@ -8,22 +8,25 @@
|
|||||||
|
|
||||||
#if TARGET_IPHONE_SIMULATOR == 1 || TARGET_OS_IPHONE == 1
|
#if TARGET_IPHONE_SIMULATOR == 1 || TARGET_OS_IPHONE == 1
|
||||||
/* iOS in Xcode simulator */
|
/* iOS in Xcode simulator */
|
||||||
|
#import <PencilKit/PencilKit.h>
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
#import <PencilKit/PencilKit.h>
|
@interface AppDelegate : UIResponder <UIApplicationDelegate,
|
||||||
|
UIDocumentPickerDelegate,
|
||||||
|
UITabBarControllerDelegate,
|
||||||
|
PKCanvasViewDelegate>
|
||||||
|
@property(strong, nonatomic) UIWindow *window;
|
||||||
|
|
||||||
@interface AppDelegate : UIResponder <UIApplicationDelegate, UIDocumentPickerDelegate, UITabBarControllerDelegate, PKCanvasViewDelegate>
|
@property UIDocumentPickerViewController *documentPicker;
|
||||||
@property (strong, nonatomic) UIWindow *window;
|
@property(nonatomic, copy) void (^completionHandler)(NSString *selectedFile);
|
||||||
|
- (void)PresentDocumentPickerWithCompletionHandler:
|
||||||
@property UIDocumentPickerViewController *documentPicker;
|
(void (^)(NSString *selectedFile))completionHandler;
|
||||||
@property (nonatomic, copy) void (^completionHandler)(NSString *selectedFile);
|
|
||||||
- (void)PresentDocumentPickerWithCompletionHandler:(void (^)(NSString *selectedFile))completionHandler;
|
|
||||||
|
|
||||||
// TODO: Setup a tab bar controller for multiple yaze instances
|
// TODO: Setup a tab bar controller for multiple yaze instances
|
||||||
@property (nonatomic) UITabBarController *tabBarController;
|
@property(nonatomic) UITabBarController *tabBarController;
|
||||||
|
|
||||||
// TODO: Setup a font picker for the text editor and display settings
|
// TODO: Setup a font picker for the text editor and display settings
|
||||||
@property (nonatomic) UIFontPickerViewController *fontPicker;
|
@property(nonatomic) UIFontPickerViewController *fontPicker;
|
||||||
|
|
||||||
// TODO: Setup the pencil kit for drawing
|
// TODO: Setup the pencil kit for drawing
|
||||||
@property PKToolPicker *toolPicker;
|
@property PKToolPicker *toolPicker;
|
||||||
@@ -40,6 +43,14 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize the Cocoa application.
|
||||||
|
*/
|
||||||
|
void yaze_initialize_cocoa();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Run the Cocoa application delegate.
|
||||||
|
*/
|
||||||
void yaze_run_cocoa_app_delegate(const char *filename);
|
void yaze_run_cocoa_app_delegate(const char *filename);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -40,23 +40,19 @@
|
|||||||
NSMenuItem *fileMenuItem = [mainMenu itemWithTitle:@"File"];
|
NSMenuItem *fileMenuItem = [mainMenu itemWithTitle:@"File"];
|
||||||
if (!fileMenuItem) {
|
if (!fileMenuItem) {
|
||||||
NSMenu *fileMenu = [[NSMenu alloc] initWithTitle:@"File"];
|
NSMenu *fileMenu = [[NSMenu alloc] initWithTitle:@"File"];
|
||||||
fileMenuItem = [[NSMenuItem alloc] initWithTitle:@"File"
|
fileMenuItem = [[NSMenuItem alloc] initWithTitle:@"File" action:nil keyEquivalent:@""];
|
||||||
action:nil
|
|
||||||
keyEquivalent:@""];
|
|
||||||
[fileMenuItem setSubmenu:fileMenu];
|
[fileMenuItem setSubmenu:fileMenu];
|
||||||
|
|
||||||
NSMenuItem *openItem =
|
NSMenuItem *openItem = [[NSMenuItem alloc] initWithTitle:@"Open"
|
||||||
[[NSMenuItem alloc] initWithTitle:@"Open"
|
action:@selector(openFileAction:)
|
||||||
action:@selector(openFileAction:)
|
keyEquivalent:@"o"];
|
||||||
keyEquivalent:@"o"];
|
|
||||||
[fileMenu addItem:openItem];
|
[fileMenu addItem:openItem];
|
||||||
|
|
||||||
// Open Recent
|
// Open Recent
|
||||||
NSMenu *openRecentMenu = [[NSMenu alloc] initWithTitle:@"Open Recent"];
|
NSMenu *openRecentMenu = [[NSMenu alloc] initWithTitle:@"Open Recent"];
|
||||||
NSMenuItem *openRecentMenuItem =
|
NSMenuItem *openRecentMenuItem = [[NSMenuItem alloc] initWithTitle:@"Open Recent"
|
||||||
[[NSMenuItem alloc] initWithTitle:@"Open Recent"
|
action:nil
|
||||||
action:nil
|
keyEquivalent:@""];
|
||||||
keyEquivalent:@""];
|
|
||||||
[openRecentMenuItem setSubmenu:openRecentMenu];
|
[openRecentMenuItem setSubmenu:openRecentMenu];
|
||||||
[fileMenu addItem:openRecentMenuItem];
|
[fileMenu addItem:openRecentMenuItem];
|
||||||
|
|
||||||
@@ -64,9 +60,7 @@
|
|||||||
[fileMenu addItem:[NSMenuItem separatorItem]];
|
[fileMenu addItem:[NSMenuItem separatorItem]];
|
||||||
|
|
||||||
// Save
|
// Save
|
||||||
NSMenuItem *saveItem = [[NSMenuItem alloc] initWithTitle:@"Save"
|
NSMenuItem *saveItem = [[NSMenuItem alloc] initWithTitle:@"Save" action:nil keyEquivalent:@"s"];
|
||||||
action:nil
|
|
||||||
keyEquivalent:@"s"];
|
|
||||||
[fileMenu addItem:saveItem];
|
[fileMenu addItem:saveItem];
|
||||||
|
|
||||||
// Separator
|
// Separator
|
||||||
@@ -80,10 +74,9 @@
|
|||||||
[optionsMenuItem setSubmenu:optionsMenu];
|
[optionsMenuItem setSubmenu:optionsMenu];
|
||||||
|
|
||||||
// Flag checkmark field
|
// Flag checkmark field
|
||||||
NSMenuItem *flagItem =
|
NSMenuItem *flagItem = [[NSMenuItem alloc] initWithTitle:@"Flag"
|
||||||
[[NSMenuItem alloc] initWithTitle:@"Flag"
|
action:@selector(toggleFlagAction:)
|
||||||
action:@selector(toggleFlagAction:)
|
keyEquivalent:@""];
|
||||||
keyEquivalent:@""];
|
|
||||||
[flagItem setTarget:self];
|
[flagItem setTarget:self];
|
||||||
[flagItem setState:NSControlStateValueOff];
|
[flagItem setState:NSControlStateValueOff];
|
||||||
[optionsMenu addItem:flagItem];
|
[optionsMenu addItem:flagItem];
|
||||||
@@ -95,35 +88,26 @@
|
|||||||
NSMenuItem *editMenuItem = [mainMenu itemWithTitle:@"Edit"];
|
NSMenuItem *editMenuItem = [mainMenu itemWithTitle:@"Edit"];
|
||||||
if (!editMenuItem) {
|
if (!editMenuItem) {
|
||||||
NSMenu *editMenu = [[NSMenu alloc] initWithTitle:@"Edit"];
|
NSMenu *editMenu = [[NSMenu alloc] initWithTitle:@"Edit"];
|
||||||
editMenuItem = [[NSMenuItem alloc] initWithTitle:@"Edit"
|
editMenuItem = [[NSMenuItem alloc] initWithTitle:@"Edit" action:nil keyEquivalent:@""];
|
||||||
action:nil
|
|
||||||
keyEquivalent:@""];
|
|
||||||
[editMenuItem setSubmenu:editMenu];
|
[editMenuItem setSubmenu:editMenu];
|
||||||
|
|
||||||
NSMenuItem *undoItem = [[NSMenuItem alloc] initWithTitle:@"Undo"
|
NSMenuItem *undoItem = [[NSMenuItem alloc] initWithTitle:@"Undo" action:nil keyEquivalent:@"z"];
|
||||||
action:nil
|
|
||||||
keyEquivalent:@"z"];
|
|
||||||
|
|
||||||
[editMenu addItem:undoItem];
|
[editMenu addItem:undoItem];
|
||||||
|
|
||||||
NSMenuItem *redoItem = [[NSMenuItem alloc] initWithTitle:@"Redo"
|
NSMenuItem *redoItem = [[NSMenuItem alloc] initWithTitle:@"Redo" action:nil keyEquivalent:@"Z"];
|
||||||
action:nil
|
|
||||||
keyEquivalent:@"Z"];
|
|
||||||
|
|
||||||
[editMenu addItem:redoItem];
|
[editMenu addItem:redoItem];
|
||||||
|
|
||||||
// Add a separator
|
// Add a separator
|
||||||
[editMenu addItem:[NSMenuItem separatorItem]];
|
[editMenu addItem:[NSMenuItem separatorItem]];
|
||||||
|
|
||||||
NSMenuItem *cutItem =
|
NSMenuItem *cutItem = [[NSMenuItem alloc] initWithTitle:@"Cut"
|
||||||
[[NSMenuItem alloc] initWithTitle:@"Cut"
|
action:@selector(cutAction:)
|
||||||
action:@selector(cutAction:)
|
keyEquivalent:@"x"];
|
||||||
keyEquivalent:@"x"];
|
|
||||||
[editMenu addItem:cutItem];
|
[editMenu addItem:cutItem];
|
||||||
|
|
||||||
NSMenuItem *copyItem = [[NSMenuItem alloc] initWithTitle:@"Copy"
|
NSMenuItem *copyItem = [[NSMenuItem alloc] initWithTitle:@"Copy" action:nil keyEquivalent:@"c"];
|
||||||
action:nil
|
|
||||||
keyEquivalent:@"c"];
|
|
||||||
[editMenu addItem:copyItem];
|
[editMenu addItem:copyItem];
|
||||||
|
|
||||||
NSMenuItem *pasteItem = [[NSMenuItem alloc] initWithTitle:@"Paste"
|
NSMenuItem *pasteItem = [[NSMenuItem alloc] initWithTitle:@"Paste"
|
||||||
@@ -147,40 +131,34 @@
|
|||||||
NSMenuItem *viewMenuItem = [mainMenu itemWithTitle:@"View"];
|
NSMenuItem *viewMenuItem = [mainMenu itemWithTitle:@"View"];
|
||||||
if (!viewMenuItem) {
|
if (!viewMenuItem) {
|
||||||
NSMenu *viewMenu = [[NSMenu alloc] initWithTitle:@"View"];
|
NSMenu *viewMenu = [[NSMenu alloc] initWithTitle:@"View"];
|
||||||
viewMenuItem = [[NSMenuItem alloc] initWithTitle:@"View"
|
viewMenuItem = [[NSMenuItem alloc] initWithTitle:@"View" action:nil keyEquivalent:@""];
|
||||||
action:nil
|
|
||||||
keyEquivalent:@""];
|
|
||||||
[viewMenuItem setSubmenu:viewMenu];
|
[viewMenuItem setSubmenu:viewMenu];
|
||||||
|
|
||||||
// Emulator view button
|
// Emulator view button
|
||||||
NSMenuItem *emulatorViewItem =
|
NSMenuItem *emulatorViewItem = [[NSMenuItem alloc] initWithTitle:@"Emulator View"
|
||||||
[[NSMenuItem alloc] initWithTitle:@"Emulator View"
|
action:nil
|
||||||
action:nil
|
keyEquivalent:@"1"];
|
||||||
keyEquivalent:@"1"];
|
|
||||||
|
|
||||||
[viewMenu addItem:emulatorViewItem];
|
[viewMenu addItem:emulatorViewItem];
|
||||||
|
|
||||||
// Hex Editor View
|
// Hex Editor View
|
||||||
NSMenuItem *hexEditorViewItem =
|
NSMenuItem *hexEditorViewItem = [[NSMenuItem alloc] initWithTitle:@"Hex Editor View"
|
||||||
[[NSMenuItem alloc] initWithTitle:@"Hex Editor View"
|
action:nil
|
||||||
action:nil
|
keyEquivalent:@"2"];
|
||||||
keyEquivalent:@"2"];
|
|
||||||
|
|
||||||
[viewMenu addItem:hexEditorViewItem];
|
[viewMenu addItem:hexEditorViewItem];
|
||||||
|
|
||||||
// Disassembly view button
|
// Disassembly view button
|
||||||
NSMenuItem *disassemblyViewItem =
|
NSMenuItem *disassemblyViewItem = [[NSMenuItem alloc] initWithTitle:@"Disassembly View"
|
||||||
[[NSMenuItem alloc] initWithTitle:@"Disassembly View"
|
action:nil
|
||||||
action:nil
|
keyEquivalent:@"3"];
|
||||||
keyEquivalent:@"3"];
|
|
||||||
|
|
||||||
[viewMenu addItem:disassemblyViewItem];
|
[viewMenu addItem:disassemblyViewItem];
|
||||||
|
|
||||||
// Memory view button
|
// Memory view button
|
||||||
NSMenuItem *memoryViewItem =
|
NSMenuItem *memoryViewItem = [[NSMenuItem alloc] initWithTitle:@"Memory View"
|
||||||
[[NSMenuItem alloc] initWithTitle:@"Memory View"
|
action:nil
|
||||||
action:nil
|
keyEquivalent:@"4"];
|
||||||
keyEquivalent:@"4"];
|
|
||||||
|
|
||||||
[viewMenu addItem:memoryViewItem];
|
[viewMenu addItem:memoryViewItem];
|
||||||
|
|
||||||
@@ -188,10 +166,9 @@
|
|||||||
[viewMenu addItem:[NSMenuItem separatorItem]];
|
[viewMenu addItem:[NSMenuItem separatorItem]];
|
||||||
|
|
||||||
// Toggle fullscreen button
|
// Toggle fullscreen button
|
||||||
NSMenuItem *toggleFullscreenItem =
|
NSMenuItem *toggleFullscreenItem = [[NSMenuItem alloc] initWithTitle:@"Toggle Fullscreen"
|
||||||
[[NSMenuItem alloc] initWithTitle:@"Toggle Fullscreen"
|
action:nil
|
||||||
action:nil
|
keyEquivalent:@"f"];
|
||||||
keyEquivalent:@"f"];
|
|
||||||
|
|
||||||
[viewMenu addItem:toggleFullscreenItem];
|
[viewMenu addItem:toggleFullscreenItem];
|
||||||
|
|
||||||
@@ -201,16 +178,13 @@
|
|||||||
NSMenuItem *helpMenuItem = [mainMenu itemWithTitle:@"Help"];
|
NSMenuItem *helpMenuItem = [mainMenu itemWithTitle:@"Help"];
|
||||||
if (!helpMenuItem) {
|
if (!helpMenuItem) {
|
||||||
NSMenu *helpMenu = [[NSMenu alloc] initWithTitle:@"Help"];
|
NSMenu *helpMenu = [[NSMenu alloc] initWithTitle:@"Help"];
|
||||||
helpMenuItem = [[NSMenuItem alloc] initWithTitle:@"Help"
|
helpMenuItem = [[NSMenuItem alloc] initWithTitle:@"Help" action:nil keyEquivalent:@""];
|
||||||
action:nil
|
|
||||||
keyEquivalent:@""];
|
|
||||||
[helpMenuItem setSubmenu:helpMenu];
|
[helpMenuItem setSubmenu:helpMenu];
|
||||||
|
|
||||||
// URL to online documentation
|
// URL to online documentation
|
||||||
NSMenuItem *documentationItem =
|
NSMenuItem *documentationItem = [[NSMenuItem alloc] initWithTitle:@"Documentation"
|
||||||
[[NSMenuItem alloc] initWithTitle:@"Documentation"
|
action:nil
|
||||||
action:nil
|
keyEquivalent:@"?"];
|
||||||
keyEquivalent:@"?"];
|
|
||||||
[helpMenu addItem:documentationItem];
|
[helpMenu addItem:documentationItem];
|
||||||
|
|
||||||
[mainMenu insertItem:helpMenuItem atIndex:4];
|
[mainMenu insertItem:helpMenuItem atIndex:4];
|
||||||
@@ -233,8 +207,7 @@
|
|||||||
|
|
||||||
- (void)openFileAction:(id)sender {
|
- (void)openFileAction:(id)sender {
|
||||||
if (!yaze::app::SharedRom::shared_rom_
|
if (!yaze::app::SharedRom::shared_rom_
|
||||||
->LoadFromFile(
|
->LoadFromFile(yaze::app::core::FileDialogWrapper::ShowOpenFileDialog())
|
||||||
yaze::app::core::FileDialogWrapper::ShowOpenFileDialog())
|
|
||||||
.ok()) {
|
.ok()) {
|
||||||
NSAlert *alert = [[NSAlert alloc] init];
|
NSAlert *alert = [[NSAlert alloc] init];
|
||||||
[alert setMessageText:@"Error"];
|
[alert setMessageText:@"Error"];
|
||||||
@@ -252,14 +225,17 @@
|
|||||||
NSLog(@"Open Recent File action triggered");
|
NSLog(@"Open Recent File action triggered");
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void yaze_run_cocoa_app_delegate(const char *filename) {
|
extern "C" void yaze_initialize_cococa() {
|
||||||
@autoreleasepool {
|
@autoreleasepool {
|
||||||
AppDelegate *delegate = [[AppDelegate alloc] init];
|
AppDelegate *delegate = [[AppDelegate alloc] init];
|
||||||
[NSApplication sharedApplication];
|
[NSApplication sharedApplication];
|
||||||
[NSApp setDelegate:delegate];
|
[NSApp setDelegate:delegate];
|
||||||
[NSApp finishLaunching];
|
[NSApp finishLaunching];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void yaze_run_cocoa_app_delegate(const char *filename) {
|
||||||
|
yaze_initialize_cococa();
|
||||||
yaze::app::core::Controller controller;
|
yaze::app::core::Controller controller;
|
||||||
RETURN_VOID_IF_ERROR(controller.OnEntry(filename));
|
RETURN_VOID_IF_ERROR(controller.OnEntry(filename));
|
||||||
while (controller.IsActive()) {
|
while (controller.IsActive()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user