2004-05-01 12:09:54 -04:00
|
|
|
|
#
|
|
|
|
|
# checkbutton widget demo2 (called by 'widget')
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
# toplevel widget <20><>¸<EFBFBD>ߤ<EFBFBD><DFA4><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if defined?($check2_demo) && $check2_demo
|
|
|
|
|
$check2_demo.destroy
|
|
|
|
|
$check2_demo = nil
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# demo <20>Ѥ<EFBFBD> toplevel widget <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
$check2_demo = TkToplevel.new {|w|
|
|
|
|
|
title("Checkbutton Demonstration 2")
|
|
|
|
|
iconname("check2")
|
|
|
|
|
positionWindow(w)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# label <20><><EFBFBD><EFBFBD>
|
|
|
|
|
msg = TkLabel.new($check2_demo) {
|
|
|
|
|
font $font
|
|
|
|
|
wraplength '4i'
|
|
|
|
|
justify 'left'
|
|
|
|
|
text "<EFBFBD><EFBFBD><EFBFBD>ˤϣ<EFBFBD><EFBFBD>ĤΥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD>ܥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥܥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD>Ѥ<EFBFBD><EFBFBD>ꡢTcl<EFBFBD>ѿ<EFBFBD><EFBFBD><EFBFBD>TkVariable<EFBFBD><EFBFBD><EFBFBD>֥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥǥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD>ˤˤ<EFBFBD><EFBFBD>Υܥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD>ͤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꤷ<EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD>Υܥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><EFBFBD>֤<EFBFBD>¾<EFBFBD>Σ<EFBFBD><EFBFBD>ĤΥܥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><EFBFBD>֤ˤ<EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⤷<EFBFBD><EFBFBD><EFBFBD>ĤΥܥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˥<EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD><EFBFBD>դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>硢<EFBFBD>ǽ<EFBFBD><EFBFBD>Υܥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϥȥ饤<EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD>ȡʣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡˥⡼<EFBFBD>ɤǤ<EFBFBD>ɽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߤ<EFBFBD><EFBFBD>ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͤ<EFBFBD><EFBFBD>ˤϡ<EFBFBD><EFBFBD>ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡץܥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|
|
|
|
}
|
|
|
|
|
msg.pack('side'=>'top')
|
|
|
|
|
|
|
|
|
|
# <20>ѿ<EFBFBD><D1BF><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
safety = TkVariable.new(0)
|
|
|
|
|
wipers = TkVariable.new(0)
|
|
|
|
|
brakes = TkVariable.new(0)
|
|
|
|
|
sober = TkVariable.new(0)
|
|
|
|
|
|
|
|
|
|
# frame <20><><EFBFBD><EFBFBD>
|
|
|
|
|
TkFrame.new($check2_demo) {|frame|
|
|
|
|
|
TkGrid(TkFrame.new(frame, :height=>2, :relief=>:sunken, :bd=>2),
|
2004-10-11 00:51:21 -04:00
|
|
|
|
:columnspan=>4, :row=>0, :sticky=>'ew', :pady=>2)
|
2004-05-01 12:09:54 -04:00
|
|
|
|
TkGrid('x',
|
2004-10-11 00:51:21 -04:00
|
|
|
|
TkButton.new(frame, :text=>'<27>ѿ<EFBFBD><D1BF><EFBFBD><EFBFBD><EFBFBD>',
|
|
|
|
|
:image=>$image['view'], :compound=>:left,
|
|
|
|
|
:command=>proc{
|
|
|
|
|
showVars($check2_demo,
|
|
|
|
|
['safety', safety], ['wipers', wipers],
|
|
|
|
|
['brakes', brakes], ['sober', sober])
|
|
|
|
|
}),
|
|
|
|
|
TkButton.new(frame, :text=>'<27><><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>',
|
|
|
|
|
:image=>$image['view'], :compound=>:left,
|
|
|
|
|
:command=>proc{showCode 'check2'}),
|
|
|
|
|
TkButton.new(frame, :text=>'<27>Ĥ<EFBFBD><C4A4><EFBFBD>',
|
|
|
|
|
:image=>$image['delete'], :compound=>:left,
|
|
|
|
|
:command=>proc{
|
|
|
|
|
tmppath = $check2_demo
|
|
|
|
|
$check2_demo = nil
|
|
|
|
|
$showVarsWin[tmppath.path] = nil
|
|
|
|
|
tmppath.destroy
|
|
|
|
|
}),
|
|
|
|
|
:padx=>4, :pady=>4)
|
2004-05-01 12:09:54 -04:00
|
|
|
|
frame.grid_columnconfigure(0, :weight=>1)
|
|
|
|
|
}.pack('side'=>'bottom', 'fill'=>'x')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# checkbutton <20><><EFBFBD><EFBFBD>
|
|
|
|
|
TkCheckButton.new($check2_demo, :text=>'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', :variable=>safety,
|
2004-10-11 00:51:21 -04:00
|
|
|
|
:relief=>:flat, :onvalue=>'all', :offvalue=>'none',
|
|
|
|
|
:tristatevalue=>'partial'){
|
2004-05-01 12:09:54 -04:00
|
|
|
|
pack('side'=>'top', 'pady'=>2, 'anchor'=>'w')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[ TkCheckButton.new($check2_demo, 'text'=>'<27>磻<EFBFBD>ѡ<EFBFBD> OK', 'variable'=>wipers),
|
|
|
|
|
TkCheckButton.new($check2_demo, 'text'=>'<27>֥졼<D6A5><ECA1BC> OK', 'variable'=>brakes),
|
|
|
|
|
TkCheckButton.new($check2_demo, 'text'=>'<27><>ž<EFBFBD><C5BE> <20><><EFBFBD><EFBFBD>', 'variable'=>sober)
|
|
|
|
|
].each{|w|
|
|
|
|
|
w.relief('flat')
|
|
|
|
|
w.pack('side'=>'top', 'padx'=>15, 'pady'=>2, 'anchor'=>'w')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# tristate check
|
|
|
|
|
in_check = false
|
|
|
|
|
tristate_check = proc{|n1,n2,op|
|
2005-03-30 03:44:19 -05:00
|
|
|
|
unless in_check
|
|
|
|
|
in_check = true
|
|
|
|
|
begin
|
|
|
|
|
if n1 == safety
|
|
|
|
|
if safety == 'none'
|
|
|
|
|
wipers.value = 0
|
|
|
|
|
brakes.value = 0
|
|
|
|
|
sober.value = 0
|
|
|
|
|
elsif safety == 'all'
|
|
|
|
|
wipers.value = 1
|
|
|
|
|
brakes.value = 1
|
|
|
|
|
sober.value = 1
|
|
|
|
|
end
|
2004-05-01 12:09:54 -04:00
|
|
|
|
else
|
2005-03-30 03:44:19 -05:00
|
|
|
|
if wipers == 1 && brakes == 1 && sober == 1
|
|
|
|
|
safety.value = 'all'
|
|
|
|
|
elsif wipers == 1 || brakes == 1 || sober == 1
|
|
|
|
|
safety.value = 'partial'
|
|
|
|
|
else
|
|
|
|
|
safety.value = 'none'
|
|
|
|
|
end
|
2004-05-01 12:09:54 -04:00
|
|
|
|
end
|
2005-03-30 03:44:19 -05:00
|
|
|
|
ensure
|
|
|
|
|
in_check = false
|
2004-05-01 12:09:54 -04:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[wipers, brakes, sober, safety].each{|v| v.trace('w', tristate_check)}
|