Class: TkFont::DescendantFont

Inherits:
Object
  • Object
show all
Defined in:
ext/lib/tk/font.rb

Instance Method Summary collapse

Constructor Details

#initialize(compound, type) ⇒ DescendantFont

Returns a new instance of DescendantFont.



147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'ext/lib/tk/font.rb', line 147

def initialize(compound, type)
  unless compound.kind_of?(TkFont)
    fail ArgumentError, "a TkFont object is expected for the 1st argument"
  end

  @compound = compound
  case type
  when 'kanji', 'latin', 'ascii'
    @type = type
  when :kanji, :latin, :ascii
    @type = type.to_s
  else
    fail ArgumentError, "unknown type '#{type}'"
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(id, *args) ⇒ Object



188
189
190
# File 'ext/lib/tk/font.rb', line 188

def method_missing(id, *args)
  @compound.__send__(@type + '_' + id.id2name, *args)
end

Instance Method Details

#[](slot) ⇒ Object



180
181
182
# File 'ext/lib/tk/font.rb', line 180

def [](slot)
  @compound.__send__(@type + '_configinfo', slot)
end

#[]=(slot, value) ⇒ Object



183
184
185
186
# File 'ext/lib/tk/font.rb', line 183

def []=(slot, value)
  @compound.__send__(@type + '_configure', slot, value)
  value
end

#cloneObject



166
167
168
# File 'ext/lib/tk/font.rb', line 166

def clone
  fail RuntimeError, "cannot clone a descendant font"
end

#dupObject



163
164
165
# File 'ext/lib/tk/font.rb', line 163

def dup
  fail RuntimeError, "cannot dupulicate a descendant font"
end

#fontObject Also known as: font_id, name, to_s



173
174
175
# File 'ext/lib/tk/font.rb', line 173

def font
  @compound.__send__(@type + '_font_id')
end

#to_evalObject



170
171
172
# File 'ext/lib/tk/font.rb', line 170

def to_eval
  @compound.__send__(@type + '_font_id')
end