mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
from TransParent import TransParent
 | 
						|
 | 
						|
class BoxParent() = TransParent():
 | 
						|
	#
 | 
						|
	def create(self, (parent, (dh, dv))):
 | 
						|
		self = TransParent.create(self, parent)
 | 
						|
		self.dh = dh
 | 
						|
		self.dv = dv
 | 
						|
		return self
 | 
						|
	#
 | 
						|
	def getminsize(self, (m, (width, height))):
 | 
						|
		width = max(0, width - 2*self.dh)
 | 
						|
		height = max(0, height - 2*self.dv)
 | 
						|
		width, height = self.child.getminsize(m, (width, height))
 | 
						|
		return width + 2*self.dh, height + 2*self.dv
 | 
						|
	#
 | 
						|
	def setbounds(self, bounds):
 | 
						|
		(left, top), (right, bottom) = bounds
 | 
						|
		self.bounds = bounds
 | 
						|
		left = min(right, left + self.dh)
 | 
						|
		top = min(bottom, top + self.dv)
 | 
						|
		right = max(left, right - self.dh)
 | 
						|
		bottom = max(top, bottom - self.dv)
 | 
						|
		self.innerbounds = (left, top), (right, bottom)
 | 
						|
		self.child.setbounds(self.innerbounds)
 | 
						|
	#
 | 
						|
	def getbounds(self):
 | 
						|
		return self.bounds
 | 
						|
	#
 | 
						|
	def draw(self, args):
 | 
						|
		d, area = args
 | 
						|
		(left, top), (right, bottom) = self.bounds
 | 
						|
		left = left + 1
 | 
						|
		top = top + 1
 | 
						|
		right = right - 1
 | 
						|
		bottom = bottom - 1
 | 
						|
		d.box((left, top), (right, bottom))
 | 
						|
		TransParent.draw(self, args) # XXX clip to innerbounds?
 | 
						|
	#
 | 
						|
	# XXX should scroll clip to innerbounds???
 | 
						|
	# XXX currently the only user restricts itself to child's bounds
 |