blob: e8b01702074f25a125bd08858451828d35fe039f [file] [log] [blame]
Guido van Rossumc6360141990-10-13 19:23:40 +00001# Module 'dirwin'
2
3# Directory windows, a subclass of listwin
4
Guido van Rossum25d7caf1992-03-31 19:04:48 +00005import os
Guido van Rossumc6360141990-10-13 19:23:40 +00006import gwin
7import listwin
8import anywin
Guido van Rossumc6360141990-10-13 19:23:40 +00009import dircache
10
11def action(w, string, i, detail):
12 (h, v), clicks, button, mask = detail
Guido van Rossumbdfcfcc1992-01-01 19:35:13 +000013 if clicks == 2:
Guido van Rossum25d7caf1992-03-31 19:04:48 +000014 name = os.path.join(w.name, string)
Guido van Rossumc6360141990-10-13 19:23:40 +000015 try:
Guido van Rossum2dbf39c1990-10-21 16:15:58 +000016 w2 = anywin.open(name)
17 w2.parent = w
Guido van Rossum25d7caf1992-03-31 19:04:48 +000018 except os.error, why:
Guido van Rossumc6360141990-10-13 19:23:40 +000019 stdwin.message('Can\'t open ' + name + ': ' + why[1])
20
21def open(name):
Guido van Rossum25d7caf1992-03-31 19:04:48 +000022 name = os.path.join(name, '')
Guido van Rossumc6360141990-10-13 19:23:40 +000023 list = dircache.opendir(name)[:]
24 list.sort()
25 dircache.annotate(name, list)
26 w = listwin.open(name, list)
27 w.name = name
28 w.action = action
29 return w