summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-04-10 05:57:37 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-04-10 05:57:37 +0000
commit4a67017698cc23f510d0c76fadc4104b141f4512 (patch)
treefe70f9b37266db4cf2ca14d397c58b6a00f2c5a8
parent7194267b3bdf68ad75bd6bee8e7c6377f7b0ea2f (diff)
2000-04-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ext/tk/lib/tk.rb14
-rw-r--r--ext/tk/lib/tktext.rb102
2 files changed, 70 insertions, 46 deletions
diff --git a/ext/tk/lib/tk.rb b/ext/tk/lib/tk.rb
index 107165f8bab..19d3ad06d59 100644
--- a/ext/tk/lib/tk.rb
+++ b/ext/tk/lib/tk.rb
@@ -350,6 +350,10 @@ module TkComm
_bind_core('+', what, context, cmd, args)
end
+ def _bind_remove(what, context)
+ tk_call(*(what + ["<#{tk_event_sequence(context)}>", '']))
+ end
+
def _bindinfo(what, context=nil)
if context
tk_call(*what+["<#{tk_event_sequence(context)}>"]).collect {|cmdline|
@@ -366,7 +370,7 @@ module TkComm
end
end
private :install_bind, :tk_event_sequence,
- :_bind_core, :_bind, :_bind_append, :_bindinfo
+ :_bind_core, :_bind, :_bind_append, ,:_bind_remove, :_bindinfo
def bind(tagOrClass, context, cmd=Proc.new, args=nil)
_bind(["bind", tagOrClass], context, cmd, args)
@@ -376,6 +380,10 @@ module TkComm
_bind_append(["bind", tagOrClass], context, cmd, args)
end
+ def bind_remove(tagOrClass, context)
+ _bind_remove(['bind', tagOrClass], context)
+ end
+
def bindinfo(tagOrClass, context=nil)
_bindinfo(['bind', tagOrClass], context)
end
@@ -729,6 +737,10 @@ module TkBindCore
Tk.bind_append(to_eval, context, cmd, args)
end
+ def bind_remove(context)
+ Tk.bind_remove(to_eval, context)
+ end
+
def bindinfo(context=nil)
Tk.bindinfo(to_eval, context)
end
diff --git a/ext/tk/lib/tktext.rb b/ext/tk/lib/tktext.rb
index 2dea68980cc..e1939af5fe8 100644
--- a/ext/tk/lib/tktext.rb
+++ b/ext/tk/lib/tktext.rb
@@ -428,8 +428,16 @@ class TkText<TkTextWin
rsearch_with_length(pat,start,stop)[0]
end
- def _dump(type, *index)
- str = tk_send('dump', type, *index)
+ def dump(type_info, *index)
+ args = type_info.collect{|inf|
+ if inf.kind_of? Array
+ inf[0] = '-' + inf[0]
+ inf
+ else
+ '-' + inf
+ end
+ }.flatten
+ str = tk_send('dump', *(args + index))
result = []
sel = nil
i = 0
@@ -501,24 +509,64 @@ class TkText<TkTextWin
end
kvis # result is [[key1, value1, index1], [key2, value2, index2], ...]
end
- private :_dump
+
+ def _retrieve_braced_text(str, i)
+ cnt = 0
+ idx = i
+ while idx < str.size
+ case str[idx]
+ when ?{
+ cnt += 1
+ when ?}
+ cnt -= 1
+ if cnt == 0
+ break
+ end
+ end
+ idx += 1
+ end
+ return str[i+1..idx-1], idx + 2
+ end
+ private :_retrieve_braced_text
+
+ def _retrieve_backslashed_text(str, i)
+ j = i
+ idx = nil
+ loop {
+ idx = str.index(/ /, j)
+ if str[idx-1] == ?\\
+ j += 1
+ else
+ break
+ end
+ }
+ val = str[i..(idx-1)]
+ val.gsub!(/\\( |\{|\})/, '\1')
+ return val, idx + 1
+ end
+ private :_retrieve_backslashed_text
def dump_all(*index)
- _dump('-all', *index)
+ dump(['all'], *index)
+ end
+ def dump_command(cmd, *index)
+ dump([['command', cmd]], *index)
end
def dump_mark(*index)
- _dump('-mark', *index)
+ dump(['mark'], *index)
end
def dump_tag(*index)
- _dump('-tag', *index)
+ dump(['tag'], *index)
end
def dump_text(*index)
- _dump('-text', *index)
+ dump(['text'], *index)
end
def dump_window(*index)
- _dump('-window', *index)
+ dump(['window'], *index)
+ end
+ def dump_image(*index)
+ dump(['image'], *index)
end
-
end
class TkTextTag<TkObject
@@ -831,42 +879,6 @@ class TkTextWindow<TkObject
end
end
- def _retrieve_braced_text(str, i)
- cnt = 0
- idx = i
- while idx < str.size
- case str[idx]
- when ?{
- cnt += 1
- when ?}
- cnt -= 1
- if cnt == 0
- break
- end
- end
- idx += 1
- end
- return str[i+1..idx-1], idx + 2
- end
- private :_retrieve_braced_text
-
- def _retrieve_backslashed_text(str, i)
- j = i
- idx = nil
- loop {
- idx = str.index(/ /, j)
- if str[idx-1] == ?\\
- j += 1
- else
- break
- end
- }
- val = str[i..(idx-1)]
- val.gsub!(/\\( |\{|\})/, '\1')
- return val, idx + 1
- end
- private :_retrieve_backslashed_text
-
end
class TkTextImage<TkObject