#!/usr/bin/env python from wxPython.wx import * from wxPython.lib.mixins.listctrl import wxListCtrlAutoWidthMixin from libbe import bugdir class MyApp(wxApp): def OnInit(self): frame = wxFrame(NULL, -1, "Bug display") frame.Show(true) self.SetTopWindow(frame) sizer = wxBoxSizer(wxVERTICAL) bugs = BugList(frame) bugs.SetSize((400, 65)) # bugs.SetDimensions(-1, -1, -1, -1) sizer.Add(bugs, wxGROW) frame.SetSizer(sizer) frame.Layout() return true class BugList(wxListCtrl, wxListCtrlAutoWidthMixin): def __init__(self, parent): wxListCtrl.__init__(self, parent, -1, style = wxLC_REPORT|wxLC_VRULES|wxLC_HRULES) wxListCtrlAutoWidthMixin.__init__(self) columns = ("Severity", "Creator", "Summary") for x in range(len(columns)): self.InsertColumn(x, columns[x]) self.SetColumnWidth(x, wxLIST_AUTOSIZE_USEHEADER) for bug in [b for b in bugdir.tree_root(".").list() if b.active]: id = self.InsertStringItem(self.GetItemCount(), bug.severity) self.SetStringItem(id, 1, bug.creator) self.SetStringItem(id, 2, bug.summary) self.EnsureVisible(id) for x in range(len(columns)): self.SetColumnWidth(x, wxLIST_AUTOSIZE) conts_width = self.GetColumnWidth(x) self.SetColumnWidth(x, wxLIST_AUTOSIZE_USEHEADER) if conts_width > self.GetColumnWidth(x): self.SetColumnWidth(x, conts_width) app = MyApp(0) app.MainLoop()