Method: TkTextWindow#initialize

Defined in:
ext/lib/tk/textwindow.rb

#initialize(parent, index, keys = {}) ⇒ TkTextWindow

Returns a new instance of TkTextWindow.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'ext/lib/tk/textwindow.rb', line 10

def initialize(parent, index, keys = {})
  #unless parent.kind_of?(Tk::Text)
  #  fail ArgumentError, "expect Tk::Text for 1st argument"
  #end
  @t = parent
  if index == 'end' || index == :end
    @path = TkTextMark.new(@t, tk_call_without_enc(@t.path, 'index', 
                                                   'end - 1 chars'))
  elsif index.kind_of?(TkTextMark)
    if tk_call_without_enc(@t.path,'index',index.path) == tk_call_without_enc(@t.path,'index','end')
      @path = TkTextMark.new(@t, tk_call_without_enc(@t.path, 'index', 
                                                     'end - 1 chars'))
    else
      @path = TkTextMark.new(@t, tk_call_without_enc(@t.path, 'index', 
                                                     index.path))
    end
  else
    @path = TkTextMark.new(@t, tk_call_without_enc(@t.path, 'index', _get_eval_enc_str(index)))
  end
  @path.gravity = 'left'
  @index = @path.path
  keys = _symbolkey2str(keys)
  @id = keys['window']
  # keys['window'] = @id.epath if @id.kind_of?(TkWindow)
  keys['window'] = _epath(@id) if @id
  if keys['create']
    @p_create = keys['create']
    # if @p_create.kind_of?(Proc)
    if TkComm._callback_entry?(@p_create)
=begin
      keys['create'] = install_cmd(proc{
                                     @id = @p_create.call
                                     if @id.kind_of?(TkWindow)
                                       @id.epath
                                     else
                                       @id
                                     end
                                   })
=end
      keys['create'] = install_cmd(proc{@id = @p_create.call; _epath(@id)})
    end
  end
  tk_call_without_enc(@t.path, 'window', 'create', @index, 
                      *hash_kv(keys, true))
  @path.gravity = 'right'
end