diff --git a/docs/sphinx/rest_substitutions/snippets/python/converted/EventFilter.1.py b/docs/sphinx/rest_substitutions/snippets/python/converted/EventFilter.1.py index 1543b05b..53bd9e28 100644 --- a/docs/sphinx/rest_substitutions/snippets/python/converted/EventFilter.1.py +++ b/docs/sphinx/rest_substitutions/snippets/python/converted/EventFilter.1.py @@ -22,15 +22,15 @@ # Update the last user activity t = event.GetEventType() - if t == wx.EVT_KEY_DOWN or t == wx.EVT_MOTION or \ - t == wx.EVT_LEFT_DOWN or t == wx.EVT_RIGHT_DOWN or \ - t == wx.EVT_MIDDLE_DOWN: + if t == wx.EVT_KEY_DOWN.typeId or t == wx.EVT_MOTION.typeId or \ + t == wx.EVT_LEFT_DOWN.typeId or t == wx.EVT_RIGHT_DOWN.typeId or \ + t == wx.EVT_MIDDLE_DOWN.typeId: self.last = wx.DateTime.Now() # Continue processing the event normally as well. - event.Skip() + self.Event_Skip # This function could be called periodically from some timer to @@ -40,4 +40,4 @@ return wx.DateTime.Now() - diff > self.last - \ No newline at end of file + diff --git a/etg/eventfilter.py b/etg/eventfilter.py index e361fa60..ecf5fcb6 100644 --- a/etg/eventfilter.py +++ b/etg/eventfilter.py @@ -33,7 +33,7 @@ def run(): c = module.find('wxEventFilter') assert isinstance(c, etgtools.ClassDef) - c.abstract = True + c.noDefCtor = True #----------------------------------------------------------------- tools.doCommonTweaks(module) diff --git a/unittests/test_eventfilter.py b/unittests/test_eventfilter.py new file mode 100644 index 00000000..060633d2 --- /dev/null +++ b/unittests/test_eventfilter.py @@ -0,0 +1,39 @@ +import unittest, wtc +import wx + + +#--------------------------------------------------------------------------- + +class MyEventFilter(wx.EventFilter): + def __init__(self): + wx.EventFilter.__init__(self) + wx.EvtHandler.AddFilter(self) + self.flag = False + + def __del__(self): + wx.EvtHandler.RemoveFilter(self) + + def FilterEvent(self, event): + t = event.GetEventType() + if t == wx.EVT_HELP.typeId: + self.flag = True + return self.Event_Skip + +class eventfilter_Tests(wtc.WidgetTestCase): + def test_EventFilter_ctor(self): + with self.assertRaises(TypeError): + # it's an abstract class, so it can't be instantiated + evt = wx.EventFilter() + + def test_EventFilter_subclass(self): + filter = MyEventFilter() + wx.PostEvent(self.frame, wx.PyCommandEvent(wx.EVT_HELP.typeId)) + self.myYield() + self.assertTrue(filter.flag) + + +#--------------------------------------------------------------------------- + + +if __name__ == '__main__': + unittest.main()