Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v9 / lib / python2.4 / site-packages / Pmw / Pmw_1_2 / tests / PmwBase_test.py
CommitLineData
920dae64
AT
1# Tests for Pmw megawidgets
2
3import Tkinter
4import Test
5import Pmw
6
7Test.initialise()
8
9class TestWidget(Pmw.MegaWidget):
10
11 def __init__(self, parent = None, **kw):
12 # Define the megawidget options.
13 optiondefs = ()
14 self.defineoptions(kw, optiondefs)
15
16 # Initialise the base class (after defining the options).
17 Pmw.MegaWidget.__init__(self, parent)
18
19 # Create the components.
20 interior = self.interior()
21 self._label = self.createcomponent('label',
22 (), None,
23 Tkinter.Label, (interior,), text = 'test')
24 self._label.pack(side='left', padx=2)
25
26 # Check keywords and initialise options.
27 self.initialiseoptions(TestWidget)
28
29 def addComponent(self, nickname):
30 self.createcomponent(nickname,
31 (), None,
32 TestComponent, (self.interior(),), status = 'create')
33
34 def addTestWidget(self, widget, option, value):
35 w = self.createcomponent('test',
36 (), None,
37 widget, (self.interior(),))
38 apply(self.configure, (), {'test_' + option : value})
39 if w.__class__.__name__ not in ('Menu', 'Toplevel'):
40 w.pack()
41 if hasattr(widget, 'geometry'):
42 w.geometry('+100+100')
43 return str(w.cget(option))
44
45 def deleteTestWidget(self):
46 w = self.component('test')
47 if hasattr(widget, 'pack'):
48 w.pack_forget()
49 self.destroycomponent('test')
50
51 def packComponent(self, nickname):
52 self.component(nickname).pack()
53
54 def getStatusList(self, nickname):
55 return self.component(nickname)._statusList
56
57 def componentOption(self, nickname, option):
58 return self.component(nickname).cget(option)
59
60class TestComponent(Pmw.MegaWidget):
61
62 def __init__(self, parent = None, **kw):
63 # Define the megawidget options.
64 optiondefs = (
65 ('status', '', self._status),
66 )
67 self.defineoptions(kw, optiondefs)
68
69 # Initialise the base class (after defining the options).
70 Pmw.MegaWidget.__init__(self, parent)
71
72 # Create the components.
73 interior = self.interior()
74 self._label = self.createcomponent('label',
75 (), None,
76 Tkinter.Label, (interior,), text = 'test')
77 self._label.pack(side='left', padx=2)
78
79 self._statusList = []
80
81 # Check keywords and initialise options.
82 self.initialiseoptions()
83
84 def action(self, info):
85 self._statusList.append(info)
86
87 def _status(self):
88 self._statusList.append(self['status'])
89
90c = TestWidget
91tests = (
92 (c.pack, ()),
93 (c.components, (), ['hull', 'label']),
94
95 (c.addComponent, 'k0'),
96 (c.getStatusList, 'k0', ['create']),
97 (c.packComponent, 'k0'),
98 ('k0_status', 'foo'),
99 (c.getStatusList, 'k0', ['create', 'foo']),
100
101 (c.addComponent, 'k1'),
102 (c.packComponent, 'k1'),
103 ('k1_status', 'bar'),
104 (c.getStatusList, 'k1', ['create', 'bar']),
105
106 (c.addComponent, 'k2'),
107 (c.packComponent, 'k2'),
108 ('k2_label_foreground', 'green'),
109 ('hull_cursor', 'gumby'),
110 ('k2_label_cursor', 'gumby'),
111 (c.componentOption, ('k2', 'label_foreground'), 'green'),
112 (c.componentOption, ('k2', 'label_cursor'), 'gumby'),
113
114 (c.addComponent, 'k3'),
115 (c.packComponent, 'k3'),
116 ('k3_label_foreground', 'red'),
117 ('hull_background', 'white'),
118 ('k3_label_background', 'white'),
119 ('hull_cursor', 'dot'),
120 ('k3_label_cursor', 'dot'),
121 (c.componentOption, ('k3', 'label_foreground'), 'red'),
122 (c.componentOption, ('k3', 'label_background'), 'white'),
123 (c.componentOption, ('k3', 'label_cursor'), 'dot'),
124 ('label_background', 'white'),
125 (c.destroycomponent, 'k0'),
126 (c.destroycomponent, 'k1'),
127 (c.destroycomponent, 'k2'),
128 (c.destroycomponent, 'k3'),
129)
130
131# Test each of the standard widgets as components.
132for widget in [Tkinter.Button, Tkinter.Checkbutton, Tkinter.Entry, Tkinter.Label, Tkinter.Listbox, \
133 Tkinter.Menu, Tkinter.Menubutton, Tkinter.Message, Tkinter.Radiobutton, Tkinter.Scale, Tkinter.Text]:
134 tests = tests + (
135 (c.addTestWidget, (widget, 'foreground', 'blue'), 'blue'),
136 (c.deleteTestWidget, ())
137 )
138
139for widget in [Tkinter.Canvas, Tkinter.Frame, Tkinter.Scrollbar, Tkinter.Toplevel]:
140 tests = tests + (
141 (c.addTestWidget, (widget, 'background', 'grey80'), 'grey80'),
142 (c.deleteTestWidget, ())
143 )
144
145# Test the logical fonts.
146for fontName in Pmw.logicalfontnames():
147 for sizeIncr in (-2, 0, 1, 2, 4, 8):
148 font = Pmw.logicalfont(fontName, sizeIncr)
149 tests = tests + (
150 ('label_text', 'Testing font\n' + fontName + ' ' + str(sizeIncr)),
151 ('label_font', font),
152 )
153fontList = (
154 (('Helvetica', 0), {}),
155 (('Times', 0), {}),
156 (('Typewriter', 0), {}),
157 (('Typewriter', 0), {'width' : 'condensed'}),
158 (('Typewriter', -1), {'width' : 'condensed'}),
159 (('Fixed', 0), {}),
160 (('Fixed', 0), {'width' : 'condensed'}),
161 (('Fixed', -1), {'width' : 'condensed'}),
162 (('Helvetica', 2), {'slant' : 'italic'}),
163 (('Helvetica', 0), {'size' : 18}),
164 (('Helvetica', 0), {'weight' : 'bold'}),
165 (('Helvetica', 12), {'weight' : 'bold', 'slant' : 'italic'}),
166 (('Typewriter', 0), {'size' : 8, 'weight' : 'bold'}),
167 (('Fixed', 0), {'size' : 8, 'weight' : 'bold'}),
168 (('Times', 0), {'size' : 24, 'weight' : 'bold', 'slant' : 'italic'}),
169)
170
171for args, dict in fontList:
172 font = apply(Pmw.logicalfont, args, dict)
173 tests = tests + (
174 ('label_text', 'Testing font\n' + str(args) + '\n' + str(dict)),
175 ('label_font', font),
176 )
177
178testData = ((c, ((tests, {'label_text' : 'Testing Pmw base classes'}),)),)
179
180if __name__ == '__main__':
181 Test.runTests(testData)