From 777af02e828ac7f53dfd7475567029f4883f224b Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Sun, 17 Jan 2016 18:38:08 +0100 Subject: [PATCH] Create open_core_handler - cut down on code duplication --- ui/drivers/ui_cocoa.m | 95 ++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 60 deletions(-) diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m index 8d7866590a..afd3ca9c5b 100644 --- a/ui/drivers/ui_cocoa.m +++ b/ui/drivers/ui_cocoa.m @@ -280,6 +280,38 @@ extern void action_ok_push_quick_menu(void); } } +static void open_core_handler(NSOpenPanel *panel, NSInteger result) +{ + switch (result) + { + case NSOKButton: + if (panel.URL) + { + settings_t *settings = config_get_ptr(); + NSURL *url = (NSURL*)panel.URL; + NSString *__core = url.path; + + if (!__core) + return; + + runloop_ctl(RUNLOOP_CTL_SET_LIBRETRO_PATH, (void*)__core.UTF8String); + ui_companion_event_command(EVENT_CMD_LOAD_CORE); + + if (menu_driver_ctl(RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT, NULL) && settings->core.set_supports_no_game_enable) + { + int ret = 0; + runloop_ctl(RUNLOOP_CTL_CLEAR_CONTENT_PATH, NULL); + ret = menu_common_load_content(NULL, NULL, false, CORE_TYPE_PLAIN); + if (ret == -1) + action_ok_push_quick_menu(); + } + } + break; + case NSCancelButton: + break; + } +} + - (IBAction)openCore:(id)sender { NSOpenPanel* panel = (NSOpenPanel*)[NSOpenPanel openPanel]; settings_t *settings = config_get_ptr(); @@ -290,35 +322,7 @@ extern void action_ok_push_quick_menu(void); [panel beginSheetModalForWindow:self.window completionHandler:^(NSInteger result) { [[NSApplication sharedApplication] stopModal]; - - switch (result) - { - case NSOKButton: - if (panel.URL) - { - settings_t *settings = config_get_ptr(); - NSURL *url = (NSURL*)panel.URL; - NSString *__core = url.path; - - if (!__core) - return; - - runloop_ctl(RUNLOOP_CTL_SET_LIBRETRO_PATH, (void*)__core.UTF8String); - ui_companion_event_command(EVENT_CMD_LOAD_CORE); - - if (menu_driver_ctl(RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT, NULL) && settings->core.set_supports_no_game_enable) - { - int ret = 0; - runloop_ctl(RUNLOOP_CTL_CLEAR_CONTENT_PATH, NULL); - ret = menu_common_load_content(NULL, NULL, false, CORE_TYPE_PLAIN); - if (ret == -1) - action_ok_push_quick_menu(); - } - } - break; - case NSCancelButton: - break; - } + open_core_handler(panel, result); }]; [[NSApplication sharedApplication] runModalForWindow:panel]; #else @@ -328,38 +332,9 @@ extern void action_ok_push_quick_menu(void); [panel setCanChooseFiles:YES]; [panel setAllowsMultipleSelection:NO]; [panel setTreatsFilePackagesAsDirectories:NO]; - int result = [panel runModalForTypes:[NSArray arrayWithObject:@"dylib"]]; + NSInteger result = [panel runModalForTypes:[NSArray arrayWithObject:@"dylib"]]; if (result == 1) - { - switch (result) - { - case NSOKButton: - if (panel.URL) - { - settings_t *settings = config_get_ptr(); - NSURL *url = (NSURL*)panel.URL; - NSString *__core = url.path; - - if (!__core) - return; - - runloop_ctl(RUNLOOP_CTL_SET_LIBRETRO_PATH, (void*)__core.UTF8String); - ui_companion_event_command(EVENT_CMD_LOAD_CORE); - - if (menu_driver_ctl(RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT, NULL) && settings->core.set_supports_no_game_enable) - { - int ret = 0; - runloop_ctl(RUNLOOP_CTL_CLEAR_CONTENT_PATH, NULL); - ret = menu_common_load_content(NULL, NULL, false, CORE_TYPE_PLAIN); - if (ret == -1) - action_ok_push_quick_menu(); - } - } - break; - case NSCancelButton: - break; - } - } + open_core_handler(panel, result); #endif [g_context makeCurrentContext]; }