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::Cast; 8 use glib::object::IsA; 9 use glib::signal::connect_raw; 10 use glib::signal::SignalHandlerId; 11 use glib::translate::*; 12 use glib::GString; 13 use glib_sys; 14 use libc; 15 use std::boxed::Box as Box_; 16 use std::fmt; 17 use std::mem::transmute; 18 19 glib_wrapper! { 20 pub struct ActionGroup(Interface<gio_sys::GActionGroup>); 21 22 match fn { 23 get_type => || gio_sys::g_action_group_get_type(), 24 } 25 } 26 27 pub const NONE_ACTION_GROUP: Option<&ActionGroup> = None; 28 29 pub trait ActionGroupExt: 'static { action_added(&self, action_name: &str)30 fn action_added(&self, action_name: &str); 31 action_enabled_changed(&self, action_name: &str, enabled: bool)32 fn action_enabled_changed(&self, action_name: &str, enabled: bool); 33 action_removed(&self, action_name: &str)34 fn action_removed(&self, action_name: &str); 35 action_state_changed(&self, action_name: &str, state: &glib::Variant)36 fn action_state_changed(&self, action_name: &str, state: &glib::Variant); 37 activate_action(&self, action_name: &str, parameter: Option<&glib::Variant>)38 fn activate_action(&self, action_name: &str, parameter: Option<&glib::Variant>); 39 change_action_state(&self, action_name: &str, value: &glib::Variant)40 fn change_action_state(&self, action_name: &str, value: &glib::Variant); 41 get_action_enabled(&self, action_name: &str) -> bool42 fn get_action_enabled(&self, action_name: &str) -> bool; 43 get_action_parameter_type(&self, action_name: &str) -> Option<glib::VariantType>44 fn get_action_parameter_type(&self, action_name: &str) -> Option<glib::VariantType>; 45 get_action_state(&self, action_name: &str) -> Option<glib::Variant>46 fn get_action_state(&self, action_name: &str) -> Option<glib::Variant>; 47 get_action_state_hint(&self, action_name: &str) -> Option<glib::Variant>48 fn get_action_state_hint(&self, action_name: &str) -> Option<glib::Variant>; 49 get_action_state_type(&self, action_name: &str) -> Option<glib::VariantType>50 fn get_action_state_type(&self, action_name: &str) -> Option<glib::VariantType>; 51 has_action(&self, action_name: &str) -> bool52 fn has_action(&self, action_name: &str) -> bool; 53 list_actions(&self) -> Vec<GString>54 fn list_actions(&self) -> Vec<GString>; 55 connect_action_added<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId56 fn connect_action_added<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId; 57 connect_action_enabled_changed<F: Fn(&Self, &str, bool) + 'static>( &self, f: F, ) -> SignalHandlerId58 fn connect_action_enabled_changed<F: Fn(&Self, &str, bool) + 'static>( 59 &self, 60 f: F, 61 ) -> SignalHandlerId; 62 connect_action_removed<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId63 fn connect_action_removed<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId; 64 connect_action_state_changed<F: Fn(&Self, &str, &glib::Variant) + 'static>( &self, f: F, ) -> SignalHandlerId65 fn connect_action_state_changed<F: Fn(&Self, &str, &glib::Variant) + 'static>( 66 &self, 67 f: F, 68 ) -> SignalHandlerId; 69 } 70 71 impl<O: IsA<ActionGroup>> ActionGroupExt for O { action_added(&self, action_name: &str)72 fn action_added(&self, action_name: &str) { 73 unsafe { 74 gio_sys::g_action_group_action_added( 75 self.as_ref().to_glib_none().0, 76 action_name.to_glib_none().0, 77 ); 78 } 79 } 80 action_enabled_changed(&self, action_name: &str, enabled: bool)81 fn action_enabled_changed(&self, action_name: &str, enabled: bool) { 82 unsafe { 83 gio_sys::g_action_group_action_enabled_changed( 84 self.as_ref().to_glib_none().0, 85 action_name.to_glib_none().0, 86 enabled.to_glib(), 87 ); 88 } 89 } 90 action_removed(&self, action_name: &str)91 fn action_removed(&self, action_name: &str) { 92 unsafe { 93 gio_sys::g_action_group_action_removed( 94 self.as_ref().to_glib_none().0, 95 action_name.to_glib_none().0, 96 ); 97 } 98 } 99 action_state_changed(&self, action_name: &str, state: &glib::Variant)100 fn action_state_changed(&self, action_name: &str, state: &glib::Variant) { 101 unsafe { 102 gio_sys::g_action_group_action_state_changed( 103 self.as_ref().to_glib_none().0, 104 action_name.to_glib_none().0, 105 state.to_glib_none().0, 106 ); 107 } 108 } 109 activate_action(&self, action_name: &str, parameter: Option<&glib::Variant>)110 fn activate_action(&self, action_name: &str, parameter: Option<&glib::Variant>) { 111 unsafe { 112 gio_sys::g_action_group_activate_action( 113 self.as_ref().to_glib_none().0, 114 action_name.to_glib_none().0, 115 parameter.to_glib_none().0, 116 ); 117 } 118 } 119 change_action_state(&self, action_name: &str, value: &glib::Variant)120 fn change_action_state(&self, action_name: &str, value: &glib::Variant) { 121 unsafe { 122 gio_sys::g_action_group_change_action_state( 123 self.as_ref().to_glib_none().0, 124 action_name.to_glib_none().0, 125 value.to_glib_none().0, 126 ); 127 } 128 } 129 get_action_enabled(&self, action_name: &str) -> bool130 fn get_action_enabled(&self, action_name: &str) -> bool { 131 unsafe { 132 from_glib(gio_sys::g_action_group_get_action_enabled( 133 self.as_ref().to_glib_none().0, 134 action_name.to_glib_none().0, 135 )) 136 } 137 } 138 get_action_parameter_type(&self, action_name: &str) -> Option<glib::VariantType>139 fn get_action_parameter_type(&self, action_name: &str) -> Option<glib::VariantType> { 140 unsafe { 141 from_glib_none(gio_sys::g_action_group_get_action_parameter_type( 142 self.as_ref().to_glib_none().0, 143 action_name.to_glib_none().0, 144 )) 145 } 146 } 147 get_action_state(&self, action_name: &str) -> Option<glib::Variant>148 fn get_action_state(&self, action_name: &str) -> Option<glib::Variant> { 149 unsafe { 150 from_glib_full(gio_sys::g_action_group_get_action_state( 151 self.as_ref().to_glib_none().0, 152 action_name.to_glib_none().0, 153 )) 154 } 155 } 156 get_action_state_hint(&self, action_name: &str) -> Option<glib::Variant>157 fn get_action_state_hint(&self, action_name: &str) -> Option<glib::Variant> { 158 unsafe { 159 from_glib_full(gio_sys::g_action_group_get_action_state_hint( 160 self.as_ref().to_glib_none().0, 161 action_name.to_glib_none().0, 162 )) 163 } 164 } 165 get_action_state_type(&self, action_name: &str) -> Option<glib::VariantType>166 fn get_action_state_type(&self, action_name: &str) -> Option<glib::VariantType> { 167 unsafe { 168 from_glib_none(gio_sys::g_action_group_get_action_state_type( 169 self.as_ref().to_glib_none().0, 170 action_name.to_glib_none().0, 171 )) 172 } 173 } 174 has_action(&self, action_name: &str) -> bool175 fn has_action(&self, action_name: &str) -> bool { 176 unsafe { 177 from_glib(gio_sys::g_action_group_has_action( 178 self.as_ref().to_glib_none().0, 179 action_name.to_glib_none().0, 180 )) 181 } 182 } 183 list_actions(&self) -> Vec<GString>184 fn list_actions(&self) -> Vec<GString> { 185 unsafe { 186 FromGlibPtrContainer::from_glib_full(gio_sys::g_action_group_list_actions( 187 self.as_ref().to_glib_none().0, 188 )) 189 } 190 } 191 connect_action_added<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId192 fn connect_action_added<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId { 193 unsafe extern "C" fn action_added_trampoline<P, F: Fn(&P, &str) + 'static>( 194 this: *mut gio_sys::GActionGroup, 195 action_name: *mut libc::c_char, 196 f: glib_sys::gpointer, 197 ) where 198 P: IsA<ActionGroup>, 199 { 200 let f: &F = &*(f as *const F); 201 f( 202 &ActionGroup::from_glib_borrow(this).unsafe_cast(), 203 &GString::from_glib_borrow(action_name), 204 ) 205 } 206 unsafe { 207 let f: Box_<F> = Box_::new(f); 208 connect_raw( 209 self.as_ptr() as *mut _, 210 b"action-added\0".as_ptr() as *const _, 211 Some(transmute(action_added_trampoline::<Self, F> as usize)), 212 Box_::into_raw(f), 213 ) 214 } 215 } 216 connect_action_enabled_changed<F: Fn(&Self, &str, bool) + 'static>( &self, f: F, ) -> SignalHandlerId217 fn connect_action_enabled_changed<F: Fn(&Self, &str, bool) + 'static>( 218 &self, 219 f: F, 220 ) -> SignalHandlerId { 221 unsafe extern "C" fn action_enabled_changed_trampoline<P, F: Fn(&P, &str, bool) + 'static>( 222 this: *mut gio_sys::GActionGroup, 223 action_name: *mut libc::c_char, 224 enabled: glib_sys::gboolean, 225 f: glib_sys::gpointer, 226 ) where 227 P: IsA<ActionGroup>, 228 { 229 let f: &F = &*(f as *const F); 230 f( 231 &ActionGroup::from_glib_borrow(this).unsafe_cast(), 232 &GString::from_glib_borrow(action_name), 233 from_glib(enabled), 234 ) 235 } 236 unsafe { 237 let f: Box_<F> = Box_::new(f); 238 connect_raw( 239 self.as_ptr() as *mut _, 240 b"action-enabled-changed\0".as_ptr() as *const _, 241 Some(transmute( 242 action_enabled_changed_trampoline::<Self, F> as usize, 243 )), 244 Box_::into_raw(f), 245 ) 246 } 247 } 248 connect_action_removed<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId249 fn connect_action_removed<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId { 250 unsafe extern "C" fn action_removed_trampoline<P, F: Fn(&P, &str) + 'static>( 251 this: *mut gio_sys::GActionGroup, 252 action_name: *mut libc::c_char, 253 f: glib_sys::gpointer, 254 ) where 255 P: IsA<ActionGroup>, 256 { 257 let f: &F = &*(f as *const F); 258 f( 259 &ActionGroup::from_glib_borrow(this).unsafe_cast(), 260 &GString::from_glib_borrow(action_name), 261 ) 262 } 263 unsafe { 264 let f: Box_<F> = Box_::new(f); 265 connect_raw( 266 self.as_ptr() as *mut _, 267 b"action-removed\0".as_ptr() as *const _, 268 Some(transmute(action_removed_trampoline::<Self, F> as usize)), 269 Box_::into_raw(f), 270 ) 271 } 272 } 273 connect_action_state_changed<F: Fn(&Self, &str, &glib::Variant) + 'static>( &self, f: F, ) -> SignalHandlerId274 fn connect_action_state_changed<F: Fn(&Self, &str, &glib::Variant) + 'static>( 275 &self, 276 f: F, 277 ) -> SignalHandlerId { 278 unsafe extern "C" fn action_state_changed_trampoline< 279 P, 280 F: Fn(&P, &str, &glib::Variant) + 'static, 281 >( 282 this: *mut gio_sys::GActionGroup, 283 action_name: *mut libc::c_char, 284 value: *mut glib_sys::GVariant, 285 f: glib_sys::gpointer, 286 ) where 287 P: IsA<ActionGroup>, 288 { 289 let f: &F = &*(f as *const F); 290 f( 291 &ActionGroup::from_glib_borrow(this).unsafe_cast(), 292 &GString::from_glib_borrow(action_name), 293 &from_glib_borrow(value), 294 ) 295 } 296 unsafe { 297 let f: Box_<F> = Box_::new(f); 298 connect_raw( 299 self.as_ptr() as *mut _, 300 b"action-state-changed\0".as_ptr() as *const _, 301 Some(transmute( 302 action_state_changed_trampoline::<Self, F> as usize, 303 )), 304 Box_::into_raw(f), 305 ) 306 } 307 } 308 } 309 310 impl fmt::Display for ActionGroup { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result311 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 312 write!(f, "ActionGroup") 313 } 314 } 315