mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-05 11:30:06 +01:00
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:
@@ -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)
|
||||
|
||||
|
||||
|
||||
42
unittests/test_headercol.py
Normal file
42
unittests/test_headercol.py
Normal 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()
|
||||
Reference in New Issue
Block a user