From bd17ec56e4c0bd84204e5f68ca65eb1015322ee2 Mon Sep 17 00:00:00 2001 From: meancoot Date: Thu, 12 Dec 2013 21:14:14 -0500 Subject: [PATCH] (OSX) First pass at settings menu compatible with OS X < 10.7; set Xcode deployment target to 10.6. --- apple/OSX/en.lproj/InputBinder.xib | 384 ---- apple/OSX/en.lproj/MainMenu.xib | 289 +-- apple/OSX/en.lproj/Settings.xib | 1789 +++-------------- apple/OSX/settings.m | 301 ++- apple/RetroArch_OSX.xcodeproj/project.pbxproj | 17 +- 5 files changed, 434 insertions(+), 2346 deletions(-) delete mode 100644 apple/OSX/en.lproj/InputBinder.xib diff --git a/apple/OSX/en.lproj/InputBinder.xib b/apple/OSX/en.lproj/InputBinder.xib deleted file mode 100644 index 1dc324d900..0000000000 --- a/apple/OSX/en.lproj/InputBinder.xib +++ /dev/null @@ -1,384 +0,0 @@ - - - - 1080 - 12E55 - 3084 - 1187.39 - 626.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 3084 - - - IBNSLayoutConstraint - NSButton - NSButtonCell - NSCustomObject - NSTextField - NSTextFieldCell - NSView - NSWindowTemplate - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - NSWindowController - - - FirstResponder - - - NSApplication - - - 15 - 2 - {{196, 240}, {480, 109}} - 544735232 - Window - RAInputBinder - - - - - 256 - - - - 268 - {{17, 72}, {446, 17}} - - - - _NS:1535 - YES - - 68157504 - 138413056 - Press a Key, Joystick Button, or move a Joystick Axis - - LucidaGrande - 13 - 1044 - - _NS:1535 - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - NO - - - - 268 - {{384, 13}, {82, 32}} - - - _NS:9 - YES - - 67108864 - 134217728 - Cancel - - _NS:9 - - -2038284288 - 129 - - - Gw - 200 - 25 - - NO - - - {480, 109} - - - - - {{0, 0}, {2560, 1418}} - {10000000000000, 10000000000000} - YES - - - - - - - window - - - - 3 - - - - goAway: - - - - 20 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - - - - 2 - - - - - 4 - 0 - - 4 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 3 - 0 - - 3 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 5 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - - - - - 4 - - - - - - - - 5 - - - - - 9 - - - - - 10 - - - - - 11 - - - - - 12 - - - - - - - - 13 - - - - - 14 - - - - - 15 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{357, 418}, {480, 270}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 20 - - - - - NSLayoutConstraint - NSObject - - IBProjectSource - ./Classes/NSLayoutConstraint.h - - - - RAInputBinder - NSWindow - - IBProjectSource - ./Classes/RAInputBinder.h - - - - - 0 - IBCocoaFramework - YES - 3 - YES - - diff --git a/apple/OSX/en.lproj/MainMenu.xib b/apple/OSX/en.lproj/MainMenu.xib index 908154abc8..3a77f31350 100644 --- a/apple/OSX/en.lproj/MainMenu.xib +++ b/apple/OSX/en.lproj/MainMenu.xib @@ -1,17 +1,16 @@ - 1080 - 12E55 - 3084 - 1187.39 - 626.00 + 1090 + 13A603 + 4514 + 1265 + 695.00 com.apple.InterfaceBuilder.CocoaPlugin - 3084 + 4514 - IBNSLayoutConstraint NSButton NSButtonCell NSComboBox @@ -59,6 +58,7 @@ NSMenuMixedState submenuAction: + RetroArch @@ -110,6 +110,7 @@ submenuAction: + Services @@ -187,6 +188,7 @@ submenuAction: + File @@ -208,6 +210,7 @@ submenuAction: + Open Recent @@ -255,6 +258,7 @@ submenuAction: + Core @@ -305,6 +309,7 @@ submenuAction: + Go @@ -328,6 +333,7 @@ submenuAction: + Window @@ -390,6 +396,7 @@ submenuAction: + Help @@ -440,14 +447,15 @@ - + 256 268 - {{17, 72}, {242, 17}} + {{18, 72}, {240, 17}} + _NS:1535 YES @@ -456,7 +464,7 @@ 138413056 Select Core - LucidaGrande + .LucidaGrandeUI 13 1044 @@ -483,12 +491,14 @@ NO + 1 268 {{20, 45}, {239, 26}} + _NS:9 1 @@ -517,7 +527,7 @@ 274 - {15, 0} + {13, 0} _NS:24 @@ -526,7 +536,7 @@ YES - 12 + 10 10 1000 @@ -546,7 +556,7 @@ 338690112 - 1024 + 268436480 YES @@ -577,7 +587,7 @@ 19 tableViewAction: - -767524864 + -765427712 @@ -590,12 +600,14 @@ NO + 1 268 {{180, 13}, {82, 32}} + _NS:9 YES @@ -616,6 +628,8 @@ {276, 89} + + _NS:21 @@ -1126,134 +1140,6 @@ - - - 4 - 0 - - 4 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 5 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 3 - 0 - - 3 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 5 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 3 - 0 - - 3 - 1 - - 0.0 - - 1000 - - 8 - 29 - 3 - @@ -1274,36 +1160,6 @@ - - 561 - - - - - 562 - - - - - 563 - - - - - 564 - - - - - 565 - - - - - 566 - - - 567 @@ -1319,22 +1175,6 @@ - - - 7 - 0 - - 0 - 1 - - 70 - - 1000 - - 3 - 9 - 1 - @@ -1343,21 +1183,6 @@ - - 572 - - - - - 578 - - - - - 579 - - - 582 @@ -1426,40 +1251,15 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - - - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -1480,23 +1280,20 @@ - - NSLayoutConstraint - NSObject - - IBProjectSource - ./Classes/NSLayoutConstraint.h - - RetroArch_OSX NSObject + id id id id + + basicEvent: + id + coreWasChosen: id @@ -1510,20 +1307,6 @@ id - - NSWindow - NSWindow - - - - _coreSelectSheet - NSWindow - - - window - NSWindow - - IBProjectSource ./Classes/RetroArch_OSX.h @@ -1533,12 +1316,16 @@ 0 IBCocoaFramework + YES + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + YES 3 {11, 11} {10, 3} - YES diff --git a/apple/OSX/en.lproj/Settings.xib b/apple/OSX/en.lproj/Settings.xib index 03a3147273..8e2612ca7f 100644 --- a/apple/OSX/en.lproj/Settings.xib +++ b/apple/OSX/en.lproj/Settings.xib @@ -1,24 +1,22 @@ - 1080 - 12E55 - 3084 - 1187.39 - 626.00 + 1060 + 13A603 + 4514 + 1265 + 695.00 com.apple.InterfaceBuilder.CocoaPlugin - 3084 + 4514 - IBNSLayoutConstraint NSButton NSButtonCell NSCustomObject NSOutlineView NSScrollView NSScroller - NSTableCellView NSTableColumn NSTableHeaderView NSTableView @@ -63,7 +61,7 @@ - 2304 + 2322 @@ -72,7 +70,7 @@ {148, 555} - + _NS:13 YES NO @@ -95,7 +93,7 @@ 2048 - LucidaGrande + .LucidaGrandeUI 11 3100 @@ -114,11 +112,11 @@ - 337641536 + 67108928 2048 - Text Cell + - LucidaGrande + .LucidaGrandeUI 13 1044 @@ -164,7 +162,7 @@ MC41AA - 30 + 17 104857600 @@ -222,7 +220,7 @@ - QSAAAEEgAABCAAAAQgAAAA + QSAAAEEgAABBmAAAQZgAAA 0.25 4 1 @@ -233,7 +231,7 @@ - 2304 + 2322 @@ -242,7 +240,7 @@ {559, 539} - + _NS:13 YES NO @@ -253,21 +251,19 @@ {559, 17} - + - - + + -2147483392 {{224, 0}, {16, 17}} - - _NS:18 - title + left 276 16 1000 @@ -283,9 +279,9 @@ - 337641536 + 67108928 2048 - Text Cell + @@ -297,7 +293,7 @@ - accessory + right 277 40 1000 @@ -312,7 +308,7 @@ 337641536 2048 - Text Cell + @@ -328,7 +324,7 @@ 2 - 30 + 17 306216960 @@ -380,7 +376,7 @@ - 2304 + 2338 @@ -392,7 +388,6 @@ 4 - {{178, 20}, {561, 557}} @@ -404,8 +399,7 @@ - - QSAAAEEgAABCAAAAQgAAAA + QSAAAEEgAABBmAAAQZgAAA 0.25 4 1 @@ -423,6 +417,111 @@ RASettingsDelegate + + 67108864 + 131072 + + + _NS:9 + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + 15 + 2 + {{196, 240}, {480, 109}} + 544735232 + Window + RAInputBinder + + + + + 256 + + + + 268 + {{18, 72}, {444, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + Press a Key, Joystick Button, or move a Joystick Axis + + _NS:1535 + + + 6 + System + controlColor + + + + + NO + 1 + + + + 268 + {{384, 13}, {82, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Cancel + + _NS:9 + + -2038284288 + 129 + + + Gw + 200 + 25 + + NO + + + {480, 109} + + + + + {{0, 0}, {2560, 1418}} + {10000000000000, 10000000000000} + YES + + + 67108928 + 272762880 + + + _NS:9 + + + @@ -482,6 +581,38 @@ 180 + + + booleanCell + + + + 586 + + + + binderWindow + + + + 596 + + + + binderCell + + + + 601 + + + + outlineViewClicked: + + + + 603 + dataSource @@ -498,420 +629,13 @@ 182 - - - textField - - - 274 - - - - 266 - {{0, 7}, {276, 17}} - - - {250, 750} - YES - - 67108928 - 272631808 - - - - - 6 - System - controlColor - - - - - NO - - - {{1, 1}, {276, 30}} - - - - - 168 - - - - value: stringValue - - - - - - value: stringValue - value - stringValue - 2 - - - 319 - - - - textField - - - 274 - - - - 266 - {{0, 7}, {277, 17}} - - - {250, 750} - YES - - 337641537 - 272631872 - String - - - - - - NO - - - {{280, 1}, {277, 30}} - - - - - 172 - - - - value: stringValue - - - - - - value: stringValue - value - stringValue - 2 - - - 240 - - - - textField - - - 274 - - - - 266 - {{0, 7}, {277, 17}} - - - {250, 750} - YES - - 337641537 - 272631872 - Int - - - - - - NO - - - {{280, 65}, {277, 30}} - - - - - 227 - - - - value: numericValue - - - - - - value: numericValue - value - numericValue - 2 - - - 241 - - - - value: booleanValue - - - 268 - {{1, 6}, {61, 18}} - - - _NS:9 - YES - - -2080374784 - 268435456 - - - _NS:9 - - 1211912448 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - NO - - - - 274 - - - - {{280, 33}, {277, 30}} - - - - - - value: booleanValue - value - booleanValue - 2 - - - 255 - - - - textField - - - 274 - - - - 266 - {{0, 7}, {233, 17}} - - - {250, 750} - YES - - 337641537 - 272631872 - - - - - - - NO - - - - 268 - {{232, -2}, {48, 32}} - - - _NS:9 - YES - - 67108864 - 134217728 - ... - - _NS:9 - - -2038284288 - 129 - - - 200 - 25 - - NO - - - {{280, 97}, {277, 30}} - - - - - 298 - - doBrowse: - - + goAway: + + - 312 - - - - value: stringValue - - - - - - value: stringValue - value - stringValue - 2 - - - 314 - - - - textField - - - 274 - - - - 266 - {{0, 7}, {145, 17}} - - - {250, 750} - YES - - 67108928 - 272631808 - - - - - - - NO - - - {{1, 1}, {145, 30}} - - - - - 326 - - - - value: stringValue - - - - - - value: stringValue - value - stringValue - 2 - - - 327 - - - - doGetBind: - - - 274 - - - - 268 - {{232, -2}, {48, 32}} - - - _NS:9 - YES - - 67108864 - 134217728 - ... - - _NS:9 - - -2038284288 - 129 - - - 200 - 25 - - NO - - - - 266 - {{0, 7}, {233, 17}} - - - {250, 750} - YES - - 67108928 - 272631872 - - - - - - - NO - - - {{280, 129}, {277, 30}} - - - - - 564 - - - - value: stringValue - - - - - - value: stringValue - value - stringValue - 2 - - - 578 + 595 @@ -953,134 +677,6 @@ - - - 4 - 0 - - 4 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 6 - 1 - - 8 - - 1000 - - 6 - 24 - 3 - - - - 5 - 0 - - 5 - 1 - - 178 - - 1000 - - 3 - 9 - 3 - - - - 3 - 0 - - 3 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 4 - 0 - - 4 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 5 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 3 - 0 - - 3 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - @@ -1118,7 +714,6 @@ - @@ -1167,7 +762,6 @@ - @@ -1176,810 +770,76 @@ - - 165 - - - - - - 6 - 0 - - 6 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 5 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 5 - 22 - 2 - - - - - - 166 - - - - - - - - 167 - - - - - 320 - - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 5 - 22 - 2 - - - - 5 - 0 - - 5 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - 6 - 0 - - 6 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - - - - 324 - - - - - - - - 325 - - - 179 - - 353 - - - - - 276 - - - - - 272 - - - - - 271 - - - - - 267 - - - - - 354 - - - - - 273 - - - - - 268 - - - - - 317 - - - - - 281 - - - - - 280 - - - - - 323 - - - - - 322 - - - - - 321 - - - 154 - - - - - - - 328 - - - - - 5 - 0 - - 6 - 1 - - 8 - - 1000 - - 6 - 24 - 3 - - - - 6 - 0 - - 6 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 5 - 22 - 2 - - - - 5 - 0 - - 5 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - - - - - 335 - - - - - - 7 - 0 - - 0 - 1 - - 36 - - 1000 - - 3 - 9 - 1 - - - - - - 345 - - - - - 336 - - - - - 242 - - - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 5 - 22 - 2 - - - - 5 - 0 - - 5 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - - - 249 - - - - - - 7 - 0 - - 0 - 1 - - 57 - - 1000 - - 3 - 9 - 1 - - - - - - 291 - - - - - 290 - - - - - 292 - - - - - 250 - - - - - 295 - - - - - 5 - 0 - - 6 - 1 - - 8 - - 1000 - - 6 - 24 - 3 - - - - 6 - 0 - - 6 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 5 - 22 - 2 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 5 - 0 - - 5 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - - - - - 296 - - - - - - - - 297 - - - - - 303 - - - - - - 7 - 0 - - 0 - 1 - - 36 - - 1000 - - 3 - 9 - 1 - - - - - - 309 - - - - - 304 - - - - - 169 - - - - - - 5 - 0 - - 5 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 5 - 22 - 2 - - - - 6 - 0 - - 6 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - - - 170 - - - - - - - - 289 - - - - - 288 - - - - - 287 - - - - - 171 - - - - - 224 - - - - - - 6 - 0 - - 6 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 5 - 22 - 2 - - - - 5 - 0 - - 5 - 1 - - 3 - - 1000 - - 8 - 29 - 3 - - - - - - 225 - - - - - - - - 294 - - - - - 293 - - - - - 285 - - - - - 226 - - - 155 - 311 - - + 585 + + - 300 - - - - - 476 - - - - - 547 - - - - - 548 - - - - - 561 - - - - - 565 - + 589 + - + - + - 566 - - + 590 + + + + + + - 574 - - + 591 + + + + + - 575 - - + 592 + + + + + - 576 - - + 593 + + - 572 - - + 594 + + + + + 597 + + @@ -1990,227 +850,82 @@ com.apple.InterfaceBuilder.CocoaPlugin {{357, 418}, {480, 270}} - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - RASettingCell - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - RALabelSetting - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - RASettingCell - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - RAStringSetting - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - RASettingCell - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - RANumericSetting - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - RASettingCell - - - - - com.apple.InterfaceBuilder.CocoaPlugin - RABooleanSetting - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - RASettingCell - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - RAPathSetting - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - RASettingCell - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - RALabelSetting - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - RASettingCell - - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - RABindSetting - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{357, 418}, {480, 270}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - 581 + 603 - NSLayoutConstraint - NSObject - - IBProjectSource - ./Classes/NSLayoutConstraint.h + RAInputBinder + NSWindow + + goAway: + id - - - RASettingCell - NSTableCellView - - numericValue - NSNumber - - - numericValue - - numericValue - NSNumber + + goAway: + + goAway: + id IBProjectSource - ./Classes/RASettingCell.h + ./Classes/RAInputBinder.h RASettingsDelegate NSObject + + outlineViewClicked: + id + + + outlineViewClicked: + + outlineViewClicked: + id + + NSWindow NSOutlineView NSTableView + NSTextFieldCell + RAInputBinder + NSButtonCell @@ -2225,6 +940,18 @@ _table NSTableView + + binderCell + NSTextFieldCell + + + binderWindow + RAInputBinder + + + booleanCell + NSButtonCell + IBProjectSource @@ -2235,12 +962,20 @@ 0 IBCocoaFramework + YES + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + YES 3 NSSwitch {15, 15} - YES diff --git a/apple/OSX/settings.m b/apple/OSX/settings.m index 8a3b25c08f..79b16e2aea 100644 --- a/apple/OSX/settings.m +++ b/apple/OSX/settings.m @@ -24,121 +24,44 @@ static const void* associated_name_tag = (void*)&associated_name_tag; @interface RAInputBinder : NSWindow +@property (nonatomic, retain) NSTimer* timer; +@property (nonatomic, assign) const rarch_setting_t* setting; @end @implementation RAInputBinder +#if 0 +- (void)dealloc +{ + [_timer release]; + [super dealloc]; +} +#endif + +- (void)runForSetting:(const rarch_setting_t*)setting onWindow:(NSWindow*)window +{ + self.setting = setting; + + self.timer = [NSTimer timerWithTimeInterval:.1f target:self selector:@selector(checkBind:) userInfo:nil repeats:YES]; + [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSModalPanelRunLoopMode]; + + [NSApp beginSheet:self modalForWindow:window modalDelegate:nil didEndSelector:nil contextInfo:nil]; +} + - (IBAction)goAway:(id)sender { + [self.timer invalidate]; + self.timer = nil; + [NSApp endSheet:self]; [self orderOut:nil]; } -// Stop the annoying sound when pressing a key -- (void)keyDown:(NSEvent*)theEvent -{ -} - -@end - -@interface RASettingCell : NSTableCellView -@property (nonatomic) const rarch_setting_t* setting; - -@property (nonatomic) NSString* stringValue; -@property (nonatomic) IBOutlet NSNumber* numericValue; -@property (nonatomic) bool booleanValue; - -@property (nonatomic) NSTimer* bindTimer; -@end - -@implementation RASettingCell -- (void)setSetting:(const rarch_setting_t *)aSetting -{ - _setting = aSetting; - - if (!_setting) - return; - - if (aSetting->type == ST_INT || aSetting->type == ST_UINT || aSetting->type == ST_FLOAT) - { - self.textField.formatter = [[RANumberFormatter alloc] initWithSetting:aSetting]; - } - else - self.textField.formatter = nil; - - // Set value - switch (aSetting->type) - { - case ST_INT: self.numericValue = BOXINT (*aSetting->value.integer); break; - case ST_UINT: self.numericValue = BOXUINT (*aSetting->value.unsigned_integer); break; - case ST_FLOAT: self.numericValue = BOXFLOAT (*aSetting->value.fraction); break; - case ST_STRING: self.stringValue = BOXSTRING( aSetting->value.string); break; - case ST_PATH: self.stringValue = BOXSTRING( aSetting->value.string); break; - case ST_BOOL: self.booleanValue = *aSetting->value.boolean; break; - case ST_BIND: [self updateInputString]; break; - default: break; - } -} - -- (IBAction)doBrowse:(id)sender -{ - NSOpenPanel* panel = [NSOpenPanel new]; - [panel runModal]; - - if (panel.URLs.count == 1) - self.stringValue = panel.URL.path; -} - -- (void)setNumericValue:(NSNumber *)numericValue -{ - _numericValue = numericValue; - - if (_setting && _setting->type == ST_INT) - *_setting->value.integer = _numericValue.intValue; - else if (_setting && _setting->type == ST_UINT) - *_setting->value.unsigned_integer = _numericValue.intValue; - else if (_setting && _setting->type == ST_FLOAT) - *_setting->value.fraction = _numericValue.floatValue; -} - -- (void)setBooleanValue:(bool)booleanValue -{ - _booleanValue = booleanValue; - - if (_setting && _setting->type == ST_BOOL) - *_setting->value.boolean= _booleanValue; -} - -- (void)setStringValue:(NSString *)stringValue -{ - _stringValue = stringValue ? stringValue : @""; - - if (_setting && (_setting->type == ST_STRING || _setting->type == ST_PATH)) - strlcpy(_setting->value.string, _stringValue.UTF8String, _setting->size); -} - -// Input Binding -- (void)updateInputString -{ - char buffer[256]; - self.stringValue = BOXSTRING(setting_data_get_string_representation(_setting, buffer, sizeof(buffer))); -} - -- (void)dismissBinder -{ - [self.bindTimer invalidate]; - self.bindTimer = nil; - - [self updateInputString]; - - [(id)self.window.attachedSheet goAway:nil]; -} - - (void)checkBind:(NSTimer*)send { int32_t value = 0; int32_t index = _setting->index ? _setting->index - 1 : 0; - + if ((value = apple_input_find_any_key())) BINDFOR(*_setting).key = input_translate_keysym_to_rk(value); else if ((value = apple_input_find_any_button(index)) >= 0) @@ -148,37 +71,45 @@ static const void* associated_name_tag = (void*)&associated_name_tag; else return; - [self dismissBinder]; + [self goAway:self]; } -- (IBAction)doGetBind:(id)sender +// Stop the annoying sound when pressing a key +- (void)keyDown:(NSEvent*)theEvent { - static NSWindowController* controller; - if (!controller) - controller = [[NSWindowController alloc] initWithWindowNibName:@"InputBinder"]; - - self.bindTimer = [NSTimer timerWithTimeInterval:.1f target:self selector:@selector(checkBind:) userInfo:nil repeats:YES]; - [[NSRunLoop currentRunLoop] addTimer:self.bindTimer forMode:NSModalPanelRunLoopMode]; - - [NSApp beginSheet:controller.window modalForWindow:self.window modalDelegate:nil didEndSelector:nil contextInfo:nil]; } @end + @interface RASettingsDelegate : NSObject +@property (nonatomic, retain) RAInputBinder IBOutlet* binderWindow; +@property (nonatomic, retain) NSButtonCell IBOutlet* booleanCell; +@property (nonatomic, retain) NSTextFieldCell IBOutlet* binderCell; +@property (nonatomic, retain) NSTableView IBOutlet* table; +@property (nonatomic, retain) NSOutlineView IBOutlet* outline; +@property (nonatomic, retain) NSMutableArray* settings; +@property (nonatomic, retain) NSMutableArray* currentGroup; @end @implementation RASettingsDelegate + +#if 0 +- (void)dealloc { - NSWindow IBOutlet* _inputWindow; - NSTableView IBOutlet* _table; - NSOutlineView IBOutlet* _outline; + [_binderWindow release]; + [_booleanCell release]; + [_binderCell release]; + [_table release]; + [_outline release]; + [_settings release]; + [_currentGroup release]; - NSMutableArray* _settings; - NSMutableArray* _currentGroup; + [super dealloc]; } +#endif - (void)awakeFromNib { @@ -186,7 +117,7 @@ static const void* associated_name_tag = (void*)&associated_name_tag; NSMutableArray* thisGroup = nil; NSMutableArray* thisSubGroup = nil; - _settings = [NSMutableArray array]; + self.settings = [NSMutableArray array]; setting_data_load_current(); @@ -205,7 +136,7 @@ static const void* associated_name_tag = (void*)&associated_name_tag; case ST_END_GROUP: { - [_settings addObject:thisGroup]; + [self.settings addObject:thisGroup]; thisGroup = nil; break; } @@ -244,40 +175,32 @@ static const void* associated_name_tag = (void*)&associated_name_tag; [NSApp stopModal]; } -#pragma mark View Builders -- (NSView*)labelAccessoryFor:(NSString*)text onTable:(NSTableView*)table -{ - RASettingCell* result = [table makeViewWithIdentifier:@"RALabelSetting" owner:nil]; - result.stringValue = text; - return result; -} - #pragma mark Section Table - (NSInteger)numberOfRowsInTableView:(NSTableView*)view { - return _settings.count; + return self.settings.count; } -- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row +- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { - return [self labelAccessoryFor:objc_getAssociatedObject(_settings[row], associated_name_tag) onTable:tableView]; + return objc_getAssociatedObject(self.settings[row], associated_name_tag); } - (void)tableViewSelectionDidChange:(NSNotification *)aNotification { - _currentGroup = _settings[_table.selectedRow]; - [_outline reloadData]; + self.currentGroup = self.settings[self.table.selectedRow]; + [self.outline reloadData]; } #pragma mark Setting Outline - (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item { - return (item == nil) ? _currentGroup.count : [item count]; + return (item == nil) ? self.currentGroup.count : [item count]; } - (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item { - return (item == nil) ? _currentGroup[index] : [item objectAtIndex:index]; + return (item == nil) ? self.currentGroup[index] : [item objectAtIndex:index]; } - (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item @@ -285,61 +208,101 @@ static const void* associated_name_tag = (void*)&associated_name_tag; return [item isKindOfClass:[NSArray class]]; } -- (BOOL)validateProposedFirstResponder:(NSResponder *)responder forEvent:(NSEvent *)event { +- (BOOL)validateProposedFirstResponder:(NSResponder*)responder forEvent:(NSEvent*)event +{ return YES; } -- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item +- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item { + if (!tableColumn) + return nil; + if ([item isKindOfClass:[NSArray class]]) { - if ([tableColumn.identifier isEqualToString:@"title"]) - return [self labelAccessoryFor:objc_getAssociatedObject(item, associated_name_tag) onTable:outlineView]; + if ([tableColumn.identifier isEqualToString:@"left"]) + return objc_getAssociatedObject(item, associated_name_tag); else - return [self labelAccessoryFor:[NSString stringWithFormat:@"%d items", (int)[item count]] onTable:outlineView]; + return @""; } else { const rarch_setting_t* setting_data = setting_data_get_list(); const rarch_setting_t* setting = &setting_data[[item intValue]]; - - if ([tableColumn.identifier isEqualToString:@"title"]) - return [self labelAccessoryFor:BOXSTRING(setting->short_description) onTable:outlineView]; - else if([tableColumn.identifier isEqualToString:@"accessory"]) + char buffer[PATH_MAX]; + + if ([tableColumn.identifier isEqualToString:@"left"]) + return BOXSTRING(setting->short_description); + else { - RASettingCell* s = nil; switch (setting->type) { - case ST_BOOL: - s = [outlineView makeViewWithIdentifier:@"RABooleanSetting" owner:nil]; - break; - case ST_INT: - s = [outlineView makeViewWithIdentifier:@"RANumericSetting" owner:nil]; - break; - case ST_UINT: - s = [outlineView makeViewWithIdentifier:@"RANumericSetting" owner:nil]; - break; - case ST_FLOAT: - s = [outlineView makeViewWithIdentifier:@"RANumericSetting" owner:nil]; - break; - case ST_PATH: - s = [outlineView makeViewWithIdentifier:@"RAPathSetting" owner:nil]; - break; - case ST_STRING: - s = [outlineView makeViewWithIdentifier:@"RAStringSetting" owner:nil]; - break; - case ST_BIND: - s = [outlineView makeViewWithIdentifier:@"RABindSetting" owner:nil]; - break; - default: - break; + case ST_BOOL: return BOXINT(*setting->value.boolean); + default: return BOXSTRING(setting_data_get_string_representation(setting, buffer, sizeof(buffer))); } - s.setting = setting; - return s; } } +} + +- (NSCell*)outlineView:(NSOutlineView *)outlineView dataCellForTableColumn:(NSTableColumn *)tableColumn item:(id)item +{ + if (!tableColumn) + return nil; - return nil; + if ([item isKindOfClass:[NSArray class]]) + return tableColumn.dataCell; + + if ([tableColumn.identifier isEqualToString:@"left"]) + return tableColumn.dataCell; + + const rarch_setting_t* setting_data = setting_data_get_list(); + const rarch_setting_t* setting = &setting_data[[item intValue]]; + + switch (setting->type) + { + case ST_BOOL: return self.booleanCell; + case ST_BIND: return self.binderCell; + default: return tableColumn.dataCell; + } +} + +- (IBAction)outlineViewClicked:(id)sender +{ + if (self.outline.clickedColumn == 1) + { + id item = [self.outline itemAtRow:self.outline.clickedRow]; + + if ([item isKindOfClass:[NSNumber class]]) + { + const rarch_setting_t* setting_data = setting_data_get_list(); + const rarch_setting_t* setting = &setting_data[[item intValue]]; + + switch (setting->type) + { + case ST_BOOL: *setting->value.boolean = !*setting->value.boolean; return; + case ST_BIND: [self.binderWindow runForSetting:setting onWindow:self.outline.window]; return; + default: return; + } + } + } +} + +- (void)controlTextDidEndEditing:(NSNotification*)notification +{ + if (notification.object == self.outline) + { + NSText* editor = [[notification userInfo] objectForKey:@"NSFieldEditor"]; + + id item = [self.outline itemAtRow:self.outline.selectedRow]; + + if ([item isKindOfClass:[NSNumber class]]) + { + const rarch_setting_t* setting_data = setting_data_get_list(); + const rarch_setting_t* setting = &setting_data[[item intValue]]; + + setting_data_set_with_string_representation(setting, editor.string.UTF8String); + } + } } @end diff --git a/apple/RetroArch_OSX.xcodeproj/project.pbxproj b/apple/RetroArch_OSX.xcodeproj/project.pbxproj index c05be1a65f..4af4c3c6c6 100644 --- a/apple/RetroArch_OSX.xcodeproj/project.pbxproj +++ b/apple/RetroArch_OSX.xcodeproj/project.pbxproj @@ -11,7 +11,6 @@ 962EE0E2178B3DF6004224FF /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 962EE0E1178B3DF6004224FF /* IOKit.framework */; }; 96355CE31788E72A0010DBFA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96355CE21788E72A0010DBFA /* Cocoa.framework */; }; 9646869817BBC14E00C5EA69 /* platform.m in Sources */ = {isa = PBXBuildFile; fileRef = 9646869617BBC14E00C5EA69 /* platform.m */; }; - 964DE7C117D84B34001CBB6C /* InputBinder.xib in Resources */ = {isa = PBXBuildFile; fileRef = 964DE7C317D84B34001CBB6C /* InputBinder.xib */; }; 964DE7C417D84B57001CBB6C /* Settings.xib in Resources */ = {isa = PBXBuildFile; fileRef = 964DE7C617D84B57001CBB6C /* Settings.xib */; }; 967894931788ECDB00D6CA69 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9678948F1788ECDB00D6CA69 /* InfoPlist.strings */; }; 967894941788ECDB00D6CA69 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 967894911788ECDB00D6CA69 /* MainMenu.xib */; }; @@ -37,7 +36,6 @@ 96355CE71788E72A0010DBFA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 9646869617BBC14E00C5EA69 /* platform.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = platform.m; path = OSX/platform.m; sourceTree = SOURCE_ROOT; }; 9646869717BBC14E00C5EA69 /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = platform.h; path = OSX/platform.h; sourceTree = SOURCE_ROOT; }; - 964DE7C217D84B34001CBB6C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/InputBinder.xib; sourceTree = ""; }; 964DE7C517D84B57001CBB6C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Settings.xib; sourceTree = ""; }; 9678948D1788ECCA00D6CA69 /* RetroArch-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "RetroArch-Info.plist"; path = "OSX/RetroArch-Info.plist"; sourceTree = SOURCE_ROOT; }; 967894901788ECDB00D6CA69 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = OSX/en.lproj/InfoPlist.strings; sourceTree = SOURCE_ROOT; }; @@ -141,7 +139,6 @@ 967894911788ECDB00D6CA69 /* MainMenu.xib */, C15874EE178F2094001171D4 /* RetroArch.icns */, 964DE7C617D84B57001CBB6C /* Settings.xib */, - 964DE7C317D84B34001CBB6C /* InputBinder.xib */, ); name = Assets; sourceTree = ""; @@ -201,7 +198,6 @@ 967894E9178A2EB400D6CA69 /* modules in Resources */, C15874EF178F2094001171D4 /* RetroArch.icns in Resources */, 964DE7C417D84B57001CBB6C /* Settings.xib in Resources */, - 964DE7C117D84B34001CBB6C /* InputBinder.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -224,15 +220,6 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ - 964DE7C317D84B34001CBB6C /* InputBinder.xib */ = { - isa = PBXVariantGroup; - children = ( - 964DE7C217D84B34001CBB6C /* en */, - ); - name = InputBinder.xib; - path = OSX; - sourceTree = ""; - }; 964DE7C617D84B57001CBB6C /* Settings.xib */ = { isa = PBXVariantGroup; children = ( @@ -304,7 +291,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = "$(SRCROOT)/OSX/RetroArch-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = ""; + MACOSX_DEPLOYMENT_TARGET = 10.6; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = ( "-DHAVE_RARCH_MAIN_WRAP", @@ -355,7 +342,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = "$(SRCROOT)/OSX/RetroArch-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = ""; + MACOSX_DEPLOYMENT_TARGET = 10.6; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = ( "-DNS_BLOCK_ASSERTIONS=1",