]>
Commit | Line | Data |
---|---|---|
cf694132 RD |
1 | #!/bin/env python |
2 | #---------------------------------------------------------------------------- | |
3 | # Name: ListCtrl.py | |
4 | # Purpose: Testing lots of stuff, controls, window types, etc. | |
5 | # | |
6 | # Author: Robin Dunn & Gary Dumer | |
7 | # | |
8 | # Created: | |
9 | # RCS-ID: $Id$ | |
10 | # Copyright: (c) 1998 by Total Control Software | |
11 | # Licence: wxWindows license | |
12 | #---------------------------------------------------------------------------- | |
13 | ||
14 | from wxPython.wx import * | |
15 | ||
16 | #--------------------------------------------------------------------------- | |
17 | ||
18 | class TestListCtrlPanel(wxPanel): | |
19 | def __init__(self, parent, log): | |
20 | wxPanel.__init__(self, parent, -1) | |
21 | ||
22 | self.log = log | |
23 | tID = NewId() | |
24 | ||
25 | self.il = wxImageList(16, 16) | |
26 | idx1 = self.il.Add(wxNoRefBitmap('bitmaps/smiles.bmp', wxBITMAP_TYPE_BMP)) | |
27 | ||
28 | self.list = wxListCtrl(self, tID, wxDefaultPosition, wxDefaultSize, | |
29 | wxLC_REPORT|wxSUNKEN_BORDER) | |
30 | self.list.SetImageList(self.il, wxIMAGE_LIST_SMALL) | |
31 | ||
32 | self.list.SetToolTip(wxToolTip("This is a ToolTip!")) | |
33 | wxToolTip_Enable(true) | |
34 | ||
35 | self.list.InsertColumn(0, "Column 0") | |
36 | self.list.InsertColumn(1, "Column 1") | |
37 | self.list.InsertColumn(2, "One More Column (2)") | |
38 | for x in range(50): | |
39 | self.list.InsertImageStringItem(x, "This is item %d" % x, idx1) | |
40 | self.list.SetStringItem(x, 1, "Col 1, item %d" % x) | |
41 | self.list.SetStringItem(x, 2, "item %d in column 2" % x) | |
42 | ||
43 | self.list.SetColumnWidth(0, wxLIST_AUTOSIZE) | |
44 | self.list.SetColumnWidth(1, wxLIST_AUTOSIZE) | |
45 | self.list.SetColumnWidth(2, wxLIST_AUTOSIZE) | |
46 | ||
bb0054cd RD |
47 | self.list.SetItemState(5, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED) |
48 | ||
49 | self.currentItem = 0 | |
50 | EVT_LIST_ITEM_SELECTED(self, tID, self.OnItemSelected) | |
51 | EVT_LEFT_DCLICK(self.list, self.OnDoubleClick) | |
a08cbc01 RD |
52 | EVT_RIGHT_DOWN(self.list, self.OnRightDown) |
53 | ||
64be6958 RD |
54 | # for wxMSW |
55 | EVT_COMMAND_RIGHT_CLICK(self.list, tID, self.OnRightClick) | |
56 | ||
57 | # for wxGTK | |
58 | EVT_RIGHT_UP(self.list, self.OnRightClick) | |
59 | ||
a08cbc01 RD |
60 | |
61 | def OnRightDown(self, event): | |
62 | self.x = event.GetX() | |
64be6958 RD |
63 | self.y = event.GetY() |
64 | self.log.WriteText("x, y = %s\n" % str((self.x, self.y))) | |
a08cbc01 | 65 | event.Skip() |
bb0054cd RD |
66 | |
67 | def OnItemSelected(self, event): | |
68 | self.currentItem = event.m_itemIndex | |
69 | self.log.WriteText("OnItemSelected: %s\n" % self.list.GetItemText(self.currentItem)) | |
70 | ||
71 | def OnDoubleClick(self, event): | |
72 | self.log.WriteText("OnDoubleClick item %s\n" % self.list.GetItemText(self.currentItem)) | |
73 | ||
a08cbc01 | 74 | |
bb0054cd RD |
75 | def OnRightClick(self, event): |
76 | self.log.WriteText("OnRightClick %s\n" % self.list.GetItemText(self.currentItem)) | |
64be6958 | 77 | self.menu = wxMenu() |
a08cbc01 RD |
78 | tPopupID1 = 0 |
79 | tPopupID2 = 1 | |
80 | tPopupID3 = 2 | |
64be6958 RD |
81 | self.menu.Append(tPopupID1, "One") |
82 | self.menu.Append(tPopupID2, "Two") | |
83 | self.menu.Append(tPopupID3, "Three") | |
a08cbc01 RD |
84 | EVT_MENU(self, tPopupID1, self.OnPopupOne) |
85 | EVT_MENU(self, tPopupID2, self.OnPopupTwo) | |
86 | EVT_MENU(self, tPopupID3, self.OnPopupThree) | |
64be6958 | 87 | self.PopupMenu(self.menu, self.x, self.y) |
a08cbc01 RD |
88 | |
89 | def OnPopupOne(self, event): | |
90 | self.log.WriteText("Popup one\n") | |
91 | ||
92 | def OnPopupTwo(self, event): | |
93 | self.log.WriteText("Popup two\n") | |
94 | ||
95 | def OnPopupThree(self, event): | |
96 | self.log.WriteText("Popup three\n") | |
cf694132 RD |
97 | |
98 | def OnSize(self, event): | |
99 | w,h = self.GetClientSizeTuple() | |
100 | self.list.SetDimensions(0, 0, w, h) | |
101 | ||
102 | ||
103 | ||
104 | ||
a08cbc01 RD |
105 | |
106 | ||
cf694132 RD |
107 | #--------------------------------------------------------------------------- |
108 | ||
109 | def runTest(frame, nb, log): | |
110 | win = TestListCtrlPanel(nb, log) | |
111 | return win | |
112 | ||
113 | #--------------------------------------------------------------------------- | |
114 | ||
115 | ||
116 | ||
117 | ||
118 | ||
119 | ||
120 | ||
121 | ||
122 | ||
123 | ||
124 | ||
125 | ||
126 | ||
127 | ||
128 | ||
129 | ||
130 | overview = """\ | |
131 | A list control presents lists in a number of formats: list view, report view, icon view and small icon view. Elements are numbered from zero. | |
132 | ||
133 | wxListCtrl() | |
134 | ------------------------ | |
135 | ||
136 | Default constructor. | |
137 | ||
138 | wxListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, const wxString& name = "listCtrl") | |
139 | ||
140 | Constructor, creating and showing a list control. | |
141 | ||
142 | Parameters | |
143 | ------------------- | |
144 | ||
145 | parent = Parent window. Must not be NULL. | |
146 | ||
147 | id = Window identifier. A value of -1 indicates a default value. | |
148 | ||
149 | pos = Window position. | |
150 | ||
151 | size = Window size. If the default size (-1, -1) is specified then the window is sized appropriately. | |
152 | ||
153 | style = Window style. See wxListCtrl. | |
154 | ||
155 | validator = Window validator. | |
156 | ||
157 | name = Window name. | |
158 | """ |