mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-04 19:10:09 +01:00
Add some Python methods and properties that CheckListBox had in Classic, and some unittests for them too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@69262 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -31,6 +31,8 @@ def run():
|
||||
# customizing the generated code and docstrings.
|
||||
|
||||
c = module.find('wxCheckListBox')
|
||||
assert isinstance(c, etgtools.ClassDef)
|
||||
|
||||
c.find('wxCheckListBox').findOverload('wxString choices').ignore()
|
||||
c.find('wxCheckListBox').findOverload('wxArrayString').find('choices').default = 'wxArrayString()'
|
||||
|
||||
@@ -39,6 +41,49 @@ def run():
|
||||
|
||||
tools.fixWindowClass(c)
|
||||
|
||||
c.addPyMethod('GetChecked', '(self)', doc="""\
|
||||
GetChecked()
|
||||
|
||||
Return a sequence of integers corresponding to the checked items in
|
||||
the control, based on `IsChecked`.""",
|
||||
body="return tuple([i for i in range(self.Count) if self.IsChecked(i)])")
|
||||
|
||||
c.addPyMethod('GetCheckedStrings', '(self)',
|
||||
doc="""\
|
||||
GetCheckedStrings()
|
||||
|
||||
Return a tuple of strings corresponding to the checked
|
||||
items of the control, based on `GetChecked`.""",
|
||||
body="return tuple([self.GetString(i) for i in self.GetChecked()])")
|
||||
|
||||
c.addPyMethod('SetChecked', '(self, indexes)',
|
||||
doc="""\
|
||||
SetChecked(indexes)
|
||||
|
||||
Sets the checked state of items if the index of the item is
|
||||
found in the indexes sequence.""",
|
||||
body="""\
|
||||
for i in indexes:
|
||||
assert 0 <= i < self.Count, "Index (%s) out of range" % i
|
||||
for i in range(self.Count):
|
||||
self.Check(i, i in indexes)""")
|
||||
|
||||
c.addPyMethod('SetCheckedStrings', '(self, strings)',
|
||||
doc="""\
|
||||
SetCheckedStrings(strings)
|
||||
|
||||
Sets the checked state of items if the item's string is found
|
||||
in the strings sequence.""",
|
||||
body="""\
|
||||
for s in strings:
|
||||
assert s in self.GetStrings(), "String ('%s') not found" % s
|
||||
for i in range(self.Count):
|
||||
self.Check(i, self.GetString(i) in strings)""")
|
||||
|
||||
c.addPyProperty('Checked GetChecked SetChecked')
|
||||
c.addPyProperty('CheckedStrings GetCheckedStrings SetCheckedStrings')
|
||||
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
tools.doCommonTweaks(module)
|
||||
tools.addGetterSetterProps(module)
|
||||
|
||||
@@ -16,6 +16,34 @@ class CheckListBoxTests(wtc.WidgetTestCase):
|
||||
c = wx.CheckListBox()
|
||||
c.Create(self.frame, choices="one two three four".split())
|
||||
|
||||
def test_pyMethods1(self):
|
||||
c = wx.CheckListBox(self.frame, choices="one two three four".split())
|
||||
self.assertTrue(callable(c.GetChecked))
|
||||
self.assertTrue(callable(c.GetCheckedStrings))
|
||||
self.assertTrue(callable(c.SetChecked))
|
||||
self.assertTrue(callable(c.SetCheckedStrings))
|
||||
|
||||
def test_pyMethods2(self):
|
||||
c = wx.CheckListBox(self.frame, choices="one two three four".split())
|
||||
c.SetChecked([1,3])
|
||||
self.assertTrue(set(c.GetChecked()) == set([1,3]))
|
||||
c.SetCheckedStrings(['one', 'two'])
|
||||
self.assertTrue(set(c.GetCheckedStrings()) == set(['one', 'two']))
|
||||
self.assertTrue(set(c.GetChecked()) == set([0,1]))
|
||||
|
||||
def test_pyProperties(self):
|
||||
c = wx.CheckListBox(self.frame, choices="one two three four".split())
|
||||
c.SetChecked([1,3])
|
||||
self.assertTrue(set(c.Checked) == set([1,3]))
|
||||
|
||||
c.Checked = [2]
|
||||
self.assertTrue(set(c.Checked) == set([2]))
|
||||
|
||||
c.SetCheckedStrings(['one', 'two'])
|
||||
self.assertTrue(set(c.CheckedStrings) == set(['one', 'two']))
|
||||
|
||||
c.CheckedStrings = ['three']
|
||||
self.assertTrue(set(c.GetChecked()) == set([2]))
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user