mirror of https://github.com/ksherlock/ample.git
add mame cheat sheet. implemented in html :/
This commit is contained in:
parent
28b1074da2
commit
2046eed6f4
|
@ -78,6 +78,12 @@
|
||||||
B63C1BA6250192D800511A71 /* cecm.plist in Resources */ = {isa = PBXBuildFile; fileRef = B63C1B9C250192D800511A71 /* cecm.plist */; };
|
B63C1BA6250192D800511A71 /* cecm.plist in Resources */ = {isa = PBXBuildFile; fileRef = B63C1B9C250192D800511A71 /* cecm.plist */; };
|
||||||
B63C1BA8250192E600511A71 /* zijini.plist in Resources */ = {isa = PBXBuildFile; fileRef = B63C1BA7250192E600511A71 /* zijini.plist */; };
|
B63C1BA8250192E600511A71 /* zijini.plist in Resources */ = {isa = PBXBuildFile; fileRef = B63C1BA7250192E600511A71 /* zijini.plist */; };
|
||||||
B63C1BA9250192E600511A71 /* zijini.plist in Resources */ = {isa = PBXBuildFile; fileRef = B63C1BA7250192E600511A71 /* zijini.plist */; };
|
B63C1BA9250192E600511A71 /* zijini.plist in Resources */ = {isa = PBXBuildFile; fileRef = B63C1BA7250192E600511A71 /* zijini.plist */; };
|
||||||
|
B63C1F0B25B143C50016A611 /* CheatSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = B63C1F0925B143C50016A611 /* CheatSheet.xib */; };
|
||||||
|
B63C1F0C25B143C50016A611 /* CheatSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = B63C1F0925B143C50016A611 /* CheatSheet.xib */; };
|
||||||
|
B63C1F0F25B1447C0016A611 /* CheatSheetWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B63C1F0E25B1447C0016A611 /* CheatSheetWindowController.m */; };
|
||||||
|
B63C1F1025B1447C0016A611 /* CheatSheetWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B63C1F0E25B1447C0016A611 /* CheatSheetWindowController.m */; };
|
||||||
|
B63C1F1225B147E10016A611 /* CheatSheet.html in Resources */ = {isa = PBXBuildFile; fileRef = B63C1F1125B147E10016A611 /* CheatSheet.html */; };
|
||||||
|
B63C1F1325B147E10016A611 /* CheatSheet.html in Resources */ = {isa = PBXBuildFile; fileRef = B63C1F1125B147E10016A611 /* CheatSheet.html */; };
|
||||||
B64979C224EF6703008ABD20 /* MediaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B64979C124EF6703008ABD20 /* MediaViewController.m */; };
|
B64979C224EF6703008ABD20 /* MediaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B64979C124EF6703008ABD20 /* MediaViewController.m */; };
|
||||||
B64AF1EE250EC35B00A09B9B /* DiskImages.xib in Resources */ = {isa = PBXBuildFile; fileRef = B64AF1EC250EC35B00A09B9B /* DiskImages.xib */; };
|
B64AF1EE250EC35B00A09B9B /* DiskImages.xib in Resources */ = {isa = PBXBuildFile; fileRef = B64AF1EC250EC35B00A09B9B /* DiskImages.xib */; };
|
||||||
B64AF1EF250EC35B00A09B9B /* DiskImages.xib in Resources */ = {isa = PBXBuildFile; fileRef = B64AF1EC250EC35B00A09B9B /* DiskImages.xib */; };
|
B64AF1EF250EC35B00A09B9B /* DiskImages.xib in Resources */ = {isa = PBXBuildFile; fileRef = B64AF1EC250EC35B00A09B9B /* DiskImages.xib */; };
|
||||||
|
@ -303,6 +309,10 @@
|
||||||
B63C1B9B250192D800511A71 /* cec2000.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = cec2000.plist; sourceTree = "<group>"; };
|
B63C1B9B250192D800511A71 /* cec2000.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = cec2000.plist; sourceTree = "<group>"; };
|
||||||
B63C1B9C250192D800511A71 /* cecm.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = cecm.plist; sourceTree = "<group>"; };
|
B63C1B9C250192D800511A71 /* cecm.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = cecm.plist; sourceTree = "<group>"; };
|
||||||
B63C1BA7250192E600511A71 /* zijini.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = zijini.plist; sourceTree = "<group>"; };
|
B63C1BA7250192E600511A71 /* zijini.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = zijini.plist; sourceTree = "<group>"; };
|
||||||
|
B63C1F0A25B143C50016A611 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/CheatSheet.xib; sourceTree = "<group>"; };
|
||||||
|
B63C1F0D25B1447C0016A611 /* CheatSheetWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CheatSheetWindowController.h; sourceTree = "<group>"; };
|
||||||
|
B63C1F0E25B1447C0016A611 /* CheatSheetWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CheatSheetWindowController.m; sourceTree = "<group>"; };
|
||||||
|
B63C1F1125B147E10016A611 /* CheatSheet.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = CheatSheet.html; sourceTree = "<group>"; };
|
||||||
B64979C024EF6703008ABD20 /* MediaViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaViewController.h; sourceTree = "<group>"; };
|
B64979C024EF6703008ABD20 /* MediaViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaViewController.h; sourceTree = "<group>"; };
|
||||||
B64979C124EF6703008ABD20 /* MediaViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MediaViewController.m; sourceTree = "<group>"; };
|
B64979C124EF6703008ABD20 /* MediaViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MediaViewController.m; sourceTree = "<group>"; };
|
||||||
B64AF1ED250EC35B00A09B9B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DiskImages.xib; sourceTree = "<group>"; };
|
B64AF1ED250EC35B00A09B9B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DiskImages.xib; sourceTree = "<group>"; };
|
||||||
|
@ -447,6 +457,7 @@
|
||||||
B61099FA24F5F370005CB652 /* uniap2en.plist */,
|
B61099FA24F5F370005CB652 /* uniap2en.plist */,
|
||||||
B61099EE24F5F36E005CB652 /* uniap2pt.plist */,
|
B61099EE24F5F36E005CB652 /* uniap2pt.plist */,
|
||||||
B6109A0224F5F371005CB652 /* uniap2ti.plist */,
|
B6109A0224F5F371005CB652 /* uniap2ti.plist */,
|
||||||
|
B63C1F1125B147E10016A611 /* CheatSheet.html */,
|
||||||
);
|
);
|
||||||
path = Resources;
|
path = Resources;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -552,6 +563,8 @@
|
||||||
B6004DEE24FB05D600D38596 /* LogWindowController.m */,
|
B6004DEE24FB05D600D38596 /* LogWindowController.m */,
|
||||||
B66236A724FD9A34006CABD7 /* PreferencesWindowController.h */,
|
B66236A724FD9A34006CABD7 /* PreferencesWindowController.h */,
|
||||||
B66236A824FD9A34006CABD7 /* PreferencesWindowController.m */,
|
B66236A824FD9A34006CABD7 /* PreferencesWindowController.m */,
|
||||||
|
B63C1F0D25B1447C0016A611 /* CheatSheetWindowController.h */,
|
||||||
|
B63C1F0E25B1447C0016A611 /* CheatSheetWindowController.m */,
|
||||||
);
|
);
|
||||||
name = "Window Controllers";
|
name = "Window Controllers";
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -569,6 +582,7 @@
|
||||||
B6D6DE3724FAC8B500661A5F /* Preferences.xib */,
|
B6D6DE3724FAC8B500661A5F /* Preferences.xib */,
|
||||||
B61099E324F5F230005CB652 /* SlotView.xib */,
|
B61099E324F5F230005CB652 /* SlotView.xib */,
|
||||||
B64AF1EC250EC35B00A09B9B /* DiskImages.xib */,
|
B64AF1EC250EC35B00A09B9B /* DiskImages.xib */,
|
||||||
|
B63C1F0925B143C50016A611 /* CheatSheet.xib */,
|
||||||
);
|
);
|
||||||
name = Nibs;
|
name = Nibs;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -740,6 +754,7 @@
|
||||||
B6DDECCE2505A86E0093587A /* eject-16x16@3x.png in Resources */,
|
B6DDECCE2505A86E0093587A /* eject-16x16@3x.png in Resources */,
|
||||||
B64AF1EE250EC35B00A09B9B /* DiskImages.xib in Resources */,
|
B64AF1EE250EC35B00A09B9B /* DiskImages.xib in Resources */,
|
||||||
B6109A3B24F5F377005CB652 /* apple2gsr1.plist in Resources */,
|
B6109A3B24F5F377005CB652 /* apple2gsr1.plist in Resources */,
|
||||||
|
B63C1F1225B147E10016A611 /* CheatSheet.html in Resources */,
|
||||||
B63C1B9625008A2700511A71 /* DownloadWindow.xib in Resources */,
|
B63C1B9625008A2700511A71 /* DownloadWindow.xib in Resources */,
|
||||||
B6D6DE3B24FACF4F00661A5F /* Defaults.plist in Resources */,
|
B6D6DE3B24FACF4F00661A5F /* Defaults.plist in Resources */,
|
||||||
B6109A2224F5F377005CB652 /* models.plist in Resources */,
|
B6109A2224F5F377005CB652 /* models.plist in Resources */,
|
||||||
|
@ -759,6 +774,7 @@
|
||||||
B6D6DE3924FAC8B500661A5F /* Preferences.xib in Resources */,
|
B6D6DE3924FAC8B500661A5F /* Preferences.xib in Resources */,
|
||||||
B6109A2924F5F377005CB652 /* apple2gs.plist in Resources */,
|
B6109A2924F5F377005CB652 /* apple2gs.plist in Resources */,
|
||||||
B6109A1F24F5F377005CB652 /* apple2jp.plist in Resources */,
|
B6109A1F24F5F377005CB652 /* apple2jp.plist in Resources */,
|
||||||
|
B63C1F0B25B143C50016A611 /* CheatSheet.xib in Resources */,
|
||||||
B6109A3024F5F377005CB652 /* apple2.plist in Resources */,
|
B6109A3024F5F377005CB652 /* apple2.plist in Resources */,
|
||||||
B6109A2D24F5F377005CB652 /* prav8m.plist in Resources */,
|
B6109A2D24F5F377005CB652 /* prav8m.plist in Resources */,
|
||||||
);
|
);
|
||||||
|
@ -787,6 +803,7 @@
|
||||||
B6E4B5C724FDE2670094A35C /* am100.plist in Resources */,
|
B6E4B5C724FDE2670094A35C /* am100.plist in Resources */,
|
||||||
B6E4B5C824FDE2670094A35C /* laser2c.plist in Resources */,
|
B6E4B5C824FDE2670094A35C /* laser2c.plist in Resources */,
|
||||||
B6DDECC125057A550093587A /* drag-handle-4x10.png in Resources */,
|
B6DDECC125057A550093587A /* drag-handle-4x10.png in Resources */,
|
||||||
|
B63C1F0C25B143C50016A611 /* CheatSheet.xib in Resources */,
|
||||||
B6E4B5C924FDE2670094A35C /* laser128.plist in Resources */,
|
B6E4B5C924FDE2670094A35C /* laser128.plist in Resources */,
|
||||||
B6E4B5CA24FDE2670094A35C /* apple2ep.plist in Resources */,
|
B6E4B5CA24FDE2670094A35C /* apple2ep.plist in Resources */,
|
||||||
B6DDECCD2505A86E0093587A /* eject-16x16@2x.png in Resources */,
|
B6DDECCD2505A86E0093587A /* eject-16x16@2x.png in Resources */,
|
||||||
|
@ -831,6 +848,7 @@
|
||||||
B6E4B5EA24FDE2670094A35C /* apple3.plist in Resources */,
|
B6E4B5EA24FDE2670094A35C /* apple3.plist in Resources */,
|
||||||
B6E4B5EB24FDE2670094A35C /* apple2ee.plist in Resources */,
|
B6E4B5EB24FDE2670094A35C /* apple2ee.plist in Resources */,
|
||||||
B6E4B5EC24FDE2670094A35C /* dodo.plist in Resources */,
|
B6E4B5EC24FDE2670094A35C /* dodo.plist in Resources */,
|
||||||
|
B63C1F1325B147E10016A611 /* CheatSheet.html in Resources */,
|
||||||
B6E4B5ED24FDE2670094A35C /* Preferences.xib in Resources */,
|
B6E4B5ED24FDE2670094A35C /* Preferences.xib in Resources */,
|
||||||
B6DDECD72505A86E0093587A /* eject-16x16.png in Resources */,
|
B6DDECD72505A86E0093587A /* eject-16x16.png in Resources */,
|
||||||
B6E4B5EF24FDE2670094A35C /* apple2gs.plist in Resources */,
|
B6E4B5EF24FDE2670094A35C /* apple2gs.plist in Resources */,
|
||||||
|
@ -869,6 +887,7 @@
|
||||||
B6BA258024E99BE9005FB8FF /* AppDelegate.m in Sources */,
|
B6BA258024E99BE9005FB8FF /* AppDelegate.m in Sources */,
|
||||||
B6004DF024FB05D600D38596 /* LogWindowController.m in Sources */,
|
B6004DF024FB05D600D38596 /* LogWindowController.m in Sources */,
|
||||||
B66236A924FD9A34006CABD7 /* PreferencesWindowController.m in Sources */,
|
B66236A924FD9A34006CABD7 /* PreferencesWindowController.m in Sources */,
|
||||||
|
B63C1F0F25B1447C0016A611 /* CheatSheetWindowController.m in Sources */,
|
||||||
B64AF1F2250ECB2E00A09B9B /* DiskImagesWindowController.m in Sources */,
|
B64AF1F2250ECB2E00A09B9B /* DiskImagesWindowController.m in Sources */,
|
||||||
B64AF1F6250ED5E400A09B9B /* TableCellView.m in Sources */,
|
B64AF1F6250ED5E400A09B9B /* TableCellView.m in Sources */,
|
||||||
B63C1B9425008A2700511A71 /* DownloadWindowController.m in Sources */,
|
B63C1B9425008A2700511A71 /* DownloadWindowController.m in Sources */,
|
||||||
|
@ -883,6 +902,7 @@
|
||||||
B608E1802502FE0C00D53465 /* TransparentScroller.m in Sources */,
|
B608E1802502FE0C00D53465 /* TransparentScroller.m in Sources */,
|
||||||
B64AF1FB250EF6A500A09B9B /* Transformers.m in Sources */,
|
B64AF1FB250EF6A500A09B9B /* Transformers.m in Sources */,
|
||||||
B6E4B5B024FDE2670094A35C /* main.m in Sources */,
|
B6E4B5B024FDE2670094A35C /* main.m in Sources */,
|
||||||
|
B63C1F1025B1447C0016A611 /* CheatSheetWindowController.m in Sources */,
|
||||||
B63C1B8C24FF4BF700511A71 /* Ample.m in Sources */,
|
B63C1B8C24FF4BF700511A71 /* Ample.m in Sources */,
|
||||||
B64AF1F3250ECB2E00A09B9B /* DiskImagesWindowController.m in Sources */,
|
B64AF1F3250ECB2E00A09B9B /* DiskImagesWindowController.m in Sources */,
|
||||||
B6B9EA672506A5550080E70D /* EjectButton.m in Sources */,
|
B6B9EA672506A5550080E70D /* EjectButton.m in Sources */,
|
||||||
|
@ -918,6 +938,14 @@
|
||||||
name = MediaView.xib;
|
name = MediaView.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
B63C1F0925B143C50016A611 /* CheatSheet.xib */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
B63C1F0A25B143C50016A611 /* Base */,
|
||||||
|
);
|
||||||
|
name = CheatSheet.xib;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
B64AF1EC250EC35B00A09B9B /* DiskImages.xib */ = {
|
B64AF1EC250EC35B00A09B9B /* DiskImages.xib */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#import "PreferencesWindowController.h"
|
#import "PreferencesWindowController.h"
|
||||||
#import "DownloadWindowController.h"
|
#import "DownloadWindowController.h"
|
||||||
#import "DiskImagesWindowController.h"
|
#import "DiskImagesWindowController.h"
|
||||||
|
#import "CheatSheetWindowController.h"
|
||||||
#import "Transformers.h"
|
#import "Transformers.h"
|
||||||
|
|
||||||
#import "LogWindowController.h"
|
#import "LogWindowController.h"
|
||||||
|
@ -25,6 +26,7 @@
|
||||||
NSWindowController *_launcher;
|
NSWindowController *_launcher;
|
||||||
NSWindowController *_downloader;
|
NSWindowController *_downloader;
|
||||||
NSWindowController *_diskImages;
|
NSWindowController *_diskImages;
|
||||||
|
NSWindowController *_cheatSheet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -179,6 +181,14 @@
|
||||||
}
|
}
|
||||||
[_diskImages showWindow: sender];
|
[_diskImages showWindow: sender];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)displayCheatSheet:(id)sender {
|
||||||
|
if (!_cheatSheet) {
|
||||||
|
_cheatSheet = [CheatSheetWindowController new];
|
||||||
|
}
|
||||||
|
[_cheatSheet showWindow: sender];
|
||||||
|
}
|
||||||
|
|
||||||
- (IBAction)displaySupportDirectory:(id)sender {
|
- (IBAction)displaySupportDirectory:(id)sender {
|
||||||
NSURL *url = SupportDirectory();
|
NSURL *url = SupportDirectory();
|
||||||
NSWorkspace *ws = [NSWorkspace sharedWorkspace];
|
NSWorkspace *ws = [NSWorkspace sharedWorkspace];
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="15705" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||||
|
<dependencies>
|
||||||
|
<deployment identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15705"/>
|
||||||
|
<plugIn identifier="com.apple.WebKit2IBPlugin" version="15705"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="CheatSheetWindowController">
|
||||||
|
<connections>
|
||||||
|
<outlet property="_webView" destination="Yc9-xA-jWX" id="rsd-1e-HPk"/>
|
||||||
|
<outlet property="webView" destination="Yc9-xA-jWX" id="EE3-gk-f71"/>
|
||||||
|
<outlet property="window" destination="QvC-M9-y7g" id="U2v-sN-OzH"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
|
<window title="Keyboard Cheat Sheet" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g">
|
||||||
|
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
|
||||||
|
<rect key="contentRect" x="196" y="240" width="640" height="640"/>
|
||||||
|
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
|
||||||
|
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="640" height="640"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<subviews>
|
||||||
|
<wkWebView hidden="YES" wantsLayer="YES" fixedFrame="YES" allowsLinkPreview="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yc9-xA-jWX">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="640" height="640"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<wkWebViewConfiguration key="configuration">
|
||||||
|
<audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
|
||||||
|
<wkPreferences key="preferences" javaScriptCanOpenWindowsAutomatically="NO"/>
|
||||||
|
</wkWebViewConfiguration>
|
||||||
|
<connections>
|
||||||
|
<outlet property="navigationDelegate" destination="-2" id="1WW-1B-FdZ"/>
|
||||||
|
</connections>
|
||||||
|
</wkWebView>
|
||||||
|
</subviews>
|
||||||
|
</view>
|
||||||
|
<connections>
|
||||||
|
<outlet property="delegate" destination="-2" id="u4H-aq-RE2"/>
|
||||||
|
</connections>
|
||||||
|
<point key="canvasLocation" x="42" y="198"/>
|
||||||
|
</window>
|
||||||
|
</objects>
|
||||||
|
</document>
|
|
@ -436,6 +436,12 @@
|
||||||
<action selector="showHelp:" target="-1" id="y7X-2Q-9no"/>
|
<action selector="showHelp:" target="-1" id="y7X-2Q-9no"/>
|
||||||
</connections>
|
</connections>
|
||||||
</menuItem>
|
</menuItem>
|
||||||
|
<menuItem title="MAME Keyboard Cheat Sheet" id="vcW-Dz-2Nx">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="displayCheatSheet:" target="Voe-Tx-rLC" id="HvD-mQ-4pe"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
<menuItem title="MAME Apple II Wiki" id="GLh-Cc-5uU">
|
<menuItem title="MAME Apple II Wiki" id="GLh-Cc-5uU">
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
<connections>
|
<connections>
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
//
|
||||||
|
// CheatSheetWindowController.h
|
||||||
|
// Ample
|
||||||
|
//
|
||||||
|
// Created by Kelvin Sherlock on 1/14/2021.
|
||||||
|
// Copyright © 2021 Kelvin Sherlock. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface CheatSheetWindowController : NSWindowController
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,47 @@
|
||||||
|
//
|
||||||
|
// CheatSheetWindowController.m
|
||||||
|
// Ample
|
||||||
|
//
|
||||||
|
// Created by Kelvin Sherlock on 1/14/2021.
|
||||||
|
// Copyright © 2021 Kelvin Sherlock. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "CheatSheetWindowController.h"
|
||||||
|
|
||||||
|
#import <WebKit/WebKit.h>
|
||||||
|
|
||||||
|
@interface CheatSheetWindowController ()
|
||||||
|
@property (weak) IBOutlet WKWebView *webView;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface CheatSheetWindowController (NavigationDelegate) <WKNavigationDelegate>
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation CheatSheetWindowController
|
||||||
|
|
||||||
|
-(NSString *)windowNibName {
|
||||||
|
return @"CheatSheet";
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)windowDidLoad {
|
||||||
|
[super windowDidLoad];
|
||||||
|
|
||||||
|
[_webView setHidden: YES];
|
||||||
|
NSBundle *bundle = [NSBundle mainBundle];
|
||||||
|
NSURL *url = [bundle URLForResource: @"CheatSheet" withExtension: @"html"];
|
||||||
|
[[[_webView configuration] preferences] setValue: @YES forKey: @"developerExtrasEnabled"];
|
||||||
|
[_webView loadFileURL: url allowingReadAccessToURL: url];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
|
||||||
|
// delay to prevent flash in dark mode.
|
||||||
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0/8 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||||
|
[webView setHidden: NO];
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
|
@ -0,0 +1,222 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Keyboard Cheat Sheet</title>
|
||||||
|
<style type="text/css">
|
||||||
|
:root {
|
||||||
|
color-scheme: light dark;
|
||||||
|
font-family: -apple-system, 'HelveticaNeue' ;
|
||||||
|
font: -apple-system-body;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
user-select: none;
|
||||||
|
|
||||||
|
background-color: rgb(236, 236, 236);
|
||||||
|
color: rgb(38, 38, 38);
|
||||||
|
}
|
||||||
|
h1, h2 {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 150%;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding-left: .5em;
|
||||||
|
padding-right: .5em;
|
||||||
|
padding-top: 4px;
|
||||||
|
padding-bottom: 2px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-left: 4px;
|
||||||
|
|
||||||
|
border: solid 1px black;
|
||||||
|
box-shadow: 1px 1px 2px 0px rgba(0,0,0,0.75), inset 1px 1px 2px 0px white;
|
||||||
|
text-shadow: 0px 1px 0px rgb(255, 255, 255);
|
||||||
|
background-color: rgb(225, 225, 225);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
body {
|
||||||
|
background-color: rgb(50, 50, 50);
|
||||||
|
color: rgb(225, 225, 225);
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
border: solid 1px black;
|
||||||
|
text-shadow: 0px 1px 0px black;
|
||||||
|
box-shadow: 1px 1px 2px 0px rgba(0,0,0,0.75);
|
||||||
|
background-color: rgb(101, 101, 101);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function macbook(onoff) {
|
||||||
|
var nodes = document.querySelectorAll("[data-macbook]");
|
||||||
|
nodes.forEach( (e) => {
|
||||||
|
var m = (e.dataset.macbook == "true");
|
||||||
|
e.hidden = m ^ onoff;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
window.addEventListener('load', (event)=> {
|
||||||
|
macbook(false);
|
||||||
|
|
||||||
|
var e = document.getElementById('macbook');
|
||||||
|
if (e) {
|
||||||
|
e.checked = false;
|
||||||
|
e.addEventListener('click', (event) => {
|
||||||
|
macbook(e.checked);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div>
|
||||||
|
MacBook: <input type="checkbox" id="macbook" />
|
||||||
|
</div>
|
||||||
|
<h1>Full UI Mode</h1>
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 14em;" />
|
||||||
|
<col />
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span data-macbook=false><kbd>Delete</kbd></span>
|
||||||
|
<span data-macbook=true><kbd>Fn</kbd>+<kbd>Delete</kbd></span>
|
||||||
|
</td>
|
||||||
|
<td>Toggle partial UI mode</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Option</kbd>+<kbd>Enter</kbd></td>
|
||||||
|
<td>Toggle full screen mode</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>F12</kbd></td>
|
||||||
|
<td>Reset Key</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h1>Partial UI Mode</h1>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 14em;" />
|
||||||
|
<col />
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span data-macbook=false><kbd>Delete</kbd></span>
|
||||||
|
<span data-macbook=true><kbd>Fn</kbd>+<kbd>Delete</kbd></span>
|
||||||
|
</td>
|
||||||
|
<td>Toggle full UI mode</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Option</kbd>+<kbd>Enter</kbd></td>
|
||||||
|
<td>Toggle full screen mode</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Tab</kbd></td>
|
||||||
|
<td>Config menu</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Esc</kbd></td>
|
||||||
|
<td>Quit</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>P</kbd></td>
|
||||||
|
<td>Pause</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><kbd>~</kbd></td>
|
||||||
|
<td>Debugger break (when active)</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span data-macbook=false><kbd>Page Down</kbd></span>
|
||||||
|
<span data-macbook=true><kbd>Fn</kbd>+<kbd>Down Arrow</kbd></span>
|
||||||
|
</td>
|
||||||
|
<td>Fast forward (while pressed)</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><kbd>F3</kbd></td>
|
||||||
|
<td>Soft reset</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Shift</kbd>+<kbd>F3</kbd></td>
|
||||||
|
<td>Hard reset</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><kbd>F5</kbd></td>
|
||||||
|
<td>Toggle debugger</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Shift</kbd>+<kbd>F5</kbd></td>
|
||||||
|
<td>Toggle graphic filters</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><kbd>F7</kbd></td>
|
||||||
|
<td>Load state</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Shift</kbd>+<kbd>F7</kbd></td>
|
||||||
|
<td>Save state</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><kbd>F10</kbd></td>
|
||||||
|
<td>Toggle throttle</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><kbd>F11</kbd></td>
|
||||||
|
<td>Show FPS</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Shift</kbd>+<kbd>F11</kbd></td>
|
||||||
|
<td>Show profiler</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><kbd>F12</kbd></td>
|
||||||
|
<td>Save snapshot</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Shift</kbd>+<kbd>F12</kbd></td>
|
||||||
|
<td>Record MNG video</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Control</kbd>+<kbd>Shift</kbd>+<kbd>F12</kbd></td>
|
||||||
|
<td>Record AVI video</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><kbd>Option</kbd>+<kbd>Shift</kbd>+<kbd>F12</kbd></td>
|
||||||
|
<td>Record rendered AVI video</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h2>Note</h2>
|
||||||
|
<ul class="note">
|
||||||
|
<li><kbd>F</kbd> keys may require <kbd>Fn</kbd> key depending on keyboard and system settings.</li>
|
||||||
|
<li><kbd>Shift</kbd>, <kbd>Control</kbd>, and <kbd>Option</kbd> assume left-key unless otherwise specified.</li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue