# File tk/lib/tk/texttag.rb, line 24 def TkTextTag.id2obj(text, id) tpath = text.path TTagID_TBL.mutex.synchronize{ if TTagID_TBL[tpath] TTagID_TBL[tpath][id]? TTagID_TBL[tpath][id]: id else id end } end
# File tk/lib/tk/texttag.rb, line 35 def initialize(parent, *args) #unless parent.kind_of?(TkText) # fail ArgumentError, "expect TkText for 1st argument" #end @parent = @t = parent @tpath = parent.path Tk_TextTag_ID.mutex.synchronize{ # @path = @id = Tk_TextTag_ID.join('') @path = @id = Tk_TextTag_ID.join(TkCore::INTERP._ip_id_).freeze Tk_TextTag_ID[1].succ! } TTagID_TBL.mutex.synchronize{ TTagID_TBL[@id] = self TTagID_TBL[@tpath] = {} unless TTagID_TBL[@tpath] TTagID_TBL[@tpath][@id] = self } #tk_call @t.path, "tag", "configure", @id, *hash_kv(keys) if args != [] keys = args.pop if keys.kind_of?(Hash) add(*args) if args != [] configure(keys) else args.push keys add(*args) end end @t._addtag id, self end
# File tk/lib/tk/texttag.rb, line 127 def []=(key,val) configure key, val val end
# File tk/lib/tk/texttag.rb, line 86 def add(*indices) tk_call_without_enc(@t.path, 'tag', 'add', @id, *(indices.collect{|idx| _get_eval_enc_str(idx)})) self end
def bind(seq, cmd=Proc.new, *args)
_bind([@t.path, 'tag', 'bind', @id], seq, cmd, *args) self
end
# File tk/lib/tk/texttag.rb, line 194 def bind(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([@t.path, 'tag', 'bind', @id], seq, cmd, *args) self end
def #bind_append(seq, cmd=Proc.new, *args)
_bind_append([@t.path, 'tag', 'bind', @id], seq, cmd, *args) self
end
# File tk/lib/tk/texttag.rb, line 209 def bind_append(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([@t.path, 'tag', 'bind', @id], seq, cmd, *args) self end
# File tk/lib/tk/texttag.rb, line 220 def bind_remove(seq) _bind_remove([@t.path, 'tag', 'bind', @id], seq) self end
# File tk/lib/tk/texttag.rb, line 225 def bindinfo(context=nil) _bindinfo([@t.path, 'tag', 'bind', @id], context) end
# File tk/lib/tk/texttag.rb, line 132 def cget(key) @t.tag_cget @id, key end
# File tk/lib/tk/texttag.rb, line 135 def cget_strict(key) @t.tag_cget_strict @id, key end
def configure(key, val=None)
if key.kind_of?(Hash) tk_call @t.path, 'tag', 'configure', @id, *hash_kv(key) else tk_call @t.path, 'tag', 'configure', @id, "-#{key}", val end
end def configure(key, value)
if value == FALSE value = "0" elsif value.kind_of?(Proc) value = install_cmd(value) end tk_call @t.path, 'tag', 'configure', @id, "-#{key}", value
end
# File tk/lib/tk/texttag.rb, line 182 def configinfo(key=nil) @t.tag_configinfo @id, key end
def cget(key)
case key.to_s when 'text', 'label', 'show', 'data', 'file' _fromUTF8(tk_call_without_enc(@t.path, 'tag', 'cget', @id, "-#{key}")) when 'font', 'kanjifont' #fnt = tk_tcl2ruby(tk_call(@t.path, 'tag', 'cget', @id, "-#{key}")) fnt = tk_tcl2ruby(_fromUTF8(tk_call_without_enc(@t.path, 'tag', 'cget', @id, '-font'))) unless fnt.kind_of?(TkFont) fnt = tagfontobj(@id, 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(@t.path, 'tag', 'cget', @id, "-#{key}"))) end
end
# File tk/lib/tk/texttag.rb, line 163 def configure(key, val=None) @t.tag_configure @id, key, val end
# File tk/lib/tk/texttag.rb, line 186 def current_configinfo(key=nil) @t.current_tag_configinfo @id, key end
# File tk/lib/tk/texttag.rb, line 241 def destroy tk_call_without_enc(@t.path, 'tag', 'delete', @id) TTagID_TBL.mutex.synchronize{ TTagID_TBL[@tpath].delete(@id) if TTagID_TBL[@tpath] } self end
# File tk/lib/tk/texttag.rb, line 69 def exist? #if ( tk_split_simplelist(_fromUTF8(tk_call_without_enc(@t.path, 'tag', 'names'))).find{|id| id == @id } ) if ( tk_split_simplelist(tk_call_without_enc(@t.path, 'tag', 'names'), false, true).find{|id| id == @id } ) true else false end end
# File tk/lib/tk/texttag.rb, line 78 def first Tk::Text::IndexString.new(@id + '.first') end
# File tk/lib/tk/texttag.rb, line 65 def id Tk::Text::IndexString.new(@id) end
# File tk/lib/tk/texttag.rb, line 82 def last Tk::Text::IndexString.new(@id + '.last') end
# File tk/lib/tk/texttag.rb, line 235 def lower(below=None) tk_call_without_enc(@t.path, 'tag', 'lower', @id, _get_eval_enc_str(below)) self end
# File tk/lib/tk/texttag.rb, line 107 def nextrange(first, last=None) simplelist(tk_call_without_enc(@t.path, 'tag', 'nextrange', @id, _get_eval_enc_str(first), _get_eval_enc_str(last))).collect{|idx| Tk::Text::IndexString.new(idx) } end
# File tk/lib/tk/texttag.rb, line 115 def prevrange(first, last=None) simplelist(tk_call_without_enc(@t.path, 'tag', 'prevrange', @id, _get_eval_enc_str(first), _get_eval_enc_str(last))).collect{|idx| Tk::Text::IndexString.new(idx) } end
# File tk/lib/tk/texttag.rb, line 229 def raise(above=None) tk_call_without_enc(@t.path, 'tag', 'raise', @id, _get_eval_enc_str(above)) self end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.