1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/tk/sample/demos-jp/check2.rb

108 lines
3.5 KiB
Ruby
Raw Normal View History

#
# 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),
:columnspan=>4, :row=>0, :sticky=>'ew', :pady=>2)
TkGrid('x',
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)
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,
:relief=>:flat, :onvalue=>'all', :offvalue=>'none',
:tristatevalue=>'partial'){
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|
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
else
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
end
ensure
in_check = false
end
end
}
[wipers, brakes, sober, safety].each{|v| v.trace('w', tristate_check)}