Class TkText
In: tk/lib/tk/text.rb
Parent: TkTextWin

Methods

Included Modules

TkTextTagConfig Scrollable

Classes and Modules

Module TkText::IndexModMethods
Class TkText::IndexString
Class TkText::Peer

Constants

ItemConfCMD = ['tag'.freeze, 'configure'.freeze].freeze
TkCommandNames = ['text'.freeze].freeze  
WidgetClassName = 'Text'.freeze

Public Class methods

[Source]

# File tk/lib/tk/text.rb, line 195
  def self.at(x, y)
    TkText::IndexString.at(x, y)
  end

[Source]

# File tk/lib/tk/text.rb, line 159
  def self.new(*args, &block)
    obj = super(*args){}
    obj.init_instance_variable
    obj.instance_eval(&block) if defined? yield
    obj
  end

Public Instance methods

[Source]

# File tk/lib/tk/text.rb, line 171
  def __destroy_hook__
    TkTextTag::TTagID_TBL.delete(@path)
    TkTextMark::TMarkID_TBL.delete(@path)
  end

[Source]

# File tk/lib/tk/text.rb, line 229
  def _addcmd(cmd)
    @cmdtbl.push cmd
  end

[Source]

# File tk/lib/tk/text.rb, line 233
  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

[Source]

# File tk/lib/tk/text.rb, line 199
  def at(x, y)
    TkText::IndexString.at(x, y)
  end

[Source]

# File tk/lib/tk/text.rb, line 487
  def backspace
    self.delete 'insert'
  end

[Source]

# File tk/lib/tk/text.rb, line 491
  def bbox(index)
    list(tk_send_without_enc('bbox', _get_eval_enc_str(index)))
  end

[Source]

# File tk/lib/tk/text.rb, line 223
  def clear
    tk_send_without_enc('delete', "1.0", 'end')
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 495
  def compare(idx1, op, idx2)
    bool(tk_send_without_enc('compare', _get_eval_enc_str(idx1), 
                             op, _get_eval_enc_str(idx2)))
  end

[Source]

# File tk/lib/tk/text.rb, line 500
  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

[Source]

# File tk/lib/tk/text.rb, line 516
  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

[Source]

# File tk/lib/tk/text.rb, line 422
  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

[Source]

# File tk/lib/tk/text.rb, line 542
  def debug
    bool(tk_send_without_enc('debug'))
  end

[Source]

# File tk/lib/tk/text.rb, line 545
  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

[Source]

# File tk/lib/tk/text.rb, line 479
  def destroy
    @tags = {} unless @tags
    @tags.each_value do |t|
      t.destroy
    end
    super()
  end

[Source]

# File tk/lib/tk/text.rb, line 551
  def dlineinfo(index)
    list(tk_send_without_enc('dlineinfo', _get_eval_enc_str(index)))
  end

[Source]

# File tk/lib/tk/text.rb, line 1299
  def dump(type_info, *index, &block)
    if type_info.kind_of?(Symbol)
      type_info = [ type_info.to_s ]
    elsif type_info.kind_of?(String)
      type_info = [ type_info ]
    end
    args = type_info.collect{|inf| '-' + inf}
    args << '-command' << block if block
    str = tk_send('dump', *(args + index))
    result = []
    sel = nil
    i = 0
    while i < str.size
      # retrieve key
      idx = str.index(/ /, i)
      result.push str[i..(idx-1)]
      i = idx + 1
      
      # retrieve value
      case result[-1]
      when 'text'
        if str[i] == ?{
          # text formed as {...}
          val, i = _retrieve_braced_text(str, i)
          result.push val
        else
          # text which may contain backslahes
          val, i = _retrieve_backslashed_text(str, i)
          result.push val
        end
      else
        idx = str.index(/ /, i)
        val = str[i..(idx-1)]
        case result[-1]
        when 'mark'
          case val
          when 'insert'
            result.push TkTextMarkInsert.new(self)
          when 'current'
            result.push TkTextMarkCurrent.new(self)
          when 'anchor'
            result.push TkTextMarkAnchor.new(self)
          else
            result.push tk_tcl2ruby(val)
          end
        when 'tagon'
          if val == 'sel'
            if sel
              result.push sel
            else
              result.push TkTextTagSel.new(self)
            end
          else
            result.push tk_tcl2ruby(val)
          end
        when 'tagoff'
            result.push tk_tcl2ruby(val)
        when 'window'
          result.push tk_tcl2ruby(val)
        when 'image'
          result.push tk_tcl2ruby(val)
        end
        i = idx + 1
      end

      # retrieve index
      idx = str.index(/ /, i)
      if idx
        result.push(TkText::IndexString.new(str[i..(idx-1)]))
        i = idx + 1
      else
        result.push(TkText::IndexString.new(str[i..-1]))
        break
      end
    end
    
    kvis = []
    until result.empty?
      kvis.push [result.shift, result.shift, result.shift]
    end
    kvis  # result is [[key1, value1, index1], [key2, value2, index2], ...]
  end

[Source]

# File tk/lib/tk/text.rb, line 1418
  def dump_all(*index, &block)
    dump(['all'], *index, &block)
  end

[Source]

# File tk/lib/tk/text.rb, line 1433
  def dump_image(*index, &block)
    dump(['image'], *index, &block)
  end

[Source]

# File tk/lib/tk/text.rb, line 1421
  def dump_mark(*index, &block)
    dump(['mark'], *index, &block)
  end

[Source]

# File tk/lib/tk/text.rb, line 1424
  def dump_tag(*index, &block)
    dump(['tag'], *index, &block)
  end

[Source]

# File tk/lib/tk/text.rb, line 1427
  def dump_text(*index, &block)
    dump(['text'], *index, &block)
  end

[Source]

# File tk/lib/tk/text.rb, line 1430
  def dump_window(*index, &block)
    dump(['window'], *index, &block)
  end

[Source]

# File tk/lib/tk/text.rb, line 567
  def edit_redo
    tk_send_without_enc('edit', 'redo')
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 571
  def edit_reset
    tk_send_without_enc('edit', 'reset')
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 575
  def edit_separator
    tk_send_without_enc('edit', 'separator')
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 579
  def edit_undo
    tk_send_without_enc('edit', 'undo')
    self
  end
erase()

Alias for clear

[Source]

# File tk/lib/tk/text.rb, line 208
  def get_displaychars(*index)
    # Tk8.5 feature
    get('-displaychars', *index)
  end

[Source]

# File tk/lib/tk/text.rb, line 307
  def image_cget(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

[Source]

# File tk/lib/tk/text.rb, line 333
  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

[Source]

# File tk/lib/tk/text.rb, line 319
  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

[Source]

# File tk/lib/tk/text.rb, line 443
  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

[Source]

# File tk/lib/tk/text.rb, line 203
  def index(idx)
    TkText::IndexString.new(tk_send_without_enc('index', 
                                                _get_eval_enc_str(idx)))
  end

[Source]

# File tk/lib/tk/text.rb, line 166
  def init_instance_variable
    @cmdtbl = []
    @tags = {}
  end

[Source]

# File tk/lib/tk/text.rb, line 460
  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

[Source]

# File tk/lib/tk/text.rb, line 271
  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

[Source]

# File tk/lib/tk/text.rb, line 264
  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

[Source]

# File tk/lib/tk/text.rb, line 295
  def mark_next(index)
    tagid2obj(_fromUTF8(tk_send_without_enc('mark', 'next', 
                                            _get_eval_enc_str(index))))
  end

[Source]

# File tk/lib/tk/text.rb, line 301
  def mark_previous(index)
    tagid2obj(_fromUTF8(tk_send_without_enc('mark', 'previous', 
                                            _get_eval_enc_str(index))))
  end

[Source]

# File tk/lib/tk/text.rb, line 281
  def mark_set(mark, index)
    tk_send_without_enc('mark', 'set', _get_eval_enc_str(mark), 
                        _get_eval_enc_str(index))
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 288
  def mark_unset(*marks)
    tk_send_without_enc('mark', 'unset', 
                        *(marks.collect{|mark| _get_eval_enc_str(mark)}))
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 558
  def modified(mode)
    tk_send_without_enc('edit', 'modified', mode)
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 562
  def modified=(mode)
    modified(mode)
    mode
  end

[Source]

# File tk/lib/tk/text.rb, line 555
  def modified?
    bool(tk_send_without_enc('edit', 'modified'))
  end
next_mark(index)

Alias for mark_next

[Source]

# File tk/lib/tk/text.rb, line 532
  def peer_names()
    # Tk8.5 feature
    list(tk_send_without_enc('peer', 'names'))
  end
previous_mark(index)

Alias for mark_previous

[Source]

# File tk/lib/tk/text.rb, line 537
  def replace(idx1, idx2, *opts)
    tk_send('replace', idx1, idx2, *opts)
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 1295
  def rsearch(pat,start,stop=None)
    rsearch_with_length(pat,start,stop)[0]
  end

[Source]

# File tk/lib/tk/text.rb, line 1243
  def rsearch_with_length(pat,start,stop=None)
    pat = pat.chr if pat.kind_of?(Integer)
    if stop != None
      return ["", 0] if compare(start,'<=',stop)
      txt = get(stop,start)
      if (pos = txt.rindex(pat))
        match = $&
        #pos = txt[0..(pos-1)].split('').length if pos > 0
        pos = _ktext_length(txt[0..(pos-1)]) if pos > 0
        if pat.kind_of?(String)
          #return [index(stop + " + #{pos} chars"), pat.split('').length]
          return [index(stop + " + #{pos} chars"), _ktext_length(pat), pat.dup]
        else
          #return [index(stop + " + #{pos} chars"), $&.split('').length]
          return [index(stop + " + #{pos} chars"), _ktext_length(match), match]
        end
      else
        return ["", 0]
      end
    else
      txt = get('1.0',start)
      if (pos = txt.rindex(pat))
        match = $&
        #pos = txt[0..(pos-1)].split('').length if pos > 0
        pos = _ktext_length(txt[0..(pos-1)]) if pos > 0
        if pat.kind_of?(String)
          #return [index("1.0 + #{pos} chars"), pat.split('').length]
          return [index("1.0 + #{pos} chars"), _ktext_length(pat), pat.dup]
        else
          #return [index("1.0 + #{pos} chars"), $&.split('').length]
          return [index("1.0 + #{pos} chars"), _ktext_length(match), match]
        end
      else
        txt = get('1.0','end - 1 char')
        if (pos = txt.rindex(pat))
          match = $&
          #pos = txt[0..(pos-1)].split('').length if pos > 0
          pos = _ktext_length(txt[0..(pos-1)]) if pos > 0
          if pat.kind_of?(String)
            #return [index("1.0 + #{pos} chars"), pat.split('').length]
            return [index("1.0 + #{pos} chars"), _ktext_length(pat), pat.dup]
          else
            #return [index("1.0 + #{pos} chars"), $&.split('').length]
            return [index("1.0 + #{pos} chars"), _ktext_length(match), match]
          end
        else
          return ["", 0]
        end
      end
    end
  end

[Source]

# File tk/lib/tk/text.rb, line 1239
  def search(pat,start,stop=None)
    search_with_length(pat,start,stop)[0]
  end

[Source]

# File tk/lib/tk/text.rb, line 1182
  def search_with_length(pat,start,stop=None)
    pat = pat.chr if pat.kind_of?(Integer)
    if stop != None
      return ["", 0] if compare(start,'>=',stop)
      txt = get(start,stop)
      if (pos = txt.index(pat))
        match = $&
        #pos = txt[0..(pos-1)].split('').length if pos > 0
        pos = _ktext_length(txt[0..(pos-1)]) if pos > 0
        if pat.kind_of?(String)
          #return [index(start + " + #{pos} chars"), pat.split('').length]
          return [index(start + " + #{pos} chars"), 
                  _ktext_length(pat), pat.dup]
        else
          #return [index(start + " + #{pos} chars"), $&.split('').length]
          return [index(start + " + #{pos} chars"), 
                  _ktext_length(match), match]
        end
      else
        return ["", 0]
      end
    else
      txt = get(start,'end - 1 char')
      if (pos = txt.index(pat))
        match = $&
        #pos = txt[0..(pos-1)].split('').length if pos > 0
        pos = _ktext_length(txt[0..(pos-1)]) if pos > 0
        if pat.kind_of?(String)
          #return [index(start + " + #{pos} chars"), pat.split('').length]
          return [index(start + " + #{pos} chars"), 
                  _ktext_length(pat), pat.dup]
        else
          #return [index(start + " + #{pos} chars"), $&.split('').length]
          return [index(start + " + #{pos} chars"), 
                  _ktext_length(match), match]
        end
      else
        txt = get('1.0','end - 1 char')
        if (pos = txt.index(pat))
          match = $&
          #pos = txt[0..(pos-1)].split('').length if pos > 0
          pos = _ktext_length(txt[0..(pos-1)]) if pos > 0
          if pat.kind_of?(String)
            #return [index("1.0 + #{pos} chars"), pat.split('').length]
            return [index("1.0 + #{pos} chars"), 
                    _ktext_length(pat), pat.dup]
          else
            #return [index("1.0 + #{pos} chars"), $&.split('').length]
            return [index("1.0 + #{pos} chars"), _ktext_length(match), match]
          end
        else
          return ["", 0]
        end
      end
    end
  end

[Source]

# File tk/lib/tk/text.rb, line 455
  def set_current(index)
    tk_send_without_enc('mark','set','current', _get_eval_enc_str(index))
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 450
  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

[Source]

# File tk/lib/tk/text.rb, line 612
  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

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

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

end

[Source]

# File tk/lib/tk/text.rb, line 642
  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

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

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

end

[Source]

# File tk/lib/tk/text.rb, line 657
  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

[Source]

# File tk/lib/tk/text.rb, line 668
  def tag_bind_remove(tag, seq)
    _bind_remove([@path, 'tag', 'bind', tag], seq)
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 673
  def tag_bindinfo(tag, context=nil)
    _bindinfo([@path, 'tag', 'bind', tag], context)
  end

[Source]

# File tk/lib/tk/text.rb, line 621
  def tag_delete(*tags)
    tk_send_without_enc('tag', 'delete', 
                        *(tags.collect{|tag| _get_eval_enc_str(tag)}))
    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

[Source]

# File tk/lib/tk/text.rb, line 859
  def tag_lower(tag, below=None)
    tk_send_without_enc('tag', 'lower', _get_eval_enc_str(tag), 
                        _get_eval_enc_str(below))
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 257
  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

[Source]

# File tk/lib/tk/text.rb, line 884
  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|
      TkText::IndexString.new(idx)
    }
  end

[Source]

# File tk/lib/tk/text.rb, line 893
  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|
      TkText::IndexString.new(idx)
    }
  end

[Source]

# File tk/lib/tk/text.rb, line 853
  def tag_raise(tag, above=None)
    tk_send_without_enc('tag', 'raise', _get_eval_enc_str(tag), 
                        _get_eval_enc_str(above))
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 871
  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 [TkText::IndexString.new(key), TkText::IndexString.new(l.shift)]
    end
    r
  end

[Source]

# File tk/lib/tk/text.rb, line 865
  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

[Source]

# File tk/lib/tk/text.rb, line 249
  def tagid2obj(tagid)
    if @tags[tagid]
      @tags[tagid]
    else
      tagid
    end
  end

[Source]

# File tk/lib/tk/text.rb, line 594
  def text_copy
    # Tk8.4 feature
    tk_call_without_enc('tk_textCopy', @path)
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 600
  def text_cut
    # Tk8.4 feature
    tk_call_without_enc('tk_textCut', @path)
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 606
  def text_paste
    # Tk8.4 feature
    tk_call_without_enc('tk_textPaste', @path)
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 1114
  def tksearch(*args)
    # call 'search' subcommand of text widget
    #   args ::= [<array_of_opts>] <pattern> <start_index> [<stop_index>]
    # If <pattern> is regexp, then it must be a regular expression of Tcl
    nocase = false
    if args[0].kind_of?(Array)
      opts = args.shift.collect{|opt|
        s_opt = opt.to_s
        nocase = true if s_opt == 'nocase'
        '-' + s_opt
      }
    else
      opts = []
    end

    if args[0].kind_of?(Regexp)
      regexp = args.shift
      if !nocase && (regexp.options & Regexp::IGNORECASE) != 0
        opts << '-nocase'
      end
      args.unshift(regexp.source)
    end

    opts << '--'

    ret = tk_send('search', *(opts + args))
    if ret == ""
      nil
    else
      TkText::IndexString.new(ret)
    end
  end

[Source]

# File tk/lib/tk/text.rb, line 1147
  def tksearch_with_count(*args)
    # call 'search' subcommand of text widget
    #   args ::= [<array_of_opts>] <var> <pattern> <start_index> [<stop_index>]
    # If <pattern> is regexp, then it must be a regular expression of Tcl
    nocase = false
    if args[0].kind_of?(Array)
      opts = args.shift.collect{|opt|
        s_opt = opt.to_s
        nocase = true if s_opt == 'nocase'
        '-' + s_opt
      }
    else
      opts = []
    end

    opts << '-count' << args.shift

    if args[0].kind_of?(Regexp)
      regexp = args.shift
      if !nocase && (regexp.options & Regexp::IGNORECASE) != 0
        opts << '-nocase'
      end
      args.unshift(regexp.source)
    end

    opts << '--'

    ret = tk_send('search', *(opts + args))
    if ret == ""
      nil
    else
      TkText::IndexString.new(ret)
    end
  end
unset_mark(*marks)

Alias for mark_unset

[Source]

# File tk/lib/tk/text.rb, line 213
  def value
    _fromUTF8(tk_send_without_enc('get', "1.0", "end - 1 char"))
  end

[Source]

# File tk/lib/tk/text.rb, line 217
  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

[Source]

# File tk/lib/tk/text.rb, line 1086
  def window_names
    # tk_split_simplelist(_fromUTF8(tk_send_without_enc('window', 'names'))).collect{|elt|
    tk_split_simplelist(tk_send_without_enc('window', 'names'), false, true).collect{|elt|
      tagid2obj(elt)
    }
  end

[Source]

# File tk/lib/tk/text.rb, line 584
  def xview_pickplace(index)
    tk_send_without_enc('xview', '-pickplace', _get_eval_enc_str(index))
    self
  end

[Source]

# File tk/lib/tk/text.rb, line 589
  def yview_pickplace(index)
    tk_send_without_enc('yview', '-pickplace', _get_eval_enc_str(index))
    self
  end

[Validate]