2 #----------------------------------------------------------------------------
4 # Purpose: Testing lots of stuff, controls, window types, etc.
6 # Author: Robin Dunn & Gary Dumer
10 # Copyright: (c) 1998 by Total Control Software
11 # Licence: wxWindows license
12 #----------------------------------------------------------------------------
14 from wxPython
.wx
import *
16 #---------------------------------------------------------------------------
18 class TestListCtrlPanel(wxPanel
):
19 def __init__(self
, parent
, log
):
20 wxPanel
.__init
__(self
, parent
, -1)
25 self
.il
= wxImageList(16, 16)
26 idx1
= self
.il
.Add(wxBitmap('bitmaps/smiles.bmp', wxBITMAP_TYPE_BMP
))
28 self
.list = wxListCtrl(self
, tID
, wxDefaultPosition
, wxDefaultSize
,
29 wxLC_REPORT|wxSUNKEN_BORDER
)
30 self
.list.SetImageList(self
.il
, wxIMAGE_LIST_SMALL
)
32 self
.list.SetToolTip(wxToolTip("This is a ToolTip!"))
33 wxToolTip_Enable(true
)
35 self
.list.InsertColumn(0, "Column 0")
36 self
.list.InsertColumn(1, "Column 1")
37 self
.list.InsertColumn(2, "One More Column (2)")
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 self
.list.SetItemData(x
, x
*2)
44 self
.list.SetColumnWidth(0, wxLIST_AUTOSIZE
)
45 self
.list.SetColumnWidth(1, wxLIST_AUTOSIZE
)
46 self
.list.SetColumnWidth(2, wxLIST_AUTOSIZE
)
48 self
.list.SetItemState(5, wxLIST_STATE_SELECTED
, wxLIST_STATE_SELECTED
)
51 EVT_LIST_ITEM_SELECTED(self
, tID
, self
.OnItemSelected
)
52 EVT_LIST_DELETE_ITEM(self
, tID
, self
.OnItemDelete
)
53 EVT_LEFT_DCLICK(self
.list, self
.OnDoubleClick
)
54 EVT_RIGHT_DOWN(self
.list, self
.OnRightDown
)
57 EVT_COMMAND_RIGHT_CLICK(self
.list, tID
, self
.OnRightClick
)
60 EVT_RIGHT_UP(self
.list, self
.OnRightClick
)
63 def OnRightDown(self
, event
):
66 self
.log
.WriteText("x, y = %s\n" % str((self
.x
, self
.y
)))
69 def OnItemSelected(self
, event
):
70 self
.currentItem
= event
.m_itemIndex
71 self
.log
.WriteText("OnItemSelected: %s\n" % self
.list.GetItemText(self
.currentItem
))
73 def OnItemDelete(self
, event
):
74 self
.log
.WriteText("OnItemDelete\n")
77 def OnDoubleClick(self
, event
):
78 self
.log
.WriteText("OnDoubleClick item %s\n" % self
.list.GetItemText(self
.currentItem
))
81 def OnRightClick(self
, event
):
82 self
.log
.WriteText("OnRightClick %s\n" % self
.list.GetItemText(self
.currentItem
))
89 menu
.Append(tPopupID1
, "One")
90 menu
.Append(tPopupID2
, "Two")
91 menu
.Append(tPopupID3
, "Three")
92 menu
.Append(tPopupID4
, "DeleteAllItems")
93 menu
.Append(tPopupID5
, "GetItem")
94 EVT_MENU(self
, tPopupID1
, self
.OnPopupOne
)
95 EVT_MENU(self
, tPopupID2
, self
.OnPopupTwo
)
96 EVT_MENU(self
, tPopupID3
, self
.OnPopupThree
)
97 EVT_MENU(self
, tPopupID4
, self
.OnPopupFour
)
98 EVT_MENU(self
, tPopupID5
, self
.OnPopupFive
)
99 self
.PopupMenu(menu
, wxPoint(self
.x
, self
.y
))
102 def OnPopupOne(self
, event
):
103 self
.log
.WriteText("Popup one\n")
105 def OnPopupTwo(self
, event
):
106 self
.log
.WriteText("Popup two\n")
108 def OnPopupThree(self
, event
):
109 self
.log
.WriteText("Popup three\n")
111 def OnPopupFour(self
, event
):
112 self
.list.DeleteAllItems()
114 def OnPopupFive(self
, event
):
115 item
= self
.list.GetItem(self
.currentItem
)
116 print item
.m_text
, item
.m_itemId
, self
.list.GetItemData(self
.currentItem
)
118 def OnSize(self
, event
):
119 w
,h
= self
.GetClientSizeTuple()
120 self
.list.SetDimensions(0, 0, w
, h
)
127 #---------------------------------------------------------------------------
129 def runTest(frame
, nb
, log
):
130 win
= TestListCtrlPanel(nb
, log
)
133 #---------------------------------------------------------------------------
151 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.
154 ------------------------
158 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")
160 Constructor, creating and showing a list control.
165 parent = Parent window. Must not be NULL.
167 id = Window identifier. A value of -1 indicates a default value.
169 pos = Window position.
171 size = Window size. If the default size (-1, -1) is specified then the window is sized appropriately.
173 style = Window style. See wxListCtrl.
175 validator = Window validator.