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)
28 def goodname(self
, filename
):
29 filename
= self
.canonize(filename
)
30 key
= os
.path
.normcase(filename
)
31 if self
.dict.has_key(key
):
33 filename
= edit
.io
.filename
or filename
36 def open(self
, filename
):
38 filename
= self
.canonize(filename
)
39 if os
.path
.isdir(filename
):
40 tkMessageBox
.showerror(
42 "The path %s is a directory." % `filename`
,
45 key
= os
.path
.normcase(filename
)
46 if self
.dict.has_key(key
):
50 if not os
.path
.exists(filename
):
51 tkMessageBox
.showinfo(
53 "Opening non-existent file %s" % `filename`
,
55 return self
.EditorWindow(self
, filename
, key
)
58 return self
.EditorWindow(self
)
60 def new_callback(self
, event
):
64 def close_all_callback(self
, event
):
65 for edit
in self
.inversedict
.keys():
71 def close_edit(self
, edit
):
73 key
= self
.inversedict
[edit
]
75 print "Don't know this EditorWindow object. (close)"
79 del self
.inversedict
[edit
]
80 if not self
.inversedict
:
83 def filename_changed_edit(self
, edit
):
84 edit
.saved_change_hook()
86 key
= self
.inversedict
[edit
]
88 print "Don't know this EditorWindow object. (rename)"
90 filename
= edit
.io
.filename
94 self
.inversedict
[edit
] = None
96 filename
= self
.canonize(filename
)
97 newkey
= os
.path
.normcase(filename
)
100 if self
.dict.has_key(newkey
):
101 conflict
= self
.dict[newkey
]
102 self
.inversedict
[conflict
] = None
103 tkMessageBox
.showerror(
105 "You now have multiple edit windows open for %s" % `filename`
,
107 self
.dict[newkey
] = edit
108 self
.inversedict
[edit
] = newkey
115 def canonize(self
, filename
):
116 if not os
.path
.isabs(filename
):
122 filename
= os
.path
.join(pwd
, filename
)
123 return os
.path
.normpath(filename
)
127 from EditorWindow
import fixwordbreaks
132 flist
= FileList(root
)
134 for filename
in sys
.argv
[1:]:
138 if flist
.inversedict
:
141 if __name__
== '__main__':