OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [insight/] [tix/] [demos/] [MkChoose.tcl] - Blame information for rev 1782

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
# MkChoose.tcl --
2
#
3
#       This file implements the "Choosers" page in the widget demo
4
#
5
#       This file has not been properly documented. It is NOT intended
6
#       to be used as an introductory demo program about Tix
7
#       programming. For such demos, please see the files in the
8
#       demos/samples directory or go to the "Samples" page in the
9
#       "widget demo"
10
#
11
#
12
# Copyright (c) 1996, Expert Interface Technologies
13
#
14
# See the file "license.terms" for information on usage and redistribution
15
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
16
#
17
 
18
 
19
 
20
proc MkChoosers {nb page} {
21
    set w [$nb subwidget $page]
22
 
23
    set name [tixOptionName $w]
24
    option add *$name*TixLabelFrame*label.padX 4
25
 
26
    tixLabelFrame $w.til -label "Chooser Widgets"
27
    tixLabelFrame $w.cbx -label "tixComboBox"
28
    tixLabelFrame $w.ctl -label "tixControl"
29
    tixLabelFrame $w.sel -label "tixSelect"
30
    tixLabelFrame $w.opt -label "tixOptionMenu"
31
    tixLabelFrame $w.fil -label "tixFileEntry"
32
    tixLabelFrame $w.fbx -label "tixFileSelectBox"
33
    tixLabelFrame $w.tbr -label "Tool Bar"
34
 
35
    MkTitle   [$w.til subwidget frame]
36
    MkCombo   [$w.cbx subwidget frame]
37
    MkControl [$w.ctl subwidget frame]
38
    MkSelect  [$w.sel subwidget frame]
39
    MkOptMenu [$w.opt subwidget frame]
40
    MkFileBox [$w.fbx subwidget frame]
41
    MkFileEnt [$w.fil subwidget frame]
42
    MkToolBar [$w.tbr subwidget frame]
43
 
44
    #
45
    # First column: comBox and selector
46
    tixForm $w.cbx -top 0 -left 0 -right %33
47
    tixForm $w.sel -left 0 -right &$w.cbx -top $w.cbx
48
    tixForm $w.opt -left 0 -right &$w.cbx -top $w.sel -bottom -1
49
 
50
    #
51
    # Second column: title .. etc
52
    tixForm $w.til -left $w.cbx -right %66 -top 0
53
    tixForm $w.ctl -left $w.cbx -right &$w.til -top $w.til
54
    tixForm $w.fil -left $w.cbx -right &$w.til -top $w.ctl
55
    tixForm $w.tbr -left $w.cbx -right &$w.til -top $w.fil -bottom -1
56
 
57
    #
58
    # Third column: file selection
59
    tixForm $w.fbx -left %66  -right -1 -top 0
60
}
61
 
62
#----------------------------------------------------------------------
63
#       ComboBox
64
#----------------------------------------------------------------------
65
proc MkCombo {w} {
66
    set name [tixOptionName $w]
67
    option add *$name*TixComboBox*label.width 10
68
    option add *$name*TixComboBox*label.anchor e
69
    option add *$name*TixComboBox*entry.width 14
70
 
71
    tixComboBox $w.static   -label "Static" \
72
        -editable false
73
    tixComboBox $w.editable -label "Editable" \
74
        -editable true
75
    tixComboBox $w.history  -label "History" \
76
        -editable true -history true -anchor e
77
 
78
    $w.static insert end January
79
    $w.static insert end February
80
    $w.static insert end March
81
    $w.static insert end April
82
    $w.static insert end May
83
    $w.static insert end June
84
    $w.static insert end July
85
    $w.static insert end August
86
    $w.static insert end September
87
    $w.static insert end October
88
    $w.static insert end November
89
    $w.static insert end December
90
 
91
    $w.editable insert end "America"
92
    $w.editable insert end "Britain"
93
    $w.editable insert end "China"
94
    $w.editable insert end "Denmark"
95
    $w.editable insert end "Egypt"
96
 
97
    $w.history insert end "/usr/bin/mail"
98
    $w.history insert end "/etc/profile"
99
    $w.history insert end "/home/d/doe/Mail/letter"
100
 
101
    pack $w.static $w.editable $w.history -side top -padx 5 -pady 3
102
}
103
 
104
#----------------------------------------------------------------------
105
#                       The Control widgets
106
#----------------------------------------------------------------------
107
set states {Alabama "New York" Pennsylvania Washington}
108
 
109
proc stCmd {w by value} {
110
    global states
111
 
112
    set index [lsearch $states $value]
113
    set len   [llength $states]
114
    set index [expr $index + $by]
115
 
116
    if {$index < 0} {
117
        set index [expr $len -1]
118
    }
119
    if {$index >= $len} {
120
        set index 0
121
    }
122
 
123
    return [lindex $states $index]
124
}
125
 
126
proc stValidate {w value} {
127
    global states
128
 
129
    if {[lsearch $states $value] == -1} {
130
        return [lindex $states 0]
131
    } else {
132
        return $value
133
    }
134
}
135
 
136
proc MkControl {w} {
137
    set name [tixOptionName $w]
138
    option add *$name*TixControl*label.width 10
139
    option add *$name*TixControl*label.anchor e
140
    option add *$name*TixControl*entry.width 13
141
 
142
 
143
    tixControl $w.simple -label Numbers
144
 
145
    tixControl $w.spintext -label States \
146
        -incrcmd "stCmd $w.spintext 1" \
147
        -decrcmd "stCmd $w.spintext -1" \
148
        -validatecmd "stValidate .d" \
149
        -value "Alabama"
150
 
151
    pack $w.simple $w.spintext -side top -padx 5 -pady 3
152
}
153
 
154
#----------------------------------------------------------------------
155
#                       The Select Widgets
156
#----------------------------------------------------------------------
157
proc MkSelect {w} {
158
    set name [tixOptionName $w]
159
    option add *$name*TixSelect*label.anchor c
160
    option add *$name*TixSelect*orientation vertical
161
    option add *$name*TixSelect*labelSide top
162
 
163
    tixSelect $w.sel1 -label "Mere Mortals" -allowzero true -radio true
164
    tixSelect $w.sel2 -label "Geeks" -allowzero true -radio false
165
 
166
    $w.sel1 add eat   -text Eat
167
    $w.sel1 add work  -text Work
168
    $w.sel1 add play  -text Play
169
    $w.sel1 add party -text Party
170
    $w.sel1 add sleep -text Sleep
171
 
172
    $w.sel2 add eat   -text Eat
173
    $w.sel2 add prog1 -text Program
174
    $w.sel2 add prog2 -text Program
175
    $w.sel2 add prog3 -text Program
176
    $w.sel2 add sleep -text Sleep
177
 
178
    pack $w.sel1 $w.sel2 -side left -padx 5 -pady 3 -fill x
179
}
180
#----------------------------------------------------------------------
181
#                       The OptMenu Widget
182
#----------------------------------------------------------------------
183
proc MkOptMenu {w} {
184
    set name [tixOptionName $w]
185
 
186
    option add *$name*TixOptionMenu*label.anchor e
187
 
188
    tixOptionMenu $w.menu -label "File Format : " \
189
        -options {
190
            menubutton.width 15
191
        }
192
 
193
    $w.menu add command text   -label "Plain Text"
194
    $w.menu add command post   -label "PostScript"
195
    $w.menu add command format -label "Formatted Text"
196
    $w.menu add command html   -label "HTML"
197
    $w.menu add separator sep
198
    $w.menu add command tex    -label "LaTeX"
199
    $w.menu add command rtf    -label "Rich Text Format"
200
 
201
    pack $w.menu -padx 5 -pady 3 -fill x
202
}
203
 
204
#----------------------------------------------------------------------
205
#       FileEntry
206
#----------------------------------------------------------------------
207
proc MkFileEnt {w} {
208
    set name [tixOptionName $w]
209
 
210
    message $w.msg -font -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*\
211
        -relief flat -width 240 -anchor n\
212
        -text {Press the "open file" icon button and a\
213
TixFileSelectDialog will popup.}
214
 
215
    tixFileEntry $w.ent -label "Select a file : "
216
 
217
    pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
218
    pack $w.ent -side top -fill x -padx 3 -pady 3
219
}
220
 
221
proc MkFileBox {w} {
222
    set name [tixOptionName $w]
223
 
224
    message $w.msg -font -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*\
225
        -relief flat -width 240 -anchor n\
226
        -text {The TixFileSelectBox is Motif-style file selection\
227
box with various enhancements. For example, you can adjust the\
228
size of the two listboxes and your past selections are recorded.}
229
 
230
    tixFileSelectBox $w.box
231
 
232
    pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
233
    pack $w.box -side top -fill x -padx 3 -pady 3
234
}
235
 
236
#----------------------------------------------------------------------
237
#       Tool Bar
238
#----------------------------------------------------------------------
239
proc MkToolBar {w} {
240
    set name [tixOptionName $w]
241
 
242
    option add $name*TixSelect*frame.borderWidth 1
243
    message $w.msg -font -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*\
244
        -relief flat -width 240 -anchor n\
245
        -text {The Select widget is also good for arranging buttons\
246
in a tool bar.}
247
 
248
    frame $w.bar -bd 2 -relief raised
249
    tixSelect $w.font -allowzero true  -radio false -label {}
250
    tixSelect $w.para -allowzero false -radio true -label {}
251
 
252
    $w.font add bold      -bitmap [tix getbitmap bold]
253
    $w.font add italic    -bitmap [tix getbitmap italic]
254
    $w.font add underline -bitmap [tix getbitmap underlin]
255
    $w.font add capital   -bitmap [tix getbitmap capital]
256
 
257
    $w.para add left    -bitmap [tix getbitmap leftj]
258
    $w.para add right   -bitmap [tix getbitmap rightj]
259
    $w.para add center  -bitmap [tix getbitmap centerj]
260
    $w.para add justify -bitmap [tix getbitmap justify]
261
 
262
    pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
263
    pack $w.bar -side top -fill x -padx 3 -pady 3
264
    pack $w.para $w.font -in $w.bar -side left -padx 4 -pady 3
265
}
266
#----------------------------------------------------------------------
267
#       Title
268
#----------------------------------------------------------------------
269
proc MkTitle {w} {
270
    set name [tixOptionName $w]
271
 
272
    option add $name*TixSelect*frame.borderWidth 1
273
    message $w.msg -font -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*\
274
        -relief flat -width 240 -anchor n\
275
        -text {There are many types of "choose" widgets that allow\
276
the user to input different type of information.}
277
 
278
    pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
279
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.