[640] MacRuby/trunk/lib/hotcocoa/mappings/font.rb
Revision: 640 http://trac.macosforge.org/projects/ruby/changeset/640 Author: rich@infoether.com Date: 2008-09-28 22:22:09 -0700 (Sun, 28 Sep 2008) Log Message: ----------- add font traits Modified Paths: -------------- MacRuby/trunk/lib/hotcocoa/mappings/font.rb Modified: MacRuby/trunk/lib/hotcocoa/mappings/font.rb =================================================================== --- MacRuby/trunk/lib/hotcocoa/mappings/font.rb 2008-09-29 05:13:09 UTC (rev 639) +++ MacRuby/trunk/lib/hotcocoa/mappings/font.rb 2008-09-29 05:22:09 UTC (rev 640) @@ -1,9 +1,22 @@ HotCocoa::Mappings.map :font => :NSFont do + constant :trait, { + :italic => NSItalicFontMask, + :bold => NSBoldFontMask, + :unbold => NSUnboldFontMask, + :nonstandard_character_set => NSNonStandardCharacterSetFontMask, + :narrow => NSNarrowFontMask, + :expanded => NSExpandedFontMask, + :condensed => NSCondensedFontMask, + :small_caps => NSSmallCapsFontMask, + :poster => NSPosterFontMask, + :compressed => NSCompressedFontMask, + :fixed_pitch => NSFixedPitchFontMask, + :unitalic => NSUnitalicFontMask + } + def alloc_with_options(options) - if options.has_key?(:system) && options.delete(:bold) - return NSFont.boldSystemFontOfSize(options.delete(:system)) - end + font = nil { :label => :labelFontOfSize, :system => :systemFontOfSize, @@ -17,13 +30,15 @@ :user_fixed => :userFixedPitchFontOfSize, :user => :userFontOfSize }.each do |key, method| - return eval("NSFont.#{method}(#{options.delete(key)})") if options.has_key?(key) + if options.has_key?(key) + font = eval("NSFont.#{method}(#{options.delete(key)})") + break + end end - if options.has_key?(:name) - return NSFont.fontWithName(options.delete(:name), size:(options.delete(:size) || 0)) - else - raise "Cannot create font with the provided options" - end + font = NSFont.fontWithName(options.delete(:name), size:(options.delete(:size) || 0)) if options.has_key?(:name) + raise "Cannot create font with the provided options" unless font + font = NSFontManager.sharedFontManager.convertFont(font, toHaveTrait:options.delete(:trait)) if options[:trait] + font end end
participants (1)
-
source_changes@macosforge.org