| 
									
										
										
										
											2002-03-17 18:19:13 +00:00
										 |  |  | # -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | # $Id$ | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Tix Demostration Program | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # This sample program is structured in such a way so that it can be | 
					
						
							| 
									
										
										
										
											2002-03-17 18:19:13 +00:00
										 |  |  | # executed from the Tix demo program "tixwidgets.py": it must have a | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | # procedure called "RunSample". It should also have the "if" statment | 
					
						
							|  |  |  | # at the end of this file so that it can be run as a standalone | 
					
						
							|  |  |  | # program. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # This file demonstrates the use of the compound images: it uses compound | 
					
						
							|  |  |  | # images to display a text string together with a pixmap inside | 
					
						
							|  |  |  | # buttons | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import Tix | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | network_pixmap = """/* XPM */
 | 
					
						
							|  |  |  | static char * netw_xpm[] = { | 
					
						
							|  |  |  | /* width height ncolors chars_per_pixel */ | 
					
						
							|  |  |  | "32 32 7 1", | 
					
						
							|  |  |  | /* colors */ | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  | "       s None  c None", | 
					
						
							|  |  |  | ".      c #000000000000", | 
					
						
							|  |  |  | "X      c white", | 
					
						
							|  |  |  | "o      c #c000c000c000", | 
					
						
							|  |  |  | "O      c #404040", | 
					
						
							|  |  |  | "+      c blue", | 
					
						
							|  |  |  | "@      c red", | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | /* pixels */ | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                 .............. ", | 
					
						
							|  |  |  | "                 .XXXXXXXXXXXX. ", | 
					
						
							|  |  |  | "                 .XooooooooooO. ", | 
					
						
							|  |  |  | "                 .Xo.......XoO. ", | 
					
						
							|  |  |  | "                 .Xo.++++o+XoO. ", | 
					
						
							|  |  |  | "                 .Xo.++++o+XoO. ", | 
					
						
							|  |  |  | "                 .Xo.++oo++XoO. ", | 
					
						
							|  |  |  | "                 .Xo.++++++XoO. ", | 
					
						
							|  |  |  | "                 .Xo.+o++++XoO. ", | 
					
						
							|  |  |  | "                 .Xo.++++++XoO. ", | 
					
						
							|  |  |  | "                 .Xo.XXXXXXXoO. ", | 
					
						
							|  |  |  | "                 .XooooooooooO. ", | 
					
						
							|  |  |  | "                 .Xo@ooo....oO. ", | 
					
						
							|  |  |  | " ..............  .XooooooooooO. ", | 
					
						
							|  |  |  | " .XXXXXXXXXXXX.  .XooooooooooO. ", | 
					
						
							|  |  |  | " .XooooooooooO.  .OOOOOOOOOOOO. ", | 
					
						
							|  |  |  | " .Xo.......XoO.  .............. ", | 
					
						
							|  |  |  | " .Xo.++++o+XoO.        @        ", | 
					
						
							|  |  |  | " .Xo.++++o+XoO.        @        ", | 
					
						
							|  |  |  | " .Xo.++oo++XoO.        @        ", | 
					
						
							|  |  |  | " .Xo.++++++XoO.        @        ", | 
					
						
							|  |  |  | " .Xo.+o++++XoO.        @        ", | 
					
						
							|  |  |  | " .Xo.++++++XoO.      .....      ", | 
					
						
							|  |  |  | " .Xo.XXXXXXXoO.      .XXX.      ", | 
					
						
							|  |  |  | " .XooooooooooO.@@@@@@.X O.      ", | 
					
						
							|  |  |  | " .Xo@ooo....oO.      .OOO.      ", | 
					
						
							|  |  |  | " .XooooooooooO.      .....      ", | 
					
						
							|  |  |  | " .XooooooooooO.                 ", | 
					
						
							|  |  |  | " .OOOOOOOOOOOO.                 ", | 
					
						
							|  |  |  | " ..............                 ", | 
					
						
							|  |  |  | "                                "}; | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | hard_disk_pixmap = """/* XPM */
 | 
					
						
							|  |  |  | static char * drivea_xpm[] = { | 
					
						
							|  |  |  | /* width height ncolors chars_per_pixel */ | 
					
						
							|  |  |  | "32 32 5 1", | 
					
						
							|  |  |  | /* colors */ | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  | "       s None  c None", | 
					
						
							|  |  |  | ".      c #000000000000", | 
					
						
							|  |  |  | "X      c white", | 
					
						
							|  |  |  | "o      c #c000c000c000", | 
					
						
							|  |  |  | "O      c #800080008000", | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | /* pixels */ | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "   ..........................   ", | 
					
						
							|  |  |  | "   .XXXXXXXXXXXXXXXXXXXXXXXo.   ", | 
					
						
							|  |  |  | "   .XooooooooooooooooooooooO.   ", | 
					
						
							|  |  |  | "   .Xooooooooooooooooo..oooO.   ", | 
					
						
							|  |  |  | "   .Xooooooooooooooooo..oooO.   ", | 
					
						
							|  |  |  | "   .XooooooooooooooooooooooO.   ", | 
					
						
							|  |  |  | "   .Xoooooooo.......oooooooO.   ", | 
					
						
							|  |  |  | "   .Xoo...................oO.   ", | 
					
						
							|  |  |  | "   .Xoooooooo.......oooooooO.   ", | 
					
						
							|  |  |  | "   .XooooooooooooooooooooooO.   ", | 
					
						
							|  |  |  | "   .XooooooooooooooooooooooO.   ", | 
					
						
							|  |  |  | "   .XooooooooooooooooooooooO.   ", | 
					
						
							|  |  |  | "   .XooooooooooooooooooooooO.   ", | 
					
						
							|  |  |  | "   .oOOOOOOOOOOOOOOOOOOOOOOO.   ", | 
					
						
							|  |  |  | "   ..........................   ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                ", | 
					
						
							|  |  |  | "                                "}; | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | network_bitmap = """
 | 
					
						
							|  |  |  | #define netw_width 32 | 
					
						
							|  |  |  | #define netw_height 32 | 
					
						
							|  |  |  | static unsigned char netw_bits[] = { | 
					
						
							|  |  |  |    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x02, 0x40, | 
					
						
							|  |  |  |    0x00, 0x00, 0xfa, 0x5f, 0x00, 0x00, 0x0a, 0x50, 0x00, 0x00, 0x0a, 0x52, | 
					
						
							|  |  |  |    0x00, 0x00, 0x0a, 0x52, 0x00, 0x00, 0x8a, 0x51, 0x00, 0x00, 0x0a, 0x50, | 
					
						
							|  |  |  |    0x00, 0x00, 0x4a, 0x50, 0x00, 0x00, 0x0a, 0x50, 0x00, 0x00, 0x0a, 0x50, | 
					
						
							|  |  |  |    0x00, 0x00, 0xfa, 0x5f, 0x00, 0x00, 0x02, 0x40, 0xfe, 0x7f, 0x52, 0x55, | 
					
						
							|  |  |  |    0x02, 0x40, 0xaa, 0x6a, 0xfa, 0x5f, 0xfe, 0x7f, 0x0a, 0x50, 0xfe, 0x7f, | 
					
						
							|  |  |  |    0x0a, 0x52, 0x80, 0x00, 0x0a, 0x52, 0x80, 0x00, 0x8a, 0x51, 0x80, 0x00, | 
					
						
							|  |  |  |    0x0a, 0x50, 0x80, 0x00, 0x4a, 0x50, 0x80, 0x00, 0x0a, 0x50, 0xe0, 0x03, | 
					
						
							|  |  |  |    0x0a, 0x50, 0x20, 0x02, 0xfa, 0xdf, 0x3f, 0x03, 0x02, 0x40, 0xa0, 0x02, | 
					
						
							|  |  |  |    0x52, 0x55, 0xe0, 0x03, 0xaa, 0x6a, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, | 
					
						
							|  |  |  |    0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | hard_disk_bitmap = """
 | 
					
						
							|  |  |  | #define drivea_width 32 | 
					
						
							|  |  |  | #define drivea_height 32 | 
					
						
							|  |  |  | static unsigned char drivea_bits[] = { | 
					
						
							|  |  |  |    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
					
						
							|  |  |  |    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
					
						
							|  |  |  |    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
					
						
							|  |  |  |    0xf8, 0xff, 0xff, 0x1f, 0x08, 0x00, 0x00, 0x18, 0xa8, 0xaa, 0xaa, 0x1a, | 
					
						
							|  |  |  |    0x48, 0x55, 0xd5, 0x1d, 0xa8, 0xaa, 0xaa, 0x1b, 0x48, 0x55, 0x55, 0x1d, | 
					
						
							|  |  |  |    0xa8, 0xfa, 0xaf, 0x1a, 0xc8, 0xff, 0xff, 0x1d, 0xa8, 0xfa, 0xaf, 0x1a, | 
					
						
							|  |  |  |    0x48, 0x55, 0x55, 0x1d, 0xa8, 0xaa, 0xaa, 0x1a, 0x48, 0x55, 0x55, 0x1d, | 
					
						
							|  |  |  |    0xa8, 0xaa, 0xaa, 0x1a, 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f, | 
					
						
							|  |  |  |    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
					
						
							|  |  |  |    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 
					
						
							|  |  |  |    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def RunSample(w): | 
					
						
							|  |  |  |     w.img0 = Tix.Image('pixmap', data=network_pixmap) | 
					
						
							|  |  |  |     if not w.img0: | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  |         w.img0 = Tix.Image('bitmap', data=network_bitmap) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     w.img1 = Tix.Image('pixmap', data=hard_disk_pixmap) | 
					
						
							|  |  |  |     if not w.img0: | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  |         w.img1 = Tix.Image('bitmap', data=hard_disk_bitmap) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     hdd = Tix.Button(w, padx=4, pady=1, width=120) | 
					
						
							|  |  |  |     net = Tix.Button(w, padx=4, pady=1, width=120) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Create the first image: we create a line, then put a string, | 
					
						
							|  |  |  |     # a space and a image into this line, from left to right. | 
					
						
							|  |  |  |     # The result: we have a one-line image that consists of three | 
					
						
							|  |  |  |     # individual items | 
					
						
							|  |  |  |     # | 
					
						
							|  |  |  |     # The tk.calls should be methods in Tix ... | 
					
						
							|  |  |  |     w.hdd_img = Tix.Image('compound', window=hdd) | 
					
						
							|  |  |  |     w.hdd_img.tk.call(str(w.hdd_img), 'add', 'line') | 
					
						
							|  |  |  |     w.hdd_img.tk.call(str(w.hdd_img), 'add', 'text', '-text', 'Hard Disk', | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  |                     '-underline', '0') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     w.hdd_img.tk.call(str(w.hdd_img), 'add', 'space', '-width', '7') | 
					
						
							|  |  |  |     w.hdd_img.tk.call(str(w.hdd_img), 'add', 'image', '-image', w.img1) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Put this image into the first button | 
					
						
							|  |  |  |     # | 
					
						
							|  |  |  |     hdd['image'] = w.hdd_img | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Next button | 
					
						
							|  |  |  |     w.net_img = Tix.Image('compound', window=net) | 
					
						
							|  |  |  |     w.net_img.tk.call(str(w.net_img), 'add', 'line') | 
					
						
							|  |  |  |     w.net_img.tk.call(str(w.net_img), 'add', 'text', '-text', 'Network', | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  |                     '-underline', '0') | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  |     w.net_img.tk.call(str(w.net_img), 'add', 'space', '-width', '7') | 
					
						
							|  |  |  |     w.net_img.tk.call(str(w.net_img), 'add', 'image', '-image', w.img0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Put this image into the first button | 
					
						
							|  |  |  |     # | 
					
						
							|  |  |  |     net['image'] = w.net_img | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     close = Tix.Button(w, pady=1, text='Close', | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00:00
										 |  |  |                        command=lambda w=w: w.destroy()) | 
					
						
							| 
									
										
										
										
											2001-03-21 07:42:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     hdd.pack(side=Tix.LEFT, padx=10, pady=10, fill=Tix.Y, expand=1) | 
					
						
							|  |  |  |     net.pack(side=Tix.LEFT, padx=10, pady=10, fill=Tix.Y, expand=1) | 
					
						
							|  |  |  |     close.pack(side=Tix.LEFT, padx=10, pady=10, fill=Tix.Y, expand=1) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     root = Tix.Tk() | 
					
						
							|  |  |  |     RunSample(root) | 
					
						
							|  |  |  |     root.mainloop() |