Maintenance of Ruby 2.0.0 ended on February 24, 2016. Read more
# File tk/lib/tk/textmark.rb, line 22 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
# File tk/lib/tk/textmark.rb, line 33 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
# File tk/lib/tk/textmark.rb, line 58 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
# File tk/lib/tk/textmark.rb, line 114 def gravity tk_call_without_enc(@t.path, 'mark', 'gravity', @id) end
# File tk/lib/tk/textmark.rb, line 118 def gravity=(direction) tk_call_without_enc(@t.path, 'mark', 'gravity', @id, direction) #self direction end
# File tk/lib/tk/textmark.rb, line 54 def id Tk::Text::IndexString.new(@id) end
# File tk/lib/tk/textmark.rb, line 124 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
# 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 94 def pos @t.index(@id) end
# File tk/lib/tk/textmark.rb, line 98 def pos=(where) set(where) end
# File tk/lib/tk/textmark.rb, line 132 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
# File tk/lib/tk/textmark.rb, line 102 def set(where) tk_call_without_enc(@t.path, 'mark', 'set', @id, _get_eval_enc_str(where)) self end
# File tk/lib/tk/textmark.rb, line 108 def unset tk_call_without_enc(@t.path, 'mark', 'unset', @id) self end