summaryrefslogtreecommitdiff
path: root/lib/tkcanvas.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-07-09 08:40:46 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-07-09 08:40:46 +0000
commit3c1d5b89c33546028fce534546b8e356369ee231 (patch)
treefb658b101bf9a045c488663f2cbc6b3a178bbd3e /lib/tkcanvas.rb
parent528b1f5237bc4e031228a27c00cdd679319f2472 (diff)
1.1b9_30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/tkcanvas.rb')
-rw-r--r--lib/tkcanvas.rb33
1 files changed, 28 insertions, 5 deletions
diff --git a/lib/tkcanvas.rb b/lib/tkcanvas.rb
index 1d4c4c583aa..4ee0c3cd486 100644
--- a/lib/tkcanvas.rb
+++ b/lib/tkcanvas.rb
@@ -8,6 +8,12 @@
require "tk"
class TkCanvas<TkWindow
+ WidgetClassName = 'Canvas'.freeze
+ TkClassBind::WidgetClassNameTBL[WidgetClassName] = self
+ def self.to_eval
+ WidgetClassName
+ end
+
def create_self
tk_call 'canvas', path
end
@@ -51,13 +57,9 @@ class TkCanvas<TkWindow
end
def itembind(tag, context, cmd=Proc.new, args=nil)
- context = context.join("><") if context.kind_of? Array
- if /,/ =~ context
- context = context.split(/\s*,\s*/).join("><")
- end
id = install_bind(cmd, args)
begin
- tk_send 'bind', tagid(tag), "<#{context}>", id
+ tk_send 'bind', tagid(tag), "<#{tk_event_sequence(context)}>", id
rescue
uninstall_cmd(cmd)
fail
@@ -65,6 +67,23 @@ class TkCanvas<TkWindow
# @cmdtbl.push id
end
+ def itembindinfo(tag, context=nil)
+ if context
+ (tk_send('bind', tagid(tag),
+ "<#{tk_event_sequence(context)}>")).collect{|cmdline|
+ if cmdline =~ /^rb_out (c\d+)\s+(.*)$/
+ [Tk_CMDTBL[$1], $2]
+ else
+ cmdline
+ end
+ }
+ else
+ tk_split_list(tk_send 'bind', tagid(tag)).filter{|seq|
+ seq[1..-2].gsub(/></,',')
+ }
+ end
+ end
+
def canvasx(x, *args)
tk_tcl2ruby(tk_send 'canvasx', x, *args)
end
@@ -252,6 +271,10 @@ module TkcTagAccess
@c.itembind @id, seq, cmd, args
end
+ def bindinfo(seq=nil)
+ @c.itembindinfo @id, seq
+ end
+
def cget(option)
@c.itemcget @id, option
end