[macruby-changes] [640] MacRuby/trunk/lib/hotcocoa/mappings/font.rb

source_changes at macosforge.org source_changes at macosforge.org
Sun Sep 28 22:22:09 PDT 2008


Revision: 640
          http://trac.macosforge.org/projects/ruby/changeset/640
Author:   rich at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080928/e1b44dfd/attachment-0001.html 


More information about the macruby-changes mailing list