for built-in named fonts
# File tk/lib/tk/font.rb, line 2234 def TkNamedFont.find(name) name = name.to_s unless (obj = Tk_FontNameTBL[name]) obj = self.new(name) if TkFont.is_system_font?(name) end obj end
# File tk/lib/tk/font.rb, line 2242 def TkNamedFont.new(name, keys=nil) name = name.to_s obj = nil Tk_FontNameTBL.mutex.synchronize{ unless (obj = Tk_FontNameTBL[name]) (obj = self.allocate).instance_eval{ @id = @compoundfont = name.to_s @latinfont = nil @kanjifont = nil @descendant = [self, self] # [latin, kanji] : dummy Tk_FontNameTBL[@id] = self } end } obj.instance_eval{ initialize(name, keys) } obj end
# File tk/lib/tk/font.rb, line 2263 def initialize(name, keys=nil) @id = @compoundfont = name.to_s # if not exist named font, create it. begin if keys tk_call('font', 'configure', @compoundfont, keys) else tk_call('font', 'configure', @compoundfont) end rescue # the named font doesn't exist -> create if keys tk_call('font', 'create', @compoundfont, keys) else tk_call('font', 'create', @compoundfont) end end end