[ANN] multiple Tk interpreter support

H

Hidetoshi NAGAI

Hi,

I added the features to support multiple Tk interpreters.
It will be inluded in the next preview release (preview5)
of Ruby 1.8.0.

Probably, it is useful to treat safeTk interpreters.
No need new notation to control some interpreters.
The following script is a sample of multi-tk.rb.
In the sample, I use only one proc object to control
3 interpreters; one default master, one normal-slave
and one safeTk. No need interpreter option for each method.

Could you try it? Bug reports are welcome.

--
Hidetoshi NAGAI ([email protected])

============================================
#!/usr/bin/env ruby
# This script is a sample of MultiTkIp class

require "multi-tk"

# create slave interpreters
trusted_slave = MultiTkIp.new_slave
safe_slave = MultiTkIp.new_safeTk


cmd = Proc.new{|txt|
#####################
## from TkTimer2.rb
begin
root = TkRoot.new:)title=>'timer sample')
rescue
# safeTk doesn't have permission to call 'wm' command
end
label = TkLabel.new:)parent=>root, :relief=>:raised, :width=>10) \
.pack:)side=>:bottom, :fill=>:both)

tick = proc{|aobj|
cnt = aobj.return_value + 5
label.text format("%d.%02d", *(cnt.divmod(100)))
cnt
}

timer = TkTimer.new(50, -1, tick).start(0, proc{ label.text('0.00'); 0 })

TkButton.new:)text=>'Start') {
command proc{ timer.continue unless timer.running? }
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')
}

ev_quit = TkVirtualEvent.new('Control-c', 'Control-q')
Tk.root.bind(ev_quit, proc{Tk.exit}).focus
}

# call on the default master interpreter
trusted_slave.eval_proc(cmd, 'trusted')
safe_slave.eval_proc(cmd, 'safe')
cmd.call('master')

Tk.mainloop
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,981
Messages
2,570,187
Members
46,730
Latest member
AudryNolan

Latest Threads

Top