37
# A list widget that can be embedded in something else
38
class SubList(Tix.ScrolledHList):
39
def __init__(self, parent, columns, options, width, height):
40
Tix.ScrolledHList.__init__(self, parent,
41
options=options, width=width, height=height)
45
self.hlist.header_create(i, text=c[0])
46
self.hlist.column_width(i, c[1])
53
self.hlist.bind("<Button-3>", self.ListMenu)
55
self.bind("<Destroy>", self.OnDestroy)
57
self.hlist.bind("<MouseWheel>", self.Wheel)
58
if (gui.winsys == "x11"):
59
self.hlist.bind("<Button-4>", self.ButtonUp)
60
self.hlist.bind("<Button-5>", self.ButtonDown)
65
def Wheel(self, event):
66
self.hlist.yview("scroll", -(event.delta / 20), "units")
69
def ButtonUp(self, event):
74
def ButtonDown(self, event):
79
def OnDestroy(self, event):
83
def ListMenu(self, event):
85
key = w.nearest(event.y)
86
data = self.list_hash[key]
87
if (data and hasattr(data, "HandleMenu")):
88
data.HandleMenu(event, key, event)
92
def DelItem(self, key):
93
self.hlist.delete_entry(key)
94
del self.list_hash[key]
97
def Append(self, name, values, data=None):
98
key = str(self.currkey)
100
self.hlist.add(key, text=name)
101
self.list_hash[key] = data
105
self.hlist.item_create(key, i, text=str(v))
110
def SetColumn(self, idx, colnum, value):
111
self.hlist.item_configure(idx, colnum, text=value)
114
def SetColumnStyle(self, node, colnum, style):
115
self.hlist.item_configure(node, colnum, style=style)
118
def add_data(self, name, values, data=None):
119
idx = self.Append(name, values, data);
125
def DeleteAllItems(self):
126
self.hlist.delete_all()
36
134
class List(Tix.Toplevel):
37
135
def __init__(self, name, columns):
38
136
Tix.Toplevel.__init__(self)
41
slist = Tix.ScrolledHList(self,
42
options=("hlist.header 1"
43
+ " hlist.itemtype text"
46
+ " hlist.selectForeground black"
47
+ " hlist.selectBackground beige"),
48
width=500, height=500)
139
slist = SubList(self,
141
options=("hlist.header 1"
142
+ " hlist.itemtype text"
145
+ " hlist.selectForeground black"
146
+ " hlist.selectBackground beige"),
147
width=500, height=500)
51
148
slist.pack(side=Tix.TOP, fill=Tix.BOTH, expand=1)
55
listc.header_create(i, text=c[0])
56
listc.column_width(i, c[1])
60
151
self.errstr = gui_errstr.ErrStr(self)
61
152
self.errstr.pack(side=Tix.TOP, fill=Tix.BOTH, expand=1)
95
181
if (hasattr(self, "do_on_close")):
96
182
self.do_on_close()
101
def ListMenu(self, event):
103
key = w.nearest(event.y)
104
data = self.list_hash[key]
105
if (data and hasattr(data, "HandleMenu")):
106
data.HandleMenu(event, key, event)
110
186
def DelItem(self, key):
111
self.listc.delete_entry(key)
112
del self.list_hash[key]
187
self.slist.DelItem(key)
115
190
def Append(self, name, values, data=None):
116
key = str(self.currkey)
118
self.listc.add(key, text=name)
119
self.list_hash[key] = data
123
self.listc.item_create(key, i, text=str(v))
191
return self.slist.Append(name, values, data)
128
193
def SetColumn(self, idx, colnum, value):
129
self.listc.item_configure(idx, colnum, text=value)
194
self.slist.SetColumn(idx, colnum, value)
197
def add_data(self, name, values, data=None):
198
return self.slist.add_data(name, values, data)
200
def DeleteAllItems(self):
201
return self.slist.DeleteAllItems()
132
204
def SetError(self, str):
133
205
self.errstr.SetError(str)
208
# Pass the rest of the functions on to the base list.
209
def DelItem(self, key):
210
self.slist.DelItem(key)
213
def Append(self, name, values, data=None):
214
return self.slist.Append(name, values, data)
216
def SetColumn(self, idx, colnum, value):
217
self.slist.SetColumn(idx, colnum, value)
136
220
def add_data(self, name, values, data=None):
137
idx = self.Append(name, values, data);
221
return self.slist.add_data(name, values, data)
143
223
def DeleteAllItems(self):
144
self.listc.delete_all()
224
return self.slist.DeleteAllItems()