Thread: [Fuse-for-macosx-commits] SF.net SVN: fuse-for-macosx: [232] trunk/fuse/fusepb
Brought to you by:
fredm
|
From: <fr...@us...> - 2006-11-14 00:34:48
|
Revision: 232
http://svn.sourceforge.net/fuse-for-macosx/?rev=232&view=rev
Author: fredm
Date: 2006-11-13 16:34:48 -0800 (Mon, 13 Nov 2006)
Log Message:
-----------
Move version numbers to 20061114
Modified Paths:
--------------
trunk/fuse/fusepb/English.lproj/InfoPlist.strings
trunk/fuse/fusepb/Info-Fuse.plist
Modified: trunk/fuse/fusepb/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/Info-Fuse.plist
===================================================================
--- trunk/fuse/fusepb/Info-Fuse.plist 2006-10-22 02:35:08 UTC (rev 231)
+++ trunk/fuse/fusepb/Info-Fuse.plist 2006-11-14 00:34:48 UTC (rev 232)
@@ -361,11 +361,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>20060718</string>
+ <string>20061114</string>
<key>CFBundleSignature</key>
<string>FUSE</string>
<key>CFBundleVersion</key>
- <string>20060718</string>
+ <string>20061114</string>
<key>NSMainNibFile</key>
<string>SDLMain</string>
<key>NSPrincipalClass</key>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2006-12-17 01:26:29
|
Revision: 243
http://svn.sourceforge.net/fuse-for-macosx/?rev=243&view=rev
Author: fredm
Date: 2006-12-16 17:26:29 -0800 (Sat, 16 Dec 2006)
Log Message:
-----------
Move version strings to 20061129.
Modified Paths:
--------------
trunk/fuse/fusepb/English.lproj/InfoPlist.strings
trunk/fuse/fusepb/Info-Fuse.plist
Modified: trunk/fuse/fusepb/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/Info-Fuse.plist
===================================================================
--- trunk/fuse/fusepb/Info-Fuse.plist 2006-12-17 01:13:03 UTC (rev 242)
+++ trunk/fuse/fusepb/Info-Fuse.plist 2006-12-17 01:26:29 UTC (rev 243)
@@ -361,11 +361,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>20061114</string>
+ <string>20061129</string>
<key>CFBundleSignature</key>
<string>FUSE</string>
<key>CFBundleVersion</key>
- <string>20061114</string>
+ <string>20061129</string>
<key>NSMainNibFile</key>
<string>SDLMain</string>
<key>NSPrincipalClass</key>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2006-12-17 03:13:30
|
Revision: 247
http://svn.sourceforge.net/fuse-for-macosx/?rev=247&view=rev
Author: fredm
Date: 2006-12-16 19:13:29 -0800 (Sat, 16 Dec 2006)
Log Message:
-----------
Don't ignore settings_cocoa.h and check it in for easier builds from scratch.
Added Paths:
-----------
trunk/fuse/fusepb/settings_cocoa.h
Property Changed:
----------------
trunk/fuse/fusepb/
Property changes on: trunk/fuse/fusepb
___________________________________________________________________
Name: svn:ignore
- *~.nib
.DS_Store
.gdb_history
build
settings.h
settings.m
settings_cocoa.h
+ *~.nib
.DS_Store
.gdb_history
build
settings.h
settings.m
Added: trunk/fuse/fusepb/settings_cocoa.h
===================================================================
--- trunk/fuse/fusepb/settings_cocoa.h (rev 0)
+++ trunk/fuse/fusepb/settings_cocoa.h 2006-12-17 03:13:29 UTC (rev 247)
@@ -0,0 +1,45 @@
+/* settings_cocoa.h: Handling configuration settings
+ Copyright (c) Copyright (c) 2001-2003 Philip Kendall, Fredrick Meunier
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 49 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: pak...@sr...
+ Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+
+*/
+
+#ifndef FUSE_SETTINGS_COCOA_H
+#define FUSE_SETTINGS_COCOA_H
+
+#import <Foundation/NSArray.h>
+
+#include "settings.h"
+
+struct settings_cocoa {
+
+ NSMutableArray *recent_snapshots;
+
+};
+
+#define NUM_RECENT_ITEMS 10
+
+NSMutableArray*
+settings_set_rom_array( settings_info *settings );
+void
+settings_get_rom_array( settings_info *settings, NSArray *machineroms );
+
+#endif /* #ifndef FUSE_SETTINGS_COCOA_H */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-01-09 21:00:02
|
Revision: 287
http://svn.sourceforge.net/fuse-for-macosx/?rev=287&view=rev
Author: fredm
Date: 2007-01-09 13:00:00 -0800 (Tue, 09 Jan 2007)
Log Message:
-----------
Move version strings to 20070110.
Modified Paths:
--------------
trunk/fuse/fusepb/English.lproj/InfoPlist.strings
trunk/fuse/fusepb/Info-Fuse.plist
Modified: trunk/fuse/fusepb/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/Info-Fuse.plist
===================================================================
--- trunk/fuse/fusepb/Info-Fuse.plist 2007-01-09 14:15:49 UTC (rev 286)
+++ trunk/fuse/fusepb/Info-Fuse.plist 2007-01-09 21:00:00 UTC (rev 287)
@@ -361,11 +361,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>20061129</string>
+ <string>20070110</string>
<key>CFBundleSignature</key>
<string>FUSE</string>
<key>CFBundleVersion</key>
- <string>20061129</string>
+ <string>20070110</string>
<key>NSMainNibFile</key>
<string>SDLMain</string>
<key>NSPrincipalClass</key>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-06-17 12:26:50
|
Revision: 386
http://svn.sourceforge.net/fuse-for-macosx/?rev=386&view=rev
Author: fredm
Date: 2007-06-17 05:26:52 -0700 (Sun, 17 Jun 2007)
Log Message:
-----------
Work around a problem that can cause an exception to be raised using the
NSConnection from several threads, don't allow the joystick selection dialog
to be posted from the emulator thread.
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2007-06-17 11:15:49 UTC (rev 385)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2007-06-17 12:26:52 UTC (rev 386)
@@ -1235,7 +1235,7 @@
- (void)openFile:(const char *)filename
{
- if( !filename ) { [[DisplayOpenGLView instance] unpause]; return; }
+ if( !filename ) return;
[[DisplayOpenGLView instance] openFile:filename];
}
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-06-17 11:15:49 UTC (rev 385)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-06-17 12:26:52 UTC (rev 386)
@@ -218,6 +218,8 @@
kitConnection = [[NSConnection alloc] initWithReceivePort:port1 sendPort:port2];
[kitConnection setRootObject:self];
+ [kitConnection enableMultipleThreads];
+
/* Ports switched here */
portArray = [NSArray arrayWithObjects:port2, port1, nil];
@@ -571,7 +573,9 @@
-(void) openFile:(const char *)filename
{
- [proxy_emulator openFile:filename];
+ /* openFile can end up calling a dialog for joystick selection, this must
+ run on the main thread */
+ [real_emulator openFile:filename];
}
-(void) tapeOpen:(const char *)filename
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-06-19 02:56:55
|
Revision: 390
http://svn.sourceforge.net/fuse-for-macosx/?rev=390&view=rev
Author: fredm
Date: 2007-06-18 19:56:57 -0700 (Mon, 18 Jun 2007)
Log Message:
-----------
Add direct tape recording menus.
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/FuseController.h
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/models/Emulator.h
trunk/fuse/fusepb/models/Emulator.m
trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/controllers/FuseController.h
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.h 2007-06-18 12:03:30 UTC (rev 389)
+++ trunk/fuse/fusepb/controllers/FuseController.h 2007-06-19 02:56:57 UTC (rev 390)
@@ -52,6 +52,7 @@
IBOutlet NSMenuItem *zxatasp;
IBOutlet NSMenuItem *zxcf;
IBOutlet NSMenuItem *tapePlay;
+ IBOutlet NSMenuItem *tapeRecord;
IBOutlet NSMenu *recentSnaps;
IBOutlet NSWindow *window;
@@ -114,6 +115,7 @@
- (IBAction)tape_play:(id)sender;
- (IBAction)tape_rewind:(id)sender;
- (IBAction)tape_write:(id)sender;
+- (IBAction)tape_record:(id)sender;
- (IBAction)showRollbackPane:(id)sender;
- (IBAction)showTapeBrowserPane:(id)sender;
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2007-06-18 12:03:30 UTC (rev 389)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2007-06-19 02:56:57 UTC (rev 390)
@@ -101,6 +101,7 @@
static int if1M8WpSet = 0;
static int profileStart = 1;
static int profileStop = 0;
+static int playTape = 1;
static NSMutableArray *allFileTypes = nil;
static NSMutableArray *dckFileTypes = nil;
@@ -751,6 +752,11 @@
ui_tape_write();
}
+- (IBAction)tape_record:(id)sender
+{
+ [[DisplayOpenGLView instance] tapeToggleRecord];
+}
+
- (IBAction)cocoa_break:(id)sender
{
[[DisplayOpenGLView instance] cocoaBreak];
@@ -1138,10 +1144,17 @@
- (void)ui_menu_activate_machine_profiler:(NSNumber*)active
{
- profileStart = ![active boolValue];
- profileStop = [active boolValue];
+ profileStart = ![active boolValue];
+ profileStop = [active boolValue];
}
+- (void)ui_menu_activate_tape_record:(NSNumber*)active
+{
+ playTape = ![active boolValue];
+ [tapeRecord setTitle:[active boolValue] == NO ? @"Record" :
+ @"Stop Recording"];
+}
+
- (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem
{
switch( [menuItem tag] ) {
@@ -1228,6 +1241,13 @@
case 71:
return profileStop == 0 ? NO : YES;
break;
+ case 72:
+ case 73:
+ case 74:
+ case 75:
+ case 76:
+ return playTape == 0 ? NO : YES;
+ break;
default:
return YES;
}
@@ -1825,6 +1845,10 @@
method = @selector(ui_menu_activate_media_ide_divide_slave_eject:);
break;
+ case UI_MENU_ITEM_TAPE_RECORDING:
+ method = @selector(ui_menu_activate_tape_record:);
+ break;
+
default:
ui_error( UI_ERROR_ERROR, "Attempt to activate unknown menu item %d",
item );
Modified: trunk/fuse/fusepb/models/Emulator.h
===================================================================
--- trunk/fuse/fusepb/models/Emulator.h 2007-06-18 12:03:30 UTC (rev 389)
+++ trunk/fuse/fusepb/models/Emulator.h 2007-06-19 02:56:57 UTC (rev 390)
@@ -69,6 +69,7 @@
-(void) tapeOpen:(const char *)filename;
-(void) tapeWrite:(const char *)filename;
-(void) tapeTogglePlay;
+-(void) tapeToggleRecord;
-(void) tapeRewind;
-(void) tapeClear;
-(int) tapeClose;
Modified: trunk/fuse/fusepb/models/Emulator.m
===================================================================
--- trunk/fuse/fusepb/models/Emulator.m 2007-06-18 12:03:30 UTC (rev 389)
+++ trunk/fuse/fusepb/models/Emulator.m 2007-06-19 02:56:57 UTC (rev 390)
@@ -201,6 +201,12 @@
tape_toggle_play( 0 );
}
+-(void) tapeToggleRecord
+{
+ if( tape_recording ) tape_record_stop();
+ else tape_record_start();
+}
+
-(void) tapeRewind
{
tape_select_block( 0 );
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib 2007-06-18 12:03:30 UTC (rev 389)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib 2007-06-19 02:56:57 UTC (rev 390)
@@ -62,6 +62,7 @@
"tape_clear" = id;
"tape_open" = id;
"tape_play" = id;
+ "tape_record" = id;
"tape_rewind" = id;
"tape_write" = id;
};
@@ -82,6 +83,7 @@
savePanelAccessoryView = id;
simple8Bit = NSMenuItem;
tapePlay = NSMenuItem;
+ tapeRecord = NSMenuItem;
window = NSWindow;
zxatasp = NSMenuItem;
zxcf = NSMenuItem;
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2007-06-18 12:03:30 UTC (rev 389)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2007-06-19 02:56:57 UTC (rev 390)
@@ -3,11 +3,11 @@
<plist version="1.0">
<dict>
<key>IBDocumentLocation</key>
- <string>998 637 356 240 0 0 1440 878 </string>
+ <string>615 505 356 240 0 0 1024 746 </string>
<key>IBEditorPositions</key>
<dict>
<key>29</key>
- <string>201 691 344 44 0 0 1440 878 </string>
+ <string>121 582 392 44 0 0 1024 746 </string>
</dict>
<key>IBFramework Version</key>
<string>446.1</string>
@@ -17,6 +17,6 @@
<integer>29</integer>
</array>
<key>IBSystem Version</key>
- <string>8L2127</string>
+ <string>8P135</string>
</dict>
</plist>
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.h
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.h 2007-06-18 12:03:30 UTC (rev 389)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.h 2007-06-19 02:56:57 UTC (rev 390)
@@ -108,6 +108,7 @@
-(void) tapeOpen:(const char *)filename;
-(void) tapeWrite:(const char *)filename;
-(void) tapeTogglePlay;
+-(void) tapeToggleRecord;
-(void) tapeRewind;
-(void) tapeClear;
-(int) tapeClose;
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-06-18 12:03:30 UTC (rev 389)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-06-19 02:56:57 UTC (rev 390)
@@ -593,6 +593,11 @@
[proxy_emulator tapeTogglePlay];
}
+-(void) tapeToggleRecord
+{
+ [proxy_emulator tapeToggleRecord];
+}
+
-(void) tapeRewind
{
[proxy_emulator tapeRewind];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-06-26 14:05:14
|
Revision: 401
http://svn.sourceforge.net/fuse-for-macosx/?rev=401&view=rev
Author: fredm
Date: 2007-06-26 07:05:14 -0700 (Tue, 26 Jun 2007)
Log Message:
-----------
Fix for problem with closing debugger window.
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/DebuggerController.m
trunk/fuse/fusepb/models/Emulator.h
trunk/fuse/fusepb/models/Emulator.m
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/controllers/DebuggerController.m
===================================================================
--- trunk/fuse/fusepb/controllers/DebuggerController.m 2007-06-26 12:07:47 UTC (rev 400)
+++ trunk/fuse/fusepb/controllers/DebuggerController.m 2007-06-26 14:05:14 UTC (rev 401)
@@ -26,6 +26,7 @@
#import "DebuggerController.h"
#import "DisplayOpenGLView.h"
+#import "Emulator.h"
#include <config.h>
@@ -577,7 +578,7 @@
int
ui_debugger_activate( void )
{
- [[DebuggerController singleton] debugger_activate:nil];
+ [[Emulator instance] debuggerActivate];
return 0;
}
Modified: trunk/fuse/fusepb/models/Emulator.h
===================================================================
--- trunk/fuse/fusepb/models/Emulator.h 2007-06-26 12:07:47 UTC (rev 400)
+++ trunk/fuse/fusepb/models/Emulator.h 2007-06-26 14:05:14 UTC (rev 401)
@@ -169,4 +169,6 @@
-(int) trdosDiskWrite:(trdos_drive_number)which;
-(ui_confirm_joystick_t) confirmJoystick:(libspectrum_joystick)type inputs:(int)theInputs;
+-(void) debuggerActivate;
+
@end
Modified: trunk/fuse/fusepb/models/Emulator.m
===================================================================
--- trunk/fuse/fusepb/models/Emulator.m 2007-06-26 12:07:47 UTC (rev 400)
+++ trunk/fuse/fusepb/models/Emulator.m 2007-06-26 14:05:14 UTC (rev 401)
@@ -724,4 +724,9 @@
return [proxy_view confirmJoystick:type inputs:theInputs];
}
+-(void) debuggerActivate
+{
+ [proxy_view debuggerActivate];
+}
+
@end
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.h
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.h 2007-06-26 12:07:47 UTC (rev 400)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.h 2007-06-26 14:05:14 UTC (rev 401)
@@ -196,6 +196,8 @@
-(int) trdosDiskWrite:(trdos_drive_number)which;
-(ui_confirm_joystick_t) confirmJoystick:(libspectrum_joystick)type inputs:(int)theInputs;
+-(void) debuggerActivate;
+
-(void) mouseMoved:(NSEvent *)theEvent;
-(void) mouseDown:(NSEvent *)theEvent;
-(void) mouseUp:(NSEvent *)theEvent;
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-06-26 12:07:47 UTC (rev 400)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-06-26 14:05:14 UTC (rev 401)
@@ -25,6 +25,7 @@
#import "DisplayOpenGLView.h"
#import "Emulator.h"
#import "FuseController.h"
+#import "DebuggerController.h"
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>
@@ -989,6 +990,11 @@
return [[FuseController singleton] confirmJoystick:type inputs:theInputs];
}
+-(void) debuggerActivate
+{
+ [[DebuggerController singleton] debugger_activate:nil];
+}
+
-(void) mouseMoved:(NSEvent *)theEvent
{
[proxy_emulator mouseMoved:theEvent];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-07-04 12:34:43
|
Revision: 421
http://svn.sourceforge.net/fuse-for-macosx/?rev=421&view=rev
Author: fredm
Date: 2007-07-04 05:33:56 -0700 (Wed, 04 Jul 2007)
Log Message:
-----------
Make sure we clean up from all changed media, not just tapes.
Modified Paths:
--------------
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/models/Emulator.h
trunk/fuse/fusepb/models/Emulator.m
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-07-02 13:44:32 UTC (rev 420)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-07-04 12:33:56 UTC (rev 421)
@@ -278,6 +278,8 @@
B6A6F10E0B3D6360000B88E9 /* cocoaerror.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A6F10D0B3D6360000B88E9 /* cocoaerror.m */; };
B6A6F11F0B3EA737000B88E9 /* cocoascreenshot.h in Headers */ = {isa = PBXBuildFile; fileRef = B6A6F11D0B3EA737000B88E9 /* cocoascreenshot.h */; };
B6A6F1200B3EA737000B88E9 /* cocoascreenshot.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A6F11E0B3EA737000B88E9 /* cocoascreenshot.m */; };
+ B6AB34900C3BC91A0005935E /* menu.c in Sources */ = {isa = PBXBuildFile; fileRef = B6AB348E0C3BC91A0005935E /* menu.c */; };
+ B6AB34910C3BC91A0005935E /* menu.h in Headers */ = {isa = PBXBuildFile; fileRef = B6AB348F0C3BC91A0005935E /* menu.h */; };
B6B076B20B59FE9A00D4F95C /* Emulator.h in Headers */ = {isa = PBXBuildFile; fileRef = B6B076B00B59FE9A00D4F95C /* Emulator.h */; };
B6B076B30B59FE9A00D4F95C /* Emulator.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B076B10B59FE9A00D4F95C /* Emulator.m */; };
B6B99F8A0B5F798700EE408F /* cocoadisplay.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B99F890B5F798700EE408F /* cocoadisplay.m */; };
@@ -497,6 +499,8 @@
B6A7F0E904C9A11D001025EB /* NumberFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NumberFormatter.h; sourceTree = "<group>"; };
B6A7F0EA04C9A11D001025EB /* NumberFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NumberFormatter.m; sourceTree = "<group>"; };
B6AA8A3C03D2FC1C00FED55D /* trdos.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = trdos.rom; path = ../roms/trdos.rom; sourceTree = SOURCE_ROOT; };
+ B6AB348E0C3BC91A0005935E /* menu.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = menu.c; sourceTree = "<group>"; };
+ B6AB348F0C3BC91A0005935E /* menu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = menu.h; sourceTree = "<group>"; };
B6AB429D0677466E007C50EF /* ula.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ula.c; path = ../ula.c; sourceTree = SOURCE_ROOT; };
B6AB429E0677466E007C50EF /* ula.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ula.h; path = ../ula.h; sourceTree = SOURCE_ROOT; };
B6AD8FEC06221FD500C70D75 /* machines.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = machines.h; path = ../machines/machines.h; sourceTree = SOURCE_ROOT; };
@@ -1171,6 +1175,8 @@
B6403FD70A7E4B1A00E00B11 /* loader.h */,
B60B11F7059BC7E70048B64B /* machine.c */,
F55985EA038922ED01A804BA /* machine.h */,
+ B6AB348E0C3BC91A0005935E /* menu.c */,
+ B6AB348F0C3BC91A0005935E /* menu.h */,
B68CB2CC03DD923C00A804BA /* memory.c */,
B6CA2A210C33F8490003CF90 /* module.c */,
B6CA2A220C33F84A0003CF90 /* module.h */,
@@ -1321,6 +1327,7 @@
B6CA2A240C33F84A0003CF90 /* module.h in Headers */,
B6CA2A2F0C33F8C10003CF90 /* plusd.h in Headers */,
B6CA2A310C33F8C10003CF90 /* wd1770.h in Headers */,
+ B6AB34910C3BC91A0005935E /* menu.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1567,6 +1574,7 @@
B6CA2A230C33F84A0003CF90 /* module.c in Sources */,
B6CA2A2E0C33F8C10003CF90 /* plusd.c in Sources */,
B6CA2A300C33F8C10003CF90 /* wd1770.c in Sources */,
+ B6AB34900C3BC91A0005935E /* menu.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2007-07-02 13:44:32 UTC (rev 420)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2007-07-04 12:33:56 UTC (rev 421)
@@ -1757,7 +1757,7 @@
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
if( cocoaui_confirm( "Exit Fuse?" ) ) {
- int error = [[DisplayOpenGLView instance] tapeClose];
+ int error = [[DisplayOpenGLView instance] checkMediaChanged];
if( error ) return NSTerminateCancel;
return NSTerminateNow;
Modified: trunk/fuse/fusepb/models/Emulator.h
===================================================================
--- trunk/fuse/fusepb/models/Emulator.h 2007-07-02 13:44:32 UTC (rev 420)
+++ trunk/fuse/fusepb/models/Emulator.h 2007-07-04 12:33:56 UTC (rev 421)
@@ -86,6 +86,7 @@
-(void) reset;
-(void) hard_reset;
-(int) nmi;
+-(int) checkMediaChanged;
-(void) specplus3DiskInsert:(const char *)filename inDrive:(specplus3_drive_number)which;
-(void) specplus3DiskEject:(specplus3_drive_number)drive saveFirst:(int)write;
Modified: trunk/fuse/fusepb/models/Emulator.m
===================================================================
--- trunk/fuse/fusepb/models/Emulator.m 2007-07-02 13:44:32 UTC (rev 420)
+++ trunk/fuse/fusepb/models/Emulator.m 2007-07-04 12:33:56 UTC (rev 421)
@@ -35,6 +35,7 @@
#include "if2.h"
#include "keyboard.h"
#include "machine.h"
+#include "menu.h"
#include "profile.h"
#include "psg.h"
#include "rzx.h"
@@ -280,6 +281,11 @@
return event_add( 0, EVENT_TYPE_NMI );
}
+-(int) checkMediaChanged
+{
+ return menu_check_media_changed();
+}
+
-(void) specplus3DiskInsert:(const char *)filename inDrive:(specplus3_drive_number)which
{
specplus3_disk_insert_default_autoload( which, filename );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-07-13 13:51:01
|
Revision: 430
http://svn.sourceforge.net/fuse-for-macosx/?rev=430&view=rev
Author: fredm
Date: 2007-07-13 06:49:45 -0700 (Fri, 13 Jul 2007)
Log Message:
-----------
Factor out some icon texture loading bits.
Modified Paths:
--------------
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Added Paths:
-----------
trunk/fuse/fusepb/views/Texture.h
trunk/fuse/fusepb/views/Texture.m
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-07-05 13:58:08 UTC (rev 429)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-07-13 13:49:45 UTC (rev 430)
@@ -292,6 +292,8 @@
B6CA2A2F0C33F8C10003CF90 /* plusd.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CA2A2B0C33F8C10003CF90 /* plusd.h */; };
B6CA2A300C33F8C10003CF90 /* wd1770.c in Sources */ = {isa = PBXBuildFile; fileRef = B6CA2A2C0C33F8C10003CF90 /* wd1770.c */; };
B6CA2A310C33F8C10003CF90 /* wd1770.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CA2A2D0C33F8C10003CF90 /* wd1770.h */; };
+ B6CADD570C47AD90004BA954 /* Texture.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CADD550C47AD90004BA954 /* Texture.h */; };
+ B6CADD580C47AD90004BA954 /* Texture.m in Sources */ = {isa = PBXBuildFile; fileRef = B6CADD560C47AD90004BA954 /* Texture.m */; };
B6CE7F410B2830A300EB65B3 /* cocoadisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CE7F3B0B2830A300EB65B3 /* cocoadisplay.h */; };
B6CE7F420B2830A300EB65B3 /* cocoajoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = B6CE7F3C0B2830A300EB65B3 /* cocoajoystick.c */; };
B6CE7F440B2830A300EB65B3 /* cocoaui.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CE7F3E0B2830A300EB65B3 /* cocoaui.h */; };
@@ -540,6 +542,8 @@
B6CA2A2D0C33F8C10003CF90 /* wd1770.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = wd1770.h; sourceTree = "<group>"; };
B6CA304C049CEC410037E9F2 /* psg.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = psg.c; path = ../psg.c; sourceTree = SOURCE_ROOT; };
B6CA304D049CEC410037E9F2 /* psg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = psg.h; path = ../psg.h; sourceTree = SOURCE_ROOT; };
+ B6CADD550C47AD90004BA954 /* Texture.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Texture.h; sourceTree = "<group>"; };
+ B6CADD560C47AD90004BA954 /* Texture.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Texture.m; sourceTree = "<group>"; };
B6CC82FF0800E408006EFFB9 /* CAMachines.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CAMachines.h; path = content_arrays/CAMachines.h; sourceTree = SOURCE_ROOT; };
B6CC83000800E408006EFFB9 /* CAMachines.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = CAMachines.m; path = content_arrays/CAMachines.m; sourceTree = SOURCE_ROOT; };
B6CD0B9E06069F4A00847338 /* fuse.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = fuse.cpp; path = ../fuse.cpp; sourceTree = SOURCE_ROOT; };
@@ -1007,6 +1011,8 @@
B6CE7FCF0B28FBEC00EB65B3 /* Views */ = {
isa = PBXGroup;
children = (
+ B6CADD550C47AD90004BA954 /* Texture.h */,
+ B6CADD560C47AD90004BA954 /* Texture.m */,
B6CE7FCB0B28FBD600EB65B3 /* DisplayOpenGLView.h */,
B6CE7FCC0B28FBD600EB65B3 /* DisplayOpenGLView.m */,
);
@@ -1328,6 +1334,7 @@
B6CA2A2F0C33F8C10003CF90 /* plusd.h in Headers */,
B6CA2A310C33F8C10003CF90 /* wd1770.h in Headers */,
B6AB34910C3BC91A0005935E /* menu.h in Headers */,
+ B6CADD570C47AD90004BA954 /* Texture.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1575,6 +1582,7 @@
B6CA2A2E0C33F8C10003CF90 /* plusd.c in Sources */,
B6CA2A300C33F8C10003CF90 /* wd1770.c in Sources */,
B6AB34900C3BC91A0005935E /* menu.c in Sources */,
+ B6CADD580C47AD90004BA954 /* Texture.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.h
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.h 2007-07-05 13:58:08 UTC (rev 429)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.h 2007-07-13 13:49:45 UTC (rev 430)
@@ -40,6 +40,7 @@
#define MAX_SCREEN_BUFFERS 2
@class Emulator;
+@class Texture;
@interface DisplayOpenGLView : NSOpenGLView
{
@@ -48,18 +49,12 @@
GLuint screenTexId[MAX_SCREEN_BUFFERS];
int currentScreenTex;
- Cocoa_Texture redCassetteTex;
- GLuint redCassette;
- Cocoa_Texture greenCassetteTex;
- GLuint greenCassette;
- Cocoa_Texture redMdrTex;
- GLuint redMdr;
- Cocoa_Texture greenMdrTex;
- GLuint greenMdr;
- Cocoa_Texture redDiskTex;
- GLuint redDisk;
- Cocoa_Texture greenDiskTex;
- GLuint greenDisk;
+ Texture *redCassette;
+ Texture *greenCassette;
+ Texture *redMdr;
+ Texture *greenMdr;
+ Texture *redDisk;
+ Texture *greenDisk;
BOOL screenTexInitialised;
@@ -91,23 +86,17 @@
-(void) createTexture:(Cocoa_Texture*)newScreen;
-(void) destroyTexture;
--(void) uploadIconTexture:(GLuint*)textureName
- width:(GLsizei)width
- height:(GLsizei)height
- pixels:(unsigned char *)pixels;
--(void) blitIcon:(Cocoa_Texture*)texture name:(GLuint)textureName;
+-(void) blitIcon:(Texture*)iconTexture;
-(void) setServer:(id)anObject;
-(id) initWithFrame:(NSRect)frameRect;
-(void) awakeFromNib;
-(void) loadPicture:(NSString *) name
- greenTex:(Cocoa_Texture*)greenTexture
- greenIcon:(GLuint*)greenTextureName
- redTex:(Cocoa_Texture*)redTexture
- redIcon:(GLuint*)redTextureName
- xOrigin:(int)x
- yOrigin:(int)y;
+ greenTex:(Texture*) greenTexture
+ redTex:(Texture*) redTexture
+ xOrigin:(int) x
+ yOrigin:(int) y;
-(void) setNeedsDisplayYes;
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-07-05 13:58:08 UTC (rev 429)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-07-13 13:49:45 UTC (rev 430)
@@ -26,6 +26,7 @@
#import "Emulator.h"
#import "FuseController.h"
#import "DebuggerController.h"
+#import "Texture.h"
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>
@@ -36,54 +37,6 @@
#include "settings.h"
#include "ui/cocoa/dirty.h"
-unsigned char *
-NSBitmapImageRepToRGBAPixelArray(NSBitmapImageRep * bitmap, int red)
-{
- unsigned char * pixels;
- NSBitmapImageRep * bitmap2;
- NSGraphicsContext * context;
-#define BYTES_PER_PIXEL 4
- int targetWidth = [bitmap pixelsWide];
- int targetHeight = [bitmap pixelsHigh];
-
- pixels = (unsigned char *) malloc(BYTES_PER_PIXEL * targetWidth * targetHeight);
- bitmap2 = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes: &pixels
- pixelsWide: targetWidth
- pixelsHigh: targetHeight
- bitsPerSample: 8
- samplesPerPixel: 4
- hasAlpha: YES
- isPlanar: NO
- colorSpaceName: NSDeviceRGBColorSpace
- bitmapFormat: NSAlphaNonpremultipliedBitmapFormat
- bytesPerRow: (targetWidth * BYTES_PER_PIXEL)
- bitsPerPixel: (BYTES_PER_PIXEL * 8)];
-
- context = [NSGraphicsContext graphicsContextWithBitmapImageRep: bitmap2];
- [NSGraphicsContext saveGraphicsState];
- [NSGraphicsContext setCurrentContext: context];
- [bitmap drawInRect: NSMakeRect(0, 0, targetWidth, targetHeight)];
- [NSGraphicsContext restoreGraphicsState];
-
- int i;
- for( i = 0; i < targetWidth * targetHeight; i++ ) {
-#ifdef WORDS_BIGENDIAN
- pixels[i*4+3] = red ? pixels[i*4+0] : 0; // r on ppc
- pixels[i*4+2] = red ? 0 : pixels[i*4+1]; // g on ppc
- pixels[i*4+0] = 0;
- pixels[i*4+1] = 0;
-#else /* #ifdef WORDS_BIGENDIAN */
- pixels[i*4+0] = red ? pixels[i*4+0] : 0; // r on i386
- pixels[i*4+1] = red ? 0 : pixels[i*4+1]; // g on i386
- pixels[i*4+2] = 0;
-#endif /* #ifdef WORDS_BIGENDIAN */
- }
-
- [bitmap2 release];
-
- return pixels;
-}
-
const void *
get_byte_pointer(void *bitmap)
{
@@ -222,22 +175,22 @@
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glColor4f(0.0f, 0.0f, 0.0f, 0.0f);
- [self loadPicture: @"cassette" greenTex:&greenCassetteTex
- greenIcon:&greenCassette
- redTex:&redCassetteTex
- redIcon:&redCassette
+ greenCassette = [Texture alloc];
+ redCassette = [Texture alloc];
+ [self loadPicture: @"cassette" greenTex:greenCassette
+ redTex:redCassette
xOrigin:285
yOrigin:220];
- [self loadPicture: @"microdrive" greenTex:&greenMdrTex
- greenIcon:&greenMdr
- redTex:&redMdrTex
- redIcon:&redMdr
+ greenMdr = [Texture alloc];
+ redMdr = [Texture alloc];
+ [self loadPicture: @"microdrive" greenTex:greenMdr
+ redTex:redMdr
xOrigin:264
yOrigin:218];
- [self loadPicture: @"plus3disk" greenTex:&greenDiskTex
- greenIcon:&greenDisk
- redTex:&redDiskTex
- redIcon:&redDisk
+ greenDisk = [Texture alloc];
+ redDisk = [Texture alloc];
+ [self loadPicture: @"plus3disk" greenTex:greenDisk
+ redTex:redDisk
xOrigin:243
yOrigin:218];
screenTexInitialised = NO;
@@ -310,18 +263,18 @@
[real_emulator release];
real_emulator = nil;
- glDeleteTextures(1, &redCassette);
- redCassette = 0;
- glDeleteTextures(1, &greenCassette);
- greenCassette = 0;
- glDeleteTextures(1, &redMdr);
- redMdr = 0;
- glDeleteTextures(1, &greenMdr);
- greenMdr = 0;
- glDeleteTextures(1, &redDisk);
- redDisk = 0;
- glDeleteTextures(1, &greenDisk);
- greenDisk = 0;
+ [redCassette release];
+ redCassette = nil;
+ [greenCassette release];
+ greenCassette = nil;
+ [redMdr release];
+ redMdr = nil;
+ [greenMdr release];
+ greenMdr = nil;
+ [redDisk release];
+ redDisk = nil;
+ [greenDisk release];
+ greenDisk = nil;
[buffered_screen_lock release];
@@ -329,12 +282,10 @@
}
-(void) loadPicture: (NSString *) name
- greenTex:(Cocoa_Texture*)greenTexture
- greenIcon:(GLuint*)greenTextureName
- redTex:(Cocoa_Texture*)redTexture
- redIcon:(GLuint*)redTextureName
- xOrigin:(int)x
- yOrigin:(int)y
+ greenTex:(Texture*) greenTexture
+ redTex:(Texture*) redTexture
+ xOrigin:(int) x
+ yOrigin:(int) y
{
NSBitmapImageRep *bitmap;
NSImage *image = [NSImage imageNamed: name];
@@ -344,28 +295,12 @@
if (bitmap == nil) NSLog(@"in loadPicture: NSBitmapImageRep not loaded");
/* Colour first image green */
- greenTexture->pixels = NSBitmapImageRepToRGBAPixelArray( bitmap, 0 );
- greenTexture->image_width = [bitmap pixelsWide];
- greenTexture->image_height = [bitmap pixelsHigh];
- greenTexture->image_xoffset = x;
- greenTexture->image_yoffset = y;
+ greenTexture = [greenTexture initWithBitmap:bitmap withXOrigin:x
+ withYOrigin:y colourRed:0];
- [self uploadIconTexture:greenTextureName
- width:greenTexture->image_width
- height:greenTexture->image_height
- pixels:greenTexture->pixels];
-
/* Colour second image red */
- redTexture->pixels = NSBitmapImageRepToRGBAPixelArray( bitmap, 1 );
- redTexture->image_width = [bitmap pixelsWide];
- redTexture->image_height = [bitmap pixelsHigh];
- redTexture->image_xoffset = x;
- redTexture->image_yoffset = y;
-
- [self uploadIconTexture:redTextureName
- width:redTexture->image_width
- height:redTexture->image_height
- pixels:redTexture->pixels];
+ redTexture = [redTexture initWithBitmap:bitmap withXOrigin:x
+ withYOrigin:y colourRed:1];
}
-(void) setNeedsDisplayYes
@@ -373,8 +308,11 @@
[super setNeedsDisplay:YES];
}
--(void) blitIcon:(Cocoa_Texture*)texture name:(GLuint)textureName
+-(void) blitIcon:(Texture*)iconTexture
{
+ Cocoa_Texture* texture = [iconTexture getTexture];
+ GLuint textureName = [iconTexture getTextureId];
+
/* Map pixel icon position to appropriate position on -1.0 to 1.0 canvas */
float target_x1 = texture->image_xoffset * 2.0f / (float)DISPLAY_ASPECT_WIDTH
- 1.0f;
@@ -409,10 +347,10 @@
{
switch( disk_state ) {
case UI_STATUSBAR_STATE_ACTIVE:
- [self blitIcon:&greenDiskTex name:greenDisk];
+ [self blitIcon:greenDisk];
break;
case UI_STATUSBAR_STATE_INACTIVE:
- [self blitIcon:&redDiskTex name:redDisk];
+ [self blitIcon:redDisk];
break;
case UI_STATUSBAR_STATE_NOT_AVAILABLE:
break;
@@ -420,10 +358,10 @@
switch( mdr_state ) {
case UI_STATUSBAR_STATE_ACTIVE:
- [self blitIcon:&greenMdrTex name:greenMdr];
+ [self blitIcon:greenMdr];
break;
case UI_STATUSBAR_STATE_INACTIVE:
- [self blitIcon:&redMdrTex name:redMdr];
+ [self blitIcon:redMdr];
break;
case UI_STATUSBAR_STATE_NOT_AVAILABLE:
break;
@@ -431,11 +369,11 @@
switch( tape_state ) {
case UI_STATUSBAR_STATE_ACTIVE:
- [self blitIcon:&greenCassetteTex name:greenCassette];
+ [self blitIcon:greenCassette];
break;
case UI_STATUSBAR_STATE_INACTIVE:
case UI_STATUSBAR_STATE_NOT_AVAILABLE:
- [self blitIcon:&redCassetteTex name:redCassette];
+ [self blitIcon:redCassette];
break;
}
}
@@ -651,28 +589,6 @@
[view_lock unlock];
}
--(void) uploadIconTexture:(GLuint*)textureName
- width:(GLsizei)width
- height:(GLsizei)height
- pixels:(unsigned char *)pixels
-{
- glGenTextures(1, textureName);
-
- /* Set memory alignment parameters for unpacking the bitmap. */
- glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
-
- /* Specify the texture's properties. */
- glBindTexture( GL_TEXTURE_RECTANGLE_EXT, *textureName );
- glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
- glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
- glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
- glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
-
- /* Upload the texture bitmap. */
- glTexImage2D( GL_TEXTURE_RECTANGLE_EXT, 0, GL_RGBA, width, height, 0, GL_RGBA,
- GL_UNSIGNED_INT_8_8_8_8_REV, pixels );
-}
-
-(void) openFile:(const char *)filename
{
[proxy_emulator openFile:filename];
Added: trunk/fuse/fusepb/views/Texture.h
===================================================================
--- trunk/fuse/fusepb/views/Texture.h (rev 0)
+++ trunk/fuse/fusepb/views/Texture.h 2007-07-13 13:49:45 UTC (rev 430)
@@ -0,0 +1,47 @@
+/* DisplayOpenGLView.h: Implementation for the DisplayOpenGLView class
+ Copyright (c) 2006-2007 Fredrick Meunier
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: fr...@sp...
+ Postal address: 3/66 Roslyn Gardens, Ruscutters Bay, NSW 2011, Australia
+
+*/
+
+#import <Cocoa/Cocoa.h>
+
+#include <OpenGL/gl.h>
+#include <OpenGL/glext.h>
+#include <OpenGL/glu.h>
+
+#include "ui/cocoa/cocoadisplay.h"
+
+@interface Texture : NSObject
+{
+ Cocoa_Texture texture;
+ GLuint textureId;
+}
+-(id) initWithBitmap:(NSBitmapImageRep*)bitmap withXOrigin:(int)x
+ withYOrigin:(int)y colourRed:(int)red;
+-(void) dealloc;
+
+-(Cocoa_Texture*) getTexture;
+-(GLuint) getTextureId;
+
+-(void) uploadIconTexture;
+
+@end
Added: trunk/fuse/fusepb/views/Texture.m
===================================================================
--- trunk/fuse/fusepb/views/Texture.m (rev 0)
+++ trunk/fuse/fusepb/views/Texture.m 2007-07-13 13:49:45 UTC (rev 430)
@@ -0,0 +1,130 @@
+/* DisplayOpenGLView.m: Implementation for the DisplayOpenGLView class
+ Copyright (c) 2006-2007 Fredrick Meunier
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: fr...@sp...
+ Postal address: 3/66 Roslyn Gardens, Ruscutters Bay, NSW 2011, Australia
+
+*/
+
+#import "Texture.h"
+
+unsigned char *
+NSBitmapImageRepToRGBAPixelArray(NSBitmapImageRep * bitmap, int red)
+{
+ unsigned char * pixels;
+ NSBitmapImageRep * bitmap2;
+ NSGraphicsContext * context;
+#define BYTES_PER_PIXEL 4
+ int targetWidth = [bitmap pixelsWide];
+ int targetHeight = [bitmap pixelsHigh];
+
+ pixels = (unsigned char *) malloc(BYTES_PER_PIXEL * targetWidth * targetHeight);
+ bitmap2 = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes: &pixels
+ pixelsWide: targetWidth
+ pixelsHigh: targetHeight
+ bitsPerSample: 8
+ samplesPerPixel: 4
+ hasAlpha: YES
+ isPlanar: NO
+ colorSpaceName: NSDeviceRGBColorSpace
+ bitmapFormat: NSAlphaNonpremultipliedBitmapFormat
+ bytesPerRow: (targetWidth * BYTES_PER_PIXEL)
+ bitsPerPixel: (BYTES_PER_PIXEL * 8)];
+
+ context = [NSGraphicsContext graphicsContextWithBitmapImageRep: bitmap2];
+ [NSGraphicsContext saveGraphicsState];
+ [NSGraphicsContext setCurrentContext: context];
+ [bitmap drawInRect: NSMakeRect(0, 0, targetWidth, targetHeight)];
+ [NSGraphicsContext restoreGraphicsState];
+
+ int i;
+ for( i = 0; i < targetWidth * targetHeight; i++ ) {
+#ifdef WORDS_BIGENDIAN
+ pixels[i*4+3] = red ? pixels[i*4+0] : 0; // r on ppc
+ pixels[i*4+2] = red ? 0 : pixels[i*4+1]; // g on ppc
+ pixels[i*4+0] = 0;
+ pixels[i*4+1] = 0;
+#else /* #ifdef WORDS_BIGENDIAN */
+ pixels[i*4+0] = red ? pixels[i*4+0] : 0; // r on i386
+ pixels[i*4+1] = red ? 0 : pixels[i*4+1]; // g on i386
+ pixels[i*4+2] = 0;
+#endif /* #ifdef WORDS_BIGENDIAN */
+ }
+
+ [bitmap2 release];
+
+ return pixels;
+}
+
+@implementation Texture
+
+-(id) initWithBitmap:(NSBitmapImageRep*)bitmap withXOrigin:(int)x
+ withYOrigin:(int)y colourRed:(int)red
+{
+ if( ( self = [super init] ) ) {
+ texture.pixels = NSBitmapImageRepToRGBAPixelArray( bitmap, red );
+ texture.image_width = [bitmap pixelsWide];
+ texture.image_height = [bitmap pixelsHigh];
+ texture.image_xoffset = x;
+ texture.image_yoffset = y;
+
+ [self uploadIconTexture];
+ }
+
+ return self;
+}
+
+-(void) dealloc
+{
+ glDeleteTextures(1, &textureId);
+ free( texture.pixels );
+ [super dealloc];
+}
+
+-(Cocoa_Texture*) getTexture
+{
+ return &texture;
+}
+
+-(GLuint) getTextureId
+{
+ return textureId;
+}
+
+-(void) uploadIconTexture;
+{
+ glGenTextures(1, &textureId);
+
+ /* Set memory alignment parameters for unpacking the bitmap. */
+ glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
+
+ /* Specify the texture's properties. */
+ glBindTexture( GL_TEXTURE_RECTANGLE_EXT, textureId );
+ glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
+ glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
+ glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
+ glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
+
+ /* Upload the texture bitmap. */
+ glTexImage2D( GL_TEXTURE_RECTANGLE_EXT, 0, GL_RGBA, texture.image_width,
+ texture.image_height, 0, GL_RGBA,
+ GL_UNSIGNED_INT_8_8_8_8_REV, texture.pixels );
+}
+
+@end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-07-16 12:29:17
|
Revision: 431
http://svn.sourceforge.net/fuse-for-macosx/?rev=431&view=rev
Author: fredm
Date: 2007-07-16 05:29:05 -0700 (Mon, 16 Jul 2007)
Log Message:
-----------
Switch to using ImageIO for texture loading.
Modified Paths:
--------------
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/fuse/fusepb/views/DisplayOpenGLView.m
trunk/fuse/fusepb/views/Texture.h
trunk/fuse/fusepb/views/Texture.m
Added Paths:
-----------
trunk/fuse/fusepb/resources/cassette_green.png
trunk/fuse/fusepb/resources/cassette_red.png
trunk/fuse/fusepb/resources/microdrive_green.png
trunk/fuse/fusepb/resources/microdrive_red.png
trunk/fuse/fusepb/resources/plus3disk_green.png
trunk/fuse/fusepb/resources/plus3disk_red.png
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-07-13 13:49:45 UTC (rev 430)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-07-16 12:29:05 UTC (rev 431)
@@ -149,9 +149,6 @@
B61F463109121DF100C8096C /* tzx.icns in Resources */ = {isa = PBXBuildFile; fileRef = B643BB980403A13600A864FD /* tzx.icns */; };
B61F463209121DF100C8096C /* z80.icns in Resources */ = {isa = PBXBuildFile; fileRef = B6676DB0040C348F00B2BFEF /* z80.icns */; };
B61F463309121DF100C8096C /* blank.icns in Resources */ = {isa = PBXBuildFile; fileRef = B6AF242A04156EE700F48F48 /* blank.icns */; };
- B61F463409121DF100C8096C /* cassette.bmp in Resources */ = {isa = PBXBuildFile; fileRef = B6FD5BE505A4EDBF00A6C4FC /* cassette.bmp */; };
- B61F463509121DF100C8096C /* microdrive.bmp in Resources */ = {isa = PBXBuildFile; fileRef = B63B80B7076DB4BC00002519 /* microdrive.bmp */; };
- B61F463609121DF100C8096C /* plus3disk.bmp in Resources */ = {isa = PBXBuildFile; fileRef = B6FD5BEA05A4EDD700A6C4FC /* plus3disk.bmp */; };
B61F463709121DF100C8096C /* SavePanelAccessoryView.nib in Resources */ = {isa = PBXBuildFile; fileRef = B619FC2E090D9BC200344F94 /* SavePanelAccessoryView.nib */; };
B61F463909121DF100C8096C /* z80_ops.c in Sources */ = {isa = PBXBuildFile; fileRef = F55985B20389224001A804BA /* z80_ops.c */; };
B61F463A09121DF100C8096C /* z80.c in Sources */ = {isa = PBXBuildFile; fileRef = F55985B30389224001A804BA /* z80.c */; };
@@ -294,6 +291,12 @@
B6CA2A310C33F8C10003CF90 /* wd1770.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CA2A2D0C33F8C10003CF90 /* wd1770.h */; };
B6CADD570C47AD90004BA954 /* Texture.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CADD550C47AD90004BA954 /* Texture.h */; };
B6CADD580C47AD90004BA954 /* Texture.m in Sources */ = {isa = PBXBuildFile; fileRef = B6CADD560C47AD90004BA954 /* Texture.m */; };
+ B6CADD690C48E188004BA954 /* cassette_green.png in Resources */ = {isa = PBXBuildFile; fileRef = B6CADD670C48E188004BA954 /* cassette_green.png */; };
+ B6CADD6A0C48E188004BA954 /* cassette_red.png in Resources */ = {isa = PBXBuildFile; fileRef = B6CADD680C48E188004BA954 /* cassette_red.png */; };
+ B6CADD720C48E1A3004BA954 /* microdrive_green.png in Resources */ = {isa = PBXBuildFile; fileRef = B6CADD6E0C48E1A3004BA954 /* microdrive_green.png */; };
+ B6CADD730C48E1A3004BA954 /* microdrive_red.png in Resources */ = {isa = PBXBuildFile; fileRef = B6CADD6F0C48E1A3004BA954 /* microdrive_red.png */; };
+ B6CADD740C48E1A3004BA954 /* plus3disk_green.png in Resources */ = {isa = PBXBuildFile; fileRef = B6CADD700C48E1A3004BA954 /* plus3disk_green.png */; };
+ B6CADD750C48E1A3004BA954 /* plus3disk_red.png in Resources */ = {isa = PBXBuildFile; fileRef = B6CADD710C48E1A3004BA954 /* plus3disk_red.png */; };
B6CE7F410B2830A300EB65B3 /* cocoadisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CE7F3B0B2830A300EB65B3 /* cocoadisplay.h */; };
B6CE7F420B2830A300EB65B3 /* cocoajoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = B6CE7F3C0B2830A300EB65B3 /* cocoajoystick.c */; };
B6CE7F440B2830A300EB65B3 /* cocoaui.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CE7F3E0B2830A300EB65B3 /* cocoaui.h */; };
@@ -402,7 +405,6 @@
B639B7670A6BAFCF00927E24 /* csw.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = csw.icns; sourceTree = "<group>"; };
B639B7D00A6BB45600927E24 /* raw.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = raw.icns; sourceTree = "<group>"; };
B63ABD8D042F175200A864FD /* scaler.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = scaler.c; path = ../ui/scaler/scaler.c; sourceTree = SOURCE_ROOT; };
- B63B80B7076DB4BC00002519 /* microdrive.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = microdrive.bmp; path = ../lib/microdrive.bmp; sourceTree = SOURCE_ROOT; };
B63F9949077182B4004D6DFA /* RollbackController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = RollbackController.h; path = controllers/RollbackController.h; sourceTree = SOURCE_ROOT; };
B63F994A077182B4004D6DFA /* RollbackController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = RollbackController.m; path = controllers/RollbackController.m; sourceTree = SOURCE_ROOT; };
B6403FD60A7E4B1A00E00B11 /* loader.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = loader.c; sourceTree = "<group>"; };
@@ -544,6 +546,12 @@
B6CA304D049CEC410037E9F2 /* psg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = psg.h; path = ../psg.h; sourceTree = SOURCE_ROOT; };
B6CADD550C47AD90004BA954 /* Texture.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Texture.h; sourceTree = "<group>"; };
B6CADD560C47AD90004BA954 /* Texture.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Texture.m; sourceTree = "<group>"; };
+ B6CADD670C48E188004BA954 /* cassette_green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cassette_green.png; sourceTree = "<group>"; };
+ B6CADD680C48E188004BA954 /* cassette_red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cassette_red.png; sourceTree = "<group>"; };
+ B6CADD6E0C48E1A3004BA954 /* microdrive_green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = microdrive_green.png; sourceTree = "<group>"; };
+ B6CADD6F0C48E1A3004BA954 /* microdrive_red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = microdrive_red.png; sourceTree = "<group>"; };
+ B6CADD700C48E1A3004BA954 /* plus3disk_green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = plus3disk_green.png; sourceTree = "<group>"; };
+ B6CADD710C48E1A3004BA954 /* plus3disk_red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = plus3disk_red.png; sourceTree = "<group>"; };
B6CC82FF0800E408006EFFB9 /* CAMachines.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CAMachines.h; path = content_arrays/CAMachines.h; sourceTree = SOURCE_ROOT; };
B6CC83000800E408006EFFB9 /* CAMachines.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = CAMachines.m; path = content_arrays/CAMachines.m; sourceTree = SOURCE_ROOT; };
B6CD0B9E06069F4A00847338 /* fuse.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = fuse.cpp; path = ../fuse.cpp; sourceTree = SOURCE_ROOT; };
@@ -588,8 +596,6 @@
B6F74F9D04B85B660059D51C /* SaveBinaryController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SaveBinaryController.m; path = controllers/SaveBinaryController.m; sourceTree = "<group>"; };
B6F905ED05CDA24300C2F10D /* Fuse Help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "Fuse Help"; path = "resources/Fuse Help"; sourceTree = SOURCE_ROOT; };
B6FA759C0C1D7507007F5A10 /* audiofile.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = audiofile.framework; path = ../../audiofile/build/Deployment/audiofile.framework; sourceTree = "<group>"; };
- B6FD5BE505A4EDBF00A6C4FC /* cassette.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = cassette.bmp; path = ../lib/cassette.bmp; sourceTree = SOURCE_ROOT; };
- B6FD5BEA05A4EDD700A6C4FC /* plus3disk.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = plus3disk.bmp; path = ../lib/plus3disk.bmp; sourceTree = SOURCE_ROOT; };
B6FD5C7A05A4F5B600A6C4FC /* utils.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = utils.h; path = ../utils.h; sourceTree = SOURCE_ROOT; };
B6FEA44B0444C2CC0013916D /* tc2068-0.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = "tc2068-0.rom"; path = "../roms/tc2068-0.rom"; sourceTree = SOURCE_ROOT; };
B6FEA44C0444C2CC0013916D /* tc2068-1.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = "tc2068-1.rom"; path = "../roms/tc2068-1.rom"; sourceTree = SOURCE_ROOT; };
@@ -850,16 +856,19 @@
B643BB8C0403A0D300A864FD /* resources */ = {
isa = PBXGroup;
children = (
- F5F4333103903ED801E7A043 /* Fuse.icns */,
B6AF242A04156EE700F48F48 /* blank.icns */,
- B6FD5BE505A4EDBF00A6C4FC /* cassette.bmp */,
+ B6CADD670C48E188004BA954 /* cassette_green.png */,
+ B6CADD680C48E188004BA954 /* cassette_red.png */,
B639B7670A6BAFCF00927E24 /* csw.icns */,
B6F0480E0952B597006D8005 /* dck.icns */,
B643BB8D0403A0FD00A864FD /* dsk.icns */,
+ F5F4333103903ED801E7A043 /* Fuse.icns */,
B650986A09366C8F003AF1BF /* hdf.icns */,
B6F048100952B5AD006D8005 /* mdr.icns */,
- B63B80B7076DB4BC00002519 /* microdrive.bmp */,
- B6FD5BEA05A4EDD700A6C4FC /* plus3disk.bmp */,
+ B6CADD6E0C48E1A3004BA954 /* microdrive_green.png */,
+ B6CADD6F0C48E1A3004BA954 /* microdrive_red.png */,
+ B6CADD700C48E1A3004BA954 /* plus3disk_green.png */,
+ B6CADD710C48E1A3004BA954 /* plus3disk_red.png */,
B639B7D00A6BB45600927E24 /* raw.icns */,
B650986B09366C8F003AF1BF /* rom.icns */,
B650986C09366C8F003AF1BF /* rzx.icns */,
@@ -1419,6 +1428,7 @@
B61F461E09121DF100C8096C /* plus3e-1.rom in Resources */,
B61F461F09121DF100C8096C /* plus3e-2.rom in Resources */,
B61F462009121DF100C8096C /* plus3e-3.rom in Resources */,
+ B6CA2A260C33F8800003CF90 /* plusd.rom in Resources */,
B61F462109121DF100C8096C /* se-0.rom in Resources */,
B61F462209121DF100C8096C /* se-1.rom in Resources */,
B61F462309121DF100C8096C /* tc2048.rom in Resources */,
@@ -1429,14 +1439,11 @@
B61F462A09121DF100C8096C /* ts2068.png in Resources */,
B61F462B09121DF100C8096C /* Fuse.icns in Resources */,
B61F463309121DF100C8096C /* blank.icns in Resources */,
- B61F463409121DF100C8096C /* cassette.bmp in Resources */,
B639B7680A6BAFCF00927E24 /* csw.icns in Resources */,
B6F0480F0952B597006D8005 /* dck.icns in Resources */,
B61F462C09121DF100C8096C /* dsk.icns in Resources */,
B650986D09366C8F003AF1BF /* hdf.icns in Resources */,
B6F048110952B5AE006D8005 /* mdr.icns in Resources */,
- B61F463509121DF100C8096C /* microdrive.bmp in Resources */,
- B61F463609121DF100C8096C /* plus3disk.bmp in Resources */,
B650986E09366C8F003AF1BF /* rom.icns in Resources */,
B650986F09366C8F003AF1BF /* rzx.icns in Resources */,
B6F048130952B5C1006D8005 /* scl.icns in Resources */,
@@ -1452,7 +1459,12 @@
B61F463209121DF100C8096C /* z80.icns in Resources */,
B6F0481B0952B5FD006D8005 /* zxs.icns in Resources */,
B639B7D10A6BB45600927E24 /* raw.icns in Resources */,
- B6CA2A260C33F8800003CF90 /* plusd.rom in Resources */,
+ B6CADD690C48E188004BA954 /* cassette_green.png in Resources */,
+ B6CADD6A0C48E188004BA954 /* cassette_red.png in Resources */,
+ B6CADD720C48E1A3004BA954 /* microdrive_green.png in Resources */,
+ B6CADD730C48E1A3004BA954 /* microdrive_red.png in Resources */,
+ B6CADD740C48E1A3004BA954 /* plus3disk_green.png in Resources */,
+ B6CADD750C48E1A3004BA954 /* plus3disk_red.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Added: trunk/fuse/fusepb/resources/cassette_green.png
===================================================================
(Binary files differ)
Property changes on: trunk/fuse/fusepb/resources/cassette_green.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/fuse/fusepb/resources/cassette_red.png
===================================================================
(Binary files differ)
Property changes on: trunk/fuse/fusepb/resources/cassette_red.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/fuse/fusepb/resources/microdrive_green.png
===================================================================
(Binary files differ)
Property changes on: trunk/fuse/fusepb/resources/microdrive_green.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/fuse/fusepb/resources/microdrive_red.png
===================================================================
(Binary files differ)
Property changes on: trunk/fuse/fusepb/resources/microdrive_red.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/fuse/fusepb/resources/plus3disk_green.png
===================================================================
(Binary files differ)
Property changes on: trunk/fuse/fusepb/resources/plus3disk_green.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/fuse/fusepb/resources/plus3disk_red.png
===================================================================
(Binary files differ)
Property changes on: trunk/fuse/fusepb/resources/plus3disk_red.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-07-13 13:49:45 UTC (rev 430)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-07-16 12:29:05 UTC (rev 431)
@@ -287,20 +287,21 @@
xOrigin:(int) x
yOrigin:(int) y
{
+ NSString *filename;
NSBitmapImageRep *bitmap;
- NSImage *image = [NSImage imageNamed: name];
+ NSImage *image;
- /* create a bitmap with the correct image data */
- bitmap = [[NSBitmapImageRep alloc] initWithData:[image TIFFRepresentation]];
- if (bitmap == nil) NSLog(@"in loadPicture: NSBitmapImageRep not loaded");
+ filename = [NSString stringWithFormat:@"%@_green", name];
/* Colour first image green */
- greenTexture = [greenTexture initWithBitmap:bitmap withXOrigin:x
- withYOrigin:y colourRed:0];
+ greenTexture = [greenTexture initWithImageFile:filename withXOrigin:x
+ withYOrigin:y];
+ filename = [NSString stringWithFormat:@"%@_red", name];
+
/* Colour second image red */
- redTexture = [redTexture initWithBitmap:bitmap withXOrigin:x
- withYOrigin:y colourRed:1];
+ redTexture = [redTexture initWithImageFile:filename withXOrigin:x
+ withYOrigin:y];
}
-(void) setNeedsDisplayYes
Modified: trunk/fuse/fusepb/views/Texture.h
===================================================================
--- trunk/fuse/fusepb/views/Texture.h 2007-07-13 13:49:45 UTC (rev 430)
+++ trunk/fuse/fusepb/views/Texture.h 2007-07-16 12:29:05 UTC (rev 431)
@@ -1,5 +1,5 @@
-/* DisplayOpenGLView.h: Implementation for the DisplayOpenGLView class
- Copyright (c) 2006-2007 Fredrick Meunier
+/* Texture.h: Implementation for the Texture class
+ Copyright (c) 2007 Fredrick Meunier
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -35,8 +35,8 @@
Cocoa_Texture texture;
GLuint textureId;
}
--(id) initWithBitmap:(NSBitmapImageRep*)bitmap withXOrigin:(int)x
- withYOrigin:(int)y colourRed:(int)red;
+-(id) initWithImageFile:(NSString*)filename withXOrigin:(int)x
+ withYOrigin:(int)y;
-(void) dealloc;
-(Cocoa_Texture*) getTexture;
Modified: trunk/fuse/fusepb/views/Texture.m
===================================================================
--- trunk/fuse/fusepb/views/Texture.m 2007-07-13 13:49:45 UTC (rev 430)
+++ trunk/fuse/fusepb/views/Texture.m 2007-07-16 12:29:05 UTC (rev 431)
@@ -1,5 +1,5 @@
-/* DisplayOpenGLView.m: Implementation for the DisplayOpenGLView class
- Copyright (c) 2006-2007 Fredrick Meunier
+/* Texture.m: Implementation for the Texture class
+ Copyright (c) 2007 Fredrick Meunier
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -24,63 +24,48 @@
#import "Texture.h"
-unsigned char *
-NSBitmapImageRepToRGBAPixelArray(NSBitmapImageRep * bitmap, int red)
+@implementation Texture
+
+-(id) initWithImageFile:(NSString*)filename withXOrigin:(int)x
+ withYOrigin:(int)y
{
- unsigned char * pixels;
- NSBitmapImageRep * bitmap2;
- NSGraphicsContext * context;
-#define BYTES_PER_PIXEL 4
- int targetWidth = [bitmap pixelsWide];
- int targetHeight = [bitmap pixelsHigh];
+ if( ( self = [super init] ) ) {
+ NSString *textureName = [[NSBundle mainBundle] pathForImageResource:filename];
+ if( !textureName )
+ NSLog(@"in initWithImageFile no textureName for filename:%@", filename);
+ NSURL *textureFile = [NSURL fileURLWithPath:textureName];
- pixels = (unsigned char *) malloc(BYTES_PER_PIXEL * targetWidth * targetHeight);
- bitmap2 = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes: &pixels
- pixelsWide: targetWidth
- pixelsHigh: targetHeight
- bitsPerSample: 8
- samplesPerPixel: 4
- hasAlpha: YES
- isPlanar: NO
- colorSpaceName: NSDeviceRGBColorSpace
- bitmapFormat: NSAlphaNonpremultipliedBitmapFormat
- bytesPerRow: (targetWidth * BYTES_PER_PIXEL)
- bitsPerPixel: (BYTES_PER_PIXEL * 8)];
+ CGImageSourceRef image_source = CGImageSourceCreateWithURL(
+ (CFURLRef)textureFile,
+ nil);
- context = [NSGraphicsContext graphicsContextWithBitmapImageRep: bitmap2];
- [NSGraphicsContext saveGraphicsState];
- [NSGraphicsContext setCurrentContext: context];
- [bitmap drawInRect: NSMakeRect(0, 0, targetWidth, targetHeight)];
- [NSGraphicsContext restoreGraphicsState];
+ CGImageRef image = CGImageSourceCreateImageAtIndex(
+ image_source,
+ 0,
+ nil);
+ texture.image_width = CGImageGetWidth(image);
+ texture.image_height = CGImageGetHeight(image);
- int i;
- for( i = 0; i < targetWidth * targetHeight; i++ ) {
-#ifdef WORDS_BIGENDIAN
- pixels[i*4+3] = red ? pixels[i*4+0] : 0; // r on ppc
- pixels[i*4+2] = red ? 0 : pixels[i*4+1]; // g on ppc
- pixels[i*4+0] = 0;
- pixels[i*4+1] = 0;
-#else /* #ifdef WORDS_BIGENDIAN */
- pixels[i*4+0] = red ? pixels[i*4+0] : 0; // r on i386
- pixels[i*4+1] = red ? 0 : pixels[i*4+1]; // g on i386
- pixels[i*4+2] = 0;
-#endif /* #ifdef WORDS_BIGENDIAN */
- }
+ texture.pixels = malloc(texture.image_width * texture.image_height * 4);
- [bitmap2 release];
+ CGColorSpaceRef color_space = CGColorSpaceCreateDeviceRGB();
- return pixels;
-}
+ CGContextRef context = CGBitmapContextCreate(
+ texture.pixels,
+ texture.image_width,
+ texture.image_height,
+ 8,
+ texture.image_width * 4,
+ color_space,
+ kCGImageAlphaPremultipliedFirst);
-@implementation Texture
+ CGContextDrawImage(
+ context,
+ CGRectMake(0, 0, texture.image_width, texture.image_height),
+ image);
--(id) initWithBitmap:(NSBitmapImageRep*)bitmap withXOrigin:(int)x
- withYOrigin:(int)y colourRed:(int)red
-{
- if( ( self = [super init] ) ) {
- texture.pixels = NSBitmapImageRepToRGBAPixelArray( bitmap, red );
- texture.image_width = [bitmap pixelsWide];
- texture.image_height = [bitmap pixelsHigh];
+ CGContextRelease(context);
+
texture.image_xoffset = x;
texture.image_yoffset = y;
@@ -93,7 +78,10 @@
-(void) dealloc
{
glDeleteTextures(1, &textureId);
- free( texture.pixels );
+ if (texture.pixels != NULL) {
+ free( texture.pixels );
+ texture.pixels = NULL;
+ }
[super dealloc];
}
@@ -112,19 +100,26 @@
glGenTextures(1, &textureId);
/* Set memory alignment parameters for unpacking the bitmap. */
+ glPixelStorei( GL_UNPACK_ROW_LENGTH, texture.image_width );
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
/* Specify the texture's properties. */
- glBindTexture( GL_TEXTURE_RECTANGLE_EXT, textureId );
- glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
- glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
- glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
- glTexParameteri( GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
+ glBindTexture( GL_TEXTURE_RECTANGLE_ARB, textureId );
+ glTexParameteri( GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
+ glTexParameteri( GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
+ glTexParameteri( GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
+ glTexParameteri( GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
+
/* Upload the texture bitmap. */
- glTexImage2D( GL_TEXTURE_RECTANGLE_EXT, 0, GL_RGBA, texture.image_width,
- texture.image_height, 0, GL_RGBA,
- GL_UNSIGNED_INT_8_8_8_8_REV, texture.pixels );
+ glTexImage2D( GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA8, texture.image_width,
+ texture.image_height, 0, GL_BGRA_EXT,
+#ifdef WORDS_BIGENDIAN
+ GL_UNSIGNED_INT_8_8_8_8_REV,
+#else /* #ifdef WORDS_BIGENDIAN */
+ GL_UNSIGNED_INT_8_8_8_8,
+#endif /* #ifdef WORDS_BIGENDIAN */
+ texture.pixels );
}
@end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-10 20:47:08
|
Revision: 468
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=468&view=rev
Author: fredm
Date: 2008-02-10 12:47:11 -0800 (Sun, 10 Feb 2008)
Log Message:
-----------
Make application quit menu use performClose on the window, and switch exit
confirm dialog to windowShouldClose in DisplayOpenGLView (partial fix to
bug #1842576).
Modified Paths:
--------------
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/fuse/fusepb/controllers/FuseController.h
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-02-10 20:47:11 UTC (rev 468)
@@ -8,8 +8,6 @@
/* Begin PBXBuildFile section */
B615BFE80B4261E50082D535 /* HIDJoysticks.m in Sources */ = {isa = PBXBuildFile; fileRef = B615BFE60B4261E50082D535 /* HIDJoysticks.m */; };
- B61EEBA60D1A917D006FEA80 /* FuseGenerator.qlgenerator in Resources */ = {isa = PBXBuildFile; fileRef = B61EEB950D1A917D006FEA80 /* FuseGenerator.qlgenerator */; };
- B61EEBB10D1A91A9006FEA80 /* FuseGenerator.qlgenerator in CopyFiles */ = {isa = PBXBuildFile; fileRef = B61EEB950D1A917D006FEA80 /* FuseGenerator.qlgenerator */; };
B61F459309121DF100C8096C /* Fuse Help in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6F905ED05CDA24300C2F10D /* Fuse Help */; };
B61F459409121DF100C8096C /* disk_plus3.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C3F2076596C700DE7E81 /* disk_plus3.szx */; };
B61F459509121DF100C8096C /* tape_16.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C3F4076596FD00DE7E81 /* tape_16.szx */; };
@@ -240,7 +238,6 @@
dstPath = Contents/Library/QuickLook;
dstSubfolderSpec = 1;
files = (
- B61EEBB10D1A91A9006FEA80 /* FuseGenerator.qlgenerator in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1348,7 +1345,6 @@
B6CADD730C48E1A3004BA954 /* microdrive_red.png in Resources */,
B6CADD740C48E1A3004BA954 /* plus3disk_green.png in Resources */,
B6CADD750C48E1A3004BA954 /* plus3disk_red.png in Resources */,
- B61EEBA60D1A917D006FEA80 /* FuseGenerator.qlgenerator in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: trunk/fuse/fusepb/controllers/FuseController.h
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.h 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/controllers/FuseController.h 2008-02-10 20:47:11 UTC (rev 468)
@@ -206,7 +206,6 @@
-(ui_confirm_joystick_t) confirmJoystick:(libspectrum_joystick)type inputs:(int)theInputs;
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication;
-- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename;
- (void)setAcceptsMouseMovedEvents:(BOOL)flag;
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2008-02-10 20:47:11 UTC (rev 468)
@@ -59,7 +59,7 @@
static char* cocoaui_openpanel_get_filename( NSString *title, NSArray *fileTypes );
static char* cocoaui_savepanel_get_filename( NSString *title, NSArray *fileTypes );
static void cocoaui_disk_eject( specplus3_drive_number drive, int which );
-static int cocoaui_confirm( const char *message );
+int cocoaui_confirm( const char *message );
static int dockEject = 0;
static int if2Eject = 0;
@@ -1705,17 +1705,6 @@
return YES;
}
-- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
-{
- if( cocoaui_confirm( "Exit Fuse?" ) ) {
- int error = [[DisplayOpenGLView instance] checkMediaChanged];
- if( error ) return NSTerminateCancel;
-
- return NSTerminateNow;
- }
- return NSTerminateCancel;
-}
-
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
utils_file file; libspectrum_id_t type;
@@ -2124,7 +2113,7 @@
return 0;
}
-static int
+int
cocoaui_confirm( const char *message )
{
int confirm = 0;
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2008-02-10 20:47:11 UTC (rev 468)
@@ -7,7 +7,7 @@
<key>IBEditorPositions</key>
<dict>
<key>29</key>
- <string>202 691 392 44 0 0 1440 878 </string>
+ <string>201 691 392 44 0 0 1440 878 </string>
</dict>
<key>IBFramework Version</key>
<string>489.0</string>
@@ -17,6 +17,6 @@
<integer>877</integer>
</array>
<key>IBSystem Version</key>
- <string>9A581</string>
+ <string>9B18</string>
</dict>
</plist>
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.h
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.h 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.h 2008-02-10 20:47:11 UTC (rev 468)
@@ -218,6 +218,7 @@
-(void) copyGLtoQuartz;
-(void) windowWillMiniaturize:(NSNotification *)aNotification;
-(void) windowDidMiniaturize:(NSNotification *)notification;
+-(BOOL) windowShouldClose:(id)window;
-(CVReturn) displayFrame:(const CVTimeStamp *)timeStamp;
-(void) windowChangedScreen:(NSNotification*)inNotification;
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2007-12-21 02:42:46 UTC (rev 467)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-02-10 20:47:11 UTC (rev 468)
@@ -35,6 +35,7 @@
#include "fuse.h"
#include "fusepb/main.h"
#include "settings.h"
+#include "ui/cocoa/cocoaui.h"
#include "ui/cocoa/dirty.h"
const void *
@@ -1168,6 +1169,17 @@
[[self window] setOpaque:YES];
}
+-(BOOL) windowShouldClose:(id)window
+{
+ if( cocoaui_confirm( "Exit Fuse?" ) ) {
+ int error = [self checkMediaChanged];
+ if( error ) return NO;
+
+ return YES;
+ }
+ return NO;
+}
+
-(CVReturn) displayFrame:(const CVTimeStamp *)timeStamp
{
[self drawRect:NSZeroRect];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-11 12:16:45
|
Revision: 469
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=469&view=rev
Author: fredm
Date: 2008-02-11 04:16:49 -0800 (Mon, 11 Feb 2008)
Log Message:
-----------
Clear stuck shortcut keys for Command-{0,1,2,3,f,s,z,b,o,p,period}, still need
to handle Command-q (quit), Command-h (hide) and Command-m (minimise).
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/FuseController.h
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/controllers/FuseController.h
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.h 2008-02-10 20:47:11 UTC (rev 468)
+++ trunk/fuse/fusepb/controllers/FuseController.h 2008-02-11 12:16:49 UTC (rev 469)
@@ -133,6 +133,9 @@
- savePanelAccessoryView;
- (NSPopUpButton*) saveFileType;
+- (void)releaseCmdKeys:(NSString *)character:(int)keyCode;
+- (void)releaseKey:(int)keyCode;
+
- (void)ui_menu_activate_media_cartridge:(NSNumber*)active;
- (void)ui_menu_activate_media_cartridge_dock:(NSNumber*)active;
- (void)ui_menu_activate_media_cartridge_dock_eject:(NSNumber*)active;
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2008-02-10 20:47:11 UTC (rev 468)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2008-02-11 12:16:49 UTC (rev 469)
@@ -126,6 +126,13 @@
"joystick 2",
};
+#define QZ_s 0x01
+#define QZ_z 0x06
+#define QZ_b 0x0B
+#define QZ_o 0x1F
+#define QZ_p 0x23
+#define QZ_PERIOD 0x2F
+
@implementation FuseController
static FuseController *singleton = nil;
@@ -462,6 +469,7 @@
free(filename);
[[DisplayOpenGLView instance] unpause];
+ [self releaseCmdKeys:@"o":QZ_o];
}
- (IBAction)reset:(id)sender
@@ -513,11 +521,13 @@
- (IBAction)rzx_insert_snap:(id)sender
{
[[DisplayOpenGLView instance] rzxInsertSnap];
+ [self releaseCmdKeys:@"b":QZ_b];
}
- (IBAction)rzx_rollback:(id)sender
{
[[DisplayOpenGLView instance] rzxRollback];
+ [self releaseCmdKeys:@"z":QZ_z];
}
- (IBAction)rzx_start:(id)sender
@@ -615,7 +625,7 @@
filename = cocoaui_savepanel_get_filename( @"Save Snapshot As", [NSArray arrayWithObjects:@"szx", @"z80", @"sna", nil] );
- if( !filename ) { [[DisplayOpenGLView instance] unpause]; return; }
+ if( !filename ) goto save_as_exit;
[[DisplayOpenGLView instance] snapshotWrite:filename];
@@ -626,7 +636,9 @@
free( filename );
+save_as_exit:
[[DisplayOpenGLView instance] unpause];
+ [self releaseCmdKeys:@"s":QZ_s];
}
- (IBAction)open_screen:(id)sender
@@ -764,6 +776,7 @@
- (IBAction)tape_play:(id)sender
{
[[DisplayOpenGLView instance] tapeTogglePlay];
+ [self releaseCmdKeys:@"p":QZ_p];
}
- (IBAction)tape_rewind:(id)sender
@@ -849,6 +862,7 @@
preferencesController = [[PreferencesController alloc] init];
}
[preferencesController showWindow:self];
+ [self releaseCmdKeys:@".":QZ_PERIOD];
}
- (IBAction)saveFileTypeClicked:(id)sender;
@@ -895,6 +909,55 @@
[super dealloc];
}
+/*------------------------------------------------------------------------------
+ * releaseCmdKeys - This method fixes an issue when modal windows are used with
+ * the Mac OSX version of the SDL library.
+ * As the SDL normally captures all keystrokes, but we need to type in some
+ * Mac windows, all of the control menu windows run in modal mode. However,
+ * when this happens, the release of the command key and the shortcut key
+ * are not sent to SDL. We have to manually cause these events to happen
+ * to keep the SDL library in a sane state, otherwise only every other
+ * shortcut keypress will work.
+ *-----------------------------------------------------------------------------*/
+- (void) releaseCmdKeys:(NSString *)character:(int)keyCode
+{
+ NSEvent *event1, *event2;
+ NSPoint point;
+
+ event1 = [NSEvent keyEventWithType:NSKeyUp location:point modifierFlags:0
+ timestamp:nil windowNumber:0 context:nil characters:character
+ charactersIgnoringModifiers:character isARepeat:NO
+ keyCode:keyCode];
+ [NSApp postEvent:event1 atStart:NO];
+
+ event2 = [NSEvent keyEventWithType:NSFlagsChanged location:point
+ modifierFlags:0 timestamp:nil windowNumber:0 context:nil
+ characters:nil charactersIgnoringModifiers:nil isARepeat:NO
+ keyCode:0];
+ [NSApp postEvent:event2 atStart:NO];
+}
+
+/*------------------------------------------------------------------------------
+ * releaseKey - This method fixes an issue when modal windows are used with
+ * the Mac OSX version of the SDL library.
+ * As the SDL normally captures all keystrokes, but we need to type in some
+ * Mac windows, all of the control menu windows run in modal mode. However,
+ * when this happens, the release of function key which started the process
+ * is not sent to SDL. We have to manually cause these events to happen
+ * to keep the SDL library in a sane state, otherwise only everyother shortcut
+ * keypress will work.
+ *-----------------------------------------------------------------------------*/
+- (void) releaseKey:(int)keyCode
+{
+ NSEvent *event1;
+ NSPoint point;
+
+ event1 = [NSEvent keyEventWithType:NSKeyUp location:point modifierFlags:0
+ timestamp:nil windowNumber:0 context:nil characters:@" "
+ charactersIgnoringModifiers:@" " isARepeat:NO keyCode:keyCode];
+ [NSApp postEvent:event1 atStart:NO];
+}
+
- (void)ui_menu_activate_media_cartridge:(NSNumber*)active
{
[cart setEnabled:[active boolValue]];
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-02-10 20:47:11 UTC (rev 468)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-02-11 12:16:49 UTC (rev 469)
@@ -38,6 +38,12 @@
#include "ui/cocoa/cocoaui.h"
#include "ui/cocoa/dirty.h"
+#define QZ_f 0x03
+#define QZ_0 0x1D
+#define QZ_1 0x12
+#define QZ_2 0x13
+#define QZ_3 0x14
+
const void *
get_byte_pointer(void *bitmap)
{
@@ -106,6 +112,7 @@
[view_lock lock];
statusbar_updated = YES;
[view_lock unlock];
+ [[FuseController singleton] releaseCmdKeys:@"f":QZ_f];
}
-(IBAction) zoom:(id)sender
@@ -116,19 +123,23 @@
case 1: /* 320x240 */
size.width = 320;
size.height = 240;
+ [[FuseController singleton] releaseCmdKeys:@"1":QZ_1];
break;
case 2: /* 640x480 */
size.width = 640;
size.height = 480;
+ [[FuseController singleton] releaseCmdKeys:@"2":QZ_2];
break;
case 3: /* 960x720 */
size.width = 960;
size.height = 720;
+ [[FuseController singleton] releaseCmdKeys:@"3":QZ_3];
break;
case 0:
default: /* Actual size */
size.width = screenTex[0].image_width;
size.height = screenTex[0].image_height;
+ [[FuseController singleton] releaseCmdKeys:@"0":QZ_0];
}
[[self window] setContentSize:size];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-13 12:54:48
|
Revision: 470
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=470&view=rev
Author: fredm
Date: 2008-02-13 04:54:53 -0800 (Wed, 13 Feb 2008)
Log Message:
-----------
Fix the blocked keyboard from Command-q (quit), Command-h (hide) and Command-m
(minimise) (fixes bug #1842577).
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/FuseController.h
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/controllers/FuseController.h
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.h 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/controllers/FuseController.h 2008-02-13 12:54:53 UTC (rev 470)
@@ -119,6 +119,10 @@
- (IBAction)tape_write:(id)sender;
- (IBAction)tape_record:(id)sender;
+- (IBAction)quit:(id)sender;
+- (IBAction)hide:(id)sender;
+- (IBAction)help:(id)sender;
+
- (IBAction)showRollbackPane:(id)sender;
- (IBAction)showTapeBrowserPane:(id)sender;
- (IBAction)showKeyboardPane:(id)sender;
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2008-02-13 12:54:53 UTC (rev 470)
@@ -127,10 +127,13 @@
};
#define QZ_s 0x01
+#define QZ_h 0x04
#define QZ_z 0x06
#define QZ_b 0x0B
+#define QZ_q 0x0C
#define QZ_o 0x1F
#define QZ_p 0x23
+#define QZ_SLASH 0x2C
#define QZ_PERIOD 0x2F
@implementation FuseController
@@ -794,6 +797,24 @@
[[DisplayOpenGLView instance] tapeToggleRecord];
}
+- (IBAction)quit:(id)sender
+{
+ [[NSApp keyWindow] performClose:self];
+ [self releaseCmdKeys:@"q":QZ_q];
+}
+
+- (IBAction)hide:(id)sender
+{
+ [NSApp hide:self];
+ [self releaseCmdKeys:@"h":QZ_h];
+}
+
+- (IBAction)help:(id)sender
+{
+ [NSApp showHelp:self];
+ [self releaseCmdKeys:@"?":QZ_SLASH];
+}
+
- (IBAction)cocoa_break:(id)sender
{
[[DisplayOpenGLView instance] cocoaBreak];
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib 2008-02-13 12:54:53 UTC (rev 470)
@@ -28,6 +28,8 @@
"export_screen" = id;
fullscreen = id;
"hard_reset" = id;
+ help = id;
+ hide = id;
"ide_commit" = id;
"ide_eject" = id;
"ide_insert" = id;
@@ -47,6 +49,7 @@
"profiler_stop" = id;
"psg_start" = id;
"psg_stop" = id;
+ quit = id;
reset = id;
resetUserDefaults = id;
"rzx_insert_snap" = id;
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2008-02-13 12:54:53 UTC (rev 470)
@@ -13,10 +13,10 @@
<string>489.0</string>
<key>IBOpenObjects</key>
<array>
+ <integer>877</integer>
<integer>29</integer>
- <integer>877</integer>
</array>
<key>IBSystem Version</key>
- <string>9B18</string>
+ <string>9C31</string>
</dict>
</plist>
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.h
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.h 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.h 2008-02-13 12:54:53 UTC (rev 470)
@@ -222,6 +222,7 @@
-(CVReturn) displayFrame:(const CVTimeStamp *)timeStamp;
-(void) windowChangedScreen:(NSNotification*)inNotification;
+-(void) windowDidDeminiaturize:(NSNotification *)inNotification;
-(void) displayLinkStop;
-(void) displayLinkStart;
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-02-11 12:16:49 UTC (rev 469)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-02-13 12:54:53 UTC (rev 470)
@@ -43,6 +43,7 @@
#define QZ_1 0x12
#define QZ_2 0x13
#define QZ_3 0x14
+#define QZ_m 0x2E
const void *
get_byte_pointer(void *bitmap)
@@ -1210,6 +1211,11 @@
}
}
+-(void) windowDidDeminiaturize:(NSNotification *)inNotification
+{
+ [[FuseController singleton] releaseCmdKeys:@"m":QZ_m];
+}
+
-(void) displayLinkStop
{
if( displayLinkRunning == YES ) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-18 08:45:02
|
Revision: 487
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=487&view=rev
Author: fredm
Date: 2008-02-18 00:45:07 -0800 (Mon, 18 Feb 2008)
Log Message:
-----------
Don't use standard Fuse menu.c, move only function we use
(menu_select_roms_with_title) to FuseMenus.m.
Modified Paths:
--------------
trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
trunk/fuse/fusepb/FuseMenus.m
Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj
===================================================================
--- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-02-18 07:33:15 UTC (rev 486)
+++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2008-02-18 08:45:07 UTC (rev 487)
@@ -191,7 +191,6 @@
B6A6F1060B3D60D0000B88E9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F520C8BC038D022E01A804BA /* OpenGL.framework */; };
B6A6F10E0B3D6360000B88E9 /* cocoaerror.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A6F10D0B3D6360000B88E9 /* cocoaerror.m */; };
B6A6F1200B3EA737000B88E9 /* cocoascreenshot.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A6F11E0B3EA737000B88E9 /* cocoascreenshot.m */; };
- B6AB34900C3BC91A0005935E /* menu.c in Sources */ = {isa = PBXBuildFile; fileRef = B6AB348E0C3BC91A0005935E /* menu.c */; };
B6B076B30B59FE9A00D4F95C /* Emulator.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B076B10B59FE9A00D4F95C /* Emulator.m */; };
B6B99F8A0B5F798700EE408F /* cocoadisplay.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B99F890B5F798700EE408F /* cocoadisplay.m */; };
B6CA27A70C2CDBC500F06FB3 /* dirty.c in Sources */ = {isa = PBXBuildFile; fileRef = B6CA27A50C2CDBC500F06FB3 /* dirty.c */; };
@@ -428,7 +427,6 @@
B6A7F0E904C9A11D001025EB /* NumberFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NumberFormatter.h; sourceTree = "<group>"; };
B6A7F0EA04C9A11D001025EB /* NumberFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NumberFormatter.m; sourceTree = "<group>"; };
B6AA8A3C03D2FC1C00FED55D /* trdos.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = trdos.rom; path = ../roms/trdos.rom; sourceTree = SOURCE_ROOT; };
- B6AB348E0C3BC91A0005935E /* menu.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = menu.c; sourceTree = "<group>"; };
B6AB348F0C3BC91A0005935E /* menu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = menu.h; sourceTree = "<group>"; };
B6AB429D0677466E007C50EF /* ula.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ula.c; path = ../ula.c; sourceTree = SOURCE_ROOT; };
B6AB429E0677466E007C50EF /* ula.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ula.h; path = ../ula.h; sourceTree = SOURCE_ROOT; };
@@ -1168,7 +1166,6 @@
B6403FD70A7E4B1A00E00B11 /* loader.h */,
B60B11F7059BC7E70048B64B /* machine.c */,
F55985EA038922ED01A804BA /* machine.h */,
- B6AB348E0C3BC91A0005935E /* menu.c */,
B6AB348F0C3BC91A0005935E /* menu.h */,
B68CB2CC03DD923C00A804BA /* memory.c */,
B6CA2A210C33F8490003CF90 /* module.c */,
@@ -1471,7 +1468,6 @@
B6CA27A70C2CDBC500F06FB3 /* dirty.c in Sources */,
B6CA2A230C33F84A0003CF90 /* module.c in Sources */,
B6CA2A2E0C33F8C10003CF90 /* plusd.c in Sources */,
- B6AB34900C3BC91A0005935E /* menu.c in Sources */,
B6CADD580C47AD90004BA954 /* Texture.m in Sources */,
B63225EC0C66BA1300BB081B /* osname.c in Sources */,
B63225EE0C66BA3700BB081B /* paths.c in Sources */,
Modified: trunk/fuse/fusepb/FuseMenus.m
===================================================================
--- trunk/fuse/fusepb/FuseMenus.m 2008-02-18 07:33:15 UTC (rev 486)
+++ trunk/fuse/fusepb/FuseMenus.m 2008-02-18 08:45:07 UTC (rev 487)
@@ -31,7 +31,93 @@
#import "FuseController.h"
#import "FuseMenus.h"
+#include "divide.h"
+#include "if1.h"
+#include "menu.h"
+#include "settings.h"
+#include "simpleide.h"
+#include "tape.h"
+#include "zxatasp.h"
+#include "zxcf.h"
+
void SetEmulationHz( float hz )
{
[[Emulator instance] setEmulationHz:hz];
}
+
+int
+menu_check_media_changed( void )
+{
+ int confirm, i;
+
+ confirm = tape_close(); if( confirm ) return 1;
+
+#ifdef HAVE_765_H
+
+ confirm = specplus3_disk_eject( SPECPLUS3_DRIVE_A, 0 );
+ if( confirm ) return 1;
+
+ confirm = specplus3_disk_eject( SPECPLUS3_DRIVE_B, 0 );
+ if( confirm ) return 1;
+
+#endif /* #ifdef HAVE_765_H */
+
+ confirm = beta_disk_eject( BETA_DRIVE_A, 0 );
+ if( confirm ) return 1;
+
+ confirm = beta_disk_eject( BETA_DRIVE_B, 0 );
+ if( confirm ) return 1;
+
+ confirm = beta_disk_eject( BETA_DRIVE_C, 0 );
+ if( confirm ) return 1;
+
+ confirm = beta_disk_eject( BETA_DRIVE_D, 0 );
+ if( confirm ) return 1;
+
+ confirm = plusd_disk_eject( PLUSD_DRIVE_1, 0 );
+ if( confirm ) return 1;
+
+ confirm = plusd_disk_eject( PLUSD_DRIVE_2, 0 );
+ if( confirm ) return 1;
+
+ for( i = 0; i < 8; i++ ) {
+ confirm = if1_mdr_eject( i, 0 );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.simpleide_master_file ) {
+ confirm = simpleide_eject( LIBSPECTRUM_IDE_MASTER );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.simpleide_slave_file ) {
+ confirm = simpleide_eject( LIBSPECTRUM_IDE_SLAVE );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.zxatasp_master_file ) {
+ confirm = zxatasp_eject( LIBSPECTRUM_IDE_MASTER );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.zxatasp_slave_file ) {
+ confirm = zxatasp_eject( LIBSPECTRUM_IDE_SLAVE );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.zxcf_pri_file ) {
+ confirm = zxcf_eject(); if( confirm ) return 1;
+ }
+
+ if( settings_current.divide_master_file ) {
+ confirm = divide_eject( LIBSPECTRUM_IDE_MASTER );
+ if( confirm ) return 1;
+ }
+
+ if( settings_current.divide_slave_file ) {
+ confirm = divide_eject( LIBSPECTRUM_IDE_SLAVE );
+ if( confirm ) return 1;
+ }
+
+ return 0;
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-03-27 12:05:19
|
Revision: 495
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=495&view=rev
Author: fredm
Date: 2008-03-27 05:04:48 -0700 (Thu, 27 Mar 2008)
Log Message:
-----------
Add +D and Beta disk write protect support. Fix Microdrive cartridge menus.
Add command key release for keyboard joystick binding shortcut.
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/FuseController.h
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/models/Emulator.h
trunk/fuse/fusepb/models/Emulator.m
trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
trunk/fuse/fusepb/views/DisplayOpenGLView.h
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/controllers/FuseController.h
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.h 2008-03-27 12:03:43 UTC (rev 494)
+++ trunk/fuse/fusepb/controllers/FuseController.h 2008-03-27 12:04:48 UTC (rev 495)
@@ -42,11 +42,23 @@
IBOutlet NSMenuItem *cart;
IBOutlet NSMenuItem *dock;
IBOutlet NSMenuItem *if1;
+ IBOutlet NSMenuItem *if1Wp1;
+ IBOutlet NSMenuItem *if1Wp2;
+ IBOutlet NSMenuItem *if1Wp3;
+ IBOutlet NSMenuItem *if1Wp4;
+ IBOutlet NSMenuItem *if1Wp5;
+ IBOutlet NSMenuItem *if1Wp6;
+ IBOutlet NSMenuItem *if1Wp7;
+ IBOutlet NSMenuItem *if1Wp8;
IBOutlet NSMenuItem *if2;
IBOutlet NSMenuItem *disk;
IBOutlet NSMenuItem *diskPlus3;
IBOutlet NSMenuItem *diskTrDos;
+ IBOutlet NSMenuItem *diskTrDosWpA;
+ IBOutlet NSMenuItem *diskTrDosWpB;
IBOutlet NSMenuItem *diskPlusD;
+ IBOutlet NSMenuItem *diskPlusDWpA;
+ IBOutlet NSMenuItem *diskPlusDWpB;
IBOutlet NSMenuItem *ide;
IBOutlet NSMenuItem *divide;
IBOutlet NSMenuItem *simple8Bit;
@@ -78,6 +90,8 @@
- (IBAction)disk_eject_write_b:(id)sender;
- (IBAction)disk_open_a:(id)sender;
- (IBAction)disk_open_b:(id)sender;
+- (IBAction)disk_write_protect_a:(id)sender;
+- (IBAction)disk_write_protect_b:(id)sender;
- (IBAction)dock_eject:(id)sender;
- (IBAction)dock_open:(id)sender;
- (IBAction)export_screen:(id)sender;
@@ -156,7 +170,9 @@
- (void)ui_menu_activate_media_disk_beta_b_wp_set:(NSNumber*)active;
- (void)ui_menu_activate_media_disk_plusd:(NSNumber*)active;
- (void)ui_menu_activate_media_disk_plusd_a_eject:(NSNumber*)active;
+- (void)ui_menu_activate_media_plusd_a_wp_set:(NSNumber*)active;
- (void)ui_menu_activate_media_disk_plusd_b_eject:(NSNumber*)active;
+- (void)ui_menu_activate_media_plusd_b_wp_set:(NSNumber*)active;
- (void)ui_menu_activate_media_if1:(NSNumber*)active;
- (void)ui_menu_activate_media_if1_m1_eject:(NSNumber*)active;
- (void)ui_menu_activate_media_if1_m1_wp_set:(NSNumber*)active;
Modified: trunk/fuse/fusepb/controllers/FuseController.m
===================================================================
--- trunk/fuse/fusepb/controllers/FuseController.m 2008-03-27 12:03:43 UTC (rev 494)
+++ trunk/fuse/fusepb/controllers/FuseController.m 2008-03-27 12:04:48 UTC (rev 495)
@@ -59,7 +59,8 @@
static char* cocoaui_openpanel_get_filename( NSString *title, NSArray *fileTypes );
static char* cocoaui_savepanel_get_filename( NSString *title, NSArray *fileTypes );
-static void cocoaui_disk_eject( specplus3_drive_number drive, int which );
+static void cocoaui_disk_eject( specplus3_drive_number drive, int write );
+static void cocoaui_disk_write_protect( specplus3_drive_number drive, int wrprot );
static void cocoaui_mdr_eject( int drive, int which );
int cocoaui_confirm( const char *message );
@@ -68,9 +69,7 @@
static int diskPlus3EjectA = 0;
static int diskPlus3EjectB = 0;
static int diskTrdosEjectA = 0;
-static int diskTrdosWpSetA = 0;
static int diskTrdosEjectB = 0;
-static int diskTrdosWpSetB = 0;
static int diskPlusDEjectA = 0;
static int diskPlusDEjectB = 0;
static int record = 1;
@@ -90,21 +89,13 @@
static int ideZxataspEjectSlave = 0;
static int ideZxcfEject = 0;
static int if1M1Eject = 0;
-static int if1M1WpSet = 0;
static int if1M2Eject = 0;
-static int if1M2WpSet = 0;
static int if1M3Eject = 0;
-static int if1M3WpSet = 0;
static int if1M4Eject = 0;
-static int if1M4WpSet = 0;
static int if1M5Eject = 0;
-static int if1M5WpSet = 0;
static int if1M6Eject = 0;
-static int if1M6WpSet = 0;
static int if1M7Eject = 0;
-static int if1M7WpSet = 0;
static int if1M8Eject = 0;
-static int if1M8WpSet = 0;
static int profileStart = 1;
static int profileStop = 0;
static int playTape = 1;
@@ -137,10 +128,27 @@
#define QZ_q 0x0C
#define QZ_o 0x1F
#define QZ_p 0x23
+#define QZ_j 0x26
#define QZ_k 0x28
#define QZ_SLASH 0x2C
#define QZ_PERIOD 0x2F
+static int
+get_microdrive_no( int tag ) {
+ switch( tag ) {
+ case 30: case 31: case 32: case 33: case 34: return 0; break;
+ case 80: case 81: case 82: case 83: case 84: return 1; break;
+ case 90: case 91: case 92: case 93: case 94: return 2; break;
+ case 100: case 101: case 102: case 103: case 104: return 3; break;
+ case 110: case 111: case 112: case 113: case 114: return 4; break;
+ case 120: case 121: case 122: case 123: case 124: return 5; break;
+ case 130: case 131: case 132: case 133: case 134: return 6; break;
+ case 140: case 141: case 142: case 143: case 144: return 7; break;
+ }
+
+ return 0;
+}
+
@implementation FuseController
static FuseController *singleton = nil;
@@ -246,6 +254,11 @@
cocoaui_disk_eject( SPECPLUS3_DRIVE_A, 1 );
}
+- (IBAction)disk_write_protect_a:(id)sender
+{
+ cocoaui_disk_write_protect( SPECPLUS3_DRIVE_A, [sender state] == NSOffState );
+}
+
- (IBAction)disk_eject_b:(id)sender
{
cocoaui_disk_eject( SPECPLUS3_DRIVE_B, 0 );
@@ -256,6 +269,11 @@
cocoaui_disk_eject( SPECPLUS3_DRIVE_B, 1 );
}
+- (IBAction)disk_write_protect_b:(id)sender
+{
+ cocoaui_disk_write_protect( SPECPLUS3_DRIVE_B, [sender isEnabled] );
+}
+
- (IBAction)disk_open_a:(id)sender
{
[self openDisk:SPECPLUS3_DRIVE_A];
@@ -391,7 +409,7 @@
- (IBAction)mdr_insert_new:(id)sender
{
- [[DisplayOpenGLView instance] if1MdrNew:[sender tag] - 30];
+ [[DisplayOpenGLView instance] if1MdrNew:get_microdrive_no( [sender tag] )];
}
- (IBAction)mdr_insert:(id)sender
@@ -403,7 +421,8 @@
filename = cocoaui_openpanel_get_filename( @"Insert microdrive disk file", mdrFileTypes );
if( !filename ) { [[DisplayOpenGLView instance] unpause]; return; }
- [[DisplayOpenGLView instance] if1MdrInsert:filename inDrive:[sender tag] - 30];
+ [[DisplayOpenGLView instance] if1MdrInsert:filename
+ inDrive:get_microdrive_no( [sender tag] )];
[self addRecentSnapshot:filename];
@@ -414,19 +433,20 @@
- (IBAction)mdr_eject:(id)sender
{
- cocoaui_mdr_eject( [sender tag] - 30, 0 );
+ cocoaui_mdr_eject( get_microdrive_no( [sender tag] ), 0 );
}
- (IBAction)mdr_eject_write:(id)sender
{
- cocoaui_mdr_eject( [sender tag] - 30, 1 );
+ cocoaui_mdr_eject( get_microdrive_no( [sender tag] ), 1 );
}
- (IBAction)mdr_writep:(id)sender
{
- int no = [sender tag] - 30;
+ int no = get_microdrive_no( [sender tag] );
- [[DisplayOpenGLView instance] if1MdrWriteProtect:no & 0xf0 inDrive:( no & 0x0f )];
+ [[DisplayOpenGLView instance] if1MdrWriteProtect:[sender state] == NSOffState
+ inDrive:no];
}
- (IBAction)open:(id)sender
@@ -728,6 +748,7 @@
- (IBAction)joystick_keyboard:(id)sender
{
[[DisplayOpenGLView instance] joystickToggleKeyboard];
+ [self releaseCmdKeys:@"j":QZ_j];
}
- (IBAction)tape_clear:(id)sender
@@ -1021,7 +1042,7 @@
- (void)ui_menu_activate_media_disk_beta_a_wp_set:(NSNumber*)active
{
- diskTrdosWpSetA = [active boolValue];
+ [diskTrDosWpA setState:[active boolValue] == YES ? NSOffState : NSOnState];
}
- (void)ui_menu_activate_media_disk_beta_b_eject:(NSNumber*)active
@@ -1031,7 +1052,7 @@
- (void)ui_menu_activate_media_disk_beta_b_wp_set:(NSNumber*)active
{
- diskTrdosWpSetB = [active boolValue];
+ [diskTrDosWpB setState:[active boolValue] == YES ? NSOffState : NSOnState];
}
- (void)ui_menu_activate_media_disk_plusd:(NSNumber*)active
@@ -1044,11 +1065,21 @@
diskPlusDEjectA = [active boolValue];
}
+- (void)ui_menu_activate_media_plusd_a_wp_set:(NSNumber*)active
+{
+ [diskPlusDWpA setState:[active boolValue] == YES ? NSOffState : NSOnState];
+}
+
- (void)ui_menu_activate_media_disk_plusd_b_eject:(NSNumber*)active
{
diskPlusDEjectB = [active boolValue];
}
+- (void)ui_menu_activate_media_plusd_b_wp_set:(NSNumber*)active
+{
+ [diskPlusDWpB setState:[active boolValue] == YES ? NSOffState : NSOnState];
+}
+
- (void)ui_menu_activate_media_ide:(NSNumber*)active
{
[ide setEnabled:[active boolValue]];
@@ -1121,7 +1152,7 @@
- (void)ui_menu_activate_media_if1_m1_wp_set:(NSNumber*)active
{
- if1M1WpSet = [active boolValue];
+ [if1Wp1 setState:[active boolValue] == YES ? NSOffState : NSOnState];
}
- (void)ui_menu_activate_media_if1_m2_eject:(NSNumber*)active
@@ -1131,7 +1162,7 @@
- (void)ui_menu_activate_media_if1_m2_wp_set:(NSNumber*)active
{
- if1M2WpSet = [active boolValue];
+ [if1Wp2 setState:[active boolValue] == YES ? NSOffState : NSOnState];
}
- (void)ui_menu_activate_media_if1_m3_eject:(NSNumber*)active
@@ -1141,7 +1172,7 @@
- (void)ui_menu_activate_media_if1_m3_wp_set:(NSNumber*)active
{
- if1M3WpSet = [active boolValue];
+ [if1Wp3 setState:[active boolValue] == YES ? NSOffState : NSOnState];
}
- (void)ui_menu_activate_media_if1_m4_eject:(NSNumber*)active
@@ -1151,7 +1182,7 @@
- (void)ui_menu_activate_media_if1_m4_wp_set:(NSNumber*)active
{
- if1M4WpSet = [active boolValue];
+ [if1Wp4 setState:[active boolValue] == YES ? NSOffState : NSOnState];
}
- (void)ui_menu_activate_media_if1_m5_eject:(NSNumber*)active
@@ -1161,7 +1192,7 @@
- (void)ui_menu_activate_media_if1_m5_wp_set:(NSNumber*)active
{
- if1M5WpSet = [active boolValue];
+ [if1Wp5 setState:[active boolValue] == YES ? NSOffState : NSOnState];
}
- (void)ui_menu_activate_media_if1_m6_eject:(NSNumber*)active
@@ -1171,7 +1202,7 @@
- (void)ui_menu_activate_media_if1_m6_wp_set:(NSNumber*)active
{
- if1M6WpSet = [active boolValue];
+ [if1Wp6 setState:[active boolValue] == YES ? NSOffState : NSOnState];
}
- (void)ui_menu_activate_media_if1_m7_eject:(NSNumber*)active
@@ -1179,6 +1210,11 @@
if1M7Eject = [active boolValue];
}
+- (void)ui_menu_activate_media_if1_m7_wp_set:(NSNumber*)active
+{
+ [if1Wp7 setState:[active boolValue] == YES ? NSOffState : NSOnState];
+}
+
- (void)ui_menu_activate_media_if1_m8_eject:(NSNumber*)active
{
if1M8Eject = [active boolValue];
@@ -1186,14 +1222,9 @@
- (void)ui_menu_activate_media_if1_m8_wp_set:(NSNumber*)active
{
- if1M8WpSet = [active boolValue];
+ [if1Wp8 setState:[active boolValue] == YES ? NSOffState : NSOnState];
}
-- (void)ui_menu_activate_media_if1_m7_wp_set:(NSNumber*)active
-{
- if1M7WpSet = [active boolValue];
-}
-
- (void)ui_menu_activate_recording:(NSNumber*)active
{
record = recordFromSnapshot = play = ![active boolValue];
@@ -1246,18 +1277,22 @@
break;
case 13:
case 14:
+ case 27:
return diskTrdosEjectA == 0 ? NO : YES;
break;
case 15:
case 16:
+ case 26:
return diskTrdosEjectB == 0 ? NO : YES;
break;
case 20:
case 21:
+ case 24:
return diskPlusDEjectA == 0 ? NO : YES;
break;
case 22:
case 23:
+ case 25:
return diskPlusDEjectB == 0 ? NO : YES;
break;
case 6:
@@ -1325,6 +1360,46 @@
case 76:
return playTape == 0 ? NO : YES;
break;
+ case 32:
+ case 33:
+ case 34:
+ return if1M1Eject == 0 ? NO : YES;
+ break;
+ case 82:
+ case 83:
+ case 84:
+ return if1M2Eject == 0 ? NO : YES;
+ break;
+ case 92:
+ case 93:
+ case 94:
+ return if1M3Eject == 0 ? NO : YES;
+ break;
+ case 102:
+ case 103:
+ case 104:
+ return if1M4Eject == 0 ? NO : YES;
+ break;
+ case 112:
+ case 113:
+ case 114:
+ return if1M5Eject == 0 ? NO : YES;
+ break;
+ case 122:
+ case 123:
+ case 124:
+ return if1M6Eject == 0 ? NO : YES;
+ break;
+ case 132:
+ case 133:
+ case 134:
+ return if1M7Eject == 0 ? NO : YES;
+ break;
+ case 142:
+ case 143:
+ case 144:
+ return if1M8Eject == 0 ? NO : YES;
+ break;
default:
return YES;
}
@@ -1967,6 +2042,20 @@
}
static void
+cocoaui_disk_write_protect( specplus3_drive_number drive, int wrprot )
+{
+ [[DisplayOpenGLView instance] pause];
+ if( machine_current->machine == LIBSPECTRUM_MACHINE_PLUS3 ) {
+ //[[DisplayOpenGLView instance] specplus3DiskWriteProtect:drive protect:wrprot];
+ } else if( beta_active ) {
+ [[DisplayOpenGLView instance] betaDiskWriteProtect:drive protect:wrprot];
+ } else {
+ [[DisplayOpenGLView instance] plusdDiskWriteProtect:drive protect:wrprot];
+ }
+ [[DisplayOpenGLView instance] unpause];
+}
+
+static void
cocoaui_mdr_eject( int drive, int write )
{
[[DisplayOpenGLView instance] pause];
@@ -2075,10 +2164,18 @@
method = @selector(ui_menu_activate_media_disk_plusd_a_eject:);
break;
+ case UI_MENU_ITEM_MEDIA_DISK_PLUSD_1_WP_SET:
+ method = @selector(ui_menu_activate_media_plusd_a_wp_set:);
+ break;
+
case UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_EJECT:
method = @selector(ui_menu_activate_media_disk_plusd_b_eject:);
break;
+ case UI_MENU_ITEM_MEDIA_DISK_PLUSD_2_WP_SET:
+ method = @selector(ui_menu_activate_media_plusd_b_wp_set:);
+ break;
+
case UI_MENU_ITEM_RECORDING:
method = @selector(ui_menu_activate_recording:);
break;
Modified: trunk/fuse/fusepb/models/Emulator.h
===================================================================
--- trunk/fuse/fusepb/models/Emulator.h 2008-03-27 12:03:43 UTC (rev 494)
+++ trunk/fuse/fusepb/models/Emulator.h 2008-03-27 12:04:48 UTC (rev 495)
@@ -96,10 +96,12 @@
-(void) betaDiskInsert:(const char *)filename inDrive:(beta_drive_number)which;
-(void) betaDiskEject:(beta_drive_number)drive saveFirst:(int)write;
-(void) betaDiskWrite:(const char *)filename inDrive:(beta_drive_number)which;
+-(void) betaDiskWriteProtect:(beta_drive_number)which protect:(int)write;
-(void) plusdDiskInsert:(const char *)filename inDrive:(plusd_drive_number)which;
-(void) plusdDiskEject:(plusd_drive_number)drive saveFirst:(int)write;
-(void) plusdDiskWrite:(const char *)filename inDrive:(plusd_drive_number)which;
+-(void) plusdDiskWriteProtect:(plusd_drive_number)which protect:(int)write;
-(void) snapshotWrite:(const char *)filename;
Modified: trunk/fuse/fusepb/models/Emulator.m
===================================================================
--- trunk/fuse/fusepb/models/Emulator.m 2008-03-27 12:03:43 UTC (rev 494)
+++ trunk/fuse/fusepb/models/Emulator.m 2008-03-27 12:04:48 UTC (rev 495)
@@ -321,6 +321,11 @@
beta_disk_write( which, filename );
}
+-(void) betaDiskWriteProtect:(beta_drive_number)which protect:(int)write
+{
+ beta_disk_writeprotect( which, write );
+}
+
-(void) plusdDiskInsert:(const char *)filename inDrive:(plusd_drive_number)which
{
plusd_disk_insert( which, filename, 0 );
@@ -336,6 +341,11 @@
plusd_disk_write( which, filename );
}
+-(void) plusdDiskWriteProtect:(plusd_drive_number)which protect:(int)write
+{
+ plusd_disk_writeprotect( which, write );
+}
+
-(void) snapshotWrite:(const char *)filename
{
snapshot_write( filename );
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib 2008-03-27 12:03:43 UTC (rev 494)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/classes.nib 2008-03-27 12:04:48 UTC (rev 495)
@@ -23,6 +23,8 @@
"disk_eject_write_b" = id;
"disk_open_a" = id;
"disk_open_b" = id;
+ "disk_write_protect_a" = id;
+ "disk_write_protect_b" = id;
"dock_eject" = id;
"dock_open" = id;
"export_screen" = id;
@@ -84,11 +86,23 @@
disk = NSMenuItem;
diskPlus3 = NSMenuItem;
diskPlusD = NSMenuItem;
+ diskPlusDWpA = NSMenuItem;
+ diskPlusDWpB = NSMenuItem;
diskTrDos = NSMenuItem;
+ diskTrDosWpA = NSMenuItem;
+ diskTrDosWpB = NSMenuItem;
divide = NSMenuItem;
dock = NSMenuItem;
ide = NSMenuItem;
if1 = NSMenuItem;
+ if1Wp1 = NSMenuItem;
+ if1Wp2 = NSMenuItem;
+ if1Wp3 = NSMenuItem;
+ if1Wp4 = NSMenuItem;
+ if1Wp5 = NSMenuItem;
+ if1Wp6 = NSMenuItem;
+ if1Wp7 = NSMenuItem;
+ if1Wp8 = NSMenuItem;
if2 = NSMenuItem;
recentSnaps = NSMenu;
saveFileType = NSPopUpButton;
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2008-03-27 12:03:43 UTC (rev 494)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2008-03-27 12:04:48 UTC (rev 495)
@@ -13,8 +13,8 @@
<string>489.0</string>
<key>IBOpenObjects</key>
<array>
+ <integer>877</integer>
<integer>29</integer>
- <integer>877</integer>
</array>
<key>IBSystem Version</key>
<string>9C7010</string>
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.h
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.h 2008-03-27 12:03:43 UTC (rev 494)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.h 2008-03-27 12:04:48 UTC (rev 495)
@@ -126,10 +126,12 @@
-(void) betaDiskInsert:(const char *)filename inDrive:(beta_drive_number)which;
-(void) betaDiskEject:(beta_drive_number)drive saveFirst:(int)write;
-(void) betaDiskWrite:(const char *)filename inDrive:(beta_drive_number)which;
+-(void) betaDiskWriteProtect:(beta_drive_number)which protect:(int)write;
-(void) plusdDiskInsert:(const char *)filename inDrive:(plusd_drive_number)which;
-(void) plusdDiskEject:(plusd_drive_number)drive saveFirst:(int)write;
-(void) plusdDiskWrite:(const char *)filename inDrive:(plusd_drive_number)which;
+-(void) plusdDiskWriteProtect:(plusd_drive_number)which protect:(int)write;
-(void) snapshotWrite:(const char *)filename;
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-03-27 12:03:43 UTC (rev 494)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-03-27 12:04:48 UTC (rev 495)
@@ -743,6 +743,11 @@
[proxy_emulator betaDiskWrite:filename inDrive:which];
}
+-(void) betaDiskWriteProtect:(beta_drive_number)which protect:(int)write
+{
+ [proxy_emulator betaDiskWriteProtect:which protect:write];
+}
+
-(void) plusdDiskInsert:(const char *)filename inDrive:(plusd_drive_number)which
{
[proxy_emulator plusdDiskInsert:filename inDrive:which];
@@ -758,6 +763,11 @@
[proxy_emulator plusdDiskWrite:filename inDrive:which];
}
+-(void) plusdDiskWriteProtect:(plusd_drive_number)which protect:(int)write
+{
+ [proxy_emulator plusdDiskWriteProtect:which protect:write];
+}
+
-(void) snapshotWrite:(const char *)filename
{
[proxy_emulator snapshotWrite:filename];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-03-28 13:00:55
|
Revision: 496
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=496&view=rev
Author: fredm
Date: 2008-03-28 06:01:00 -0700 (Fri, 28 Mar 2008)
Log Message:
-----------
Move version to Fuse for Mac OS X 0.9.0.
Modified Paths:
--------------
trunk/fuse/fusepb/English.lproj/InfoPlist.strings
trunk/fuse/fusepb/Info-Fuse.plist
trunk/fuse/fusepb/config.h
trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html
Modified: trunk/fuse/fusepb/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/Info-Fuse.plist
===================================================================
--- trunk/fuse/fusepb/Info-Fuse.plist 2008-03-27 12:04:48 UTC (rev 495)
+++ trunk/fuse/fusepb/Info-Fuse.plist 2008-03-28 13:01:00 UTC (rev 496)
@@ -476,7 +476,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>20070611</string>
+ <string>0.9.0</string>
<key>CFBundleSignature</key>
<string>FUSE</string>
<key>CFBundleVersion</key>
Modified: trunk/fuse/fusepb/config.h
===================================================================
--- trunk/fuse/fusepb/config.h 2008-03-27 12:04:48 UTC (rev 495)
+++ trunk/fuse/fusepb/config.h 2008-03-28 13:01:00 UTC (rev 496)
@@ -152,7 +152,7 @@
/* #undef USE_WIDGET */
/* Version number of package */
-#define VERSION "0.8.0.1"
+#define VERSION "0.9.0"
/* Define to 1 if your processor stores words with the most significant byte
first (like Motorola and SPARC, unlike Intel and VAX). */
Modified: trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html
===================================================================
--- trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2008-03-27 12:04:48 UTC (rev 495)
+++ trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html 2008-03-28 13:01:00 UTC (rev 496)
@@ -14,7 +14,7 @@
name="What's New In Fuse?" id="What's New In Fuse?"></a><!-- AppleSegDescription="This section describes the changes for version 0.8.0 of the Fuse emulator." --></font>
<div class="refsect1" xml:lang="en" lang="en">
<h2><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse
-For Mac OS X 20080217</font></h2>
+For Mac OS X 0.9.0</font></h2>
<ul>
<li><font face="Lucida Grande,Helvetica,Arial">New
features:</font></li>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-03-29 03:20:02
|
Revision: 500
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=500&view=rev
Author: fredm
Date: 2008-03-28 20:19:57 -0700 (Fri, 28 Mar 2008)
Log Message:
-----------
Add preferences support for Beta 128 interface.
Modified Paths:
--------------
trunk/fuse/fusepb/controllers/PreferencesController.m
trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib
Modified: trunk/fuse/fusepb/controllers/PreferencesController.m
===================================================================
--- trunk/fuse/fusepb/controllers/PreferencesController.m 2008-03-29 03:18:36 UTC (rev 499)
+++ trunk/fuse/fusepb/controllers/PreferencesController.m 2008-03-29 03:19:57 UTC (rev 500)
@@ -351,6 +351,9 @@
case 6: // PlusD
settings_current.plusd = 1;
break;
+ case 7: // Beta 128
+ settings_current.beta128 = 1;
+ break;
default: // WTF?
break;
}
@@ -378,6 +381,8 @@
value = 5;
} else if ( settings_current.plusd ) {
value = 6;
+ } else if ( settings_current.beta128 ) {
+ value = 7;
}
[massStorageType selectCellWithTag:value];
Modified: trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib
===================================================================
--- trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib 2008-03-29 03:18:36 UTC (rev 499)
+++ trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib 2008-03-29 03:19:57 UTC (rev 500)
@@ -11,32 +11,32 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>1548</integer>
+ <integer>1556</integer>
</dict>
<key>NSAccessibilityConnectors</key>
<dict>
<key>CF$UID</key>
- <integer>1545</integer>
+ <integer>1553</integer>
</dict>
<key>NSAccessibilityOidsKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1546</integer>
+ <integer>1554</integer>
</dict>
<key>NSAccessibilityOidsValues</key>
<dict>
<key>CF$UID</key>
- <integer>1547</integer>
+ <integer>1555</integer>
</dict>
<key>NSClassesKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1237</integer>
+ <integer>1244</integer>
</dict>
<key>NSClassesValues</key>
<dict>
<key>CF$UID</key>
- <integer>1238</integer>
+ <integer>1245</integer>
</dict>
<key>NSConnections</key>
<dict>
@@ -56,34 +56,34 @@
<key>NSNamesKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1171</integer>
+ <integer>1178</integer>
</dict>
<key>NSNamesValues</key>
<dict>
<key>CF$UID</key>
- <integer>1172</integer>
+ <integer>1179</integer>
</dict>
<key>NSNextOid</key>
- <integer>1158</integer>
+ <integer>1196</integer>
<key>NSObjectsKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1164</integer>
+ <integer>1171</integer>
</dict>
<key>NSObjectsValues</key>
<dict>
<key>CF$UID</key>
- <integer>1170</integer>
+ <integer>1177</integer>
</dict>
<key>NSOidsKeys</key>
<dict>
<key>CF$UID</key>
- <integer>1239</integer>
+ <integer>1246</integer>
</dict>
<key>NSOidsValues</key>
<dict>
<key>CF$UID</key>
- <integer>1240</integer>
+ <integer>1247</integer>
</dict>
<key>NSRoot</key>
<dict>
@@ -142,7 +142,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>75</integer>
+ <integer>89</integer>
</dict>
<key>NS.objects</key>
<array>
@@ -160,103 +160,99 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>811</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
<integer>820</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>821</integer>
+ <integer>827</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>825</integer>
+ <integer>828</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>828</integer>
+ <integer>832</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>831</integer>
+ <integer>835</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>834</integer>
+ <integer>838</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>837</integer>
+ <integer>841</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>840</integer>
+ <integer>844</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>843</integer>
+ <integer>847</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>846</integer>
+ <integer>850</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>849</integer>
+ <integer>853</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>852</integer>
+ <integer>856</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>855</integer>
+ <integer>859</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>858</integer>
+ <integer>862</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>861</integer>
+ <integer>865</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>864</integer>
+ <integer>868</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>867</integer>
+ <integer>871</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>870</integer>
+ <integer>874</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>873</integer>
+ <integer>877</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>876</integer>
+ <integer>880</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>879</integer>
+ <integer>883</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>882</integer>
+ <integer>886</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>885</integer>
+ <integer>889</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>894</integer>
+ <integer>892</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -264,55 +260,51 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>904</integer>
+ <integer>908</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>905</integer>
+ <integer>911</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>907</integer>
+ <integer>912</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>918</integer>
+ <integer>914</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>921</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
<integer>925</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>942</integer>
+ <integer>928</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>946</integer>
+ <integer>932</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>950</integer>
+ <integer>949</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>954</integer>
+ <integer>953</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>960</integer>
+ <integer>957</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>963</integer>
+ <integer>961</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>966</integer>
+ <integer>967</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -320,82 +312,78 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>972</integer>
+ <integer>973</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>974</integer>
+ <integer>977</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>976</integer>
+ <integer>979</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>978</integer>
+ <integer>981</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>980</integer>
+ <integer>983</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>981</integer>
+ <integer>985</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>982</integer>
+ <integer>987</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>983</integer>
+ <integer>988</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>985</integer>
+ <integer>989</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>988</integer>
+ <integer>990</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>991</integer>
+ <integer>992</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>994</integer>
+ <integer>995</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>997</integer>
+ <integer>998</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1005</integer>
+ <integer>1001</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1006</integer>
+ <integer>1004</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1007</integer>
+ <integer>1012</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1008</integer>
+ <integer>1013</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1011</integer>
+ <integer>1014</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1012</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
<integer>1015</integer>
</dict>
<dict>
@@ -412,23 +400,23 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1028</integer>
+ <integer>1025</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1029</integer>
+ <integer>1026</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1030</integer>
+ <integer>1029</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1031</integer>
+ <integer>1035</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1032</integer>
+ <integer>1036</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -436,27 +424,27 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1041</integer>
+ <integer>1038</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1047</integer>
+ <integer>1039</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1052</integer>
+ <integer>1044</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1056</integer>
+ <integer>1048</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1060</integer>
+ <integer>1054</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1062</integer>
+ <integer>1059</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -464,19 +452,19 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1066</integer>
+ <integer>1067</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1070</integer>
+ <integer>1069</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1072</integer>
+ <integer>1070</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1074</integer>
+ <integer>1073</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -484,11 +472,11 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1080</integer>
+ <integer>1079</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1082</integer>
+ <integer>1081</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -500,19 +488,19 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1090</integer>
+ <integer>1089</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1093</integer>
+ <integer>1091</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1096</integer>
+ <integer>1094</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1098</integer>
+ <integer>1097</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -520,31 +508,31 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1101</integer>
+ <integer>1103</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1102</integer>
+ <integer>1105</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1103</integer>
+ <integer>1107</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1105</integer>
+ <integer>1108</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1107</integer>
+ <integer>1109</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1109</integer>
+ <integer>1110</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1111</integer>
+ <integer>1112</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -552,31 +540,31 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1117</integer>
+ <integer>1116</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1120</integer>
+ <integer>1118</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1123</integer>
+ <integer>1121</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1127</integer>
+ <integer>1124</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1129</integer>
+ <integer>1127</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1131</integer>
+ <integer>1130</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1133</integer>
+ <integer>1134</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -592,27 +580,27 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1142</integer>
+ <integer>1143</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1144</integer>
+ <integer>1145</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1146</integer>
+ <integer>1147</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1148</integer>
+ <integer>1149</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1150</integer>
+ <integer>1151</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1152</integer>
+ <integer>1153</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -620,16 +608,28 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>1158</integer>
+ <integer>1157</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>1160</integer>
+ <integer>1159</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>1162</integer>
</dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>1165</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>1167</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>1169</integer>
+ </dict>
</array>
</dict>
<dict>
@@ -689,12 +689,12 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>118</integer>
+ <integer>207</integer>
</dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>297</integer>
+ <integer>327</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -704,7 +704,7 @@
<key>NSSubviews</key>
<dict>
<key>CF$UID</key>
- <integer>201</integer>
+ <integer>262</integer>
</dict>
</dict>
<string>{{18, 127}, {105, 18}}</string>
@@ -1124,7 +1124,7 @@
<key>NSLabel</key>
<dict>
<key>CF$UID</key>
- <integer>810</integer>
+ <integer>819</integer>
</dict>
<key>NSSource</key>
<dict>
@@ -1136,22 +1136,22 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>809</integer>
+ <integer>818</integer>
</dict>
<key>NSMaxSize</key>
<dict>
<key>CF$UID</key>
- <integer>808</integer>
+ <integer>817</integer>
</dict>
<key>NSMinSize</key>
<dict>
<key>CF$UID</key>
- <integer>807</integer>
+ <integer>816</integer>
</dict>
<key>NSScreenRect</key>
<dict>
<key>CF$UID</key>
- <integer>806</integer>
+ <integer>815</integer>
</dict>
<key>NSViewClass</key>
<dict>
@@ -1211,12 +1211,12 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>118</integer>
+ <integer>207</integer>
</dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>805</integer>
+ <integer>814</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -1233,7 +1233,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>75</integer>
+ <integer>89</integer>
</dict>
<key>NS.objects</key>
<array>
@@ -1243,11 +1243,11 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>767</integer>
+ <integer>776</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>800</integer>
+ <integer>809</integer>
</dict>
</array>
</dict>
@@ -1255,7 +1255,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>766</integer>
+ <integer>775</integer>
</dict>
<key>NSAllowTruncatedLabels</key>
<true/>
@@ -1269,7 +1269,7 @@
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>197</integer>
+ <integer>258</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -1279,7 +1279,7 @@
<key>NSSelectedTabViewItem</key>
<dict>
<key>CF$UID</key>
- <integer>531</integer>
+ <integer>371</integer>
</dict>
<key>NSSubviews</key>
<dict>
@@ -1294,7 +1294,7 @@
<key>NSTabViewItems</key>
<dict>
<key>CF$UID</key>
- <integer>198</integer>
+ <integer>259</integer>
</dict>
<key>NSTvFlags</key>
<integer>4</integer>
@@ -1303,7 +1303,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>75</integer>
+ <integer>89</integer>
</dict>
<key>NS.objects</key>
<array>
@@ -1317,12 +1317,12 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>118</integer>
+ <integer>207</integer>
</dict>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>196</integer>
+ <integer>257</integer>
</dict>
<key>NSNextResponder</key>
<dict>
@@ -1344,7 +1344,7 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>75</integer>
+ <integer>89</integer>
</dict>
<key>NS.objects</key>
<array>
@@ -1354,140 +1354,109 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>129</integer>
+ <integer>56</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>171</integer>
+ <integer>60</integer>
</dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>64</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>218</integer>
+ </dict>
</array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>128</integer>
+ <integer>23</integer>
</dict>
- <key>NSBorderType</key>
- <integer>3</integer>
- <key>NSBoxType</key>
- <integer>0</integer>
- <key>NSContentView</key>
+ <key>NSCell</key>
<dict>
<key>CF$UID</key>
<integer>54</integer>
</dict>
+ <key>NSEnabled</key>
+ <true/>
<key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>119</integer>
+ <integer>53</integer>
</dict>
<key>NSNextResponder</key>
<dict>
<key>CF$UID</key>
<integer>50</integer>
</dict>
- <key>NSOffsets</key>
- <dict>
- <key>CF$UID</key>
- <integer>120</integer>
- </dict>
- <key>NSSubviews</key>
- <dict>
- <key>CF$UID</key>
- <integer>53</integer>
- </dict>
<key>NSSuperview</key>
<dict>
<key>CF$UID</key>
<integer>50</integer>
</dict>
- <key>NSTitleCell</key>
- <dict>
- <key>CF$UID</key>
- <integer>121</integer>
- </dict>
- <key>NSTitlePosition</key>
- <integer>2</integer>
- <key>NSTransparent</key>
- <false/>
+ <key>NSvFlags</key>
+ <integer>256</integer>
</dict>
+ <string>{{378, 287}, {198, 18}}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>75</integer>
+ <integer>22</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>54</integer>
- </dict>
- </array>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>118</integer>
+ <integer>21</integer>
</dict>
- <key>NSFrame</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>117</integer>
+ <integer>18</integer>
</dict>
- <key>NSNextResponder</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>2</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
- <integer>52</integer>
+ <integer>55</integer>
</dict>
- <key>NSSubviews</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>55</integer>
+ <integer>52</integer>
</dict>
- <key>NSSuperview</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>52</integer>
+ <integer>21</integer>
</dict>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSPeriodicDelay</key>
+ <integer>200</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>25</integer>
+ <key>NSSupport</key>
<dict>
<key>CF$UID</key>
- <integer>75</integer>
+ <integer>15</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>56</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>79</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>94</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>108</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>112</integer>
- </dict>
- </array>
</dict>
+ <string>Kempston joystick interface</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>78</integer>
+ <integer>23</integer>
</dict>
<key>NSCell</key>
<dict>
@@ -1504,45 +1473,46 @@
<key>NSNextResponder</key>
<dict>
<key>CF$UID</key>
- <integer>54</integer>
+ <integer>50</integer>
</dict>
<key>NSSuperview</key>
<dict>
<key>CF$UID</key>
- <integer>54</integer>
+ <integer>50</integer>
</dict>
<key>NSvFlags</key>
<integer>256</integer>
</dict>
- <string>{{144, 44}, {249, 26}}</string>
+ <string>{{378, 243}, {138, 18}}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>77</integer>
+ <integer>22</integer>
</dict>
<key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>60</integer>
+ <integer>21</integer>
</dict>
<key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>59</integer>
+ <integer>18</integer>
</dict>
- <key>NSAltersState</key>
- <true/>
- <key>NSArrowPosition</key>
- <integer>1</integer>
<key>NSButtonFlags</key>
- <integer>109199615</integer>
+ <integer>1211912703</integer>
<key>NSButtonFlags2</key>
- <integer>1</integer>
+ <integer>2</integer>
<key>NSCellFlags</key>
- <integer>-2076049856</integer>
+ <integer>67239424</integer>
<key>NSCellFlags2</key>
- <integer>1024</integer>
+ <integer>0</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>59</integer>
+ </dict>
<key>NSControlView</key>
<dict>
<key>CF$UID</key>
@@ -1551,298 +1521,352 @@
<key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>61</integer>
+ <integer>21</integer>
</dict>
- <key>NSMenu</key>
- <dict>
- <key>CF$UID</key>
- <integer>63</integer>
- </dict>
- <key>NSMenuItem</key>
- <dict>
- <key>CF$UID</key>
- <integer>62</integer>
- </dict>
- <key>NSMenuItemRespectAlignment</key>
- <true/>
<key>NSPeriodicDelay</key>
- <integer>400</integer>
+ <integer>200</integer>
<key>NSPeriodicInterval</key>
- <integer>75</integer>
- <key>NSPreferredEdge</key>
- <integer>3</integer>
+ <integer>25</integer>
<key>NSSupport</key>
<dict>
<key>CF$UID</key>
<integer>15</integer>
</dict>
- <key>NSUsesItemFromMenu</key>
- <true/>
</dict>
+ <string>Interface II</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>17</integer>
+ <integer>23</integer>
</dict>
- <key>NSName</key>
+ <key>NSCell</key>
<dict>
<key>CF$UID</key>
- <integer>16</integer>
+ <integer>62</integer>
</dict>
- <key>NSSize</key>
- <real>13</real>
- <key>NSfFlags</key>
- <integer>16</integer>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>61</integer>
</dict>
- <key>NS.string</key>
- <string></string>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSNextResponder</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>50</integer>
</dict>
- <key>NS.string</key>
- <string></string>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>50</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
</dict>
+ <string>{{378, 265}, {187, 18}}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>72</integer>
+ <integer>22</integer>
</dict>
- <key>NSAction</key>
+ <key>NSAlternateContents</key>
<dict>
<key>CF$UID</key>
- <integer>71</integer>
+ <integer>21</integer>
</dict>
- <key>NSKeyEquiv</key>
+ <key>NSAlternateImage</key>
<dict>
<key>CF$UID</key>
- <integer>21</integer>
+ <integer>18</integer>
</dict>
- <key>NSKeyEquivModMask</key>
- <integer>1048576</integer>
- <key>NSMenu</key>
+ <key>NSButtonFlags</key>
+ <integer>1211912703</integer>
+ <key>NSButtonFlags2</key>
+ <integer>2</integer>
+ <key>NSCellFlags</key>
+ <integer>67239424</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
<dict>
<key>CF$UID</key>
<integer>63</integer>
</dict>
- <key>NSMixedImage</key>
+ <key>NSControlView</key>
<dict>
<key>CF$UID</key>
- <integer>69</integer>
+ <integer>60</integer>
</dict>
- <key>NSMnemonicLoc</key>
- <integer>2147483647</integer>
- <key>NSOnImage</key>
+ <key>NSKeyEquivalent</key>
<dict>
<key>CF$UID</key>
- <integer>65</integer>
+ <integer>21</integer>
</dict>
- <key>NSState</key>
- <integer>1</integer>
- <key>NSTarget</key>
+ <key>NSPeriodicDelay</key>
+ <integer>200</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>25</integer>
+ <key>NSSupport</key>
<dict>
<key>CF$UID</key>
- <integer>58</integer>
+ <integer>15</integer>
</dict>
- <key>NSTitle</key>
- <dict>
- <key>CF$UID</key>
- <integer>64</integer>
- </dict>
</dict>
+ <string>Kempston mouse</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>76</integer>
+ <integer>217</integer>
</dict>
- <key>NSMenuItems</key>
+ <key>NSBorderType</key>
+ <integer>3</integer>
+ <key>NSBoxType</key>
+ <integer>0</integer>
+ <key>NSContentView</key>
<dict>
<key>CF$UID</key>
- <integer>74</integer>
+ <integer>66</integer>
</dict>
- <key>NSTitle</key>
+ <key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>73</integer>
+ <integer>208</integer>
</dict>
- </dict>
- <string>Item1</string>
- <dict>
- <key>$class</key>
+ <key>NSNextResponder</key>
<dict>
<key>CF$UID</key>
- <integer>68</integer>
+ <integer>50</integer>
</dict>
- <key>NSClassName</key>
+ <key>NSOffsets</key>
<dict>
<key>CF$UID</key>
- <integer>66</integer>
+ <integer>209</integer>
</dict>
- <key>NSResourceName</key>
+ <key>NSSubviews</key>
<dict>
<key>CF$UID</key>
- <integer>67</integer>
+ <integer>65</integer>
</dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>50</integer>
+ </dict>
+ <key>NSTitleCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>210</integer>
+ </dict>
+ <key>NSTitlePosition</key>
+ <integer>2</integer>
+ <key>NSTransparent</key>
+ <false/>
</dict>
- <string>NSImage</string>
- <string>NSMenuCheckmark</string>
<dict>
- <key>$classes</key>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>89</integer>
+ </dict>
+ <key>NS.objects</key>
<array>
- <string>NSCustomResource</string>
- <string>%NSCustomResource</string>
- <string>NSObject</string>
+ <dict>
+ <key>CF$UID</key>
+ <integer>66</integer>
+ </dict>
</array>
- <key>$classname</key>
- <string>NSCustomResource</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>68</integer>
+ <integer>207</integer>
</dict>
- <key>NSClassName</key>
+ <key>NSFrame</key>
<dict>
<key>CF$UID</key>
- <integer>66</integer>
+ <integer>206</integer>
</dict>
- <key>NSResourceName</key>
+ <key>NSNextResponder</key>
<dict>
<key>CF$UID</key>
- <integer>70</integer>
+ <integer>64</integer>
</dict>
- </dict>
- <string>NSMenuMixedState</string>
- <string>_popUpItemAction:</string>
- <dict>
- <key>$classes</key>
- <array>
- <string>NSMenuItem</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>NSMenuItem</string>
- </dict>
- <dict>
- <key>$class</key>
+ <key>NSSubviews</key>
...
[truncated message content] |
|
From: <fr...@us...> - 2008-04-08 13:31:11
|
Revision: 504
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=504&view=rev
Author: fredm
Date: 2008-04-08 06:31:05 -0700 (Tue, 08 Apr 2008)
Log Message:
-----------
Add 4x and 5x zoom options for those with big screens.
Modified Paths:
--------------
trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
trunk/fuse/fusepb/views/DisplayOpenGLView.m
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib
===================================================================
--- trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2008-04-08 12:08:25 UTC (rev 503)
+++ trunk/fuse/fusepb/nibs/MainMenu.nib/info.nib 2008-04-08 13:31:05 UTC (rev 504)
@@ -13,8 +13,8 @@
<string>489.0</string>
<key>IBOpenObjects</key>
<array>
+ <integer>29</integer>
<integer>877</integer>
- <integer>29</integer>
</array>
<key>IBSystem Version</key>
<string>9C7010</string>
Modified: trunk/fuse/fusepb/nibs/MainMenu.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-04-08 12:08:25 UTC (rev 503)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2008-04-08 13:31:05 UTC (rev 504)
@@ -43,6 +43,8 @@
#define QZ_1 0x12
#define QZ_2 0x13
#define QZ_3 0x14
+#define QZ_4 0x15
+#define QZ_5 0x16
#define QZ_m 0x2E
const void *
@@ -136,6 +138,16 @@
size.height = 720;
[[FuseController singleton] releaseCmdKeys:@"3":QZ_3];
break;
+ case 4: /* 1280x960 */
+ size.width = 1280;
+ size.height = 960;
+ [[FuseController singleton] releaseCmdKeys:@"4":QZ_4];
+ break;
+ case 5: /* 1600x1200 */
+ size.width = 1600;
+ size.height = 1200;
+ [[FuseController singleton] releaseCmdKeys:@"5":QZ_5];
+ break;
case 0:
default: /* Actual size */
size.width = screenTex[0].image_width;
@@ -175,6 +187,9 @@
self = [super initWithFrame:frameRect pixelFormat:pixFmt];
instance = self;
+ buffered_screen_lock = [[NSLock alloc] init];
+ [buffered_screen_lock retain];
+
real_emulator = [[Emulator alloc] init];
}
@@ -287,6 +302,7 @@
greenDisk = nil;
[buffered_screen_lock release];
+ buffered_screen_lock = nil;
[self release];
}
@@ -394,8 +410,7 @@
[view_lock lock];
[buffered_screen_lock lock];
- if( NO == screenTexInitialised ||
- ( 0 == buffered_screen.dirty->count && NO == statusbar_updated ) ) {
+ if( NO == screenTexInitialised ) {
[buffered_screen_lock unlock];
[view_lock unlock];
return;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|