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