[go: up one dir, main page]

gtk4/auto/
text_tag.rs

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
5use crate::{ffi, Justification, TextDirection, WrapMode};
6use glib::{
7    prelude::*,
8    signal::{connect_raw, SignalHandlerId},
9    translate::*,
10};
11use std::boxed::Box as Box_;
12
13glib::wrapper! {
14    #[doc(alias = "GtkTextTag")]
15    pub struct TextTag(Object<ffi::GtkTextTag, ffi::GtkTextTagClass>);
16
17    match fn {
18        type_ => || ffi::gtk_text_tag_get_type(),
19    }
20}
21
22impl TextTag {
23    pub const NONE: Option<&'static TextTag> = None;
24
25    #[doc(alias = "gtk_text_tag_new")]
26    pub fn new(name: Option<&str>) -> TextTag {
27        assert_initialized_main_thread!();
28        unsafe { from_glib_full(ffi::gtk_text_tag_new(name.to_glib_none().0)) }
29    }
30
31    // rustdoc-stripper-ignore-next
32    /// Creates a new builder-pattern struct instance to construct [`TextTag`] objects.
33    ///
34    /// This method returns an instance of [`TextTagBuilder`](crate::builders::TextTagBuilder) which can be used to create [`TextTag`] objects.
35    pub fn builder() -> TextTagBuilder {
36        TextTagBuilder::new()
37    }
38}
39
40impl Default for TextTag {
41    fn default() -> Self {
42        glib::object::Object::new::<Self>()
43    }
44}
45
46// rustdoc-stripper-ignore-next
47/// A [builder-pattern] type to construct [`TextTag`] objects.
48///
49/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
50#[must_use = "The builder must be built to be used"]
51pub struct TextTagBuilder {
52    builder: glib::object::ObjectBuilder<'static, TextTag>,
53}
54
55impl TextTagBuilder {
56    fn new() -> Self {
57        Self {
58            builder: glib::object::Object::builder(),
59        }
60    }
61
62    pub fn accumulative_margin(self, accumulative_margin: bool) -> Self {
63        Self {
64            builder: self
65                .builder
66                .property("accumulative-margin", accumulative_margin),
67        }
68    }
69
70    pub fn allow_breaks(self, allow_breaks: bool) -> Self {
71        Self {
72            builder: self.builder.property("allow-breaks", allow_breaks),
73        }
74    }
75
76    pub fn allow_breaks_set(self, allow_breaks_set: bool) -> Self {
77        Self {
78            builder: self.builder.property("allow-breaks-set", allow_breaks_set),
79        }
80    }
81
82    pub fn background(self, background: impl Into<glib::GString>) -> Self {
83        Self {
84            builder: self.builder.property("background", background.into()),
85        }
86    }
87
88    pub fn background_full_height(self, background_full_height: bool) -> Self {
89        Self {
90            builder: self
91                .builder
92                .property("background-full-height", background_full_height),
93        }
94    }
95
96    pub fn background_full_height_set(self, background_full_height_set: bool) -> Self {
97        Self {
98            builder: self
99                .builder
100                .property("background-full-height-set", background_full_height_set),
101        }
102    }
103
104    pub fn background_rgba(self, background_rgba: &gdk::RGBA) -> Self {
105        Self {
106            builder: self.builder.property("background-rgba", background_rgba),
107        }
108    }
109
110    pub fn background_set(self, background_set: bool) -> Self {
111        Self {
112            builder: self.builder.property("background-set", background_set),
113        }
114    }
115
116    pub fn direction(self, direction: TextDirection) -> Self {
117        Self {
118            builder: self.builder.property("direction", direction),
119        }
120    }
121
122    pub fn editable(self, editable: bool) -> Self {
123        Self {
124            builder: self.builder.property("editable", editable),
125        }
126    }
127
128    pub fn editable_set(self, editable_set: bool) -> Self {
129        Self {
130            builder: self.builder.property("editable-set", editable_set),
131        }
132    }
133
134    pub fn fallback(self, fallback: bool) -> Self {
135        Self {
136            builder: self.builder.property("fallback", fallback),
137        }
138    }
139
140    pub fn fallback_set(self, fallback_set: bool) -> Self {
141        Self {
142            builder: self.builder.property("fallback-set", fallback_set),
143        }
144    }
145
146    pub fn family(self, family: impl Into<glib::GString>) -> Self {
147        Self {
148            builder: self.builder.property("family", family.into()),
149        }
150    }
151
152    pub fn family_set(self, family_set: bool) -> Self {
153        Self {
154            builder: self.builder.property("family-set", family_set),
155        }
156    }
157
158    pub fn font(self, font: impl Into<glib::GString>) -> Self {
159        Self {
160            builder: self.builder.property("font", font.into()),
161        }
162    }
163
164    pub fn font_desc(self, font_desc: &pango::FontDescription) -> Self {
165        Self {
166            builder: self.builder.property("font-desc", font_desc),
167        }
168    }
169
170    pub fn font_features(self, font_features: impl Into<glib::GString>) -> Self {
171        Self {
172            builder: self.builder.property("font-features", font_features.into()),
173        }
174    }
175
176    pub fn font_features_set(self, font_features_set: bool) -> Self {
177        Self {
178            builder: self
179                .builder
180                .property("font-features-set", font_features_set),
181        }
182    }
183
184    pub fn foreground(self, foreground: impl Into<glib::GString>) -> Self {
185        Self {
186            builder: self.builder.property("foreground", foreground.into()),
187        }
188    }
189
190    pub fn foreground_rgba(self, foreground_rgba: &gdk::RGBA) -> Self {
191        Self {
192            builder: self.builder.property("foreground-rgba", foreground_rgba),
193        }
194    }
195
196    pub fn foreground_set(self, foreground_set: bool) -> Self {
197        Self {
198            builder: self.builder.property("foreground-set", foreground_set),
199        }
200    }
201
202    pub fn indent(self, indent: i32) -> Self {
203        Self {
204            builder: self.builder.property("indent", indent),
205        }
206    }
207
208    pub fn indent_set(self, indent_set: bool) -> Self {
209        Self {
210            builder: self.builder.property("indent-set", indent_set),
211        }
212    }
213
214    pub fn insert_hyphens(self, insert_hyphens: bool) -> Self {
215        Self {
216            builder: self.builder.property("insert-hyphens", insert_hyphens),
217        }
218    }
219
220    pub fn insert_hyphens_set(self, insert_hyphens_set: bool) -> Self {
221        Self {
222            builder: self
223                .builder
224                .property("insert-hyphens-set", insert_hyphens_set),
225        }
226    }
227
228    pub fn invisible(self, invisible: bool) -> Self {
229        Self {
230            builder: self.builder.property("invisible", invisible),
231        }
232    }
233
234    pub fn invisible_set(self, invisible_set: bool) -> Self {
235        Self {
236            builder: self.builder.property("invisible-set", invisible_set),
237        }
238    }
239
240    pub fn justification(self, justification: Justification) -> Self {
241        Self {
242            builder: self.builder.property("justification", justification),
243        }
244    }
245
246    pub fn justification_set(self, justification_set: bool) -> Self {
247        Self {
248            builder: self
249                .builder
250                .property("justification-set", justification_set),
251        }
252    }
253
254    pub fn language(self, language: impl Into<glib::GString>) -> Self {
255        Self {
256            builder: self.builder.property("language", language.into()),
257        }
258    }
259
260    pub fn language_set(self, language_set: bool) -> Self {
261        Self {
262            builder: self.builder.property("language-set", language_set),
263        }
264    }
265
266    pub fn left_margin(self, left_margin: i32) -> Self {
267        Self {
268            builder: self.builder.property("left-margin", left_margin),
269        }
270    }
271
272    pub fn left_margin_set(self, left_margin_set: bool) -> Self {
273        Self {
274            builder: self.builder.property("left-margin-set", left_margin_set),
275        }
276    }
277
278    pub fn letter_spacing(self, letter_spacing: i32) -> Self {
279        Self {
280            builder: self.builder.property("letter-spacing", letter_spacing),
281        }
282    }
283
284    pub fn letter_spacing_set(self, letter_spacing_set: bool) -> Self {
285        Self {
286            builder: self
287                .builder
288                .property("letter-spacing-set", letter_spacing_set),
289        }
290    }
291
292    #[cfg(feature = "v4_6")]
293    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
294    pub fn line_height(self, line_height: f32) -> Self {
295        Self {
296            builder: self.builder.property("line-height", line_height),
297        }
298    }
299
300    #[cfg(feature = "v4_6")]
301    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
302    pub fn line_height_set(self, line_height_set: bool) -> Self {
303        Self {
304            builder: self.builder.property("line-height-set", line_height_set),
305        }
306    }
307
308    pub fn name(self, name: impl Into<glib::GString>) -> Self {
309        Self {
310            builder: self.builder.property("name", name.into()),
311        }
312    }
313
314    pub fn overline(self, overline: pango::Overline) -> Self {
315        Self {
316            builder: self.builder.property("overline", overline),
317        }
318    }
319
320    pub fn overline_rgba(self, overline_rgba: &gdk::RGBA) -> Self {
321        Self {
322            builder: self.builder.property("overline-rgba", overline_rgba),
323        }
324    }
325
326    pub fn overline_rgba_set(self, overline_rgba_set: bool) -> Self {
327        Self {
328            builder: self
329                .builder
330                .property("overline-rgba-set", overline_rgba_set),
331        }
332    }
333
334    pub fn overline_set(self, overline_set: bool) -> Self {
335        Self {
336            builder: self.builder.property("overline-set", overline_set),
337        }
338    }
339
340    pub fn paragraph_background(self, paragraph_background: impl Into<glib::GString>) -> Self {
341        Self {
342            builder: self
343                .builder
344                .property("paragraph-background", paragraph_background.into()),
345        }
346    }
347
348    pub fn paragraph_background_rgba(self, paragraph_background_rgba: &gdk::RGBA) -> Self {
349        Self {
350            builder: self
351                .builder
352                .property("paragraph-background-rgba", paragraph_background_rgba),
353        }
354    }
355
356    pub fn paragraph_background_set(self, paragraph_background_set: bool) -> Self {
357        Self {
358            builder: self
359                .builder
360                .property("paragraph-background-set", paragraph_background_set),
361        }
362    }
363
364    pub fn pixels_above_lines(self, pixels_above_lines: i32) -> Self {
365        Self {
366            builder: self
367                .builder
368                .property("pixels-above-lines", pixels_above_lines),
369        }
370    }
371
372    pub fn pixels_above_lines_set(self, pixels_above_lines_set: bool) -> Self {
373        Self {
374            builder: self
375                .builder
376                .property("pixels-above-lines-set", pixels_above_lines_set),
377        }
378    }
379
380    pub fn pixels_below_lines(self, pixels_below_lines: i32) -> Self {
381        Self {
382            builder: self
383                .builder
384                .property("pixels-below-lines", pixels_below_lines),
385        }
386    }
387
388    pub fn pixels_below_lines_set(self, pixels_below_lines_set: bool) -> Self {
389        Self {
390            builder: self
391                .builder
392                .property("pixels-below-lines-set", pixels_below_lines_set),
393        }
394    }
395
396    pub fn pixels_inside_wrap(self, pixels_inside_wrap: i32) -> Self {
397        Self {
398            builder: self
399                .builder
400                .property("pixels-inside-wrap", pixels_inside_wrap),
401        }
402    }
403
404    pub fn pixels_inside_wrap_set(self, pixels_inside_wrap_set: bool) -> Self {
405        Self {
406            builder: self
407                .builder
408                .property("pixels-inside-wrap-set", pixels_inside_wrap_set),
409        }
410    }
411
412    pub fn right_margin(self, right_margin: i32) -> Self {
413        Self {
414            builder: self.builder.property("right-margin", right_margin),
415        }
416    }
417
418    pub fn right_margin_set(self, right_margin_set: bool) -> Self {
419        Self {
420            builder: self.builder.property("right-margin-set", right_margin_set),
421        }
422    }
423
424    pub fn rise(self, rise: i32) -> Self {
425        Self {
426            builder: self.builder.property("rise", rise),
427        }
428    }
429
430    pub fn rise_set(self, rise_set: bool) -> Self {
431        Self {
432            builder: self.builder.property("rise-set", rise_set),
433        }
434    }
435
436    pub fn scale(self, scale: f64) -> Self {
437        Self {
438            builder: self.builder.property("scale", scale),
439        }
440    }
441
442    pub fn scale_set(self, scale_set: bool) -> Self {
443        Self {
444            builder: self.builder.property("scale-set", scale_set),
445        }
446    }
447
448    #[cfg(feature = "v4_6")]
449    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
450    pub fn sentence(self, sentence: bool) -> Self {
451        Self {
452            builder: self.builder.property("sentence", sentence),
453        }
454    }
455
456    #[cfg(feature = "v4_6")]
457    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
458    pub fn sentence_set(self, sentence_set: bool) -> Self {
459        Self {
460            builder: self.builder.property("sentence-set", sentence_set),
461        }
462    }
463
464    pub fn show_spaces(self, show_spaces: pango::ShowFlags) -> Self {
465        Self {
466            builder: self.builder.property("show-spaces", show_spaces),
467        }
468    }
469
470    pub fn show_spaces_set(self, show_spaces_set: bool) -> Self {
471        Self {
472            builder: self.builder.property("show-spaces-set", show_spaces_set),
473        }
474    }
475
476    pub fn size(self, size: i32) -> Self {
477        Self {
478            builder: self.builder.property("size", size),
479        }
480    }
481
482    pub fn size_points(self, size_points: f64) -> Self {
483        Self {
484            builder: self.builder.property("size-points", size_points),
485        }
486    }
487
488    pub fn size_set(self, size_set: bool) -> Self {
489        Self {
490            builder: self.builder.property("size-set", size_set),
491        }
492    }
493
494    pub fn stretch(self, stretch: pango::Stretch) -> Self {
495        Self {
496            builder: self.builder.property("stretch", stretch),
497        }
498    }
499
500    pub fn stretch_set(self, stretch_set: bool) -> Self {
501        Self {
502            builder: self.builder.property("stretch-set", stretch_set),
503        }
504    }
505
506    pub fn strikethrough(self, strikethrough: bool) -> Self {
507        Self {
508            builder: self.builder.property("strikethrough", strikethrough),
509        }
510    }
511
512    pub fn strikethrough_rgba(self, strikethrough_rgba: &gdk::RGBA) -> Self {
513        Self {
514            builder: self
515                .builder
516                .property("strikethrough-rgba", strikethrough_rgba),
517        }
518    }
519
520    pub fn strikethrough_rgba_set(self, strikethrough_rgba_set: bool) -> Self {
521        Self {
522            builder: self
523                .builder
524                .property("strikethrough-rgba-set", strikethrough_rgba_set),
525        }
526    }
527
528    pub fn strikethrough_set(self, strikethrough_set: bool) -> Self {
529        Self {
530            builder: self
531                .builder
532                .property("strikethrough-set", strikethrough_set),
533        }
534    }
535
536    pub fn style(self, style: pango::Style) -> Self {
537        Self {
538            builder: self.builder.property("style", style),
539        }
540    }
541
542    pub fn style_set(self, style_set: bool) -> Self {
543        Self {
544            builder: self.builder.property("style-set", style_set),
545        }
546    }
547
548    pub fn tabs(self, tabs: &pango::TabArray) -> Self {
549        Self {
550            builder: self.builder.property("tabs", tabs),
551        }
552    }
553
554    pub fn tabs_set(self, tabs_set: bool) -> Self {
555        Self {
556            builder: self.builder.property("tabs-set", tabs_set),
557        }
558    }
559
560    #[cfg(feature = "v4_6")]
561    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
562    pub fn text_transform(self, text_transform: pango::TextTransform) -> Self {
563        Self {
564            builder: self.builder.property("text-transform", text_transform),
565        }
566    }
567
568    #[cfg(feature = "v4_6")]
569    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
570    pub fn text_transform_set(self, text_transform_set: bool) -> Self {
571        Self {
572            builder: self
573                .builder
574                .property("text-transform-set", text_transform_set),
575        }
576    }
577
578    pub fn underline(self, underline: pango::Underline) -> Self {
579        Self {
580            builder: self.builder.property("underline", underline),
581        }
582    }
583
584    pub fn underline_rgba(self, underline_rgba: &gdk::RGBA) -> Self {
585        Self {
586            builder: self.builder.property("underline-rgba", underline_rgba),
587        }
588    }
589
590    pub fn underline_rgba_set(self, underline_rgba_set: bool) -> Self {
591        Self {
592            builder: self
593                .builder
594                .property("underline-rgba-set", underline_rgba_set),
595        }
596    }
597
598    pub fn underline_set(self, underline_set: bool) -> Self {
599        Self {
600            builder: self.builder.property("underline-set", underline_set),
601        }
602    }
603
604    pub fn variant(self, variant: pango::Variant) -> Self {
605        Self {
606            builder: self.builder.property("variant", variant),
607        }
608    }
609
610    pub fn variant_set(self, variant_set: bool) -> Self {
611        Self {
612            builder: self.builder.property("variant-set", variant_set),
613        }
614    }
615
616    pub fn weight(self, weight: i32) -> Self {
617        Self {
618            builder: self.builder.property("weight", weight),
619        }
620    }
621
622    pub fn weight_set(self, weight_set: bool) -> Self {
623        Self {
624            builder: self.builder.property("weight-set", weight_set),
625        }
626    }
627
628    #[cfg(feature = "v4_6")]
629    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
630    pub fn word(self, word: bool) -> Self {
631        Self {
632            builder: self.builder.property("word", word),
633        }
634    }
635
636    #[cfg(feature = "v4_6")]
637    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
638    pub fn word_set(self, word_set: bool) -> Self {
639        Self {
640            builder: self.builder.property("word-set", word_set),
641        }
642    }
643
644    pub fn wrap_mode(self, wrap_mode: WrapMode) -> Self {
645        Self {
646            builder: self.builder.property("wrap-mode", wrap_mode),
647        }
648    }
649
650    pub fn wrap_mode_set(self, wrap_mode_set: bool) -> Self {
651        Self {
652            builder: self.builder.property("wrap-mode-set", wrap_mode_set),
653        }
654    }
655
656    // rustdoc-stripper-ignore-next
657    /// Build the [`TextTag`].
658    #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
659    pub fn build(self) -> TextTag {
660        assert_initialized_main_thread!();
661        self.builder.build()
662    }
663}
664
665pub trait TextTagExt: IsA<TextTag> + 'static {
666    #[doc(alias = "gtk_text_tag_changed")]
667    fn changed(&self, size_changed: bool) {
668        unsafe {
669            ffi::gtk_text_tag_changed(self.as_ref().to_glib_none().0, size_changed.into_glib());
670        }
671    }
672
673    #[doc(alias = "gtk_text_tag_get_priority")]
674    #[doc(alias = "get_priority")]
675    fn priority(&self) -> i32 {
676        unsafe { ffi::gtk_text_tag_get_priority(self.as_ref().to_glib_none().0) }
677    }
678
679    #[doc(alias = "gtk_text_tag_set_priority")]
680    fn set_priority(&self, priority: i32) {
681        unsafe {
682            ffi::gtk_text_tag_set_priority(self.as_ref().to_glib_none().0, priority);
683        }
684    }
685
686    #[doc(alias = "accumulative-margin")]
687    fn is_accumulative_margin(&self) -> bool {
688        ObjectExt::property(self.as_ref(), "accumulative-margin")
689    }
690
691    #[doc(alias = "accumulative-margin")]
692    fn set_accumulative_margin(&self, accumulative_margin: bool) {
693        ObjectExt::set_property(self.as_ref(), "accumulative-margin", accumulative_margin)
694    }
695
696    #[doc(alias = "allow-breaks")]
697    fn allows_breaks(&self) -> bool {
698        ObjectExt::property(self.as_ref(), "allow-breaks")
699    }
700
701    #[doc(alias = "allow-breaks")]
702    fn set_allow_breaks(&self, allow_breaks: bool) {
703        ObjectExt::set_property(self.as_ref(), "allow-breaks", allow_breaks)
704    }
705
706    #[doc(alias = "allow-breaks-set")]
707    fn allows_breaks_set(&self) -> bool {
708        ObjectExt::property(self.as_ref(), "allow-breaks-set")
709    }
710
711    fn set_background(&self, background: Option<&str>) {
712        ObjectExt::set_property(self.as_ref(), "background", background)
713    }
714
715    #[doc(alias = "background-full-height")]
716    fn is_background_full_height(&self) -> bool {
717        ObjectExt::property(self.as_ref(), "background-full-height")
718    }
719
720    #[doc(alias = "background-full-height")]
721    fn set_background_full_height(&self, background_full_height: bool) {
722        ObjectExt::set_property(
723            self.as_ref(),
724            "background-full-height",
725            background_full_height,
726        )
727    }
728
729    #[doc(alias = "background-full-height-set")]
730    fn is_background_full_height_set(&self) -> bool {
731        ObjectExt::property(self.as_ref(), "background-full-height-set")
732    }
733
734    #[doc(alias = "background-rgba")]
735    fn background_rgba(&self) -> Option<gdk::RGBA> {
736        ObjectExt::property(self.as_ref(), "background-rgba")
737    }
738
739    #[doc(alias = "background-rgba")]
740    fn set_background_rgba(&self, background_rgba: Option<&gdk::RGBA>) {
741        ObjectExt::set_property(self.as_ref(), "background-rgba", background_rgba)
742    }
743
744    #[doc(alias = "background-set")]
745    fn is_background_set(&self) -> bool {
746        ObjectExt::property(self.as_ref(), "background-set")
747    }
748
749    fn direction(&self) -> TextDirection {
750        ObjectExt::property(self.as_ref(), "direction")
751    }
752
753    fn set_direction(&self, direction: TextDirection) {
754        ObjectExt::set_property(self.as_ref(), "direction", direction)
755    }
756
757    fn is_editable(&self) -> bool {
758        ObjectExt::property(self.as_ref(), "editable")
759    }
760
761    fn set_editable(&self, editable: bool) {
762        ObjectExt::set_property(self.as_ref(), "editable", editable)
763    }
764
765    #[doc(alias = "editable-set")]
766    fn is_editable_set(&self) -> bool {
767        ObjectExt::property(self.as_ref(), "editable-set")
768    }
769
770    fn is_fallback(&self) -> bool {
771        ObjectExt::property(self.as_ref(), "fallback")
772    }
773
774    fn set_fallback(&self, fallback: bool) {
775        ObjectExt::set_property(self.as_ref(), "fallback", fallback)
776    }
777
778    #[doc(alias = "fallback-set")]
779    fn is_fallback_set(&self) -> bool {
780        ObjectExt::property(self.as_ref(), "fallback-set")
781    }
782
783    fn family(&self) -> Option<glib::GString> {
784        ObjectExt::property(self.as_ref(), "family")
785    }
786
787    fn set_family(&self, family: Option<&str>) {
788        ObjectExt::set_property(self.as_ref(), "family", family)
789    }
790
791    #[doc(alias = "family-set")]
792    fn is_family_set(&self) -> bool {
793        ObjectExt::property(self.as_ref(), "family-set")
794    }
795
796    fn font(&self) -> Option<glib::GString> {
797        ObjectExt::property(self.as_ref(), "font")
798    }
799
800    fn set_font(&self, font: Option<&str>) {
801        ObjectExt::set_property(self.as_ref(), "font", font)
802    }
803
804    #[doc(alias = "font-desc")]
805    fn font_desc(&self) -> Option<pango::FontDescription> {
806        ObjectExt::property(self.as_ref(), "font-desc")
807    }
808
809    #[doc(alias = "font-desc")]
810    fn set_font_desc(&self, font_desc: Option<&pango::FontDescription>) {
811        ObjectExt::set_property(self.as_ref(), "font-desc", font_desc)
812    }
813
814    #[doc(alias = "font-features")]
815    fn font_features(&self) -> Option<glib::GString> {
816        ObjectExt::property(self.as_ref(), "font-features")
817    }
818
819    #[doc(alias = "font-features")]
820    fn set_font_features(&self, font_features: Option<&str>) {
821        ObjectExt::set_property(self.as_ref(), "font-features", font_features)
822    }
823
824    #[doc(alias = "font-features-set")]
825    fn is_font_features_set(&self) -> bool {
826        ObjectExt::property(self.as_ref(), "font-features-set")
827    }
828
829    fn set_foreground(&self, foreground: Option<&str>) {
830        ObjectExt::set_property(self.as_ref(), "foreground", foreground)
831    }
832
833    #[doc(alias = "foreground-rgba")]
834    fn foreground_rgba(&self) -> Option<gdk::RGBA> {
835        ObjectExt::property(self.as_ref(), "foreground-rgba")
836    }
837
838    #[doc(alias = "foreground-rgba")]
839    fn set_foreground_rgba(&self, foreground_rgba: Option<&gdk::RGBA>) {
840        ObjectExt::set_property(self.as_ref(), "foreground-rgba", foreground_rgba)
841    }
842
843    #[doc(alias = "foreground-set")]
844    fn is_foreground_set(&self) -> bool {
845        ObjectExt::property(self.as_ref(), "foreground-set")
846    }
847
848    fn indent(&self) -> i32 {
849        ObjectExt::property(self.as_ref(), "indent")
850    }
851
852    fn set_indent(&self, indent: i32) {
853        ObjectExt::set_property(self.as_ref(), "indent", indent)
854    }
855
856    #[doc(alias = "indent-set")]
857    fn is_indent_set(&self) -> bool {
858        ObjectExt::property(self.as_ref(), "indent-set")
859    }
860
861    #[doc(alias = "insert-hyphens")]
862    fn is_insert_hyphens(&self) -> bool {
863        ObjectExt::property(self.as_ref(), "insert-hyphens")
864    }
865
866    #[doc(alias = "insert-hyphens")]
867    fn set_insert_hyphens(&self, insert_hyphens: bool) {
868        ObjectExt::set_property(self.as_ref(), "insert-hyphens", insert_hyphens)
869    }
870
871    #[doc(alias = "insert-hyphens-set")]
872    fn is_insert_hyphens_set(&self) -> bool {
873        ObjectExt::property(self.as_ref(), "insert-hyphens-set")
874    }
875
876    fn is_invisible(&self) -> bool {
877        ObjectExt::property(self.as_ref(), "invisible")
878    }
879
880    fn set_invisible(&self, invisible: bool) {
881        ObjectExt::set_property(self.as_ref(), "invisible", invisible)
882    }
883
884    #[doc(alias = "invisible-set")]
885    fn is_invisible_set(&self) -> bool {
886        ObjectExt::property(self.as_ref(), "invisible-set")
887    }
888
889    fn justification(&self) -> Justification {
890        ObjectExt::property(self.as_ref(), "justification")
891    }
892
893    fn set_justification(&self, justification: Justification) {
894        ObjectExt::set_property(self.as_ref(), "justification", justification)
895    }
896
897    #[doc(alias = "justification-set")]
898    fn is_justification_set(&self) -> bool {
899        ObjectExt::property(self.as_ref(), "justification-set")
900    }
901
902    fn language(&self) -> Option<glib::GString> {
903        ObjectExt::property(self.as_ref(), "language")
904    }
905
906    fn set_language(&self, language: Option<&str>) {
907        ObjectExt::set_property(self.as_ref(), "language", language)
908    }
909
910    #[doc(alias = "language-set")]
911    fn is_language_set(&self) -> bool {
912        ObjectExt::property(self.as_ref(), "language-set")
913    }
914
915    #[doc(alias = "left-margin")]
916    fn left_margin(&self) -> i32 {
917        ObjectExt::property(self.as_ref(), "left-margin")
918    }
919
920    #[doc(alias = "left-margin")]
921    fn set_left_margin(&self, left_margin: i32) {
922        ObjectExt::set_property(self.as_ref(), "left-margin", left_margin)
923    }
924
925    #[doc(alias = "left-margin-set")]
926    fn is_left_margin_set(&self) -> bool {
927        ObjectExt::property(self.as_ref(), "left-margin-set")
928    }
929
930    #[doc(alias = "letter-spacing")]
931    fn letter_spacing(&self) -> i32 {
932        ObjectExt::property(self.as_ref(), "letter-spacing")
933    }
934
935    #[doc(alias = "letter-spacing")]
936    fn set_letter_spacing(&self, letter_spacing: i32) {
937        ObjectExt::set_property(self.as_ref(), "letter-spacing", letter_spacing)
938    }
939
940    #[doc(alias = "letter-spacing-set")]
941    fn is_letter_spacing_set(&self) -> bool {
942        ObjectExt::property(self.as_ref(), "letter-spacing-set")
943    }
944
945    #[cfg(feature = "v4_6")]
946    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
947    #[doc(alias = "line-height")]
948    fn line_height(&self) -> f32 {
949        ObjectExt::property(self.as_ref(), "line-height")
950    }
951
952    #[cfg(feature = "v4_6")]
953    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
954    #[doc(alias = "line-height")]
955    fn set_line_height(&self, line_height: f32) {
956        ObjectExt::set_property(self.as_ref(), "line-height", line_height)
957    }
958
959    #[cfg(feature = "v4_6")]
960    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
961    #[doc(alias = "line-height-set")]
962    fn is_line_height_set(&self) -> bool {
963        ObjectExt::property(self.as_ref(), "line-height-set")
964    }
965
966    fn name(&self) -> Option<glib::GString> {
967        ObjectExt::property(self.as_ref(), "name")
968    }
969
970    fn overline(&self) -> pango::Overline {
971        ObjectExt::property(self.as_ref(), "overline")
972    }
973
974    fn set_overline(&self, overline: pango::Overline) {
975        ObjectExt::set_property(self.as_ref(), "overline", overline)
976    }
977
978    #[doc(alias = "overline-rgba")]
979    fn overline_rgba(&self) -> Option<gdk::RGBA> {
980        ObjectExt::property(self.as_ref(), "overline-rgba")
981    }
982
983    #[doc(alias = "overline-rgba")]
984    fn set_overline_rgba(&self, overline_rgba: Option<&gdk::RGBA>) {
985        ObjectExt::set_property(self.as_ref(), "overline-rgba", overline_rgba)
986    }
987
988    #[doc(alias = "overline-rgba-set")]
989    fn is_overline_rgba_set(&self) -> bool {
990        ObjectExt::property(self.as_ref(), "overline-rgba-set")
991    }
992
993    #[doc(alias = "overline-set")]
994    fn is_overline_set(&self) -> bool {
995        ObjectExt::property(self.as_ref(), "overline-set")
996    }
997
998    #[doc(alias = "paragraph-background")]
999    fn set_paragraph_background(&self, paragraph_background: Option<&str>) {
1000        ObjectExt::set_property(self.as_ref(), "paragraph-background", paragraph_background)
1001    }
1002
1003    #[doc(alias = "paragraph-background-rgba")]
1004    fn paragraph_background_rgba(&self) -> Option<gdk::RGBA> {
1005        ObjectExt::property(self.as_ref(), "paragraph-background-rgba")
1006    }
1007
1008    #[doc(alias = "paragraph-background-rgba")]
1009    fn set_paragraph_background_rgba(&self, paragraph_background_rgba: Option<&gdk::RGBA>) {
1010        ObjectExt::set_property(
1011            self.as_ref(),
1012            "paragraph-background-rgba",
1013            paragraph_background_rgba,
1014        )
1015    }
1016
1017    #[doc(alias = "paragraph-background-set")]
1018    fn is_paragraph_background_set(&self) -> bool {
1019        ObjectExt::property(self.as_ref(), "paragraph-background-set")
1020    }
1021
1022    #[doc(alias = "pixels-above-lines")]
1023    fn pixels_above_lines(&self) -> i32 {
1024        ObjectExt::property(self.as_ref(), "pixels-above-lines")
1025    }
1026
1027    #[doc(alias = "pixels-above-lines")]
1028    fn set_pixels_above_lines(&self, pixels_above_lines: i32) {
1029        ObjectExt::set_property(self.as_ref(), "pixels-above-lines", pixels_above_lines)
1030    }
1031
1032    #[doc(alias = "pixels-above-lines-set")]
1033    fn is_pixels_above_lines_set(&self) -> bool {
1034        ObjectExt::property(self.as_ref(), "pixels-above-lines-set")
1035    }
1036
1037    #[doc(alias = "pixels-below-lines")]
1038    fn pixels_below_lines(&self) -> i32 {
1039        ObjectExt::property(self.as_ref(), "pixels-below-lines")
1040    }
1041
1042    #[doc(alias = "pixels-below-lines")]
1043    fn set_pixels_below_lines(&self, pixels_below_lines: i32) {
1044        ObjectExt::set_property(self.as_ref(), "pixels-below-lines", pixels_below_lines)
1045    }
1046
1047    #[doc(alias = "pixels-below-lines-set")]
1048    fn is_pixels_below_lines_set(&self) -> bool {
1049        ObjectExt::property(self.as_ref(), "pixels-below-lines-set")
1050    }
1051
1052    #[doc(alias = "pixels-inside-wrap")]
1053    fn pixels_inside_wrap(&self) -> i32 {
1054        ObjectExt::property(self.as_ref(), "pixels-inside-wrap")
1055    }
1056
1057    #[doc(alias = "pixels-inside-wrap")]
1058    fn set_pixels_inside_wrap(&self, pixels_inside_wrap: i32) {
1059        ObjectExt::set_property(self.as_ref(), "pixels-inside-wrap", pixels_inside_wrap)
1060    }
1061
1062    #[doc(alias = "pixels-inside-wrap-set")]
1063    fn is_pixels_inside_wrap_set(&self) -> bool {
1064        ObjectExt::property(self.as_ref(), "pixels-inside-wrap-set")
1065    }
1066
1067    #[doc(alias = "right-margin")]
1068    fn right_margin(&self) -> i32 {
1069        ObjectExt::property(self.as_ref(), "right-margin")
1070    }
1071
1072    #[doc(alias = "right-margin")]
1073    fn set_right_margin(&self, right_margin: i32) {
1074        ObjectExt::set_property(self.as_ref(), "right-margin", right_margin)
1075    }
1076
1077    #[doc(alias = "right-margin-set")]
1078    fn is_right_margin_set(&self) -> bool {
1079        ObjectExt::property(self.as_ref(), "right-margin-set")
1080    }
1081
1082    fn rise(&self) -> i32 {
1083        ObjectExt::property(self.as_ref(), "rise")
1084    }
1085
1086    fn set_rise(&self, rise: i32) {
1087        ObjectExt::set_property(self.as_ref(), "rise", rise)
1088    }
1089
1090    #[doc(alias = "rise-set")]
1091    fn is_rise_set(&self) -> bool {
1092        ObjectExt::property(self.as_ref(), "rise-set")
1093    }
1094
1095    fn scale(&self) -> f64 {
1096        ObjectExt::property(self.as_ref(), "scale")
1097    }
1098
1099    fn set_scale(&self, scale: f64) {
1100        ObjectExt::set_property(self.as_ref(), "scale", scale)
1101    }
1102
1103    #[doc(alias = "scale-set")]
1104    fn is_scale_set(&self) -> bool {
1105        ObjectExt::property(self.as_ref(), "scale-set")
1106    }
1107
1108    #[cfg(feature = "v4_6")]
1109    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1110    fn is_sentence(&self) -> bool {
1111        ObjectExt::property(self.as_ref(), "sentence")
1112    }
1113
1114    #[cfg(feature = "v4_6")]
1115    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1116    fn set_sentence(&self, sentence: bool) {
1117        ObjectExt::set_property(self.as_ref(), "sentence", sentence)
1118    }
1119
1120    #[cfg(feature = "v4_6")]
1121    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1122    #[doc(alias = "sentence-set")]
1123    fn is_sentence_set(&self) -> bool {
1124        ObjectExt::property(self.as_ref(), "sentence-set")
1125    }
1126
1127    #[doc(alias = "show-spaces")]
1128    fn show_spaces(&self) -> pango::ShowFlags {
1129        ObjectExt::property(self.as_ref(), "show-spaces")
1130    }
1131
1132    #[doc(alias = "show-spaces")]
1133    fn set_show_spaces(&self, show_spaces: pango::ShowFlags) {
1134        ObjectExt::set_property(self.as_ref(), "show-spaces", show_spaces)
1135    }
1136
1137    #[doc(alias = "show-spaces-set")]
1138    fn shows_spaces_set(&self) -> bool {
1139        ObjectExt::property(self.as_ref(), "show-spaces-set")
1140    }
1141
1142    fn size(&self) -> i32 {
1143        ObjectExt::property(self.as_ref(), "size")
1144    }
1145
1146    fn set_size(&self, size: i32) {
1147        ObjectExt::set_property(self.as_ref(), "size", size)
1148    }
1149
1150    #[doc(alias = "size-points")]
1151    fn size_points(&self) -> f64 {
1152        ObjectExt::property(self.as_ref(), "size-points")
1153    }
1154
1155    #[doc(alias = "size-points")]
1156    fn set_size_points(&self, size_points: f64) {
1157        ObjectExt::set_property(self.as_ref(), "size-points", size_points)
1158    }
1159
1160    #[doc(alias = "size-set")]
1161    fn is_size_set(&self) -> bool {
1162        ObjectExt::property(self.as_ref(), "size-set")
1163    }
1164
1165    fn stretch(&self) -> pango::Stretch {
1166        ObjectExt::property(self.as_ref(), "stretch")
1167    }
1168
1169    fn set_stretch(&self, stretch: pango::Stretch) {
1170        ObjectExt::set_property(self.as_ref(), "stretch", stretch)
1171    }
1172
1173    #[doc(alias = "stretch-set")]
1174    fn is_stretch_set(&self) -> bool {
1175        ObjectExt::property(self.as_ref(), "stretch-set")
1176    }
1177
1178    fn is_strikethrough(&self) -> bool {
1179        ObjectExt::property(self.as_ref(), "strikethrough")
1180    }
1181
1182    fn set_strikethrough(&self, strikethrough: bool) {
1183        ObjectExt::set_property(self.as_ref(), "strikethrough", strikethrough)
1184    }
1185
1186    #[doc(alias = "strikethrough-rgba")]
1187    fn strikethrough_rgba(&self) -> Option<gdk::RGBA> {
1188        ObjectExt::property(self.as_ref(), "strikethrough-rgba")
1189    }
1190
1191    #[doc(alias = "strikethrough-rgba")]
1192    fn set_strikethrough_rgba(&self, strikethrough_rgba: Option<&gdk::RGBA>) {
1193        ObjectExt::set_property(self.as_ref(), "strikethrough-rgba", strikethrough_rgba)
1194    }
1195
1196    #[doc(alias = "strikethrough-rgba-set")]
1197    fn is_strikethrough_rgba_set(&self) -> bool {
1198        ObjectExt::property(self.as_ref(), "strikethrough-rgba-set")
1199    }
1200
1201    #[doc(alias = "strikethrough-set")]
1202    fn is_strikethrough_set(&self) -> bool {
1203        ObjectExt::property(self.as_ref(), "strikethrough-set")
1204    }
1205
1206    fn style(&self) -> pango::Style {
1207        ObjectExt::property(self.as_ref(), "style")
1208    }
1209
1210    fn set_style(&self, style: pango::Style) {
1211        ObjectExt::set_property(self.as_ref(), "style", style)
1212    }
1213
1214    #[doc(alias = "style-set")]
1215    fn is_style_set(&self) -> bool {
1216        ObjectExt::property(self.as_ref(), "style-set")
1217    }
1218
1219    fn tabs(&self) -> Option<pango::TabArray> {
1220        ObjectExt::property(self.as_ref(), "tabs")
1221    }
1222
1223    fn set_tabs(&self, tabs: Option<&pango::TabArray>) {
1224        ObjectExt::set_property(self.as_ref(), "tabs", tabs)
1225    }
1226
1227    #[doc(alias = "tabs-set")]
1228    fn is_tabs_set(&self) -> bool {
1229        ObjectExt::property(self.as_ref(), "tabs-set")
1230    }
1231
1232    #[cfg(feature = "v4_6")]
1233    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1234    #[doc(alias = "text-transform")]
1235    fn text_transform(&self) -> pango::TextTransform {
1236        ObjectExt::property(self.as_ref(), "text-transform")
1237    }
1238
1239    #[cfg(feature = "v4_6")]
1240    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1241    #[doc(alias = "text-transform")]
1242    fn set_text_transform(&self, text_transform: pango::TextTransform) {
1243        ObjectExt::set_property(self.as_ref(), "text-transform", text_transform)
1244    }
1245
1246    #[cfg(feature = "v4_6")]
1247    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1248    #[doc(alias = "text-transform-set")]
1249    fn is_text_transform_set(&self) -> bool {
1250        ObjectExt::property(self.as_ref(), "text-transform-set")
1251    }
1252
1253    fn underline(&self) -> pango::Underline {
1254        ObjectExt::property(self.as_ref(), "underline")
1255    }
1256
1257    fn set_underline(&self, underline: pango::Underline) {
1258        ObjectExt::set_property(self.as_ref(), "underline", underline)
1259    }
1260
1261    #[doc(alias = "underline-rgba")]
1262    fn underline_rgba(&self) -> Option<gdk::RGBA> {
1263        ObjectExt::property(self.as_ref(), "underline-rgba")
1264    }
1265
1266    #[doc(alias = "underline-rgba")]
1267    fn set_underline_rgba(&self, underline_rgba: Option<&gdk::RGBA>) {
1268        ObjectExt::set_property(self.as_ref(), "underline-rgba", underline_rgba)
1269    }
1270
1271    #[doc(alias = "underline-rgba-set")]
1272    fn is_underline_rgba_set(&self) -> bool {
1273        ObjectExt::property(self.as_ref(), "underline-rgba-set")
1274    }
1275
1276    #[doc(alias = "underline-set")]
1277    fn is_underline_set(&self) -> bool {
1278        ObjectExt::property(self.as_ref(), "underline-set")
1279    }
1280
1281    fn variant(&self) -> pango::Variant {
1282        ObjectExt::property(self.as_ref(), "variant")
1283    }
1284
1285    fn set_variant(&self, variant: pango::Variant) {
1286        ObjectExt::set_property(self.as_ref(), "variant", variant)
1287    }
1288
1289    #[doc(alias = "variant-set")]
1290    fn is_variant_set(&self) -> bool {
1291        ObjectExt::property(self.as_ref(), "variant-set")
1292    }
1293
1294    fn weight(&self) -> i32 {
1295        ObjectExt::property(self.as_ref(), "weight")
1296    }
1297
1298    fn set_weight(&self, weight: i32) {
1299        ObjectExt::set_property(self.as_ref(), "weight", weight)
1300    }
1301
1302    #[doc(alias = "weight-set")]
1303    fn is_weight_set(&self) -> bool {
1304        ObjectExt::property(self.as_ref(), "weight-set")
1305    }
1306
1307    #[cfg(feature = "v4_6")]
1308    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1309    fn is_word(&self) -> bool {
1310        ObjectExt::property(self.as_ref(), "word")
1311    }
1312
1313    #[cfg(feature = "v4_6")]
1314    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1315    fn set_word(&self, word: bool) {
1316        ObjectExt::set_property(self.as_ref(), "word", word)
1317    }
1318
1319    #[cfg(feature = "v4_6")]
1320    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
1321    #[doc(alias = "word-set")]
1322    fn is_word_set(&self) -> bool {
1323        ObjectExt::property(self.as_ref(), "word-set")
1324    }
1325
1326    #[doc(alias = "wrap-mode")]
1327    fn wrap_mode(&self) -> WrapMode {
1328        ObjectExt::property(self.as_ref(), "wrap-mode")
1329    }
1330
1331    #[doc(alias = "wrap-mode")]
1332    fn set_wrap_mode(&self, wrap_mode: WrapMode) {
1333        ObjectExt::set_property(self.as_ref(), "wrap-mode", wrap_mode)
1334    }
1335
1336    #[doc(alias = "wrap-mode-set")]
1337    fn wraps_mode_set(&self) -> bool {
1338        ObjectExt::property(self.as_ref(), "wrap-mode-set")
1339    }
1340
1341    #[doc(alias = "accumulative-margin")]
1342    fn connect_accumulative_margin_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1343        unsafe extern "C" fn notify_accumulative_margin_trampoline<
1344            P: IsA<TextTag>,
1345            F: Fn(&P) + 'static,
1346        >(
1347            this: *mut ffi::GtkTextTag,
1348            _param_spec: glib::ffi::gpointer,
1349            f: glib::ffi::gpointer,
1350        ) {
1351            let f: &F = &*(f as *const F);
1352            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1353        }
1354        unsafe {
1355            let f: Box_<F> = Box_::new(f);
1356            connect_raw(
1357                self.as_ptr() as *mut _,
1358                c"notify::accumulative-margin".as_ptr() as *const _,
1359                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1360                    notify_accumulative_margin_trampoline::<Self, F> as *const (),
1361                )),
1362                Box_::into_raw(f),
1363            )
1364        }
1365    }
1366
1367    #[doc(alias = "allow-breaks")]
1368    fn connect_allow_breaks_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1369        unsafe extern "C" fn notify_allow_breaks_trampoline<
1370            P: IsA<TextTag>,
1371            F: Fn(&P) + 'static,
1372        >(
1373            this: *mut ffi::GtkTextTag,
1374            _param_spec: glib::ffi::gpointer,
1375            f: glib::ffi::gpointer,
1376        ) {
1377            let f: &F = &*(f as *const F);
1378            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1379        }
1380        unsafe {
1381            let f: Box_<F> = Box_::new(f);
1382            connect_raw(
1383                self.as_ptr() as *mut _,
1384                c"notify::allow-breaks".as_ptr() as *const _,
1385                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1386                    notify_allow_breaks_trampoline::<Self, F> as *const (),
1387                )),
1388                Box_::into_raw(f),
1389            )
1390        }
1391    }
1392
1393    #[doc(alias = "allow-breaks-set")]
1394    fn connect_allow_breaks_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1395        unsafe extern "C" fn notify_allow_breaks_set_trampoline<
1396            P: IsA<TextTag>,
1397            F: Fn(&P) + 'static,
1398        >(
1399            this: *mut ffi::GtkTextTag,
1400            _param_spec: glib::ffi::gpointer,
1401            f: glib::ffi::gpointer,
1402        ) {
1403            let f: &F = &*(f as *const F);
1404            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1405        }
1406        unsafe {
1407            let f: Box_<F> = Box_::new(f);
1408            connect_raw(
1409                self.as_ptr() as *mut _,
1410                c"notify::allow-breaks-set".as_ptr() as *const _,
1411                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1412                    notify_allow_breaks_set_trampoline::<Self, F> as *const (),
1413                )),
1414                Box_::into_raw(f),
1415            )
1416        }
1417    }
1418
1419    #[doc(alias = "background")]
1420    fn connect_background_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1421        unsafe extern "C" fn notify_background_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1422            this: *mut ffi::GtkTextTag,
1423            _param_spec: glib::ffi::gpointer,
1424            f: glib::ffi::gpointer,
1425        ) {
1426            let f: &F = &*(f as *const F);
1427            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1428        }
1429        unsafe {
1430            let f: Box_<F> = Box_::new(f);
1431            connect_raw(
1432                self.as_ptr() as *mut _,
1433                c"notify::background".as_ptr() as *const _,
1434                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1435                    notify_background_trampoline::<Self, F> as *const (),
1436                )),
1437                Box_::into_raw(f),
1438            )
1439        }
1440    }
1441
1442    #[doc(alias = "background-full-height")]
1443    fn connect_background_full_height_notify<F: Fn(&Self) + 'static>(
1444        &self,
1445        f: F,
1446    ) -> SignalHandlerId {
1447        unsafe extern "C" fn notify_background_full_height_trampoline<
1448            P: IsA<TextTag>,
1449            F: Fn(&P) + 'static,
1450        >(
1451            this: *mut ffi::GtkTextTag,
1452            _param_spec: glib::ffi::gpointer,
1453            f: glib::ffi::gpointer,
1454        ) {
1455            let f: &F = &*(f as *const F);
1456            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1457        }
1458        unsafe {
1459            let f: Box_<F> = Box_::new(f);
1460            connect_raw(
1461                self.as_ptr() as *mut _,
1462                c"notify::background-full-height".as_ptr() as *const _,
1463                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1464                    notify_background_full_height_trampoline::<Self, F> as *const (),
1465                )),
1466                Box_::into_raw(f),
1467            )
1468        }
1469    }
1470
1471    #[doc(alias = "background-full-height-set")]
1472    fn connect_background_full_height_set_notify<F: Fn(&Self) + 'static>(
1473        &self,
1474        f: F,
1475    ) -> SignalHandlerId {
1476        unsafe extern "C" fn notify_background_full_height_set_trampoline<
1477            P: IsA<TextTag>,
1478            F: Fn(&P) + 'static,
1479        >(
1480            this: *mut ffi::GtkTextTag,
1481            _param_spec: glib::ffi::gpointer,
1482            f: glib::ffi::gpointer,
1483        ) {
1484            let f: &F = &*(f as *const F);
1485            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1486        }
1487        unsafe {
1488            let f: Box_<F> = Box_::new(f);
1489            connect_raw(
1490                self.as_ptr() as *mut _,
1491                c"notify::background-full-height-set".as_ptr() as *const _,
1492                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1493                    notify_background_full_height_set_trampoline::<Self, F> as *const (),
1494                )),
1495                Box_::into_raw(f),
1496            )
1497        }
1498    }
1499
1500    #[doc(alias = "background-rgba")]
1501    fn connect_background_rgba_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1502        unsafe extern "C" fn notify_background_rgba_trampoline<
1503            P: IsA<TextTag>,
1504            F: Fn(&P) + 'static,
1505        >(
1506            this: *mut ffi::GtkTextTag,
1507            _param_spec: glib::ffi::gpointer,
1508            f: glib::ffi::gpointer,
1509        ) {
1510            let f: &F = &*(f as *const F);
1511            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1512        }
1513        unsafe {
1514            let f: Box_<F> = Box_::new(f);
1515            connect_raw(
1516                self.as_ptr() as *mut _,
1517                c"notify::background-rgba".as_ptr() as *const _,
1518                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1519                    notify_background_rgba_trampoline::<Self, F> as *const (),
1520                )),
1521                Box_::into_raw(f),
1522            )
1523        }
1524    }
1525
1526    #[doc(alias = "background-set")]
1527    fn connect_background_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1528        unsafe extern "C" fn notify_background_set_trampoline<
1529            P: IsA<TextTag>,
1530            F: Fn(&P) + 'static,
1531        >(
1532            this: *mut ffi::GtkTextTag,
1533            _param_spec: glib::ffi::gpointer,
1534            f: glib::ffi::gpointer,
1535        ) {
1536            let f: &F = &*(f as *const F);
1537            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1538        }
1539        unsafe {
1540            let f: Box_<F> = Box_::new(f);
1541            connect_raw(
1542                self.as_ptr() as *mut _,
1543                c"notify::background-set".as_ptr() as *const _,
1544                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1545                    notify_background_set_trampoline::<Self, F> as *const (),
1546                )),
1547                Box_::into_raw(f),
1548            )
1549        }
1550    }
1551
1552    #[doc(alias = "direction")]
1553    fn connect_direction_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1554        unsafe extern "C" fn notify_direction_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1555            this: *mut ffi::GtkTextTag,
1556            _param_spec: glib::ffi::gpointer,
1557            f: glib::ffi::gpointer,
1558        ) {
1559            let f: &F = &*(f as *const F);
1560            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1561        }
1562        unsafe {
1563            let f: Box_<F> = Box_::new(f);
1564            connect_raw(
1565                self.as_ptr() as *mut _,
1566                c"notify::direction".as_ptr() as *const _,
1567                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1568                    notify_direction_trampoline::<Self, F> as *const (),
1569                )),
1570                Box_::into_raw(f),
1571            )
1572        }
1573    }
1574
1575    #[doc(alias = "editable")]
1576    fn connect_editable_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1577        unsafe extern "C" fn notify_editable_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1578            this: *mut ffi::GtkTextTag,
1579            _param_spec: glib::ffi::gpointer,
1580            f: glib::ffi::gpointer,
1581        ) {
1582            let f: &F = &*(f as *const F);
1583            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1584        }
1585        unsafe {
1586            let f: Box_<F> = Box_::new(f);
1587            connect_raw(
1588                self.as_ptr() as *mut _,
1589                c"notify::editable".as_ptr() as *const _,
1590                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1591                    notify_editable_trampoline::<Self, F> as *const (),
1592                )),
1593                Box_::into_raw(f),
1594            )
1595        }
1596    }
1597
1598    #[doc(alias = "editable-set")]
1599    fn connect_editable_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1600        unsafe extern "C" fn notify_editable_set_trampoline<
1601            P: IsA<TextTag>,
1602            F: Fn(&P) + 'static,
1603        >(
1604            this: *mut ffi::GtkTextTag,
1605            _param_spec: glib::ffi::gpointer,
1606            f: glib::ffi::gpointer,
1607        ) {
1608            let f: &F = &*(f as *const F);
1609            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1610        }
1611        unsafe {
1612            let f: Box_<F> = Box_::new(f);
1613            connect_raw(
1614                self.as_ptr() as *mut _,
1615                c"notify::editable-set".as_ptr() as *const _,
1616                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1617                    notify_editable_set_trampoline::<Self, F> as *const (),
1618                )),
1619                Box_::into_raw(f),
1620            )
1621        }
1622    }
1623
1624    #[doc(alias = "fallback")]
1625    fn connect_fallback_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1626        unsafe extern "C" fn notify_fallback_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1627            this: *mut ffi::GtkTextTag,
1628            _param_spec: glib::ffi::gpointer,
1629            f: glib::ffi::gpointer,
1630        ) {
1631            let f: &F = &*(f as *const F);
1632            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1633        }
1634        unsafe {
1635            let f: Box_<F> = Box_::new(f);
1636            connect_raw(
1637                self.as_ptr() as *mut _,
1638                c"notify::fallback".as_ptr() as *const _,
1639                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1640                    notify_fallback_trampoline::<Self, F> as *const (),
1641                )),
1642                Box_::into_raw(f),
1643            )
1644        }
1645    }
1646
1647    #[doc(alias = "fallback-set")]
1648    fn connect_fallback_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1649        unsafe extern "C" fn notify_fallback_set_trampoline<
1650            P: IsA<TextTag>,
1651            F: Fn(&P) + 'static,
1652        >(
1653            this: *mut ffi::GtkTextTag,
1654            _param_spec: glib::ffi::gpointer,
1655            f: glib::ffi::gpointer,
1656        ) {
1657            let f: &F = &*(f as *const F);
1658            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1659        }
1660        unsafe {
1661            let f: Box_<F> = Box_::new(f);
1662            connect_raw(
1663                self.as_ptr() as *mut _,
1664                c"notify::fallback-set".as_ptr() as *const _,
1665                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1666                    notify_fallback_set_trampoline::<Self, F> as *const (),
1667                )),
1668                Box_::into_raw(f),
1669            )
1670        }
1671    }
1672
1673    #[doc(alias = "family")]
1674    fn connect_family_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1675        unsafe extern "C" fn notify_family_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1676            this: *mut ffi::GtkTextTag,
1677            _param_spec: glib::ffi::gpointer,
1678            f: glib::ffi::gpointer,
1679        ) {
1680            let f: &F = &*(f as *const F);
1681            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1682        }
1683        unsafe {
1684            let f: Box_<F> = Box_::new(f);
1685            connect_raw(
1686                self.as_ptr() as *mut _,
1687                c"notify::family".as_ptr() as *const _,
1688                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1689                    notify_family_trampoline::<Self, F> as *const (),
1690                )),
1691                Box_::into_raw(f),
1692            )
1693        }
1694    }
1695
1696    #[doc(alias = "family-set")]
1697    fn connect_family_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1698        unsafe extern "C" fn notify_family_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1699            this: *mut ffi::GtkTextTag,
1700            _param_spec: glib::ffi::gpointer,
1701            f: glib::ffi::gpointer,
1702        ) {
1703            let f: &F = &*(f as *const F);
1704            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1705        }
1706        unsafe {
1707            let f: Box_<F> = Box_::new(f);
1708            connect_raw(
1709                self.as_ptr() as *mut _,
1710                c"notify::family-set".as_ptr() as *const _,
1711                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1712                    notify_family_set_trampoline::<Self, F> as *const (),
1713                )),
1714                Box_::into_raw(f),
1715            )
1716        }
1717    }
1718
1719    #[doc(alias = "font")]
1720    fn connect_font_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1721        unsafe extern "C" fn notify_font_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1722            this: *mut ffi::GtkTextTag,
1723            _param_spec: glib::ffi::gpointer,
1724            f: glib::ffi::gpointer,
1725        ) {
1726            let f: &F = &*(f as *const F);
1727            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1728        }
1729        unsafe {
1730            let f: Box_<F> = Box_::new(f);
1731            connect_raw(
1732                self.as_ptr() as *mut _,
1733                c"notify::font".as_ptr() as *const _,
1734                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1735                    notify_font_trampoline::<Self, F> as *const (),
1736                )),
1737                Box_::into_raw(f),
1738            )
1739        }
1740    }
1741
1742    #[doc(alias = "font-desc")]
1743    fn connect_font_desc_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1744        unsafe extern "C" fn notify_font_desc_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1745            this: *mut ffi::GtkTextTag,
1746            _param_spec: glib::ffi::gpointer,
1747            f: glib::ffi::gpointer,
1748        ) {
1749            let f: &F = &*(f as *const F);
1750            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1751        }
1752        unsafe {
1753            let f: Box_<F> = Box_::new(f);
1754            connect_raw(
1755                self.as_ptr() as *mut _,
1756                c"notify::font-desc".as_ptr() as *const _,
1757                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1758                    notify_font_desc_trampoline::<Self, F> as *const (),
1759                )),
1760                Box_::into_raw(f),
1761            )
1762        }
1763    }
1764
1765    #[doc(alias = "font-features")]
1766    fn connect_font_features_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1767        unsafe extern "C" fn notify_font_features_trampoline<
1768            P: IsA<TextTag>,
1769            F: Fn(&P) + 'static,
1770        >(
1771            this: *mut ffi::GtkTextTag,
1772            _param_spec: glib::ffi::gpointer,
1773            f: glib::ffi::gpointer,
1774        ) {
1775            let f: &F = &*(f as *const F);
1776            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1777        }
1778        unsafe {
1779            let f: Box_<F> = Box_::new(f);
1780            connect_raw(
1781                self.as_ptr() as *mut _,
1782                c"notify::font-features".as_ptr() as *const _,
1783                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1784                    notify_font_features_trampoline::<Self, F> as *const (),
1785                )),
1786                Box_::into_raw(f),
1787            )
1788        }
1789    }
1790
1791    #[doc(alias = "font-features-set")]
1792    fn connect_font_features_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1793        unsafe extern "C" fn notify_font_features_set_trampoline<
1794            P: IsA<TextTag>,
1795            F: Fn(&P) + 'static,
1796        >(
1797            this: *mut ffi::GtkTextTag,
1798            _param_spec: glib::ffi::gpointer,
1799            f: glib::ffi::gpointer,
1800        ) {
1801            let f: &F = &*(f as *const F);
1802            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1803        }
1804        unsafe {
1805            let f: Box_<F> = Box_::new(f);
1806            connect_raw(
1807                self.as_ptr() as *mut _,
1808                c"notify::font-features-set".as_ptr() as *const _,
1809                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1810                    notify_font_features_set_trampoline::<Self, F> as *const (),
1811                )),
1812                Box_::into_raw(f),
1813            )
1814        }
1815    }
1816
1817    #[doc(alias = "foreground")]
1818    fn connect_foreground_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1819        unsafe extern "C" fn notify_foreground_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1820            this: *mut ffi::GtkTextTag,
1821            _param_spec: glib::ffi::gpointer,
1822            f: glib::ffi::gpointer,
1823        ) {
1824            let f: &F = &*(f as *const F);
1825            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1826        }
1827        unsafe {
1828            let f: Box_<F> = Box_::new(f);
1829            connect_raw(
1830                self.as_ptr() as *mut _,
1831                c"notify::foreground".as_ptr() as *const _,
1832                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1833                    notify_foreground_trampoline::<Self, F> as *const (),
1834                )),
1835                Box_::into_raw(f),
1836            )
1837        }
1838    }
1839
1840    #[doc(alias = "foreground-rgba")]
1841    fn connect_foreground_rgba_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1842        unsafe extern "C" fn notify_foreground_rgba_trampoline<
1843            P: IsA<TextTag>,
1844            F: Fn(&P) + 'static,
1845        >(
1846            this: *mut ffi::GtkTextTag,
1847            _param_spec: glib::ffi::gpointer,
1848            f: glib::ffi::gpointer,
1849        ) {
1850            let f: &F = &*(f as *const F);
1851            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1852        }
1853        unsafe {
1854            let f: Box_<F> = Box_::new(f);
1855            connect_raw(
1856                self.as_ptr() as *mut _,
1857                c"notify::foreground-rgba".as_ptr() as *const _,
1858                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1859                    notify_foreground_rgba_trampoline::<Self, F> as *const (),
1860                )),
1861                Box_::into_raw(f),
1862            )
1863        }
1864    }
1865
1866    #[doc(alias = "foreground-set")]
1867    fn connect_foreground_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1868        unsafe extern "C" fn notify_foreground_set_trampoline<
1869            P: IsA<TextTag>,
1870            F: Fn(&P) + 'static,
1871        >(
1872            this: *mut ffi::GtkTextTag,
1873            _param_spec: glib::ffi::gpointer,
1874            f: glib::ffi::gpointer,
1875        ) {
1876            let f: &F = &*(f as *const F);
1877            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1878        }
1879        unsafe {
1880            let f: Box_<F> = Box_::new(f);
1881            connect_raw(
1882                self.as_ptr() as *mut _,
1883                c"notify::foreground-set".as_ptr() as *const _,
1884                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1885                    notify_foreground_set_trampoline::<Self, F> as *const (),
1886                )),
1887                Box_::into_raw(f),
1888            )
1889        }
1890    }
1891
1892    #[doc(alias = "indent")]
1893    fn connect_indent_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1894        unsafe extern "C" fn notify_indent_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1895            this: *mut ffi::GtkTextTag,
1896            _param_spec: glib::ffi::gpointer,
1897            f: glib::ffi::gpointer,
1898        ) {
1899            let f: &F = &*(f as *const F);
1900            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1901        }
1902        unsafe {
1903            let f: Box_<F> = Box_::new(f);
1904            connect_raw(
1905                self.as_ptr() as *mut _,
1906                c"notify::indent".as_ptr() as *const _,
1907                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1908                    notify_indent_trampoline::<Self, F> as *const (),
1909                )),
1910                Box_::into_raw(f),
1911            )
1912        }
1913    }
1914
1915    #[doc(alias = "indent-set")]
1916    fn connect_indent_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1917        unsafe extern "C" fn notify_indent_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1918            this: *mut ffi::GtkTextTag,
1919            _param_spec: glib::ffi::gpointer,
1920            f: glib::ffi::gpointer,
1921        ) {
1922            let f: &F = &*(f as *const F);
1923            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1924        }
1925        unsafe {
1926            let f: Box_<F> = Box_::new(f);
1927            connect_raw(
1928                self.as_ptr() as *mut _,
1929                c"notify::indent-set".as_ptr() as *const _,
1930                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1931                    notify_indent_set_trampoline::<Self, F> as *const (),
1932                )),
1933                Box_::into_raw(f),
1934            )
1935        }
1936    }
1937
1938    #[doc(alias = "insert-hyphens")]
1939    fn connect_insert_hyphens_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1940        unsafe extern "C" fn notify_insert_hyphens_trampoline<
1941            P: IsA<TextTag>,
1942            F: Fn(&P) + 'static,
1943        >(
1944            this: *mut ffi::GtkTextTag,
1945            _param_spec: glib::ffi::gpointer,
1946            f: glib::ffi::gpointer,
1947        ) {
1948            let f: &F = &*(f as *const F);
1949            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1950        }
1951        unsafe {
1952            let f: Box_<F> = Box_::new(f);
1953            connect_raw(
1954                self.as_ptr() as *mut _,
1955                c"notify::insert-hyphens".as_ptr() as *const _,
1956                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1957                    notify_insert_hyphens_trampoline::<Self, F> as *const (),
1958                )),
1959                Box_::into_raw(f),
1960            )
1961        }
1962    }
1963
1964    #[doc(alias = "insert-hyphens-set")]
1965    fn connect_insert_hyphens_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1966        unsafe extern "C" fn notify_insert_hyphens_set_trampoline<
1967            P: IsA<TextTag>,
1968            F: Fn(&P) + 'static,
1969        >(
1970            this: *mut ffi::GtkTextTag,
1971            _param_spec: glib::ffi::gpointer,
1972            f: glib::ffi::gpointer,
1973        ) {
1974            let f: &F = &*(f as *const F);
1975            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1976        }
1977        unsafe {
1978            let f: Box_<F> = Box_::new(f);
1979            connect_raw(
1980                self.as_ptr() as *mut _,
1981                c"notify::insert-hyphens-set".as_ptr() as *const _,
1982                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
1983                    notify_insert_hyphens_set_trampoline::<Self, F> as *const (),
1984                )),
1985                Box_::into_raw(f),
1986            )
1987        }
1988    }
1989
1990    #[doc(alias = "invisible")]
1991    fn connect_invisible_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1992        unsafe extern "C" fn notify_invisible_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
1993            this: *mut ffi::GtkTextTag,
1994            _param_spec: glib::ffi::gpointer,
1995            f: glib::ffi::gpointer,
1996        ) {
1997            let f: &F = &*(f as *const F);
1998            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
1999        }
2000        unsafe {
2001            let f: Box_<F> = Box_::new(f);
2002            connect_raw(
2003                self.as_ptr() as *mut _,
2004                c"notify::invisible".as_ptr() as *const _,
2005                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2006                    notify_invisible_trampoline::<Self, F> as *const (),
2007                )),
2008                Box_::into_raw(f),
2009            )
2010        }
2011    }
2012
2013    #[doc(alias = "invisible-set")]
2014    fn connect_invisible_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2015        unsafe extern "C" fn notify_invisible_set_trampoline<
2016            P: IsA<TextTag>,
2017            F: Fn(&P) + 'static,
2018        >(
2019            this: *mut ffi::GtkTextTag,
2020            _param_spec: glib::ffi::gpointer,
2021            f: glib::ffi::gpointer,
2022        ) {
2023            let f: &F = &*(f as *const F);
2024            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2025        }
2026        unsafe {
2027            let f: Box_<F> = Box_::new(f);
2028            connect_raw(
2029                self.as_ptr() as *mut _,
2030                c"notify::invisible-set".as_ptr() as *const _,
2031                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2032                    notify_invisible_set_trampoline::<Self, F> as *const (),
2033                )),
2034                Box_::into_raw(f),
2035            )
2036        }
2037    }
2038
2039    #[doc(alias = "justification")]
2040    fn connect_justification_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2041        unsafe extern "C" fn notify_justification_trampoline<
2042            P: IsA<TextTag>,
2043            F: Fn(&P) + 'static,
2044        >(
2045            this: *mut ffi::GtkTextTag,
2046            _param_spec: glib::ffi::gpointer,
2047            f: glib::ffi::gpointer,
2048        ) {
2049            let f: &F = &*(f as *const F);
2050            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2051        }
2052        unsafe {
2053            let f: Box_<F> = Box_::new(f);
2054            connect_raw(
2055                self.as_ptr() as *mut _,
2056                c"notify::justification".as_ptr() as *const _,
2057                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2058                    notify_justification_trampoline::<Self, F> as *const (),
2059                )),
2060                Box_::into_raw(f),
2061            )
2062        }
2063    }
2064
2065    #[doc(alias = "justification-set")]
2066    fn connect_justification_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2067        unsafe extern "C" fn notify_justification_set_trampoline<
2068            P: IsA<TextTag>,
2069            F: Fn(&P) + 'static,
2070        >(
2071            this: *mut ffi::GtkTextTag,
2072            _param_spec: glib::ffi::gpointer,
2073            f: glib::ffi::gpointer,
2074        ) {
2075            let f: &F = &*(f as *const F);
2076            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2077        }
2078        unsafe {
2079            let f: Box_<F> = Box_::new(f);
2080            connect_raw(
2081                self.as_ptr() as *mut _,
2082                c"notify::justification-set".as_ptr() as *const _,
2083                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2084                    notify_justification_set_trampoline::<Self, F> as *const (),
2085                )),
2086                Box_::into_raw(f),
2087            )
2088        }
2089    }
2090
2091    #[doc(alias = "language")]
2092    fn connect_language_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2093        unsafe extern "C" fn notify_language_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2094            this: *mut ffi::GtkTextTag,
2095            _param_spec: glib::ffi::gpointer,
2096            f: glib::ffi::gpointer,
2097        ) {
2098            let f: &F = &*(f as *const F);
2099            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2100        }
2101        unsafe {
2102            let f: Box_<F> = Box_::new(f);
2103            connect_raw(
2104                self.as_ptr() as *mut _,
2105                c"notify::language".as_ptr() as *const _,
2106                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2107                    notify_language_trampoline::<Self, F> as *const (),
2108                )),
2109                Box_::into_raw(f),
2110            )
2111        }
2112    }
2113
2114    #[doc(alias = "language-set")]
2115    fn connect_language_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2116        unsafe extern "C" fn notify_language_set_trampoline<
2117            P: IsA<TextTag>,
2118            F: Fn(&P) + 'static,
2119        >(
2120            this: *mut ffi::GtkTextTag,
2121            _param_spec: glib::ffi::gpointer,
2122            f: glib::ffi::gpointer,
2123        ) {
2124            let f: &F = &*(f as *const F);
2125            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2126        }
2127        unsafe {
2128            let f: Box_<F> = Box_::new(f);
2129            connect_raw(
2130                self.as_ptr() as *mut _,
2131                c"notify::language-set".as_ptr() as *const _,
2132                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2133                    notify_language_set_trampoline::<Self, F> as *const (),
2134                )),
2135                Box_::into_raw(f),
2136            )
2137        }
2138    }
2139
2140    #[doc(alias = "left-margin")]
2141    fn connect_left_margin_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2142        unsafe extern "C" fn notify_left_margin_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2143            this: *mut ffi::GtkTextTag,
2144            _param_spec: glib::ffi::gpointer,
2145            f: glib::ffi::gpointer,
2146        ) {
2147            let f: &F = &*(f as *const F);
2148            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2149        }
2150        unsafe {
2151            let f: Box_<F> = Box_::new(f);
2152            connect_raw(
2153                self.as_ptr() as *mut _,
2154                c"notify::left-margin".as_ptr() as *const _,
2155                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2156                    notify_left_margin_trampoline::<Self, F> as *const (),
2157                )),
2158                Box_::into_raw(f),
2159            )
2160        }
2161    }
2162
2163    #[doc(alias = "left-margin-set")]
2164    fn connect_left_margin_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2165        unsafe extern "C" fn notify_left_margin_set_trampoline<
2166            P: IsA<TextTag>,
2167            F: Fn(&P) + 'static,
2168        >(
2169            this: *mut ffi::GtkTextTag,
2170            _param_spec: glib::ffi::gpointer,
2171            f: glib::ffi::gpointer,
2172        ) {
2173            let f: &F = &*(f as *const F);
2174            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2175        }
2176        unsafe {
2177            let f: Box_<F> = Box_::new(f);
2178            connect_raw(
2179                self.as_ptr() as *mut _,
2180                c"notify::left-margin-set".as_ptr() as *const _,
2181                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2182                    notify_left_margin_set_trampoline::<Self, F> as *const (),
2183                )),
2184                Box_::into_raw(f),
2185            )
2186        }
2187    }
2188
2189    #[doc(alias = "letter-spacing")]
2190    fn connect_letter_spacing_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2191        unsafe extern "C" fn notify_letter_spacing_trampoline<
2192            P: IsA<TextTag>,
2193            F: Fn(&P) + 'static,
2194        >(
2195            this: *mut ffi::GtkTextTag,
2196            _param_spec: glib::ffi::gpointer,
2197            f: glib::ffi::gpointer,
2198        ) {
2199            let f: &F = &*(f as *const F);
2200            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2201        }
2202        unsafe {
2203            let f: Box_<F> = Box_::new(f);
2204            connect_raw(
2205                self.as_ptr() as *mut _,
2206                c"notify::letter-spacing".as_ptr() as *const _,
2207                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2208                    notify_letter_spacing_trampoline::<Self, F> as *const (),
2209                )),
2210                Box_::into_raw(f),
2211            )
2212        }
2213    }
2214
2215    #[doc(alias = "letter-spacing-set")]
2216    fn connect_letter_spacing_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2217        unsafe extern "C" fn notify_letter_spacing_set_trampoline<
2218            P: IsA<TextTag>,
2219            F: Fn(&P) + 'static,
2220        >(
2221            this: *mut ffi::GtkTextTag,
2222            _param_spec: glib::ffi::gpointer,
2223            f: glib::ffi::gpointer,
2224        ) {
2225            let f: &F = &*(f as *const F);
2226            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2227        }
2228        unsafe {
2229            let f: Box_<F> = Box_::new(f);
2230            connect_raw(
2231                self.as_ptr() as *mut _,
2232                c"notify::letter-spacing-set".as_ptr() as *const _,
2233                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2234                    notify_letter_spacing_set_trampoline::<Self, F> as *const (),
2235                )),
2236                Box_::into_raw(f),
2237            )
2238        }
2239    }
2240
2241    #[cfg(feature = "v4_6")]
2242    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
2243    #[doc(alias = "line-height")]
2244    fn connect_line_height_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2245        unsafe extern "C" fn notify_line_height_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2246            this: *mut ffi::GtkTextTag,
2247            _param_spec: glib::ffi::gpointer,
2248            f: glib::ffi::gpointer,
2249        ) {
2250            let f: &F = &*(f as *const F);
2251            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2252        }
2253        unsafe {
2254            let f: Box_<F> = Box_::new(f);
2255            connect_raw(
2256                self.as_ptr() as *mut _,
2257                c"notify::line-height".as_ptr() as *const _,
2258                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2259                    notify_line_height_trampoline::<Self, F> as *const (),
2260                )),
2261                Box_::into_raw(f),
2262            )
2263        }
2264    }
2265
2266    #[cfg(feature = "v4_6")]
2267    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
2268    #[doc(alias = "line-height-set")]
2269    fn connect_line_height_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2270        unsafe extern "C" fn notify_line_height_set_trampoline<
2271            P: IsA<TextTag>,
2272            F: Fn(&P) + 'static,
2273        >(
2274            this: *mut ffi::GtkTextTag,
2275            _param_spec: glib::ffi::gpointer,
2276            f: glib::ffi::gpointer,
2277        ) {
2278            let f: &F = &*(f as *const F);
2279            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2280        }
2281        unsafe {
2282            let f: Box_<F> = Box_::new(f);
2283            connect_raw(
2284                self.as_ptr() as *mut _,
2285                c"notify::line-height-set".as_ptr() as *const _,
2286                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2287                    notify_line_height_set_trampoline::<Self, F> as *const (),
2288                )),
2289                Box_::into_raw(f),
2290            )
2291        }
2292    }
2293
2294    #[doc(alias = "overline")]
2295    fn connect_overline_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2296        unsafe extern "C" fn notify_overline_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2297            this: *mut ffi::GtkTextTag,
2298            _param_spec: glib::ffi::gpointer,
2299            f: glib::ffi::gpointer,
2300        ) {
2301            let f: &F = &*(f as *const F);
2302            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2303        }
2304        unsafe {
2305            let f: Box_<F> = Box_::new(f);
2306            connect_raw(
2307                self.as_ptr() as *mut _,
2308                c"notify::overline".as_ptr() as *const _,
2309                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2310                    notify_overline_trampoline::<Self, F> as *const (),
2311                )),
2312                Box_::into_raw(f),
2313            )
2314        }
2315    }
2316
2317    #[doc(alias = "overline-rgba")]
2318    fn connect_overline_rgba_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2319        unsafe extern "C" fn notify_overline_rgba_trampoline<
2320            P: IsA<TextTag>,
2321            F: Fn(&P) + 'static,
2322        >(
2323            this: *mut ffi::GtkTextTag,
2324            _param_spec: glib::ffi::gpointer,
2325            f: glib::ffi::gpointer,
2326        ) {
2327            let f: &F = &*(f as *const F);
2328            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2329        }
2330        unsafe {
2331            let f: Box_<F> = Box_::new(f);
2332            connect_raw(
2333                self.as_ptr() as *mut _,
2334                c"notify::overline-rgba".as_ptr() as *const _,
2335                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2336                    notify_overline_rgba_trampoline::<Self, F> as *const (),
2337                )),
2338                Box_::into_raw(f),
2339            )
2340        }
2341    }
2342
2343    #[doc(alias = "overline-rgba-set")]
2344    fn connect_overline_rgba_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2345        unsafe extern "C" fn notify_overline_rgba_set_trampoline<
2346            P: IsA<TextTag>,
2347            F: Fn(&P) + 'static,
2348        >(
2349            this: *mut ffi::GtkTextTag,
2350            _param_spec: glib::ffi::gpointer,
2351            f: glib::ffi::gpointer,
2352        ) {
2353            let f: &F = &*(f as *const F);
2354            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2355        }
2356        unsafe {
2357            let f: Box_<F> = Box_::new(f);
2358            connect_raw(
2359                self.as_ptr() as *mut _,
2360                c"notify::overline-rgba-set".as_ptr() as *const _,
2361                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2362                    notify_overline_rgba_set_trampoline::<Self, F> as *const (),
2363                )),
2364                Box_::into_raw(f),
2365            )
2366        }
2367    }
2368
2369    #[doc(alias = "overline-set")]
2370    fn connect_overline_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2371        unsafe extern "C" fn notify_overline_set_trampoline<
2372            P: IsA<TextTag>,
2373            F: Fn(&P) + 'static,
2374        >(
2375            this: *mut ffi::GtkTextTag,
2376            _param_spec: glib::ffi::gpointer,
2377            f: glib::ffi::gpointer,
2378        ) {
2379            let f: &F = &*(f as *const F);
2380            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2381        }
2382        unsafe {
2383            let f: Box_<F> = Box_::new(f);
2384            connect_raw(
2385                self.as_ptr() as *mut _,
2386                c"notify::overline-set".as_ptr() as *const _,
2387                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2388                    notify_overline_set_trampoline::<Self, F> as *const (),
2389                )),
2390                Box_::into_raw(f),
2391            )
2392        }
2393    }
2394
2395    #[doc(alias = "paragraph-background")]
2396    fn connect_paragraph_background_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2397        unsafe extern "C" fn notify_paragraph_background_trampoline<
2398            P: IsA<TextTag>,
2399            F: Fn(&P) + 'static,
2400        >(
2401            this: *mut ffi::GtkTextTag,
2402            _param_spec: glib::ffi::gpointer,
2403            f: glib::ffi::gpointer,
2404        ) {
2405            let f: &F = &*(f as *const F);
2406            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2407        }
2408        unsafe {
2409            let f: Box_<F> = Box_::new(f);
2410            connect_raw(
2411                self.as_ptr() as *mut _,
2412                c"notify::paragraph-background".as_ptr() as *const _,
2413                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2414                    notify_paragraph_background_trampoline::<Self, F> as *const (),
2415                )),
2416                Box_::into_raw(f),
2417            )
2418        }
2419    }
2420
2421    #[doc(alias = "paragraph-background-rgba")]
2422    fn connect_paragraph_background_rgba_notify<F: Fn(&Self) + 'static>(
2423        &self,
2424        f: F,
2425    ) -> SignalHandlerId {
2426        unsafe extern "C" fn notify_paragraph_background_rgba_trampoline<
2427            P: IsA<TextTag>,
2428            F: Fn(&P) + 'static,
2429        >(
2430            this: *mut ffi::GtkTextTag,
2431            _param_spec: glib::ffi::gpointer,
2432            f: glib::ffi::gpointer,
2433        ) {
2434            let f: &F = &*(f as *const F);
2435            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2436        }
2437        unsafe {
2438            let f: Box_<F> = Box_::new(f);
2439            connect_raw(
2440                self.as_ptr() as *mut _,
2441                c"notify::paragraph-background-rgba".as_ptr() as *const _,
2442                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2443                    notify_paragraph_background_rgba_trampoline::<Self, F> as *const (),
2444                )),
2445                Box_::into_raw(f),
2446            )
2447        }
2448    }
2449
2450    #[doc(alias = "paragraph-background-set")]
2451    fn connect_paragraph_background_set_notify<F: Fn(&Self) + 'static>(
2452        &self,
2453        f: F,
2454    ) -> SignalHandlerId {
2455        unsafe extern "C" fn notify_paragraph_background_set_trampoline<
2456            P: IsA<TextTag>,
2457            F: Fn(&P) + 'static,
2458        >(
2459            this: *mut ffi::GtkTextTag,
2460            _param_spec: glib::ffi::gpointer,
2461            f: glib::ffi::gpointer,
2462        ) {
2463            let f: &F = &*(f as *const F);
2464            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2465        }
2466        unsafe {
2467            let f: Box_<F> = Box_::new(f);
2468            connect_raw(
2469                self.as_ptr() as *mut _,
2470                c"notify::paragraph-background-set".as_ptr() as *const _,
2471                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2472                    notify_paragraph_background_set_trampoline::<Self, F> as *const (),
2473                )),
2474                Box_::into_raw(f),
2475            )
2476        }
2477    }
2478
2479    #[doc(alias = "pixels-above-lines")]
2480    fn connect_pixels_above_lines_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2481        unsafe extern "C" fn notify_pixels_above_lines_trampoline<
2482            P: IsA<TextTag>,
2483            F: Fn(&P) + 'static,
2484        >(
2485            this: *mut ffi::GtkTextTag,
2486            _param_spec: glib::ffi::gpointer,
2487            f: glib::ffi::gpointer,
2488        ) {
2489            let f: &F = &*(f as *const F);
2490            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2491        }
2492        unsafe {
2493            let f: Box_<F> = Box_::new(f);
2494            connect_raw(
2495                self.as_ptr() as *mut _,
2496                c"notify::pixels-above-lines".as_ptr() as *const _,
2497                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2498                    notify_pixels_above_lines_trampoline::<Self, F> as *const (),
2499                )),
2500                Box_::into_raw(f),
2501            )
2502        }
2503    }
2504
2505    #[doc(alias = "pixels-above-lines-set")]
2506    fn connect_pixels_above_lines_set_notify<F: Fn(&Self) + 'static>(
2507        &self,
2508        f: F,
2509    ) -> SignalHandlerId {
2510        unsafe extern "C" fn notify_pixels_above_lines_set_trampoline<
2511            P: IsA<TextTag>,
2512            F: Fn(&P) + 'static,
2513        >(
2514            this: *mut ffi::GtkTextTag,
2515            _param_spec: glib::ffi::gpointer,
2516            f: glib::ffi::gpointer,
2517        ) {
2518            let f: &F = &*(f as *const F);
2519            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2520        }
2521        unsafe {
2522            let f: Box_<F> = Box_::new(f);
2523            connect_raw(
2524                self.as_ptr() as *mut _,
2525                c"notify::pixels-above-lines-set".as_ptr() as *const _,
2526                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2527                    notify_pixels_above_lines_set_trampoline::<Self, F> as *const (),
2528                )),
2529                Box_::into_raw(f),
2530            )
2531        }
2532    }
2533
2534    #[doc(alias = "pixels-below-lines")]
2535    fn connect_pixels_below_lines_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2536        unsafe extern "C" fn notify_pixels_below_lines_trampoline<
2537            P: IsA<TextTag>,
2538            F: Fn(&P) + 'static,
2539        >(
2540            this: *mut ffi::GtkTextTag,
2541            _param_spec: glib::ffi::gpointer,
2542            f: glib::ffi::gpointer,
2543        ) {
2544            let f: &F = &*(f as *const F);
2545            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2546        }
2547        unsafe {
2548            let f: Box_<F> = Box_::new(f);
2549            connect_raw(
2550                self.as_ptr() as *mut _,
2551                c"notify::pixels-below-lines".as_ptr() as *const _,
2552                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2553                    notify_pixels_below_lines_trampoline::<Self, F> as *const (),
2554                )),
2555                Box_::into_raw(f),
2556            )
2557        }
2558    }
2559
2560    #[doc(alias = "pixels-below-lines-set")]
2561    fn connect_pixels_below_lines_set_notify<F: Fn(&Self) + 'static>(
2562        &self,
2563        f: F,
2564    ) -> SignalHandlerId {
2565        unsafe extern "C" fn notify_pixels_below_lines_set_trampoline<
2566            P: IsA<TextTag>,
2567            F: Fn(&P) + 'static,
2568        >(
2569            this: *mut ffi::GtkTextTag,
2570            _param_spec: glib::ffi::gpointer,
2571            f: glib::ffi::gpointer,
2572        ) {
2573            let f: &F = &*(f as *const F);
2574            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2575        }
2576        unsafe {
2577            let f: Box_<F> = Box_::new(f);
2578            connect_raw(
2579                self.as_ptr() as *mut _,
2580                c"notify::pixels-below-lines-set".as_ptr() as *const _,
2581                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2582                    notify_pixels_below_lines_set_trampoline::<Self, F> as *const (),
2583                )),
2584                Box_::into_raw(f),
2585            )
2586        }
2587    }
2588
2589    #[doc(alias = "pixels-inside-wrap")]
2590    fn connect_pixels_inside_wrap_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2591        unsafe extern "C" fn notify_pixels_inside_wrap_trampoline<
2592            P: IsA<TextTag>,
2593            F: Fn(&P) + 'static,
2594        >(
2595            this: *mut ffi::GtkTextTag,
2596            _param_spec: glib::ffi::gpointer,
2597            f: glib::ffi::gpointer,
2598        ) {
2599            let f: &F = &*(f as *const F);
2600            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2601        }
2602        unsafe {
2603            let f: Box_<F> = Box_::new(f);
2604            connect_raw(
2605                self.as_ptr() as *mut _,
2606                c"notify::pixels-inside-wrap".as_ptr() as *const _,
2607                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2608                    notify_pixels_inside_wrap_trampoline::<Self, F> as *const (),
2609                )),
2610                Box_::into_raw(f),
2611            )
2612        }
2613    }
2614
2615    #[doc(alias = "pixels-inside-wrap-set")]
2616    fn connect_pixels_inside_wrap_set_notify<F: Fn(&Self) + 'static>(
2617        &self,
2618        f: F,
2619    ) -> SignalHandlerId {
2620        unsafe extern "C" fn notify_pixels_inside_wrap_set_trampoline<
2621            P: IsA<TextTag>,
2622            F: Fn(&P) + 'static,
2623        >(
2624            this: *mut ffi::GtkTextTag,
2625            _param_spec: glib::ffi::gpointer,
2626            f: glib::ffi::gpointer,
2627        ) {
2628            let f: &F = &*(f as *const F);
2629            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2630        }
2631        unsafe {
2632            let f: Box_<F> = Box_::new(f);
2633            connect_raw(
2634                self.as_ptr() as *mut _,
2635                c"notify::pixels-inside-wrap-set".as_ptr() as *const _,
2636                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2637                    notify_pixels_inside_wrap_set_trampoline::<Self, F> as *const (),
2638                )),
2639                Box_::into_raw(f),
2640            )
2641        }
2642    }
2643
2644    #[doc(alias = "right-margin")]
2645    fn connect_right_margin_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2646        unsafe extern "C" fn notify_right_margin_trampoline<
2647            P: IsA<TextTag>,
2648            F: Fn(&P) + 'static,
2649        >(
2650            this: *mut ffi::GtkTextTag,
2651            _param_spec: glib::ffi::gpointer,
2652            f: glib::ffi::gpointer,
2653        ) {
2654            let f: &F = &*(f as *const F);
2655            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2656        }
2657        unsafe {
2658            let f: Box_<F> = Box_::new(f);
2659            connect_raw(
2660                self.as_ptr() as *mut _,
2661                c"notify::right-margin".as_ptr() as *const _,
2662                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2663                    notify_right_margin_trampoline::<Self, F> as *const (),
2664                )),
2665                Box_::into_raw(f),
2666            )
2667        }
2668    }
2669
2670    #[doc(alias = "right-margin-set")]
2671    fn connect_right_margin_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2672        unsafe extern "C" fn notify_right_margin_set_trampoline<
2673            P: IsA<TextTag>,
2674            F: Fn(&P) + 'static,
2675        >(
2676            this: *mut ffi::GtkTextTag,
2677            _param_spec: glib::ffi::gpointer,
2678            f: glib::ffi::gpointer,
2679        ) {
2680            let f: &F = &*(f as *const F);
2681            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2682        }
2683        unsafe {
2684            let f: Box_<F> = Box_::new(f);
2685            connect_raw(
2686                self.as_ptr() as *mut _,
2687                c"notify::right-margin-set".as_ptr() as *const _,
2688                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2689                    notify_right_margin_set_trampoline::<Self, F> as *const (),
2690                )),
2691                Box_::into_raw(f),
2692            )
2693        }
2694    }
2695
2696    #[doc(alias = "rise")]
2697    fn connect_rise_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2698        unsafe extern "C" fn notify_rise_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2699            this: *mut ffi::GtkTextTag,
2700            _param_spec: glib::ffi::gpointer,
2701            f: glib::ffi::gpointer,
2702        ) {
2703            let f: &F = &*(f as *const F);
2704            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2705        }
2706        unsafe {
2707            let f: Box_<F> = Box_::new(f);
2708            connect_raw(
2709                self.as_ptr() as *mut _,
2710                c"notify::rise".as_ptr() as *const _,
2711                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2712                    notify_rise_trampoline::<Self, F> as *const (),
2713                )),
2714                Box_::into_raw(f),
2715            )
2716        }
2717    }
2718
2719    #[doc(alias = "rise-set")]
2720    fn connect_rise_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2721        unsafe extern "C" fn notify_rise_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2722            this: *mut ffi::GtkTextTag,
2723            _param_spec: glib::ffi::gpointer,
2724            f: glib::ffi::gpointer,
2725        ) {
2726            let f: &F = &*(f as *const F);
2727            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2728        }
2729        unsafe {
2730            let f: Box_<F> = Box_::new(f);
2731            connect_raw(
2732                self.as_ptr() as *mut _,
2733                c"notify::rise-set".as_ptr() as *const _,
2734                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2735                    notify_rise_set_trampoline::<Self, F> as *const (),
2736                )),
2737                Box_::into_raw(f),
2738            )
2739        }
2740    }
2741
2742    #[doc(alias = "scale")]
2743    fn connect_scale_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2744        unsafe extern "C" fn notify_scale_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2745            this: *mut ffi::GtkTextTag,
2746            _param_spec: glib::ffi::gpointer,
2747            f: glib::ffi::gpointer,
2748        ) {
2749            let f: &F = &*(f as *const F);
2750            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2751        }
2752        unsafe {
2753            let f: Box_<F> = Box_::new(f);
2754            connect_raw(
2755                self.as_ptr() as *mut _,
2756                c"notify::scale".as_ptr() as *const _,
2757                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2758                    notify_scale_trampoline::<Self, F> as *const (),
2759                )),
2760                Box_::into_raw(f),
2761            )
2762        }
2763    }
2764
2765    #[doc(alias = "scale-set")]
2766    fn connect_scale_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2767        unsafe extern "C" fn notify_scale_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2768            this: *mut ffi::GtkTextTag,
2769            _param_spec: glib::ffi::gpointer,
2770            f: glib::ffi::gpointer,
2771        ) {
2772            let f: &F = &*(f as *const F);
2773            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2774        }
2775        unsafe {
2776            let f: Box_<F> = Box_::new(f);
2777            connect_raw(
2778                self.as_ptr() as *mut _,
2779                c"notify::scale-set".as_ptr() as *const _,
2780                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2781                    notify_scale_set_trampoline::<Self, F> as *const (),
2782                )),
2783                Box_::into_raw(f),
2784            )
2785        }
2786    }
2787
2788    #[cfg(feature = "v4_6")]
2789    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
2790    #[doc(alias = "sentence")]
2791    fn connect_sentence_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2792        unsafe extern "C" fn notify_sentence_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2793            this: *mut ffi::GtkTextTag,
2794            _param_spec: glib::ffi::gpointer,
2795            f: glib::ffi::gpointer,
2796        ) {
2797            let f: &F = &*(f as *const F);
2798            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2799        }
2800        unsafe {
2801            let f: Box_<F> = Box_::new(f);
2802            connect_raw(
2803                self.as_ptr() as *mut _,
2804                c"notify::sentence".as_ptr() as *const _,
2805                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2806                    notify_sentence_trampoline::<Self, F> as *const (),
2807                )),
2808                Box_::into_raw(f),
2809            )
2810        }
2811    }
2812
2813    #[cfg(feature = "v4_6")]
2814    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
2815    #[doc(alias = "sentence-set")]
2816    fn connect_sentence_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2817        unsafe extern "C" fn notify_sentence_set_trampoline<
2818            P: IsA<TextTag>,
2819            F: Fn(&P) + 'static,
2820        >(
2821            this: *mut ffi::GtkTextTag,
2822            _param_spec: glib::ffi::gpointer,
2823            f: glib::ffi::gpointer,
2824        ) {
2825            let f: &F = &*(f as *const F);
2826            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2827        }
2828        unsafe {
2829            let f: Box_<F> = Box_::new(f);
2830            connect_raw(
2831                self.as_ptr() as *mut _,
2832                c"notify::sentence-set".as_ptr() as *const _,
2833                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2834                    notify_sentence_set_trampoline::<Self, F> as *const (),
2835                )),
2836                Box_::into_raw(f),
2837            )
2838        }
2839    }
2840
2841    #[doc(alias = "show-spaces")]
2842    fn connect_show_spaces_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2843        unsafe extern "C" fn notify_show_spaces_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2844            this: *mut ffi::GtkTextTag,
2845            _param_spec: glib::ffi::gpointer,
2846            f: glib::ffi::gpointer,
2847        ) {
2848            let f: &F = &*(f as *const F);
2849            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2850        }
2851        unsafe {
2852            let f: Box_<F> = Box_::new(f);
2853            connect_raw(
2854                self.as_ptr() as *mut _,
2855                c"notify::show-spaces".as_ptr() as *const _,
2856                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2857                    notify_show_spaces_trampoline::<Self, F> as *const (),
2858                )),
2859                Box_::into_raw(f),
2860            )
2861        }
2862    }
2863
2864    #[doc(alias = "show-spaces-set")]
2865    fn connect_show_spaces_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2866        unsafe extern "C" fn notify_show_spaces_set_trampoline<
2867            P: IsA<TextTag>,
2868            F: Fn(&P) + 'static,
2869        >(
2870            this: *mut ffi::GtkTextTag,
2871            _param_spec: glib::ffi::gpointer,
2872            f: glib::ffi::gpointer,
2873        ) {
2874            let f: &F = &*(f as *const F);
2875            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2876        }
2877        unsafe {
2878            let f: Box_<F> = Box_::new(f);
2879            connect_raw(
2880                self.as_ptr() as *mut _,
2881                c"notify::show-spaces-set".as_ptr() as *const _,
2882                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2883                    notify_show_spaces_set_trampoline::<Self, F> as *const (),
2884                )),
2885                Box_::into_raw(f),
2886            )
2887        }
2888    }
2889
2890    #[doc(alias = "size")]
2891    fn connect_size_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2892        unsafe extern "C" fn notify_size_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2893            this: *mut ffi::GtkTextTag,
2894            _param_spec: glib::ffi::gpointer,
2895            f: glib::ffi::gpointer,
2896        ) {
2897            let f: &F = &*(f as *const F);
2898            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2899        }
2900        unsafe {
2901            let f: Box_<F> = Box_::new(f);
2902            connect_raw(
2903                self.as_ptr() as *mut _,
2904                c"notify::size".as_ptr() as *const _,
2905                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2906                    notify_size_trampoline::<Self, F> as *const (),
2907                )),
2908                Box_::into_raw(f),
2909            )
2910        }
2911    }
2912
2913    #[doc(alias = "size-points")]
2914    fn connect_size_points_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2915        unsafe extern "C" fn notify_size_points_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2916            this: *mut ffi::GtkTextTag,
2917            _param_spec: glib::ffi::gpointer,
2918            f: glib::ffi::gpointer,
2919        ) {
2920            let f: &F = &*(f as *const F);
2921            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2922        }
2923        unsafe {
2924            let f: Box_<F> = Box_::new(f);
2925            connect_raw(
2926                self.as_ptr() as *mut _,
2927                c"notify::size-points".as_ptr() as *const _,
2928                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2929                    notify_size_points_trampoline::<Self, F> as *const (),
2930                )),
2931                Box_::into_raw(f),
2932            )
2933        }
2934    }
2935
2936    #[doc(alias = "size-set")]
2937    fn connect_size_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2938        unsafe extern "C" fn notify_size_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2939            this: *mut ffi::GtkTextTag,
2940            _param_spec: glib::ffi::gpointer,
2941            f: glib::ffi::gpointer,
2942        ) {
2943            let f: &F = &*(f as *const F);
2944            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2945        }
2946        unsafe {
2947            let f: Box_<F> = Box_::new(f);
2948            connect_raw(
2949                self.as_ptr() as *mut _,
2950                c"notify::size-set".as_ptr() as *const _,
2951                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2952                    notify_size_set_trampoline::<Self, F> as *const (),
2953                )),
2954                Box_::into_raw(f),
2955            )
2956        }
2957    }
2958
2959    #[doc(alias = "stretch")]
2960    fn connect_stretch_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2961        unsafe extern "C" fn notify_stretch_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2962            this: *mut ffi::GtkTextTag,
2963            _param_spec: glib::ffi::gpointer,
2964            f: glib::ffi::gpointer,
2965        ) {
2966            let f: &F = &*(f as *const F);
2967            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2968        }
2969        unsafe {
2970            let f: Box_<F> = Box_::new(f);
2971            connect_raw(
2972                self.as_ptr() as *mut _,
2973                c"notify::stretch".as_ptr() as *const _,
2974                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2975                    notify_stretch_trampoline::<Self, F> as *const (),
2976                )),
2977                Box_::into_raw(f),
2978            )
2979        }
2980    }
2981
2982    #[doc(alias = "stretch-set")]
2983    fn connect_stretch_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2984        unsafe extern "C" fn notify_stretch_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
2985            this: *mut ffi::GtkTextTag,
2986            _param_spec: glib::ffi::gpointer,
2987            f: glib::ffi::gpointer,
2988        ) {
2989            let f: &F = &*(f as *const F);
2990            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
2991        }
2992        unsafe {
2993            let f: Box_<F> = Box_::new(f);
2994            connect_raw(
2995                self.as_ptr() as *mut _,
2996                c"notify::stretch-set".as_ptr() as *const _,
2997                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2998                    notify_stretch_set_trampoline::<Self, F> as *const (),
2999                )),
3000                Box_::into_raw(f),
3001            )
3002        }
3003    }
3004
3005    #[doc(alias = "strikethrough")]
3006    fn connect_strikethrough_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3007        unsafe extern "C" fn notify_strikethrough_trampoline<
3008            P: IsA<TextTag>,
3009            F: Fn(&P) + 'static,
3010        >(
3011            this: *mut ffi::GtkTextTag,
3012            _param_spec: glib::ffi::gpointer,
3013            f: glib::ffi::gpointer,
3014        ) {
3015            let f: &F = &*(f as *const F);
3016            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3017        }
3018        unsafe {
3019            let f: Box_<F> = Box_::new(f);
3020            connect_raw(
3021                self.as_ptr() as *mut _,
3022                c"notify::strikethrough".as_ptr() as *const _,
3023                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3024                    notify_strikethrough_trampoline::<Self, F> as *const (),
3025                )),
3026                Box_::into_raw(f),
3027            )
3028        }
3029    }
3030
3031    #[doc(alias = "strikethrough-rgba")]
3032    fn connect_strikethrough_rgba_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3033        unsafe extern "C" fn notify_strikethrough_rgba_trampoline<
3034            P: IsA<TextTag>,
3035            F: Fn(&P) + 'static,
3036        >(
3037            this: *mut ffi::GtkTextTag,
3038            _param_spec: glib::ffi::gpointer,
3039            f: glib::ffi::gpointer,
3040        ) {
3041            let f: &F = &*(f as *const F);
3042            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3043        }
3044        unsafe {
3045            let f: Box_<F> = Box_::new(f);
3046            connect_raw(
3047                self.as_ptr() as *mut _,
3048                c"notify::strikethrough-rgba".as_ptr() as *const _,
3049                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3050                    notify_strikethrough_rgba_trampoline::<Self, F> as *const (),
3051                )),
3052                Box_::into_raw(f),
3053            )
3054        }
3055    }
3056
3057    #[doc(alias = "strikethrough-rgba-set")]
3058    fn connect_strikethrough_rgba_set_notify<F: Fn(&Self) + 'static>(
3059        &self,
3060        f: F,
3061    ) -> SignalHandlerId {
3062        unsafe extern "C" fn notify_strikethrough_rgba_set_trampoline<
3063            P: IsA<TextTag>,
3064            F: Fn(&P) + 'static,
3065        >(
3066            this: *mut ffi::GtkTextTag,
3067            _param_spec: glib::ffi::gpointer,
3068            f: glib::ffi::gpointer,
3069        ) {
3070            let f: &F = &*(f as *const F);
3071            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3072        }
3073        unsafe {
3074            let f: Box_<F> = Box_::new(f);
3075            connect_raw(
3076                self.as_ptr() as *mut _,
3077                c"notify::strikethrough-rgba-set".as_ptr() as *const _,
3078                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3079                    notify_strikethrough_rgba_set_trampoline::<Self, F> as *const (),
3080                )),
3081                Box_::into_raw(f),
3082            )
3083        }
3084    }
3085
3086    #[doc(alias = "strikethrough-set")]
3087    fn connect_strikethrough_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3088        unsafe extern "C" fn notify_strikethrough_set_trampoline<
3089            P: IsA<TextTag>,
3090            F: Fn(&P) + 'static,
3091        >(
3092            this: *mut ffi::GtkTextTag,
3093            _param_spec: glib::ffi::gpointer,
3094            f: glib::ffi::gpointer,
3095        ) {
3096            let f: &F = &*(f as *const F);
3097            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3098        }
3099        unsafe {
3100            let f: Box_<F> = Box_::new(f);
3101            connect_raw(
3102                self.as_ptr() as *mut _,
3103                c"notify::strikethrough-set".as_ptr() as *const _,
3104                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3105                    notify_strikethrough_set_trampoline::<Self, F> as *const (),
3106                )),
3107                Box_::into_raw(f),
3108            )
3109        }
3110    }
3111
3112    #[doc(alias = "style")]
3113    fn connect_style_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3114        unsafe extern "C" fn notify_style_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3115            this: *mut ffi::GtkTextTag,
3116            _param_spec: glib::ffi::gpointer,
3117            f: glib::ffi::gpointer,
3118        ) {
3119            let f: &F = &*(f as *const F);
3120            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3121        }
3122        unsafe {
3123            let f: Box_<F> = Box_::new(f);
3124            connect_raw(
3125                self.as_ptr() as *mut _,
3126                c"notify::style".as_ptr() as *const _,
3127                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3128                    notify_style_trampoline::<Self, F> as *const (),
3129                )),
3130                Box_::into_raw(f),
3131            )
3132        }
3133    }
3134
3135    #[doc(alias = "style-set")]
3136    fn connect_style_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3137        unsafe extern "C" fn notify_style_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3138            this: *mut ffi::GtkTextTag,
3139            _param_spec: glib::ffi::gpointer,
3140            f: glib::ffi::gpointer,
3141        ) {
3142            let f: &F = &*(f as *const F);
3143            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3144        }
3145        unsafe {
3146            let f: Box_<F> = Box_::new(f);
3147            connect_raw(
3148                self.as_ptr() as *mut _,
3149                c"notify::style-set".as_ptr() as *const _,
3150                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3151                    notify_style_set_trampoline::<Self, F> as *const (),
3152                )),
3153                Box_::into_raw(f),
3154            )
3155        }
3156    }
3157
3158    #[doc(alias = "tabs")]
3159    fn connect_tabs_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3160        unsafe extern "C" fn notify_tabs_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3161            this: *mut ffi::GtkTextTag,
3162            _param_spec: glib::ffi::gpointer,
3163            f: glib::ffi::gpointer,
3164        ) {
3165            let f: &F = &*(f as *const F);
3166            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3167        }
3168        unsafe {
3169            let f: Box_<F> = Box_::new(f);
3170            connect_raw(
3171                self.as_ptr() as *mut _,
3172                c"notify::tabs".as_ptr() as *const _,
3173                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3174                    notify_tabs_trampoline::<Self, F> as *const (),
3175                )),
3176                Box_::into_raw(f),
3177            )
3178        }
3179    }
3180
3181    #[doc(alias = "tabs-set")]
3182    fn connect_tabs_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3183        unsafe extern "C" fn notify_tabs_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3184            this: *mut ffi::GtkTextTag,
3185            _param_spec: glib::ffi::gpointer,
3186            f: glib::ffi::gpointer,
3187        ) {
3188            let f: &F = &*(f as *const F);
3189            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3190        }
3191        unsafe {
3192            let f: Box_<F> = Box_::new(f);
3193            connect_raw(
3194                self.as_ptr() as *mut _,
3195                c"notify::tabs-set".as_ptr() as *const _,
3196                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3197                    notify_tabs_set_trampoline::<Self, F> as *const (),
3198                )),
3199                Box_::into_raw(f),
3200            )
3201        }
3202    }
3203
3204    #[cfg(feature = "v4_6")]
3205    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
3206    #[doc(alias = "text-transform")]
3207    fn connect_text_transform_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3208        unsafe extern "C" fn notify_text_transform_trampoline<
3209            P: IsA<TextTag>,
3210            F: Fn(&P) + 'static,
3211        >(
3212            this: *mut ffi::GtkTextTag,
3213            _param_spec: glib::ffi::gpointer,
3214            f: glib::ffi::gpointer,
3215        ) {
3216            let f: &F = &*(f as *const F);
3217            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3218        }
3219        unsafe {
3220            let f: Box_<F> = Box_::new(f);
3221            connect_raw(
3222                self.as_ptr() as *mut _,
3223                c"notify::text-transform".as_ptr() as *const _,
3224                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3225                    notify_text_transform_trampoline::<Self, F> as *const (),
3226                )),
3227                Box_::into_raw(f),
3228            )
3229        }
3230    }
3231
3232    #[cfg(feature = "v4_6")]
3233    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
3234    #[doc(alias = "text-transform-set")]
3235    fn connect_text_transform_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3236        unsafe extern "C" fn notify_text_transform_set_trampoline<
3237            P: IsA<TextTag>,
3238            F: Fn(&P) + 'static,
3239        >(
3240            this: *mut ffi::GtkTextTag,
3241            _param_spec: glib::ffi::gpointer,
3242            f: glib::ffi::gpointer,
3243        ) {
3244            let f: &F = &*(f as *const F);
3245            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3246        }
3247        unsafe {
3248            let f: Box_<F> = Box_::new(f);
3249            connect_raw(
3250                self.as_ptr() as *mut _,
3251                c"notify::text-transform-set".as_ptr() as *const _,
3252                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3253                    notify_text_transform_set_trampoline::<Self, F> as *const (),
3254                )),
3255                Box_::into_raw(f),
3256            )
3257        }
3258    }
3259
3260    #[doc(alias = "underline")]
3261    fn connect_underline_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3262        unsafe extern "C" fn notify_underline_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3263            this: *mut ffi::GtkTextTag,
3264            _param_spec: glib::ffi::gpointer,
3265            f: glib::ffi::gpointer,
3266        ) {
3267            let f: &F = &*(f as *const F);
3268            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3269        }
3270        unsafe {
3271            let f: Box_<F> = Box_::new(f);
3272            connect_raw(
3273                self.as_ptr() as *mut _,
3274                c"notify::underline".as_ptr() as *const _,
3275                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3276                    notify_underline_trampoline::<Self, F> as *const (),
3277                )),
3278                Box_::into_raw(f),
3279            )
3280        }
3281    }
3282
3283    #[doc(alias = "underline-rgba")]
3284    fn connect_underline_rgba_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3285        unsafe extern "C" fn notify_underline_rgba_trampoline<
3286            P: IsA<TextTag>,
3287            F: Fn(&P) + 'static,
3288        >(
3289            this: *mut ffi::GtkTextTag,
3290            _param_spec: glib::ffi::gpointer,
3291            f: glib::ffi::gpointer,
3292        ) {
3293            let f: &F = &*(f as *const F);
3294            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3295        }
3296        unsafe {
3297            let f: Box_<F> = Box_::new(f);
3298            connect_raw(
3299                self.as_ptr() as *mut _,
3300                c"notify::underline-rgba".as_ptr() as *const _,
3301                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3302                    notify_underline_rgba_trampoline::<Self, F> as *const (),
3303                )),
3304                Box_::into_raw(f),
3305            )
3306        }
3307    }
3308
3309    #[doc(alias = "underline-rgba-set")]
3310    fn connect_underline_rgba_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3311        unsafe extern "C" fn notify_underline_rgba_set_trampoline<
3312            P: IsA<TextTag>,
3313            F: Fn(&P) + 'static,
3314        >(
3315            this: *mut ffi::GtkTextTag,
3316            _param_spec: glib::ffi::gpointer,
3317            f: glib::ffi::gpointer,
3318        ) {
3319            let f: &F = &*(f as *const F);
3320            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3321        }
3322        unsafe {
3323            let f: Box_<F> = Box_::new(f);
3324            connect_raw(
3325                self.as_ptr() as *mut _,
3326                c"notify::underline-rgba-set".as_ptr() as *const _,
3327                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3328                    notify_underline_rgba_set_trampoline::<Self, F> as *const (),
3329                )),
3330                Box_::into_raw(f),
3331            )
3332        }
3333    }
3334
3335    #[doc(alias = "underline-set")]
3336    fn connect_underline_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3337        unsafe extern "C" fn notify_underline_set_trampoline<
3338            P: IsA<TextTag>,
3339            F: Fn(&P) + 'static,
3340        >(
3341            this: *mut ffi::GtkTextTag,
3342            _param_spec: glib::ffi::gpointer,
3343            f: glib::ffi::gpointer,
3344        ) {
3345            let f: &F = &*(f as *const F);
3346            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3347        }
3348        unsafe {
3349            let f: Box_<F> = Box_::new(f);
3350            connect_raw(
3351                self.as_ptr() as *mut _,
3352                c"notify::underline-set".as_ptr() as *const _,
3353                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3354                    notify_underline_set_trampoline::<Self, F> as *const (),
3355                )),
3356                Box_::into_raw(f),
3357            )
3358        }
3359    }
3360
3361    #[doc(alias = "variant")]
3362    fn connect_variant_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3363        unsafe extern "C" fn notify_variant_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3364            this: *mut ffi::GtkTextTag,
3365            _param_spec: glib::ffi::gpointer,
3366            f: glib::ffi::gpointer,
3367        ) {
3368            let f: &F = &*(f as *const F);
3369            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3370        }
3371        unsafe {
3372            let f: Box_<F> = Box_::new(f);
3373            connect_raw(
3374                self.as_ptr() as *mut _,
3375                c"notify::variant".as_ptr() as *const _,
3376                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3377                    notify_variant_trampoline::<Self, F> as *const (),
3378                )),
3379                Box_::into_raw(f),
3380            )
3381        }
3382    }
3383
3384    #[doc(alias = "variant-set")]
3385    fn connect_variant_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3386        unsafe extern "C" fn notify_variant_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3387            this: *mut ffi::GtkTextTag,
3388            _param_spec: glib::ffi::gpointer,
3389            f: glib::ffi::gpointer,
3390        ) {
3391            let f: &F = &*(f as *const F);
3392            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3393        }
3394        unsafe {
3395            let f: Box_<F> = Box_::new(f);
3396            connect_raw(
3397                self.as_ptr() as *mut _,
3398                c"notify::variant-set".as_ptr() as *const _,
3399                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3400                    notify_variant_set_trampoline::<Self, F> as *const (),
3401                )),
3402                Box_::into_raw(f),
3403            )
3404        }
3405    }
3406
3407    #[doc(alias = "weight")]
3408    fn connect_weight_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3409        unsafe extern "C" fn notify_weight_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3410            this: *mut ffi::GtkTextTag,
3411            _param_spec: glib::ffi::gpointer,
3412            f: glib::ffi::gpointer,
3413        ) {
3414            let f: &F = &*(f as *const F);
3415            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3416        }
3417        unsafe {
3418            let f: Box_<F> = Box_::new(f);
3419            connect_raw(
3420                self.as_ptr() as *mut _,
3421                c"notify::weight".as_ptr() as *const _,
3422                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3423                    notify_weight_trampoline::<Self, F> as *const (),
3424                )),
3425                Box_::into_raw(f),
3426            )
3427        }
3428    }
3429
3430    #[doc(alias = "weight-set")]
3431    fn connect_weight_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3432        unsafe extern "C" fn notify_weight_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3433            this: *mut ffi::GtkTextTag,
3434            _param_spec: glib::ffi::gpointer,
3435            f: glib::ffi::gpointer,
3436        ) {
3437            let f: &F = &*(f as *const F);
3438            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3439        }
3440        unsafe {
3441            let f: Box_<F> = Box_::new(f);
3442            connect_raw(
3443                self.as_ptr() as *mut _,
3444                c"notify::weight-set".as_ptr() as *const _,
3445                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3446                    notify_weight_set_trampoline::<Self, F> as *const (),
3447                )),
3448                Box_::into_raw(f),
3449            )
3450        }
3451    }
3452
3453    #[cfg(feature = "v4_6")]
3454    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
3455    #[doc(alias = "word")]
3456    fn connect_word_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3457        unsafe extern "C" fn notify_word_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3458            this: *mut ffi::GtkTextTag,
3459            _param_spec: glib::ffi::gpointer,
3460            f: glib::ffi::gpointer,
3461        ) {
3462            let f: &F = &*(f as *const F);
3463            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3464        }
3465        unsafe {
3466            let f: Box_<F> = Box_::new(f);
3467            connect_raw(
3468                self.as_ptr() as *mut _,
3469                c"notify::word".as_ptr() as *const _,
3470                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3471                    notify_word_trampoline::<Self, F> as *const (),
3472                )),
3473                Box_::into_raw(f),
3474            )
3475        }
3476    }
3477
3478    #[cfg(feature = "v4_6")]
3479    #[cfg_attr(docsrs, doc(cfg(feature = "v4_6")))]
3480    #[doc(alias = "word-set")]
3481    fn connect_word_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3482        unsafe extern "C" fn notify_word_set_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3483            this: *mut ffi::GtkTextTag,
3484            _param_spec: glib::ffi::gpointer,
3485            f: glib::ffi::gpointer,
3486        ) {
3487            let f: &F = &*(f as *const F);
3488            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3489        }
3490        unsafe {
3491            let f: Box_<F> = Box_::new(f);
3492            connect_raw(
3493                self.as_ptr() as *mut _,
3494                c"notify::word-set".as_ptr() as *const _,
3495                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3496                    notify_word_set_trampoline::<Self, F> as *const (),
3497                )),
3498                Box_::into_raw(f),
3499            )
3500        }
3501    }
3502
3503    #[doc(alias = "wrap-mode")]
3504    fn connect_wrap_mode_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3505        unsafe extern "C" fn notify_wrap_mode_trampoline<P: IsA<TextTag>, F: Fn(&P) + 'static>(
3506            this: *mut ffi::GtkTextTag,
3507            _param_spec: glib::ffi::gpointer,
3508            f: glib::ffi::gpointer,
3509        ) {
3510            let f: &F = &*(f as *const F);
3511            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3512        }
3513        unsafe {
3514            let f: Box_<F> = Box_::new(f);
3515            connect_raw(
3516                self.as_ptr() as *mut _,
3517                c"notify::wrap-mode".as_ptr() as *const _,
3518                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3519                    notify_wrap_mode_trampoline::<Self, F> as *const (),
3520                )),
3521                Box_::into_raw(f),
3522            )
3523        }
3524    }
3525
3526    #[doc(alias = "wrap-mode-set")]
3527    fn connect_wrap_mode_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3528        unsafe extern "C" fn notify_wrap_mode_set_trampoline<
3529            P: IsA<TextTag>,
3530            F: Fn(&P) + 'static,
3531        >(
3532            this: *mut ffi::GtkTextTag,
3533            _param_spec: glib::ffi::gpointer,
3534            f: glib::ffi::gpointer,
3535        ) {
3536            let f: &F = &*(f as *const F);
3537            f(TextTag::from_glib_borrow(this).unsafe_cast_ref())
3538        }
3539        unsafe {
3540            let f: Box_<F> = Box_::new(f);
3541            connect_raw(
3542                self.as_ptr() as *mut _,
3543                c"notify::wrap-mode-set".as_ptr() as *const _,
3544                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3545                    notify_wrap_mode_set_trampoline::<Self, F> as *const (),
3546                )),
3547                Box_::into_raw(f),
3548            )
3549        }
3550    }
3551}
3552
3553impl<O: IsA<TextTag>> TextTagExt for O {}