From a3f597bbbc02d47151a3058905af3fcf6c7482a8 Mon Sep 17 00:00:00 2001 From: "Brian J. Burg" Date: Fri, 16 Nov 2012 11:20:32 -0800 Subject: [PATCH] Move CTFont static methods outside of trait/impl. --- font.rs | 47 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/font.rs b/font.rs index 4f11f80..212b64b 100644 --- a/font.rs +++ b/font.rs @@ -110,10 +110,7 @@ impl CTFontRef : AbstractCFTypeRef { pub type CTFont = CFWrapper; pub trait CTFontMethods { - // Creation methods - static fn new_from_CGFont(cgfont: CGFontRef, pt_size: float) -> CTFont; - static fn new_from_descriptor(desc: &CTFontDescriptor, pt_size: float) -> CTFont; - static fn new_from_name(name: ~str, pt_size: float) -> Result; + // Creation methods (statics below) fn copy_to_CGFont(&const self) -> CGFontRef; fn clone_with_font_size(&const self, size: float) -> CTFont; @@ -140,29 +137,29 @@ pub trait CTFontMethods { fn get_font_table(tag: u32) -> Option; } +pub fn new_from_CGFont(cgfont: CGFontRef, pt_size: float) -> CTFont { + assert cgfont.is_not_null(); + let result = CTFontCreateWithGraphicsFont(cgfont, pt_size as CGFloat, ptr::null(), ptr::null()); + + CFWrapper::wrap_owned(result) +} + +pub fn new_from_descriptor(desc: &CTFontDescriptor, pt_size: float) -> CTFont { + let result = CTFontCreateWithFontDescriptor(*desc.borrow_ref(), pt_size as CGFloat, ptr::null()); + + CFWrapper::wrap_owned(result) +} + +pub fn new_from_name(name: ~str, pt_size: float) -> Result { + let cfname = CFString::new(name); + let result = CTFontCreateWithName(*cfname.borrow_ref(), pt_size as CGFloat, ptr::null()); + if result.is_null() { return Err(()); } + + return Ok(move CFWrapper::wrap_owned(result)); +} + pub impl CTFont : CTFontMethods { // Creation methods - static fn new_from_CGFont(cgfont: CGFontRef, pt_size: float) -> CTFont { - assert cgfont.is_not_null(); - let result = CTFontCreateWithGraphicsFont(cgfont, pt_size as CGFloat, ptr::null(), ptr::null()); - - CFWrapper::wrap_owned(result) - } - - static fn new_from_descriptor(desc: &CTFontDescriptor, pt_size: float) -> CTFont { - let result = CTFontCreateWithFontDescriptor(*desc.borrow_ref(), pt_size as CGFloat, ptr::null()); - - CFWrapper::wrap_owned(result) - } - - static fn new_from_name(name: ~str, pt_size: float) -> Result { - let cfname = CFString::new(name); - let result = CTFontCreateWithName(*cfname.borrow_ref(), pt_size as CGFloat, ptr::null()); - if result.is_null() { return Err(()); } - - return Ok(move CFWrapper::wrap_owned(result)); - } - fn copy_to_CGFont(&const self) -> CGFontRef { CTFontCopyGraphicsFont(self.obj, ptr::null()) }