1use gio_sys;
6use glib::object::IsA;
7use glib::translate::*;
8use std::fmt;
9use EmblemOrigin;
10use Icon;
11
12glib_wrapper! {
13 pub struct Emblem(Object<gio_sys::GEmblem, gio_sys::GEmblemClass, EmblemClass>) @implements Icon;
14
15 match fn {
16 get_type => || gio_sys::g_emblem_get_type(),
17 }
18}
19
20impl Emblem {
21 pub fn new<P: IsA<Icon>>(icon: &P) -> Emblem {
22 unsafe { from_glib_full(gio_sys::g_emblem_new(icon.as_ref().to_glib_none().0)) }
23 }
24
25 pub fn new_with_origin<P: IsA<Icon>>(icon: &P, origin: EmblemOrigin) -> Emblem {
26 unsafe {
27 from_glib_full(gio_sys::g_emblem_new_with_origin(
28 icon.as_ref().to_glib_none().0,
29 origin.to_glib(),
30 ))
31 }
32 }
33
34 pub fn get_icon(&self) -> Option<Icon> {
35 unsafe { from_glib_none(gio_sys::g_emblem_get_icon(self.to_glib_none().0)) }
36 }
37
38 pub fn get_origin(&self) -> EmblemOrigin {
39 unsafe { from_glib(gio_sys::g_emblem_get_origin(self.to_glib_none().0)) }
40 }
41}
42
43impl fmt::Display for Emblem {
44 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
45 write!(f, "Emblem")
46 }
47}