import wx

class MyFrame(wx.Frame):
    def __init__(self, *vars, **kvars):
        wx.Frame.__init__(self, *vars, **kvars)
        
        # create panel and sizer
        panel = wx.Panel(self)
        sizer = wx.BoxSizer(wx.VERTICAL)
        
        # create simple html listbox and save it as self._lb
        self._lb = wx.SimpleHtmlListBox(panel, -1)
        sizer.Add(self._lb, 1, wx.EXPAND|wx.ALL, 5)
        self._lb.SetMinSize((-1, 100))
        
        # create sub sizer for the buttons
        sub_sizer = wx.BoxSizer(wx.HORIZONTAL)
        btn_add = wx.Button(panel, -1, "Add item")
        sub_sizer.Add(btn_add, 1, wx.EXPAND|wx.RIGHT, 5)
        btn_clear = wx.Button(panel, -1, "Clear")
        sub_sizer.Add(btn_clear, 1, wx.EXPAND)
        sizer.Add(sub_sizer, 0, wx.EXPAND|wx.ALL&~wx.TOP, 5)
        
        # setup sizer
        panel.SetSizer(sizer)
        sizer.Fit(self)
        sizer.SetSizeHints(self)
        
        # init size
        self.SetSize((200,300))
        
        # bind window events
        self.Bind(wx.EVT_BUTTON, self.OnBtnAddClick, btn_add)
        self.Bind(wx.EVT_BUTTON, self.OnBtnClearClick, btn_clear)
    
    def OnBtnAddClick(self, event):
        # create one item
        self._lb.Append("Item %s" % self._lb.GetItemCount())
    
    def OnBtnClearClick(self, event):
        # delete items
        self._lb.Clear()


if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame(None, title="SimpleHtmlListBoxSample")
    frame.Show()
    app.MainLoop()
