mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			196 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			196 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
 | 
						|
#
 | 
						|
# $Id$
 | 
						|
#
 | 
						|
# Tix Demostration Program
 | 
						|
#
 | 
						|
# This sample program is structured in such a way so that it can be
 | 
						|
# executed from the Tix demo program "tixwidgets.py": it must have a
 | 
						|
# 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 tkinter.tix
 | 
						|
 | 
						|
network_pixmap = """/* XPM */
 | 
						|
static char * netw_xpm[] = {
 | 
						|
/* width height ncolors chars_per_pixel */
 | 
						|
"32 32 7 1",
 | 
						|
/* colors */
 | 
						|
"       s None  c None",
 | 
						|
".      c #000000000000",
 | 
						|
"X      c white",
 | 
						|
"o      c #c000c000c000",
 | 
						|
"O      c #404040",
 | 
						|
"+      c blue",
 | 
						|
"@      c red",
 | 
						|
/* 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 */
 | 
						|
"       s None  c None",
 | 
						|
".      c #000000000000",
 | 
						|
"X      c white",
 | 
						|
"o      c #c000c000c000",
 | 
						|
"O      c #800080008000",
 | 
						|
/* 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 = tkinter.tix.Image('pixmap', data=network_pixmap)
 | 
						|
    if not w.img0:
 | 
						|
        w.img0 = tkinter.tix.Image('bitmap', data=network_bitmap)
 | 
						|
    w.img1 = tkinter.tix.Image('pixmap', data=hard_disk_pixmap)
 | 
						|
    if not w.img0:
 | 
						|
        w.img1 = tkinter.tix.Image('bitmap', data=hard_disk_bitmap)
 | 
						|
 | 
						|
    hdd = tkinter.tix.Button(w, padx=4, pady=1, width=120)
 | 
						|
    net = tkinter.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 = tkinter.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',
 | 
						|
                    '-underline', '0')
 | 
						|
    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 = tkinter.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',
 | 
						|
                    '-underline', '0')
 | 
						|
    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 = tkinter.tix.Button(w, pady=1, text='Close',
 | 
						|
                       command=lambda w=w: w.destroy())
 | 
						|
 | 
						|
    hdd.pack(side=tkinter.tix.LEFT, padx=10, pady=10, fill=tkinter.tix.Y, expand=1)
 | 
						|
    net.pack(side=tkinter.tix.LEFT, padx=10, pady=10, fill=tkinter.tix.Y, expand=1)
 | 
						|
    close.pack(side=tkinter.tix.LEFT, padx=10, pady=10, fill=tkinter.tix.Y, expand=1)
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    root = tkinter.tix.Tk()
 | 
						|
    RunSample(root)
 | 
						|
    root.mainloop()
 |