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