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 glib;
7 use glib::object::Cast;
8 use glib::object::IsA;
9 use glib::object::ObjectExt;
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 signal::Inhibit;
18 use std::boxed::Box as Box_;
19 use std::fmt;
20 use std::mem;
21 use std::mem::transmute;
22 use Adjustment;
23 use Buildable;
24 use Orientable;
25 use ScrollType;
26 use SensitivityType;
27 use Widget;
28 
29 glib_wrapper! {
30     pub struct Range(Object<gtk_sys::GtkRange, gtk_sys::GtkRangeClass, RangeClass>) @extends Widget, @implements Buildable, Orientable;
31 
32     match fn {
33         get_type => || gtk_sys::gtk_range_get_type(),
34     }
35 }
36 
37 pub const NONE_RANGE: Option<&Range> = None;
38 
39 pub trait RangeExt: 'static {
get_adjustment(&self) -> Adjustment40     fn get_adjustment(&self) -> Adjustment;
41 
get_fill_level(&self) -> f6442     fn get_fill_level(&self) -> f64;
43 
get_flippable(&self) -> bool44     fn get_flippable(&self) -> bool;
45 
get_inverted(&self) -> bool46     fn get_inverted(&self) -> bool;
47 
get_lower_stepper_sensitivity(&self) -> SensitivityType48     fn get_lower_stepper_sensitivity(&self) -> SensitivityType;
49 
50     #[cfg_attr(feature = "v3_20", deprecated)]
get_min_slider_size(&self) -> i3251     fn get_min_slider_size(&self) -> i32;
52 
get_range_rect(&self) -> gdk::Rectangle53     fn get_range_rect(&self) -> gdk::Rectangle;
54 
get_restrict_to_fill_level(&self) -> bool55     fn get_restrict_to_fill_level(&self) -> bool;
56 
get_round_digits(&self) -> i3257     fn get_round_digits(&self) -> i32;
58 
get_show_fill_level(&self) -> bool59     fn get_show_fill_level(&self) -> bool;
60 
get_slider_range(&self) -> (i32, i32)61     fn get_slider_range(&self) -> (i32, i32);
62 
get_slider_size_fixed(&self) -> bool63     fn get_slider_size_fixed(&self) -> bool;
64 
get_upper_stepper_sensitivity(&self) -> SensitivityType65     fn get_upper_stepper_sensitivity(&self) -> SensitivityType;
66 
get_value(&self) -> f6467     fn get_value(&self) -> f64;
68 
set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P)69     fn set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P);
70 
set_fill_level(&self, fill_level: f64)71     fn set_fill_level(&self, fill_level: f64);
72 
set_flippable(&self, flippable: bool)73     fn set_flippable(&self, flippable: bool);
74 
set_increments(&self, step: f64, page: f64)75     fn set_increments(&self, step: f64, page: f64);
76 
set_inverted(&self, setting: bool)77     fn set_inverted(&self, setting: bool);
78 
set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType)79     fn set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType);
80 
81     #[cfg_attr(feature = "v3_20", deprecated)]
set_min_slider_size(&self, min_size: i32)82     fn set_min_slider_size(&self, min_size: i32);
83 
set_range(&self, min: f64, max: f64)84     fn set_range(&self, min: f64, max: f64);
85 
set_restrict_to_fill_level(&self, restrict_to_fill_level: bool)86     fn set_restrict_to_fill_level(&self, restrict_to_fill_level: bool);
87 
set_round_digits(&self, round_digits: i32)88     fn set_round_digits(&self, round_digits: i32);
89 
set_show_fill_level(&self, show_fill_level: bool)90     fn set_show_fill_level(&self, show_fill_level: bool);
91 
set_slider_size_fixed(&self, size_fixed: bool)92     fn set_slider_size_fixed(&self, size_fixed: bool);
93 
set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType)94     fn set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType);
95 
set_value(&self, value: f64)96     fn set_value(&self, value: f64);
97 
connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId98     fn connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId;
99 
connect_change_value<F: Fn(&Self, ScrollType, f64) -> Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId100     fn connect_change_value<F: Fn(&Self, ScrollType, f64) -> Inhibit + 'static>(
101         &self,
102         f: F,
103     ) -> SignalHandlerId;
104 
connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId105     fn connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId;
106 
emit_move_slider(&self, step: ScrollType)107     fn emit_move_slider(&self, step: ScrollType);
108 
connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId109     fn connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
110 
connect_property_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId111     fn connect_property_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
112 
connect_property_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId113     fn connect_property_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
114 
connect_property_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId115     fn connect_property_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
116 
connect_property_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId117     fn connect_property_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>(
118         &self,
119         f: F,
120     ) -> SignalHandlerId;
121 
connect_property_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId122     fn connect_property_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>(
123         &self,
124         f: F,
125     ) -> SignalHandlerId;
126 
connect_property_round_digits_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId127     fn connect_property_round_digits_notify<F: Fn(&Self) + 'static>(&self, f: F)
128         -> SignalHandlerId;
129 
connect_property_show_fill_level_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId130     fn connect_property_show_fill_level_notify<F: Fn(&Self) + 'static>(
131         &self,
132         f: F,
133     ) -> SignalHandlerId;
134 
connect_property_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId135     fn connect_property_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>(
136         &self,
137         f: F,
138     ) -> SignalHandlerId;
139 }
140 
141 impl<O: IsA<Range>> RangeExt for O {
get_adjustment(&self) -> Adjustment142     fn get_adjustment(&self) -> Adjustment {
143         unsafe {
144             from_glib_none(gtk_sys::gtk_range_get_adjustment(
145                 self.as_ref().to_glib_none().0,
146             ))
147         }
148     }
149 
get_fill_level(&self) -> f64150     fn get_fill_level(&self) -> f64 {
151         unsafe { gtk_sys::gtk_range_get_fill_level(self.as_ref().to_glib_none().0) }
152     }
153 
get_flippable(&self) -> bool154     fn get_flippable(&self) -> bool {
155         unsafe {
156             from_glib(gtk_sys::gtk_range_get_flippable(
157                 self.as_ref().to_glib_none().0,
158             ))
159         }
160     }
161 
get_inverted(&self) -> bool162     fn get_inverted(&self) -> bool {
163         unsafe {
164             from_glib(gtk_sys::gtk_range_get_inverted(
165                 self.as_ref().to_glib_none().0,
166             ))
167         }
168     }
169 
get_lower_stepper_sensitivity(&self) -> SensitivityType170     fn get_lower_stepper_sensitivity(&self) -> SensitivityType {
171         unsafe {
172             from_glib(gtk_sys::gtk_range_get_lower_stepper_sensitivity(
173                 self.as_ref().to_glib_none().0,
174             ))
175         }
176     }
177 
get_min_slider_size(&self) -> i32178     fn get_min_slider_size(&self) -> i32 {
179         unsafe { gtk_sys::gtk_range_get_min_slider_size(self.as_ref().to_glib_none().0) }
180     }
181 
get_range_rect(&self) -> gdk::Rectangle182     fn get_range_rect(&self) -> gdk::Rectangle {
183         unsafe {
184             let mut range_rect = gdk::Rectangle::uninitialized();
185             gtk_sys::gtk_range_get_range_rect(
186                 self.as_ref().to_glib_none().0,
187                 range_rect.to_glib_none_mut().0,
188             );
189             range_rect
190         }
191     }
192 
get_restrict_to_fill_level(&self) -> bool193     fn get_restrict_to_fill_level(&self) -> bool {
194         unsafe {
195             from_glib(gtk_sys::gtk_range_get_restrict_to_fill_level(
196                 self.as_ref().to_glib_none().0,
197             ))
198         }
199     }
200 
get_round_digits(&self) -> i32201     fn get_round_digits(&self) -> i32 {
202         unsafe { gtk_sys::gtk_range_get_round_digits(self.as_ref().to_glib_none().0) }
203     }
204 
get_show_fill_level(&self) -> bool205     fn get_show_fill_level(&self) -> bool {
206         unsafe {
207             from_glib(gtk_sys::gtk_range_get_show_fill_level(
208                 self.as_ref().to_glib_none().0,
209             ))
210         }
211     }
212 
get_slider_range(&self) -> (i32, i32)213     fn get_slider_range(&self) -> (i32, i32) {
214         unsafe {
215             let mut slider_start = mem::uninitialized();
216             let mut slider_end = mem::uninitialized();
217             gtk_sys::gtk_range_get_slider_range(
218                 self.as_ref().to_glib_none().0,
219                 &mut slider_start,
220                 &mut slider_end,
221             );
222             (slider_start, slider_end)
223         }
224     }
225 
get_slider_size_fixed(&self) -> bool226     fn get_slider_size_fixed(&self) -> bool {
227         unsafe {
228             from_glib(gtk_sys::gtk_range_get_slider_size_fixed(
229                 self.as_ref().to_glib_none().0,
230             ))
231         }
232     }
233 
get_upper_stepper_sensitivity(&self) -> SensitivityType234     fn get_upper_stepper_sensitivity(&self) -> SensitivityType {
235         unsafe {
236             from_glib(gtk_sys::gtk_range_get_upper_stepper_sensitivity(
237                 self.as_ref().to_glib_none().0,
238             ))
239         }
240     }
241 
get_value(&self) -> f64242     fn get_value(&self) -> f64 {
243         unsafe { gtk_sys::gtk_range_get_value(self.as_ref().to_glib_none().0) }
244     }
245 
set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P)246     fn set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P) {
247         unsafe {
248             gtk_sys::gtk_range_set_adjustment(
249                 self.as_ref().to_glib_none().0,
250                 adjustment.as_ref().to_glib_none().0,
251             );
252         }
253     }
254 
set_fill_level(&self, fill_level: f64)255     fn set_fill_level(&self, fill_level: f64) {
256         unsafe {
257             gtk_sys::gtk_range_set_fill_level(self.as_ref().to_glib_none().0, fill_level);
258         }
259     }
260 
set_flippable(&self, flippable: bool)261     fn set_flippable(&self, flippable: bool) {
262         unsafe {
263             gtk_sys::gtk_range_set_flippable(self.as_ref().to_glib_none().0, flippable.to_glib());
264         }
265     }
266 
set_increments(&self, step: f64, page: f64)267     fn set_increments(&self, step: f64, page: f64) {
268         unsafe {
269             gtk_sys::gtk_range_set_increments(self.as_ref().to_glib_none().0, step, page);
270         }
271     }
272 
set_inverted(&self, setting: bool)273     fn set_inverted(&self, setting: bool) {
274         unsafe {
275             gtk_sys::gtk_range_set_inverted(self.as_ref().to_glib_none().0, setting.to_glib());
276         }
277     }
278 
set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType)279     fn set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType) {
280         unsafe {
281             gtk_sys::gtk_range_set_lower_stepper_sensitivity(
282                 self.as_ref().to_glib_none().0,
283                 sensitivity.to_glib(),
284             );
285         }
286     }
287 
set_min_slider_size(&self, min_size: i32)288     fn set_min_slider_size(&self, min_size: i32) {
289         unsafe {
290             gtk_sys::gtk_range_set_min_slider_size(self.as_ref().to_glib_none().0, min_size);
291         }
292     }
293 
set_range(&self, min: f64, max: f64)294     fn set_range(&self, min: f64, max: f64) {
295         unsafe {
296             gtk_sys::gtk_range_set_range(self.as_ref().to_glib_none().0, min, max);
297         }
298     }
299 
set_restrict_to_fill_level(&self, restrict_to_fill_level: bool)300     fn set_restrict_to_fill_level(&self, restrict_to_fill_level: bool) {
301         unsafe {
302             gtk_sys::gtk_range_set_restrict_to_fill_level(
303                 self.as_ref().to_glib_none().0,
304                 restrict_to_fill_level.to_glib(),
305             );
306         }
307     }
308 
set_round_digits(&self, round_digits: i32)309     fn set_round_digits(&self, round_digits: i32) {
310         unsafe {
311             gtk_sys::gtk_range_set_round_digits(self.as_ref().to_glib_none().0, round_digits);
312         }
313     }
314 
set_show_fill_level(&self, show_fill_level: bool)315     fn set_show_fill_level(&self, show_fill_level: bool) {
316         unsafe {
317             gtk_sys::gtk_range_set_show_fill_level(
318                 self.as_ref().to_glib_none().0,
319                 show_fill_level.to_glib(),
320             );
321         }
322     }
323 
set_slider_size_fixed(&self, size_fixed: bool)324     fn set_slider_size_fixed(&self, size_fixed: bool) {
325         unsafe {
326             gtk_sys::gtk_range_set_slider_size_fixed(
327                 self.as_ref().to_glib_none().0,
328                 size_fixed.to_glib(),
329             );
330         }
331     }
332 
set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType)333     fn set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType) {
334         unsafe {
335             gtk_sys::gtk_range_set_upper_stepper_sensitivity(
336                 self.as_ref().to_glib_none().0,
337                 sensitivity.to_glib(),
338             );
339         }
340     }
341 
set_value(&self, value: f64)342     fn set_value(&self, value: f64) {
343         unsafe {
344             gtk_sys::gtk_range_set_value(self.as_ref().to_glib_none().0, value);
345         }
346     }
347 
connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId348     fn connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId {
349         unsafe extern "C" fn adjust_bounds_trampoline<P, F: Fn(&P, f64) + 'static>(
350             this: *mut gtk_sys::GtkRange,
351             value: libc::c_double,
352             f: glib_sys::gpointer,
353         ) where
354             P: IsA<Range>,
355         {
356             let f: &F = &*(f as *const F);
357             f(&Range::from_glib_borrow(this).unsafe_cast(), value)
358         }
359         unsafe {
360             let f: Box_<F> = Box_::new(f);
361             connect_raw(
362                 self.as_ptr() as *mut _,
363                 b"adjust-bounds\0".as_ptr() as *const _,
364                 Some(transmute(adjust_bounds_trampoline::<Self, F> as usize)),
365                 Box_::into_raw(f),
366             )
367         }
368     }
369 
connect_change_value<F: Fn(&Self, ScrollType, f64) -> Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId370     fn connect_change_value<F: Fn(&Self, ScrollType, f64) -> Inhibit + 'static>(
371         &self,
372         f: F,
373     ) -> SignalHandlerId {
374         unsafe extern "C" fn change_value_trampoline<
375             P,
376             F: Fn(&P, ScrollType, f64) -> Inhibit + 'static,
377         >(
378             this: *mut gtk_sys::GtkRange,
379             scroll: gtk_sys::GtkScrollType,
380             value: libc::c_double,
381             f: glib_sys::gpointer,
382         ) -> glib_sys::gboolean
383         where
384             P: IsA<Range>,
385         {
386             let f: &F = &*(f as *const F);
387             f(
388                 &Range::from_glib_borrow(this).unsafe_cast(),
389                 from_glib(scroll),
390                 value,
391             )
392             .to_glib()
393         }
394         unsafe {
395             let f: Box_<F> = Box_::new(f);
396             connect_raw(
397                 self.as_ptr() as *mut _,
398                 b"change-value\0".as_ptr() as *const _,
399                 Some(transmute(change_value_trampoline::<Self, F> as usize)),
400                 Box_::into_raw(f),
401             )
402         }
403     }
404 
connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId405     fn connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId {
406         unsafe extern "C" fn move_slider_trampoline<P, F: Fn(&P, ScrollType) + 'static>(
407             this: *mut gtk_sys::GtkRange,
408             step: gtk_sys::GtkScrollType,
409             f: glib_sys::gpointer,
410         ) where
411             P: IsA<Range>,
412         {
413             let f: &F = &*(f as *const F);
414             f(
415                 &Range::from_glib_borrow(this).unsafe_cast(),
416                 from_glib(step),
417             )
418         }
419         unsafe {
420             let f: Box_<F> = Box_::new(f);
421             connect_raw(
422                 self.as_ptr() as *mut _,
423                 b"move-slider\0".as_ptr() as *const _,
424                 Some(transmute(move_slider_trampoline::<Self, F> as usize)),
425                 Box_::into_raw(f),
426             )
427         }
428     }
429 
emit_move_slider(&self, step: ScrollType)430     fn emit_move_slider(&self, step: ScrollType) {
431         let _ = unsafe {
432             glib::Object::from_glib_borrow(self.to_glib_none().0 as *mut gobject_sys::GObject)
433                 .emit("move-slider", &[&step])
434                 .unwrap()
435         };
436     }
437 
connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId438     fn connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
439         unsafe extern "C" fn value_changed_trampoline<P, F: Fn(&P) + 'static>(
440             this: *mut gtk_sys::GtkRange,
441             f: glib_sys::gpointer,
442         ) where
443             P: IsA<Range>,
444         {
445             let f: &F = &*(f as *const F);
446             f(&Range::from_glib_borrow(this).unsafe_cast())
447         }
448         unsafe {
449             let f: Box_<F> = Box_::new(f);
450             connect_raw(
451                 self.as_ptr() as *mut _,
452                 b"value-changed\0".as_ptr() as *const _,
453                 Some(transmute(value_changed_trampoline::<Self, F> as usize)),
454                 Box_::into_raw(f),
455             )
456         }
457     }
458 
connect_property_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId459     fn connect_property_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
460         unsafe extern "C" fn notify_adjustment_trampoline<P, F: Fn(&P) + 'static>(
461             this: *mut gtk_sys::GtkRange,
462             _param_spec: glib_sys::gpointer,
463             f: glib_sys::gpointer,
464         ) where
465             P: IsA<Range>,
466         {
467             let f: &F = &*(f as *const F);
468             f(&Range::from_glib_borrow(this).unsafe_cast())
469         }
470         unsafe {
471             let f: Box_<F> = Box_::new(f);
472             connect_raw(
473                 self.as_ptr() as *mut _,
474                 b"notify::adjustment\0".as_ptr() as *const _,
475                 Some(transmute(notify_adjustment_trampoline::<Self, F> as usize)),
476                 Box_::into_raw(f),
477             )
478         }
479     }
480 
connect_property_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId481     fn connect_property_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
482         unsafe extern "C" fn notify_fill_level_trampoline<P, F: Fn(&P) + 'static>(
483             this: *mut gtk_sys::GtkRange,
484             _param_spec: glib_sys::gpointer,
485             f: glib_sys::gpointer,
486         ) where
487             P: IsA<Range>,
488         {
489             let f: &F = &*(f as *const F);
490             f(&Range::from_glib_borrow(this).unsafe_cast())
491         }
492         unsafe {
493             let f: Box_<F> = Box_::new(f);
494             connect_raw(
495                 self.as_ptr() as *mut _,
496                 b"notify::fill-level\0".as_ptr() as *const _,
497                 Some(transmute(notify_fill_level_trampoline::<Self, F> as usize)),
498                 Box_::into_raw(f),
499             )
500         }
501     }
502 
connect_property_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId503     fn connect_property_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
504         unsafe extern "C" fn notify_inverted_trampoline<P, F: Fn(&P) + 'static>(
505             this: *mut gtk_sys::GtkRange,
506             _param_spec: glib_sys::gpointer,
507             f: glib_sys::gpointer,
508         ) where
509             P: IsA<Range>,
510         {
511             let f: &F = &*(f as *const F);
512             f(&Range::from_glib_borrow(this).unsafe_cast())
513         }
514         unsafe {
515             let f: Box_<F> = Box_::new(f);
516             connect_raw(
517                 self.as_ptr() as *mut _,
518                 b"notify::inverted\0".as_ptr() as *const _,
519                 Some(transmute(notify_inverted_trampoline::<Self, F> as usize)),
520                 Box_::into_raw(f),
521             )
522         }
523     }
524 
connect_property_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId525     fn connect_property_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>(
526         &self,
527         f: F,
528     ) -> SignalHandlerId {
529         unsafe extern "C" fn notify_lower_stepper_sensitivity_trampoline<P, F: Fn(&P) + 'static>(
530             this: *mut gtk_sys::GtkRange,
531             _param_spec: glib_sys::gpointer,
532             f: glib_sys::gpointer,
533         ) where
534             P: IsA<Range>,
535         {
536             let f: &F = &*(f as *const F);
537             f(&Range::from_glib_borrow(this).unsafe_cast())
538         }
539         unsafe {
540             let f: Box_<F> = Box_::new(f);
541             connect_raw(
542                 self.as_ptr() as *mut _,
543                 b"notify::lower-stepper-sensitivity\0".as_ptr() as *const _,
544                 Some(transmute(
545                     notify_lower_stepper_sensitivity_trampoline::<Self, F> as usize,
546                 )),
547                 Box_::into_raw(f),
548             )
549         }
550     }
551 
connect_property_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId552     fn connect_property_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>(
553         &self,
554         f: F,
555     ) -> SignalHandlerId {
556         unsafe extern "C" fn notify_restrict_to_fill_level_trampoline<P, F: Fn(&P) + 'static>(
557             this: *mut gtk_sys::GtkRange,
558             _param_spec: glib_sys::gpointer,
559             f: glib_sys::gpointer,
560         ) where
561             P: IsA<Range>,
562         {
563             let f: &F = &*(f as *const F);
564             f(&Range::from_glib_borrow(this).unsafe_cast())
565         }
566         unsafe {
567             let f: Box_<F> = Box_::new(f);
568             connect_raw(
569                 self.as_ptr() as *mut _,
570                 b"notify::restrict-to-fill-level\0".as_ptr() as *const _,
571                 Some(transmute(
572                     notify_restrict_to_fill_level_trampoline::<Self, F> as usize,
573                 )),
574                 Box_::into_raw(f),
575             )
576         }
577     }
578 
connect_property_round_digits_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId579     fn connect_property_round_digits_notify<F: Fn(&Self) + 'static>(
580         &self,
581         f: F,
582     ) -> SignalHandlerId {
583         unsafe extern "C" fn notify_round_digits_trampoline<P, F: Fn(&P) + 'static>(
584             this: *mut gtk_sys::GtkRange,
585             _param_spec: glib_sys::gpointer,
586             f: glib_sys::gpointer,
587         ) where
588             P: IsA<Range>,
589         {
590             let f: &F = &*(f as *const F);
591             f(&Range::from_glib_borrow(this).unsafe_cast())
592         }
593         unsafe {
594             let f: Box_<F> = Box_::new(f);
595             connect_raw(
596                 self.as_ptr() as *mut _,
597                 b"notify::round-digits\0".as_ptr() as *const _,
598                 Some(transmute(
599                     notify_round_digits_trampoline::<Self, F> as usize,
600                 )),
601                 Box_::into_raw(f),
602             )
603         }
604     }
605 
connect_property_show_fill_level_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId606     fn connect_property_show_fill_level_notify<F: Fn(&Self) + 'static>(
607         &self,
608         f: F,
609     ) -> SignalHandlerId {
610         unsafe extern "C" fn notify_show_fill_level_trampoline<P, F: Fn(&P) + 'static>(
611             this: *mut gtk_sys::GtkRange,
612             _param_spec: glib_sys::gpointer,
613             f: glib_sys::gpointer,
614         ) where
615             P: IsA<Range>,
616         {
617             let f: &F = &*(f as *const F);
618             f(&Range::from_glib_borrow(this).unsafe_cast())
619         }
620         unsafe {
621             let f: Box_<F> = Box_::new(f);
622             connect_raw(
623                 self.as_ptr() as *mut _,
624                 b"notify::show-fill-level\0".as_ptr() as *const _,
625                 Some(transmute(
626                     notify_show_fill_level_trampoline::<Self, F> as usize,
627                 )),
628                 Box_::into_raw(f),
629             )
630         }
631     }
632 
connect_property_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId633     fn connect_property_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>(
634         &self,
635         f: F,
636     ) -> SignalHandlerId {
637         unsafe extern "C" fn notify_upper_stepper_sensitivity_trampoline<P, F: Fn(&P) + 'static>(
638             this: *mut gtk_sys::GtkRange,
639             _param_spec: glib_sys::gpointer,
640             f: glib_sys::gpointer,
641         ) where
642             P: IsA<Range>,
643         {
644             let f: &F = &*(f as *const F);
645             f(&Range::from_glib_borrow(this).unsafe_cast())
646         }
647         unsafe {
648             let f: Box_<F> = Box_::new(f);
649             connect_raw(
650                 self.as_ptr() as *mut _,
651                 b"notify::upper-stepper-sensitivity\0".as_ptr() as *const _,
652                 Some(transmute(
653                     notify_upper_stepper_sensitivity_trampoline::<Self, F> as usize,
654                 )),
655                 Box_::into_raw(f),
656             )
657         }
658     }
659 }
660 
661 impl fmt::Display for Range {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result662     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
663         write!(f, "Range")
664     }
665 }
666