Cocoa Port:

- New feature: If the user quits DeSmuME while display windows remain, the user has the option to restore the display windows on app launch.
This commit is contained in:
rogerman 2013-09-07 23:03:42 +00:00
parent d9d41b5a96
commit 3cff5390f8
8 changed files with 353 additions and 68 deletions

View File

@ -2,9 +2,9 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1050</int>
<string key="IBDocument.SystemVersion">12D78</string>
<string key="IBDocument.SystemVersion">12E55</string>
<string key="IBDocument.InterfaceBuilderVersion">851</string>
<string key="IBDocument.AppKitVersion">1187.37</string>
<string key="IBDocument.AppKitVersion">1187.39</string>
<string key="IBDocument.HIToolboxVersion">626.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -2688,7 +2688,7 @@
<bool key="NSWindowIsRestorable">YES</bool>
</object>
<object class="NSCustomView" id="773785227">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder"/>
<int key="NSvFlags">268</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -2707,6 +2707,7 @@
<int key="NSvFlags">268</int>
<string key="NSFrame">{{175, 50}, {199, 21}}</string>
<reference key="NSSuperview" ref="370970238"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="965225345">
<int key="NSCellFlags">613417024</int>
@ -2725,6 +2726,7 @@
<int key="NSvFlags">268</int>
<string key="NSFrame">{{376, 43}, {96, 32}}</string>
<reference key="NSSuperview" ref="370970238"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="778580262">
<int key="NSCellFlags">67108864</int>
@ -2746,6 +2748,7 @@
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 53}, {155, 17}}</string>
<reference key="NSSuperview" ref="370970238"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="989531345">
<int key="NSCellFlags">68157504</int>
@ -2763,6 +2766,7 @@
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 14}, {454, 28}}</string>
<reference key="NSSuperview" ref="370970238"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="10070494">
<int key="NSCellFlags">69206017</int>
@ -2779,10 +2783,12 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
</object>
<string key="NSFrame">{{1, 1}, {484, 81}}</string>
<reference key="NSSuperview" ref="1070500931"/>
<reference key="NSWindow"/>
</object>
</object>
<string key="NSFrame">{{17, 16}, {486, 97}}</string>
<reference key="NSSuperview" ref="773785227"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
@ -2821,6 +2827,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{148, 14}, {226, 21}}</string>
<reference key="NSSuperview" ref="729803295"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="416339667">
<int key="NSCellFlags">613417024</int>
@ -2839,6 +2846,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{376, 7}, {96, 32}}</string>
<reference key="NSSuperview" ref="729803295"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="247001544">
<int key="NSCellFlags">67108864</int>
@ -2860,6 +2868,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 17}, {128, 17}}</string>
<reference key="NSSuperview" ref="729803295"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="568437330">
<int key="NSCellFlags">68157504</int>
@ -2875,10 +2884,12 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
</object>
<string key="NSFrame">{{1, 1}, {484, 45}}</string>
<reference key="NSSuperview" ref="260981591"/>
<reference key="NSWindow"/>
</object>
</object>
<string key="NSFrame">{{17, 117}, {486, 61}}</string>
<reference key="NSSuperview" ref="773785227"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
@ -2912,6 +2923,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{92, 12}, {314, 18}}</string>
<reference key="NSSuperview" ref="561956607"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="128438965">
<int key="NSCellFlags">67108864</int>
@ -2940,6 +2952,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{141, 33}, {217, 32}}</string>
<reference key="NSSuperview" ref="561956607"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="953540999">
<int key="NSCellFlags">67108864</int>
@ -2959,10 +2972,12 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
</object>
<string key="NSFrame">{{1, 1}, {484, 75}}</string>
<reference key="NSSuperview" ref="721502080"/>
<reference key="NSWindow"/>
</object>
</object>
<string key="NSFrame">{{17, 182}, {486, 91}}</string>
<reference key="NSSuperview" ref="773785227"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
@ -2996,11 +3011,12 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 111}, {366, 18}}</string>
<reference key="NSSuperview" ref="961944553"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="776252739">
<int key="NSCellFlags">-2080374784</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Automatically Execute Emulation When Loading a ROM</string>
<string key="NSContents">Automatically execute emulation when loading a ROM</string>
<reference key="NSSupport" ref="462791774"/>
<reference key="NSControlView" ref="206564619"/>
<int key="NSButtonFlags">1211912448</int>
@ -3014,16 +3030,41 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="548616266">
<reference key="NSNextResponder" ref="961944553"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 133}, {247, 18}}</string>
<reference key="NSSuperview" ref="961944553"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="24545018">
<int key="NSCellFlags">-2080374784</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Restore display windows on startup</string>
<reference key="NSSupport" ref="462791774"/>
<reference key="NSControlView" ref="548616266"/>
<int key="NSButtonFlags">1211912448</int>
<int key="NSButtonFlags2">2</int>
<reference key="NSNormalImage" ref="254121778"/>
<reference key="NSAlternateImage" ref="1000893652"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="382590482">
<reference key="NSNextResponder" ref="961944553"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 71}, {274, 18}}</string>
<string key="NSFrame">{{16, 71}, {254, 18}}</string>
<reference key="NSSuperview" ref="961944553"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="656339003">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Automatically Load a ROM Upon Launch</string>
<string key="NSContents">Automatically load a ROM on startup</string>
<reference key="NSSupport" ref="462791774"/>
<reference key="NSControlView" ref="382590482"/>
<int key="NSButtonFlags">1211912448</int>
@ -3042,6 +3083,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{34, 41}, {227, 26}}</string>
<reference key="NSSuperview" ref="961944553"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="254280893">
<int key="NSCellFlags">-2076180416</int>
@ -3099,6 +3141,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{114, 14}, {260, 21}}</string>
<reference key="NSSuperview" ref="961944553"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="91522944">
<int key="NSCellFlags">613417024</int>
@ -3117,6 +3160,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{376, 7}, {96, 32}}</string>
<reference key="NSSuperview" ref="961944553"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="881754506">
<int key="NSCellFlags">67108864</int>
@ -3138,6 +3182,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 17}, {94, 17}}</string>
<reference key="NSSuperview" ref="961944553"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="543898625">
<int key="NSCellFlags">68157504</int>
@ -3151,17 +3196,19 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</object>
<string key="NSFrame">{{1, 1}, {484, 137}}</string>
<string key="NSFrame">{{1, 1}, {484, 159}}</string>
<reference key="NSSuperview" ref="665379445"/>
<reference key="NSWindow"/>
</object>
</object>
<string key="NSFrame">{{17, 277}, {486, 153}}</string>
<string key="NSFrame">{{17, 277}, {486, 175}}</string>
<reference key="NSSuperview" ref="773785227"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">ROM Behavior</string>
<string key="NSContents">General Behavior</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="527409595"/>
<object class="NSColor" key="NSTextColor">
@ -3176,7 +3223,9 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA</str
<bool key="NSTransparent">NO</bool>
</object>
</object>
<string key="NSFrameSize">{520, 450}</string>
<string key="NSFrameSize">{520, 472}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<string key="NSClassName">NSView</string>
</object>
<object class="NSCustomView" id="842545935">
@ -14002,7 +14051,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<nil key="NSUserInterfaceItemIdentifier"/>
<string key="NSWindowContentMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
<object class="NSView" key="NSWindowView" id="961953439">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -14011,7 +14060,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{14, 12}, {168, 32}}</string>
<reference key="NSSuperview" ref="961953439"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="440705577">
<int key="NSCellFlags">67108864</int>
@ -14033,7 +14081,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{181, 22}, {105, 17}}</string>
<reference key="NSSuperview" ref="961953439"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="930972867">
<int key="NSCellFlags">68157504</int>
@ -14051,7 +14098,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">12</int>
<string key="NSFrame">{{12, 51}, {616, 5}}</string>
<reference key="NSSuperview" ref="961953439"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
@ -14074,7 +14120,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{288, 22}, {330, 17}}</string>
<reference key="NSSuperview" ref="961953439"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="712282542">
<int key="NSCellFlags">70254657</int>
@ -14103,7 +14148,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 14}, {260, 128}}</string>
<reference key="NSSuperview" ref="996955280"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<int key="NSNumRows">5</int>
@ -14336,7 +14380,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{85, 15}, {409, 21}}</string>
<reference key="NSSuperview" ref="996955280"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="284244966">
<int key="NSCellFlags">78643265</int>
@ -14356,7 +14399,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{496, 8}, {96, 32}}</string>
<reference key="NSSuperview" ref="996955280"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1061428768">
<int key="NSCellFlags">67108864</int>
@ -14378,7 +14420,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 150}, {482, 28}}</string>
<reference key="NSSuperview" ref="996955280"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="535412247">
<int key="NSCellFlags">67108864</int>
@ -14399,7 +14440,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{496, 146}, {96, 32}}</string>
<reference key="NSSuperview" ref="996955280"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="944157190">
<int key="NSCellFlags">67108864</int>
@ -14419,12 +14459,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{1, 1}, {604, 188}}</string>
<reference key="NSSuperview" ref="16720907"/>
<reference key="NSWindow"/>
</object>
</object>
<string key="NSFrame">{{17, 140}, {606, 204}}</string>
<reference key="NSSuperview" ref="961953439"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
@ -14470,7 +14508,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{18, 16}, {30, 30}}</string>
<reference key="NSSuperview" ref="952926539"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="248957291">
<int key="NSCellFlags">134217728</int>
@ -14489,7 +14526,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{50, 18}, {168, 28}}</string>
<reference key="NSSuperview" ref="952926539"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="409285173">
<int key="NSCellFlags">69206017</int>
@ -14507,7 +14543,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">1292</int>
<string key="NSFrame">{{18, 14}, {32, 32}}</string>
<reference key="NSSuperview" ref="952926539"/>
<reference key="NSWindow"/>
<int key="NSpiFlags">28682</int>
<double key="NSMaxValue">100</double>
</object>
@ -14516,7 +14551,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{220, 17}, {201, 26}}</string>
<reference key="NSSuperview" ref="952926539"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="224228792">
<int key="NSCellFlags">-2076180416</int>
@ -14623,12 +14657,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{1, 1}, {604, 56}}</string>
<reference key="NSSuperview" ref="219608642"/>
<reference key="NSWindow"/>
</object>
</object>
<string key="NSFrame">{{17, 64}, {606, 72}}</string>
<reference key="NSSuperview" ref="961953439"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
@ -14649,8 +14681,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<string key="NSFrameSize">{640, 355}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
<string key="NSMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
@ -23151,6 +23181,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bool key="NSFilterRestrictsInsertion">YES</bool>
</object>
<object class="NSUserDefaultsController" id="178548672">
<object class="NSMutableArray" key="NSDeclaredKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>General_WillRestoreWindows</string>
<string>General_WillRestoreDisplayWindows</string>
</object>
<bool key="NSSharedInstance">YES</bool>
</object>
</object>
@ -32951,6 +32986,22 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<int key="connectionID">8299</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: values.General_WillRestoreDisplayWindows</string>
<reference key="source" ref="548616266"/>
<reference key="destination" ref="178548672"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="548616266"/>
<reference key="NSDestination" ref="178548672"/>
<string key="NSLabel">value: values.General_WillRestoreDisplayWindows</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">values.General_WillRestoreDisplayWindows</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">8306</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -34617,12 +34668,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="object" ref="665379445"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="548616266"/>
<reference ref="206564619"/>
<reference ref="382590482"/>
<reference ref="859806089"/>
<reference ref="68682086"/>
<reference ref="810130787"/>
<reference ref="593509695"/>
<reference ref="810130787"/>
</object>
<reference key="parent" ref="773785227"/>
</object>
@ -44847,6 +44899,20 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="object" ref="420372018"/>
<reference key="parent" ref="900337996"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8302</int>
<reference key="object" ref="548616266"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="24545018"/>
</object>
<reference key="parent" ref="665379445"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8303</int>
<reference key="object" ref="24545018"/>
<reference key="parent" ref="548616266"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -44899,6 +44965,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>1298.IBPluginDependency</string>
<string>1299.IBAttributePlaceholdersKey</string>
<string>1299.IBPluginDependency</string>
<string>1299.IBViewBoundsToFrameTransform</string>
<string>130.IBPluginDependency</string>
<string>1300.IBPluginDependency</string>
<string>131.IBPluginDependency</string>
@ -44926,14 +44993,19 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>1531.IBPluginDependency</string>
<string>1532.IBPluginDependency</string>
<string>1538.IBPluginDependency</string>
<string>1538.IBViewBoundsToFrameTransform</string>
<string>1539.IBPluginDependency</string>
<string>1539.IBViewBoundsToFrameTransform</string>
<string>1540.IBPluginDependency</string>
<string>1541.IBPluginDependency</string>
<string>1541.IBViewBoundsToFrameTransform</string>
<string>1542.IBPluginDependency</string>
<string>1543.IBEditorWindowLastContentRect</string>
<string>1543.IBPluginDependency</string>
<string>1544.IBPluginDependency</string>
<string>1545.IBPluginDependency</string>
<string>1547.IBPluginDependency</string>
<string>1547.IBViewBoundsToFrameTransform</string>
<string>1548.IBPluginDependency</string>
<string>1577.IBAttributePlaceholdersKey</string>
<string>1577.IBPluginDependency</string>
@ -45046,6 +45118,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>2299.IBPluginDependency</string>
<string>23.IBPluginDependency</string>
<string>2320.IBPluginDependency</string>
<string>2320.IBViewBoundsToFrameTransform</string>
<string>2321.IBPluginDependency</string>
<string>2327.IBPluginDependency</string>
<string>2328.IBPluginDependency</string>
@ -45235,6 +45308,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>3061.IBPluginDependency</string>
<string>3062.IBPluginDependency</string>
<string>3063.IBPluginDependency</string>
<string>3063.IBViewBoundsToFrameTransform</string>
<string>3146.IBPluginDependency</string>
<string>3148.IBPluginDependency</string>
<string>3204.IBPluginDependency</string>
@ -45248,6 +45322,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>3213.IBPluginDependency</string>
<string>3214.IBPluginDependency</string>
<string>3285.IBPluginDependency</string>
<string>3285.IBViewBoundsToFrameTransform</string>
<string>3286.IBPluginDependency</string>
<string>3456.IBPluginDependency</string>
<string>3456.IBWindowTemplateEditedContentRect</string>
@ -45771,6 +45846,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>4947.IBPluginDependency</string>
<string>5.IBPluginDependency</string>
<string>5003.IBPluginDependency</string>
<string>5003.IBViewBoundsToFrameTransform</string>
<string>5004.IBPluginDependency</string>
<string>5005.IBPluginDependency</string>
<string>5006.IBPluginDependency</string>
@ -45821,6 +45897,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>5168.IBPluginDependency</string>
<string>5169.IBPluginDependency</string>
<string>5171.IBPluginDependency</string>
<string>5171.IBViewBoundsToFrameTransform</string>
<string>5172.IBPluginDependency</string>
<string>5173.IBPluginDependency</string>
<string>5174.IBPluginDependency</string>
@ -46600,6 +46677,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>8295.IBPluginDependency</string>
<string>83.IBPluginDependency</string>
<string>830.IBPluginDependency</string>
<string>8302.IBAttributePlaceholdersKey</string>
<string>8302.IBPluginDependency</string>
<string>8302.IBViewBoundsToFrameTransform</string>
<string>8303.IBPluginDependency</string>
<string>831.IBPluginDependency</string>
<string>832.IBPluginDependency</string>
<string>833.IBPluginDependency</string>
@ -46760,7 +46841,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{343, 372}, {520, 450}}</string>
<string>{{296, 505}, {520, 472}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -46770,6 +46851,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABBgAAAwv4AAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -46811,14 +46895,27 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABDqAAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABBgAAAwq4AAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABCCAAAwoIAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{537, 693}, {227, 43}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABC5AAAwgQAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
@ -46973,6 +47070,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABDvAAAwhQAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -47288,6 +47388,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABDNgAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -47301,6 +47404,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABBcAAAwgAAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1241, 208}, {335, 163}}</string>
@ -48264,6 +48370,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABC6gAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -48321,6 +48430,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABBgAAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -49388,6 +49500,18 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABBqAAAwygAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -49521,7 +49645,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">8301</int>
<int key="maxID">8306</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -52363,7 +52487,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>{20, 20}</string>
<string>{15, 15}</string>
<string>{8, 8}</string>
<string>{128, 128}</string>
<string>{512, 512}</string>
<string>{11, 11}</string>
<string>{10, 3}</string>
<string>{32, 32}</string>

View File

@ -70,7 +70,7 @@
GLubyte vtxIndexBuffer[12];
BOOL isShaderSupported;
unsigned int vtxBufferOffset;
size_t vtxBufferOffset;
}
@property (retain) InputManager *inputManager;

View File

@ -1119,7 +1119,7 @@ static std::tr1::unordered_map<NSScreen *, DisplayWindowController *> _screenMap
[view setInputManager:[emuControl inputManager]];
[[emuControl windowList] addObject:self];
[emuControl updateAllWindowTitles];
// Set up the video output thread.
cdsVideoOutput = [[CocoaDSDisplayVideo alloc] init];
[cdsVideoOutput setDelegate:view];
@ -1220,10 +1220,6 @@ static std::tr1::unordered_map<NSScreen *, DisplayWindowController *> _screenMap
[emuControl closeRom:nil];
shouldClose = NO;
}
else // If no ROM is loaded, close the window and terminate the application.
{
[NSApp terminate:sender];
}
return shouldClose;
}
@ -1236,6 +1232,18 @@ static std::tr1::unordered_map<NSScreen *, DisplayWindowController *> _screenMap
[self setCdsVideoOutput:nil];
[[emuControl windowList] removeObject:self];
if ([[emuControl windowList] count] < 1)
{
if ([emuControl currentRom] != nil)
{
[emuControl closeRom:nil];
}
[NSApp terminate:[notification object]];
return;
}
[emuControl updateAllWindowTitles];
}
@ -1316,6 +1324,8 @@ static std::tr1::unordered_map<NSScreen *, DisplayWindowController *> _screenMap
return self;
}
inputManager = nil;
// Initialize the OpenGL context
NSOpenGLPixelFormatAttribute attributes[] = {
NSOpenGLPFAColorSize, (NSOpenGLPixelFormatAttribute)24,
@ -1330,11 +1340,6 @@ static std::tr1::unordered_map<NSScreen *, DisplayWindowController *> _screenMap
[format release];
cglDisplayContext = (CGLContextObj)[context CGLContextObj];
CGLContextObj prevContext = CGLGetCurrentContext();
CGLSetCurrentContext(cglDisplayContext);
[self startupOpenGL];
CGLSetCurrentContext(prevContext);
_currentDisplayMode = DS_DISPLAY_TYPE_COMBO;
_currentDisplayOrientation = DS_DISPLAY_ORIENTATION_VERTICAL;
_currentGapScalar = 0.0f;
@ -1347,7 +1352,20 @@ static std::tr1::unordered_map<NSScreen *, DisplayWindowController *> _screenMap
glTexBackSize = NSMakeSize(w, h);
vtxBufferOffset = 0;
inputManager = nil;
[self updateDisplayVerticesUsingDisplayMode:_currentDisplayMode orientation:_currentDisplayOrientation gap:_currentGapScalar];
[self updateTexCoordS:1.0f T:2.0f];
// Set up initial vertex elements
vtxIndexBuffer[0] = 0; vtxIndexBuffer[1] = 1; vtxIndexBuffer[2] = 2;
vtxIndexBuffer[3] = 2; vtxIndexBuffer[4] = 3; vtxIndexBuffer[5] = 0;
vtxIndexBuffer[6] = 4; vtxIndexBuffer[7] = 5; vtxIndexBuffer[8] = 6;
vtxIndexBuffer[9] = 6; vtxIndexBuffer[10] = 7; vtxIndexBuffer[11] = 4;
CGLContextObj prevContext = CGLGetCurrentContext();
CGLSetCurrentContext(cglDisplayContext);
[self startupOpenGL];
CGLSetCurrentContext(prevContext);
return self;
}
@ -1373,16 +1391,6 @@ static std::tr1::unordered_map<NSScreen *, DisplayWindowController *> _screenMap
- (void) startupOpenGL
{
[self updateDisplayVerticesUsingDisplayMode:_currentDisplayMode orientation:_currentDisplayOrientation gap:_currentGapScalar];
[self updateTexCoordS:1.0f T:2.0f];
// Set up initial vertex elements
vtxIndexBuffer[0] = 0; vtxIndexBuffer[1] = 1; vtxIndexBuffer[2] = 2;
vtxIndexBuffer[3] = 2; vtxIndexBuffer[4] = 3; vtxIndexBuffer[5] = 0;
vtxIndexBuffer[6] = 4; vtxIndexBuffer[7] = 5; vtxIndexBuffer[8] = 6;
vtxIndexBuffer[9] = 6; vtxIndexBuffer[10] = 7; vtxIndexBuffer[11] = 4;
// Check the OpenGL capabilities for this renderer
const GLubyte *glExtString = glGetString(GL_EXTENSIONS);
@ -1795,7 +1803,7 @@ static std::tr1::unordered_map<NSScreen *, DisplayWindowController *> _screenMap
const size_t inputCount = inputList.size();
for (unsigned int i = 0; i < inputCount; i++)
for (size_t i = 0; i < inputCount; i++)
{
const InputAttributes &inputAttr = inputList[i];
@ -1943,7 +1951,6 @@ static std::tr1::unordered_map<NSScreen *, DisplayWindowController *> _screenMap
[context update];
DisplayWindowController *windowController = (DisplayWindowController *)[[self window] delegate];
[CocoaDSUtil messageSendOneWayWithRect:[[windowController cdsVideoOutput] receivePort] msgID:MESSAGE_RESIZE_VIEW rect:rect];
[self setNeedsDisplay:YES];
}
}

View File

@ -430,8 +430,6 @@
- (IBAction) newDisplayWindow:(id)sender
{
DisplayWindowController *newWindowController = [[DisplayWindowController alloc] initWithWindowNibName:@"DisplayWindow" emuControlDelegate:self];
[[newWindowController window] makeKeyAndOrderFront:self];
[[newWindowController window] makeMainWindow];
if ([self currentRom] == nil)
{
@ -441,6 +439,9 @@
{
[[newWindowController view] setNeedsDisplay:YES];
}
[[newWindowController window] makeKeyAndOrderFront:self];
[[newWindowController window] makeMainWindow];
}
- (IBAction) openRom:(id)sender

View File

@ -95,5 +95,7 @@
- (NSMenuItem *) addSlotMenuItem:(NSMenu *)menu slotNumber:(NSUInteger)slotNumber;
- (void) setupUserDefaults;
- (void) setRomInfoPanelBoxTitleColors;
- (void) restoreDisplayWindowStates;
- (void) saveDisplayWindowStates;
@end

View File

@ -81,6 +81,7 @@
return self;
}
#pragma mark NSApplicationDelegate Protocol
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
BOOL result = NO;
@ -237,6 +238,10 @@
appFirstTimeRunDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:isFirstTimeRunNumber, bundleVersionString, nil];
}
//Bring the application to the front
[NSApp activateIgnoringOtherApps:TRUE];
[self restoreDisplayWindowStates];
// Load a new ROM on launch per user preferences.
const BOOL loadROMOnLaunch = [[NSUserDefaults standardUserDefaults] boolForKey:@"General_AutoloadROMOnLaunch"];
if (loadROMOnLaunch && [emuControl currentRom] == nil)
@ -263,10 +268,6 @@
}
}
//Bring the application to the front
[NSApp activateIgnoringOtherApps:TRUE];
[emuControl newDisplayWindow:nil];
// Present the file migration window to the user (if they haven't disabled it).
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"General_DoNotAskMigrate"] || !isFirstTimeRun)
{
@ -310,6 +311,7 @@
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
// Save some settings to user defaults before app termination
[self saveDisplayWindowStates];
[[NSUserDefaults standardUserDefaults] setBool:[cdsCore isSpeedLimitEnabled] forKey:@"CoreControl_EnableSpeedLimit"];
[[NSUserDefaults standardUserDefaults] setBool:[cdsCore isFrameSkipEnabled] forKey:@"CoreControl_EnableAutoFrameSkip"];
[[NSUserDefaults standardUserDefaults] setBool:[cdsCore isCheatingEnabled] forKey:@"CoreControl_EnableCheats"];
@ -317,6 +319,7 @@
[cdsCoreController setContent:nil];
}
#pragma mark IBActions
- (IBAction) launchWebsite:(id)sender
{
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@STRING_DESMUME_WEBSITE]];
@ -345,6 +348,7 @@
[troubleshootingWindow makeKeyAndOrderFront:sender];
}
#pragma mark Class Methods
- (void) setupSlotMenuItems
{
NSMenuItem *loadItem = nil;
@ -582,4 +586,151 @@
[boxMisc setNeedsDisplay:YES];
}
- (void) restoreDisplayWindowStates
{
EmuControllerDelegate *emuControl = (EmuControllerDelegate *)[emuControlController content];
NSArray *windowPropertiesList = [[NSUserDefaults standardUserDefaults] arrayForKey:@"General_DisplayWindowRestorableStates"];
const BOOL willRestoreWindows = [[NSUserDefaults standardUserDefaults] boolForKey:@"General_WillRestoreDisplayWindows"];
if (!willRestoreWindows || windowPropertiesList == nil || [windowPropertiesList count] < 1)
{
// If no windows were saved for restoring (the user probably closed all windows before
// app termination), then simply create a new display window per user defaults.
[emuControl newDisplayWindow:self];
}
else
{
for (NSDictionary *windowProperties in windowPropertiesList)
{
DisplayWindowController *windowController = [[DisplayWindowController alloc] initWithWindowNibName:@"DisplayWindow" emuControlDelegate:emuControl];
if (windowController == nil)
{
continue;
}
const NSInteger displayMode = [(NSNumber *)[windowProperties valueForKey:@"displayMode"] integerValue];
const double displayScale = [(NSNumber *)[windowProperties valueForKey:@"displayScale"] doubleValue];
const double displayRotation = [(NSNumber *)[windowProperties valueForKey:@"displayRotation"] doubleValue];
const NSInteger displayOrientation = [(NSNumber *)[windowProperties valueForKey:@"displayOrientation"] integerValue];
const NSInteger displayOrder = [(NSNumber *)[windowProperties valueForKey:@"displayOrder"] integerValue];
const double displayGap = [(NSNumber *)[windowProperties valueForKey:@"displayGap"] doubleValue];
const NSInteger videoFilterType = [(NSNumber *)[windowProperties valueForKey:@"videoFilterType"] integerValue];
const NSInteger screenshotFileFormat = [(NSNumber *)[windowProperties valueForKey:@"screenshotFileFormat"] integerValue];
const BOOL useBilinearOutput = [(NSNumber *)[windowProperties valueForKey:@"useBilinearOutput"] boolValue];
const BOOL useVerticalSync = [(NSNumber *)[windowProperties valueForKey:@"useVerticalSync"] boolValue];
const BOOL isMinSizeNormal = [(NSNumber *)[windowProperties valueForKey:@"isMinSizeNormal"] boolValue];
const BOOL isShowingStatusBar = [(NSNumber *)[windowProperties valueForKey:@"isShowingStatusBar"] boolValue];
const BOOL isInFullScreenMode = [(NSNumber *)[windowProperties valueForKey:@"isInFullScreenMode"] boolValue];
const NSUInteger screenIndex = [(NSNumber *)[windowProperties valueForKey:@"screenIndex"] unsignedIntegerValue];
NSString *windowFrameStr = (NSString *)[windowProperties valueForKey:@"windowFrame"];
int frameX = 0;
int frameY = 0;
int frameWidth = GPU_DISPLAY_WIDTH;
int frameHeight = GPU_DISPLAY_HEIGHT;
const char *frameCStr = [windowFrameStr cStringUsingEncoding:NSUTF8StringEncoding];
sscanf(frameCStr, "%i %i %i %i", &frameX, &frameY, &frameWidth, &frameHeight);
[windowController setIsMinSizeNormal:isMinSizeNormal];
[windowController setIsShowingStatusBar:isShowingStatusBar];
[windowController setVideoFilterType:videoFilterType];
[windowController setDisplayMode:displayMode];
[windowController setDisplayRotation:displayRotation];
[windowController setDisplayOrientation:displayOrientation];
[windowController setDisplayOrder:displayOrder];
[windowController setDisplayGap:displayGap];
[windowController setScreenshotFileFormat:screenshotFileFormat];
[windowController setUseBilinearOutput:useBilinearOutput];
[windowController setUseVerticalSync:useVerticalSync];
[windowController setDisplayScale:displayScale];
[[windowController masterWindow] setFrameOrigin:NSMakePoint(frameX, frameY)];
// If this is the last window in the list, make this window key and main.
// Otherwise, just order the window to the front so that the windows will
// stack in a deterministic order.
if (windowProperties == [windowPropertiesList lastObject])
{
[[windowController window] makeKeyAndOrderFront:self];
[[windowController window] makeMainWindow];
}
else
{
[[windowController window] orderFront:self];
}
// Draw the display view now so that we guarantee that its drawn at least once.
if ([emuControl currentRom] == nil)
{
[[windowController view] clearToBlack];
}
else
{
[[windowController view] setNeedsDisplay:YES];
}
// If this window is set to full screen mode, its associated screen index must
// exist. If not, this window will not enter full screen mode. This is necessary,
// since the user's screen configuration could change in between app launches,
// and since we don't want a window to go full screen on the wrong screen.
if (isInFullScreenMode &&
([[NSScreen screens] indexOfObject:[[windowController window] screen]] == screenIndex))
{
[windowController enterFullScreen];
[[windowController window] makeKeyAndOrderFront:self];
[[windowController window] makeMainWindow];
}
}
}
}
- (void) saveDisplayWindowStates
{
EmuControllerDelegate *emuControl = (EmuControllerDelegate *)[emuControlController content];
NSArray *windowList = [emuControl windowList];
const BOOL willRestoreWindows = [[NSUserDefaults standardUserDefaults] boolForKey:@"General_WillRestoreDisplayWindows"];
if (willRestoreWindows && [windowList count] > 0)
{
NSMutableArray *windowPropertiesList = [NSMutableArray arrayWithCapacity:[windowList count]];
for (DisplayWindowController *windowController in windowList)
{
const BOOL isInFullScreenMode = ([windowController assignedScreen] != nil);
const NSUInteger screenIndex = [[NSScreen screens] indexOfObject:[[windowController masterWindow] screen]];
const NSRect windowFrame = [[windowController masterWindow] frame];
NSString *windowFrameStr = [NSString stringWithFormat:@"%i %i %i %i",
(int)windowFrame.origin.x, (int)windowFrame.origin.y, (int)windowFrame.size.width, (int)windowFrame.size.height];
NSDictionary *windowProperties = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInteger:[windowController displayMode]], @"displayMode",
[NSNumber numberWithDouble:[windowController displayScale]], @"displayScale",
[NSNumber numberWithDouble:[windowController displayRotation]], @"displayRotation",
[NSNumber numberWithInteger:[windowController displayOrientation]], @"displayOrientation",
[NSNumber numberWithInteger:[windowController displayOrder]], @"displayOrder",
[NSNumber numberWithDouble:[windowController displayGap]], @"displayGap",
[NSNumber numberWithInteger:[windowController videoFilterType]], @"videoFilterType",
[NSNumber numberWithInteger:[windowController screenshotFileFormat]], @"screenshotFileFormat",
[NSNumber numberWithBool:[windowController useBilinearOutput]], @"useBilinearOutput",
[NSNumber numberWithBool:[windowController useVerticalSync]], @"useVerticalSync",
[NSNumber numberWithBool:[windowController isMinSizeNormal]], @"isMinSizeNormal",
[NSNumber numberWithBool:[windowController isShowingStatusBar]], @"isShowingStatusBar",
[NSNumber numberWithBool:isInFullScreenMode], @"isInFullScreenMode",
[NSNumber numberWithUnsignedInteger:screenIndex], @"screenIndex",
windowFrameStr, @"windowFrame",
nil];
[windowPropertiesList addObject:windowProperties];
}
[[NSUserDefaults standardUserDefaults] setObject:windowPropertiesList forKey:@"General_DisplayWindowRestorableStates"];
}
else
{
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"General_DisplayWindowRestorableStates"];
}
}
@end