mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# DirList -- Directory Listing widget
 | 
						|
 | 
						|
# XXX Displays messy paths when following '..'
 | 
						|
 | 
						|
try:
 | 
						|
	import posix, path
 | 
						|
	os = posix
 | 
						|
except ImportError:
 | 
						|
	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.join(dirname, name)):
 | 
						|
				fullname = path.join(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)))
 | 
						|
	#
 |