PyScore

01: # -*- python -*-
02: ### entriesview.py ### python package PyScore.timesheet module entries.view ###
03: 
04: # PyScore
05: # a race scoring programme
06: # written by Matt Draisey
07: # 2004 April 6
08: 
09: reloadables=[]
10: 
11: ### entriesview.py ### python package PyScore.timesheet module entries.view ###
12: 
13: import gtk,gobject
14: from timesheet import guiview
15: 
16: # link to the glade built widgets
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:             #r.set_property("mode",gtk.CELL_RENDERER_MODE_EDITABLE)
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: ### entriesview.py ### python package PyScore.timesheet module entries.view ###