1 // This file was generated by gir (https://github.com/gtk-rs/gir) 2 // from gir-files (https://github.com/gtk-rs/gir-files) 3 // DO NOT EDIT 4 5 use gio_sys; 6 use glib; 7 use glib::object::IsA; 8 use glib::translate::*; 9 use glib::GString; 10 use std::fmt; 11 use std::ptr; 12 13 glib_wrapper! { 14 pub struct MenuAttributeIter(Object<gio_sys::GMenuAttributeIter, gio_sys::GMenuAttributeIterClass, MenuAttributeIterClass>); 15 16 match fn { 17 get_type => || gio_sys::g_menu_attribute_iter_get_type(), 18 } 19 } 20 21 pub const NONE_MENU_ATTRIBUTE_ITER: Option<&MenuAttributeIter> = None; 22 23 pub trait MenuAttributeIterExt: 'static { get_name(&self) -> Option<GString>24 fn get_name(&self) -> Option<GString>; 25 get_next(&self) -> Option<(GString, glib::Variant)>26 fn get_next(&self) -> Option<(GString, glib::Variant)>; 27 get_value(&self) -> Option<glib::Variant>28 fn get_value(&self) -> Option<glib::Variant>; 29 next(&self) -> bool30 fn next(&self) -> bool; 31 } 32 33 impl<O: IsA<MenuAttributeIter>> MenuAttributeIterExt for O { get_name(&self) -> Option<GString>34 fn get_name(&self) -> Option<GString> { 35 unsafe { 36 from_glib_none(gio_sys::g_menu_attribute_iter_get_name( 37 self.as_ref().to_glib_none().0, 38 )) 39 } 40 } 41 get_next(&self) -> Option<(GString, glib::Variant)>42 fn get_next(&self) -> Option<(GString, glib::Variant)> { 43 unsafe { 44 let mut out_name = ptr::null(); 45 let mut value = ptr::null_mut(); 46 let ret = from_glib(gio_sys::g_menu_attribute_iter_get_next( 47 self.as_ref().to_glib_none().0, 48 &mut out_name, 49 &mut value, 50 )); 51 if ret { 52 Some((from_glib_none(out_name), from_glib_full(value))) 53 } else { 54 None 55 } 56 } 57 } 58 get_value(&self) -> Option<glib::Variant>59 fn get_value(&self) -> Option<glib::Variant> { 60 unsafe { 61 from_glib_full(gio_sys::g_menu_attribute_iter_get_value( 62 self.as_ref().to_glib_none().0, 63 )) 64 } 65 } 66 next(&self) -> bool67 fn next(&self) -> bool { 68 unsafe { 69 from_glib(gio_sys::g_menu_attribute_iter_next( 70 self.as_ref().to_glib_none().0, 71 )) 72 } 73 } 74 } 75 76 impl fmt::Display for MenuAttributeIter { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result77 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 78 write!(f, "MenuAttributeIter") 79 } 80 } 81