# File tk/lib/tk/texttag.rb, line 25 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 36 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 128 def []=(key,val) configure key, val val end
# File tk/lib/tk/texttag.rb, line 87 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 198 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 213 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 224 def bind_remove(seq) _bind_remove([@t.path, 'tag', 'bind', @id], seq) self end
# File tk/lib/tk/texttag.rb, line 229 def bindinfo(context=nil) _bindinfo([@t.path, 'tag', 'bind', @id], context) end
# File tk/lib/tk/texttag.rb, line 136 def cget(key) @t.tag_cget @id, key end
# File tk/lib/tk/texttag.rb, line 139 def cget_strict(key) @t.tag_cget_strict @id, key end
# File tk/lib/tk/texttag.rb, line 133 def cget_tkstring(key) @t.tag_cget_tkstring @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 186 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 167 def configure(key, val=None) @t.tag_configure @id, key, val end
# File tk/lib/tk/texttag.rb, line 190 def current_configinfo(key=nil) @t.current_tag_configinfo @id, key end
# File tk/lib/tk/texttag.rb, line 245 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 70 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 79 def first Tk::Text::IndexString.new(@id + '.first') end
# File tk/lib/tk/texttag.rb, line 66 def id Tk::Text::IndexString.new(@id) end
# File tk/lib/tk/texttag.rb, line 83 def last Tk::Text::IndexString.new(@id + '.last') end
# File tk/lib/tk/texttag.rb, line 239 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 108 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 116 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 233 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.