diff --git a/etg/headercol.py b/etg/headercol.py index ad639b39..2b63acd8 100644 --- a/etg/headercol.py +++ b/etg/headercol.py @@ -1,6 +1,7 @@ #--------------------------------------------------------------------------- # Name: etg/headercol.py # Author: Kevin Ollivier +# Robin Dunn # # Created: 10-Sept-2011 # Copyright: (c) 2011 by Kevin Ollivier @@ -31,18 +32,50 @@ def run(): # customizing the generated code and docstrings. module.addHeaderCode('#include ') - module.addHeaderCode('#include ') c = module.find('wxHeaderColumn') + isinstance(c, etgtools.ClassDef) c.abstract = True + c.addAutoProperties() + + # addAutoProperties doesn't recognize 'IsFoo' as a getter, but it still + # makes sense to use these, so add them manually. + c.addProperty('Resizeable', 'IsResizeable') + c.addProperty('Sortable', 'IsSortable') + c.addProperty('Reorderable', 'IsReorderable') + c.addProperty('Hidden', 'IsHidden') + c.addProperty('Shown', 'IsShown') + c.addProperty('SortOrderAscending', 'IsSortOrderAscending') + c.addProperty('SortKey', 'IsSortKey') + c = module.find('wxSettableHeaderColumn') c.abstract = True + c.addAutoProperties() + + # This class adds some setters to go with the getters (and IsFoo) methods + # in the base class, but we can't make properties without them being in + # the current class, so we'll monkey-patch in the properties from Python + # code instead. + c.addPyProperty('Title', 'HeaderColumn.GetTitle', 'SetTitle') + c.addPyProperty('Bitmap', 'HeaderColumn.GetBitmap', 'SetBitmap') + c.addPyProperty('Width', 'HeaderColumn.GetWidth', 'SetWidth') + c.addPyProperty('MinWidth', 'HeaderColumn.GetMinWidth', 'SetMinWidth') + c.addPyProperty('Alignment', 'HeaderColumn.GetAlignment', 'SetAlignment') + c.addPyProperty('Flags', 'HeaderColumn.GetFlags', 'SetFlags') + + c.addPyProperty('Resizeable', 'HeaderColumn.IsResizeable', 'SetResizeable') + c.addPyProperty('Sortable', 'HeaderColumn.IsSortable', 'SetSortable') + c.addPyProperty('Reorderable', 'HeaderColumn.IsReorderable', 'SetReorderable') + c.addPyProperty('Hidden', 'HeaderColumn.IsHidden', 'SetHidden') + + + c = module.find('wxHeaderColumnSimple') + c.addAutoProperties() #----------------------------------------------------------------- tools.doCommonTweaks(module) - tools.addAutoProperties(module) tools.runGenerators(module) diff --git a/unittests/test_headercol.py b/unittests/test_headercol.py new file mode 100644 index 00000000..4113c6f3 --- /dev/null +++ b/unittests/test_headercol.py @@ -0,0 +1,42 @@ +import imp_unittest, unittest +import wtc +import wx +import os + +pngFile = os.path.join(os.path.dirname(__file__), 'pointy.png') + +#--------------------------------------------------------------------------- + +class headercol_Tests(wtc.WidgetTestCase): + + def test_headercolCtor1(self): + hc = wx.HeaderColumnSimple('title', 80, wx.ALIGN_RIGHT, wx.COL_RESIZABLE) + + + def test_headercolCtor2(self): + bmp = wx.Bitmap(pngFile) + hc = wx.HeaderColumnSimple(bmp, flags=wx.COL_RESIZABLE) + hc.Bitmap + + + def test_headercolProperties(self): + hc = wx.HeaderColumnSimple('title', 80, wx.ALIGN_RIGHT, wx.COL_RESIZABLE) + # normal properties + hc.Title + hc.Width + hc.MinWidth + hc.Alignment + hc.Flags + + # monkey-patched + hc.Hidden + self.assertTrue(hc.Hidden == hc.IsHidden()) + hc.Hidden = True + self.assertTrue(hc.Hidden == hc.IsHidden()) + self.assertTrue(hc.Shown == hc.IsShown()) + +#--------------------------------------------------------------------------- + + +if __name__ == '__main__': + unittest.main()