summaryrefslogtreecommitdiffstats
path: root/Demo/tix/samples/NoteBook.py
blob: d8b5fa85afc7d50ffb6fb8dd6cb7ed6deafbd05b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# -*-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 tixNoteBook widget, which allows
# you to lay out your interface using a "notebook" metaphore
#
import tkinter.tix

def RunSample(w):
    global root
    root = w

    # We use these options to set the sizes of the subwidgets inside the
    # notebook, so that they are well-aligned on the screen.
    prefix = tkinter.tix.OptionName(w)
    if prefix:
        prefix = '*'+prefix
    else:
        prefix = ''
    w.option_add(prefix+'*TixControl*entry.width', 10)
    w.option_add(prefix+'*TixControl*label.width', 18)
    w.option_add(prefix+'*TixControl*label.anchor', tkinter.tix.E)
    w.option_add(prefix+'*TixNoteBook*tagPadX', 8)

    # Create the notebook widget and set its backpagecolor to gray.
    # Note that the -backpagecolor option belongs to the "nbframe"
    # subwidget.
    nb = tkinter.tix.NoteBook(w, name='nb', ipadx=6, ipady=6)
    nb['bg'] = 'gray'
    nb.nbframe['backpagecolor'] = 'gray'

    # Create the two tabs on the notebook. The -underline option
    # puts a underline on the first character of the labels of the tabs.
    # Keyboard accelerators will be defined automatically according
    # to the underlined character.
    nb.add('hard_disk', label="Hard Disk", underline=0)
    nb.add('network', label="Network", underline=0)

    nb.pack(expand=1, fill=tkinter.tix.BOTH, padx=5, pady=5 ,side=tkinter.tix.TOP)

    #----------------------------------------
    # Create the first page
    #----------------------------------------
    # Create two frames: one for the common buttons, one for the
    # other widgets
    #
    tab=nb.hard_disk
    f = tkinter.tix.Frame(tab)
    common = tkinter.tix.Frame(tab)

    f.pack(side=tkinter.tix.LEFT, padx=2, pady=2, fill=tkinter.tix.BOTH, expand=1)
    common.pack(side=tkinter.tix.RIGHT, padx=2, fill=tkinter.tix.Y)

    a = tkinter.tix.Control(f, value=12,   label='Access time: ')
    w = tkinter.tix.Control(f, value=400,  label='Write Throughput: ')
    r = tkinter.tix.Control(f, value=400,  label='Read Throughput: ')
    c = tkinter.tix.Control(f, value=1021, label='Capacity: ')

    a.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    w.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    r.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    c.pack(side=tkinter.tix.TOP, padx=20, pady=2)

    # Create the common buttons
    createCommonButtons(common)

    #----------------------------------------
    # Create the second page
    #----------------------------------------

    tab = nb.network

    f = tkinter.tix.Frame(tab)
    common = tkinter.tix.Frame(tab)

    f.pack(side=tkinter.tix.LEFT, padx=2, pady=2, fill=tkinter.tix.BOTH, expand=1)
    common.pack(side=tkinter.tix.RIGHT, padx=2, fill=tkinter.tix.Y)

    a = tkinter.tix.Control(f, value=12,   label='Access time: ')
    w = tkinter.tix.Control(f, value=400,  label='Write Throughput: ')
    r = tkinter.tix.Control(f, value=400,  label='Read Throughput: ')
    c = tkinter.tix.Control(f, value=1021, label='Capacity: ')
    u = tkinter.tix.Control(f, value=10,   label='Users: ')

    a.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    w.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    r.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    c.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    u.pack(side=tkinter.tix.TOP, padx=20, pady=2)

    createCommonButtons(common)

def doDestroy():
    global root
    root.destroy()

def createCommonButtons(master):
    ok = tkinter.tix.Button(master, name='ok', text='OK', width=6,
                command=doDestroy)
    cancel = tkinter.tix.Button(master, name='cancel',
                    text='Cancel', width=6,
                    command=doDestroy)

    ok.pack(side=tkinter.tix.TOP, padx=2, pady=2)
    cancel.pack(side=tkinter.tix.TOP, padx=2, pady=2)

if __name__ == '__main__':
    root = tkinter.tix.Tk()
    RunSample(root)
    root.mainloop()