Class TkTextMark
In: tk/lib/tk/textmark.rb
Parent: TkObject

Methods

destroy   exist?   gravity   gravity=   id   id2obj   new   next   pos   pos=   previous   set   unset  

Included Modules

TkText::IndexModMethods

Constants

TMarkID_TBL = TkCore::INTERP.create_table
Tk_TextMark_ID = ['mark'.freeze, '00000'.taint].freeze

Public Class methods

[Source]

# File tk/lib/tk/textmark.rb, line 15
  def TkTextMark.id2obj(text, id)
    tpath = text.path
    return id unless TMarkID_TBL[tpath]
    TMarkID_TBL[tpath][id]? TMarkID_TBL[tpath][id]: id
  end

[Source]

# File tk/lib/tk/textmark.rb, line 21
  def initialize(parent, index)
    #unless parent.kind_of?(TkText)
    #  fail ArgumentError, "expect TkText for 1st argument"
    #end
    @parent = @t = parent
    @tpath = parent.path
    # @path = @id = Tk_TextMark_ID.join('')
    @path = @id = Tk_TextMark_ID.join(TkCore::INTERP._ip_id_).freeze
    TMarkID_TBL[@id] = self
    TMarkID_TBL[@tpath] = {} unless TMarkID_TBL[@tpath]
    TMarkID_TBL[@tpath][@id] = self
    Tk_TextMark_ID[1].succ!
    tk_call_without_enc(@t.path, 'mark', 'set', @id, 
                        _get_eval_enc_str(index))
    @t._addtag id, self
  end

Public Instance methods

destroy()

Alias for unset

[Source]

# File tk/lib/tk/textmark.rb, line 42
  def exist?
    #if ( tk_split_simplelist(_fromUTF8(tk_call_without_enc(@t.path, 'mark', 'names'))).find{|id| id == @id } )
    if ( tk_split_simplelist(tk_call_without_enc(@t.path, 'mark', 'names'), false, true).find{|id| id == @id } )
      true
    else
      false
    end
  end

[Source]

# File tk/lib/tk/textmark.rb, line 98
  def gravity
    tk_call_without_enc(@t.path, 'mark', 'gravity', @id)
  end

[Source]

# File tk/lib/tk/textmark.rb, line 102
  def gravity=(direction)
    tk_call_without_enc(@t.path, 'mark', 'gravity', @id, direction)
    #self
    direction
  end

[Source]

# File tk/lib/tk/textmark.rb, line 38
  def id
    TkText::IndexString.new(@id)
  end

[Source]

# File tk/lib/tk/textmark.rb, line 108
  def next(index = nil)
    if index
      @t.tagid2obj(_fromUTF8(tk_call_without_enc(@t.path, 'mark', 'next', _get_eval_enc_str(index))))
    else
      @t.tagid2obj(_fromUTF8(tk_call_without_enc(@t.path, 'mark', 'next', @id)))
    end
  end

[Source]

# File tk/lib/tk/textmark.rb, line 78
  def pos
    @t.index(@id)
  end

[Source]

# File tk/lib/tk/textmark.rb, line 82
  def pos=(where)
    set(where)
  end

[Source]

# File tk/lib/tk/textmark.rb, line 116
  def previous(index = nil)
    if index
      @t.tagid2obj(_fromUTF8(tk_call_without_enc(@t.path, 'mark', 'previous', _get_eval_enc_str(index))))
    else
      @t.tagid2obj(_fromUTF8(tk_call_without_enc(@t.path, 'mark', 'previous', @id)))
    end
  end

[Source]

# File tk/lib/tk/textmark.rb, line 86
  def set(where)
    tk_call_without_enc(@t.path, 'mark', 'set', @id, 
                        _get_eval_enc_str(where))
    self
  end

[Source]

# File tk/lib/tk/textmark.rb, line 92
  def unset
    tk_call_without_enc(@t.path, 'mark', 'unset', @id)
    self
  end

[Validate]