source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/vrippack-0.31/src/vrip/lib/tk/demos/ixset @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

  • Property svn:executable set to *
File size: 7.4 KB
Line 
1#!/bin/sh
2# the next line restarts using wish \
3exec wish8.3 "$0" "$@"
4
5# ixset --
6# A nice interface to "xset" to change X server settings
7#
8# History :
9#   91/11/23 : pda@masi.ibp.fr, jt@ratp.fr : design
10#   92/08/01 : pda@masi.ibp.fr : cleaning
11#
12# RCS: @(#) $Id: ixset,v 1.2 1998/09/14 18:23:29 stanton Exp $
13
14#
15# Button actions
16#
17
18proc quit {} {
19    destroy .
20}
21
22proc ok {} {
23    writesettings
24    quit
25}
26
27proc cancel {} {
28    readsettings
29    dispsettings
30}
31
32# apply is just "writesettings"
33
34
35#
36# Read current settings
37#
38
39proc readsettings {} {
40    global kbdrep ;     set kbdrep      "on"
41    global kbdcli ;     set kbdcli      0
42    global bellvol ;    set bellvol     100
43    global bellpit ;    set bellpit     440
44    global belldur ;    set belldur     100
45    global mouseacc ;   set mouseacc    "3/1"
46    global mousethr ;   set mousethr    4
47    global screenbla ;  set screenbla   "blank"
48    global screentim ;  set screentim   600
49    global screencyc ;  set screencyc   600
50
51    set xfd [open "|xset q" r]
52    while {[gets $xfd line] > -1} {
53        set kw [lindex $line 0]
54
55        case $kw in {
56            {auto}
57                {
58                    set rpt [lindex $line 1]
59                    if {[expr "{$rpt} == {repeat:}"]} then {
60                        set kbdrep [lindex $line 2]
61                        set kbdcli [lindex $line 6]
62                    }
63                }
64            {bell}
65                {
66                    set bellvol [lindex $line 2]
67                    set bellpit [lindex $line 5]
68                    set belldur [lindex $line 8]
69                }
70            {acceleration:}
71                {
72                    set mouseacc [lindex $line 1]
73                    set mousethr [lindex $line 3]
74                }
75            {prefer}
76                {
77                    set bla [lindex $line 2]
78                    set screenbla [expr "{$bla} == {yes} ? {blank} : {noblank}"]
79                }
80            {timeout:}
81                {
82                    set screentim [lindex $line 1]
83                    set screencyc [lindex $line 3]
84                }
85        }
86    }
87    close $xfd
88
89    # puts stdout [format "Key REPEAT = %s\n" $kbdrep]
90    # puts stdout [format "Key CLICK  = %s\n" $kbdcli]
91    # puts stdout [format "Bell VOLUME = %s\n" $bellvol]
92    # puts stdout [format "Bell PITCH = %s\n" $bellpit]
93    # puts stdout [format "Bell DURATION = %s\n" $belldur]
94    # puts stdout [format "Mouse ACCELERATION = %s\n" $mouseacc]
95    # puts stdout [format "Mouse THRESHOLD = %s\n" $mousethr]
96    # puts stdout [format "Screen BLANCK = %s\n" $screenbla]
97    # puts stdout [format "Screen TIMEOUT = %s\n" $screentim]
98    # puts stdout [format "Screen CYCLE = %s\n" $screencyc]
99}
100
101
102#
103# Write settings into the X server
104#
105
106proc writesettings {} {
107    global kbdrep kbdcli  bellvol bellpit belldur
108    global mouseacc mousethr  screenbla screentim screencyc
109
110    set bellvol         [.bell.vol get]
111    set bellpit         [.bell.val.pit.entry get]
112    set belldur         [.bell.val.dur.entry get]
113
114    if {[expr "{$kbdrep} == {on}"]} then {
115        set kbdcli      [.kbd.val.cli get]
116    } else {
117        set kbdcli      "off"
118    }
119
120    set mouseacc        [.mouse.hor.acc.entry get]
121    set mousethr        [.mouse.hor.thr.entry get]
122
123    set screentim       [.screen.val.le.tim.entry get]
124    set screencyc       [.screen.val.le.cyc.entry get]
125
126    exec xset \
127        b $bellvol $bellpit $belldur \
128        c $kbdcli \
129        r $kbdrep \
130        m $mouseacc $mousethr \
131        s $screentim $screencyc \
132        s $screenbla
133}
134
135
136#
137# Sends all settings to the window
138#
139
140proc dispsettings {} {
141    global kbdrep kbdcli  bellvol bellpit belldur
142    global mouseacc mousethr  screenbla screentim screencyc
143
144    .bell.vol set $bellvol
145    .bell.val.pit.entry delete 0 end
146    .bell.val.pit.entry insert 0 $bellpit
147    .bell.val.dur.entry delete 0 end
148    .bell.val.dur.entry insert 0 $belldur
149
150    .kbd.val.onoff [expr "{$kbdrep} == {on} ? {select} : {deselect}"]
151    .kbd.val.cli set $kbdcli
152
153    .mouse.hor.acc.entry delete 0 end
154    .mouse.hor.acc.entry insert 0 $mouseacc
155    .mouse.hor.thr.entry delete 0 end
156    .mouse.hor.thr.entry insert 0 $mousethr
157
158    .screen.val.rb.blank [expr "{$screenbla}=={blank} ? {select} : {deselect}"]
159    .screen.val.rb.pat   [expr "{$screenbla}!={blank} ? {select} : {deselect}"]
160    .screen.val.le.tim.entry delete 0 end
161    .screen.val.le.tim.entry insert 0 $screentim
162    .screen.val.le.cyc.entry delete 0 end
163    .screen.val.le.cyc.entry insert 0 $screencyc
164}
165
166
167#
168# Create all windows, and pack them
169#
170
171proc labelentry {path text length} {
172    frame $path
173    label $path.label -text $text
174    entry $path.entry -width $length -relief sunken
175    pack $path.label -side left -expand y
176    pack $path.entry -side right -expand y
177}
178
179proc createwindows {} {
180    #
181    # Buttons
182    #
183
184    frame .buttons
185    button .buttons.ok          -command "ok"                   -text "Ok"
186    button .buttons.apply       -command "writesettings"        -text "Apply"
187    button .buttons.cancel      -command "cancel"               -text "Cancel"
188    button .buttons.quit        -command "quit"                 -text "Quit"
189
190    pack .buttons.ok .buttons.apply .buttons.cancel .buttons.quit \
191            -side left -expand yes -pady 5
192
193    #
194    # Bell settings
195    #
196
197    frame .bell -relief raised -borderwidth 2
198    label .bell.label   -text "Bell Settings"
199    scale .bell.vol \
200            -from 0 -to 100 -length 200 -tickinterval 20 \
201            -label "Volume (%)" -orient horizontal
202
203    frame .bell.val
204    labelentry .bell.val.pit "Pitch (Hz)"    6
205    labelentry .bell.val.dur "Duration (ms)" 6
206    pack .bell.val.pit -side left -padx 5
207    pack .bell.val.dur -side right -padx 5
208    pack .bell.label .bell.vol .bell.val -side top -expand yes
209
210    #
211    # Keyboard settings
212    #
213
214    frame .kbd -relief raised -borderwidth 2
215
216    label .kbd.label -text "Keyboard Repeat Settings"
217
218    frame .kbd.val
219    checkbutton .kbd.val.onoff \
220            -text "On" \
221            -onvalue "on" -offvalue "off" -variable kbdrep \
222            -relief flat
223    scale .kbd.val.cli \
224            -from 0 -to 100 -length 200 -tickinterval 20 \
225            -label "Click Volume (%)" -orient horizontal
226    pack .kbd.val.onoff -side left -expand yes -fill both
227    pack .kbd.val.cli -side left -expand yes
228
229    pack .kbd.label -side top -expand yes
230    pack .kbd.val -side top -expand yes -pady 2 -fill x
231
232    #
233    # Mouse settings
234    #
235
236    frame .mouse -relief raised -borderwidth 2
237
238    label .mouse.label -text "Mouse Settings"
239    frame .mouse.hor
240    labelentry .mouse.hor.acc "Acceleration" 3
241    labelentry .mouse.hor.thr "Threshold (pixels)" 3
242
243    pack .mouse.hor.acc -side left
244    pack .mouse.hor.thr -side right
245
246    pack .mouse.label -side top
247    pack .mouse.hor -side top -expand yes
248
249    #
250    # Screen Saver settings
251    #
252
253    frame .screen -relief raised -borderwidth 2
254
255    label .screen.label -text "Screen-saver Settings"
256    frame .screen.val
257
258    frame .screen.val.rb
259    radiobutton .screen.val.rb.blank \
260            -variable screenblank -text "Blank" -relief flat \
261            -value "blank" -variable screenbla
262    radiobutton .screen.val.rb.pat \
263            -variable screenblank -text "Pattern" -relief flat \
264            -value "noblank" -variable screenbla
265    pack .screen.val.rb.blank .screen.val.rb.pat -side top -pady 2 -anchor w
266    frame .screen.val.le
267    labelentry .screen.val.le.tim "Timeout (s)" 5
268    labelentry .screen.val.le.cyc "Cycle (s)" 5
269    pack .screen.val.le.tim .screen.val.le.cyc -side top -pady 2 -anchor e
270
271    pack .screen.val.rb .screen.val.le -side left
272
273    pack .screen.label -side top
274    pack .screen.val -side top -expand y
275
276    #
277    # Main window
278    #
279
280    pack .buttons -side top -fill both
281    pack .bell .kbd .mouse .screen -side top -fill both -ipady 5 -expand yes
282
283    #
284    # Let the user resize our window
285    #
286    wm minsize . 10 10
287}
288
289##############################################################################
290# Main program
291
292#
293# Listen what "xset" tells us...
294#
295
296readsettings
297
298#
299# Create all windows
300#
301
302createwindows
303
304#
305# Write xset parameters
306#
307
308dispsettings
309
310#
311# Now, wait for user actions...
312#
Note: See TracBrowser for help on using the repository browser.