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 std::boxed::Box as Box_;
18 use std::fmt;
19 use std::mem;
20 use std::mem::transmute;
21 use Adjustment;
22 use Buildable;
23 use Orientable;
24 use ScrollType;
25 use SensitivityType;
26 use Widget;
27 
28 glib_wrapper! {
29     pub struct Range(Object<gtk_sys::GtkRange, gtk_sys::GtkRangeClass, RangeClass>) @extends Widget, @implements Buildable, Orientable;
30 
31     match fn {
32         get_type => || gtk_sys::gtk_range_get_type(),
33     }
34 }
35 
36 pub const NONE_RANGE: Option<&Range> = None;
37 
38 pub trait RangeExt: 'static {
get_adjustment(&self) -> Adjustment39     fn get_adjustment(&self) -> Adjustment;
40 
get_fill_level(&self) -> f6441     fn get_fill_level(&self) -> f64;
42 
get_flippable(&self) -> bool43     fn get_flippable(&self) -> bool;
44 
get_inverted(&self) -> bool45     fn get_inverted(&self) -> bool;
46 
get_lower_stepper_sensitivity(&self) -> SensitivityType47     fn get_lower_stepper_sensitivity(&self) -> SensitivityType;
48 
49     #[cfg_attr(feature = "v3_20", deprecated)]
get_min_slider_size(&self) -> i3250     fn get_min_slider_size(&self) -> i32;
51 
get_range_rect(&self) -> gdk::Rectangle52     fn get_range_rect(&self) -> gdk::Rectangle;
53 
get_restrict_to_fill_level(&self) -> bool54     fn get_restrict_to_fill_level(&self) -> bool;
55 
get_round_digits(&self) -> i3256     fn get_round_digits(&self) -> i32;
57 
get_show_fill_level(&self) -> bool58     fn get_show_fill_level(&self) -> bool;
59 
get_slider_range(&self) -> (i32, i32)60     fn get_slider_range(&self) -> (i32, i32);
61 
get_slider_size_fixed(&self) -> bool62     fn get_slider_size_fixed(&self) -> bool;
63 
get_upper_stepper_sensitivity(&self) -> SensitivityType64     fn get_upper_stepper_sensitivity(&self) -> SensitivityType;
65 
get_value(&self) -> f6466     fn get_value(&self) -> f64;
67 
set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P)68     fn set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P);
69 
set_fill_level(&self, fill_level: f64)70     fn set_fill_level(&self, fill_level: f64);
71 
set_flippable(&self, flippable: bool)72     fn set_flippable(&self, flippable: bool);
73 
set_increments(&self, step: f64, page: f64)74     fn set_increments(&self, step: f64, page: f64);
75 
set_inverted(&self, setting: bool)76     fn set_inverted(&self, setting: bool);
77 
set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType)78     fn set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType);
79 
80     #[cfg_attr(feature = "v3_20", deprecated)]
set_min_slider_size(&self, min_size: i32)81     fn set_min_slider_size(&self, min_size: i32);
82 
set_range(&self, min: f64, max: f64)83     fn set_range(&self, min: f64, max: f64);
84 
set_restrict_to_fill_level(&self, restrict_to_fill_level: bool)85     fn set_restrict_to_fill_level(&self, restrict_to_fill_level: bool);
86 
set_round_digits(&self, round_digits: i32)87     fn set_round_digits(&self, round_digits: i32);
88 
set_show_fill_level(&self, show_fill_level: bool)89     fn set_show_fill_level(&self, show_fill_level: bool);
90 
set_slider_size_fixed(&self, size_fixed: bool)91     fn set_slider_size_fixed(&self, size_fixed: bool);
92 
set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType)93     fn set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType);
94 
set_value(&self, value: f64)95     fn set_value(&self, value: f64);
96 
connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId97     fn connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId;
98 
connect_change_value<F: Fn(&Self, ScrollType, f64) -> glib::signal::Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId99     fn connect_change_value<F: Fn(&Self, ScrollType, f64) -> glib::signal::Inhibit + 'static>(
100         &self,
101         f: F,
102     ) -> SignalHandlerId;
103 
connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId104     fn connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId;
105 
emit_move_slider(&self, step: ScrollType)106     fn emit_move_slider(&self, step: ScrollType);
107 
connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId108     fn connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
109 
connect_property_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId110     fn connect_property_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
111 
connect_property_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId112     fn connect_property_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
113 
connect_property_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId114     fn connect_property_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
115 
connect_property_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId116     fn connect_property_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>(
117         &self,
118         f: F,
119     ) -> SignalHandlerId;
120 
connect_property_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId121     fn connect_property_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>(
122         &self,
123         f: F,
124     ) -> SignalHandlerId;
125 
connect_property_round_digits_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId126     fn connect_property_round_digits_notify<F: Fn(&Self) + 'static>(&self, f: F)
127         -> SignalHandlerId;
128 
connect_property_show_fill_level_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId129     fn connect_property_show_fill_level_notify<F: Fn(&Self) + 'static>(
130         &self,
131         f: F,
132     ) -> SignalHandlerId;
133 
connect_property_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId134     fn connect_property_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>(
135         &self,
136         f: F,
137     ) -> SignalHandlerId;
138 }
139 
140 impl<O: IsA<Range>> RangeExt for O {
get_adjustment(&self) -> Adjustment141     fn get_adjustment(&self) -> Adjustment {
142         unsafe {
143             from_glib_none(gtk_sys::gtk_range_get_adjustment(
144                 self.as_ref().to_glib_none().0,
145             ))
146         }
147     }
148 
get_fill_level(&self) -> f64149     fn get_fill_level(&self) -> f64 {
150         unsafe { gtk_sys::gtk_range_get_fill_level(self.as_ref().to_glib_none().0) }
151     }
152 
get_flippable(&self) -> bool153     fn get_flippable(&self) -> bool {
154         unsafe {
155             from_glib(gtk_sys::gtk_range_get_flippable(
156                 self.as_ref().to_glib_none().0,
157             ))
158         }
159     }
160 
get_inverted(&self) -> bool161     fn get_inverted(&self) -> bool {
162         unsafe {
163             from_glib(gtk_sys::gtk_range_get_inverted(
164                 self.as_ref().to_glib_none().0,
165             ))
166         }
167     }
168 
get_lower_stepper_sensitivity(&self) -> SensitivityType169     fn get_lower_stepper_sensitivity(&self) -> SensitivityType {
170         unsafe {
171             from_glib(gtk_sys::gtk_range_get_lower_stepper_sensitivity(
172                 self.as_ref().to_glib_none().0,
173             ))
174         }
175     }
176 
get_min_slider_size(&self) -> i32177     fn get_min_slider_size(&self) -> i32 {
178         unsafe { gtk_sys::gtk_range_get_min_slider_size(self.as_ref().to_glib_none().0) }
179     }
180 
get_range_rect(&self) -> gdk::Rectangle181     fn get_range_rect(&self) -> gdk::Rectangle {
182         unsafe {
183             let mut range_rect = gdk::Rectangle::uninitialized();
184             gtk_sys::gtk_range_get_range_rect(
185                 self.as_ref().to_glib_none().0,
186                 range_rect.to_glib_none_mut().0,
187             );
188             range_rect
189         }
190     }
191 
get_restrict_to_fill_level(&self) -> bool192     fn get_restrict_to_fill_level(&self) -> bool {
193         unsafe {
194             from_glib(gtk_sys::gtk_range_get_restrict_to_fill_level(
195                 self.as_ref().to_glib_none().0,
196             ))
197         }
198     }
199 
get_round_digits(&self) -> i32200     fn get_round_digits(&self) -> i32 {
201         unsafe { gtk_sys::gtk_range_get_round_digits(self.as_ref().to_glib_none().0) }
202     }
203 
get_show_fill_level(&self) -> bool204     fn get_show_fill_level(&self) -> bool {
205         unsafe {
206             from_glib(gtk_sys::gtk_range_get_show_fill_level(
207                 self.as_ref().to_glib_none().0,
208             ))
209         }
210     }
211 
get_slider_range(&self) -> (i32, i32)212     fn get_slider_range(&self) -> (i32, i32) {
213         unsafe {
214             let mut slider_start = mem::MaybeUninit::uninit();
215             let mut slider_end = mem::MaybeUninit::uninit();
216             gtk_sys::gtk_range_get_slider_range(
217                 self.as_ref().to_glib_none().0,
218                 slider_start.as_mut_ptr(),
219                 slider_end.as_mut_ptr(),
220             );
221             let slider_start = slider_start.assume_init();
222             let slider_end = slider_end.assume_init();
223             (slider_start, slider_end)
224         }
225     }
226 
get_slider_size_fixed(&self) -> bool227     fn get_slider_size_fixed(&self) -> bool {
228         unsafe {
229             from_glib(gtk_sys::gtk_range_get_slider_size_fixed(
230                 self.as_ref().to_glib_none().0,
231             ))
232         }
233     }
234 
get_upper_stepper_sensitivity(&self) -> SensitivityType235     fn get_upper_stepper_sensitivity(&self) -> SensitivityType {
236         unsafe {
237             from_glib(gtk_sys::gtk_range_get_upper_stepper_sensitivity(
238                 self.as_ref().to_glib_none().0,
239             ))
240         }
241     }
242 
get_value(&self) -> f64243     fn get_value(&self) -> f64 {
244         unsafe { gtk_sys::gtk_range_get_value(self.as_ref().to_glib_none().0) }
245     }
246 
set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P)247     fn set_adjustment<P: IsA<Adjustment>>(&self, adjustment: &P) {
248         unsafe {
249             gtk_sys::gtk_range_set_adjustment(
250                 self.as_ref().to_glib_none().0,
251                 adjustment.as_ref().to_glib_none().0,
252             );
253         }
254     }
255 
set_fill_level(&self, fill_level: f64)256     fn set_fill_level(&self, fill_level: f64) {
257         unsafe {
258             gtk_sys::gtk_range_set_fill_level(self.as_ref().to_glib_none().0, fill_level);
259         }
260     }
261 
set_flippable(&self, flippable: bool)262     fn set_flippable(&self, flippable: bool) {
263         unsafe {
264             gtk_sys::gtk_range_set_flippable(self.as_ref().to_glib_none().0, flippable.to_glib());
265         }
266     }
267 
set_increments(&self, step: f64, page: f64)268     fn set_increments(&self, step: f64, page: f64) {
269         unsafe {
270             gtk_sys::gtk_range_set_increments(self.as_ref().to_glib_none().0, step, page);
271         }
272     }
273 
set_inverted(&self, setting: bool)274     fn set_inverted(&self, setting: bool) {
275         unsafe {
276             gtk_sys::gtk_range_set_inverted(self.as_ref().to_glib_none().0, setting.to_glib());
277         }
278     }
279 
set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType)280     fn set_lower_stepper_sensitivity(&self, sensitivity: SensitivityType) {
281         unsafe {
282             gtk_sys::gtk_range_set_lower_stepper_sensitivity(
283                 self.as_ref().to_glib_none().0,
284                 sensitivity.to_glib(),
285             );
286         }
287     }
288 
set_min_slider_size(&self, min_size: i32)289     fn set_min_slider_size(&self, min_size: i32) {
290         unsafe {
291             gtk_sys::gtk_range_set_min_slider_size(self.as_ref().to_glib_none().0, min_size);
292         }
293     }
294 
set_range(&self, min: f64, max: f64)295     fn set_range(&self, min: f64, max: f64) {
296         unsafe {
297             gtk_sys::gtk_range_set_range(self.as_ref().to_glib_none().0, min, max);
298         }
299     }
300 
set_restrict_to_fill_level(&self, restrict_to_fill_level: bool)301     fn set_restrict_to_fill_level(&self, restrict_to_fill_level: bool) {
302         unsafe {
303             gtk_sys::gtk_range_set_restrict_to_fill_level(
304                 self.as_ref().to_glib_none().0,
305                 restrict_to_fill_level.to_glib(),
306             );
307         }
308     }
309 
set_round_digits(&self, round_digits: i32)310     fn set_round_digits(&self, round_digits: i32) {
311         unsafe {
312             gtk_sys::gtk_range_set_round_digits(self.as_ref().to_glib_none().0, round_digits);
313         }
314     }
315 
set_show_fill_level(&self, show_fill_level: bool)316     fn set_show_fill_level(&self, show_fill_level: bool) {
317         unsafe {
318             gtk_sys::gtk_range_set_show_fill_level(
319                 self.as_ref().to_glib_none().0,
320                 show_fill_level.to_glib(),
321             );
322         }
323     }
324 
set_slider_size_fixed(&self, size_fixed: bool)325     fn set_slider_size_fixed(&self, size_fixed: bool) {
326         unsafe {
327             gtk_sys::gtk_range_set_slider_size_fixed(
328                 self.as_ref().to_glib_none().0,
329                 size_fixed.to_glib(),
330             );
331         }
332     }
333 
set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType)334     fn set_upper_stepper_sensitivity(&self, sensitivity: SensitivityType) {
335         unsafe {
336             gtk_sys::gtk_range_set_upper_stepper_sensitivity(
337                 self.as_ref().to_glib_none().0,
338                 sensitivity.to_glib(),
339             );
340         }
341     }
342 
set_value(&self, value: f64)343     fn set_value(&self, value: f64) {
344         unsafe {
345             gtk_sys::gtk_range_set_value(self.as_ref().to_glib_none().0, value);
346         }
347     }
348 
connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId349     fn connect_adjust_bounds<F: Fn(&Self, f64) + 'static>(&self, f: F) -> SignalHandlerId {
350         unsafe extern "C" fn adjust_bounds_trampoline<P, F: Fn(&P, f64) + 'static>(
351             this: *mut gtk_sys::GtkRange,
352             value: libc::c_double,
353             f: glib_sys::gpointer,
354         ) where
355             P: IsA<Range>,
356         {
357             let f: &F = &*(f as *const F);
358             f(&Range::from_glib_borrow(this).unsafe_cast(), value)
359         }
360         unsafe {
361             let f: Box_<F> = Box_::new(f);
362             connect_raw(
363                 self.as_ptr() as *mut _,
364                 b"adjust-bounds\0".as_ptr() as *const _,
365                 Some(transmute(adjust_bounds_trampoline::<Self, F> as usize)),
366                 Box_::into_raw(f),
367             )
368         }
369     }
370 
connect_change_value<F: Fn(&Self, ScrollType, f64) -> glib::signal::Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId371     fn connect_change_value<F: Fn(&Self, ScrollType, f64) -> glib::signal::Inhibit + 'static>(
372         &self,
373         f: F,
374     ) -> SignalHandlerId {
375         unsafe extern "C" fn change_value_trampoline<
376             P,
377             F: Fn(&P, ScrollType, f64) -> glib::signal::Inhibit + 'static,
378         >(
379             this: *mut gtk_sys::GtkRange,
380             scroll: gtk_sys::GtkScrollType,
381             value: libc::c_double,
382             f: glib_sys::gpointer,
383         ) -> glib_sys::gboolean
384         where
385             P: IsA<Range>,
386         {
387             let f: &F = &*(f as *const F);
388             f(
389                 &Range::from_glib_borrow(this).unsafe_cast(),
390                 from_glib(scroll),
391                 value,
392             )
393             .to_glib()
394         }
395         unsafe {
396             let f: Box_<F> = Box_::new(f);
397             connect_raw(
398                 self.as_ptr() as *mut _,
399                 b"change-value\0".as_ptr() as *const _,
400                 Some(transmute(change_value_trampoline::<Self, F> as usize)),
401                 Box_::into_raw(f),
402             )
403         }
404     }
405 
connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId406     fn connect_move_slider<F: Fn(&Self, ScrollType) + 'static>(&self, f: F) -> SignalHandlerId {
407         unsafe extern "C" fn move_slider_trampoline<P, F: Fn(&P, ScrollType) + 'static>(
408             this: *mut gtk_sys::GtkRange,
409             step: gtk_sys::GtkScrollType,
410             f: glib_sys::gpointer,
411         ) where
412             P: IsA<Range>,
413         {
414             let f: &F = &*(f as *const F);
415             f(
416                 &Range::from_glib_borrow(this).unsafe_cast(),
417                 from_glib(step),
418             )
419         }
420         unsafe {
421             let f: Box_<F> = Box_::new(f);
422             connect_raw(
423                 self.as_ptr() as *mut _,
424                 b"move-slider\0".as_ptr() as *const _,
425                 Some(transmute(move_slider_trampoline::<Self, F> as usize)),
426                 Box_::into_raw(f),
427             )
428         }
429     }
430 
emit_move_slider(&self, step: ScrollType)431     fn emit_move_slider(&self, step: ScrollType) {
432         let _ = unsafe {
433             glib::Object::from_glib_borrow(self.to_glib_none().0 as *mut gobject_sys::GObject)
434                 .emit("move-slider", &[&step])
435                 .unwrap()
436         };
437     }
438 
connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId439     fn connect_value_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
440         unsafe extern "C" fn value_changed_trampoline<P, F: Fn(&P) + 'static>(
441             this: *mut gtk_sys::GtkRange,
442             f: glib_sys::gpointer,
443         ) where
444             P: IsA<Range>,
445         {
446             let f: &F = &*(f as *const F);
447             f(&Range::from_glib_borrow(this).unsafe_cast())
448         }
449         unsafe {
450             let f: Box_<F> = Box_::new(f);
451             connect_raw(
452                 self.as_ptr() as *mut _,
453                 b"value-changed\0".as_ptr() as *const _,
454                 Some(transmute(value_changed_trampoline::<Self, F> as usize)),
455                 Box_::into_raw(f),
456             )
457         }
458     }
459 
connect_property_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId460     fn connect_property_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
461         unsafe extern "C" fn notify_adjustment_trampoline<P, F: Fn(&P) + 'static>(
462             this: *mut gtk_sys::GtkRange,
463             _param_spec: glib_sys::gpointer,
464             f: glib_sys::gpointer,
465         ) where
466             P: IsA<Range>,
467         {
468             let f: &F = &*(f as *const F);
469             f(&Range::from_glib_borrow(this).unsafe_cast())
470         }
471         unsafe {
472             let f: Box_<F> = Box_::new(f);
473             connect_raw(
474                 self.as_ptr() as *mut _,
475                 b"notify::adjustment\0".as_ptr() as *const _,
476                 Some(transmute(notify_adjustment_trampoline::<Self, F> as usize)),
477                 Box_::into_raw(f),
478             )
479         }
480     }
481 
connect_property_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId482     fn connect_property_fill_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
483         unsafe extern "C" fn notify_fill_level_trampoline<P, F: Fn(&P) + 'static>(
484             this: *mut gtk_sys::GtkRange,
485             _param_spec: glib_sys::gpointer,
486             f: glib_sys::gpointer,
487         ) where
488             P: IsA<Range>,
489         {
490             let f: &F = &*(f as *const F);
491             f(&Range::from_glib_borrow(this).unsafe_cast())
492         }
493         unsafe {
494             let f: Box_<F> = Box_::new(f);
495             connect_raw(
496                 self.as_ptr() as *mut _,
497                 b"notify::fill-level\0".as_ptr() as *const _,
498                 Some(transmute(notify_fill_level_trampoline::<Self, F> as usize)),
499                 Box_::into_raw(f),
500             )
501         }
502     }
503 
connect_property_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId504     fn connect_property_inverted_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
505         unsafe extern "C" fn notify_inverted_trampoline<P, F: Fn(&P) + 'static>(
506             this: *mut gtk_sys::GtkRange,
507             _param_spec: glib_sys::gpointer,
508             f: glib_sys::gpointer,
509         ) where
510             P: IsA<Range>,
511         {
512             let f: &F = &*(f as *const F);
513             f(&Range::from_glib_borrow(this).unsafe_cast())
514         }
515         unsafe {
516             let f: Box_<F> = Box_::new(f);
517             connect_raw(
518                 self.as_ptr() as *mut _,
519                 b"notify::inverted\0".as_ptr() as *const _,
520                 Some(transmute(notify_inverted_trampoline::<Self, F> as usize)),
521                 Box_::into_raw(f),
522             )
523         }
524     }
525 
connect_property_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId526     fn connect_property_lower_stepper_sensitivity_notify<F: Fn(&Self) + 'static>(
527         &self,
528         f: F,
529     ) -> SignalHandlerId {
530         unsafe extern "C" fn notify_lower_stepper_sensitivity_trampoline<P, F: Fn(&P) + 'static>(
531             this: *mut gtk_sys::GtkRange,
532             _param_spec: glib_sys::gpointer,
533             f: glib_sys::gpointer,
534         ) where
535             P: IsA<Range>,
536         {
537             let f: &F = &*(f as *const F);
538             f(&Range::from_glib_borrow(this).unsafe_cast())
539         }
540         unsafe {
541             let f: Box_<F> = Box_::new(f);
542             connect_raw(
543                 self.as_ptr() as *mut _,
544                 b"notify::lower-stepper-sensitivity\0".as_ptr() as *const _,
545                 Some(transmute(
546                     notify_lower_stepper_sensitivity_trampoline::<Self, F> as usize,
547                 )),
548                 Box_::into_raw(f),
549             )
550         }
551     }
552 
connect_property_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId553     fn connect_property_restrict_to_fill_level_notify<F: Fn(&Self) + 'static>(
554         &self,
555         f: F,
556     ) -> SignalHandlerId {
557         unsafe extern "C" fn notify_restrict_to_fill_level_trampoline<P, F: Fn(&P) + 'static>(
558             this: *mut gtk_sys::GtkRange,
559             _param_spec: glib_sys::gpointer,
560             f: glib_sys::gpointer,
561         ) where
562             P: IsA<Range>,
563         {
564             let f: &F = &*(f as *const F);
565             f(&Range::from_glib_borrow(this).unsafe_cast())
566         }
567         unsafe {
568             let f: Box_<F> = Box_::new(f);
569             connect_raw(
570                 self.as_ptr() as *mut _,
571                 b"notify::restrict-to-fill-level\0".as_ptr() as *const _,
572                 Some(transmute(
573                     notify_restrict_to_fill_level_trampoline::<Self, F> as usize,
574                 )),
575                 Box_::into_raw(f),
576             )
577         }
578     }
579 
connect_property_round_digits_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId580     fn connect_property_round_digits_notify<F: Fn(&Self) + 'static>(
581         &self,
582         f: F,
583     ) -> SignalHandlerId {
584         unsafe extern "C" fn notify_round_digits_trampoline<P, F: Fn(&P) + 'static>(
585             this: *mut gtk_sys::GtkRange,
586             _param_spec: glib_sys::gpointer,
587             f: glib_sys::gpointer,
588         ) where
589             P: IsA<Range>,
590         {
591             let f: &F = &*(f as *const F);
592             f(&Range::from_glib_borrow(this).unsafe_cast())
593         }
594         unsafe {
595             let f: Box_<F> = Box_::new(f);
596             connect_raw(
597                 self.as_ptr() as *mut _,
598                 b"notify::round-digits\0".as_ptr() as *const _,
599                 Some(transmute(
600                     notify_round_digits_trampoline::<Self, F> as usize,
601                 )),
602                 Box_::into_raw(f),
603             )
604         }
605     }
606 
connect_property_show_fill_level_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId607     fn connect_property_show_fill_level_notify<F: Fn(&Self) + 'static>(
608         &self,
609         f: F,
610     ) -> SignalHandlerId {
611         unsafe extern "C" fn notify_show_fill_level_trampoline<P, F: Fn(&P) + 'static>(
612             this: *mut gtk_sys::GtkRange,
613             _param_spec: glib_sys::gpointer,
614             f: glib_sys::gpointer,
615         ) where
616             P: IsA<Range>,
617         {
618             let f: &F = &*(f as *const F);
619             f(&Range::from_glib_borrow(this).unsafe_cast())
620         }
621         unsafe {
622             let f: Box_<F> = Box_::new(f);
623             connect_raw(
624                 self.as_ptr() as *mut _,
625                 b"notify::show-fill-level\0".as_ptr() as *const _,
626                 Some(transmute(
627                     notify_show_fill_level_trampoline::<Self, F> as usize,
628                 )),
629                 Box_::into_raw(f),
630             )
631         }
632     }
633 
connect_property_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId634     fn connect_property_upper_stepper_sensitivity_notify<F: Fn(&Self) + 'static>(
635         &self,
636         f: F,
637     ) -> SignalHandlerId {
638         unsafe extern "C" fn notify_upper_stepper_sensitivity_trampoline<P, F: Fn(&P) + 'static>(
639             this: *mut gtk_sys::GtkRange,
640             _param_spec: glib_sys::gpointer,
641             f: glib_sys::gpointer,
642         ) where
643             P: IsA<Range>,
644         {
645             let f: &F = &*(f as *const F);
646             f(&Range::from_glib_borrow(this).unsafe_cast())
647         }
648         unsafe {
649             let f: Box_<F> = Box_::new(f);
650             connect_raw(
651                 self.as_ptr() as *mut _,
652                 b"notify::upper-stepper-sensitivity\0".as_ptr() as *const _,
653                 Some(transmute(
654                     notify_upper_stepper_sensitivity_trampoline::<Self, F> as usize,
655                 )),
656                 Box_::into_raw(f),
657             )
658         }
659     }
660 }
661 
662 impl fmt::Display for Range {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result663     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
664         write!(f, "Range")
665     }
666 }
667