mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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:
parent
029e9449ce
commit
4e0bb56f21
6 changed files with 33 additions and 6 deletions
|
@ -27,6 +27,7 @@ MultiTkIp_OK.freeze
|
|||
class MultiTkIp
|
||||
|
||||
# ignore exception on the mainloop
|
||||
#TclTkLib.mainloop_abort_on_exception = false
|
||||
TclTkLib.mainloop_abort_on_exception = nil
|
||||
|
||||
######################################
|
||||
|
|
|
@ -1693,6 +1693,11 @@ class TkVariable
|
|||
@id = Tk_VARIABLE_ID.join
|
||||
Tk_VARIABLE_ID[1].succ!
|
||||
TkVar_ID_TBL[@id] = self
|
||||
|
||||
@trace_var = nil
|
||||
@trace_elem = nil
|
||||
@trace_opts = nil
|
||||
|
||||
if val == []
|
||||
INTERP._eval(format('global %s; set %s(0) 0; unset %s(0)',
|
||||
@id, @id, @id))
|
||||
|
|
|
@ -57,6 +57,7 @@ class TkDialog2 < TkWindow
|
|||
|
||||
@message = message
|
||||
@message_config = message_config
|
||||
@msgframe_config = msgframe_config
|
||||
|
||||
@bitmap = bitmap
|
||||
@bitmap_config = message_config
|
||||
|
@ -65,10 +66,13 @@ class TkDialog2 < TkWindow
|
|||
|
||||
@buttons = buttons
|
||||
@button_configs = proc{|num| button_configs(num)}
|
||||
@btnframe_config = btnframe_config
|
||||
|
||||
#@config = "puts [winfo children .w0000];"
|
||||
@config = ""
|
||||
|
||||
@command = nil
|
||||
|
||||
if keys.kind_of? Hash
|
||||
keys = _symbolkey2str(keys)
|
||||
@title = keys['title'] if keys.key? 'title'
|
||||
|
|
|
@ -140,6 +140,9 @@ class TkEntry<TkLabel
|
|||
self
|
||||
end
|
||||
|
||||
def bbox(index)
|
||||
list(tk_send('bbox', index))
|
||||
end
|
||||
def cursor
|
||||
number(tk_send('index', 'insert'))
|
||||
end
|
||||
|
@ -154,6 +157,10 @@ class TkEntry<TkLabel
|
|||
tk_send 'insert', pos, text
|
||||
self
|
||||
end
|
||||
def delete(first, last=None)
|
||||
tk_send 'insert', first, last
|
||||
self
|
||||
end
|
||||
def mark(pos)
|
||||
tk_send 'scan', 'mark', pos
|
||||
self
|
||||
|
|
|
@ -14,11 +14,13 @@ safe_slave2 = MultiTkIp.new_safeTk('fill'=>:none, 'expand'=>false)
|
|||
cmd = Proc.new{|txt|
|
||||
#####################
|
||||
## from TkTimer2.rb
|
||||
begin
|
||||
root = TkRoot.new(:title=>'timer sample')
|
||||
rescue
|
||||
|
||||
if TkCore::INTERP.safe?
|
||||
# safeTk doesn't have permission to call 'wm' command
|
||||
else
|
||||
root = TkRoot.new(:title=>'timer sample')
|
||||
end
|
||||
|
||||
label = TkLabel.new(:parent=>root, :relief=>:raised, :width=>10) \
|
||||
.pack(:side=>:bottom, :fill=>:both)
|
||||
|
||||
|
@ -34,6 +36,10 @@ cmd = Proc.new{|txt|
|
|||
command proc{ timer.continue unless timer.running? }
|
||||
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') {
|
||||
command proc{ timer.stop if timer.running? }
|
||||
pack('side'=>'right','fill'=>'both','expand'=>'yes')
|
||||
|
@ -45,9 +51,9 @@ cmd = Proc.new{|txt|
|
|||
|
||||
# call on the default master interpreter
|
||||
trusted_slave.eval_proc(cmd, 'trusted') # label -> .w00012
|
||||
safe_slave1.eval_proc(cmd, 'safe1') # label -> .w00015
|
||||
safe_slave2.eval_proc(cmd, 'safe2') # label -> .w00018
|
||||
cmd.call('master') # label -> .w00021
|
||||
safe_slave1.eval_proc(cmd, 'safe1') # label -> .w00016
|
||||
safe_slave2.eval_proc(cmd, 'safe2') # label -> .w00020
|
||||
cmd.call('master') # label -> .w00024
|
||||
|
||||
TkTimer.new(2000, -1, proc{p ['safe1', safe_slave1.deleted?]}).start
|
||||
TkTimer.new(2000, -1, proc{p ['safe2', safe_slave2.deleted?]}).start
|
||||
|
|
|
@ -32,6 +32,10 @@ TkButton.new(:text=>'Start') {
|
|||
command proc{ timer.continue unless timer.running? }
|
||||
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') {
|
||||
command proc{ timer.stop if timer.running? }
|
||||
pack('side'=>'right','fill'=>'both','expand'=>'yes')
|
||||
|
|
Loading…
Add table
Reference in a new issue