tk 0.1.0 → 0.4.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 (109) 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 +53 -1
  7. data/ext/tk/extconf.rb +4 -2
  8. data/ext/tk/old-extconf.rb +0 -1
  9. data/ext/tk/tcltklib.c +47 -149
  10. data/ext/tk/tkutil/extconf.rb +0 -2
  11. data/ext/tk/tkutil/tkutil.c +6 -9
  12. data/lib/multi-tk.rb +99 -320
  13. data/lib/remote-tk.rb +8 -25
  14. data/lib/tk.rb +49 -130
  15. data/lib/tk/autoload.rb +3 -3
  16. data/lib/tk/bgerror.rb +2 -2
  17. data/lib/tk/bindtag.rb +1 -1
  18. data/lib/tk/canvas.rb +7 -15
  19. data/lib/tk/canvastag.rb +11 -19
  20. data/lib/tk/entry.rb +1 -1
  21. data/lib/tk/font.rb +1 -1
  22. data/lib/tk/fontchooser.rb +1 -1
  23. data/lib/tk/grid.rb +4 -4
  24. data/lib/tk/image.rb +1 -1
  25. data/lib/tk/itemconfig.rb +4 -4
  26. data/lib/tk/itemfont.rb +3 -3
  27. data/lib/tk/listbox.rb +1 -1
  28. data/lib/tk/menu.rb +4 -4
  29. data/lib/tk/menuspec.rb +0 -1
  30. data/lib/tk/msgcat.rb +5 -5
  31. data/lib/tk/namespace.rb +14 -34
  32. data/lib/tk/optiondb.rb +3 -74
  33. data/lib/tk/optionobj.rb +1 -1
  34. data/lib/tk/scale.rb +3 -3
  35. data/lib/tk/scrollable.rb +4 -2
  36. data/lib/tk/selection.rb +5 -4
  37. data/lib/tk/text.rb +9 -17
  38. data/lib/tk/textmark.rb +1 -1
  39. data/lib/tk/texttag.rb +7 -15
  40. data/lib/tk/timer.rb +2 -2
  41. data/lib/tk/tk_mac.rb +18 -18
  42. data/lib/tk/validation.rb +6 -37
  43. data/lib/tk/variable.rb +10 -8
  44. data/lib/tk/virtevent.rb +1 -1
  45. data/lib/tk/winfo.rb +1 -1
  46. data/lib/tkextlib/blt/barchart.rb +0 -17
  47. data/lib/tkextlib/blt/bitmap.rb +1 -1
  48. data/lib/tkextlib/blt/component.rb +40 -40
  49. data/lib/tkextlib/blt/dragdrop.rb +6 -6
  50. data/lib/tkextlib/blt/graph.rb +0 -17
  51. data/lib/tkextlib/blt/stripchart.rb +0 -17
  52. data/lib/tkextlib/blt/tabset.rb +16 -31
  53. data/lib/tkextlib/blt/tree.rb +6 -6
  54. data/lib/tkextlib/blt/treeview.rb +14 -14
  55. data/lib/tkextlib/blt/watch.rb +1 -1
  56. data/lib/tkextlib/bwidget/labelentry.rb +6 -14
  57. data/lib/tkextlib/bwidget/listbox.rb +13 -29
  58. data/lib/tkextlib/bwidget/notebook.rb +6 -14
  59. data/lib/tkextlib/bwidget/progressdlg.rb +2 -2
  60. data/lib/tkextlib/bwidget/spinbox.rb +6 -14
  61. data/lib/tkextlib/bwidget/tree.rb +19 -35
  62. data/lib/tkextlib/itcl/incr_tcl.rb +2 -2
  63. data/lib/tkextlib/itk/incr_tk.rb +7 -29
  64. data/lib/tkextlib/iwidgets/calendar.rb +0 -15
  65. data/lib/tkextlib/iwidgets/entryfield.rb +1 -22
  66. data/lib/tkextlib/iwidgets/notebook.rb +2 -2
  67. data/lib/tkextlib/iwidgets/promptdialog.rb +1 -1
  68. data/lib/tkextlib/iwidgets/scrolledcanvas.rb +6 -14
  69. data/lib/tkextlib/iwidgets/spinner.rb +1 -1
  70. data/lib/tkextlib/iwidgets/tabnotebook.rb +2 -2
  71. data/lib/tkextlib/iwidgets/tabset.rb +1 -1
  72. data/lib/tkextlib/pkg_checker.rb +1 -1
  73. data/lib/tkextlib/tcllib/crosshair.rb +2 -2
  74. data/lib/tkextlib/tcllib/ctext.rb +2 -2
  75. data/lib/tkextlib/tcllib/plotchart.rb +5 -5
  76. data/lib/tkextlib/tcllib/tablelist_core.rb +3 -3
  77. data/lib/tkextlib/tcllib/validator.rb +6 -6
  78. data/lib/tkextlib/tile.rb +1 -2
  79. data/lib/tkextlib/tile/style.rb +1 -1
  80. data/lib/tkextlib/tile/treeview.rb +15 -22
  81. data/lib/tkextlib/tkDND/tkdnd.rb +63 -24
  82. data/lib/tkextlib/tkHTML/htmlwidget.rb +1 -1
  83. data/lib/tkextlib/tktable/tktable.rb +2 -2
  84. data/lib/tkextlib/treectrl/tktreectrl.rb +13 -21
  85. data/lib/tkextlib/vu/pie.rb +1 -1
  86. data/sample/binding_sample.rb +2 -2
  87. data/sample/cmd_res_test.rb +1 -1
  88. data/sample/demos-en/widget +21 -21
  89. data/sample/demos-jp/widget +4 -4
  90. data/sample/multi-ip_sample.rb +0 -3
  91. data/sample/multi-ip_sample2.rb +1 -1
  92. data/sample/resource.en +3 -3
  93. data/sample/resource.ja +3 -3
  94. data/sample/tcltklib/sample1.rb +2 -2
  95. data/sample/tkballoonhelp.rb +2 -2
  96. data/sample/tkextlib/tkHTML/ss.rb +0 -6
  97. data/sample/tkmulticolumnlist.rb +2 -2
  98. data/sample/tkmultilistframe.rb +2 -2
  99. data/sample/tkoptdb.rb +14 -16
  100. data/tk.gemspec +7 -8
  101. metadata +13 -15
  102. data/ChangeLog.tkextlib +0 -949
  103. data/old-README.tcltklib.ja +0 -159
  104. data/sample/binstr_usage.rb +0 -46
  105. data/sample/remote-ip_sample2.rb +0 -57
  106. data/sample/safe-tk.rb +0 -132
  107. data/sample/tkoptdb-safeTk.rb +0 -74
  108. data/sample/tktree.rb +0 -104
  109. data/sample/tktree.tcl +0 -305
data/lib/tk/optiondb.rb CHANGED
@@ -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
@@ -274,7 +210,6 @@ module TkOptionDB
274
210
  unless func.kind_of?(Array)
275
211
  fail ArgumentError, "method-list must be Array"
276
212
  end
277
- func_str = func.join(' ')
278
213
 
279
214
  if parent.kind_of?(Class) && parent <= @@resource_proc_class
280
215
  cmd_klass = Class.new(parent)
@@ -289,12 +224,6 @@ module TkOptionDB
289
224
  func.each{|f|
290
225
  cmd_klass.instance_variable_get('@method_tbl')[f.to_s.intern] = nil
291
226
  }
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
227
 
299
228
  cmd_klass
300
229
  end
data/lib/tk/optionobj.rb CHANGED
@@ -36,7 +36,7 @@ module Tk
36
36
 
37
37
  def _remove_win(win)
38
38
  if win.kind_of?(Array)
39
- widget, method = win
39
+ widget, _ = win
40
40
  @observ.delete_if{|x|
41
41
  if x.kind_of?(Array)
42
42
  x[0] == widget
data/lib/tk/scale.rb CHANGED
@@ -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)
@@ -102,7 +102,7 @@ class Tk::Scale<TkWindow
102
102
  get
103
103
  end
104
104
 
105
- def value= (val)
105
+ def value=(val)
106
106
  set(val)
107
107
  val
108
108
  end
data/lib/tk/scrollable.rb CHANGED
@@ -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
data/lib/tk/selection.rb CHANGED
@@ -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)
data/lib/tk/text.rb CHANGED
@@ -326,7 +326,7 @@ class Tk::Text<TkTextWin
326
326
  _fromUTF8(tk_send_without_enc('get', "1.0", "end - 1 char"))
327
327
  end
328
328
 
329
- def value= (val)
329
+ def value=(val)
330
330
  tk_send_without_enc('delete', "1.0", 'end')
331
331
  tk_send_without_enc('insert', "1.0", _get_eval_enc_str(val))
332
332
  val
@@ -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
data/lib/tk/textmark.rb CHANGED
@@ -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
data/lib/tk/texttag.rb CHANGED
@@ -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
data/lib/tk/timer.rb CHANGED
@@ -12,13 +12,13 @@ class TkTimer
12
12
 
13
13
  TkCommandNames = ['after'.freeze].freeze
14
14
 
15
- (Tk_CBID = ['a'.freeze, TkUtil.untrust('00000')]).instance_eval{
15
+ (Tk_CBID = ['a'.freeze, '00000']).instance_eval{
16
16
  @mutex = Mutex.new
17
17
  def mutex; @mutex; end
18
18
  freeze
19
19
  }
20
20
 
21
- Tk_CBTBL = TkUtil.untrust({})
21
+ Tk_CBTBL = {}
22
22
 
23
23
  TkCore::INTERP.add_tk_procs('rb_after', 'id', <<-'EOL')
24
24
  if {[set st [catch {eval {ruby_cmd TkTimer callback} $id} ret]] != 0} {
data/lib/tk/tk_mac.rb CHANGED
@@ -17,48 +17,48 @@ module Tk::Mac
17
17
  extend TkCore
18
18
 
19
19
  # event handler callbacks
20
- def self.def_ShowPreferences(cmd=Proc.new)
21
- ip_eval("proc ::tk::mac::ShowPreferences {} { #{install_cmd(cmd)} }")
20
+ def self.def_ShowPreferences(cmd=nil, &block)
21
+ ip_eval("proc ::tk::mac::ShowPreferences {} { #{install_cmd(cmd || block)} }")
22
22
  nil
23
23
  end
24
24
 
25
- def self.def_OpenApplication(cmd=Proc.new)
26
- ip_eval("proc ::tk::mac::OpenApplication {} { #{install_cmd(cmd)} }")
25
+ def self.def_OpenApplication(cmd=nil, &block)
26
+ ip_eval("proc ::tk::mac::OpenApplication {} { #{install_cmd(cmd || block)} }")
27
27
  nil
28
28
  end
29
29
 
30
- def self.def_ReopenApplication(cmd=Proc.new)
31
- ip_eval("proc ::tk::mac::ReopenApplication {} { #{install_cmd(cmd)} }")
30
+ def self.def_ReopenApplication(cmd=nil, &block)
31
+ ip_eval("proc ::tk::mac::ReopenApplication {} { #{install_cmd(cmd || block)} }")
32
32
  nil
33
33
  end
34
34
 
35
- def self.def_OpenDocument(cmd=Proc.new)
36
- ip_eval("proc ::tk::mac::OpenDocument {args} { eval #{install_cmd(cmd)} $args }")
35
+ def self.def_OpenDocument(cmd=nil, &block)
36
+ ip_eval("proc ::tk::mac::OpenDocument {args} { eval #{install_cmd(cmd || block)} $args }")
37
37
  nil
38
38
  end
39
39
 
40
- def self.def_PrintDocument(cmd=Proc.new)
41
- ip_eval("proc ::tk::mac::PrintDocument {args} { eval #{install_cmd(cmd)} $args }")
40
+ def self.def_PrintDocument(cmd=nil, &block)
41
+ ip_eval("proc ::tk::mac::PrintDocument {args} { eval #{install_cmd(cmd || block)} $args }")
42
42
  nil
43
43
  end
44
44
 
45
- def self.def_Quit(cmd=Proc.new)
46
- ip_eval("proc ::tk::mac::Quit {} { #{install_cmd(cmd)} }")
45
+ def self.def_Quit(cmd=nil, &block)
46
+ ip_eval("proc ::tk::mac::Quit {} { #{install_cmd(cmd || block)} }")
47
47
  nil
48
48
  end
49
49
 
50
- def self.def_OnHide(cmd=Proc.new)
51
- ip_eval("proc ::tk::mac::OnHide {} { #{install_cmd(cmd)} }")
50
+ def self.def_OnHide(cmd=nil, &block)
51
+ ip_eval("proc ::tk::mac::OnHide {} { #{install_cmd(cmd || block)} }")
52
52
  nil
53
53
  end
54
54
 
55
- def self.def_OnShow(cmd=Proc.new)
56
- ip_eval("proc ::tk::mac::OnShow {} { #{install_cmd(cmd)} }")
55
+ def self.def_OnShow(cmd=nil, &block)
56
+ ip_eval("proc ::tk::mac::OnShow {} { #{install_cmd(cmd || block)} }")
57
57
  nil
58
58
  end
59
59
 
60
- def self.def_ShowHelp(cmd=Proc.new)
61
- ip_eval("proc ::tk::mac::ShowHelp {} { #{install_cmd(cmd)} }")
60
+ def self.def_ShowHelp(cmd=nil, &block)
61
+ ip_eval("proc ::tk::mac::ShowHelp {} { #{install_cmd(cmd || block)} }")
62
62
  nil
63
63
  end
64
64
 
data/lib/tk/validation.rb CHANGED
@@ -294,7 +294,8 @@ class TkValidateCommand
294
294
  ['vcmd', 'validatecommand', 'invcmd', 'invalidcommand']
295
295
  end
296
296
 
297
- def _initialize_for_cb_class(klass, cmd = Proc.new, *args)
297
+ def _initialize_for_cb_class(klass, cmd = nil, *args, &block)
298
+ cmd ||= block
298
299
  extra_args_tbl = klass._get_extra_args_tbl
299
300
 
300
301
  if args.compact.size > 0
@@ -302,7 +303,7 @@ class TkValidateCommand
302
303
  args = args.join(' ')
303
304
  keys = klass._get_subst_key(args)
304
305
  if cmd.kind_of?(String)
305
- id = cmd
306
+ @id = cmd
306
307
  elsif cmd.kind_of?(TkCallbackEntry)
307
308
  @id = install_cmd(cmd)
308
309
  else
@@ -317,7 +318,7 @@ class TkValidateCommand
317
318
  else
318
319
  keys, args = klass._get_all_subst_keys
319
320
  if cmd.kind_of?(String)
320
- id = cmd
321
+ @id = cmd
321
322
  elsif cmd.kind_of?(TkCallbackEntry)
322
323
  @id = install_cmd(cmd)
323
324
  else
@@ -332,8 +333,8 @@ class TkValidateCommand
332
333
  end
333
334
  end
334
335
 
335
- def initialize(cmd = Proc.new, *args)
336
- _initialize_for_cb_class(self.class::ValidateArgs, cmd, *args)
336
+ def initialize(cmd = nil, *args, &block)
337
+ _initialize_for_cb_class(self.class::ValidateArgs, cmd || block, *args)
337
338
  end
338
339
 
339
340
  def to_eval
@@ -363,36 +364,4 @@ module TkValidation
363
364
  end
364
365
 
365
366
  Tk::ValidateConfigure.__def_validcmd(binding, ValidateCmd)
366
-
367
- =begin
368
- def validatecommand(cmd = Proc.new, args = nil)
369
- if cmd.kind_of?(ValidateCmd)
370
- configure('validatecommand', cmd)
371
- elsif args
372
- configure('validatecommand', [cmd, args])
373
- else
374
- configure('validatecommand', cmd)
375
- end
376
- end
377
- =end
378
- # def validatecommand(*args, &b)
379
- # __validcmd_call(ValidateCmd, 'validatecommand', *args, &b)
380
- # end
381
- # alias vcmd validatecommand
382
-
383
- =begin
384
- def invalidcommand(cmd = Proc.new, args = nil)
385
- if cmd.kind_of?(ValidateCmd)
386
- configure('invalidcommand', cmd)
387
- elsif args
388
- configure('invalidcommand', [cmd, args])
389
- else
390
- configure('invalidcommand', cmd)
391
- end
392
- end
393
- =end
394
- # def invalidcommand(*args, &b)
395
- # __validcmd_call(ValidateCmd, 'invalidcommand', *args, &b)
396
- # end
397
- # alias invcmd invalidcommand
398
367
  end