01:
02:
03:
04:
05:
06:
07:
08:
09: reloadables=[]
10:
11:
12:
13: import gtk,gobject
14: from timesheet import guiview
15:
16:
17:
18: entrywindow=guiview.entrywindow
19:
20: compbook=guiview.compbook
21:
22: commentbox=guiview.entrybox[4]
23:
24: enterbutton=guiview.enterbutton
25:
26: listview=guiview.entryview
27: renderer=[None]*5
28: column=[None]*5
29: fromcolumn={}
30: visiblefields=[]
31: for (col,(name,rendinit,minwidth,resizable)) in enumerate([
32: ("Number",[(0,0.5,0)],50,False),
33: ("Boat",[(2,1.0,0),(3,0.0,0)],200,True),
34: ("Finish",[(4,0.5,0),(5,0.5,0),(6,0.5,0),(7,0.5,0),(8,0.5,0),(9,0.5,0),(10,0.5,0),(11,0.5,0)],100,False),
35: ("Class",[(12,1.0,0),(13,0.0,0),(14,0.5,0),(15,1.0,0)],250,True),
36: ("Comment",[(16,0.0,90)],0,False),
37: ]):
38: column[col]=gtk.TreeViewColumn(name)
39: nrends=len(rendinit)
40: renderer[col]=[None]*nrends
41: for (subcol,(field,xalign,xwidth)) in enumerate(rendinit):
42: visiblefields.append((col,subcol,field))
43: if 6<=field<=11:
44: r=gtk.CellRendererToggle()
45: r.set_property("activatable",True)
46:
47: else:
48: r=gtk.CellRendererText()
49: r.set_property("editable",True)
50: r.set_property("mode",gtk.CELL_RENDERER_MODE_EDITABLE)
51: r.set_property("xalign",xalign)
52: if xwidth:
53: r.set_property("width",xwidth)
54: renderer[col][subcol]=r
55: column[col].pack_start(r,True)
56: if 6<=field<=11:
57: column[col].set_attributes(r,active=field)
58: else:
59: column[col].set_attributes(r,text=field)
60: if minwidth:
61: column[col].set_property("min-width",minwidth)
62: column[col].set_resizable(resizable)
63: fromcolumn[column[col]]=(col,renderer[col])
64: listview.append_column(column[col])
65: visibletoggles=visiblefields[5:11]
66: visiblefields[5:11]=[]
67:
68: