mod a11y;
pub mod ffi;
pub mod links;
pub mod measure;
pub mod message_ffi;
#[cfg(feature = "mirc")]
pub mod mirc_ffi;
pub mod view;
pub const GETTEXT_DOMAIN: &str = "rotulus";
pub(crate) fn tr(s: &str) -> String {
use std::ffi::{c_char, CStr, CString};
extern "C" {
fn dgettext(domain: *const c_char, msgid: *const c_char) -> *mut c_char;
}
let (Ok(domain), Ok(c)) = (CString::new(GETTEXT_DOMAIN), CString::new(s)) else {
return s.to_owned();
};
unsafe {
let p = dgettext(domain.as_ptr(), c.as_ptr());
if p.is_null() {
return s.to_owned();
}
CStr::from_ptr(p).to_string_lossy().into_owned()
}
}
pub(crate) fn ensure_gtk_init() {
if gtk4::is_initialized() {
return;
}
if unsafe { gtk4::ffi::gtk_is_initialized() } != 0 {
unsafe { gtk4::set_initialized() };
}
}
#[cfg(test)]
mod tests;
pub use measure::PangoMeasure;
pub use view::{AvatarFunc, LoadDirection, RotulusView};