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