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 std::boxed::Box as Box_; 15 use std::fmt; 16 use std::mem::transmute; 17 use std::ptr; 18 19 glib_wrapper! { 20 pub struct Action(Interface<gio_sys::GAction>); 21 22 match fn { 23 get_type => || gio_sys::g_action_get_type(), 24 } 25 } 26 27 impl Action { name_is_valid(action_name: &str) -> bool28 pub fn name_is_valid(action_name: &str) -> bool { 29 unsafe { 30 from_glib(gio_sys::g_action_name_is_valid( 31 action_name.to_glib_none().0, 32 )) 33 } 34 } 35 parse_detailed_name( detailed_name: &str, ) -> Result<(GString, glib::Variant), glib::Error>36 pub fn parse_detailed_name( 37 detailed_name: &str, 38 ) -> Result<(GString, glib::Variant), glib::Error> { 39 unsafe { 40 let mut action_name = ptr::null_mut(); 41 let mut target_value = ptr::null_mut(); 42 let mut error = ptr::null_mut(); 43 let _ = gio_sys::g_action_parse_detailed_name( 44 detailed_name.to_glib_none().0, 45 &mut action_name, 46 &mut target_value, 47 &mut error, 48 ); 49 if error.is_null() { 50 Ok((from_glib_full(action_name), from_glib_full(target_value))) 51 } else { 52 Err(from_glib_full(error)) 53 } 54 } 55 } 56 print_detailed_name( action_name: &str, target_value: Option<&glib::Variant>, ) -> Option<GString>57 pub fn print_detailed_name( 58 action_name: &str, 59 target_value: Option<&glib::Variant>, 60 ) -> Option<GString> { 61 unsafe { 62 from_glib_full(gio_sys::g_action_print_detailed_name( 63 action_name.to_glib_none().0, 64 target_value.to_glib_none().0, 65 )) 66 } 67 } 68 } 69 70 pub const NONE_ACTION: Option<&Action> = None; 71 72 pub trait ActionExt: 'static { activate(&self, parameter: Option<&glib::Variant>)73 fn activate(&self, parameter: Option<&glib::Variant>); 74 change_state(&self, value: &glib::Variant)75 fn change_state(&self, value: &glib::Variant); 76 get_enabled(&self) -> bool77 fn get_enabled(&self) -> bool; 78 get_name(&self) -> Option<GString>79 fn get_name(&self) -> Option<GString>; 80 get_parameter_type(&self) -> Option<glib::VariantType>81 fn get_parameter_type(&self) -> Option<glib::VariantType>; 82 get_state(&self) -> Option<glib::Variant>83 fn get_state(&self) -> Option<glib::Variant>; 84 get_state_hint(&self) -> Option<glib::Variant>85 fn get_state_hint(&self) -> Option<glib::Variant>; 86 get_state_type(&self) -> Option<glib::VariantType>87 fn get_state_type(&self) -> Option<glib::VariantType>; 88 connect_property_enabled_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId89 fn connect_property_enabled_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 90 connect_property_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId91 fn connect_property_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 92 connect_property_parameter_type_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId93 fn connect_property_parameter_type_notify<F: Fn(&Self) + 'static>( 94 &self, 95 f: F, 96 ) -> SignalHandlerId; 97 connect_property_state_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId98 fn connect_property_state_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 99 connect_property_state_type_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId100 fn connect_property_state_type_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 101 } 102 103 impl<O: IsA<Action>> ActionExt for O { activate(&self, parameter: Option<&glib::Variant>)104 fn activate(&self, parameter: Option<&glib::Variant>) { 105 unsafe { 106 gio_sys::g_action_activate(self.as_ref().to_glib_none().0, parameter.to_glib_none().0); 107 } 108 } 109 change_state(&self, value: &glib::Variant)110 fn change_state(&self, value: &glib::Variant) { 111 unsafe { 112 gio_sys::g_action_change_state(self.as_ref().to_glib_none().0, value.to_glib_none().0); 113 } 114 } 115 get_enabled(&self) -> bool116 fn get_enabled(&self) -> bool { 117 unsafe { 118 from_glib(gio_sys::g_action_get_enabled( 119 self.as_ref().to_glib_none().0, 120 )) 121 } 122 } 123 get_name(&self) -> Option<GString>124 fn get_name(&self) -> Option<GString> { 125 unsafe { from_glib_none(gio_sys::g_action_get_name(self.as_ref().to_glib_none().0)) } 126 } 127 get_parameter_type(&self) -> Option<glib::VariantType>128 fn get_parameter_type(&self) -> Option<glib::VariantType> { 129 unsafe { 130 from_glib_none(gio_sys::g_action_get_parameter_type( 131 self.as_ref().to_glib_none().0, 132 )) 133 } 134 } 135 get_state(&self) -> Option<glib::Variant>136 fn get_state(&self) -> Option<glib::Variant> { 137 unsafe { from_glib_full(gio_sys::g_action_get_state(self.as_ref().to_glib_none().0)) } 138 } 139 get_state_hint(&self) -> Option<glib::Variant>140 fn get_state_hint(&self) -> Option<glib::Variant> { 141 unsafe { 142 from_glib_full(gio_sys::g_action_get_state_hint( 143 self.as_ref().to_glib_none().0, 144 )) 145 } 146 } 147 get_state_type(&self) -> Option<glib::VariantType>148 fn get_state_type(&self) -> Option<glib::VariantType> { 149 unsafe { 150 from_glib_none(gio_sys::g_action_get_state_type( 151 self.as_ref().to_glib_none().0, 152 )) 153 } 154 } 155 connect_property_enabled_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId156 fn connect_property_enabled_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 157 unsafe extern "C" fn notify_enabled_trampoline<P, F: Fn(&P) + 'static>( 158 this: *mut gio_sys::GAction, 159 _param_spec: glib_sys::gpointer, 160 f: glib_sys::gpointer, 161 ) where 162 P: IsA<Action>, 163 { 164 let f: &F = &*(f as *const F); 165 f(&Action::from_glib_borrow(this).unsafe_cast()) 166 } 167 unsafe { 168 let f: Box_<F> = Box_::new(f); 169 connect_raw( 170 self.as_ptr() as *mut _, 171 b"notify::enabled\0".as_ptr() as *const _, 172 Some(transmute(notify_enabled_trampoline::<Self, F> as usize)), 173 Box_::into_raw(f), 174 ) 175 } 176 } 177 connect_property_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId178 fn connect_property_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 179 unsafe extern "C" fn notify_name_trampoline<P, F: Fn(&P) + 'static>( 180 this: *mut gio_sys::GAction, 181 _param_spec: glib_sys::gpointer, 182 f: glib_sys::gpointer, 183 ) where 184 P: IsA<Action>, 185 { 186 let f: &F = &*(f as *const F); 187 f(&Action::from_glib_borrow(this).unsafe_cast()) 188 } 189 unsafe { 190 let f: Box_<F> = Box_::new(f); 191 connect_raw( 192 self.as_ptr() as *mut _, 193 b"notify::name\0".as_ptr() as *const _, 194 Some(transmute(notify_name_trampoline::<Self, F> as usize)), 195 Box_::into_raw(f), 196 ) 197 } 198 } 199 connect_property_parameter_type_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId200 fn connect_property_parameter_type_notify<F: Fn(&Self) + 'static>( 201 &self, 202 f: F, 203 ) -> SignalHandlerId { 204 unsafe extern "C" fn notify_parameter_type_trampoline<P, F: Fn(&P) + 'static>( 205 this: *mut gio_sys::GAction, 206 _param_spec: glib_sys::gpointer, 207 f: glib_sys::gpointer, 208 ) where 209 P: IsA<Action>, 210 { 211 let f: &F = &*(f as *const F); 212 f(&Action::from_glib_borrow(this).unsafe_cast()) 213 } 214 unsafe { 215 let f: Box_<F> = Box_::new(f); 216 connect_raw( 217 self.as_ptr() as *mut _, 218 b"notify::parameter-type\0".as_ptr() as *const _, 219 Some(transmute( 220 notify_parameter_type_trampoline::<Self, F> as usize, 221 )), 222 Box_::into_raw(f), 223 ) 224 } 225 } 226 connect_property_state_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId227 fn connect_property_state_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 228 unsafe extern "C" fn notify_state_trampoline<P, F: Fn(&P) + 'static>( 229 this: *mut gio_sys::GAction, 230 _param_spec: glib_sys::gpointer, 231 f: glib_sys::gpointer, 232 ) where 233 P: IsA<Action>, 234 { 235 let f: &F = &*(f as *const F); 236 f(&Action::from_glib_borrow(this).unsafe_cast()) 237 } 238 unsafe { 239 let f: Box_<F> = Box_::new(f); 240 connect_raw( 241 self.as_ptr() as *mut _, 242 b"notify::state\0".as_ptr() as *const _, 243 Some(transmute(notify_state_trampoline::<Self, F> as usize)), 244 Box_::into_raw(f), 245 ) 246 } 247 } 248 connect_property_state_type_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId249 fn connect_property_state_type_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 250 unsafe extern "C" fn notify_state_type_trampoline<P, F: Fn(&P) + 'static>( 251 this: *mut gio_sys::GAction, 252 _param_spec: glib_sys::gpointer, 253 f: glib_sys::gpointer, 254 ) where 255 P: IsA<Action>, 256 { 257 let f: &F = &*(f as *const F); 258 f(&Action::from_glib_borrow(this).unsafe_cast()) 259 } 260 unsafe { 261 let f: Box_<F> = Box_::new(f); 262 connect_raw( 263 self.as_ptr() as *mut _, 264 b"notify::state-type\0".as_ptr() as *const _, 265 Some(transmute(notify_state_type_trampoline::<Self, F> as usize)), 266 Box_::into_raw(f), 267 ) 268 } 269 } 270 } 271 272 impl fmt::Display for Action { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result273 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 274 write!(f, "Action") 275 } 276 } 277