Add Classic's enhancements to headercol, and add some unittests for it

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@69413 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2011-10-14 01:27:22 +00:00
parent ee1f7f2548
commit 8fd86c8857
2 changed files with 77 additions and 2 deletions

View File

@@ -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 <wx/headercol.h>')
module.addHeaderCode('#include <wx/dataview.h>')
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)

View File

@@ -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()