Class: TkTextMark (Ruby 2.3.4)

In Files

  • tk/lib/tk/textmark.rb

Class/Module Index [+]

Quicksearch

TkTextMark

Public Class Methods

id2obj(text, id)
 
               # File tk/lib/tk/textmark.rb, line 23
def TkTextMark.id2obj(text, id)
  tpath = text.path
  TMarkID_TBL.mutex.synchronize{
    if TMarkID_TBL[tpath]
      TMarkID_TBL[tpath][id]? TMarkID_TBL[tpath][id]: id
    else
      id
    end
  }
end
            
new(parent, index)
 
               # File tk/lib/tk/textmark.rb, line 34
def initialize(parent, index)
  #unless parent.kind_of?(Tk::Text)
  #  fail ArgumentError, "expect Tk::Text for 1st argument"
  #end
  @parent = @t = parent
  @tpath = parent.path
  Tk_TextMark_ID.mutex.synchronize{
    # @path = @id = Tk_TextMark_ID.join('')
    @path = @id = Tk_TextMark_ID.join(TkCore::INTERP._ip_id_).freeze
    Tk_TextMark_ID[1].succ!
  }
  TMarkID_TBL.mutex.synchronize{
    TMarkID_TBL[@id] = self
    TMarkID_TBL[@tpath] = {} unless TMarkID_TBL[@tpath]
    TMarkID_TBL[@tpath][@id] = self
  }
  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
exist?()
 
               # File tk/lib/tk/textmark.rb, line 59
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
            
gravity()
 
               # File tk/lib/tk/textmark.rb, line 115
def gravity
  tk_call_without_enc(@t.path, 'mark', 'gravity', @id)
end
            
gravity=(direction)
 
               # File tk/lib/tk/textmark.rb, line 119
def gravity=(direction)
  tk_call_without_enc(@t.path, 'mark', 'gravity', @id, direction)
  #self
  direction
end
            
id()
 
               # File tk/lib/tk/textmark.rb, line 55
def id
  Tk::Text::IndexString.new(@id)
end
            
mutex()
 
               # File tk/lib/tk/textmark.rb, line 15
def mutex; @mutex; end
            
next(index = nil)
 
               # File tk/lib/tk/textmark.rb, line 125
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
            
pos()

# move to Tk::Text::IndexModMethods module def +(mod)

return chars(mod) if mod.kind_of?(Numeric)

mod = mod.to_s
if mod =~ /^\s*[+-]?\d/
  Tk::Text::IndexString.new(@id + ' + ' + mod)
else
  Tk::Text::IndexString.new(@id + ' ' + mod)
end

end

def -(mod)

return chars(-mod) if mod.kind_of?(Numeric)

mod = mod.to_s
if mod =~ /^\s*[+-]?\d/
  Tk::Text::IndexString.new(@id + ' - ' + mod)
elsif mod =~ /^\s*[-]\s+(\d.*)$/
  Tk::Text::IndexString.new(@id + ' - -' + $1)
else
  Tk::Text::IndexString.new(@id + ' ' + mod)
end

end

 
               # File tk/lib/tk/textmark.rb, line 95
def pos
  @t.index(@id)
end
            
pos=(where)
 
               # File tk/lib/tk/textmark.rb, line 99
def pos=(where)
  set(where)
end
            
previous(index = nil)
 
               # File tk/lib/tk/textmark.rb, line 133
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
            
set(where)
 
               # File tk/lib/tk/textmark.rb, line 103
def set(where)
  tk_call_without_enc(@t.path, 'mark', 'set', @id,
                      _get_eval_enc_str(where))
  self
end
            
unset()
 
               # File tk/lib/tk/textmark.rb, line 109
def unset
  tk_call_without_enc(@t.path, 'mark', 'unset', @id)
  self
end
            
Also aliased as: destroy