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 gdk;
6 use gdk_sys;
7 use glib;
8 use glib::object::Cast;
9 use glib::object::IsA;
10 use glib::signal::connect_raw;
11 use glib::signal::SignalHandlerId;
12 use glib::translate::*;
13 use glib_sys;
14 use gobject_sys;
15 use gtk_sys;
16 use libc;
17 use std::boxed::Box as Box_;
18 use std::fmt;
19 use std::mem::transmute;
20 
21 glib_wrapper! {
22     pub struct AccelGroup(Object<gtk_sys::GtkAccelGroup, gtk_sys::GtkAccelGroupClass, AccelGroupClass>);
23 
24     match fn {
25         get_type => || gtk_sys::gtk_accel_group_get_type(),
26     }
27 }
28 
29 impl AccelGroup {
new() -> AccelGroup30     pub fn new() -> AccelGroup {
31         assert_initialized_main_thread!();
32         unsafe { from_glib_full(gtk_sys::gtk_accel_group_new()) }
33     }
34 
from_accel_closure(closure: &glib::Closure) -> Option<AccelGroup>35     pub fn from_accel_closure(closure: &glib::Closure) -> Option<AccelGroup> {
36         assert_initialized_main_thread!();
37         unsafe {
38             from_glib_none(gtk_sys::gtk_accel_group_from_accel_closure(
39                 closure.to_glib_none().0,
40             ))
41         }
42     }
43 }
44 
45 impl Default for AccelGroup {
default() -> Self46     fn default() -> Self {
47         Self::new()
48     }
49 }
50 
51 pub const NONE_ACCEL_GROUP: Option<&AccelGroup> = None;
52 
53 pub trait AccelGroupExt: 'static {
activate<P: IsA<glib::Object>>( &self, accel_quark: glib::Quark, acceleratable: &P, accel_key: u32, accel_mods: gdk::ModifierType, ) -> bool54     fn activate<P: IsA<glib::Object>>(
55         &self,
56         accel_quark: glib::Quark,
57         acceleratable: &P,
58         accel_key: u32,
59         accel_mods: gdk::ModifierType,
60     ) -> bool;
61 
disconnect(&self, closure: Option<&glib::Closure>) -> bool62     fn disconnect(&self, closure: Option<&glib::Closure>) -> bool;
63 
disconnect_key(&self, accel_key: u32, accel_mods: gdk::ModifierType) -> bool64     fn disconnect_key(&self, accel_key: u32, accel_mods: gdk::ModifierType) -> bool;
65 
66     //fn find(&self, find_func: /*Unimplemented*/FnMut(/*Ignored*/AccelKey, &glib::Closure) -> bool, data: /*Unimplemented*/Option<Fundamental: Pointer>) -> /*Ignored*/Option<AccelKey>;
67 
get_is_locked(&self) -> bool68     fn get_is_locked(&self) -> bool;
69 
get_modifier_mask(&self) -> gdk::ModifierType70     fn get_modifier_mask(&self) -> gdk::ModifierType;
71 
lock(&self)72     fn lock(&self);
73 
unlock(&self)74     fn unlock(&self);
75 
connect_accel_activate< F: Fn(&Self, &glib::Object, u32, gdk::ModifierType) -> bool + 'static, >( &self, f: F, ) -> SignalHandlerId76     fn connect_accel_activate<
77         F: Fn(&Self, &glib::Object, u32, gdk::ModifierType) -> bool + 'static,
78     >(
79         &self,
80         f: F,
81     ) -> SignalHandlerId;
82 
connect_accel_changed<F: Fn(&Self, u32, gdk::ModifierType, &glib::Closure) + 'static>( &self, f: F, ) -> SignalHandlerId83     fn connect_accel_changed<F: Fn(&Self, u32, gdk::ModifierType, &glib::Closure) + 'static>(
84         &self,
85         f: F,
86     ) -> SignalHandlerId;
87 
connect_property_is_locked_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId88     fn connect_property_is_locked_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
89 
connect_property_modifier_mask_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId90     fn connect_property_modifier_mask_notify<F: Fn(&Self) + 'static>(
91         &self,
92         f: F,
93     ) -> SignalHandlerId;
94 }
95 
96 impl<O: IsA<AccelGroup>> AccelGroupExt for O {
activate<P: IsA<glib::Object>>( &self, accel_quark: glib::Quark, acceleratable: &P, accel_key: u32, accel_mods: gdk::ModifierType, ) -> bool97     fn activate<P: IsA<glib::Object>>(
98         &self,
99         accel_quark: glib::Quark,
100         acceleratable: &P,
101         accel_key: u32,
102         accel_mods: gdk::ModifierType,
103     ) -> bool {
104         unsafe {
105             from_glib(gtk_sys::gtk_accel_group_activate(
106                 self.as_ref().to_glib_none().0,
107                 accel_quark.to_glib(),
108                 acceleratable.as_ref().to_glib_none().0,
109                 accel_key,
110                 accel_mods.to_glib(),
111             ))
112         }
113     }
114 
disconnect(&self, closure: Option<&glib::Closure>) -> bool115     fn disconnect(&self, closure: Option<&glib::Closure>) -> bool {
116         unsafe {
117             from_glib(gtk_sys::gtk_accel_group_disconnect(
118                 self.as_ref().to_glib_none().0,
119                 closure.to_glib_none().0,
120             ))
121         }
122     }
123 
disconnect_key(&self, accel_key: u32, accel_mods: gdk::ModifierType) -> bool124     fn disconnect_key(&self, accel_key: u32, accel_mods: gdk::ModifierType) -> bool {
125         unsafe {
126             from_glib(gtk_sys::gtk_accel_group_disconnect_key(
127                 self.as_ref().to_glib_none().0,
128                 accel_key,
129                 accel_mods.to_glib(),
130             ))
131         }
132     }
133 
134     //fn find(&self, find_func: /*Unimplemented*/FnMut(/*Ignored*/AccelKey, &glib::Closure) -> bool, data: /*Unimplemented*/Option<Fundamental: Pointer>) -> /*Ignored*/Option<AccelKey> {
135     //    unsafe { TODO: call gtk_sys:gtk_accel_group_find() }
136     //}
137 
get_is_locked(&self) -> bool138     fn get_is_locked(&self) -> bool {
139         unsafe {
140             from_glib(gtk_sys::gtk_accel_group_get_is_locked(
141                 self.as_ref().to_glib_none().0,
142             ))
143         }
144     }
145 
get_modifier_mask(&self) -> gdk::ModifierType146     fn get_modifier_mask(&self) -> gdk::ModifierType {
147         unsafe {
148             from_glib(gtk_sys::gtk_accel_group_get_modifier_mask(
149                 self.as_ref().to_glib_none().0,
150             ))
151         }
152     }
153 
lock(&self)154     fn lock(&self) {
155         unsafe {
156             gtk_sys::gtk_accel_group_lock(self.as_ref().to_glib_none().0);
157         }
158     }
159 
unlock(&self)160     fn unlock(&self) {
161         unsafe {
162             gtk_sys::gtk_accel_group_unlock(self.as_ref().to_glib_none().0);
163         }
164     }
165 
connect_accel_activate< F: Fn(&Self, &glib::Object, u32, gdk::ModifierType) -> bool + 'static, >( &self, f: F, ) -> SignalHandlerId166     fn connect_accel_activate<
167         F: Fn(&Self, &glib::Object, u32, gdk::ModifierType) -> bool + 'static,
168     >(
169         &self,
170         f: F,
171     ) -> SignalHandlerId {
172         unsafe extern "C" fn accel_activate_trampoline<
173             P,
174             F: Fn(&P, &glib::Object, u32, gdk::ModifierType) -> bool + 'static,
175         >(
176             this: *mut gtk_sys::GtkAccelGroup,
177             acceleratable: *mut gobject_sys::GObject,
178             keyval: libc::c_uint,
179             modifier: gdk_sys::GdkModifierType,
180             f: glib_sys::gpointer,
181         ) -> glib_sys::gboolean
182         where
183             P: IsA<AccelGroup>,
184         {
185             let f: &F = &*(f as *const F);
186             f(
187                 &AccelGroup::from_glib_borrow(this).unsafe_cast(),
188                 &from_glib_borrow(acceleratable),
189                 keyval,
190                 from_glib(modifier),
191             )
192             .to_glib()
193         }
194         unsafe {
195             let f: Box_<F> = Box_::new(f);
196             connect_raw(
197                 self.as_ptr() as *mut _,
198                 b"accel-activate\0".as_ptr() as *const _,
199                 Some(transmute(accel_activate_trampoline::<Self, F> as usize)),
200                 Box_::into_raw(f),
201             )
202         }
203     }
204 
connect_accel_changed<F: Fn(&Self, u32, gdk::ModifierType, &glib::Closure) + 'static>( &self, f: F, ) -> SignalHandlerId205     fn connect_accel_changed<F: Fn(&Self, u32, gdk::ModifierType, &glib::Closure) + 'static>(
206         &self,
207         f: F,
208     ) -> SignalHandlerId {
209         unsafe extern "C" fn accel_changed_trampoline<
210             P,
211             F: Fn(&P, u32, gdk::ModifierType, &glib::Closure) + 'static,
212         >(
213             this: *mut gtk_sys::GtkAccelGroup,
214             keyval: libc::c_uint,
215             modifier: gdk_sys::GdkModifierType,
216             accel_closure: *mut gobject_sys::GClosure,
217             f: glib_sys::gpointer,
218         ) where
219             P: IsA<AccelGroup>,
220         {
221             let f: &F = &*(f as *const F);
222             f(
223                 &AccelGroup::from_glib_borrow(this).unsafe_cast(),
224                 keyval,
225                 from_glib(modifier),
226                 &from_glib_borrow(accel_closure),
227             )
228         }
229         unsafe {
230             let f: Box_<F> = Box_::new(f);
231             connect_raw(
232                 self.as_ptr() as *mut _,
233                 b"accel-changed\0".as_ptr() as *const _,
234                 Some(transmute(accel_changed_trampoline::<Self, F> as usize)),
235                 Box_::into_raw(f),
236             )
237         }
238     }
239 
connect_property_is_locked_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId240     fn connect_property_is_locked_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
241         unsafe extern "C" fn notify_is_locked_trampoline<P, F: Fn(&P) + 'static>(
242             this: *mut gtk_sys::GtkAccelGroup,
243             _param_spec: glib_sys::gpointer,
244             f: glib_sys::gpointer,
245         ) where
246             P: IsA<AccelGroup>,
247         {
248             let f: &F = &*(f as *const F);
249             f(&AccelGroup::from_glib_borrow(this).unsafe_cast())
250         }
251         unsafe {
252             let f: Box_<F> = Box_::new(f);
253             connect_raw(
254                 self.as_ptr() as *mut _,
255                 b"notify::is-locked\0".as_ptr() as *const _,
256                 Some(transmute(notify_is_locked_trampoline::<Self, F> as usize)),
257                 Box_::into_raw(f),
258             )
259         }
260     }
261 
connect_property_modifier_mask_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId262     fn connect_property_modifier_mask_notify<F: Fn(&Self) + 'static>(
263         &self,
264         f: F,
265     ) -> SignalHandlerId {
266         unsafe extern "C" fn notify_modifier_mask_trampoline<P, F: Fn(&P) + 'static>(
267             this: *mut gtk_sys::GtkAccelGroup,
268             _param_spec: glib_sys::gpointer,
269             f: glib_sys::gpointer,
270         ) where
271             P: IsA<AccelGroup>,
272         {
273             let f: &F = &*(f as *const F);
274             f(&AccelGroup::from_glib_borrow(this).unsafe_cast())
275         }
276         unsafe {
277             let f: Box_<F> = Box_::new(f);
278             connect_raw(
279                 self.as_ptr() as *mut _,
280                 b"notify::modifier-mask\0".as_ptr() as *const _,
281                 Some(transmute(
282                     notify_modifier_mask_trampoline::<Self, F> as usize,
283                 )),
284                 Box_::into_raw(f),
285             )
286         }
287     }
288 }
289 
290 impl fmt::Display for AccelGroup {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result291     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
292         write!(f, "AccelGroup")
293     }
294 }
295