self._col = col = evt.GetColumn()
self._colSortFlag[col] = int(not self._colSortFlag[col])
self.GetListCtrl().SortItems(self.GetColumnSorter())
- self.__updateImages(oldCol)
+ if wx.Platform != "__WXMAC__" or wx.SystemOptions.GetOptionInt("mac.listctrl.always_use_generic") == 1:
+ self.__updateImages(oldCol)
evt.Skip()
if not self: # avoid a PyDeadObject error
return
+
+ if self.GetSize().height < 32:
+ return # avoid an endless update bug when the height is small.
numCols = self.GetColumnCount()
if numCols == 0: return # Nothing to resize.
def make_editor(self, col_style=wx.LIST_FORMAT_LEFT):
- editor = wx.PreTextCtrl()
style =wx.TE_PROCESS_ENTER|wx.TE_PROCESS_TAB|wx.TE_RICH2
style |= {wx.LIST_FORMAT_LEFT: wx.TE_LEFT,
wx.LIST_FORMAT_CENTRE : wx.TE_CENTRE
}[col_style]
- editor.Create(self, -1, style=style)
+ editor = wx.TextCtrl(self, -1, style=style)
editor.SetBackgroundColour(self.editorBgColour)
editor.SetForegroundColour(self.editorFgColour)
font = self.GetFont()
self.curCol = 0
editor.Hide()
+ if hasattr(self, 'editor'):
+ self.editor.Destroy()
self.editor = editor
self.col_style = col_style
"""
This is a mixin for ListCtrl which add a checkbox in the first
column of each row. It is inspired by limodou's CheckList.py(which
- can be got from his NewEdit) and improved:
+ can be got from his NewEdit) and improved:
+
- You can just use InsertStringItem() to insert new items;
- - Once a checkbox is checked/unchecked, the corresponding item is not
- selected;
+
+ - Once a checkbox is checked/unchecked, the corresponding item
+ is not selected;
+
- You can use SetItemData() and GetItemData();
- - Interfaces are changed to OnCheckItem(), IsChecked(), CheckItem().
+
+ - Interfaces are changed to OnCheckItem(), IsChecked(),
+ CheckItem().
You should not set a imagelist for the ListCtrl once this mixin is used.
"""