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 glib;
6 use glib::object::Cast;
7 use glib::object::IsA;
8 use glib::signal::connect_raw;
9 use glib::signal::SignalHandlerId;
10 use glib::translate::*;
11 use glib::GString;
12 use glib_sys;
13 use gtk_sys;
14 use std::boxed::Box as Box_;
15 use std::fmt;
16 use std::mem::transmute;
17 use std::ptr;
18 use Application;
19 use Widget;
20 
21 glib_wrapper! {
22     pub struct Builder(Object<gtk_sys::GtkBuilder, gtk_sys::GtkBuilderClass, BuilderClass>);
23 
24     match fn {
25         get_type => || gtk_sys::gtk_builder_get_type(),
26     }
27 }
28 
29 impl Builder {
new() -> Builder30     pub fn new() -> Builder {
31         assert_initialized_main_thread!();
32         unsafe { from_glib_full(gtk_sys::gtk_builder_new()) }
33     }
34 
new_from_resource(resource_path: &str) -> Builder35     pub fn new_from_resource(resource_path: &str) -> Builder {
36         assert_initialized_main_thread!();
37         unsafe {
38             from_glib_full(gtk_sys::gtk_builder_new_from_resource(
39                 resource_path.to_glib_none().0,
40             ))
41         }
42     }
43 
new_from_string(string: &str) -> Builder44     pub fn new_from_string(string: &str) -> Builder {
45         assert_initialized_main_thread!();
46         let length = string.len() as isize;
47         unsafe {
48             from_glib_full(gtk_sys::gtk_builder_new_from_string(
49                 string.to_glib_none().0,
50                 length,
51             ))
52         }
53     }
54 }
55 
56 impl Default for Builder {
default() -> Self57     fn default() -> Self {
58         Self::new()
59     }
60 }
61 
62 pub const NONE_BUILDER: Option<&Builder> = None;
63 
64 pub trait BuilderExt: 'static {
65     //fn add_callback_symbol<P: FnOnce() + 'static>(&self, callback_name: &str, callback_symbol: P);
66 
67     //fn add_callback_symbols<P: FnOnce() + 'static>(&self, first_callback_name: &str, first_callback_symbol: P, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
68 
add_from_resource(&self, resource_path: &str) -> Result<(), glib::Error>69     fn add_from_resource(&self, resource_path: &str) -> Result<(), glib::Error>;
70 
add_from_string(&self, buffer: &str) -> Result<(), glib::Error>71     fn add_from_string(&self, buffer: &str) -> Result<(), glib::Error>;
72 
add_objects_from_resource( &self, resource_path: &str, object_ids: &[&str], ) -> Result<(), glib::Error>73     fn add_objects_from_resource(
74         &self,
75         resource_path: &str,
76         object_ids: &[&str],
77     ) -> Result<(), glib::Error>;
78 
add_objects_from_string(&self, buffer: &str, object_ids: &[&str]) -> Result<(), glib::Error>79     fn add_objects_from_string(&self, buffer: &str, object_ids: &[&str])
80         -> Result<(), glib::Error>;
81 
82     //fn connect_signals(&self, user_data: /*Unimplemented*/Option<Fundamental: Pointer>);
83 
expose_object<P: IsA<glib::Object>>(&self, name: &str, object: &P)84     fn expose_object<P: IsA<glib::Object>>(&self, name: &str, object: &P);
85 
extend_with_template<P: IsA<Widget>>( &self, widget: &P, template_type: glib::types::Type, buffer: &str, ) -> Result<(), glib::Error>86     fn extend_with_template<P: IsA<Widget>>(
87         &self,
88         widget: &P,
89         template_type: glib::types::Type,
90         buffer: &str,
91     ) -> Result<(), glib::Error>;
92 
get_application(&self) -> Option<Application>93     fn get_application(&self) -> Option<Application>;
94 
get_objects(&self) -> Vec<glib::Object>95     fn get_objects(&self) -> Vec<glib::Object>;
96 
get_translation_domain(&self) -> Option<GString>97     fn get_translation_domain(&self) -> Option<GString>;
98 
get_type_from_name(&self, type_name: &str) -> glib::types::Type99     fn get_type_from_name(&self, type_name: &str) -> glib::types::Type;
100 
101     //fn lookup_callback_symbol(&self, callback_name: &str) -> Option<Box_<dyn Fn() + 'static>>;
102 
set_application<P: IsA<Application>>(&self, application: &P)103     fn set_application<P: IsA<Application>>(&self, application: &P);
104 
set_translation_domain(&self, domain: Option<&str>)105     fn set_translation_domain(&self, domain: Option<&str>);
106 
107     //fn value_from_string(&self, pspec: /*Ignored*/&glib::ParamSpec, string: &str) -> Result<glib::Value, glib::Error>;
108 
value_from_string_type( &self, type_: glib::types::Type, string: &str, ) -> Result<glib::Value, glib::Error>109     fn value_from_string_type(
110         &self,
111         type_: glib::types::Type,
112         string: &str,
113     ) -> Result<glib::Value, glib::Error>;
114 
connect_property_translation_domain_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId115     fn connect_property_translation_domain_notify<F: Fn(&Self) + 'static>(
116         &self,
117         f: F,
118     ) -> SignalHandlerId;
119 }
120 
121 impl<O: IsA<Builder>> BuilderExt for O {
122     //fn add_callback_symbol<P: FnOnce() + 'static>(&self, callback_name: &str, callback_symbol: P) {
123     //    unsafe { TODO: call gtk_sys:gtk_builder_add_callback_symbol() }
124     //}
125 
126     //fn add_callback_symbols<P: FnOnce() + 'static>(&self, first_callback_name: &str, first_callback_symbol: P, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) {
127     //    unsafe { TODO: call gtk_sys:gtk_builder_add_callback_symbols() }
128     //}
129 
add_from_resource(&self, resource_path: &str) -> Result<(), glib::Error>130     fn add_from_resource(&self, resource_path: &str) -> Result<(), glib::Error> {
131         unsafe {
132             let mut error = ptr::null_mut();
133             let _ = gtk_sys::gtk_builder_add_from_resource(
134                 self.as_ref().to_glib_none().0,
135                 resource_path.to_glib_none().0,
136                 &mut error,
137             );
138             if error.is_null() {
139                 Ok(())
140             } else {
141                 Err(from_glib_full(error))
142             }
143         }
144     }
145 
add_from_string(&self, buffer: &str) -> Result<(), glib::Error>146     fn add_from_string(&self, buffer: &str) -> Result<(), glib::Error> {
147         let length = buffer.len() as usize;
148         unsafe {
149             let mut error = ptr::null_mut();
150             let _ = gtk_sys::gtk_builder_add_from_string(
151                 self.as_ref().to_glib_none().0,
152                 buffer.to_glib_none().0,
153                 length,
154                 &mut error,
155             );
156             if error.is_null() {
157                 Ok(())
158             } else {
159                 Err(from_glib_full(error))
160             }
161         }
162     }
163 
add_objects_from_resource( &self, resource_path: &str, object_ids: &[&str], ) -> Result<(), glib::Error>164     fn add_objects_from_resource(
165         &self,
166         resource_path: &str,
167         object_ids: &[&str],
168     ) -> Result<(), glib::Error> {
169         unsafe {
170             let mut error = ptr::null_mut();
171             let _ = gtk_sys::gtk_builder_add_objects_from_resource(
172                 self.as_ref().to_glib_none().0,
173                 resource_path.to_glib_none().0,
174                 object_ids.to_glib_none().0,
175                 &mut error,
176             );
177             if error.is_null() {
178                 Ok(())
179             } else {
180                 Err(from_glib_full(error))
181             }
182         }
183     }
184 
add_objects_from_string( &self, buffer: &str, object_ids: &[&str], ) -> Result<(), glib::Error>185     fn add_objects_from_string(
186         &self,
187         buffer: &str,
188         object_ids: &[&str],
189     ) -> Result<(), glib::Error> {
190         let length = buffer.len() as usize;
191         unsafe {
192             let mut error = ptr::null_mut();
193             let _ = gtk_sys::gtk_builder_add_objects_from_string(
194                 self.as_ref().to_glib_none().0,
195                 buffer.to_glib_none().0,
196                 length,
197                 object_ids.to_glib_none().0,
198                 &mut error,
199             );
200             if error.is_null() {
201                 Ok(())
202             } else {
203                 Err(from_glib_full(error))
204             }
205         }
206     }
207 
208     //fn connect_signals(&self, user_data: /*Unimplemented*/Option<Fundamental: Pointer>) {
209     //    unsafe { TODO: call gtk_sys:gtk_builder_connect_signals() }
210     //}
211 
expose_object<P: IsA<glib::Object>>(&self, name: &str, object: &P)212     fn expose_object<P: IsA<glib::Object>>(&self, name: &str, object: &P) {
213         unsafe {
214             gtk_sys::gtk_builder_expose_object(
215                 self.as_ref().to_glib_none().0,
216                 name.to_glib_none().0,
217                 object.as_ref().to_glib_none().0,
218             );
219         }
220     }
221 
extend_with_template<P: IsA<Widget>>( &self, widget: &P, template_type: glib::types::Type, buffer: &str, ) -> Result<(), glib::Error>222     fn extend_with_template<P: IsA<Widget>>(
223         &self,
224         widget: &P,
225         template_type: glib::types::Type,
226         buffer: &str,
227     ) -> Result<(), glib::Error> {
228         let length = buffer.len() as usize;
229         unsafe {
230             let mut error = ptr::null_mut();
231             let _ = gtk_sys::gtk_builder_extend_with_template(
232                 self.as_ref().to_glib_none().0,
233                 widget.as_ref().to_glib_none().0,
234                 template_type.to_glib(),
235                 buffer.to_glib_none().0,
236                 length,
237                 &mut error,
238             );
239             if error.is_null() {
240                 Ok(())
241             } else {
242                 Err(from_glib_full(error))
243             }
244         }
245     }
246 
get_application(&self) -> Option<Application>247     fn get_application(&self) -> Option<Application> {
248         unsafe {
249             from_glib_none(gtk_sys::gtk_builder_get_application(
250                 self.as_ref().to_glib_none().0,
251             ))
252         }
253     }
254 
get_objects(&self) -> Vec<glib::Object>255     fn get_objects(&self) -> Vec<glib::Object> {
256         unsafe {
257             FromGlibPtrContainer::from_glib_container(gtk_sys::gtk_builder_get_objects(
258                 self.as_ref().to_glib_none().0,
259             ))
260         }
261     }
262 
get_translation_domain(&self) -> Option<GString>263     fn get_translation_domain(&self) -> Option<GString> {
264         unsafe {
265             from_glib_none(gtk_sys::gtk_builder_get_translation_domain(
266                 self.as_ref().to_glib_none().0,
267             ))
268         }
269     }
270 
get_type_from_name(&self, type_name: &str) -> glib::types::Type271     fn get_type_from_name(&self, type_name: &str) -> glib::types::Type {
272         unsafe {
273             from_glib(gtk_sys::gtk_builder_get_type_from_name(
274                 self.as_ref().to_glib_none().0,
275                 type_name.to_glib_none().0,
276             ))
277         }
278     }
279 
280     //fn lookup_callback_symbol(&self, callback_name: &str) -> Option<Box_<dyn Fn() + 'static>> {
281     //    unsafe { TODO: call gtk_sys:gtk_builder_lookup_callback_symbol() }
282     //}
283 
set_application<P: IsA<Application>>(&self, application: &P)284     fn set_application<P: IsA<Application>>(&self, application: &P) {
285         unsafe {
286             gtk_sys::gtk_builder_set_application(
287                 self.as_ref().to_glib_none().0,
288                 application.as_ref().to_glib_none().0,
289             );
290         }
291     }
292 
set_translation_domain(&self, domain: Option<&str>)293     fn set_translation_domain(&self, domain: Option<&str>) {
294         unsafe {
295             gtk_sys::gtk_builder_set_translation_domain(
296                 self.as_ref().to_glib_none().0,
297                 domain.to_glib_none().0,
298             );
299         }
300     }
301 
302     //fn value_from_string(&self, pspec: /*Ignored*/&glib::ParamSpec, string: &str) -> Result<glib::Value, glib::Error> {
303     //    unsafe { TODO: call gtk_sys:gtk_builder_value_from_string() }
304     //}
305 
value_from_string_type( &self, type_: glib::types::Type, string: &str, ) -> Result<glib::Value, glib::Error>306     fn value_from_string_type(
307         &self,
308         type_: glib::types::Type,
309         string: &str,
310     ) -> Result<glib::Value, glib::Error> {
311         unsafe {
312             let mut value = glib::Value::uninitialized();
313             let mut error = ptr::null_mut();
314             let _ = gtk_sys::gtk_builder_value_from_string_type(
315                 self.as_ref().to_glib_none().0,
316                 type_.to_glib(),
317                 string.to_glib_none().0,
318                 value.to_glib_none_mut().0,
319                 &mut error,
320             );
321             if error.is_null() {
322                 Ok(value)
323             } else {
324                 Err(from_glib_full(error))
325             }
326         }
327     }
328 
connect_property_translation_domain_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId329     fn connect_property_translation_domain_notify<F: Fn(&Self) + 'static>(
330         &self,
331         f: F,
332     ) -> SignalHandlerId {
333         unsafe extern "C" fn notify_translation_domain_trampoline<P, F: Fn(&P) + 'static>(
334             this: *mut gtk_sys::GtkBuilder,
335             _param_spec: glib_sys::gpointer,
336             f: glib_sys::gpointer,
337         ) where
338             P: IsA<Builder>,
339         {
340             let f: &F = &*(f as *const F);
341             f(&Builder::from_glib_borrow(this).unsafe_cast())
342         }
343         unsafe {
344             let f: Box_<F> = Box_::new(f);
345             connect_raw(
346                 self.as_ptr() as *mut _,
347                 b"notify::translation-domain\0".as_ptr() as *const _,
348                 Some(transmute(
349                     notify_translation_domain_trampoline::<Self, F> as usize,
350                 )),
351                 Box_::into_raw(f),
352             )
353         }
354     }
355 }
356 
357 impl fmt::Display for Builder {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result358     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
359         write!(f, "Builder")
360     }
361 }
362