| 
									
										
										
										
											1990-11-05 19:44:36 +00:00
										 |  |  | # Abstract classes for parents and children. | 
					
						
							| 
									
										
										
										
											1990-12-26 15:33:00 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											1990-11-05 19:44:36 +00:00
										 |  |  | # Do not use as base class -- this is for documentation only. | 
					
						
							| 
									
										
										
										
											1990-12-26 15:33:00 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # Note that the tree must be built top down (create the parent, | 
					
						
							|  |  |  | # then add the children). | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Also note that the creation methods are not standardized -- | 
					
						
							|  |  |  | # these have extra parameters dependent on the widget type. | 
					
						
							|  |  |  | # For historical reasons, button creation methods are called | 
					
						
							|  |  |  | # define() while split creation methods are called create(). | 
					
						
							| 
									
										
										
										
											1990-11-05 19:44:36 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1991-12-26 13:06:29 +00:00
										 |  |  | class AbstractParent: | 
					
						
							| 
									
										
										
										
											1990-11-05 19:44:36 +00:00
										 |  |  | 	# | 
					
						
							|  |  |  | 	# Upcalls from child to parent | 
					
						
							|  |  |  | 	# | 
					
						
							|  |  |  | 	def addchild(self, child): unimpl() | 
					
						
							|  |  |  | 	def delchild(self, child): unimpl() | 
					
						
							|  |  |  | 	# | 
					
						
							|  |  |  | 	def need_mouse(self, child): unimpl() | 
					
						
							|  |  |  | 	def no_mouse(self, child): unimpl() | 
					
						
							|  |  |  | 	# | 
					
						
							|  |  |  | 	def need_timer(self, child): unimpl() | 
					
						
							|  |  |  | 	def no_timer(self, child): unimpl() | 
					
						
							|  |  |  | 	# | 
					
						
							|  |  |  | 	# XXX need_kbd, no_kbd; focus??? | 
					
						
							|  |  |  | 	# | 
					
						
							|  |  |  | 	def begindrawing(self): return unimpl() | 
					
						
							|  |  |  | 	def beginmeasuring(self): return unimpl() | 
					
						
							| 
									
										
										
										
											1991-04-07 13:31:53 +00:00
										 |  |  | 	def getwindow(self): return unimpl() # Only for very special cases | 
					
						
							| 
									
										
										
										
											1990-11-05 19:44:36 +00:00
										 |  |  | 	# | 
					
						
							|  |  |  | 	def change(self, area): unimpl() | 
					
						
							| 
									
										
										
										
											1992-12-14 12:57:56 +00:00
										 |  |  | 	def scroll(self, area, (dh, dv)): unimpl() | 
					
						
							| 
									
										
										
										
											1990-11-05 19:44:36 +00:00
										 |  |  | 	def settimer(self, itimer): unimpl() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1991-12-26 13:06:29 +00:00
										 |  |  | class AbstractChild: | 
					
						
							| 
									
										
										
										
											1990-11-05 19:44:36 +00:00
										 |  |  | 	# | 
					
						
							|  |  |  | 	# Downcalls from parent to child | 
					
						
							|  |  |  | 	# | 
					
						
							|  |  |  | 	def destroy(self): unimpl() | 
					
						
							|  |  |  | 	# | 
					
						
							| 
									
										
										
										
											1991-04-07 13:31:53 +00:00
										 |  |  | 	def realize(self): return unimpl() | 
					
						
							| 
									
										
										
										
											1992-12-14 12:57:56 +00:00
										 |  |  | 	def getminsize(self, m, (width, height)): return unimpl() | 
					
						
							| 
									
										
										
										
											1990-11-05 19:44:36 +00:00
										 |  |  | 	def getbounds(self): return unimpl() | 
					
						
							|  |  |  | 	def setbounds(self, bounds): unimpl() | 
					
						
							| 
									
										
										
										
											1992-12-14 12:57:56 +00:00
										 |  |  | 	def draw(self, d, area): unimpl() | 
					
						
							| 
									
										
										
										
											1990-11-05 19:44:36 +00:00
										 |  |  | 	# | 
					
						
							|  |  |  | 	# Downcalls only made after certain upcalls | 
					
						
							|  |  |  | 	# | 
					
						
							|  |  |  | 	def mouse_down(self, detail): unimpl() | 
					
						
							|  |  |  | 	def mouse_move(self, detail): unimpl() | 
					
						
							|  |  |  | 	def mouse_up(self, detail): unimpl() | 
					
						
							|  |  |  | 	# | 
					
						
							|  |  |  | 	def timer(self): unimpl() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # A "Split" is a child that manages one or more children. | 
					
						
							|  |  |  | # (This terminology is due to DEC SRC, except for CSplits.) | 
					
						
							|  |  |  | # A child of a split may be another split, a button, a slider, etc. | 
					
						
							|  |  |  | # Certain upcalls and downcalls can be handled transparently, but | 
					
						
							|  |  |  | # for others (e.g., all geometry related calls) this is not possible. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1991-12-26 13:06:29 +00:00
										 |  |  | class AbstractSplit(AbstractChild, AbstractParent): | 
					
						
							| 
									
										
										
										
											1990-11-05 19:44:36 +00:00
										 |  |  | 	pass |