Question on overlay classes.

Tom Kingston


I'm new to NVDA and Python, but not to programming. I'd just like to know if overlay classes are limited to objects that receive focus. They work fine when the object receives focus, however, when I insert an overlay class on a foreground window, it is inserted into clsList, but nothing in the class works and I get an error in the log file for any event.

The reason I'm trying to do this is because I'm writing an add-on for Sound forge. It is an audio editing and mastering suite. It has dozens of plug-in processor windows, most of which use the same window class. Within those windows I need to monitor name and value change for sliders and track bars respectively. Doing so with those events in the main appModule works fine. But of course they're firing on everything. So I have to filter them.

Here's the error I get in the log. This was while testing it in Notepad for the sake of simplicity.

WARNING - (22:03:27.665):
Could not execute function event_gainFocus defined in appModules.notepad module; kwargs: {}
Traceback (most recent call last):
File "eventHandler.pyo", line 100, in next
TypeError: event_gainFocus() takes exactly 3 arguments (1 given)
ERROR - eventHandler.executeEvent (22:03:27.665):
error executing event: gainFocus on <NVDAObjects.Dynamic_OpenDialogDialogIAccessibleWindowNVDAObject object at 0x054988F0> with extra args of {}
Traceback (most recent call last):
File "eventHandler.pyo", line 155, in executeEvent
File "eventHandler.pyo", line 92, in __init__
File "eventHandler.pyo", line 107, in next
File "extensionPoints\util.pyo", line 175, in callWithSupportedKwargs
TypeError: Parameter required for handler not provided: obj

Thanks much,