blob: ac87a284cae82e3f31f789d362a11a6cbf0aa17e [file] [log] [blame]
use foreign_types::{foreign_type, ForeignTypeRef};
use super::ffi::{FcConfig, FcConfigDestroy, FcConfigGetCurrent, FcConfigGetFonts};
use super::{FontSetRef, SetName};
foreign_type! {
pub unsafe type Config {
type CType = FcConfig;
fn drop = FcConfigDestroy;
}
}
impl Config {
/// Get the current configuration.
pub fn get_current() -> &'static ConfigRef {
unsafe { ConfigRef::from_ptr(FcConfigGetCurrent()) }
}
}
impl ConfigRef {
/// Returns one of the two sets of fonts from the configuration as
/// specified by `set`.
pub fn get_fonts(&self, set: SetName) -> &FontSetRef {
unsafe {
let ptr = FcConfigGetFonts(self.as_ptr(), set as u32);
FontSetRef::from_ptr(ptr)
}
}
}