1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#!/usr/bin/env python
from wxPython.wx import *
from wxPython.lib.mixins.listctrl import wxListCtrlAutoWidthMixin
import sys, os.path
sys.path.append(os.path.realpath(os.path.join".."))
from libbe import bugdir
class MyApp(wxApp):
def OnInit(self):
frame = wxFrame(NULL, -1, "Bug display")
frame.Show(true)
self.SetTopWindow(frame)
panel = wxPanel(frame, -1, style=(wxVSCROLL | wxHSCROLL))
panel.SetSize((500, 400))
sizer = wxBoxSizer(wxVERTICAL)
sizer.Add(panel, wxGROW)
frame.SetSizer(sizer)
bugs = BugList(panel)
bugs.SetSize((400, -1))
# bugs.SetDimensions(-1, -1, -1, -1)
sizer = wxBoxSizer(wxVERTICAL)
sizer.Add(bugs, wxGROW)
frame.SetSizer(sizer)
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()
|