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 crate::Adjustment; 6 use crate::Buildable; 7 use crate::Orientable; 8 use crate::ScrollType; 9 use crate::SensitivityType; 10 use crate::Widget; 11 use glib::object::Cast; 12 use glib::object::IsA; 13 use glib::object::ObjectExt; 14 use glib::signal::connect_raw; 15 use glib::signal::SignalHandlerId; 16 use glib::translate::*; 17 use std::boxed::Box as Box_; 18 use std::fmt; 19 use std::mem; 20 use std::mem::transmute; 21 22 glib::wrapper! { 23 #[doc(alias = "GtkRange")] 24 pub struct Range(Object<ffi::GtkRange, ffi::GtkRangeClass>) @extends Widget, @implements Buildable, Orientable; 25 26 match fn { 27 type_ => || ffi::gtk_range_get_type(), 28 } 29 } 30 31 pub const NONE_RANGE: Option<&Range> = None; 32 33 pub trait RangeExt: 'static { 34 #[doc(alias = "gtk_range_get_adjustment")] 35 #[doc(alias = "get_adjustment")] adjustment(&self) -> Adjustment36 fn adjustment(&self) -> Adjustment; 37 38 #[doc(alias = "gtk_range_get_fill_level")] 39 #[doc(alias = "get_fill_level")] fill_level(&self) -> f6440 fn fill_level(&self) -> f64; 41 42 #[doc(alias = "gtk_range_get_flippable")] 43 #[doc(alias = "get_flippable")] is_flippable(&self) -> bool44 fn is_flippable(&self) -> bool; 45 46 #[doc(alias = "gtk_range_get_inverted")] 47 #[doc(alias = "get_inverted")] is_inverted(&self) -> bool48 fn is_inverted(&self) -> bool; 49 50 #[doc(alias = "gtk_range_get_lower_stepper_sensitivity")] 51 #[doc(alias = "get_lower_stepper_sensitivity")] lower_stepper_sensitivity(&self) -> SensitivityType52 fn lower_stepper_sensitivity(&self) -> SensitivityType; 53 54 #[cfg_attr(feature = "v3_20", deprecated = "Since 3.20")] 55 #[doc(alias = "gtk_range_get_min_slider_size")] 56 #[doc(alias = "get_min_slider_size")] min_slider_size(&self) -> i3257 fn min_slider_size(&self) -> i32; 58 59 #[doc(alias = "gtk_range_get_range_rect")] 60 #[doc(alias = "get_range_rect")] range_rect(&self) -> gdk::Rectangle61 fn range_rect(&self) -> gdk::Rectangle; 62 63 #[doc(alias = "gtk_range_get_restrict_to_fill_level")] 64 #[doc(alias = "get_restrict_to_fill_level")] restricts_to_fill_level(&self) -> bool65 fn restricts_to_fill_level(&self) -> bool; 66 67 #[doc(alias = "gtk_range_get_round_digits")] 68 #[doc(alias = "get_round_digits")] round_digits(&self) -> i3269 fn round_digits(&self) -> i32; 70 71 #[doc(alias = "gtk_range_get_show_fill_level")] 72 #[doc(alias = "get_show_fill_level")] shows_fill_level(&self) -> bool73 fn shows_fill_level(&self) -> bool; 74 75 #[doc(alias = "gtk_range_get_slider_range")] 76 #[doc(alias = "get_slider_range")] slider_range(&self) -> (i32, i32)77 fn slider_range(&self) -> (i32, i32); 78 79 #[doc(alias = "gtk_range_get_slider_size_fixed")] 80 #[doc(alias = "get_slider_size_fixed")] is_slider_size_fixed(&self) -> bool81 fn is_slider_size_fixed(&self) -> bool; 82 83 #[doc(alias = "gtk_range_get_upper_stepper_sensitivity")] 84 #[doc(alias = "get_upper_stepper_sensitivity")] upper_stepper_sensitivity(&self) -> SensitivityType85 fn upper_stepper_sensitivity(&self) -> SensitivityType; 86 87 #[doc(alias = "gtk_range_get_value")] 88 #[doc(alias = "get_value")] value(&self) -> f6489 fn value(&self) -> f64; 90 91 #[doc(alias = "gtk_range_set_adjustment")] set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P)92 fn set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P); 93 94 #[doc(alias = "gtk_range_set_fill_level")] set_fill_level(&self, fill_level: f64)95 fn set_fill_level(&self, fill_level: f64); 96 97 #[doc(alias = "gtk_range_set_flippable")] set_flippable(&self, flippable: bool)98 fn set_flippable(&self, flippable: bool); 99 100 #[doc(alias = "gtk_range_set_increments")] set_increments(&self, step: f64, page: f64)101 fn set_increments(&self, step: f64, page: f64); 102 103 #[doc(alias = "gtk_range_set_inverted")] set_inverted(&self, setting: bool)104 fn set_inverted(&self, setting: bool); 105 106 #[doc(alias = "gtk_range_set_lower_stepper_sensitivity")] set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType)107 fn set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType); 108 109 #[cfg_attr(feature = "v3_20", deprecated = "Since 3.20")] 110 #[doc(alias = "gtk_range_set_min_slider_size")] set_min_slider_size(&self, min_size: i32)111 fn set_min_slider_size(&self, min_size: i32); 112 113 #[doc(alias = "gtk_range_set_range")] set_range(&self, min: f64, max: f64)114 fn set_range(&self, min: f64, max: f64); 115 116 #[doc(alias = "gtk_range_set_restrict_to_fill_level")] set_restrict_to_fill_level(&self, restrict_to_fill_level: bool)117 fn set_restrict_to_fill_level(&self, restrict_to_fill_level: bool); 118 119 #[doc(alias = "gtk_range_set_round_digits")] set_round_digits(&self, round_digits: i32)120 fn set_round_digits(&self, round_digits: i32); 121 122 #[doc(alias = "gtk_range_set_show_fill_level")] set_show_fill_level(&self, show_fill_level: bool)123 fn set_show_fill_level(&self, show_fill_level: bool); 124 125 #[doc(alias = "gtk_range_set_slider_size_fixed")] set_slider_size_fixed(&self, size_fixed: bool)126 fn set_slider_size_fixed(&self, size_fixed: bool); 127 128 #[doc(alias = "gtk_range_set_upper_stepper_sensitivity")] set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType)129 fn set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType); 130 131 #[doc(alias = "gtk_range_set_value")] set_value(&self, value: f64)132 fn set_value(&self, value: f64); 133 134 #[doc(alias = "adjust-bounds")] connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId135 fn connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId; 136 137 #[doc(alias = "change-value")] connect_change_value<F: Fn(&Self, ScrollType, f64) -> glib::signal::Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId138 fn connect_change_value<F: Fn(&Self, ScrollType, f64) -> glib::signal::Inhibit + 'static>( 139 &self, 140 f: F, 141 ) -> SignalHandlerId; 142 143 #[doc(alias = "move-slider")] connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId144 fn connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId; 145 emit_move_slider(&self, step: ScrollType)146 fn emit_move_slider(&self, step: ScrollType); 147 148 #[doc(alias = "value-changed")] connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId149 fn connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 150 151 #[doc(alias = "adjustment")] connect_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId152 fn connect_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 153 154 #[doc(alias = "fill-level")] connect_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId155 fn connect_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 156 157 #[doc(alias = "inverted")] connect_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId158 fn connect_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 159 160 #[doc(alias = "lower-stepper-sensitivity")] connect_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId161 fn connect_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( 162 &self, 163 f: F, 164 ) -> SignalHandlerId; 165 166 #[doc(alias = "restrict-to-fill-level")] connect_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId167 fn connect_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>( 168 &self, 169 f: F, 170 ) -> SignalHandlerId; 171 172 #[doc(alias = "round-digits")] connect_round_digits_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId173 fn connect_round_digits_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 174 175 #[doc(alias = "show-fill-level")] connect_show_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId176 fn connect_show_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 177 178 #[doc(alias = "upper-stepper-sensitivity")] connect_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId179 fn connect_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( 180 &self, 181 f: F, 182 ) -> SignalHandlerId; 183 } 184 185 impl<O: IsA<Range>> RangeExt for O { adjustment(&self) -> Adjustment186 fn adjustment(&self) -> Adjustment { 187 unsafe { 188 from_glib_none(ffi::gtk_range_get_adjustment( 189 self.as_ref().to_glib_none().0, 190 )) 191 } 192 } 193 fill_level(&self) -> f64194 fn fill_level(&self) -> f64 { 195 unsafe { ffi::gtk_range_get_fill_level(self.as_ref().to_glib_none().0) } 196 } 197 is_flippable(&self) -> bool198 fn is_flippable(&self) -> bool { 199 unsafe { from_glib(ffi::gtk_range_get_flippable(self.as_ref().to_glib_none().0)) } 200 } 201 is_inverted(&self) -> bool202 fn is_inverted(&self) -> bool { 203 unsafe { from_glib(ffi::gtk_range_get_inverted(self.as_ref().to_glib_none().0)) } 204 } 205 lower_stepper_sensitivity(&self) -> SensitivityType206 fn lower_stepper_sensitivity(&self) -> SensitivityType { 207 unsafe { 208 from_glib(ffi::gtk_range_get_lower_stepper_sensitivity( 209 self.as_ref().to_glib_none().0, 210 )) 211 } 212 } 213 min_slider_size(&self) -> i32214 fn min_slider_size(&self) -> i32 { 215 unsafe { ffi::gtk_range_get_min_slider_size(self.as_ref().to_glib_none().0) } 216 } 217 range_rect(&self) -> gdk::Rectangle218 fn range_rect(&self) -> gdk::Rectangle { 219 unsafe { 220 let mut range_rect = gdk::Rectangle::uninitialized(); 221 ffi::gtk_range_get_range_rect( 222 self.as_ref().to_glib_none().0, 223 range_rect.to_glib_none_mut().0, 224 ); 225 range_rect 226 } 227 } 228 restricts_to_fill_level(&self) -> bool229 fn restricts_to_fill_level(&self) -> bool { 230 unsafe { 231 from_glib(ffi::gtk_range_get_restrict_to_fill_level( 232 self.as_ref().to_glib_none().0, 233 )) 234 } 235 } 236 round_digits(&self) -> i32237 fn round_digits(&self) -> i32 { 238 unsafe { ffi::gtk_range_get_round_digits(self.as_ref().to_glib_none().0) } 239 } 240 shows_fill_level(&self) -> bool241 fn shows_fill_level(&self) -> bool { 242 unsafe { 243 from_glib(ffi::gtk_range_get_show_fill_level( 244 self.as_ref().to_glib_none().0, 245 )) 246 } 247 } 248 slider_range(&self) -> (i32, i32)249 fn slider_range(&self) -> (i32, i32) { 250 unsafe { 251 let mut slider_start = mem::MaybeUninit::uninit(); 252 let mut slider_end = mem::MaybeUninit::uninit(); 253 ffi::gtk_range_get_slider_range( 254 self.as_ref().to_glib_none().0, 255 slider_start.as_mut_ptr(), 256 slider_end.as_mut_ptr(), 257 ); 258 let slider_start = slider_start.assume_init(); 259 let slider_end = slider_end.assume_init(); 260 (slider_start, slider_end) 261 } 262 } 263 is_slider_size_fixed(&self) -> bool264 fn is_slider_size_fixed(&self) -> bool { 265 unsafe { 266 from_glib(ffi::gtk_range_get_slider_size_fixed( 267 self.as_ref().to_glib_none().0, 268 )) 269 } 270 } 271 upper_stepper_sensitivity(&self) -> SensitivityType272 fn upper_stepper_sensitivity(&self) -> SensitivityType { 273 unsafe { 274 from_glib(ffi::gtk_range_get_upper_stepper_sensitivity( 275 self.as_ref().to_glib_none().0, 276 )) 277 } 278 } 279 value(&self) -> f64280 fn value(&self) -> f64 { 281 unsafe { ffi::gtk_range_get_value(self.as_ref().to_glib_none().0) } 282 } 283 set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P)284 fn set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P) { 285 unsafe { 286 ffi::gtk_range_set_adjustment( 287 self.as_ref().to_glib_none().0, 288 adjustment.as_ref().to_glib_none().0, 289 ); 290 } 291 } 292 set_fill_level(&self, fill_level: f64)293 fn set_fill_level(&self, fill_level: f64) { 294 unsafe { 295 ffi::gtk_range_set_fill_level(self.as_ref().to_glib_none().0, fill_level); 296 } 297 } 298 set_flippable(&self, flippable: bool)299 fn set_flippable(&self, flippable: bool) { 300 unsafe { 301 ffi::gtk_range_set_flippable(self.as_ref().to_glib_none().0, flippable.into_glib()); 302 } 303 } 304 set_increments(&self, step: f64, page: f64)305 fn set_increments(&self, step: f64, page: f64) { 306 unsafe { 307 ffi::gtk_range_set_increments(self.as_ref().to_glib_none().0, step, page); 308 } 309 } 310 set_inverted(&self, setting: bool)311 fn set_inverted(&self, setting: bool) { 312 unsafe { 313 ffi::gtk_range_set_inverted(self.as_ref().to_glib_none().0, setting.into_glib()); 314 } 315 } 316 set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType)317 fn set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType) { 318 unsafe { 319 ffi::gtk_range_set_lower_stepper_sensitivity( 320 self.as_ref().to_glib_none().0, 321 sensitivity.into_glib(), 322 ); 323 } 324 } 325 set_min_slider_size(&self, min_size: i32)326 fn set_min_slider_size(&self, min_size: i32) { 327 unsafe { 328 ffi::gtk_range_set_min_slider_size(self.as_ref().to_glib_none().0, min_size); 329 } 330 } 331 set_range(&self, min: f64, max: f64)332 fn set_range(&self, min: f64, max: f64) { 333 unsafe { 334 ffi::gtk_range_set_range(self.as_ref().to_glib_none().0, min, max); 335 } 336 } 337 set_restrict_to_fill_level(&self, restrict_to_fill_level: bool)338 fn set_restrict_to_fill_level(&self, restrict_to_fill_level: bool) { 339 unsafe { 340 ffi::gtk_range_set_restrict_to_fill_level( 341 self.as_ref().to_glib_none().0, 342 restrict_to_fill_level.into_glib(), 343 ); 344 } 345 } 346 set_round_digits(&self, round_digits: i32)347 fn set_round_digits(&self, round_digits: i32) { 348 unsafe { 349 ffi::gtk_range_set_round_digits(self.as_ref().to_glib_none().0, round_digits); 350 } 351 } 352 set_show_fill_level(&self, show_fill_level: bool)353 fn set_show_fill_level(&self, show_fill_level: bool) { 354 unsafe { 355 ffi::gtk_range_set_show_fill_level( 356 self.as_ref().to_glib_none().0, 357 show_fill_level.into_glib(), 358 ); 359 } 360 } 361 set_slider_size_fixed(&self, size_fixed: bool)362 fn set_slider_size_fixed(&self, size_fixed: bool) { 363 unsafe { 364 ffi::gtk_range_set_slider_size_fixed( 365 self.as_ref().to_glib_none().0, 366 size_fixed.into_glib(), 367 ); 368 } 369 } 370 set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType)371 fn set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType) { 372 unsafe { 373 ffi::gtk_range_set_upper_stepper_sensitivity( 374 self.as_ref().to_glib_none().0, 375 sensitivity.into_glib(), 376 ); 377 } 378 } 379 set_value(&self, value: f64)380 fn set_value(&self, value: f64) { 381 unsafe { 382 ffi::gtk_range_set_value(self.as_ref().to_glib_none().0, value); 383 } 384 } 385 connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId386 fn connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId { 387 unsafe extern "C" fn adjust_bounds_trampoline<P: IsA<Range>, F: Fn(&P, f64) + 'static>( 388 this: *mut ffi::GtkRange, 389 value: libc::c_double, 390 f: glib::ffi::gpointer, 391 ) { 392 let f: &F = &*(f as *const F); 393 f(Range::from_glib_borrow(this).unsafe_cast_ref(), value) 394 } 395 unsafe { 396 let f: Box_<F> = Box_::new(f); 397 connect_raw( 398 self.as_ptr() as *mut _, 399 b"adjust-bounds\0".as_ptr() as *const _, 400 Some(transmute::<_, unsafe extern "C" fn()>( 401 adjust_bounds_trampoline::<Self, F> as *const (), 402 )), 403 Box_::into_raw(f), 404 ) 405 } 406 } 407 connect_change_value<F: Fn(&Self, ScrollType, f64) -> glib::signal::Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId408 fn connect_change_value<F: Fn(&Self, ScrollType, f64) -> glib::signal::Inhibit + 'static>( 409 &self, 410 f: F, 411 ) -> SignalHandlerId { 412 unsafe extern "C" fn change_value_trampoline< 413 P: IsA<Range>, 414 F: Fn(&P, ScrollType, f64) -> glib::signal::Inhibit + 'static, 415 >( 416 this: *mut ffi::GtkRange, 417 scroll: ffi::GtkScrollType, 418 value: libc::c_double, 419 f: glib::ffi::gpointer, 420 ) -> glib::ffi::gboolean { 421 let f: &F = &*(f as *const F); 422 f( 423 Range::from_glib_borrow(this).unsafe_cast_ref(), 424 from_glib(scroll), 425 value, 426 ) 427 .into_glib() 428 } 429 unsafe { 430 let f: Box_<F> = Box_::new(f); 431 connect_raw( 432 self.as_ptr() as *mut _, 433 b"change-value\0".as_ptr() as *const _, 434 Some(transmute::<_, unsafe extern "C" fn()>( 435 change_value_trampoline::<Self, F> as *const (), 436 )), 437 Box_::into_raw(f), 438 ) 439 } 440 } 441 connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId442 fn connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId { 443 unsafe extern "C" fn move_slider_trampoline< 444 P: IsA<Range>, 445 F: Fn(&P, ScrollType) + 'static, 446 >( 447 this: *mut ffi::GtkRange, 448 step: ffi::GtkScrollType, 449 f: glib::ffi::gpointer, 450 ) { 451 let f: &F = &*(f as *const F); 452 f( 453 Range::from_glib_borrow(this).unsafe_cast_ref(), 454 from_glib(step), 455 ) 456 } 457 unsafe { 458 let f: Box_<F> = Box_::new(f); 459 connect_raw( 460 self.as_ptr() as *mut _, 461 b"move-slider\0".as_ptr() as *const _, 462 Some(transmute::<_, unsafe extern "C" fn()>( 463 move_slider_trampoline::<Self, F> as *const (), 464 )), 465 Box_::into_raw(f), 466 ) 467 } 468 } 469 emit_move_slider(&self, step: ScrollType)470 fn emit_move_slider(&self, step: ScrollType) { 471 let _ = unsafe { 472 glib::Object::from_glib_borrow(self.as_ptr() as *mut glib::gobject_ffi::GObject) 473 .emit_by_name("move-slider", &[&step]) 474 .unwrap() 475 }; 476 } 477 connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId478 fn connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 479 unsafe extern "C" fn value_changed_trampoline<P: IsA<Range>, F: Fn(&P) + 'static>( 480 this: *mut ffi::GtkRange, 481 f: glib::ffi::gpointer, 482 ) { 483 let f: &F = &*(f as *const F); 484 f(Range::from_glib_borrow(this).unsafe_cast_ref()) 485 } 486 unsafe { 487 let f: Box_<F> = Box_::new(f); 488 connect_raw( 489 self.as_ptr() as *mut _, 490 b"value-changed\0".as_ptr() as *const _, 491 Some(transmute::<_, unsafe extern "C" fn()>( 492 value_changed_trampoline::<Self, F> as *const (), 493 )), 494 Box_::into_raw(f), 495 ) 496 } 497 } 498 connect_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId499 fn connect_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 500 unsafe extern "C" fn notify_adjustment_trampoline<P: IsA<Range>, F: Fn(&P) + 'static>( 501 this: *mut ffi::GtkRange, 502 _param_spec: glib::ffi::gpointer, 503 f: glib::ffi::gpointer, 504 ) { 505 let f: &F = &*(f as *const F); 506 f(Range::from_glib_borrow(this).unsafe_cast_ref()) 507 } 508 unsafe { 509 let f: Box_<F> = Box_::new(f); 510 connect_raw( 511 self.as_ptr() as *mut _, 512 b"notify::adjustment\0".as_ptr() as *const _, 513 Some(transmute::<_, unsafe extern "C" fn()>( 514 notify_adjustment_trampoline::<Self, F> as *const (), 515 )), 516 Box_::into_raw(f), 517 ) 518 } 519 } 520 connect_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId521 fn connect_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 522 unsafe extern "C" fn notify_fill_level_trampoline<P: IsA<Range>, F: Fn(&P) + 'static>( 523 this: *mut ffi::GtkRange, 524 _param_spec: glib::ffi::gpointer, 525 f: glib::ffi::gpointer, 526 ) { 527 let f: &F = &*(f as *const F); 528 f(Range::from_glib_borrow(this).unsafe_cast_ref()) 529 } 530 unsafe { 531 let f: Box_<F> = Box_::new(f); 532 connect_raw( 533 self.as_ptr() as *mut _, 534 b"notify::fill-level\0".as_ptr() as *const _, 535 Some(transmute::<_, unsafe extern "C" fn()>( 536 notify_fill_level_trampoline::<Self, F> as *const (), 537 )), 538 Box_::into_raw(f), 539 ) 540 } 541 } 542 connect_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId543 fn connect_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 544 unsafe extern "C" fn notify_inverted_trampoline<P: IsA<Range>, F: Fn(&P) + 'static>( 545 this: *mut ffi::GtkRange, 546 _param_spec: glib::ffi::gpointer, 547 f: glib::ffi::gpointer, 548 ) { 549 let f: &F = &*(f as *const F); 550 f(Range::from_glib_borrow(this).unsafe_cast_ref()) 551 } 552 unsafe { 553 let f: Box_<F> = Box_::new(f); 554 connect_raw( 555 self.as_ptr() as *mut _, 556 b"notify::inverted\0".as_ptr() as *const _, 557 Some(transmute::<_, unsafe extern "C" fn()>( 558 notify_inverted_trampoline::<Self, F> as *const (), 559 )), 560 Box_::into_raw(f), 561 ) 562 } 563 } 564 connect_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId565 fn connect_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( 566 &self, 567 f: F, 568 ) -> SignalHandlerId { 569 unsafe extern "C" fn notify_lower_stepper_sensitivity_trampoline< 570 P: IsA<Range>, 571 F: Fn(&P) + 'static, 572 >( 573 this: *mut ffi::GtkRange, 574 _param_spec: glib::ffi::gpointer, 575 f: glib::ffi::gpointer, 576 ) { 577 let f: &F = &*(f as *const F); 578 f(Range::from_glib_borrow(this).unsafe_cast_ref()) 579 } 580 unsafe { 581 let f: Box_<F> = Box_::new(f); 582 connect_raw( 583 self.as_ptr() as *mut _, 584 b"notify::lower-stepper-sensitivity\0".as_ptr() as *const _, 585 Some(transmute::<_, unsafe extern "C" fn()>( 586 notify_lower_stepper_sensitivity_trampoline::<Self, F> as *const (), 587 )), 588 Box_::into_raw(f), 589 ) 590 } 591 } 592 connect_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId593 fn connect_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>( 594 &self, 595 f: F, 596 ) -> SignalHandlerId { 597 unsafe extern "C" fn notify_restrict_to_fill_level_trampoline< 598 P: IsA<Range>, 599 F: Fn(&P) + 'static, 600 >( 601 this: *mut ffi::GtkRange, 602 _param_spec: glib::ffi::gpointer, 603 f: glib::ffi::gpointer, 604 ) { 605 let f: &F = &*(f as *const F); 606 f(Range::from_glib_borrow(this).unsafe_cast_ref()) 607 } 608 unsafe { 609 let f: Box_<F> = Box_::new(f); 610 connect_raw( 611 self.as_ptr() as *mut _, 612 b"notify::restrict-to-fill-level\0".as_ptr() as *const _, 613 Some(transmute::<_, unsafe extern "C" fn()>( 614 notify_restrict_to_fill_level_trampoline::<Self, F> as *const (), 615 )), 616 Box_::into_raw(f), 617 ) 618 } 619 } 620 connect_round_digits_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId621 fn connect_round_digits_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 622 unsafe extern "C" fn notify_round_digits_trampoline<P: IsA<Range>, F: Fn(&P) + 'static>( 623 this: *mut ffi::GtkRange, 624 _param_spec: glib::ffi::gpointer, 625 f: glib::ffi::gpointer, 626 ) { 627 let f: &F = &*(f as *const F); 628 f(Range::from_glib_borrow(this).unsafe_cast_ref()) 629 } 630 unsafe { 631 let f: Box_<F> = Box_::new(f); 632 connect_raw( 633 self.as_ptr() as *mut _, 634 b"notify::round-digits\0".as_ptr() as *const _, 635 Some(transmute::<_, unsafe extern "C" fn()>( 636 notify_round_digits_trampoline::<Self, F> as *const (), 637 )), 638 Box_::into_raw(f), 639 ) 640 } 641 } 642 connect_show_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId643 fn connect_show_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 644 unsafe extern "C" fn notify_show_fill_level_trampoline< 645 P: IsA<Range>, 646 F: Fn(&P) + 'static, 647 >( 648 this: *mut ffi::GtkRange, 649 _param_spec: glib::ffi::gpointer, 650 f: glib::ffi::gpointer, 651 ) { 652 let f: &F = &*(f as *const F); 653 f(Range::from_glib_borrow(this).unsafe_cast_ref()) 654 } 655 unsafe { 656 let f: Box_<F> = Box_::new(f); 657 connect_raw( 658 self.as_ptr() as *mut _, 659 b"notify::show-fill-level\0".as_ptr() as *const _, 660 Some(transmute::<_, unsafe extern "C" fn()>( 661 notify_show_fill_level_trampoline::<Self, F> as *const (), 662 )), 663 Box_::into_raw(f), 664 ) 665 } 666 } 667 connect_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId668 fn connect_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( 669 &self, 670 f: F, 671 ) -> SignalHandlerId { 672 unsafe extern "C" fn notify_upper_stepper_sensitivity_trampoline< 673 P: IsA<Range>, 674 F: Fn(&P) + 'static, 675 >( 676 this: *mut ffi::GtkRange, 677 _param_spec: glib::ffi::gpointer, 678 f: glib::ffi::gpointer, 679 ) { 680 let f: &F = &*(f as *const F); 681 f(Range::from_glib_borrow(this).unsafe_cast_ref()) 682 } 683 unsafe { 684 let f: Box_<F> = Box_::new(f); 685 connect_raw( 686 self.as_ptr() as *mut _, 687 b"notify::upper-stepper-sensitivity\0".as_ptr() as *const _, 688 Some(transmute::<_, unsafe extern "C" fn()>( 689 notify_upper_stepper_sensitivity_trampoline::<Self, F> as *const (), 690 )), 691 Box_::into_raw(f), 692 ) 693 } 694 } 695 } 696 697 impl fmt::Display for Range { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result698 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 699 f.write_str("Range") 700 } 701 } 702