X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c6281ceb776325251aa119c7b496e6152303996a..299647acac7960652aadb008775429c1f8ea9b8d:/wxPython/demo/wxListBox.py?ds=inline diff --git a/wxPython/demo/wxListBox.py b/wxPython/demo/wxListBox.py deleted file mode 100644 index c3a69d6919..0000000000 --- a/wxPython/demo/wxListBox.py +++ /dev/null @@ -1,162 +0,0 @@ -# 11/20/2003 - Jeff Grimmett (grimmtooth@softhome.net) -# -# o Updated for wx namespace -# - -import wx - -#--------------------------------------------------------------------------- - -# This listbox subclass lets you type the starting letters of what you want to -# select, and scrolls the list to the match if it is found. -class FindPrefixListBox(wx.ListBox): - def __init__(self, parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, - choices=[], style=0, validator=wx.DefaultValidator): - wx.ListBox.__init__(self, parent, id, pos, size, choices, style, validator) - self.typedText = '' - self.log = parent.log - self.Bind(wx.EVT_KEY_DOWN, self.OnKey) - - - def FindPrefix(self, prefix): - self.log.WriteText('Looking for prefix: %s\n' % prefix) - - if prefix: - prefix = prefix.lower() - length = len(prefix) - - # Changed in 2.5 because ListBox.Number() is no longer supported. - # ListBox.GetCount() is now the appropriate way to go. - for x in range(self.GetCount()): - text = self.GetString(x) - text = text.lower() - - if text[:length] == prefix: - self.log.WriteText('Prefix %s is found.\n' % prefix) - return x - - self.log.WriteText('Prefix %s is not found.\n' % prefix) - return -1 - - - def OnKey(self, evt): - key = evt.GetKeyCode() - - if key >= 32 and key <= 127: - self.typedText = self.typedText + chr(key) - item = self.FindPrefix(self.typedText) - - if item != -1: - self.SetSelection(item) - - elif key == wx.WXK_BACK: # backspace removes one character and backs up - self.typedText = self.typedText[:-1] - - if not self.typedText: - self.SetSelection(0) - else: - item = self.FindPrefix(self.typedText) - - if item != -1: - self.SetSelection(item) - else: - self.typedText = '' - evt.Skip() - - def OnKeyDown(self, evt): - pass - - -#--------------------------------------------------------------------------- - -class TestListBox(wx.Panel): - def __init__(self, parent, log): - self.log = log - wx.Panel.__init__(self, parent, -1) - - sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', - 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', - 'twelve', 'thirteen', 'fourteen'] - - wx.StaticText(self, -1, "This example uses the wxListBox control.", (45, 10)) - wx.StaticText(self, -1, "Select one:", (15, 50), (65, 18)) - self.lb1 = wx.ListBox(self, 60, (80, 50), (80, 120), sampleList, wx.LB_SINGLE) - self.Bind(wx.EVT_LISTBOX, self.EvtListBox, self.lb1) - self.Bind(wx.EVT_LISTBOX_DCLICK, self.EvtListBoxDClick, self.lb1) - self.lb1.Bind(wx.EVT_RIGHT_UP, self.EvtRightButton) - self.lb1.SetSelection(3) - self.lb1.Append("with data", "This one has data"); - self.lb1.SetClientData(2, "This one has data"); - - - wx.StaticText(self, -1, "Select many:", (200, 50), (65, 18)) - self.lb2 = wx.ListBox(self, 70, (280, 50), (80, 120), sampleList, wx.LB_EXTENDED) - self.Bind(wx.EVT_LISTBOX, self.EvtMultiListBox, self.lb2) - self.lb2.Bind(wx.EVT_RIGHT_UP, self.EvtRightButton) - self.lb2.SetSelection(0) - - sampleList = sampleList + ['test a', 'test aa', 'test aab', - 'test ab', 'test abc', 'test abcc', - 'test abcd' ] - sampleList.sort() - wx.StaticText(self, -1, "Find Prefix:", (15, 250)) - fp = FindPrefixListBox(self, -1, (80, 250), (80, 120), sampleList, wx.LB_SINGLE) - fp.SetSelection(0) - - - def EvtListBox(self, event): - self.log.WriteText('EvtListBox: %s, %s, %s\n' % - (event.GetString(), event.IsSelection(), event.GetSelection())) - - lb = event.GetEventObject() - data = lb.GetClientData(lb.GetSelection()) - - if data is not None: - self.log.WriteText('\tdata: %s\n' % data) - - - def EvtListBoxDClick(self, event): - self.log.WriteText('EvtListBoxDClick: %s\n' % self.lb1.GetSelection()) - self.lb1.Delete(self.lb1.GetSelection()) - - def EvtMultiListBox(self, event): - self.log.WriteText('EvtMultiListBox: %s\n' % str(self.lb2.GetSelections())) - - def EvtRightButton(self, event): - self.log.WriteText('EvtRightButton: %s\n' % event.GetPosition()) - - if event.GetEventObject().GetId() == 70: - selections = list(self.lb2.GetSelections()) - selections.reverse() - - for index in selections: - self.lb2.Delete(index) - - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestListBox(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - -overview = """ -A listbox is used to select one or more of a list of -strings. The strings are displayed in a scrolling box, with the -selected string(s) marked in reverse video. A listbox can be single -selection (if an item is selected, the previous selection is removed) -or multiple selection (clicking an item toggles the item on or off -independently of other selections). - -""" - - -if __name__ == '__main__': - import sys,os - import run - run.main(['', os.path.basename(sys.argv[0])]) -