01:
02:
03:
04:
05:
06:
07:
08:
09: reloadable=True
10: reloadables=[]
11:
12:
13:
14: import gtk,gobject
15:
16:
17:
18: cursor_mover={}
19: for (keyname,step,count) in (
20: ("Home", 8,-1),
21: ("KP_Home", 8,-1),
22: ("Page_Up", 7,-1),
23: ("KP_Page_Up", 7,-1),
24: ("Up", 3,-1),
25: ("KP_Up", 3,-1),
26: ("Down", 3, 1),
27: ("KP_Down", 3, 1),
28: ("Page_Down", 7, 1),
29: ("KP_Page_Down",7, 1),
30: ("End", 8, 1),
31: ("KP_End", 8, 1),
32: ):
33: cursor_mover[gtk.gdk.keyval_from_name(keyname)]=(step,count)
34:
35: def page_cursor_move(rowpath,rsize,step,count):
36: if isinstance(rowpath,tuple) and len(rowpath)==1:
37: (r,)=rowpath
38: elif isinstance(rowpath,int):
39: r=rowpath
40: else:
41: r=0
42: if step==3:
43: r+=count
44: elif step==7:
45: r+=count*4
46: elif step==8:
47: r+=count*rsize
48: else:
49: raise `step,count`
50: if r<0:
51: r=0
52: elif r>=rsize:
53: r=rsize-1
54: if isinstance(rowpath,tuple) and len(rowpath)==1:
55: return (r,)
56: else:
57: return r
58:
59:
60:
61: def reloader(m,visited):
62: if m not in visited:
63: visited[m]=None
64: try:
65: m.__dict__
66: except AttributeError:
67: pass
68: else:
69: if "reloadables" in m.__dict__:
70: for n in m.reloadables:
71: reloader(n,visited)
72: if "reloadable" in m.__dict__:
73: if m.reloadable:
74: print "reloading: ",m.__name__
75: reload(m)
76:
77: