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 std::fmt; 10 use Icon; 11 use MenuModel; 12 13 glib_wrapper! { 14 pub struct MenuItem(Object<gio_sys::GMenuItem, MenuItemClass>); 15 16 match fn { 17 get_type => || gio_sys::g_menu_item_get_type(), 18 } 19 } 20 21 impl MenuItem { new(label: Option<&str>, detailed_action: Option<&str>) -> MenuItem22 pub fn new(label: Option<&str>, detailed_action: Option<&str>) -> MenuItem { 23 unsafe { 24 from_glib_full(gio_sys::g_menu_item_new( 25 label.to_glib_none().0, 26 detailed_action.to_glib_none().0, 27 )) 28 } 29 } 30 new_from_model<P: IsA<MenuModel>>(model: &P, item_index: i32) -> MenuItem31 pub fn new_from_model<P: IsA<MenuModel>>(model: &P, item_index: i32) -> MenuItem { 32 unsafe { 33 from_glib_full(gio_sys::g_menu_item_new_from_model( 34 model.as_ref().to_glib_none().0, 35 item_index, 36 )) 37 } 38 } 39 new_section<P: IsA<MenuModel>>(label: Option<&str>, section: &P) -> MenuItem40 pub fn new_section<P: IsA<MenuModel>>(label: Option<&str>, section: &P) -> MenuItem { 41 unsafe { 42 from_glib_full(gio_sys::g_menu_item_new_section( 43 label.to_glib_none().0, 44 section.as_ref().to_glib_none().0, 45 )) 46 } 47 } 48 new_submenu<P: IsA<MenuModel>>(label: Option<&str>, submenu: &P) -> MenuItem49 pub fn new_submenu<P: IsA<MenuModel>>(label: Option<&str>, submenu: &P) -> MenuItem { 50 unsafe { 51 from_glib_full(gio_sys::g_menu_item_new_submenu( 52 label.to_glib_none().0, 53 submenu.as_ref().to_glib_none().0, 54 )) 55 } 56 } 57 58 //pub fn get_attribute(&self, attribute: &str, format_string: &str, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) -> bool { 59 // unsafe { TODO: call gio_sys:g_menu_item_get_attribute() } 60 //} 61 get_attribute_value( &self, attribute: &str, expected_type: Option<&glib::VariantTy>, ) -> Option<glib::Variant>62 pub fn get_attribute_value( 63 &self, 64 attribute: &str, 65 expected_type: Option<&glib::VariantTy>, 66 ) -> Option<glib::Variant> { 67 unsafe { 68 from_glib_full(gio_sys::g_menu_item_get_attribute_value( 69 self.to_glib_none().0, 70 attribute.to_glib_none().0, 71 expected_type.to_glib_none().0, 72 )) 73 } 74 } 75 get_link(&self, link: &str) -> Option<MenuModel>76 pub fn get_link(&self, link: &str) -> Option<MenuModel> { 77 unsafe { 78 from_glib_full(gio_sys::g_menu_item_get_link( 79 self.to_glib_none().0, 80 link.to_glib_none().0, 81 )) 82 } 83 } 84 85 //pub fn set_action_and_target(&self, action: Option<&str>, format_string: Option<&str>, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) { 86 // unsafe { TODO: call gio_sys:g_menu_item_set_action_and_target() } 87 //} 88 set_action_and_target_value( &self, action: Option<&str>, target_value: Option<&glib::Variant>, )89 pub fn set_action_and_target_value( 90 &self, 91 action: Option<&str>, 92 target_value: Option<&glib::Variant>, 93 ) { 94 unsafe { 95 gio_sys::g_menu_item_set_action_and_target_value( 96 self.to_glib_none().0, 97 action.to_glib_none().0, 98 target_value.to_glib_none().0, 99 ); 100 } 101 } 102 103 //pub fn set_attribute(&self, attribute: &str, format_string: Option<&str>, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) { 104 // unsafe { TODO: call gio_sys:g_menu_item_set_attribute() } 105 //} 106 set_attribute_value(&self, attribute: &str, value: Option<&glib::Variant>)107 pub fn set_attribute_value(&self, attribute: &str, value: Option<&glib::Variant>) { 108 unsafe { 109 gio_sys::g_menu_item_set_attribute_value( 110 self.to_glib_none().0, 111 attribute.to_glib_none().0, 112 value.to_glib_none().0, 113 ); 114 } 115 } 116 set_detailed_action(&self, detailed_action: &str)117 pub fn set_detailed_action(&self, detailed_action: &str) { 118 unsafe { 119 gio_sys::g_menu_item_set_detailed_action( 120 self.to_glib_none().0, 121 detailed_action.to_glib_none().0, 122 ); 123 } 124 } 125 set_icon<P: IsA<Icon>>(&self, icon: &P)126 pub fn set_icon<P: IsA<Icon>>(&self, icon: &P) { 127 unsafe { 128 gio_sys::g_menu_item_set_icon(self.to_glib_none().0, icon.as_ref().to_glib_none().0); 129 } 130 } 131 set_label(&self, label: Option<&str>)132 pub fn set_label(&self, label: Option<&str>) { 133 unsafe { 134 gio_sys::g_menu_item_set_label(self.to_glib_none().0, label.to_glib_none().0); 135 } 136 } 137 set_link<P: IsA<MenuModel>>(&self, link: &str, model: Option<&P>)138 pub fn set_link<P: IsA<MenuModel>>(&self, link: &str, model: Option<&P>) { 139 unsafe { 140 gio_sys::g_menu_item_set_link( 141 self.to_glib_none().0, 142 link.to_glib_none().0, 143 model.map(|p| p.as_ref()).to_glib_none().0, 144 ); 145 } 146 } 147 set_section<P: IsA<MenuModel>>(&self, section: Option<&P>)148 pub fn set_section<P: IsA<MenuModel>>(&self, section: Option<&P>) { 149 unsafe { 150 gio_sys::g_menu_item_set_section( 151 self.to_glib_none().0, 152 section.map(|p| p.as_ref()).to_glib_none().0, 153 ); 154 } 155 } 156 set_submenu<P: IsA<MenuModel>>(&self, submenu: Option<&P>)157 pub fn set_submenu<P: IsA<MenuModel>>(&self, submenu: Option<&P>) { 158 unsafe { 159 gio_sys::g_menu_item_set_submenu( 160 self.to_glib_none().0, 161 submenu.map(|p| p.as_ref()).to_glib_none().0, 162 ); 163 } 164 } 165 } 166 167 impl fmt::Display for MenuItem { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result168 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 169 write!(f, "MenuItem") 170 } 171 } 172