summaryrefslogtreecommitdiffstats
path: root/Lib/lib-stdwin/dirwin.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/lib-stdwin/dirwin.py')
-rw-r--r--Lib/lib-stdwin/dirwin.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/Lib/lib-stdwin/dirwin.py b/Lib/lib-stdwin/dirwin.py
new file mode 100644
index 0000000..5df85e7
--- /dev/null
+++ b/Lib/lib-stdwin/dirwin.py
@@ -0,0 +1,28 @@
+# Module 'dirwin'
+
+# Directory windows, a subclass of listwin
+
+import gwin
+import listwin
+import anywin
+import path
+import dircache
+
+def action(w, string, i, detail):
+ (h, v), clicks, button, mask = detail
+ if clicks = 2:
+ name = path.cat(w.name, string)
+ try:
+ w = anywin.open(name)
+ except posix.error, why:
+ stdwin.message('Can\'t open ' + name + ': ' + why[1])
+
+def open(name):
+ name = path.cat(name, '')
+ list = dircache.opendir(name)[:]
+ list.sort()
+ dircache.annotate(name, list)
+ w = listwin.open(name, list)
+ w.name = name
+ w.action = action
+ return w