Class: Tk::Text (Ruby 2.3.4)

In Files

  • tk/lib/tk/text.rb
  • tk/lib/tk/textimage.rb
  • tk/lib/tk/textmark.rb
  • tk/lib/tk/texttag.rb
  • tk/lib/tk/textwindow.rb

Class/Module Index [+]

Quicksearch

Tk::Text

Public Class Methods

at(x, y)
 
               # File tk/lib/tk/text.rb, line 307
def self.at(x, y)
  Tk::Text::IndexString.at(x, y)
end
            
new(*args, &block)
 
               # File tk/lib/tk/text.rb, line 263
def self.new(*args, &block)
  obj = super(*args){}
  obj.init_instance_variable
  if TkCore::WITH_RUBY_VM  ### Ruby 1.9 !!!!
    obj.instance_exec(obj, &block) if defined? yield
  else
    obj.instance_eval(&block) if defined? yield
  end
  obj
end
            

Public Instance Methods

__destroy_hook__()
 
               # File tk/lib/tk/text.rb, line 279
def __destroy_hook__
  TkTextTag::TTagID_TBL.mutex.synchronize{
    TkTextTag::TTagID_TBL.delete(@path)
  }
  TkTextTag::TMarkID_TBL.mutex.synchronize{
    TkTextMark::TMarkID_TBL.delete(@path)
  }
end
            
_addcmd(cmd)
 
               # File tk/lib/tk/text.rb, line 341
def _addcmd(cmd)
  @cmdtbl.push cmd
end
            
_addtag(name, obj)
 
               # File tk/lib/tk/text.rb, line 345
def _addtag(name, obj)
  @tags[name] = obj
end
            
add_tag(tag, index1, index2=None)
Alias for: tag_add
addtag(tag, index1, index2=None)
Alias for: tag_add
at(x, y)
 
               # File tk/lib/tk/text.rb, line 311
def at(x, y)
  Tk::Text::IndexString.at(x, y)
end
            
backspace()
 
               # File tk/lib/tk/text.rb, line 621
def backspace
  self.delete 'insert'
end
            
bbox(index)
 
               # File tk/lib/tk/text.rb, line 625
def bbox(index)
  list(tk_send_without_enc('bbox', _get_eval_enc_str(index)))
end
            
clear()
 
               # File tk/lib/tk/text.rb, line 335
def clear
  tk_send_without_enc('delete', "1.0", 'end')
  self
end
            
Also aliased as: erase
compare(idx1, op, idx2)
 
               # File tk/lib/tk/text.rb, line 629
def compare(idx1, op, idx2)
  bool(tk_send_without_enc('compare', _get_eval_enc_str(idx1),
                           op, _get_eval_enc_str(idx2)))
end
            
count(idx1, idx2, *opts)
 
               # File tk/lib/tk/text.rb, line 634
def count(idx1, idx2, *opts)
  # opts are Tk8.5 feature
  cnt = 0
  args = opts.collect{|opt|
    str = opt.to_s
    cnt += 1 if str != 'update'
    '-' + str
  }
  args << _get_eval_enc_str(idx1) << _get_eval_enc_str(idx2)
  if cnt <= 1
    number(tk_send_without_enc('count', *opts))
  else
    list(tk_send_without_enc('count', *opts))
  end
end
            
count_info(idx1, idx2, update=true)
 
               # File tk/lib/tk/text.rb, line 650
def count_info(idx1, idx2, update=true)
  # Tk8.5 feature
  opts = [
    :chars, :displaychars, :displayindices, :displaylines,
    :indices, :lines, :xpixels, :ypixels
  ]
  if update
    lst = count(idx1, idx2, :update, *opts)
  else
    lst = count(idx1, idx2, *opts)
  end
  info = {}
  opts.each_with_index{|key, idx| info[key] = lst[idx]}
  info
end
            
current_image_configinfo(index, slot = nil)
 
               # File tk/lib/tk/text.rb, line 556
def current_image_configinfo(index, slot = nil)
  if TkComm::GET_CONFIGINFO_AS_ARRAY
    if slot
      conf = image_configinfo(index, slot)
      {conf[0] => conf[4]}
    else
      ret = {}
      image_configinfo(index).each{|conf|
        ret[conf[0]] = conf[4] if conf.size > 2
      }
      ret
    end
  else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
    ret = {}
    image_configinfo(index, slot).each{|k, conf|
      ret[k] = conf[-1] if conf.kind_of?(Array)
    }
    ret
  end
end
            
debug()
 
               # File tk/lib/tk/text.rb, line 676
def debug
  bool(tk_send_without_enc('debug'))
end
            
debug=(boolean)
 
               # File tk/lib/tk/text.rb, line 679
def debug=(boolean)
  tk_send_without_enc('debug', boolean)
  #self
  boolean
end
            
delete_tag(*tags)
Alias for: tag_delete
deltag(*tags)
Alias for: tag_delete
destroy()
 
               # File tk/lib/tk/text.rb, line 613
def destroy
  @tags = {} unless @tags
  @tags.each_value do |t|
    t.destroy
  end
  super()
end
            
dlineinfo(index)
 
               # File tk/lib/tk/text.rb, line 685
def dlineinfo(index)
  list(tk_send_without_enc('dlineinfo', _get_eval_enc_str(index)))
end
            
edit_redo()
 
               # File tk/lib/tk/text.rb, line 701
def edit_redo
  tk_send_without_enc('edit', 'redo')
  self
end
            
edit_reset()
 
               # File tk/lib/tk/text.rb, line 705
def edit_reset
  tk_send_without_enc('edit', 'reset')
  self
end
            
edit_separator()
 
               # File tk/lib/tk/text.rb, line 709
def edit_separator
  tk_send_without_enc('edit', 'separator')
  self
end
            
edit_undo()
 
               # File tk/lib/tk/text.rb, line 713
def edit_undo
  tk_send_without_enc('edit', 'undo')
  self
end
            
erase()
Alias for: clear
get_displaychars(*index)
 
               # File tk/lib/tk/text.rb, line 320
def get_displaychars(*index)
  # Tk8.5 feature
  get('-displaychars', *index)
end
            
image_cget(index, slot)
 
               # File tk/lib/tk/text.rb, line 431
def image_cget(index, slot)
  unless TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
    image_cget_strict(index, slot)
  else
    begin
      image_cget_strict(index, slot)
    rescue => e
      begin
        if current_image_configinfo(index).has_key?(slot.to_s)
          # not tag error & option is known -> error on known option
          fail e
        else
          # not tag error & option is unknown
          nil
        end
      rescue
        fail e  # tag error
      end
    end
  end
end
            
image_cget_strict(index, slot)
 
               # File tk/lib/tk/text.rb, line 419
def image_cget_strict(index, slot)
  case slot.to_s
  when 'text', 'label', 'show', 'data', 'file'
    _fromUTF8(tk_send_without_enc('image', 'cget',
                                  _get_eval_enc_str(index), "-#{slot}"))
  else
    tk_tcl2ruby(_fromUTF8(tk_send_without_enc('image', 'cget',
                                              _get_eval_enc_str(index),
                                              "-#{slot}")))
  end
end
            
image_configinfo(index, slot = nil)
 
               # File tk/lib/tk/text.rb, line 467
def image_configinfo(index, slot = nil)
  if TkComm::GET_CONFIGINFO_AS_ARRAY
    if slot
      case slot.to_s
      when 'text', 'label', 'show', 'data', 'file'
        #conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index), "-#{slot}")))
        conf = tk_split_simplelist(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index), "-#{slot}"), false, true)
      else
        #conf = tk_split_list(_fromUTF8(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index), "-#{slot}")))
        conf = tk_split_list(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index), "-#{slot}"), 0, false, true)
      end
      conf[0] = conf[0][1..-1]
      conf
    else
      # tk_split_simplelist(_fromUTF8(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index)))).collect{|conflist|
      #  conf = tk_split_simplelist(conflist)
      tk_split_simplelist(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index)), false, false).collect{|conflist|
        conf = tk_split_simplelist(conflist, false, true)
        conf[0] = conf[0][1..-1]
        case conf[0]
        when 'text', 'label', 'show', 'data', 'file'
        else
          if conf[3]
            if conf[3].index('{')
              conf[3] = tk_split_list(conf[3])
            else
              conf[3] = tk_tcl2ruby(conf[3])
            end
          end
          if conf[4]
            if conf[4].index('{')
              conf[4] = tk_split_list(conf[4])
            else
              conf[4] = tk_tcl2ruby(conf[4])
            end
          end
        end
        conf[1] = conf[1][1..-1] if conf.size == 2 # alias info
        conf
      }
    end
  else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
    if slot
      case slot.to_s
      when 'text', 'label', 'show', 'data', 'file'
        #conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index), "-#{slot}")))
        conf = tk_split_simplelist(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index), "-#{slot}"), false, true)
      else
        #conf = tk_split_list(_fromUTF8(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index), "-#{slot}")))
        conf = tk_split_list(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index), "-#{slot}"), 0, false, true)
      end
      key = conf.shift[1..-1]
      { key => conf }
    else
      ret = {}
      #tk_split_simplelist(_fromUTF8(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index)))).each{|conflist|
      #  conf = tk_split_simplelist(conflist)
      tk_split_simplelist(tk_send_without_enc('image', 'configure', _get_eval_enc_str(index)), false, false).each{|conflist|
        conf = tk_split_simplelist(conflist, false, true)
        key = conf.shift[1..-1]
        case key
        when 'text', 'label', 'show', 'data', 'file'
        else
          if conf[2]
            if conf[2].index('{')
              conf[2] = tk_split_list(conf[2])
            else
              conf[2] = tk_tcl2ruby(conf[2])
            end
          end
          if conf[3]
            if conf[3].index('{')
              conf[3] = tk_split_list(conf[3])
            else
              conf[3] = tk_tcl2ruby(conf[3])
            end
          end
        end
        if conf.size == 1
          ret[key] = conf[0][1..-1]  # alias info
        else
          ret[key] = conf
        end
      }
      ret
    end
  end
end
            
image_configure(index, slot, value=None)
 
               # File tk/lib/tk/text.rb, line 453
def image_configure(index, slot, value=None)
  if slot.kind_of?(Hash)
    _fromUTF8(tk_send_without_enc('image', 'configure',
                                  _get_eval_enc_str(index),
                                  *hash_kv(slot, true)))
  else
    _fromUTF8(tk_send_without_enc('image', 'configure',
                                  _get_eval_enc_str(index),
                                  "-#{slot}",
                                  _get_eval_enc_str(value)))
  end
  self
end
            
image_names()
 
               # File tk/lib/tk/text.rb, line 577
def image_names
  #tk_split_simplelist(_fromUTF8(tk_send_without_enc('image', 'names'))).collect{|elt|
  tk_split_simplelist(tk_send_without_enc('image', 'names'), false, true).collect{|elt|
    tagid2obj(elt)
  }
end
            
index(idx)
 
               # File tk/lib/tk/text.rb, line 315
def index(idx)
  Tk::Text::IndexString.new(tk_send_without_enc('index',
                                                _get_eval_enc_str(idx)))
end
            
init_instance_variable()
 
               # File tk/lib/tk/text.rb, line 274
def init_instance_variable
  @cmdtbl = []
  @tags = {}
end
            
insert(index, chars, *tags)
 
               # File tk/lib/tk/text.rb, line 594
def insert(index, chars, *tags)
  if tags[0].kind_of?(Array)
    # multiple chars-taglist argument :: str, [tag,...], str, [tag,...], ...
    args = [chars]
    while tags.size > 0
      args << tags.shift.collect{|x|_get_eval_string(x)}.join(' ')  # taglist
      args << tags.shift if tags.size > 0                           # chars
    end
    super(index, *args)
  else
    # single chars-taglist argument :: str, tag, tag, ...
    if tags.size == 0
      super(index, chars)
    else
      super(index, chars, tags.collect{|x|_get_eval_string(x)}.join(' '))
    end
  end
end
            
mark_gravity(mark, direction=nil)
 
               # File tk/lib/tk/text.rb, line 383
def mark_gravity(mark, direction=nil)
  if direction
    tk_send_without_enc('mark', 'gravity',
                        _get_eval_enc_str(mark), direction)
    self
  else
    tk_send_without_enc('mark', 'gravity', _get_eval_enc_str(mark))
  end
end
            
mark_names()
 
               # File tk/lib/tk/text.rb, line 376
def mark_names
  #tk_split_simplelist(_fromUTF8(tk_send_without_enc('mark', 'names'))).collect{|elt|
  tk_split_simplelist(tk_send_without_enc('mark', 'names'), false, true).collect{|elt|
    tagid2obj(elt)
  }
end
            
mark_next(index)
 
               # File tk/lib/tk/text.rb, line 407
def mark_next(index)
  tagid2obj(_fromUTF8(tk_send_without_enc('mark', 'next',
                                          _get_eval_enc_str(index))))
end
            
Also aliased as: next_mark
mark_previous(index)
 
               # File tk/lib/tk/text.rb, line 413
def mark_previous(index)
  tagid2obj(_fromUTF8(tk_send_without_enc('mark', 'previous',
                                          _get_eval_enc_str(index))))
end
            
Also aliased as: previous_mark
mark_set(mark, index)
 
               # File tk/lib/tk/text.rb, line 393
def mark_set(mark, index)
  tk_send_without_enc('mark', 'set', _get_eval_enc_str(mark),
                      _get_eval_enc_str(index))
  self
end
            
Also aliased as: set_mark
mark_unset(*marks)
 
               # File tk/lib/tk/text.rb, line 400
def mark_unset(*marks)
  tk_send_without_enc('mark', 'unset',
                      *(marks.collect{|mark| _get_eval_enc_str(mark)}))
  self
end
            
Also aliased as: unset_mark
modified(mode)
 
               # File tk/lib/tk/text.rb, line 692
def modified(mode)
  tk_send_without_enc('edit', 'modified', mode)
  self
end
            
modified=(mode)
 
               # File tk/lib/tk/text.rb, line 696
def modified=(mode)
  modified(mode)
  mode
end
            
modified?()
 
               # File tk/lib/tk/text.rb, line 689
def modified?
  bool(tk_send_without_enc('edit', 'modified'))
end
            
next_mark(index)
Alias for: mark_next
peer_names()
 
               # File tk/lib/tk/text.rb, line 666
def peer_names()
  # Tk8.5 feature
  list(tk_send_without_enc('peer', 'names'))
end
            
previous_mark(index)
Alias for: mark_previous
replace(idx1, idx2, *opts)
 
               # File tk/lib/tk/text.rb, line 671
def replace(idx1, idx2, *opts)
  tk_send('replace', idx1, idx2, *opts)
  self
end
            
set_current(index)
 
               # File tk/lib/tk/text.rb, line 589
def set_current(index)
  tk_send_without_enc('mark','set','current', _get_eval_enc_str(index))
  self
end
            
set_insert(index)
 
               # File tk/lib/tk/text.rb, line 584
def set_insert(index)
  tk_send_without_enc('mark','set','insert', _get_eval_enc_str(index))
  self
end
            
set_mark(mark, index)
Alias for: mark_set
tag_add(tag, index1, index2=None)
 
               # File tk/lib/tk/text.rb, line 746
def tag_add(tag, index1, index2=None)
  tk_send_without_enc('tag', 'add', _get_eval_enc_str(tag),
                      _get_eval_enc_str(index1),
                      _get_eval_enc_str(index2))
  self
end
            
Also aliased as: addtag, add_tag
tag_bind(tag, seq, *args)

def #tag_bind(tag, seq, cmd=Proc.new, *args)

_bind([@path, 'tag', 'bind', tag], seq, cmd, *args)
self

end

 
               # File tk/lib/tk/text.rb, line 778
def tag_bind(tag, seq, *args)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  if TkComm._callback_entry?(args[0]) || !block_given?
    cmd = args.shift
  else
    cmd = Proc.new
  end
  _bind([@path, 'tag', 'bind', tag], seq, cmd, *args)
  self
end
            
tag_bind_append(tag, seq, *args)

def #tag_bind_append(tag, seq, cmd=Proc.new, *args)

_bind_append([@path, 'tag', 'bind', tag], seq, cmd, *args)
self

end

 
               # File tk/lib/tk/text.rb, line 793
def tag_bind_append(tag, seq, *args)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  if TkComm._callback_entry?(args[0]) || !block_given?
    cmd = args.shift
  else
    cmd = Proc.new
  end
  _bind_append([@path, 'tag', 'bind', tag], seq, cmd, *args)
  self
end
            
tag_bind_remove(tag, seq)
 
               # File tk/lib/tk/text.rb, line 804
def tag_bind_remove(tag, seq)
  _bind_remove([@path, 'tag', 'bind', tag], seq)
  self
end
            
tag_bindinfo(tag, context=nil)
 
               # File tk/lib/tk/text.rb, line 809
def tag_bindinfo(tag, context=nil)
  _bindinfo([@path, 'tag', 'bind', tag], context)
end
            
tag_delete(*tags)
 
               # File tk/lib/tk/text.rb, line 755
def tag_delete(*tags)
  tk_send_without_enc('tag', 'delete',
                      *(tags.collect{|tag| _get_eval_enc_str(tag)}))
  TkTextTag::TTagID_TBL.mutex.synchronize{
    if TkTextTag::TTagID_TBL[@path]
      tags.each{|tag|
        if tag.kind_of?(TkTextTag)
          TkTextTag::TTagID_TBL[@path].delete(tag.id)
        else
          TkTextTag::TTagID_TBL[@path].delete(tag)
        end
      }
    end
  }
  self
end
            
Also aliased as: deltag, delete_tag
tag_lower(tag, below=None)
 
               # File tk/lib/tk/text.rb, line 995
def tag_lower(tag, below=None)
  tk_send_without_enc('tag', 'lower', _get_eval_enc_str(tag),
                      _get_eval_enc_str(below))
  self
end
            
tag_names(index=None)
 
               # File tk/lib/tk/text.rb, line 369
def tag_names(index=None)
  #tk_split_simplelist(_fromUTF8(tk_send_without_enc('tag', 'names', _get_eval_enc_str(index)))).collect{|elt|
  tk_split_simplelist(tk_send_without_enc('tag', 'names', _get_eval_enc_str(index)), false, true).collect{|elt|
    tagid2obj(elt)
  }
end
            
tag_nextrange(tag, first, last=None)
 
               # File tk/lib/tk/text.rb, line 1020
def tag_nextrange(tag, first, last=None)
  simplelist(tk_send_without_enc('tag', 'nextrange',
                                 _get_eval_enc_str(tag),
                                 _get_eval_enc_str(first),
                                 _get_eval_enc_str(last))).collect{|idx|
    Tk::Text::IndexString.new(idx)
  }
end
            
tag_prevrange(tag, first, last=None)
 
               # File tk/lib/tk/text.rb, line 1029
def tag_prevrange(tag, first, last=None)
  simplelist(tk_send_without_enc('tag', 'prevrange',
                                 _get_eval_enc_str(tag),
                                 _get_eval_enc_str(first),
                                 _get_eval_enc_str(last))).collect{|idx|
    Tk::Text::IndexString.new(idx)
  }
end
            
tag_raise(tag, above=None)

def tag_cget(tag, key)

case key.to_s
when 'text', 'label', 'show', 'data', 'file'
  tk_call_without_enc(@path, 'tag', 'cget',
                      _get_eval_enc_str(tag), "-#{key}")
when 'font', 'kanjifont'
  #fnt = tk_tcl2ruby(tk_send('tag', 'cget', tag, "-#{key}"))
  fnt = tk_tcl2ruby(_fromUTF8(tk_send_without_enc('tag','cget',_get_eval_enc_str(tag),'-font')))
  unless fnt.kind_of?(TkFont)
    fnt = tagfontobj(tag, fnt)
  end
  if key.to_s == 'kanjifont' && JAPANIZED_TK && TK_VERSION =~ /^4\.*/
    # obsolete; just for compatibility
    fnt.kanji_font
  else
    fnt
  end
else
  tk_tcl2ruby(_fromUTF8(tk_call_without_enc(@path,'tag','cget',_get_eval_enc_str(tag),"-#{key}")))
end

end

def tag_configure(tag, key, val=None)

if key.kind_of?(Hash)
  key = _symbolkey2str(key)
  if ( key['font'] || key['kanjifont']        || key['latinfont'] || key['asciifont'] )
    tagfont_configure(tag, key)
  else
    tk_send_without_enc('tag', 'configure', _get_eval_enc_str(tag),
                        *hash_kv(key, true))
  end

else
  if  key == 'font' || key == :font ||
      key == 'kanjifont' || key == :kanjifont ||
      key == 'latinfont' || key == :latinfont ||
      key == 'asciifont' || key == :asciifont
    if val == None
      tagfontobj(tag)
    else
      tagfont_configure(tag, {key=>val})
    end
  else
    tk_send_without_enc('tag', 'configure', _get_eval_enc_str(tag),
                        "-#{key}", _get_eval_enc_str(val))
  end
end
self

end

def tag_configinfo(tag, key=nil)

if TkComm::GET_CONFIGINFO_AS_ARRAY
  if key
    case key.to_s
    when 'text', 'label', 'show', 'data', 'file'
      conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('tag','configure',_get_eval_enc_str(tag),"-#{key}")))
    when 'font', 'kanjifont'
      conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('tag','configure',_get_eval_enc_str(tag),"-#{key}")))
      conf[4] = tagfont_configinfo(tag, conf[4])
    else
      conf = tk_split_list(_fromUTF8(tk_send_without_enc('tag','configure',_get_eval_enc_str(tag),"-#{key}")))
    end
    conf[0] = conf[0][1..-1]
    conf
  else
    ret = tk_split_simplelist(_fromUTF8(tk_send('tag','configure',_get_eval_enc_str(tag)))).collect{|conflist|
      conf = tk_split_simplelist(conflist)
      conf[0] = conf[0][1..-1]
      case conf[0]
      when 'text', 'label', 'show', 'data', 'file'
      else
        if conf[3]
          if conf[3].index('{')
            conf[3] = tk_split_list(conf[3])
          else
            conf[3] = tk_tcl2ruby(conf[3])
          end
        end
        if conf[4]
          if conf[4].index('{')
            conf[4] = tk_split_list(conf[4])
          else
            conf[4] = tk_tcl2ruby(conf[4])
          end
        end
      end
      conf[1] = conf[1][1..-1] if conf.size == 2 # alias info
      conf
    }
    fontconf = ret.assoc('font')
    if fontconf
      ret.delete_if{|item| item[0] == 'font' || item[0] == 'kanjifont'}
      fontconf[4] = tagfont_configinfo(tag, fontconf[4])
      ret.push(fontconf)
    else
      ret
    end
  end
else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
  if key
    case key.to_s
    when 'text', 'label', 'show', 'data', 'file'
      conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('tag','configure',_get_eval_enc_str(tag),"-#{key}")))
    when 'font', 'kanjifont'
      conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('tag','configure',_get_eval_enc_str(tag),"-#{key}")))
      conf[4] = tagfont_configinfo(tag, conf[4])
    else
      conf = tk_split_list(_fromUTF8(tk_send_without_enc('tag','configure',_get_eval_enc_str(tag),"-#{key}")))
    end
    key = conf.shift[1..-1]
    { key => conf }
  else
    ret = {}
    tk_split_simplelist(_fromUTF8(tk_send('tag','configure',_get_eval_enc_str(tag)))).each{|conflist|
      conf = tk_split_simplelist(conflist)
      key = conf.shift[1..-1]
      case key
      when 'text', 'label', 'show', 'data', 'file'
      else
        if conf[2]
          if conf[2].index('{')
            conf[2] = tk_split_list(conf[2])
          else
            conf[2] = tk_tcl2ruby(conf[2])
          end
        end
        if conf[3]
          if conf[3].index('{')
            conf[3] = tk_split_list(conf[3])
          else
            conf[3] = tk_tcl2ruby(conf[3])
          end
        end
      end
      if conf.size == 1
        ret[key] = conf[0][1..-1]  # alias info
      else
        ret[key] = conf
      end
    }
    fontconf = ret['font']
    if fontconf
      ret.delete('font')
      ret.delete('kanjifont')
      fontconf[3] = tagfont_configinfo(tag, fontconf[3])
      ret['font'] = fontconf
    end
    ret
  end
end

end

def current_tag_configinfo(tag, key=nil)

if TkComm::GET_CONFIGINFO_AS_ARRAY
  if key
    conf = tag_configinfo(tag, key)
    {conf[0] => conf[4]}
  else
    ret = {}
    tag_configinfo(tag).each{|conf|
      ret[conf[0]] = conf[4] if conf.size > 2
    }
    ret
  end
else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
  ret = {}
  tag_configinfo(tag, key).each{|k, conf|
    ret[k] = conf[-1] if conf.kind_of?(Array)
  }
  ret
end

end

 
               # File tk/lib/tk/text.rb, line 989
def tag_raise(tag, above=None)
  tk_send_without_enc('tag', 'raise', _get_eval_enc_str(tag),
                      _get_eval_enc_str(above))
  self
end
            
tag_ranges(tag)
 
               # File tk/lib/tk/text.rb, line 1007
def tag_ranges(tag)
  #l = tk_split_simplelist(tk_send_without_enc('tag', 'ranges',
  #                                            _get_eval_enc_str(tag)))
  l = tk_split_simplelist(tk_send_without_enc('tag', 'ranges',
                                              _get_eval_enc_str(tag)),
                          false, true)
  r = []
  while key=l.shift
    r.push [Tk::Text::IndexString.new(key), Tk::Text::IndexString.new(l.shift)]
  end
  r
end
            
tag_remove(tag, *indices)
 
               # File tk/lib/tk/text.rb, line 1001
def tag_remove(tag, *indices)
  tk_send_without_enc('tag', 'remove', _get_eval_enc_str(tag),
                      *(indices.collect{|idx| _get_eval_enc_str(idx)}))
  self
end
            
tagid2obj(tagid)
 
               # File tk/lib/tk/text.rb, line 361
def tagid2obj(tagid)
  if @tags[tagid]
    @tags[tagid]
  else
    tagid
  end
end
            
text_copy()
 
               # File tk/lib/tk/text.rb, line 728
def text_copy
  # Tk8.4 feature
  tk_call_without_enc('tk_textCopy', @path)
  self
end
            
text_cut()
 
               # File tk/lib/tk/text.rb, line 734
def text_cut
  # Tk8.4 feature
  tk_call_without_enc('tk_textCut', @path)
  self
end
            
text_paste()
 
               # File tk/lib/tk/text.rb, line 740
def text_paste
  # Tk8.4 feature
  tk_call_without_enc('tk_textPaste', @path)
  self
end
            
unset_mark(*marks)
Alias for: mark_unset
value()
 
               # File tk/lib/tk/text.rb, line 325
def value
  _fromUTF8(tk_send_without_enc('get', "1.0", "end - 1 char"))
end
            
value=(val)
 
               # File tk/lib/tk/text.rb, line 329
def value= (val)
  tk_send_without_enc('delete', "1.0", 'end')
  tk_send_without_enc('insert', "1.0", _get_eval_enc_str(val))
  val
end
            
xview_pickplace(index)
 
               # File tk/lib/tk/text.rb, line 718
def xview_pickplace(index)
  tk_send_without_enc('xview', '-pickplace', _get_eval_enc_str(index))
  self
end
            
yview_pickplace(index)
 
               # File tk/lib/tk/text.rb, line 723
def yview_pickplace(index)
  tk_send_without_enc('yview', '-pickplace', _get_eval_enc_str(index))
  self
end