]>
Commit | Line | Data |
---|---|---|
cf694132 RD |
1 | from wxPython.wx import * |
2 | ||
3 | #--------------------------------------------------------------------------- | |
4 | ||
5 | class TestComboBox(wxPanel): | |
059a841c RD |
6 | def OnSetFocus(self, evt): |
7 | print "OnSetFocus" | |
8 | evt.Skip() | |
9 | def OnKillFocus(self, evt): | |
10 | print "OnKillFocus" | |
11 | evt.Skip() | |
12 | ||
cf694132 RD |
13 | def __init__(self, parent, log): |
14 | self.log = log | |
15 | wxPanel.__init__(self, parent, -1) | |
16 | ||
17 | sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', | |
1fded56b | 18 | ##'this is a long item that needs a scrollbar...', |
cf694132 RD |
19 | 'six', 'seven', 'eight'] |
20 | ||
21 | wxStaticText(self, -1, "This example uses the wxComboBox control.", | |
22 | wxPoint(8, 10)) | |
23 | ||
24 | wxStaticText(self, -1, "Select one:", wxPoint(15, 50), wxSize(75, 18)) | |
1e6796a0 RD |
25 | cb = wxComboBox(self, 500, "default value", wxPoint(90, 50), wxSize(95, -1), |
26 | sampleList, wxCB_DROPDOWN)#|wxTE_PROCESS_ENTER) | |
1fded56b RD |
27 | ##import win32api, win32con |
28 | ##win32api.SendMessage(cb.GetHandle(), | |
29 | ## win32con.CB_SETHORIZONTALEXTENT, | |
30 | ## 200, 0) | |
31 | ||
8bf5d46e | 32 | EVT_COMBOBOX(self, 500, self.EvtComboBox) |
f6bcfd97 | 33 | EVT_TEXT(self, 500, self.EvtText) |
468c1af0 | 34 | EVT_TEXT_ENTER(self, 500, self.EvtTextEnter) |
059a841c RD |
35 | EVT_SET_FOCUS(cb, self.OnSetFocus) |
36 | EVT_KILL_FOCUS(cb, self.OnKillFocus) | |
37 | ||
3bbeffe4 | 38 | cb.Append("foo", "This is some client data for this item") |
059a841c | 39 | |
1e6796a0 | 40 | cb = wxComboBox(self, 501, "default value", wxPoint(90, 80), wxSize(95, -1), |
68bc8549 RD |
41 | [], wxCB_SIMPLE) |
42 | for item in sampleList: | |
1e4a197e | 43 | cb.Append(item, item.upper()) |
059a841c RD |
44 | EVT_COMBOBOX(self, 501, self.EvtComboBox) |
45 | EVT_TEXT(self, 501, self.EvtText) | |
cf694132 RD |
46 | |
47 | ||
3bbeffe4 RD |
48 | def EvtComboBox(self, evt): |
49 | cb = evt.GetEventObject() | |
50 | data = cb.GetClientData(cb.GetSelection()) | |
51 | self.log.WriteText('EvtComboBox: %s\nClientData: %s\n' % (evt.GetString(), data)) | |
cf694132 | 52 | |
3bbeffe4 RD |
53 | def EvtText(self, evt): |
54 | self.log.WriteText('EvtText: %s\n' % evt.GetString()) | |
f6bcfd97 | 55 | |
468c1af0 RD |
56 | def EvtTextEnter(self, evt): |
57 | self.log.WriteText('EvtTextEnter: does this work?') | |
58 | ||
cf694132 RD |
59 | #--------------------------------------------------------------------------- |
60 | ||
61 | def runTest(frame, nb, log): | |
62 | win = TestComboBox(nb, log) | |
63 | return win | |
64 | ||
65 | #--------------------------------------------------------------------------- | |
66 | ||
67 | ||
68 | ||
69 | ||
70 | ||
71 | ||
72 | ||
1e6796a0 RD |
73 | overview = """\ |
74 | A combobox is like a combination of an edit control and a listbox. It can be displayed as static list with editable or read-only text field; or a drop-down list with text field; or a drop-down list without a text field. | |
cf694132 | 75 | |
1e6796a0 | 76 | """ |
cf694132 RD |
77 | |
78 | ||
79 | ||
1e6796a0 RD |
80 | if __name__ == '__main__': |
81 | import sys,os | |
82 | import run | |
83 | run.main(['', os.path.basename(sys.argv[0])]) | |
cf694132 | 84 |