mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
	
	
		
			87 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			87 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								# Test waste module.
							 | 
						||
| 
								 | 
							
								# Draw a window in which the user can type.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# This test expects Win, Evt and FrameWork (and anything used by those)
							 | 
						||
| 
								 | 
							
								# to work.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Actually, it is more a test of FrameWork by now....
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from FrameWork import *
							 | 
						||
| 
								 | 
							
								import Win
							 | 
						||
| 
								 | 
							
								import Qd
							 | 
						||
| 
								 | 
							
								import waste
							 | 
						||
| 
								 | 
							
								import WASTEconst
							 | 
						||
| 
								 | 
							
								import os
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class WasteWindow(Window):
							 | 
						||
| 
								 | 
							
									def open(self, name):
							 | 
						||
| 
								 | 
							
										r = (40, 40, 400, 300)
							 | 
						||
| 
								 | 
							
										w = Win.NewWindow(r, name, 1, 0, -1, 1, 0x55555555)
							 | 
						||
| 
								 | 
							
										r2 = (0, 0, 400-40-16, 300-40-16)
							 | 
						||
| 
								 | 
							
										Qd.SetPort(w)
							 | 
						||
| 
								 | 
							
										flags = WASTEconst.weDoAutoScroll | WASTEconst.weDoOutlineHilite | \
							 | 
						||
| 
								 | 
							
											WASTEconst.weDoMonoStyled 
							 | 
						||
| 
								 | 
							
										self.ted = waste.WENew(r2, r2, flags)
							 | 
						||
| 
								 | 
							
										w.DrawGrowIcon()
							 | 
						||
| 
								 | 
							
										self.wid = w
							 | 
						||
| 
								 | 
							
										self.do_postopen()
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									def do_idle(self):
							 | 
						||
| 
								 | 
							
										self.ted.WEIdle()
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									def do_activate(self, onoff, evt):
							 | 
						||
| 
								 | 
							
										if onoff:
							 | 
						||
| 
								 | 
							
											self.ted.WEActivate()
							 | 
						||
| 
								 | 
							
										else:
							 | 
						||
| 
								 | 
							
											self.ted.WEDeactivate()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									def do_update(self, wid, event):
							 | 
						||
| 
								 | 
							
										Qd.EraseRect(wid.GetWindowPort().portRect)
							 | 
						||
| 
								 | 
							
										self.ted.WEUpdate(wid.GetWindowPort().visRgn)
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									def do_contentclick(self, local, modifiers, evt):
							 | 
						||
| 
								 | 
							
										(what, message, when, where, modifiers) = evt
							 | 
						||
| 
								 | 
							
										self.ted.WEClick(local, modifiers, when)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									def do_char(self, ch, event):
							 | 
						||
| 
								 | 
							
										(what, message, when, where, modifiers) = event
							 | 
						||
| 
								 | 
							
										self.ted.WEKey(ord(ch), modifiers)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestWaste(Application):
							 | 
						||
| 
								 | 
							
									def __init__(self):
							 | 
						||
| 
								 | 
							
										Application.__init__(self)
							 | 
						||
| 
								 | 
							
										self.num = 0
							 | 
						||
| 
								 | 
							
										self.listoflists = []
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									def makeusermenus(self):
							 | 
						||
| 
								 | 
							
										self.filemenu = m = Menu(self.menubar, "File")
							 | 
						||
| 
								 | 
							
										self.newitem = MenuItem(m, "New window...", "O", self.open)
							 | 
						||
| 
								 | 
							
										self.quititem = MenuItem(m, "Quit", "Q", self.quit)
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									def open(self, *args):
							 | 
						||
| 
								 | 
							
										w = WasteWindow(self)
							 | 
						||
| 
								 | 
							
										w.open('Window %d'%self.num)
							 | 
						||
| 
								 | 
							
										self.num = self.num + 1
							 | 
						||
| 
								 | 
							
										self.listoflists.append(w)
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									def quit(self, *args):
							 | 
						||
| 
								 | 
							
										raise self
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									def do_about(self, id, item, window, event):
							 | 
						||
| 
								 | 
							
										EasyDialogs.Message("""Test the WASTE interface.
							 | 
						||
| 
								 | 
							
										Simple window in which you can type""")
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									def do_idle(self, *args):
							 | 
						||
| 
								 | 
							
										for l in self.listoflists:
							 | 
						||
| 
								 | 
							
											l.do_idle()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def main():
							 | 
						||
| 
								 | 
							
									print 'Open app'
							 | 
						||
| 
								 | 
							
									App = TestWaste()
							 | 
						||
| 
								 | 
							
									print 'run'
							 | 
						||
| 
								 | 
							
									App.mainloop()
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								if __name__ == '__main__':
							 | 
						||
| 
								 | 
							
									main()
							 | 
						||
| 
								 | 
							
									
							 |