| # -*-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 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. ", |
| " [email protected]. ", |
| " .............. .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. ", |
| " [email protected]. .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 = Tix.Image('pixmap', data=network_pixmap) |
| if not w.img0: |
| w.img0 = Tix.Image('bitmap', data=network_bitmap) |
| w.img1 = Tix.Image('pixmap', data=hard_disk_pixmap) |
| if not w.img0: |
| w.img1 = Tix.Image('bitmap', data=hard_disk_bitmap) |
| |
| 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', |
| '-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 = 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 = Tix.Button(w, pady=1, text='Close', |
| command=lambda w=w: w.destroy()) |
| |
| 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() |