mirror of
https://github.com/python/cpython.git
synced 2025-10-13 18:33:34 +00:00
Initial revision
This commit is contained in:
parent
fa54064967
commit
2d844d1ddc
10 changed files with 861 additions and 0 deletions
63
Lib/lib-stdwin/DirList.py
Normal file
63
Lib/lib-stdwin/DirList.py
Normal file
|
@ -0,0 +1,63 @@
|
|||
# DirList -- Directory Listing widget
|
||||
|
||||
try:
|
||||
import posix, path
|
||||
os = posix
|
||||
except NameError:
|
||||
import mac, macpath
|
||||
os = mac
|
||||
path = macpath
|
||||
|
||||
import stdwin, rect
|
||||
from stdwinevents import *
|
||||
from Buttons import PushButton
|
||||
from WindowParent import WindowParent
|
||||
from HVSplit import HSplit, VSplit
|
||||
|
||||
class DirList() = VSplit():
|
||||
#
|
||||
def create(self, (parent, dirname)):
|
||||
self = VSplit.create(self, parent)
|
||||
names = os.listdir(dirname)
|
||||
for name in names:
|
||||
if path.isdir(path.cat(dirname, name)):
|
||||
fullname = path.cat(dirname, name)
|
||||
btn = SubdirButton().definetext(self, fullname)
|
||||
elif name[-3:] = '.py':
|
||||
btn = ModuleButton().definetext(self, name)
|
||||
else:
|
||||
btn = FileButton().definetext(self, name)
|
||||
return self
|
||||
#
|
||||
|
||||
class DirListWindow() = WindowParent():
|
||||
#
|
||||
def create(self, dirname):
|
||||
self = WindowParent.create(self, (dirname, (0, 0)))
|
||||
child = DirList().create(self, dirname)
|
||||
self.realize()
|
||||
return self
|
||||
#
|
||||
|
||||
class SubdirButton() = PushButton():
|
||||
#
|
||||
def drawpict(self, d):
|
||||
PushButton.drawpict(self, d)
|
||||
d.box(rect.inset(self.bounds, (3, 1)))
|
||||
#
|
||||
def up_trigger(self):
|
||||
window = DirListWindow().create(self.text)
|
||||
#
|
||||
|
||||
class FileButton() = PushButton():
|
||||
#
|
||||
def up_trigger(self):
|
||||
stdwin.fleep()
|
||||
#
|
||||
|
||||
class ModuleButton() = FileButton():
|
||||
#
|
||||
def drawpict(self, d):
|
||||
PushButton.drawpict(self, d)
|
||||
d.box(rect.inset(self.bounds, (1, 3)))
|
||||
#
|
Loading…
Add table
Add a link
Reference in a new issue