X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c6281ceb776325251aa119c7b496e6152303996a..299647acac7960652aadb008775429c1f8ea9b8d:/wxPython/demo/wxVListBox.py diff --git a/wxPython/demo/wxVListBox.py b/wxPython/demo/wxVListBox.py deleted file mode 100644 index cbe7707698..0000000000 --- a/wxPython/demo/wxVListBox.py +++ /dev/null @@ -1,135 +0,0 @@ -# 11/22/2003 - Jeff Grimmett (grimmtooth@softhome.net) -# -# o Updated for wx namespace -# - -import wx - -#---------------------------------------------------------------------- - -# The wxVListBox is much like a regular wxListBox except you draw the -# items yourself and the items can vary in height. -class MyVListBox(wx.VListBox): - - # This method must be overridden. When called it should draw the - # n'th item on the dc within the rect. How it is drawn, and what - # is drawn is entirely up to you. - def OnDrawItem(self, dc, rect, n): - if self.GetSelection() == n: - c = wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT) - else: - c = self.GetForegroundColour()#wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT) - dc.SetTextForeground(c) - dc.DrawLabel(self._getItemText(n), rect, - wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL) - - # This method must be overridden. It should return the height - # required to draw the n'th item. - def OnMeasureItem(self, n): - height = 0 - - for line in self._getItemText(n).split('\n'): - w, h = self.GetTextExtent(line) - height += h - - return height + 5 - - - # These are also overridable: - # - # OnDrawSeparator(dc, rect, n) - # Draw a separator between items. Note that rect may be reduced - # in size if desired so OnDrawItem gets a smaller rect. - # - # OnDrawBackground(dc, rect, n) - # Draw the background and maybe a border if desired. - - - def _getItemText(self, item): - if item % 2 == 0: - return "This is item# %d" % item - else: - return "This is item# %d\n with an extra line" % item - -#---------------------------------------------------------------------- - -# The wx.HtmlListBox derives from wx.VListBox, but draws each item -# itself as a wx.HtmlCell. -class MyHtmlListBox(wx.HtmlListBox): - - def OnGetItem(self, n): - if n % 2 == 0: - return "This is item# %d" % n - else: - return "This is item# %d
Any HTML is okay." % n - -#---------------------------------------------------------------------- - -class TestPanel(wx.Panel): - def __init__(self, parent, log): - self.log = log - wx.Panel.__init__(self, parent, -1) - spacer = 50 - - vlb = MyVListBox(self, -1, size=(150, 250), style=wx.BORDER_SUNKEN) - vlb.SetItemCount(50) - vlb.SetSelection(0) - vlb.SetFocus() - vlbSizer = wx.BoxSizer(wx.VERTICAL) - vlbSizer.Add((spacer, spacer)) - vlbSizer.Add(wx.StaticText(self, -1, "wx.VListBox"), 0, 5, wx.ALL) - vlbSizer.Add(vlb) - - hlb = MyHtmlListBox(self, -1, size=(150, 250), style=wx.BORDER_SUNKEN) - hlb.SetItemCount(50) - hlb.SetSelection(0) - hlbSizer = wx.BoxSizer(wx.VERTICAL) - hlbSizer.Add((spacer, spacer)) - hlbSizer.Add(wx.StaticText(self, -1, "wx.HtmlListBox"), 0, 5, wx.ALL) - hlbSizer.Add(hlb) - - sizer = wx.BoxSizer(wx.HORIZONTAL) - sizer.Add((spacer, spacer)) - sizer.Add(vlbSizer) - sizer.Add((spacer, spacer)) - sizer.Add((spacer, spacer)) - sizer.Add(hlbSizer) - - self.SetSizer(sizer) - - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestPanel(nb, log) - return win - -#---------------------------------------------------------------------- - - - -overview = """ -

wxVListBox and wxHtmlListBox

-
- -The "V" in wxVListBox stands for both "virtual" because it can have an -unlimited number of items since it doesn't store them itself, and -"variable" since items can vary in height. It has much the same -interface as wxListBox and also emits the same events so you can use -the same EVT_LISTBOX function to connect a handler. -

- -The wxHtmlListBox derives from wxVListBox, but draws each item itself -as a wxHtmlCell. This means that you just need to provide a snippet -of HTML for each item when requested. - - -""" - - - -if __name__ == '__main__': - import sys,os - import run - run.main(['', os.path.basename(sys.argv[0])]) -