Scroll ↕

Event Taps Testbench is a free developer utility that exercises most of the capabilities of our PFEventTaps Framework and Apple's Quartz Event Taps API. To get the most value out of Event Taps Testbench, you must understand the basic operations and structures of the underlying mechanisms. We therefore repeat here much of our description of the PFEventTaps Framework's features, but recast as a description of the features of the Event Taps Testbench utility.

Event Taps Testbench and Quartz Event Taps

Apple's Quartz Event Taps API implements the three concepts of an event tap to monitor and intercept user input events, an event source such as a keyboard, mouse, trackpad, scroll wheel, tablet, tablet pointer, or virtual device, and a user input event that is generated by an event source.

The PFEventTaps Framework implements these same concepts in its PFEventTap, PFEventSource, and PFEvent classes, each of which instantiates and encapsulates an associated Event Taps API object and makes its capabilities available to an assistive application using standard Cocoa techniques. For example, an assistive application using the PFEventTaps Framework can implement optional delegate methods declared in the framework’s PFEventTapsDelegate formal protocol to observe Quartz events as they are generated by user input devices and virtual devices, and to filter, modify, block, and respond to the events.

Event Taps Testbench is a developer utility that allows you to explore the Quartz Event Taps API and the capabilities of the PFEventTaps Framework by exercising all of the framework's features. You can monitor user input events generated by devices such as a mouse, a keyboard, or a tablet in real time as they occur. You can also filter, modify, block, and respond to user input events and generate additional synthetic events. You can perform all of these tasks:

  • Create and install PFEventTap objects that intercept user input events at any of several points in the system's low-level event handling machinery.
  • Implement delegate or callback methods that filter, modify, block, and respond to the events.
  • Retrieve PFEvent objects that represent the user input events, and use the PFEvent objects to filter, modify, block, and respond to the events, even sending additional synthetic events before or after the received event.
  • Create PFEvent objects that post independent synthetic user input events.
  • Create a PFEventSource object that represents a user input device such as a mouse, keyboard, scroll wheel, tablet, or tablet pointer, or a virtual device, and monitor current state information about the associated device outside of the event stream.

Event Taps Testbench provides an intuitive user interface that not only helps you to test all of these features of the Quartz Event Taps API and the PFEventTaps Framework, but that also helps you to learn and understand how event taps work and how you can make use of them in your applications. Launch Event Taps Testbench and choose Help > Event Taps Testbench Help for complete instructions on how to use the application. Visit PFiddlesoft Frameworks Downloads for information about downloading and licensing the PFiddlesoft Frameworks, including the PFEventTaps Framework.