// // DisplayView.swift // Steve ][ // // Created by Tamas Rudnai on 5/11/21. // Copyright © 2021 GameAlloy. All rights reserved. // import Cocoa class DisplayView: NSTextView { override var acceptsFirstResponder: Bool { get { return true } } var trackingArea: NSTrackingArea? func debugDisplayContraints() { print( "debugDisplayContraints ----------------------------------" ) if let view = window?.contentView { for constraint in view.constraints { print( "debugDisplayContraints:", constraint.identifier ?? "{Constaint has no identifier}", constraint.constant ) } } } /// Install tracking area if window is set, remove previous one if needed. func installTrackingArea() { guard let window = window else { return } window.acceptsMouseMovedEvents = true if trackingArea != nil { removeTrackingArea(trackingArea!) } let trackingOptions : NSTrackingArea.Options = [.activeAlways, .mouseEnteredAndExited, .mouseMoved] trackingArea = NSTrackingArea(rect: bounds, options: trackingOptions, owner: self, userInfo: nil) self.addTrackingArea(trackingArea!) } // Called when layout is modified override func updateTrackingAreas() { super.updateTrackingAreas() installTrackingArea() } override func acceptsFirstMouse(for event: NSEvent?) -> Bool { return true } override func mouseDown(with event: NSEvent) { // print(#function + "DisplayView") if let dbgVC = DebuggerViewController.shared { dbgVC.mouseDown(with: event) } } override func rightMouseDown(with event: NSEvent) { // print(#function + "DisplayView") DebuggerViewController.shared?.rightMouseDown(with: event) } // override func rightMouseUp(with event: NSEvent) { // // print(#function + "DisplayView") // DebuggerViewController.shared?.rightMouseUp(with: event) // } // override func otherMouseDown(with event: NSEvent) { // // print(#function + "DisplayView") // DebuggerViewController.shared?.otherMouseDown(with: event) // } // // override func otherMouseUp(with event: NSEvent) { // // print(#function + "DisplayView") // DebuggerViewController.shared?.otherMouseUp(with: event) // } }