| 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) |
| } |
| } |
| } |