mirror of
https://github.com/trudnai/Steve2.git
synced 2024-06-12 18:45:22 +00:00
- keyboard handling depends on Debugger Window focused or not - so handling textFields in DebuggerWindow is possible
- Added key binding to Debugger
This commit is contained in:
parent
17ee6a3e2c
commit
594feb4618
|
@ -120,7 +120,8 @@
|
|||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="RZL-Zg-BzE"/>
|
||||
<menuItem title="Apple DOS 3.3 January 1983" keyEquivalent="1" identifier="Apple DOS 3.3 January 1983" id="KuV-6R-gyL">
|
||||
<menuItem title="Apple DOS 3.3 January 1983" identifier="Apple DOS 3.3 January 1983" id="KuV-6R-gyL">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="fFn-bN-fJA"/>
|
||||
</connections>
|
||||
|
@ -144,7 +145,8 @@
|
|||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="43k-vB-bj0"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Merlin Assembler (early version, 40-column, DOS 3.3) side A" keyEquivalent="2" identifier="Merlin Assembler (early version, 40-column, DOS 3.3) side A" id="m64-gM-Lqu">
|
||||
<menuItem title="Merlin Assembler (early version, 40-column, DOS 3.3) side A" identifier="Merlin Assembler (early version, 40-column, DOS 3.3) side A" id="m64-gM-Lqu">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="Fky-ox-w05"/>
|
||||
</connections>
|
||||
|
@ -180,7 +182,8 @@
|
|||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="JUf-es-jdV"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Apple II+ Dealer Diagnostics" keyEquivalent="3" identifier="Apple II+ Dealer Diagnostics" id="jjf-fs-rZ7">
|
||||
<menuItem title="Apple II+ Dealer Diagnostics" identifier="Apple II+ Dealer Diagnostics" id="jjf-fs-rZ7">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="vIK-Yl-r1f"/>
|
||||
</connections>
|
||||
|
@ -191,7 +194,8 @@
|
|||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="Bwc-m1-LET"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="LockSmith v6.0" keyEquivalent="4" identifier="locksmith_v6.0" id="lZl-BU-L3p">
|
||||
<menuItem title="LockSmith v6.0" identifier="locksmith_v6.0" id="lZl-BU-L3p">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="xAB-nY-zVJ"/>
|
||||
</connections>
|
||||
|
@ -202,23 +206,27 @@
|
|||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="MrU-cD-yHm"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="XPS Diagnostic IIe" keyEquivalent="5" identifier="XPS Diagnostic IIe" id="zBI-ok-Se7">
|
||||
<menuItem title="XPS Diagnostic IIe" identifier="XPS Diagnostic IIe" id="zBI-ok-Se7">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="GUr-Zl-fYR"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="kb8-Z5-nGS"/>
|
||||
<menuItem title="Donkey Kong" keyEquivalent="6" identifier="Donkey Kong" id="ero-Yw-Fxy">
|
||||
<menuItem title="Donkey Kong" identifier="Donkey Kong" id="ero-Yw-Fxy">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="wwf-cD-Lv9"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Qbit" keyEquivalent="7" identifier="Qbit" id="3yK-n1-y7H">
|
||||
<menuItem title="Qbit" identifier="Qbit" id="3yK-n1-y7H">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="c8a-9v-oR4"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Sneakers" keyEquivalent="8" identifier="Sneakers" id="iAb-YK-Q8d">
|
||||
<menuItem title="Sneakers" identifier="Sneakers" id="iAb-YK-Q8d">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="zhC-rp-mN0"/>
|
||||
</connections>
|
||||
|
@ -235,7 +243,8 @@
|
|||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="hRl-0O-47L"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Xonix" keyEquivalent="9" identifier="Xonix" id="242-uR-ubX">
|
||||
<menuItem title="Xonix" identifier="Xonix" id="242-uR-ubX">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="Disk1_Selected:" target="Voe-Tx-rLC" id="Ysg-X9-qeK"/>
|
||||
</connections>
|
||||
|
@ -782,8 +791,8 @@
|
|||
<action selector="PowerOn:" target="Voe-Tx-rLC" id="IYU-yC-Gc6"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title=" ❙❙ Pause" id="UvV-rl-Pa2">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menuItem title=" ❙❙ Pause" keyEquivalent=" " id="UvV-rl-Pa2">
|
||||
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="Pause:" target="Voe-Tx-rLC" id="DhQ-Sl-WbJ"/>
|
||||
</connections>
|
||||
|
@ -796,13 +805,18 @@
|
|||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="EpV-Zl-RlZ"/>
|
||||
<menuItem title="Cold Reset" id="nzj-IC-y8T">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<string key="keyEquivalent" base64-UTF8="YES">
|
||||
Gw
|
||||
</string>
|
||||
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="ColdReset:" target="Voe-Tx-rLC" id="sWD-Vp-yRD"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Warm Reset" id="ivK-Gh-v9c">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<string key="keyEquivalent" base64-UTF8="YES">
|
||||
Gw
|
||||
</string>
|
||||
<connections>
|
||||
<action selector="WarmReset:" target="Voe-Tx-rLC" id="rnE-hI-s4T"/>
|
||||
</connections>
|
||||
|
@ -834,6 +848,14 @@
|
|||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Debug" id="7qQ-fs-ZQH">
|
||||
<items>
|
||||
<menuItem title="Show Debug" image="NSListViewTemplate" id="qj2-MQ-kvf">
|
||||
<attributedString key="attributedTitle"/>
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="DebugContinue:" target="Voe-Tx-rLC" id="9vz-Qv-9Nq"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="cie-yN-x37"/>
|
||||
<menuItem title=" Continue" image="NSTouchBarSkipToEndTemplate" id="4XT-55-ZIi">
|
||||
<attributedString key="attributedTitle"/>
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
|
@ -847,25 +869,21 @@
|
|||
<action selector="Pause:" target="Voe-Tx-rLC" id="ZHS-S4-fpJ"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title=" Step Over" image="NSTouchBarGoForwardTemplate" keyEquivalent="" id="sJB-Vb-4l9">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menuItem title=" Step Over" image="NSTouchBarGoForwardTemplate" keyEquivalent="6" id="sJB-Vb-4l9">
|
||||
<connections>
|
||||
<action selector="DebugStepOver:" target="Voe-Tx-rLC" id="j9J-b7-Qc7"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Step In" image="NSTouchBarGoDownTemplate" keyEquivalent="" id="8Ex-Dj-aTQ">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menuItem title="Step In" image="NSTouchBarGoDownTemplate" keyEquivalent="7" id="8Ex-Dj-aTQ">
|
||||
<connections>
|
||||
<action selector="DebugStepIn:" target="Voe-Tx-rLC" id="VS2-dJ-ej6"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Step Out" image="NSTouchBarGoUpTemplate" keyEquivalent="" id="nJ4-nf-edr">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menuItem title="Step Out" image="NSTouchBarGoUpTemplate" keyEquivalent="8" id="nJ4-nf-edr">
|
||||
<connections>
|
||||
<action selector="DebugStepOut:" target="Voe-Tx-rLC" id="yLP-2Q-Aj3"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="cie-yN-x37"/>
|
||||
<menuItem isSeparatorItem="YES" id="jeh-zg-X9x"/>
|
||||
</items>
|
||||
</menu>
|
||||
|
@ -1941,16 +1959,34 @@
|
|||
<menuItem title="Quick Disk" tag="21" id="cth-H6-Drg"/>
|
||||
<menuItem title="Disk Sound" state="on" tag="22" id="5cI-3C-PMM"/>
|
||||
<menuItem isSeparatorItem="YES" id="uDF-ui-Ho0"/>
|
||||
<menuItem title="Apple DOS 3.3 January 1983" tag="1000" keyEquivalent="1" id="KA0-R9-E92"/>
|
||||
<menuItem title="Merlin Assembler" tag="1000" keyEquivalent="2" id="yRn-vq-bwc"/>
|
||||
<menuItem title="Apple II+ Dealer Diagnostics" tag="1000" keyEquivalent="3" id="LwD-Oc-zna"/>
|
||||
<menuItem title="LockSmith v6.0" tag="1000" keyEquivalent="4" id="O53-ih-1JA"/>
|
||||
<menuItem title="XPS Diagnostic IIe" tag="1000" keyEquivalent="5" id="31n-KV-XJd"/>
|
||||
<menuItem title="Donkey Kong" tag="1000" keyEquivalent="6" id="Bde-EV-3Og"/>
|
||||
<menuItem title="Qbit" tag="1000" keyEquivalent="7" id="enu-GL-UoY"/>
|
||||
<menuItem title="Sneakers" tag="1000" keyEquivalent="8" id="RKR-CY-boE"/>
|
||||
<menuItem title="Apple DOS 3.3 January 1983" tag="1000" id="KA0-R9-E92">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Merlin Assembler" tag="1000" id="yRn-vq-bwc">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Apple II+ Dealer Diagnostics" tag="1000" id="LwD-Oc-zna">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="LockSmith v6.0" tag="1000" id="O53-ih-1JA">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="XPS Diagnostic IIe" tag="1000" id="31n-KV-XJd">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Donkey Kong" tag="1000" id="Bde-EV-3Og">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Qbit" tag="1000" id="enu-GL-UoY">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Sneakers" tag="1000" id="RKR-CY-boE">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Wavy Navy" tag="1000" id="Iya-rl-ZTV"/>
|
||||
<menuItem title="Xonix" tag="1000" keyEquivalent="9" id="pSK-h5-XrY"/>
|
||||
<menuItem title="Xonix" tag="1000" id="pSK-h5-XrY">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Lode Runner" tag="1000" id="w5E-lk-aOS"/>
|
||||
</items>
|
||||
</menu>
|
||||
|
@ -1975,16 +2011,34 @@
|
|||
<menuItem title="Quick Disk" tag="21" id="yDH-Ob-i3N"/>
|
||||
<menuItem title="Disk Sound" state="on" tag="22" id="vmR-CG-qdv"/>
|
||||
<menuItem isSeparatorItem="YES" id="T8N-lz-JYX"/>
|
||||
<menuItem title="Apple DOS 3.3 January 1983" tag="1000" keyEquivalent="1" id="P7T-XT-Cdu"/>
|
||||
<menuItem title="Merlin Assembler" tag="1000" keyEquivalent="2" id="tB8-sJ-HlO"/>
|
||||
<menuItem title="Apple II+ Dealer Diagnostics" tag="1000" keyEquivalent="3" id="dGd-Db-yBA"/>
|
||||
<menuItem title="LockSmith v6.0" tag="1000" keyEquivalent="4" id="szs-zR-mkn"/>
|
||||
<menuItem title="XPS Diagnostic IIe" tag="1000" keyEquivalent="5" id="EPI-Ma-d6C"/>
|
||||
<menuItem title="Donkey Kong" tag="1000" keyEquivalent="6" id="XyX-n0-A2F"/>
|
||||
<menuItem title="Qbit" tag="1000" keyEquivalent="7" id="oMK-5v-QR3"/>
|
||||
<menuItem title="Sneakers" tag="1000" keyEquivalent="8" id="dZn-Mw-uXV"/>
|
||||
<menuItem title="Apple DOS 3.3 January 1983" tag="1000" id="P7T-XT-Cdu">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Merlin Assembler" tag="1000" id="tB8-sJ-HlO">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Apple II+ Dealer Diagnostics" tag="1000" id="dGd-Db-yBA">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="LockSmith v6.0" tag="1000" id="szs-zR-mkn">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="XPS Diagnostic IIe" tag="1000" id="EPI-Ma-d6C">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Donkey Kong" tag="1000" id="XyX-n0-A2F">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Qbit" tag="1000" id="oMK-5v-QR3">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Sneakers" tag="1000" id="dZn-Mw-uXV">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Wavy Navy" tag="1000" id="eO9-bs-03B"/>
|
||||
<menuItem title="Xonix" tag="1000" keyEquivalent="9" id="Ui5-Id-ckw"/>
|
||||
<menuItem title="Xonix" tag="1000" id="Ui5-Id-ckw">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Lode Runner" tag="1000" id="5tF-q8-j5x"/>
|
||||
</items>
|
||||
</menu>
|
||||
|
@ -2358,6 +2412,7 @@
|
|||
<image name="Green" width="32" height="32"/>
|
||||
<image name="Joystick" width="32" height="32"/>
|
||||
<image name="NSActionTemplate" width="14" height="14"/>
|
||||
<image name="NSListViewTemplate" width="14" height="10"/>
|
||||
<image name="NSTouchBarAudioOutputMuteTemplate" width="26" height="30"/>
|
||||
<image name="NSTouchBarAudioOutputVolumeLowTemplate" width="23" height="30"/>
|
||||
<image name="NSTouchBarAudioOutputVolumeMediumTemplate" width="23" height="30"/>
|
||||
|
|
|
@ -42,6 +42,19 @@ class DebuggerWindowController: NSWindowController, NSWindowDelegate {
|
|||
}
|
||||
|
||||
|
||||
var isKey : Bool = false
|
||||
|
||||
func windowDidBecomeKey(_ notification: Notification) {
|
||||
// NSLog("windowDidBecomeKey")
|
||||
isKey = true
|
||||
}
|
||||
|
||||
func windowDidResignKey(_ notification: Notification) {
|
||||
// NSLog("windowDidResignKey")
|
||||
isKey = false
|
||||
}
|
||||
|
||||
|
||||
// TODO: Probably there is a better way to achieve this
|
||||
// fill non-break spaces to provide uniform button width
|
||||
let offLabel = "Off \u{A0}\u{A0}\u{A0}\u{A0}\u{A0}\u{A0}\u{A0}\u{A0}\u{A0}"
|
||||
|
|
|
@ -592,7 +592,10 @@ class ViewController: NSViewController {
|
|||
pdl_diffarr[3] = pdl_valarr[3] - pdl_prevarr[3]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
var savedVideoMode = videoMode_t.init()
|
||||
|
||||
|
||||
override func keyDown(with event: NSEvent) {
|
||||
|
||||
|
@ -705,9 +708,6 @@ class ViewController: NSViewController {
|
|||
}
|
||||
|
||||
|
||||
var savedVideoMode = videoMode_t.init()
|
||||
|
||||
|
||||
override func keyUp(with event: NSEvent) {
|
||||
// print("keyUp")
|
||||
// switch event.modifierFlags.intersection(.deviceIndependentFlagsMask) {
|
||||
|
@ -840,8 +840,6 @@ class ViewController: NSViewController {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
var was = 0;
|
||||
|
||||
|
@ -1417,6 +1415,38 @@ class ViewController: NSViewController {
|
|||
@IBOutlet weak var disk1_closed: NSImageView!
|
||||
@IBOutlet weak var disk2_closed: NSImageView!
|
||||
|
||||
|
||||
func keyEventsOn() {
|
||||
// NSEvent.removeMonitor(NSEvent.EventType.flagsChanged)
|
||||
// NSEvent.addLocalMonitorForEvents(matching: .flagsChanged) {
|
||||
// self.flagsChanged(with: $0)
|
||||
// return $0
|
||||
// }
|
||||
|
||||
// NSEvent.removeMonitor(NSEvent.EventType.keyDown)
|
||||
NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
|
||||
// print("keyDown event")
|
||||
|
||||
if DebuggerWindowController.current?.isKey ?? false {
|
||||
return $0
|
||||
}
|
||||
|
||||
self.keyDown(with: $0)
|
||||
return nil
|
||||
}
|
||||
NSEvent.addLocalMonitorForEvents(matching: .keyUp) {
|
||||
// print("keyUp event")
|
||||
|
||||
if DebuggerWindowController.current?.isKey ?? false {
|
||||
return $0
|
||||
}
|
||||
|
||||
self.keyUp(with: $0)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
|
@ -1480,25 +1510,7 @@ class ViewController: NSViewController {
|
|||
|
||||
self.textDisplayScroller.scaleUnitSquare(to: NSSize(width: 1, height: 1))
|
||||
|
||||
// NSEvent.removeMonitor(NSEvent.EventType.flagsChanged)
|
||||
// NSEvent.addLocalMonitorForEvents(matching: .flagsChanged) {
|
||||
// self.flagsChanged(with: $0)
|
||||
// return $0
|
||||
// }
|
||||
|
||||
// NSEvent.removeMonitor(NSEvent.EventType.keyDown)
|
||||
NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
|
||||
// print("keyDown event")
|
||||
self.keyDown(with: $0)
|
||||
return nil
|
||||
// return $0
|
||||
}
|
||||
NSEvent.addLocalMonitorForEvents(matching: .keyUp) {
|
||||
// print("keyUp event")
|
||||
self.keyUp(with: $0)
|
||||
return nil
|
||||
// return $0
|
||||
}
|
||||
keyEventsOn()
|
||||
|
||||
// displayField.maximumNumberOfLines = textLines
|
||||
// displayField.preferredMaxLayoutWidth = displayField.frame.width
|
||||
|
|
Loading…
Reference in New Issue
Block a user