// GENERATED — DO NOT EDIT
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/class.FontMap.html).
pub type FontMap
///|
pub(open) trait IFontMap {
fn as_font_map(Self) -> FontMap
fn add_font_file(Self, String) -> Bool raise @glib.Error_ = _
fn changed(Self) -> Unit = _
fn create_context(Self) -> Context = _
fn get_family(Self, String) -> FontFamily? = _
fn get_serial(Self) -> UInt = _
fn list_families(Self) -> Array[FontFamily] = _
fn load_font(Self, &IContext, FontDescription) -> Font? = _
fn load_fontset(Self, &IContext, FontDescription, Language) -> Fontset? = _
fn reload_font(Self, &IFont, Double, &IContext?, String?) -> Font = _
}
///|
pub impl IFontMap for FontMap with fn as_font_map(self) {
self
}
///|
/// Implementation contract for FontMap.changed. Self is the retained MoonBit state; the second parameter is the invoked FontMap object.
pub(open) trait VFontMapChanged {
fn changed(Self, FontMap) -> Unit
}
///|
#borrow(self_, filename, error)
extern "c" fn moonbit_pango_font_map_add_font_file(
self_ : FontMap,
filename : Bytes,
error : Ref[@glib.Nullable[@glib.Error_]],
) -> Bool = "moonbit_pango_font_map_add_font_file"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/method.FontMap.add_font_file.html).
pub fn FontMap::add_font_file(
self : FontMap,
filename : String,
) -> Bool raise @glib.Error_ {
let error_ : Ref[@glib.Nullable[@glib.Error_]] = Ref(@glib.Nullable::null())
let result = moonbit_pango_font_map_add_font_file(
self,
@encoding/utf8.encode(filename),
error_,
)
match error_.val.to_option() {
Some(e) => raise e
None => ()
}
result
}
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/method.FontMap.changed.html).
#borrow(self)
pub extern "c" fn FontMap::changed(self : FontMap) = "moonbit_pango_font_map_changed"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/method.FontMap.create_context.html).
#borrow(self)
pub extern "c" fn FontMap::create_context(self : FontMap) -> Context = "moonbit_pango_font_map_create_context"
///|
#borrow(self_, name)
extern "c" fn moonbit_pango_font_map_get_family(
self_ : FontMap,
name : Bytes,
) -> @glib.Nullable[FontFamily] = "moonbit_pango_font_map_get_family"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/method.FontMap.get_family.html).
pub fn FontMap::get_family(self : FontMap, name : String) -> FontFamily? {
let raw_result = moonbit_pango_font_map_get_family(
self,
@encoding/utf8.encode(name),
)
raw_result.to_option()
}
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/method.FontMap.get_serial.html).
#borrow(self)
pub extern "c" fn FontMap::get_serial(self : FontMap) -> UInt = "moonbit_pango_font_map_get_serial"
///|
#borrow(self_, families)
extern "c" fn moonbit_pango_font_map_list_families(
self_ : FontMap,
families : Ref[FixedArray[FontFamily]],
) = "moonbit_pango_font_map_list_families"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/method.FontMap.list_families.html).
pub fn FontMap::list_families(self : FontMap) -> Array[FontFamily] {
let families : Ref[FixedArray[FontFamily]] = Ref([])
moonbit_pango_font_map_list_families(self, families)
let result : Array[FontFamily] = Array::new(capacity=families.val.length())
for i in 0.. @glib.Nullable[Font] = "moonbit_pango_font_map_load_font"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/method.FontMap.load_font.html).
pub fn FontMap::load_font(
self : FontMap,
context : &IContext,
desc : FontDescription,
) -> Font? {
let raw_result = moonbit_pango_font_map_load_font(
self,
context.as_context(),
desc,
)
raw_result.to_option()
}
///|
#borrow(self_, context, desc, language)
extern "c" fn moonbit_pango_font_map_load_fontset(
self_ : FontMap,
context : Context,
desc : FontDescription,
language : Language,
) -> @glib.Nullable[Fontset] = "moonbit_pango_font_map_load_fontset"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/method.FontMap.load_fontset.html).
pub fn FontMap::load_fontset(
self : FontMap,
context : &IContext,
desc : FontDescription,
language : Language,
) -> Fontset? {
let raw_result = moonbit_pango_font_map_load_fontset(
self,
context.as_context(),
desc,
language,
)
raw_result.to_option()
}
///|
#borrow(self_, font, context, variations)
extern "c" fn moonbit_pango_font_map_reload_font(
self_ : FontMap,
font : Font,
scale : Double,
context : @glib.Nullable[Context],
variations : @glib.Nullable[Bytes],
) -> Font = "moonbit_pango_font_map_reload_font"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/method.FontMap.reload_font.html).
pub fn FontMap::reload_font(
self : FontMap,
font : &IFont,
scale : Double,
context : &IContext?,
variations : String?,
) -> Font {
moonbit_pango_font_map_reload_font(
self,
font.as_font(),
scale,
match context {
Some(v) => @glib.Nullable::some(v.as_context())
None => @glib.Nullable::null()
},
match variations {
Some(s) => @glib.Nullable::some(@encoding/utf8.encode(s))
None => @glib.Nullable::null()
},
)
}
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/property.FontMap.n-items.html).
#borrow(self_)
pub extern "c" fn FontMap::get_n_items(self_ : FontMap) -> UInt = "moonbit_pango_font_map_get_n_items"
///|
impl IFontMap with fn add_font_file(self, filename) -> Bool raise @glib.Error_ {
self.as_font_map().add_font_file(filename)
}
///|
impl IFontMap with fn changed(self) -> Unit {
self.as_font_map().changed()
}
///|
impl IFontMap with fn create_context(self) -> Context {
self.as_font_map().create_context()
}
///|
impl IFontMap with fn get_family(self, name) -> FontFamily? {
self.as_font_map().get_family(name)
}
///|
impl IFontMap with fn get_serial(self) -> UInt {
self.as_font_map().get_serial()
}
///|
impl IFontMap with fn list_families(self) -> Array[FontFamily] {
self.as_font_map().list_families()
}
///|
impl IFontMap with fn load_font(self, context, desc) -> Font? {
self.as_font_map().load_font(context, desc)
}
///|
impl IFontMap with fn load_fontset(self, context, desc, language) -> Fontset? {
self.as_font_map().load_fontset(context, desc, language)
}
///|
impl IFontMap with fn reload_font(self, font, scale, context, variations) -> Font {
self.as_font_map().reload_font(font, scale, context, variations)
}
///|
pub fn FontMap::as_gobject_object(self : FontMap) -> @gobject.Object = "%identity"
///|
pub impl @gobject.IObject for FontMap with fn as_object(self) {
self.as_gobject_object()
}