diff --git a/etg/_html.py b/etg/_html.py
index 9aa3d96e..65f65ab5 100644
--- a/etg/_html.py
+++ b/etg/_html.py
@@ -39,6 +39,8 @@ INCLUDES = [
'helpdlg',
'helpwnd',
'helpctrl',
+
+ 'htmllbox',
]
diff --git a/etg/htmllbox.py b/etg/htmllbox.py
new file mode 100644
index 00000000..24b9a495
--- /dev/null
+++ b/etg/htmllbox.py
@@ -0,0 +1,84 @@
+#---------------------------------------------------------------------------
+# Name: etg/htmllbox.py
+# Author: Robin Dunn
+#
+# Created: 18-Mar-2013
+# Copyright: (c) 2013 by Total Control Software
+# License: wxWindows License
+#---------------------------------------------------------------------------
+
+import etgtools
+import etgtools.tweaker_tools as tools
+
+PACKAGE = "wx"
+MODULE = "_html"
+NAME = "htmllbox" # Base name of the file to generate to for this script
+DOCSTRING = ""
+
+# The classes and/or the basename of the Doxygen XML files to be processed by
+# this script.
+ITEMS = [ "wxHtmlListBox",
+ "wxSimpleHtmlListBox",
+ ]
+
+#---------------------------------------------------------------------------
+
+def run():
+ # Parse the XML file(s) building a collection of Extractor objects
+ module = etgtools.ModuleDef(PACKAGE, MODULE, NAME, DOCSTRING)
+ etgtools.parseDoxyXML(module, ITEMS)
+
+ #-----------------------------------------------------------------
+ # Tweak the parsed meta objects in the module object as needed for
+ # customizing the generated code and docstrings.
+
+ c = module.find('wxHtmlListBox')
+ assert isinstance(c, etgtools.ClassDef)
+ tools.fixWindowClass(c, False, False)
+ tools.addWindowVirtuals(c)
+
+ module.addGlobalStr('wxHtmlListBoxNameStr', c)
+
+ # We only need one of these
+ c.find('GetFileSystem').ignore()
+
+ # let sip know that these pure virtuals have been implemented in this class
+ c.addItem(etgtools.WigCode("""\
+ protected:
+ virtual void OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const;
+ virtual wxCoord OnMeasureItem(size_t n) const;
+ """))
+
+
+ c = module.find('wxSimpleHtmlListBox')
+ tools.fixWindowClass(c)
+
+ # ignore the ctor and Create method taking the C array
+ c.find('wxSimpleHtmlListBox').findOverload('int n').ignore()
+ c.find('Create').findOverload('int n').ignore()
+
+ c.find('wxSimpleHtmlListBox.choices').default = 'wxArrayString()'
+ c.find('Create.choices').default = 'wxArrayString()'
+
+ # let sip know that these pure virtuals have been implemented in this class
+ c.addItem(etgtools.WigCode("""\
+ virtual unsigned int GetCount() const;
+ virtual wxString GetString(unsigned int n) const;
+ virtual void SetString(unsigned int n, const wxString & string);
+ virtual void SetSelection(int n);
+ virtual int GetSelection() const;
+
+ protected:
+ virtual wxString OnGetItem(size_t n) const;
+ """))
+
+
+ #-----------------------------------------------------------------
+ tools.doCommonTweaks(module)
+ tools.runGenerators(module)
+
+
+#---------------------------------------------------------------------------
+if __name__ == '__main__':
+ run()
+
diff --git a/unittests/test_htmllbox.py b/unittests/test_htmllbox.py
new file mode 100644
index 00000000..144868b7
--- /dev/null
+++ b/unittests/test_htmllbox.py
@@ -0,0 +1,29 @@
+import imp_unittest, unittest
+import wtc
+import wx
+import wx.html
+
+#---------------------------------------------------------------------------
+
+class htmllbox_Tests(wtc.WidgetTestCase):
+
+ def test_htmllbox1(self):
+ lb = wx.html.SimpleHtmlListBox(self.frame, choices=['one', 'two', 'three'])
+
+ def test_htmllbox2(self):
+ lb = wx.html.SimpleHtmlListBox()
+ lb.Create(self.frame, choices=['one', 'two', 'three'])
+
+ def test_htmllbox3(self):
+ class MyHtmlListBox(wx.html.HtmlListBox):
+ def OnGetItem(self, n):
+ return 'this is item %d' % n
+
+ lb = MyHtmlListBox(self.frame)
+ lb.SetItemCount(15)
+
+
+#---------------------------------------------------------------------------
+
+if __name__ == '__main__':
+ unittest.main()