1#![allow(deprecated)]
5
6use crate::{
7 CellEditable, CellRendererMode, CellRendererState, Requisition, SizeRequestMode, Snapshot,
8 StateFlags, TreePath, Widget, ffi,
9};
10use glib::{
11 object::ObjectType as _,
12 prelude::*,
13 signal::{SignalHandlerId, connect_raw},
14 translate::*,
15};
16use std::boxed::Box as Box_;
17
18glib::wrapper! {
19 #[doc(alias = "GtkCellRenderer")]
178 pub struct CellRenderer(Object<ffi::GtkCellRenderer, ffi::GtkCellRendererClass>);
179
180 match fn {
181 type_ => || ffi::gtk_cell_renderer_get_type(),
182 }
183}
184
185impl CellRenderer {
186 pub const NONE: Option<&'static CellRenderer> = None;
187}
188
189pub trait CellRendererExt: IsA<CellRenderer> + 'static {
195 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
219 #[allow(deprecated)]
220 #[doc(alias = "gtk_cell_renderer_activate")]
221 fn activate(
222 &self,
223 event: impl AsRef<gdk::Event>,
224 widget: &impl IsA<Widget>,
225 path: &str,
226 background_area: &gdk::Rectangle,
227 cell_area: &gdk::Rectangle,
228 flags: CellRendererState,
229 ) -> bool {
230 unsafe {
231 from_glib(ffi::gtk_cell_renderer_activate(
232 self.as_ref().to_glib_none().0,
233 event.as_ref().to_glib_none().0,
234 widget.as_ref().to_glib_none().0,
235 path.to_glib_none().0,
236 background_area.to_glib_none().0,
237 cell_area.to_glib_none().0,
238 flags.into_glib(),
239 ))
240 }
241 }
242
243 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
262 #[allow(deprecated)]
263 #[doc(alias = "gtk_cell_renderer_get_aligned_area")]
264 #[doc(alias = "get_aligned_area")]
265 fn aligned_area(
266 &self,
267 widget: &impl IsA<Widget>,
268 flags: CellRendererState,
269 cell_area: &gdk::Rectangle,
270 ) -> gdk::Rectangle {
271 unsafe {
272 let mut aligned_area = gdk::Rectangle::uninitialized();
273 ffi::gtk_cell_renderer_get_aligned_area(
274 self.as_ref().to_glib_none().0,
275 widget.as_ref().to_glib_none().0,
276 flags.into_glib(),
277 cell_area.to_glib_none().0,
278 aligned_area.to_glib_none_mut().0,
279 );
280 aligned_area
281 }
282 }
283
284 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
298 #[allow(deprecated)]
299 #[doc(alias = "gtk_cell_renderer_get_alignment")]
300 #[doc(alias = "get_alignment")]
301 fn alignment(&self) -> (f32, f32) {
302 unsafe {
303 let mut xalign = std::mem::MaybeUninit::uninit();
304 let mut yalign = std::mem::MaybeUninit::uninit();
305 ffi::gtk_cell_renderer_get_alignment(
306 self.as_ref().to_glib_none().0,
307 xalign.as_mut_ptr(),
308 yalign.as_mut_ptr(),
309 );
310 (xalign.assume_init(), yalign.assume_init())
311 }
312 }
313
314 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
328 #[allow(deprecated)]
329 #[doc(alias = "gtk_cell_renderer_get_fixed_size")]
330 #[doc(alias = "get_fixed_size")]
331 fn fixed_size(&self) -> (i32, i32) {
332 unsafe {
333 let mut width = std::mem::MaybeUninit::uninit();
334 let mut height = std::mem::MaybeUninit::uninit();
335 ffi::gtk_cell_renderer_get_fixed_size(
336 self.as_ref().to_glib_none().0,
337 width.as_mut_ptr(),
338 height.as_mut_ptr(),
339 );
340 (width.assume_init(), height.assume_init())
341 }
342 }
343
344 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
353 #[allow(deprecated)]
354 #[doc(alias = "gtk_cell_renderer_get_is_expanded")]
355 #[doc(alias = "get_is_expanded")]
356 #[doc(alias = "is-expanded")]
357 fn is_expanded(&self) -> bool {
358 unsafe {
359 from_glib(ffi::gtk_cell_renderer_get_is_expanded(
360 self.as_ref().to_glib_none().0,
361 ))
362 }
363 }
364
365 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
374 #[allow(deprecated)]
375 #[doc(alias = "gtk_cell_renderer_get_is_expander")]
376 #[doc(alias = "get_is_expander")]
377 #[doc(alias = "is-expander")]
378 fn is_expander(&self) -> bool {
379 unsafe {
380 from_glib(ffi::gtk_cell_renderer_get_is_expander(
381 self.as_ref().to_glib_none().0,
382 ))
383 }
384 }
385
386 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
400 #[allow(deprecated)]
401 #[doc(alias = "gtk_cell_renderer_get_padding")]
402 #[doc(alias = "get_padding")]
403 fn padding(&self) -> (i32, i32) {
404 unsafe {
405 let mut xpad = std::mem::MaybeUninit::uninit();
406 let mut ypad = std::mem::MaybeUninit::uninit();
407 ffi::gtk_cell_renderer_get_padding(
408 self.as_ref().to_glib_none().0,
409 xpad.as_mut_ptr(),
410 ypad.as_mut_ptr(),
411 );
412 (xpad.assume_init(), ypad.assume_init())
413 }
414 }
415
416 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
432 #[allow(deprecated)]
433 #[doc(alias = "gtk_cell_renderer_get_preferred_height")]
434 #[doc(alias = "get_preferred_height")]
435 fn preferred_height(&self, widget: &impl IsA<Widget>) -> (i32, i32) {
436 unsafe {
437 let mut minimum_size = std::mem::MaybeUninit::uninit();
438 let mut natural_size = std::mem::MaybeUninit::uninit();
439 ffi::gtk_cell_renderer_get_preferred_height(
440 self.as_ref().to_glib_none().0,
441 widget.as_ref().to_glib_none().0,
442 minimum_size.as_mut_ptr(),
443 natural_size.as_mut_ptr(),
444 );
445 (minimum_size.assume_init(), natural_size.assume_init())
446 }
447 }
448
449 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
468 #[allow(deprecated)]
469 #[doc(alias = "gtk_cell_renderer_get_preferred_height_for_width")]
470 #[doc(alias = "get_preferred_height_for_width")]
471 fn preferred_height_for_width(&self, widget: &impl IsA<Widget>, width: i32) -> (i32, i32) {
472 unsafe {
473 let mut minimum_height = std::mem::MaybeUninit::uninit();
474 let mut natural_height = std::mem::MaybeUninit::uninit();
475 ffi::gtk_cell_renderer_get_preferred_height_for_width(
476 self.as_ref().to_glib_none().0,
477 widget.as_ref().to_glib_none().0,
478 width,
479 minimum_height.as_mut_ptr(),
480 natural_height.as_mut_ptr(),
481 );
482 (minimum_height.assume_init(), natural_height.assume_init())
483 }
484 }
485
486 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
503 #[allow(deprecated)]
504 #[doc(alias = "gtk_cell_renderer_get_preferred_size")]
505 #[doc(alias = "get_preferred_size")]
506 fn preferred_size(&self, widget: &impl IsA<Widget>) -> (Requisition, Requisition) {
507 unsafe {
508 let mut minimum_size = Requisition::uninitialized();
509 let mut natural_size = Requisition::uninitialized();
510 ffi::gtk_cell_renderer_get_preferred_size(
511 self.as_ref().to_glib_none().0,
512 widget.as_ref().to_glib_none().0,
513 minimum_size.to_glib_none_mut().0,
514 natural_size.to_glib_none_mut().0,
515 );
516 (minimum_size, natural_size)
517 }
518 }
519
520 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
536 #[allow(deprecated)]
537 #[doc(alias = "gtk_cell_renderer_get_preferred_width")]
538 #[doc(alias = "get_preferred_width")]
539 fn preferred_width(&self, widget: &impl IsA<Widget>) -> (i32, i32) {
540 unsafe {
541 let mut minimum_size = std::mem::MaybeUninit::uninit();
542 let mut natural_size = std::mem::MaybeUninit::uninit();
543 ffi::gtk_cell_renderer_get_preferred_width(
544 self.as_ref().to_glib_none().0,
545 widget.as_ref().to_glib_none().0,
546 minimum_size.as_mut_ptr(),
547 natural_size.as_mut_ptr(),
548 );
549 (minimum_size.assume_init(), natural_size.assume_init())
550 }
551 }
552
553 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
572 #[allow(deprecated)]
573 #[doc(alias = "gtk_cell_renderer_get_preferred_width_for_height")]
574 #[doc(alias = "get_preferred_width_for_height")]
575 fn preferred_width_for_height(&self, widget: &impl IsA<Widget>, height: i32) -> (i32, i32) {
576 unsafe {
577 let mut minimum_width = std::mem::MaybeUninit::uninit();
578 let mut natural_width = std::mem::MaybeUninit::uninit();
579 ffi::gtk_cell_renderer_get_preferred_width_for_height(
580 self.as_ref().to_glib_none().0,
581 widget.as_ref().to_glib_none().0,
582 height,
583 minimum_width.as_mut_ptr(),
584 natural_width.as_mut_ptr(),
585 );
586 (minimum_width.assume_init(), natural_width.assume_init())
587 }
588 }
589
590 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
600 #[allow(deprecated)]
601 #[doc(alias = "gtk_cell_renderer_get_request_mode")]
602 #[doc(alias = "get_request_mode")]
603 fn request_mode(&self) -> SizeRequestMode {
604 unsafe {
605 from_glib(ffi::gtk_cell_renderer_get_request_mode(
606 self.as_ref().to_glib_none().0,
607 ))
608 }
609 }
610
611 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
620 #[allow(deprecated)]
621 #[doc(alias = "gtk_cell_renderer_get_sensitive")]
622 #[doc(alias = "get_sensitive")]
623 #[doc(alias = "sensitive")]
624 fn is_sensitive(&self) -> bool {
625 unsafe {
626 from_glib(ffi::gtk_cell_renderer_get_sensitive(
627 self.as_ref().to_glib_none().0,
628 ))
629 }
630 }
631
632 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
647 #[allow(deprecated)]
648 #[doc(alias = "gtk_cell_renderer_get_state")]
649 #[doc(alias = "get_state")]
650 fn state(
651 &self,
652 widget: Option<&impl IsA<Widget>>,
653 cell_state: CellRendererState,
654 ) -> StateFlags {
655 unsafe {
656 from_glib(ffi::gtk_cell_renderer_get_state(
657 self.as_ref().to_glib_none().0,
658 widget.map(|p| p.as_ref()).to_glib_none().0,
659 cell_state.into_glib(),
660 ))
661 }
662 }
663
664 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
673 #[allow(deprecated)]
674 #[doc(alias = "gtk_cell_renderer_get_visible")]
675 #[doc(alias = "get_visible")]
676 #[doc(alias = "visible")]
677 fn is_visible(&self) -> bool {
678 unsafe {
679 from_glib(ffi::gtk_cell_renderer_get_visible(
680 self.as_ref().to_glib_none().0,
681 ))
682 }
683 }
684
685 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
694 #[allow(deprecated)]
695 #[doc(alias = "gtk_cell_renderer_is_activatable")]
696 fn is_activatable(&self) -> bool {
697 unsafe {
698 from_glib(ffi::gtk_cell_renderer_is_activatable(
699 self.as_ref().to_glib_none().0,
700 ))
701 }
702 }
703
704 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
713 #[allow(deprecated)]
714 #[doc(alias = "gtk_cell_renderer_set_alignment")]
715 fn set_alignment(&self, xalign: f32, yalign: f32) {
716 unsafe {
717 ffi::gtk_cell_renderer_set_alignment(self.as_ref().to_glib_none().0, xalign, yalign);
718 }
719 }
720
721 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
730 #[allow(deprecated)]
731 #[doc(alias = "gtk_cell_renderer_set_fixed_size")]
732 fn set_fixed_size(&self, width: i32, height: i32) {
733 unsafe {
734 ffi::gtk_cell_renderer_set_fixed_size(self.as_ref().to_glib_none().0, width, height);
735 }
736 }
737
738 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
745 #[allow(deprecated)]
746 #[doc(alias = "gtk_cell_renderer_set_is_expanded")]
747 #[doc(alias = "is-expanded")]
748 fn set_is_expanded(&self, is_expanded: bool) {
749 unsafe {
750 ffi::gtk_cell_renderer_set_is_expanded(
751 self.as_ref().to_glib_none().0,
752 is_expanded.into_glib(),
753 );
754 }
755 }
756
757 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
764 #[allow(deprecated)]
765 #[doc(alias = "gtk_cell_renderer_set_is_expander")]
766 #[doc(alias = "is-expander")]
767 fn set_is_expander(&self, is_expander: bool) {
768 unsafe {
769 ffi::gtk_cell_renderer_set_is_expander(
770 self.as_ref().to_glib_none().0,
771 is_expander.into_glib(),
772 );
773 }
774 }
775
776 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
785 #[allow(deprecated)]
786 #[doc(alias = "gtk_cell_renderer_set_padding")]
787 fn set_padding(&self, xpad: i32, ypad: i32) {
788 unsafe {
789 ffi::gtk_cell_renderer_set_padding(self.as_ref().to_glib_none().0, xpad, ypad);
790 }
791 }
792
793 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
800 #[allow(deprecated)]
801 #[doc(alias = "gtk_cell_renderer_set_sensitive")]
802 #[doc(alias = "sensitive")]
803 fn set_sensitive(&self, sensitive: bool) {
804 unsafe {
805 ffi::gtk_cell_renderer_set_sensitive(
806 self.as_ref().to_glib_none().0,
807 sensitive.into_glib(),
808 );
809 }
810 }
811
812 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
819 #[allow(deprecated)]
820 #[doc(alias = "gtk_cell_renderer_set_visible")]
821 #[doc(alias = "visible")]
822 fn set_visible(&self, visible: bool) {
823 unsafe {
824 ffi::gtk_cell_renderer_set_visible(self.as_ref().to_glib_none().0, visible.into_glib());
825 }
826 }
827
828 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
850 #[allow(deprecated)]
851 #[doc(alias = "gtk_cell_renderer_snapshot")]
852 fn snapshot(
853 &self,
854 snapshot: &impl IsA<Snapshot>,
855 widget: &impl IsA<Widget>,
856 background_area: &gdk::Rectangle,
857 cell_area: &gdk::Rectangle,
858 flags: CellRendererState,
859 ) {
860 unsafe {
861 ffi::gtk_cell_renderer_snapshot(
862 self.as_ref().to_glib_none().0,
863 snapshot.as_ref().to_glib_none().0,
864 widget.as_ref().to_glib_none().0,
865 background_area.to_glib_none().0,
866 cell_area.to_glib_none().0,
867 flags.into_glib(),
868 );
869 }
870 }
871
872 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
896 #[allow(deprecated)]
897 #[doc(alias = "gtk_cell_renderer_start_editing")]
898 fn start_editing(
899 &self,
900 event: Option<impl AsRef<gdk::Event>>,
901 widget: &impl IsA<Widget>,
902 path: &str,
903 background_area: &gdk::Rectangle,
904 cell_area: &gdk::Rectangle,
905 flags: CellRendererState,
906 ) -> Option<CellEditable> {
907 unsafe {
908 from_glib_none(ffi::gtk_cell_renderer_start_editing(
909 self.as_ref().to_glib_none().0,
910 event.as_ref().map(|p| p.as_ref()).to_glib_none().0,
911 widget.as_ref().to_glib_none().0,
912 path.to_glib_none().0,
913 background_area.to_glib_none().0,
914 cell_area.to_glib_none().0,
915 flags.into_glib(),
916 ))
917 }
918 }
919
920 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
933 #[allow(deprecated)]
934 #[doc(alias = "gtk_cell_renderer_stop_editing")]
935 fn stop_editing(&self, canceled: bool) {
936 unsafe {
937 ffi::gtk_cell_renderer_stop_editing(
938 self.as_ref().to_glib_none().0,
939 canceled.into_glib(),
940 );
941 }
942 }
943
944 #[doc(alias = "cell-background")]
945 fn set_cell_background(&self, cell_background: Option<&str>) {
946 ObjectExt::set_property(self.as_ref(), "cell-background", cell_background)
947 }
948
949 #[doc(alias = "cell-background-rgba")]
951 fn cell_background_rgba(&self) -> Option<gdk::RGBA> {
952 ObjectExt::property(self.as_ref(), "cell-background-rgba")
953 }
954
955 #[doc(alias = "cell-background-rgba")]
957 fn set_cell_background_rgba(&self, cell_background_rgba: Option<&gdk::RGBA>) {
958 ObjectExt::set_property(self.as_ref(), "cell-background-rgba", cell_background_rgba)
959 }
960
961 #[doc(alias = "cell-background-set")]
962 fn is_cell_background_set(&self) -> bool {
963 ObjectExt::property(self.as_ref(), "cell-background-set")
964 }
965
966 fn is_editing(&self) -> bool {
967 ObjectExt::property(self.as_ref(), "editing")
968 }
969
970 fn height(&self) -> i32 {
971 ObjectExt::property(self.as_ref(), "height")
972 }
973
974 fn set_height(&self, height: i32) {
975 ObjectExt::set_property(self.as_ref(), "height", height)
976 }
977
978 fn mode(&self) -> CellRendererMode {
979 ObjectExt::property(self.as_ref(), "mode")
980 }
981
982 fn set_mode(&self, mode: CellRendererMode) {
983 ObjectExt::set_property(self.as_ref(), "mode", mode)
984 }
985
986 fn width(&self) -> i32 {
987 ObjectExt::property(self.as_ref(), "width")
988 }
989
990 fn set_width(&self, width: i32) {
991 ObjectExt::set_property(self.as_ref(), "width", width)
992 }
993
994 fn xalign(&self) -> f32 {
995 ObjectExt::property(self.as_ref(), "xalign")
996 }
997
998 fn set_xalign(&self, xalign: f32) {
999 ObjectExt::set_property(self.as_ref(), "xalign", xalign)
1000 }
1001
1002 fn xpad(&self) -> u32 {
1003 ObjectExt::property(self.as_ref(), "xpad")
1004 }
1005
1006 fn set_xpad(&self, xpad: u32) {
1007 ObjectExt::set_property(self.as_ref(), "xpad", xpad)
1008 }
1009
1010 fn yalign(&self) -> f32 {
1011 ObjectExt::property(self.as_ref(), "yalign")
1012 }
1013
1014 fn set_yalign(&self, yalign: f32) {
1015 ObjectExt::set_property(self.as_ref(), "yalign", yalign)
1016 }
1017
1018 fn ypad(&self) -> u32 {
1019 ObjectExt::property(self.as_ref(), "ypad")
1020 }
1021
1022 fn set_ypad(&self, ypad: u32) {
1023 ObjectExt::set_property(self.as_ref(), "ypad", ypad)
1024 }
1025
1026 #[doc(alias = "editing-canceled")]
1032 fn connect_editing_canceled<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1033 unsafe extern "C" fn editing_canceled_trampoline<
1034 P: IsA<CellRenderer>,
1035 F: Fn(&P) + 'static,
1036 >(
1037 this: *mut ffi::GtkCellRenderer,
1038 f: glib::ffi::gpointer,
1039 ) {
1040 unsafe {
1041 let f: &F = &*(f as *const F);
1042 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1043 }
1044 }
1045 unsafe {
1046 let f: Box_<F> = Box_::new(f);
1047 connect_raw(
1048 self.as_ptr() as *mut _,
1049 c"editing-canceled".as_ptr() as *const _,
1050 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1051 editing_canceled_trampoline::<Self, F> as *const (),
1052 )),
1053 Box_::into_raw(f),
1054 )
1055 }
1056 }
1057
1058 #[doc(alias = "editing-started")]
1095 fn connect_editing_started<F: Fn(&Self, &CellEditable, TreePath) + 'static>(
1096 &self,
1097 f: F,
1098 ) -> SignalHandlerId {
1099 unsafe extern "C" fn editing_started_trampoline<
1100 P: IsA<CellRenderer>,
1101 F: Fn(&P, &CellEditable, TreePath) + 'static,
1102 >(
1103 this: *mut ffi::GtkCellRenderer,
1104 editable: *mut ffi::GtkCellEditable,
1105 path: *mut std::ffi::c_char,
1106 f: glib::ffi::gpointer,
1107 ) {
1108 unsafe {
1109 let f: &F = &*(f as *const F);
1110 let path = from_glib_full(crate::ffi::gtk_tree_path_new_from_string(path));
1111 f(
1112 CellRenderer::from_glib_borrow(this).unsafe_cast_ref(),
1113 &from_glib_borrow(editable),
1114 path,
1115 )
1116 }
1117 }
1118 unsafe {
1119 let f: Box_<F> = Box_::new(f);
1120 connect_raw(
1121 self.as_ptr() as *mut _,
1122 c"editing-started".as_ptr() as *const _,
1123 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1124 editing_started_trampoline::<Self, F> as *const (),
1125 )),
1126 Box_::into_raw(f),
1127 )
1128 }
1129 }
1130
1131 #[doc(alias = "cell-background")]
1132 fn connect_cell_background_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1133 unsafe extern "C" fn notify_cell_background_trampoline<
1134 P: IsA<CellRenderer>,
1135 F: Fn(&P) + 'static,
1136 >(
1137 this: *mut ffi::GtkCellRenderer,
1138 _param_spec: glib::ffi::gpointer,
1139 f: glib::ffi::gpointer,
1140 ) {
1141 unsafe {
1142 let f: &F = &*(f as *const F);
1143 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1144 }
1145 }
1146 unsafe {
1147 let f: Box_<F> = Box_::new(f);
1148 connect_raw(
1149 self.as_ptr() as *mut _,
1150 c"notify::cell-background".as_ptr() as *const _,
1151 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1152 notify_cell_background_trampoline::<Self, F> as *const (),
1153 )),
1154 Box_::into_raw(f),
1155 )
1156 }
1157 }
1158
1159 #[doc(alias = "cell-background-rgba")]
1160 fn connect_cell_background_rgba_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1161 unsafe extern "C" fn notify_cell_background_rgba_trampoline<
1162 P: IsA<CellRenderer>,
1163 F: Fn(&P) + 'static,
1164 >(
1165 this: *mut ffi::GtkCellRenderer,
1166 _param_spec: glib::ffi::gpointer,
1167 f: glib::ffi::gpointer,
1168 ) {
1169 unsafe {
1170 let f: &F = &*(f as *const F);
1171 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1172 }
1173 }
1174 unsafe {
1175 let f: Box_<F> = Box_::new(f);
1176 connect_raw(
1177 self.as_ptr() as *mut _,
1178 c"notify::cell-background-rgba".as_ptr() as *const _,
1179 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1180 notify_cell_background_rgba_trampoline::<Self, F> as *const (),
1181 )),
1182 Box_::into_raw(f),
1183 )
1184 }
1185 }
1186
1187 #[doc(alias = "cell-background-set")]
1188 fn connect_cell_background_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1189 unsafe extern "C" fn notify_cell_background_set_trampoline<
1190 P: IsA<CellRenderer>,
1191 F: Fn(&P) + 'static,
1192 >(
1193 this: *mut ffi::GtkCellRenderer,
1194 _param_spec: glib::ffi::gpointer,
1195 f: glib::ffi::gpointer,
1196 ) {
1197 unsafe {
1198 let f: &F = &*(f as *const F);
1199 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1200 }
1201 }
1202 unsafe {
1203 let f: Box_<F> = Box_::new(f);
1204 connect_raw(
1205 self.as_ptr() as *mut _,
1206 c"notify::cell-background-set".as_ptr() as *const _,
1207 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1208 notify_cell_background_set_trampoline::<Self, F> as *const (),
1209 )),
1210 Box_::into_raw(f),
1211 )
1212 }
1213 }
1214
1215 #[doc(alias = "editing")]
1216 fn connect_editing_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1217 unsafe extern "C" fn notify_editing_trampoline<
1218 P: IsA<CellRenderer>,
1219 F: Fn(&P) + 'static,
1220 >(
1221 this: *mut ffi::GtkCellRenderer,
1222 _param_spec: glib::ffi::gpointer,
1223 f: glib::ffi::gpointer,
1224 ) {
1225 unsafe {
1226 let f: &F = &*(f as *const F);
1227 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1228 }
1229 }
1230 unsafe {
1231 let f: Box_<F> = Box_::new(f);
1232 connect_raw(
1233 self.as_ptr() as *mut _,
1234 c"notify::editing".as_ptr() as *const _,
1235 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1236 notify_editing_trampoline::<Self, F> as *const (),
1237 )),
1238 Box_::into_raw(f),
1239 )
1240 }
1241 }
1242
1243 #[doc(alias = "height")]
1244 fn connect_height_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1245 unsafe extern "C" fn notify_height_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1246 this: *mut ffi::GtkCellRenderer,
1247 _param_spec: glib::ffi::gpointer,
1248 f: glib::ffi::gpointer,
1249 ) {
1250 unsafe {
1251 let f: &F = &*(f as *const F);
1252 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1253 }
1254 }
1255 unsafe {
1256 let f: Box_<F> = Box_::new(f);
1257 connect_raw(
1258 self.as_ptr() as *mut _,
1259 c"notify::height".as_ptr() as *const _,
1260 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1261 notify_height_trampoline::<Self, F> as *const (),
1262 )),
1263 Box_::into_raw(f),
1264 )
1265 }
1266 }
1267
1268 #[doc(alias = "is-expanded")]
1269 fn connect_is_expanded_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1270 unsafe extern "C" fn notify_is_expanded_trampoline<
1271 P: IsA<CellRenderer>,
1272 F: Fn(&P) + 'static,
1273 >(
1274 this: *mut ffi::GtkCellRenderer,
1275 _param_spec: glib::ffi::gpointer,
1276 f: glib::ffi::gpointer,
1277 ) {
1278 unsafe {
1279 let f: &F = &*(f as *const F);
1280 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1281 }
1282 }
1283 unsafe {
1284 let f: Box_<F> = Box_::new(f);
1285 connect_raw(
1286 self.as_ptr() as *mut _,
1287 c"notify::is-expanded".as_ptr() as *const _,
1288 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1289 notify_is_expanded_trampoline::<Self, F> as *const (),
1290 )),
1291 Box_::into_raw(f),
1292 )
1293 }
1294 }
1295
1296 #[doc(alias = "is-expander")]
1297 fn connect_is_expander_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1298 unsafe extern "C" fn notify_is_expander_trampoline<
1299 P: IsA<CellRenderer>,
1300 F: Fn(&P) + 'static,
1301 >(
1302 this: *mut ffi::GtkCellRenderer,
1303 _param_spec: glib::ffi::gpointer,
1304 f: glib::ffi::gpointer,
1305 ) {
1306 unsafe {
1307 let f: &F = &*(f as *const F);
1308 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1309 }
1310 }
1311 unsafe {
1312 let f: Box_<F> = Box_::new(f);
1313 connect_raw(
1314 self.as_ptr() as *mut _,
1315 c"notify::is-expander".as_ptr() as *const _,
1316 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1317 notify_is_expander_trampoline::<Self, F> as *const (),
1318 )),
1319 Box_::into_raw(f),
1320 )
1321 }
1322 }
1323
1324 #[doc(alias = "mode")]
1325 fn connect_mode_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1326 unsafe extern "C" fn notify_mode_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1327 this: *mut ffi::GtkCellRenderer,
1328 _param_spec: glib::ffi::gpointer,
1329 f: glib::ffi::gpointer,
1330 ) {
1331 unsafe {
1332 let f: &F = &*(f as *const F);
1333 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1334 }
1335 }
1336 unsafe {
1337 let f: Box_<F> = Box_::new(f);
1338 connect_raw(
1339 self.as_ptr() as *mut _,
1340 c"notify::mode".as_ptr() as *const _,
1341 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1342 notify_mode_trampoline::<Self, F> as *const (),
1343 )),
1344 Box_::into_raw(f),
1345 )
1346 }
1347 }
1348
1349 #[doc(alias = "sensitive")]
1350 fn connect_sensitive_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1351 unsafe extern "C" fn notify_sensitive_trampoline<
1352 P: IsA<CellRenderer>,
1353 F: Fn(&P) + 'static,
1354 >(
1355 this: *mut ffi::GtkCellRenderer,
1356 _param_spec: glib::ffi::gpointer,
1357 f: glib::ffi::gpointer,
1358 ) {
1359 unsafe {
1360 let f: &F = &*(f as *const F);
1361 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1362 }
1363 }
1364 unsafe {
1365 let f: Box_<F> = Box_::new(f);
1366 connect_raw(
1367 self.as_ptr() as *mut _,
1368 c"notify::sensitive".as_ptr() as *const _,
1369 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1370 notify_sensitive_trampoline::<Self, F> as *const (),
1371 )),
1372 Box_::into_raw(f),
1373 )
1374 }
1375 }
1376
1377 #[doc(alias = "visible")]
1378 fn connect_visible_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1379 unsafe extern "C" fn notify_visible_trampoline<
1380 P: IsA<CellRenderer>,
1381 F: Fn(&P) + 'static,
1382 >(
1383 this: *mut ffi::GtkCellRenderer,
1384 _param_spec: glib::ffi::gpointer,
1385 f: glib::ffi::gpointer,
1386 ) {
1387 unsafe {
1388 let f: &F = &*(f as *const F);
1389 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1390 }
1391 }
1392 unsafe {
1393 let f: Box_<F> = Box_::new(f);
1394 connect_raw(
1395 self.as_ptr() as *mut _,
1396 c"notify::visible".as_ptr() as *const _,
1397 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1398 notify_visible_trampoline::<Self, F> as *const (),
1399 )),
1400 Box_::into_raw(f),
1401 )
1402 }
1403 }
1404
1405 #[doc(alias = "width")]
1406 fn connect_width_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1407 unsafe extern "C" fn notify_width_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1408 this: *mut ffi::GtkCellRenderer,
1409 _param_spec: glib::ffi::gpointer,
1410 f: glib::ffi::gpointer,
1411 ) {
1412 unsafe {
1413 let f: &F = &*(f as *const F);
1414 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1415 }
1416 }
1417 unsafe {
1418 let f: Box_<F> = Box_::new(f);
1419 connect_raw(
1420 self.as_ptr() as *mut _,
1421 c"notify::width".as_ptr() as *const _,
1422 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1423 notify_width_trampoline::<Self, F> as *const (),
1424 )),
1425 Box_::into_raw(f),
1426 )
1427 }
1428 }
1429
1430 #[doc(alias = "xalign")]
1431 fn connect_xalign_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1432 unsafe extern "C" fn notify_xalign_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1433 this: *mut ffi::GtkCellRenderer,
1434 _param_spec: glib::ffi::gpointer,
1435 f: glib::ffi::gpointer,
1436 ) {
1437 unsafe {
1438 let f: &F = &*(f as *const F);
1439 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1440 }
1441 }
1442 unsafe {
1443 let f: Box_<F> = Box_::new(f);
1444 connect_raw(
1445 self.as_ptr() as *mut _,
1446 c"notify::xalign".as_ptr() as *const _,
1447 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1448 notify_xalign_trampoline::<Self, F> as *const (),
1449 )),
1450 Box_::into_raw(f),
1451 )
1452 }
1453 }
1454
1455 #[doc(alias = "xpad")]
1456 fn connect_xpad_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1457 unsafe extern "C" fn notify_xpad_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1458 this: *mut ffi::GtkCellRenderer,
1459 _param_spec: glib::ffi::gpointer,
1460 f: glib::ffi::gpointer,
1461 ) {
1462 unsafe {
1463 let f: &F = &*(f as *const F);
1464 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1465 }
1466 }
1467 unsafe {
1468 let f: Box_<F> = Box_::new(f);
1469 connect_raw(
1470 self.as_ptr() as *mut _,
1471 c"notify::xpad".as_ptr() as *const _,
1472 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1473 notify_xpad_trampoline::<Self, F> as *const (),
1474 )),
1475 Box_::into_raw(f),
1476 )
1477 }
1478 }
1479
1480 #[doc(alias = "yalign")]
1481 fn connect_yalign_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1482 unsafe extern "C" fn notify_yalign_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1483 this: *mut ffi::GtkCellRenderer,
1484 _param_spec: glib::ffi::gpointer,
1485 f: glib::ffi::gpointer,
1486 ) {
1487 unsafe {
1488 let f: &F = &*(f as *const F);
1489 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1490 }
1491 }
1492 unsafe {
1493 let f: Box_<F> = Box_::new(f);
1494 connect_raw(
1495 self.as_ptr() as *mut _,
1496 c"notify::yalign".as_ptr() as *const _,
1497 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1498 notify_yalign_trampoline::<Self, F> as *const (),
1499 )),
1500 Box_::into_raw(f),
1501 )
1502 }
1503 }
1504
1505 #[doc(alias = "ypad")]
1506 fn connect_ypad_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1507 unsafe extern "C" fn notify_ypad_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1508 this: *mut ffi::GtkCellRenderer,
1509 _param_spec: glib::ffi::gpointer,
1510 f: glib::ffi::gpointer,
1511 ) {
1512 unsafe {
1513 let f: &F = &*(f as *const F);
1514 f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1515 }
1516 }
1517 unsafe {
1518 let f: Box_<F> = Box_::new(f);
1519 connect_raw(
1520 self.as_ptr() as *mut _,
1521 c"notify::ypad".as_ptr() as *const _,
1522 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1523 notify_ypad_trampoline::<Self, F> as *const (),
1524 )),
1525 Box_::into_raw(f),
1526 )
1527 }
1528 }
1529}
1530
1531impl<O: IsA<CellRenderer>> CellRendererExt for O {}