def self.new(parent, keys={})
if parent.kind_of?(Hash)
keys = TkComm._symbolkey2str(parent)
parent = keys.delete('parent')
end
if parent.kind_of?(String)
ppath = parent.path
elsif parent
ppath = parent
else
ppath = ''
end
HtmlClip_TBL.mutex.synchronize{
return HtmlClip_TBL[ppath] if HtmlClip_TBL[ppath]
}
widgetname = keys.delete('widgetname')
if widgetname =~ /^(.*)\.[^.]+$/
ppath2 = $1
if ppath2[0] != ?.
ppath2 = ppath + '.' + ppath2
end
HtmlClip_TBL.mutex.synchronize{
return HtmlClip_TBL[ppath2] if HtmlClip_TBL[ppath2]
}
ppath = ppath2
end
parent = TkComm._genobj_for_tkwidget(ppath)
unless parent.kind_of?(Tk::HTML_Widget)
fail ArgumentError, "parent must be a Tk::HTML_Widget instance"
end
super(parent)
end