1use crate::{ffi, EmblemOrigin, Icon};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[doc(alias = "GEmblem")]
10 pub struct Emblem(Object<ffi::GEmblem, ffi::GEmblemClass>) @implements Icon;
11
12 match fn {
13 type_ => || ffi::g_emblem_get_type(),
14 }
15}
16
17impl Emblem {
18 #[doc(alias = "g_emblem_new")]
19 pub fn new(icon: &impl IsA<Icon>) -> Emblem {
20 unsafe { from_glib_full(ffi::g_emblem_new(icon.as_ref().to_glib_none().0)) }
21 }
22
23 #[doc(alias = "g_emblem_new_with_origin")]
24 #[doc(alias = "new_with_origin")]
25 pub fn with_origin(icon: &impl IsA<Icon>, origin: EmblemOrigin) -> Emblem {
26 unsafe {
27 from_glib_full(ffi::g_emblem_new_with_origin(
28 icon.as_ref().to_glib_none().0,
29 origin.into_glib(),
30 ))
31 }
32 }
33
34 #[doc(alias = "g_emblem_get_icon")]
35 #[doc(alias = "get_icon")]
36 pub fn icon(&self) -> Icon {
37 unsafe { from_glib_none(ffi::g_emblem_get_icon(self.to_glib_none().0)) }
38 }
39
40 #[doc(alias = "g_emblem_get_origin")]
41 #[doc(alias = "get_origin")]
42 pub fn origin(&self) -> EmblemOrigin {
43 unsafe { from_glib(ffi::g_emblem_get_origin(self.to_glib_none().0)) }
44 }
45}