tk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -0
  3. data/MANUAL_tcltklib.eng +0 -2
  4. data/MANUAL_tcltklib.ja +0 -2
  5. data/README.ActiveTcl +1 -1
  6. data/README.md +43 -0
  7. data/ext/tk/extconf.rb +4 -2
  8. data/ext/tk/old-extconf.rb +0 -1
  9. data/ext/tk/tcltklib.c +46 -148
  10. data/ext/tk/tkutil/extconf.rb +0 -2
  11. data/ext/tk/tkutil/tkutil.c +6 -9
  12. data/lib/multi-tk.rb +95 -315
  13. data/lib/remote-tk.rb +6 -23
  14. data/lib/tk.rb +41 -122
  15. data/lib/tk/bgerror.rb +2 -2
  16. data/lib/tk/bindtag.rb +1 -1
  17. data/lib/tk/canvas.rb +6 -14
  18. data/lib/tk/canvastag.rb +8 -16
  19. data/lib/tk/font.rb +1 -1
  20. data/lib/tk/fontchooser.rb +1 -1
  21. data/lib/tk/image.rb +1 -1
  22. data/lib/tk/menu.rb +4 -4
  23. data/lib/tk/msgcat.rb +5 -5
  24. data/lib/tk/namespace.rb +12 -32
  25. data/lib/tk/optiondb.rb +3 -73
  26. data/lib/tk/scale.rb +2 -2
  27. data/lib/tk/scrollable.rb +4 -2
  28. data/lib/tk/selection.rb +5 -4
  29. data/lib/tk/text.rb +8 -16
  30. data/lib/tk/textmark.rb +1 -1
  31. data/lib/tk/texttag.rb +7 -15
  32. data/lib/tk/timer.rb +2 -2
  33. data/lib/tk/tk_mac.rb +18 -18
  34. data/lib/tk/validation.rb +4 -35
  35. data/lib/tk/variable.rb +7 -5
  36. data/lib/tk/virtevent.rb +1 -1
  37. data/lib/tkextlib/blt/barchart.rb +0 -17
  38. data/lib/tkextlib/blt/bitmap.rb +1 -1
  39. data/lib/tkextlib/blt/component.rb +34 -34
  40. data/lib/tkextlib/blt/dragdrop.rb +6 -6
  41. data/lib/tkextlib/blt/graph.rb +0 -17
  42. data/lib/tkextlib/blt/stripchart.rb +0 -17
  43. data/lib/tkextlib/blt/tabset.rb +16 -31
  44. data/lib/tkextlib/blt/tree.rb +5 -5
  45. data/lib/tkextlib/blt/treeview.rb +14 -14
  46. data/lib/tkextlib/blt/watch.rb +1 -1
  47. data/lib/tkextlib/bwidget/labelentry.rb +6 -14
  48. data/lib/tkextlib/bwidget/listbox.rb +13 -29
  49. data/lib/tkextlib/bwidget/notebook.rb +6 -14
  50. data/lib/tkextlib/bwidget/spinbox.rb +6 -14
  51. data/lib/tkextlib/bwidget/tree.rb +19 -35
  52. data/lib/tkextlib/itcl/incr_tcl.rb +2 -2
  53. data/lib/tkextlib/itk/incr_tk.rb +7 -29
  54. data/lib/tkextlib/iwidgets/calendar.rb +0 -15
  55. data/lib/tkextlib/iwidgets/entryfield.rb +0 -21
  56. data/lib/tkextlib/iwidgets/notebook.rb +2 -2
  57. data/lib/tkextlib/iwidgets/scrolledcanvas.rb +6 -14
  58. data/lib/tkextlib/iwidgets/tabnotebook.rb +2 -2
  59. data/lib/tkextlib/tcllib/ctext.rb +2 -2
  60. data/lib/tkextlib/tcllib/plotchart.rb +5 -5
  61. data/lib/tkextlib/tcllib/validator.rb +6 -6
  62. data/lib/tkextlib/tile.rb +1 -1
  63. data/lib/tkextlib/tile/style.rb +1 -1
  64. data/lib/tkextlib/tile/treeview.rb +13 -20
  65. data/lib/tkextlib/tkDND/tkdnd.rb +6 -22
  66. data/lib/tkextlib/tkHTML/htmlwidget.rb +1 -1
  67. data/lib/tkextlib/tktable/tktable.rb +1 -1
  68. data/lib/tkextlib/treectrl/tktreectrl.rb +12 -20
  69. data/lib/tkextlib/vu/pie.rb +1 -1
  70. data/sample/binding_sample.rb +2 -2
  71. data/sample/cmd_res_test.rb +1 -1
  72. data/sample/demos-en/widget +21 -21
  73. data/sample/demos-jp/widget +4 -4
  74. data/sample/multi-ip_sample.rb +0 -3
  75. data/sample/multi-ip_sample2.rb +1 -1
  76. data/sample/resource.en +3 -3
  77. data/sample/resource.ja +3 -3
  78. data/sample/tcltklib/sample1.rb +2 -2
  79. data/sample/tkballoonhelp.rb +2 -2
  80. data/sample/tkextlib/tkHTML/ss.rb +0 -6
  81. data/sample/tkmulticolumnlist.rb +2 -2
  82. data/sample/tkmultilistframe.rb +2 -2
  83. data/sample/tkoptdb.rb +14 -16
  84. data/tk.gemspec +4 -4
  85. metadata +6 -13
  86. data/ChangeLog.tkextlib +0 -949
  87. data/old-README.tcltklib.ja +0 -159
  88. data/sample/binstr_usage.rb +0 -46
  89. data/sample/remote-ip_sample2.rb +0 -57
  90. data/sample/safe-tk.rb +0 -132
  91. data/sample/tkoptdb-safeTk.rb +0 -74
  92. data/sample/tktree.rb +0 -104
  93. data/sample/tktree.tcl +0 -305
@@ -22,31 +22,23 @@ module TkcTagAccess
22
22
  @c.bbox(@id)
23
23
  end
24
24
 
25
- #def bind(seq, cmd=Proc.new, *args)
26
- # @c.itembind(@id, seq, cmd, *args)
27
- # self
28
- #end
29
- def bind(seq, *args)
25
+ def bind(seq, *args, &block)
30
26
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
31
- if TkComm._callback_entry?(args[0]) || !block_given?
27
+ if TkComm._callback_entry?(args[0]) || !block
32
28
  cmd = args.shift
33
29
  else
34
- cmd = Proc.new
30
+ cmd = block
35
31
  end
36
32
  @c.itembind(@id, seq, cmd, *args)
37
33
  self
38
34
  end
39
35
 
40
- #def bind_append(seq, cmd=Proc.new, *args)
41
- # @c.itembind_append(@id, seq, cmd, *args)
42
- # self
43
- #end
44
- def bind_append(seq, *args)
36
+ def bind_append(seq, *args, &block)
45
37
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
46
- if TkComm._callback_entry?(args[0]) || !block_given?
38
+ if TkComm._callback_entry?(args[0]) || !block
47
39
  cmd = args.shift
48
40
  else
49
- cmd = Proc.new
41
+ cmd = block
50
42
  end
51
43
  @c.itembind_append(@id, seq, cmd, *args)
52
44
  self
@@ -229,7 +221,7 @@ class TkcTag<TkObject
229
221
 
230
222
  CTagID_TBL = TkCore::INTERP.create_table
231
223
 
232
- (Tk_CanvasTag_ID = ['ctag'.freeze, TkUtil.untrust('00000')]).instance_eval{
224
+ (Tk_CanvasTag_ID = ['ctag'.freeze, '00000']).instance_eval{
233
225
  @mutex = Mutex.new
234
226
  def mutex; @mutex; end
235
227
  freeze
@@ -415,7 +407,7 @@ class TkcTagCurrent<TkcTagString
415
407
  end
416
408
 
417
409
  class TkcGroup<TkcTag
418
- (Tk_cGroup_ID = ['tkcg'.freeze, TkUtil.untrust('00000')]).instance_eval{
410
+ (Tk_cGroup_ID = ['tkcg'.freeze, '00000']).instance_eval{
419
411
  @mutex = Mutex.new
420
412
  def mutex; @mutex; end
421
413
  freeze
@@ -12,7 +12,7 @@ class TkFont
12
12
 
13
13
  TkCommandNames = ['font'.freeze].freeze
14
14
 
15
- (Tk_FontID = ["@font".freeze, TkUtil.untrust("00000")]).instance_eval{
15
+ (Tk_FontID = ["@font".freeze, "00000"]).instance_eval{
16
16
  @mutex = Mutex.new
17
17
  def mutex; @mutex; end
18
18
  freeze
@@ -109,7 +109,7 @@ class << TkFont::Chooser
109
109
  if cmd
110
110
  configure_cmd('command', cmd)
111
111
  elsif b
112
- configure_cmd('command', Proc.new(&b))
112
+ configure_cmd('command', b)
113
113
  else
114
114
  cget('command')
115
115
  end
@@ -12,7 +12,7 @@ class TkImage<TkObject
12
12
 
13
13
  Tk_IMGTBL = TkCore::INTERP.create_table
14
14
 
15
- (Tk_Image_ID = ['i'.freeze, TkUtil.untrust('00000')]).instance_eval{
15
+ (Tk_Image_ID = ['i'.freeze, '00000']).instance_eval{
16
16
  @mutex = Mutex.new
17
17
  def mutex; @mutex; end
18
18
  freeze
@@ -186,16 +186,16 @@ class Tk::Menu<TkWindow
186
186
  tk_send_without_enc('postcascade', _get_eval_enc_str(index))
187
187
  self
188
188
  end
189
- def postcommand(cmd=Proc.new)
190
- configure_cmd 'postcommand', cmd
189
+ def postcommand(cmd=nil, &block)
190
+ configure_cmd('postcommand', cmd || block)
191
191
  self
192
192
  end
193
193
  def set_focus
194
194
  tk_call_without_enc('tk_menuSetFocus', path)
195
195
  self
196
196
  end
197
- def tearoffcommand(cmd=Proc.new)
198
- configure_cmd 'tearoffcommand', cmd
197
+ def tearoffcommand(cmd=nil, &block)
198
+ configure_cmd('tearoffcommand', cmd || block)
199
199
  self
200
200
  end
201
201
  def menutype(index)
@@ -37,7 +37,7 @@ class TkMsgCatalog < TkObject
37
37
 
38
38
  MSGCAT_EXT = '.msg'
39
39
 
40
- UNKNOWN_CBTBL = TkUtil.untrust(Hash.new{|hash,key| hash[key] = {}})
40
+ UNKNOWN_CBTBL = Hash.new{|hash,key| hash[key] = {}}
41
41
 
42
42
  TkCore::INTERP.add_tk_procs('::msgcat::mcunknown', 'args', <<-'EOL')
43
43
  if {[set st [catch {eval {ruby_cmd TkMsgCatalog callback} [namespace current] $args} ret]] != 0} {
@@ -289,11 +289,11 @@ class TkMsgCatalog < TkObject
289
289
  })
290
290
  end
291
291
 
292
- def self.def_unknown_proc(cmd=Proc.new)
293
- TkMsgCatalog::UNKNOWN_CBTBL[TkCore::INTERP.__getip]['::'] = cmd
292
+ def self.def_unknown_proc(cmd=nil, &block)
293
+ TkMsgCatalog::UNKNOWN_CBTBL[TkCore::INTERP.__getip]['::'] = cmd || block
294
294
  end
295
- def def_unknown_proc(cmd=Proc.new)
296
- TkMsgCatalog::UNKNOWN_CBTBL[TkCore::INTERP.__getip][@namespace.path] = cmd
295
+ def def_unknown_proc(cmd=nil, &block)
296
+ TkMsgCatalog::UNKNOWN_CBTBL[TkCore::INTERP.__getip][@namespace.path] = cmd || block
297
297
  end
298
298
  end
299
299
 
@@ -14,7 +14,7 @@ class TkNamespace < TkObject
14
14
 
15
15
  Tk_Namespace_ID_TBL = TkCore::INTERP.create_table
16
16
 
17
- (Tk_Namespace_ID = ["ns".freeze, TkUtil.untrust("00000")]).instance_eval{
17
+ (Tk_Namespace_ID = ["ns".freeze, "00000"]).instance_eval{
18
18
  @mutex = Mutex.new
19
19
  def mutex; @mutex; end
20
20
  freeze
@@ -307,23 +307,12 @@ class TkNamespace < TkObject
307
307
  TkNamespace.children(@fullname, pattern)
308
308
  end
309
309
 
310
- def self.code(script = Proc.new)
311
- TkNamespace.new('').code(script)
310
+ def self.code(script = nil, &block)
311
+ TkNamespace.new('').code(script || block)
312
312
  end
313
- =begin
314
- def code(script = Proc.new)
315
- if script.kind_of?(String)
316
- cmd = proc{|*args| ScopeArgs.new(@fullname,*args).instance_eval(script)}
317
- elsif script.kind_of?(Proc)
318
- cmd = proc{|*args| ScopeArgs.new(@fullname,*args).instance_eval(&script)}
319
- else
320
- fail ArgumentError, "String or Proc is expected"
321
- end
322
- TkNamespace::NsCode.new(tk_call_without_enc('namespace', 'code',
323
- _get_eval_string(cmd, false)))
324
- end
325
- =end
326
- def code(script = Proc.new)
313
+
314
+ def code(script = nil, &block)
315
+ script ||= block
327
316
  if script.kind_of?(String)
328
317
  cmd = proc{|*args|
329
318
  ret = ScopeArgs.new(@fullname,*args).instance_eval(script)
@@ -414,22 +403,13 @@ class TkNamespace < TkObject
414
403
  bool(tk_call('namespace', 'ensemble', 'exists', cmd))
415
404
  end
416
405
 
417
- def self.eval(namespace, cmd = Proc.new, *args)
406
+ def self.eval(namespace, cmd = nil, *args, &block)
407
+ cmd ||= block
418
408
  #tk_call('namespace', 'eval', namespace, cmd, *args)
419
409
  TkNamespace.new(namespace).eval(cmd, *args)
420
410
  end
421
- =begin
422
- def eval(cmd = Proc.new, *args)
423
- #TkNamespace.eval(@fullname, cmd, *args)
424
- #ns_tk_call(cmd, *args)
425
- code_obj = code(cmd)
426
- ret = code_obj.call(*args)
427
- # uninstall_cmd(TkCore::INTERP._split_tklist(code_obj.path)[-1])
428
- uninstall_cmd(_fromUTF8(TkCore::INTERP._split_tklist(_toUTF8(code_obj.path))[-1]))
429
- tk_tcl2ruby(ret)
430
- end
431
- =end
432
- def eval(cmd = Proc.new, *args)
411
+ def eval(cmd = nil, *args, &block)
412
+ cmd ||= block
433
413
  code_obj = code(cmd)
434
414
  ret = code_obj.call(*args)
435
415
  uninstall_cmd(_fromUTF8(TkCore::INTERP._split_tklist(_toUTF8(code_obj.path))[-1]))
@@ -529,8 +509,8 @@ class TkNamespace < TkObject
529
509
  def self.get_unknown_handler
530
510
  tk_tcl2ruby(tk_call('namespace', 'unknown'))
531
511
  end
532
- def self.set_unknown_handler(cmd = Proc.new)
533
- tk_call('namespace', 'unknown', cmd)
512
+ def self.set_unknown_handler(cmd = nil, &block)
513
+ tk_call('namespace', 'unknown', cmd || block)
534
514
  end
535
515
 
536
516
  def self.which(name)
@@ -9,7 +9,7 @@ module TkOptionDB
9
9
  extend Tk
10
10
 
11
11
  TkCommandNames = ['option'.freeze].freeze
12
- (CmdClassID = ['CMD_CLASS'.freeze, TkUtil.untrust('00000')]).instance_eval{
12
+ (CmdClassID = ['CMD_CLASS'.freeze, '00000']).instance_eval{
13
13
  @mutex = Mutex.new
14
14
  def mutex; @mutex; end
15
15
  freeze
@@ -139,31 +139,6 @@ module TkOptionDB
139
139
  class << @@resource_proc_class
140
140
  private :new
141
141
 
142
- =begin
143
- CARRIER = '.'.freeze
144
- METHOD_TBL = TkCore::INTERP.create_table
145
- ADD_METHOD = false
146
- SAFE_MODE = 4
147
- =end
148
-
149
- =begin
150
- def __closed_block_check__(str)
151
- depth = 0
152
- str.scan(/[{}]/){|x|
153
- if x == "{"
154
- depth += 1
155
- elsif x == "}"
156
- depth -= 1
157
- end
158
- if depth <= 0 && !($' =~ /\A\s*\Z/)
159
- fail RuntimeError, "bad string for procedure : #{str.inspect}"
160
- end
161
- }
162
- str
163
- end
164
- private :__closed_block_check__
165
- =end
166
-
167
142
  def __check_proc_string__(str)
168
143
  # If you want to check the proc_string, do it in this method.
169
144
  # Please define this in the block given to 'new_proc_class' method.
@@ -185,13 +160,12 @@ module TkOptionDB
185
160
  "not support resource-proc '#{id.id2name}' for #{self.name}"
186
161
  end
187
162
  proc_str = proc_source
188
- proc_str = '{' + proc_str + '}' unless /\A\{.*\}\Z/ =~ proc_str
163
+ proc_str = '{' + proc_str + '}' unless /\A\{.*\}\Z/m =~ proc_str
189
164
  #proc_str = __closed_block_check__(proc_str)
190
165
  proc_str = __check_proc_string__(proc_str)
191
166
  res_proc = proc{
192
167
  begin
193
- #eval("$SAFE = #{self::SAFE_MODE};\nProc.new" + proc_str)
194
- eval("$SAFE = #{@safe_mode};\nProc.new" + proc_str)
168
+ eval("Proc.new" + proc_str)
195
169
  rescue SyntaxError=>err
196
170
  raise SyntaxError,
197
171
  TkCore::INTERP._toUTF8(err.message.gsub(/\(eval\):\d:/,
@@ -208,44 +182,6 @@ module TkOptionDB
208
182
  end
209
183
  @@resource_proc_class.freeze
210
184
 
211
- =begin
212
- def __create_new_class(klass, func, safe = 4, add = false, parent = nil)
213
- klass = klass.to_s if klass.kind_of? Symbol
214
- unless (?A..?Z) === klass[0]
215
- fail ArgumentError, "bad string '#{klass}' for class name"
216
- end
217
- unless func.kind_of? Array
218
- fail ArgumentError, "method-list must be Array"
219
- end
220
- func_str = func.join(' ')
221
- if parent == nil
222
- install_win(parent)
223
- elsif parent <= @@resource_proc_class
224
- install_win(parent::CARRIER)
225
- else
226
- fail ArgumentError, "parent must be Resource-Proc class"
227
- end
228
- carrier = Tk.tk_call_without_enc('frame', @path, '-class', klass)
229
-
230
- body = <<-"EOD"
231
- class #{klass} < TkOptionDB.module_eval('@@resource_proc_class')
232
- CARRIER = '#{carrier}'.freeze
233
- METHOD_TBL = TkCore::INTERP.create_table
234
- ADD_METHOD = #{add}
235
- SAFE_MODE = #{safe}
236
- %w(#{func_str}).each{|f| METHOD_TBL[f.intern] = nil }
237
- end
238
- EOD
239
-
240
- if parent.kind_of?(Class) && parent <= @@resource_proc_class
241
- parent.class_eval(body)
242
- eval(parent.name + '::' + klass)
243
- else
244
- eval(body)
245
- eval('TkOptionDB::' + klass)
246
- end
247
- end
248
- =end
249
185
  def __create_new_class(klass, func, safe = 4, add = false, parent = nil)
250
186
  if klass.kind_of?(TkWindow)
251
187
  carrier = klass.path
@@ -289,12 +225,6 @@ module TkOptionDB
289
225
  func.each{|f|
290
226
  cmd_klass.instance_variable_get('@method_tbl')[f.to_s.intern] = nil
291
227
  }
292
- =begin
293
- cmd_klass.const_set(:METHOD_TBL, TkCore::INTERP.create_table)
294
- cmd_klass.const_set(:ADD_METHOD, add)
295
- cmd_klass.const_set(:SAFE_MODE, safe)
296
- func.each{|f| cmd_klass::METHOD_TBL[f.to_s.intern] = nil }
297
- =end
298
228
 
299
229
  cmd_klass
300
230
  end
@@ -78,8 +78,8 @@ class Tk::Scale<TkWindow
78
78
  super(slot, value)
79
79
  end
80
80
 
81
- def command(cmd=Proc.new)
82
- configure('command'=>cmd)
81
+ def command(cmd=nil, &block)
82
+ configure('command'=>cmd || block)
83
83
  end
84
84
 
85
85
  def get(x=None, y=None)
@@ -6,7 +6,8 @@ require 'tk'
6
6
 
7
7
  module Tk
8
8
  module XScrollable
9
- def xscrollcommand(cmd=Proc.new)
9
+ def xscrollcommand(cmd=nil, &block)
10
+ cmd ||= block
10
11
  configure_cmd 'xscrollcommand', cmd
11
12
  # Tk.update # avoid scrollbar trouble
12
13
  self
@@ -40,7 +41,8 @@ module Tk
40
41
  end
41
42
 
42
43
  module YScrollable
43
- def yscrollcommand(cmd=Proc.new)
44
+ def yscrollcommand(cmd = (use_block = true), &block)
45
+ cmd = block if use_block
44
46
  configure_cmd 'yscrollcommand', cmd
45
47
  # Tk.update # avoid scrollbar trouble
46
48
  self
@@ -43,18 +43,19 @@ module TkSelection
43
43
  TkSelection.get_on_display(self, sel)
44
44
  end
45
45
 
46
- def self.handle(win, func=Proc.new, keys=nil, &b)
46
+ def self.handle(win, func=nil, keys=nil, &b)
47
+ func ||= b
47
48
  if func.kind_of?(Hash) && keys == nil
48
49
  keys = func
49
- func = Proc.new(&b)
50
+ func = b
50
51
  end
51
52
  args = ['selection', 'handle']
52
53
  args.concat(hash_kv(keys))
53
54
  args.concat([win, func])
54
55
  tk_call_without_enc(*args)
55
56
  end
56
- def handle(func=Proc.new, keys=nil, &b)
57
- TkSelection.handle(self, func, keys, &b)
57
+ def handle(func=nil, keys=nil, &b)
58
+ TkSelection.handle(self, func || b, keys, &b)
58
59
  end
59
60
 
60
61
  def self.get_owner(sel=nil)
@@ -641,9 +641,9 @@ class Tk::Text<TkTextWin
641
641
  }
642
642
  args << _get_eval_enc_str(idx1) << _get_eval_enc_str(idx2)
643
643
  if cnt <= 1
644
- number(tk_send_without_enc('count', *opts))
644
+ number(tk_send_without_enc('count', *args))
645
645
  else
646
- list(tk_send_without_enc('count', *opts))
646
+ list(tk_send_without_enc('count', *args))
647
647
  end
648
648
  end
649
649
 
@@ -771,31 +771,23 @@ class Tk::Text<TkTextWin
771
771
  alias deltag tag_delete
772
772
  alias delete_tag tag_delete
773
773
 
774
- #def tag_bind(tag, seq, cmd=Proc.new, *args)
775
- # _bind([@path, 'tag', 'bind', tag], seq, cmd, *args)
776
- # self
777
- #end
778
- def tag_bind(tag, seq, *args)
774
+ def tag_bind(tag, seq, *args, &block)
779
775
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
780
- if TkComm._callback_entry?(args[0]) || !block_given?
776
+ if TkComm._callback_entry?(args[0]) || !block
781
777
  cmd = args.shift
782
778
  else
783
- cmd = Proc.new
779
+ cmd = block
784
780
  end
785
781
  _bind([@path, 'tag', 'bind', tag], seq, cmd, *args)
786
782
  self
787
783
  end
788
784
 
789
- #def tag_bind_append(tag, seq, cmd=Proc.new, *args)
790
- # _bind_append([@path, 'tag', 'bind', tag], seq, cmd, *args)
791
- # self
792
- #end
793
- def tag_bind_append(tag, seq, *args)
785
+ def tag_bind_append(tag, seq, *args, &block)
794
786
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
795
- if TkComm._callback_entry?(args[0]) || !block_given?
787
+ if TkComm._callback_entry?(args[0]) || !block
796
788
  cmd = args.shift
797
789
  else
798
- cmd = Proc.new
790
+ cmd = block
799
791
  end
800
792
  _bind_append([@path, 'tag', 'bind', tag], seq, cmd, *args)
801
793
  self
@@ -10,7 +10,7 @@ class TkTextMark<TkObject
10
10
 
11
11
  TMarkID_TBL = TkCore::INTERP.create_table
12
12
 
13
- (Tk_TextMark_ID = ['mark'.freeze, TkUtil.untrust('00000')]).instance_eval{
13
+ (Tk_TextMark_ID = ['mark'.freeze, '00000']).instance_eval{
14
14
  @mutex = Mutex.new
15
15
  def mutex; @mutex; end
16
16
  freeze
@@ -12,7 +12,7 @@ class TkTextTag<TkObject
12
12
 
13
13
  TTagID_TBL = TkCore::INTERP.create_table
14
14
 
15
- (Tk_TextTag_ID = ['tag'.freeze, TkUtil.untrust('00000')]).instance_eval{
15
+ (Tk_TextTag_ID = ['tag'.freeze, '00000']).instance_eval{
16
16
  @mutex = Mutex.new
17
17
  def mutex; @mutex; end
18
18
  freeze
@@ -191,31 +191,23 @@ class TkTextTag<TkObject
191
191
  @t.current_tag_configinfo @id, key
192
192
  end
193
193
 
194
- #def bind(seq, cmd=Proc.new, *args)
195
- # _bind([@t.path, 'tag', 'bind', @id], seq, cmd, *args)
196
- # self
197
- #end
198
- def bind(seq, *args)
194
+ def bind(seq, *args, &block)
199
195
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
200
- if TkComm._callback_entry?(args[0]) || !block_given?
196
+ if TkComm._callback_entry?(args[0]) || !block
201
197
  cmd = args.shift
202
198
  else
203
- cmd = Proc.new
199
+ cmd = block
204
200
  end
205
201
  _bind([@t.path, 'tag', 'bind', @id], seq, cmd, *args)
206
202
  self
207
203
  end
208
204
 
209
- #def bind_append(seq, cmd=Proc.new, *args)
210
- # _bind_append([@t.path, 'tag', 'bind', @id], seq, cmd, *args)
211
- # self
212
- #end
213
- def bind_append(seq, *args)
205
+ def bind_append(seq, *args, &block)
214
206
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
215
- if TkComm._callback_entry?(args[0]) || !block_given?
207
+ if TkComm._callback_entry?(args[0]) || !block
216
208
  cmd = args.shift
217
209
  else
218
- cmd = Proc.new
210
+ cmd = block
219
211
  end
220
212
  _bind_append([@t.path, 'tag', 'bind', @id], seq, cmd, *args)
221
213
  self