7 #$ event <<open-new-window>>
9 #$ unix <Control-x><Control-n>
11 # (This is labeled as 'Exit'in the File menu)
12 #$ event <<close-all-windows>>
14 #$ unix <Control-x><Control-c>
18 from EditorWindow
import EditorWindow
19 EditorWindow
.Toplevel
= WindowList
.ListedToplevel
# XXX Patch it!
21 def __init__(self
, root
):
25 self
.vars = {} # For EditorWindow.getrawvar (shared Tcl variables)
27 def open(self
, filename
):
29 filename
= self
.canonize(filename
)
30 if os
.path
.isdir(filename
):
31 tkMessageBox
.showerror(
33 "The path %s is a directory." % `filename`
,
36 key
= os
.path
.normcase(filename
)
37 if self
.dict.has_key(key
):
41 if not os
.path
.exists(filename
):
42 tkMessageBox
.showinfo(
44 "Opening non-existent file %s" % `filename`
,
46 return self
.EditorWindow(self
, filename
, key
)
48 def gotofileline(self
, filename
, lineno
=None):
49 edit
= self
.open(filename
)
50 if edit
is not None and lineno
is not None:
54 return self
.EditorWindow(self
)
56 def new_callback(self
, event
):
60 def close_all_callback(self
, event
):
61 for edit
in self
.inversedict
.keys():
67 def close_edit(self
, edit
):
69 key
= self
.inversedict
[edit
]
71 print "Don't know this EditorWindow object. (close)"
75 del self
.inversedict
[edit
]
76 if not self
.inversedict
:
79 def filename_changed_edit(self
, edit
):
80 edit
.saved_change_hook()
82 key
= self
.inversedict
[edit
]
84 print "Don't know this EditorWindow object. (rename)"
86 filename
= edit
.io
.filename
90 self
.inversedict
[edit
] = None
92 filename
= self
.canonize(filename
)
93 newkey
= os
.path
.normcase(filename
)
96 if self
.dict.has_key(newkey
):
97 conflict
= self
.dict[newkey
]
98 self
.inversedict
[conflict
] = None
99 tkMessageBox
.showerror(
101 "You now have multiple edit windows open for %s" % `filename`
,
103 self
.dict[newkey
] = edit
104 self
.inversedict
[edit
] = newkey
111 def canonize(self
, filename
):
112 if not os
.path
.isabs(filename
):
118 filename
= os
.path
.join(pwd
, filename
)
119 return os
.path
.normpath(filename
)
123 from EditorWindow
import fixwordbreaks
128 flist
= FileList(root
)
130 for filename
in sys
.argv
[1:]:
134 if flist
.inversedict
:
137 if __name__
== '__main__':