[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