//
//  UIFont.swift
//  Astro
//
//  Created by Jake Runzer on 2016-05-11.
//  Copyright © 2016 Mobify Research & Development Inc. All rights reserved.
//

import Foundation

extension UIFont {
    func withTraits(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {
        guard let descriptor = self.fontDescriptor.withSymbolicTraits(UIFontDescriptor.SymbolicTraits(traits)) else {
            AstroLog.logger(AstroLog.Application).error("Failed to construct font descriptor from traits \(traits)")
            return self
        }
        return UIFont(descriptor: descriptor, size: 0)
    }

    @objc func bold() -> UIFont {
        return withTraits(.traitBold)
    }

    @objc func italic() -> UIFont {
        return withTraits(.traitItalic)
    }

    @objc func boldItalic() -> UIFont {
        return withTraits(.traitBold, .traitItalic)
    }
}
