(ui_cocoa.m) Cleanups
This commit is contained in:
parent
08bca9017e
commit
fdc1f963b2
|
@ -52,75 +52,76 @@ void apple_rarch_exited(void)
|
||||||
[super sendEvent:event];
|
[super sendEvent:event];
|
||||||
|
|
||||||
event_type = event.type;
|
event_type = event.type;
|
||||||
|
|
||||||
switch ((int32_t)event_type)
|
switch ((int32_t)event_type)
|
||||||
{
|
{
|
||||||
case NSKeyDown:
|
case NSKeyDown:
|
||||||
case NSKeyUp:
|
case NSKeyUp:
|
||||||
{
|
|
||||||
NSString* ch = (NSString*)event.characters;
|
|
||||||
uint32_t character = 0;
|
|
||||||
uint32_t mod = 0;
|
|
||||||
|
|
||||||
if (ch && ch.length != 0)
|
|
||||||
{
|
{
|
||||||
uint32_t i;
|
NSString* ch = (NSString*)event.characters;
|
||||||
character = [ch characterAtIndex:0];
|
uint32_t character = 0;
|
||||||
|
uint32_t mod = 0;
|
||||||
|
|
||||||
if (event.modifierFlags & NSAlphaShiftKeyMask)
|
if (ch && ch.length != 0)
|
||||||
mod |= RETROKMOD_CAPSLOCK;
|
{
|
||||||
if (event.modifierFlags & NSShiftKeyMask)
|
uint32_t i;
|
||||||
mod |= RETROKMOD_SHIFT;
|
character = [ch characterAtIndex:0];
|
||||||
if (event.modifierFlags & NSControlKeyMask)
|
|
||||||
mod |= RETROKMOD_CTRL;
|
if (event.modifierFlags & NSAlphaShiftKeyMask)
|
||||||
if (event.modifierFlags & NSAlternateKeyMask)
|
mod |= RETROKMOD_CAPSLOCK;
|
||||||
mod |= RETROKMOD_ALT;
|
if (event.modifierFlags & NSShiftKeyMask)
|
||||||
if (event.modifierFlags & NSCommandKeyMask)
|
mod |= RETROKMOD_SHIFT;
|
||||||
mod |= RETROKMOD_META;
|
if (event.modifierFlags & NSControlKeyMask)
|
||||||
if (event.modifierFlags & NSNumericPadKeyMask)
|
mod |= RETROKMOD_CTRL;
|
||||||
mod |= RETROKMOD_NUMLOCK;
|
if (event.modifierFlags & NSAlternateKeyMask)
|
||||||
|
mod |= RETROKMOD_ALT;
|
||||||
for (i = 1; i < ch.length; i++)
|
if (event.modifierFlags & NSCommandKeyMask)
|
||||||
apple_input_keyboard_event(event_type == NSKeyDown,
|
mod |= RETROKMOD_META;
|
||||||
0, [ch characterAtIndex:i], mod, RETRO_DEVICE_KEYBOARD);
|
if (event.modifierFlags & NSNumericPadKeyMask)
|
||||||
|
mod |= RETROKMOD_NUMLOCK;
|
||||||
|
|
||||||
|
for (i = 1; i < ch.length; i++)
|
||||||
|
apple_input_keyboard_event(event_type == NSKeyDown,
|
||||||
|
0, [ch characterAtIndex:i], mod, RETRO_DEVICE_KEYBOARD);
|
||||||
|
}
|
||||||
|
|
||||||
|
apple_input_keyboard_event(event_type == NSKeyDown,
|
||||||
|
event.keyCode, character, mod, RETRO_DEVICE_KEYBOARD);
|
||||||
}
|
}
|
||||||
|
|
||||||
apple_input_keyboard_event(event_type == NSKeyDown,
|
|
||||||
event.keyCode, character, mod, RETRO_DEVICE_KEYBOARD);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case NSFlagsChanged:
|
case NSFlagsChanged:
|
||||||
{
|
{
|
||||||
static uint32_t old_flags = 0;
|
static uint32_t old_flags = 0;
|
||||||
uint32_t new_flags = event.modifierFlags;
|
uint32_t new_flags = event.modifierFlags;
|
||||||
bool down = (new_flags & old_flags) == old_flags;
|
bool down = (new_flags & old_flags) == old_flags;
|
||||||
old_flags = new_flags;
|
old_flags = new_flags;
|
||||||
|
|
||||||
apple_input_keyboard_event(down, event.keyCode,
|
apple_input_keyboard_event(down, event.keyCode,
|
||||||
0, event.modifierFlags, RETRO_DEVICE_KEYBOARD);
|
0, event.modifierFlags, RETRO_DEVICE_KEYBOARD);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NSMouseMoved:
|
case NSMouseMoved:
|
||||||
case NSLeftMouseDragged:
|
case NSLeftMouseDragged:
|
||||||
case NSRightMouseDragged:
|
case NSRightMouseDragged:
|
||||||
case NSOtherMouseDragged:
|
case NSOtherMouseDragged:
|
||||||
{
|
{
|
||||||
NSPoint pos;
|
NSPoint pos;
|
||||||
NSPoint mouse_pos;
|
NSPoint mouse_pos;
|
||||||
|
CGFloat backing_scale_factor = 1.0f;
|
||||||
|
NSScreen *screen = (NSScreen*)get_chosen_screen();
|
||||||
|
|
||||||
apple = (cocoa_input_data_t*)input_driver_get_data();
|
apple = (cocoa_input_data_t*)input_driver_get_data();
|
||||||
if (!apple)
|
if (!apple)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
(void)screen;
|
||||||
|
|
||||||
/* Relative */
|
/* Relative */
|
||||||
apple->mouse_rel_x = event.deltaX;
|
apple->mouse_rel_x = event.deltaX;
|
||||||
apple->mouse_rel_y = event.deltaY;
|
apple->mouse_rel_y = event.deltaY;
|
||||||
|
|
||||||
#if MAC_OS_X_VERSION_10_7
|
#if MAC_OS_X_VERSION_10_7
|
||||||
NSScreen *screen = (NSScreen*)get_chosen_screen();
|
backing_scale_factor = screen.backingScaleFactor;
|
||||||
CGFloat backing_scale_factor = screen.backingScaleFactor;
|
|
||||||
#else
|
|
||||||
CGFloat backing_scale_factor = 1.0f;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Absolute */
|
/* Absolute */
|
||||||
|
@ -128,31 +129,24 @@ void apple_rarch_exited(void)
|
||||||
apple->touches[0].screen_x = pos.x * backing_scale_factor;
|
apple->touches[0].screen_x = pos.x * backing_scale_factor;
|
||||||
apple->touches[0].screen_y = pos.y * backing_scale_factor;
|
apple->touches[0].screen_y = pos.y * backing_scale_factor;
|
||||||
|
|
||||||
//window is a variable containing your window
|
|
||||||
//mouse_pos = [self.window mouseLocationOutsideOfEventStream];
|
|
||||||
//convert to screen coordinates
|
|
||||||
//mouse_pos = [[self.window convertBaseToScreen:mouse_pos];
|
|
||||||
|
|
||||||
//mouse_pos = [event locationInWindow];
|
|
||||||
//mouse_pos = [[CocoaView get] convertPoint:[event locationInWindow] fromView:[CocoaView get] ];
|
|
||||||
mouse_pos = [[CocoaView get] convertPoint:[event locationInWindow] fromView:nil];
|
mouse_pos = [[CocoaView get] convertPoint:[event locationInWindow] fromView:nil];
|
||||||
apple->window_pos_x = (int16_t)mouse_pos.x * backing_scale_factor;
|
apple->window_pos_x = (int16_t)mouse_pos.x * backing_scale_factor;
|
||||||
apple->window_pos_y = (int16_t)mouse_pos.y * backing_scale_factor;
|
apple->window_pos_y = (int16_t)mouse_pos.y * backing_scale_factor;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NSScrollWheel:
|
case NSScrollWheel:
|
||||||
/* TODO/FIXME - properly implement. */
|
/* TODO/FIXME - properly implement. */
|
||||||
break;
|
break;
|
||||||
case NSLeftMouseDown:
|
case NSLeftMouseDown:
|
||||||
case NSRightMouseDown:
|
case NSRightMouseDown:
|
||||||
case NSOtherMouseDown:
|
case NSOtherMouseDown:
|
||||||
apple = (cocoa_input_data_t*)input_driver_get_data();
|
apple = (cocoa_input_data_t*)input_driver_get_data();
|
||||||
if (!apple)
|
if (!apple)
|
||||||
return;
|
return;
|
||||||
apple->mouse_buttons |= 1 << event.buttonNumber;
|
apple->mouse_buttons |= 1 << event.buttonNumber;
|
||||||
apple->touch_count = 1;
|
apple->touch_count = 1;
|
||||||
break;
|
break;
|
||||||
case NSLeftMouseUp:
|
case NSLeftMouseUp:
|
||||||
case NSRightMouseUp:
|
case NSRightMouseUp:
|
||||||
case NSOtherMouseUp:
|
case NSOtherMouseUp:
|
||||||
apple = (cocoa_input_data_t*)input_driver_get_data();
|
apple = (cocoa_input_data_t*)input_driver_get_data();
|
||||||
|
@ -303,26 +297,31 @@ extern void action_ok_push_quick_menu(void);
|
||||||
{
|
{
|
||||||
[[NSApplication sharedApplication] stopModal];
|
[[NSApplication sharedApplication] stopModal];
|
||||||
|
|
||||||
if (result == NSOKButton && panel.URL)
|
switch (result)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
case NSOKButton:
|
||||||
NSURL *url = (NSURL*)panel.URL;
|
if (panel.URL)
|
||||||
NSString *__core = url.path;
|
{
|
||||||
|
settings_t *settings = config_get_ptr();
|
||||||
if (__core)
|
NSURL *url = (NSURL*)panel.URL;
|
||||||
{
|
NSString *__core = url.path;
|
||||||
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)
|
if (!__core)
|
||||||
{
|
return;
|
||||||
int ret = 0;
|
|
||||||
runloop_ctl(RUNLOOP_CTL_CLEAR_CONTENT_PATH, NULL);
|
runloop_ctl(RUNLOOP_CTL_SET_LIBRETRO_PATH, (void*)__core.UTF8String);
|
||||||
ret = menu_common_load_content(NULL, NULL, false, CORE_TYPE_PLAIN);
|
ui_companion_event_command(EVENT_CMD_LOAD_CORE);
|
||||||
if (ret == -1)
|
|
||||||
action_ok_push_quick_menu();
|
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;
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
#else
|
#else
|
||||||
|
@ -339,22 +338,27 @@ extern void action_ok_push_quick_menu(void);
|
||||||
{
|
{
|
||||||
[[NSApplication sharedApplication] stopModal];
|
[[NSApplication sharedApplication] stopModal];
|
||||||
|
|
||||||
if (result == NSOKButton && panel.URL)
|
switch (result)
|
||||||
{
|
{
|
||||||
struct retro_system_info *system = NULL;
|
case NSOKButton:
|
||||||
NSURL *url = (NSURL*)panel.URL;
|
if (panel.URL)
|
||||||
NSString *__core = url.path;
|
{
|
||||||
const char *core_name = NULL;
|
struct retro_system_info *system = NULL;
|
||||||
|
NSURL *url = (NSURL*)panel.URL;
|
||||||
menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_GET, &system);
|
NSString *__core = url.path;
|
||||||
|
const char *core_name = NULL;
|
||||||
if (system)
|
|
||||||
core_name = system->library_name;
|
|
||||||
|
|
||||||
runloop_ctl(RUNLOOP_CTL_SET_CONTENT_PATH, (void*)__core.UTF8String);
|
|
||||||
|
|
||||||
if (core_name)
|
menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_GET, &system);
|
||||||
ui_companion_event_command(EVENT_CMD_LOAD_CONTENT);
|
|
||||||
|
if (system)
|
||||||
|
core_name = system->library_name;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SET_CONTENT_PATH, (void*)__core.UTF8String);
|
||||||
|
|
||||||
|
if (core_name)
|
||||||
|
ui_companion_event_command(EVENT_CMD_LOAD_CONTENT);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue