* bug fix

* fix lack of methods for TkEntry
* fix reference of uninitialized variables


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagai 2003-07-30 07:15:00 +00:00
parent 029e9449ce
commit 4e0bb56f21
6 changed files with 33 additions and 6 deletions

View File

@ -27,6 +27,7 @@ MultiTkIp_OK.freeze
class MultiTkIp class MultiTkIp
# ignore exception on the mainloop # ignore exception on the mainloop
#TclTkLib.mainloop_abort_on_exception = false
TclTkLib.mainloop_abort_on_exception = nil TclTkLib.mainloop_abort_on_exception = nil
###################################### ######################################

View File

@ -1693,6 +1693,11 @@ class TkVariable
@id = Tk_VARIABLE_ID.join @id = Tk_VARIABLE_ID.join
Tk_VARIABLE_ID[1].succ! Tk_VARIABLE_ID[1].succ!
TkVar_ID_TBL[@id] = self TkVar_ID_TBL[@id] = self
@trace_var = nil
@trace_elem = nil
@trace_opts = nil
if val == [] if val == []
INTERP._eval(format('global %s; set %s(0) 0; unset %s(0)', INTERP._eval(format('global %s; set %s(0) 0; unset %s(0)',
@id, @id, @id)) @id, @id, @id))

View File

@ -57,6 +57,7 @@ class TkDialog2 < TkWindow
@message = message @message = message
@message_config = message_config @message_config = message_config
@msgframe_config = msgframe_config
@bitmap = bitmap @bitmap = bitmap
@bitmap_config = message_config @bitmap_config = message_config
@ -65,10 +66,13 @@ class TkDialog2 < TkWindow
@buttons = buttons @buttons = buttons
@button_configs = proc{|num| button_configs(num)} @button_configs = proc{|num| button_configs(num)}
@btnframe_config = btnframe_config
#@config = "puts [winfo children .w0000];" #@config = "puts [winfo children .w0000];"
@config = "" @config = ""
@command = nil
if keys.kind_of? Hash if keys.kind_of? Hash
keys = _symbolkey2str(keys) keys = _symbolkey2str(keys)
@title = keys['title'] if keys.key? 'title' @title = keys['title'] if keys.key? 'title'

View File

@ -140,6 +140,9 @@ class TkEntry<TkLabel
self self
end end
def bbox(index)
list(tk_send('bbox', index))
end
def cursor def cursor
number(tk_send('index', 'insert')) number(tk_send('index', 'insert'))
end end
@ -154,6 +157,10 @@ class TkEntry<TkLabel
tk_send 'insert', pos, text tk_send 'insert', pos, text
self self
end end
def delete(first, last=None)
tk_send 'insert', first, last
self
end
def mark(pos) def mark(pos)
tk_send 'scan', 'mark', pos tk_send 'scan', 'mark', pos
self self

View File

@ -14,11 +14,13 @@ safe_slave2 = MultiTkIp.new_safeTk('fill'=>:none, 'expand'=>false)
cmd = Proc.new{|txt| cmd = Proc.new{|txt|
##################### #####################
## from TkTimer2.rb ## from TkTimer2.rb
begin
root = TkRoot.new(:title=>'timer sample') if TkCore::INTERP.safe?
rescue
# safeTk doesn't have permission to call 'wm' command # safeTk doesn't have permission to call 'wm' command
else
root = TkRoot.new(:title=>'timer sample')
end end
label = TkLabel.new(:parent=>root, :relief=>:raised, :width=>10) \ label = TkLabel.new(:parent=>root, :relief=>:raised, :width=>10) \
.pack(:side=>:bottom, :fill=>:both) .pack(:side=>:bottom, :fill=>:both)
@ -34,6 +36,10 @@ cmd = Proc.new{|txt|
command proc{ timer.continue unless timer.running? } command proc{ timer.continue unless timer.running? }
pack(:side=>:left, :fill=>:both, :expand=>true) pack(:side=>:left, :fill=>:both, :expand=>true)
} }
TkButton.new(:text=>'Restart') {
command proc{ timer.restart(0, proc{ label.text('0.00'); 0 }) }
pack('side'=>'right','fill'=>'both','expand'=>'yes')
}
TkButton.new(:text=>'Stop') { TkButton.new(:text=>'Stop') {
command proc{ timer.stop if timer.running? } command proc{ timer.stop if timer.running? }
pack('side'=>'right','fill'=>'both','expand'=>'yes') pack('side'=>'right','fill'=>'both','expand'=>'yes')
@ -45,9 +51,9 @@ cmd = Proc.new{|txt|
# call on the default master interpreter # call on the default master interpreter
trusted_slave.eval_proc(cmd, 'trusted') # label -> .w00012 trusted_slave.eval_proc(cmd, 'trusted') # label -> .w00012
safe_slave1.eval_proc(cmd, 'safe1') # label -> .w00015 safe_slave1.eval_proc(cmd, 'safe1') # label -> .w00016
safe_slave2.eval_proc(cmd, 'safe2') # label -> .w00018 safe_slave2.eval_proc(cmd, 'safe2') # label -> .w00020
cmd.call('master') # label -> .w00021 cmd.call('master') # label -> .w00024
TkTimer.new(2000, -1, proc{p ['safe1', safe_slave1.deleted?]}).start TkTimer.new(2000, -1, proc{p ['safe1', safe_slave1.deleted?]}).start
TkTimer.new(2000, -1, proc{p ['safe2', safe_slave2.deleted?]}).start TkTimer.new(2000, -1, proc{p ['safe2', safe_slave2.deleted?]}).start

View File

@ -32,6 +32,10 @@ TkButton.new(:text=>'Start') {
command proc{ timer.continue unless timer.running? } command proc{ timer.continue unless timer.running? }
pack(:side=>:left, :fill=>:both, :expand=>true) pack(:side=>:left, :fill=>:both, :expand=>true)
} }
TkButton.new(:text=>'Restart') {
command proc{ timer.restart(0, proc{ label.text('0.00'); 0 }) }
pack(:side=>:left, :fill=>:both, :expand=>true)
}
TkButton.new(:text=>'Stop') { TkButton.new(:text=>'Stop') {
command proc{ timer.stop if timer.running? } command proc{ timer.stop if timer.running? }
pack('side'=>'right','fill'=>'both','expand'=>'yes') pack('side'=>'right','fill'=>'both','expand'=>'yes')