// GENERATED — DO NOT EDIT

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/class.TextTag.html).
pub type TextTag

///|
pub(open) trait ITextTag {
  fn as_text_tag(Self) -> TextTag
  fn changed(Self, Bool) -> Unit = _
  fn get_priority(Self) -> Int = _
  fn set_priority(Self, Int) -> Unit = _
}

///|
pub impl ITextTag for TextTag with fn as_text_tag(self) {
  self
}

///|
#borrow(name)
extern "c" fn moonbit_gtk_text_tag_new(name : @glib.Nullable[Bytes]) -> TextTag = "moonbit_gtk_text_tag_new"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/ctor.TextTag.new.html).
pub fn TextTag::new(name : String?) -> TextTag {
  moonbit_gtk_text_tag_new(
    match name {
      Some(s) => @glib.Nullable::some(@encoding/utf8.encode(s))
      None => @glib.Nullable::null()
    },
  )
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.TextTag.changed.html).
#borrow(self)
pub extern "c" fn TextTag::changed(self : TextTag, size_changed : Bool) = "moonbit_gtk_text_tag_changed"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.TextTag.get_priority.html).
#borrow(self)
pub extern "c" fn TextTag::get_priority(self : TextTag) -> Int = "moonbit_gtk_text_tag_get_priority"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.TextTag.set_priority.html).
#borrow(self)
pub extern "c" fn TextTag::set_priority(self : TextTag, priority : Int) = "moonbit_gtk_text_tag_set_priority"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_accumulative_margin(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_accumulative_margin"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.accumulative-margin.html).
pub fn TextTag::get_accumulative_margin(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_accumulative_margin(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_accumulative_margin(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_accumulative_margin"

///|
pub fn TextTag::set_accumulative_margin(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_accumulative_margin(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_allow_breaks(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_allow_breaks"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.allow-breaks.html).
pub fn TextTag::get_allow_breaks(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_allow_breaks(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_allow_breaks(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_allow_breaks"

///|
pub fn TextTag::set_allow_breaks(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_allow_breaks(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_allow_breaks_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_allow_breaks_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.allow-breaks-set.html).
pub fn TextTag::get_allow_breaks_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_allow_breaks_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_allow_breaks_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_allow_breaks_set"

///|
pub fn TextTag::set_allow_breaks_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_allow_breaks_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_, value)
extern "c" fn moonbit_gtk_text_tag_set_background(
  self_ : TextTag,
  value : Bytes,
) = "moonbit_gtk_text_tag_set_background"

///|
pub fn TextTag::set_background(self : TextTag, value : String) -> Unit {
  moonbit_gtk_text_tag_set_background(self, @encoding/utf8.encode(value))
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_background_full_height(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_background_full_height"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.background-full-height.html).
pub fn TextTag::get_background_full_height(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_background_full_height(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_background_full_height(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_background_full_height"

///|
pub fn TextTag::set_background_full_height(
  self : TextTag,
  value : Bool,
) -> Unit {
  moonbit_gtk_text_tag_set_background_full_height(
    self,
    if value {
      1
    } else {
      0
    },
  )
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_background_full_height_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_background_full_height_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.background-full-height-set.html).
pub fn TextTag::get_background_full_height_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_background_full_height_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_background_full_height_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_background_full_height_set"

///|
pub fn TextTag::set_background_full_height_set(
  self : TextTag,
  value : Bool,
) -> Unit {
  moonbit_gtk_text_tag_set_background_full_height_set(
    self,
    if value {
      1
    } else {
      0
    },
  )
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_background_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_background_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.background-set.html).
pub fn TextTag::get_background_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_background_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_background_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_background_set"

///|
pub fn TextTag::set_background_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_background_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.direction.html).
#borrow(self_)
pub extern "c" fn TextTag::get_direction(self_ : TextTag) -> TextDirection = "moonbit_gtk_text_tag_get_direction"

///|
#borrow(self_)
pub extern "c" fn TextTag::set_direction(
  self_ : TextTag,
  value : TextDirection,
) = "moonbit_gtk_text_tag_set_direction"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_editable(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_editable"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.editable.html).
pub fn TextTag::get_editable(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_editable(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_editable(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_editable"

///|
pub fn TextTag::set_editable(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_editable(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_editable_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_editable_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.editable-set.html).
pub fn TextTag::get_editable_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_editable_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_editable_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_editable_set"

///|
pub fn TextTag::set_editable_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_editable_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_fallback(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_fallback"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.fallback.html).
pub fn TextTag::get_fallback(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_fallback(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_fallback(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_fallback"

///|
pub fn TextTag::set_fallback(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_fallback(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_fallback_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_fallback_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.fallback-set.html).
pub fn TextTag::get_fallback_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_fallback_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_fallback_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_fallback_set"

///|
pub fn TextTag::set_fallback_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_fallback_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_family(self_ : TextTag) -> Bytes = "moonbit_gtk_text_tag_get_family"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.family.html).
pub fn TextTag::get_family(self : TextTag) -> String {
  @encoding/utf8.decode_lossy(moonbit_gtk_text_tag_get_family(self))
}

///|
#borrow(self_, value)
extern "c" fn moonbit_gtk_text_tag_set_family(self_ : TextTag, value : Bytes) = "moonbit_gtk_text_tag_set_family"

///|
pub fn TextTag::set_family(self : TextTag, value : String) -> Unit {
  moonbit_gtk_text_tag_set_family(self, @encoding/utf8.encode(value))
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_family_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_family_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.family-set.html).
pub fn TextTag::get_family_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_family_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_family_set(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_family_set"

///|
pub fn TextTag::set_family_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_family_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_font(self_ : TextTag) -> Bytes = "moonbit_gtk_text_tag_get_font"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.font.html).
pub fn TextTag::get_font(self : TextTag) -> String {
  @encoding/utf8.decode_lossy(moonbit_gtk_text_tag_get_font(self))
}

///|
#borrow(self_, value)
extern "c" fn moonbit_gtk_text_tag_set_font(self_ : TextTag, value : Bytes) = "moonbit_gtk_text_tag_set_font"

///|
pub fn TextTag::set_font(self : TextTag, value : String) -> Unit {
  moonbit_gtk_text_tag_set_font(self, @encoding/utf8.encode(value))
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_font_features(self_ : TextTag) -> Bytes = "moonbit_gtk_text_tag_get_font_features"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.font-features.html).
pub fn TextTag::get_font_features(self : TextTag) -> String {
  @encoding/utf8.decode_lossy(moonbit_gtk_text_tag_get_font_features(self))
}

///|
#borrow(self_, value)
extern "c" fn moonbit_gtk_text_tag_set_font_features(
  self_ : TextTag,
  value : Bytes,
) = "moonbit_gtk_text_tag_set_font_features"

///|
pub fn TextTag::set_font_features(self : TextTag, value : String) -> Unit {
  moonbit_gtk_text_tag_set_font_features(self, @encoding/utf8.encode(value))
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_font_features_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_font_features_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.font-features-set.html).
pub fn TextTag::get_font_features_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_font_features_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_font_features_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_font_features_set"

///|
pub fn TextTag::set_font_features_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_font_features_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_, value)
extern "c" fn moonbit_gtk_text_tag_set_foreground(
  self_ : TextTag,
  value : Bytes,
) = "moonbit_gtk_text_tag_set_foreground"

///|
pub fn TextTag::set_foreground(self : TextTag, value : String) -> Unit {
  moonbit_gtk_text_tag_set_foreground(self, @encoding/utf8.encode(value))
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_foreground_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_foreground_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.foreground-set.html).
pub fn TextTag::get_foreground_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_foreground_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_foreground_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_foreground_set"

///|
pub fn TextTag::set_foreground_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_foreground_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.indent.html).
#borrow(self_)
pub extern "c" fn TextTag::get_indent(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_indent"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_indent(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_indent"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_indent_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_indent_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.indent-set.html).
pub fn TextTag::get_indent_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_indent_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_indent_set(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_indent_set"

///|
pub fn TextTag::set_indent_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_indent_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_insert_hyphens(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_insert_hyphens"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.insert-hyphens.html).
pub fn TextTag::get_insert_hyphens(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_insert_hyphens(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_insert_hyphens(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_insert_hyphens"

///|
pub fn TextTag::set_insert_hyphens(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_insert_hyphens(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_insert_hyphens_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_insert_hyphens_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.insert-hyphens-set.html).
pub fn TextTag::get_insert_hyphens_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_insert_hyphens_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_insert_hyphens_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_insert_hyphens_set"

///|
pub fn TextTag::set_insert_hyphens_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_insert_hyphens_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_invisible(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_invisible"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.invisible.html).
pub fn TextTag::get_invisible(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_invisible(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_invisible(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_invisible"

///|
pub fn TextTag::set_invisible(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_invisible(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_invisible_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_invisible_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.invisible-set.html).
pub fn TextTag::get_invisible_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_invisible_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_invisible_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_invisible_set"

///|
pub fn TextTag::set_invisible_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_invisible_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.justification.html).
#borrow(self_)
pub extern "c" fn TextTag::get_justification(self_ : TextTag) -> Justification = "moonbit_gtk_text_tag_get_justification"

///|
#borrow(self_)
pub extern "c" fn TextTag::set_justification(
  self_ : TextTag,
  value : Justification,
) = "moonbit_gtk_text_tag_set_justification"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_justification_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_justification_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.justification-set.html).
pub fn TextTag::get_justification_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_justification_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_justification_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_justification_set"

///|
pub fn TextTag::set_justification_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_justification_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_language(self_ : TextTag) -> Bytes = "moonbit_gtk_text_tag_get_language"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.language.html).
pub fn TextTag::get_language(self : TextTag) -> String {
  @encoding/utf8.decode_lossy(moonbit_gtk_text_tag_get_language(self))
}

///|
#borrow(self_, value)
extern "c" fn moonbit_gtk_text_tag_set_language(self_ : TextTag, value : Bytes) = "moonbit_gtk_text_tag_set_language"

///|
pub fn TextTag::set_language(self : TextTag, value : String) -> Unit {
  moonbit_gtk_text_tag_set_language(self, @encoding/utf8.encode(value))
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_language_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_language_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.language-set.html).
pub fn TextTag::get_language_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_language_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_language_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_language_set"

///|
pub fn TextTag::set_language_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_language_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.left-margin.html).
#borrow(self_)
pub extern "c" fn TextTag::get_left_margin(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_left_margin"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_left_margin(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_left_margin"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_left_margin_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_left_margin_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.left-margin-set.html).
pub fn TextTag::get_left_margin_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_left_margin_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_left_margin_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_left_margin_set"

///|
pub fn TextTag::set_left_margin_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_left_margin_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.letter-spacing.html).
#borrow(self_)
pub extern "c" fn TextTag::get_letter_spacing(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_letter_spacing"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_letter_spacing(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_letter_spacing"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_letter_spacing_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_letter_spacing_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.letter-spacing-set.html).
pub fn TextTag::get_letter_spacing_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_letter_spacing_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_letter_spacing_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_letter_spacing_set"

///|
pub fn TextTag::set_letter_spacing_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_letter_spacing_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.line-height.html).
#borrow(self_)
pub extern "c" fn TextTag::get_line_height(self_ : TextTag) -> Float = "moonbit_gtk_text_tag_get_line_height"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_line_height(self_ : TextTag, value : Float) = "moonbit_gtk_text_tag_set_line_height"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_line_height_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_line_height_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.line-height-set.html).
pub fn TextTag::get_line_height_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_line_height_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_line_height_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_line_height_set"

///|
pub fn TextTag::set_line_height_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_line_height_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_name(self_ : TextTag) -> Bytes = "moonbit_gtk_text_tag_get_name"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.name.html).
pub fn TextTag::get_name(self : TextTag) -> String {
  @encoding/utf8.decode_lossy(moonbit_gtk_text_tag_get_name(self))
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.overline.html).
#borrow(self_)
pub extern "c" fn TextTag::get_overline(self_ : TextTag) -> @pango.Overline = "moonbit_gtk_text_tag_get_overline"

///|
#borrow(self_)
pub extern "c" fn TextTag::set_overline(
  self_ : TextTag,
  value : @pango.Overline,
) = "moonbit_gtk_text_tag_set_overline"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_overline_rgba_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_overline_rgba_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.overline-rgba-set.html).
pub fn TextTag::get_overline_rgba_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_overline_rgba_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_overline_rgba_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_overline_rgba_set"

///|
pub fn TextTag::set_overline_rgba_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_overline_rgba_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_overline_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_overline_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.overline-set.html).
pub fn TextTag::get_overline_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_overline_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_overline_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_overline_set"

///|
pub fn TextTag::set_overline_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_overline_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_, value)
extern "c" fn moonbit_gtk_text_tag_set_paragraph_background(
  self_ : TextTag,
  value : Bytes,
) = "moonbit_gtk_text_tag_set_paragraph_background"

///|
pub fn TextTag::set_paragraph_background(
  self : TextTag,
  value : String,
) -> Unit {
  moonbit_gtk_text_tag_set_paragraph_background(
    self,
    @encoding/utf8.encode(value),
  )
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_paragraph_background_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_paragraph_background_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.paragraph-background-set.html).
pub fn TextTag::get_paragraph_background_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_paragraph_background_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_paragraph_background_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_paragraph_background_set"

///|
pub fn TextTag::set_paragraph_background_set(
  self : TextTag,
  value : Bool,
) -> Unit {
  moonbit_gtk_text_tag_set_paragraph_background_set(
    self,
    if value {
      1
    } else {
      0
    },
  )
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.pixels-above-lines.html).
#borrow(self_)
pub extern "c" fn TextTag::get_pixels_above_lines(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_pixels_above_lines"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_pixels_above_lines(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_pixels_above_lines"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_pixels_above_lines_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_pixels_above_lines_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.pixels-above-lines-set.html).
pub fn TextTag::get_pixels_above_lines_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_pixels_above_lines_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_pixels_above_lines_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_pixels_above_lines_set"

///|
pub fn TextTag::set_pixels_above_lines_set(
  self : TextTag,
  value : Bool,
) -> Unit {
  moonbit_gtk_text_tag_set_pixels_above_lines_set(
    self,
    if value {
      1
    } else {
      0
    },
  )
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.pixels-below-lines.html).
#borrow(self_)
pub extern "c" fn TextTag::get_pixels_below_lines(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_pixels_below_lines"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_pixels_below_lines(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_pixels_below_lines"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_pixels_below_lines_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_pixels_below_lines_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.pixels-below-lines-set.html).
pub fn TextTag::get_pixels_below_lines_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_pixels_below_lines_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_pixels_below_lines_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_pixels_below_lines_set"

///|
pub fn TextTag::set_pixels_below_lines_set(
  self : TextTag,
  value : Bool,
) -> Unit {
  moonbit_gtk_text_tag_set_pixels_below_lines_set(
    self,
    if value {
      1
    } else {
      0
    },
  )
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.pixels-inside-wrap.html).
#borrow(self_)
pub extern "c" fn TextTag::get_pixels_inside_wrap(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_pixels_inside_wrap"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_pixels_inside_wrap(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_pixels_inside_wrap"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_pixels_inside_wrap_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_pixels_inside_wrap_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.pixels-inside-wrap-set.html).
pub fn TextTag::get_pixels_inside_wrap_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_pixels_inside_wrap_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_pixels_inside_wrap_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_pixels_inside_wrap_set"

///|
pub fn TextTag::set_pixels_inside_wrap_set(
  self : TextTag,
  value : Bool,
) -> Unit {
  moonbit_gtk_text_tag_set_pixels_inside_wrap_set(
    self,
    if value {
      1
    } else {
      0
    },
  )
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.right-margin.html).
#borrow(self_)
pub extern "c" fn TextTag::get_right_margin(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_right_margin"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_right_margin(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_right_margin"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_right_margin_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_right_margin_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.right-margin-set.html).
pub fn TextTag::get_right_margin_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_right_margin_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_right_margin_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_right_margin_set"

///|
pub fn TextTag::set_right_margin_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_right_margin_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.rise.html).
#borrow(self_)
pub extern "c" fn TextTag::get_rise(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_rise"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_rise(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_rise"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_rise_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_rise_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.rise-set.html).
pub fn TextTag::get_rise_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_rise_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_rise_set(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_rise_set"

///|
pub fn TextTag::set_rise_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_rise_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.scale.html).
#borrow(self_)
pub extern "c" fn TextTag::get_scale(self_ : TextTag) -> Double = "moonbit_gtk_text_tag_get_scale"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_scale(self_ : TextTag, value : Double) = "moonbit_gtk_text_tag_set_scale"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_scale_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_scale_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.scale-set.html).
pub fn TextTag::get_scale_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_scale_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_scale_set(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_scale_set"

///|
pub fn TextTag::set_scale_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_scale_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_sentence(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_sentence"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.sentence.html).
pub fn TextTag::get_sentence(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_sentence(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_sentence(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_sentence"

///|
pub fn TextTag::set_sentence(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_sentence(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_sentence_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_sentence_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.sentence-set.html).
pub fn TextTag::get_sentence_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_sentence_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_sentence_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_sentence_set"

///|
pub fn TextTag::set_sentence_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_sentence_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.show-spaces.html).
#borrow(self_)
extern "c" fn __ffi_moonbit_gtk_text_tag_get_show_spaces(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_show_spaces"

///|
pub fn TextTag::get_show_spaces(self : TextTag) -> @pango.ShowFlags {
  @pango.ShowFlags::from_int(__ffi_moonbit_gtk_text_tag_get_show_spaces(self))
}

///|
#borrow(self_)
extern "c" fn __ffi_moonbit_gtk_text_tag_set_show_spaces(
  self_ : TextTag,
  value : Int,
) -> Unit = "moonbit_gtk_text_tag_set_show_spaces"

///|
pub fn TextTag::set_show_spaces(
  self : TextTag,
  value : @pango.ShowFlags,
) -> Unit {
  __ffi_moonbit_gtk_text_tag_set_show_spaces(self, value.to_int())
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_show_spaces_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_show_spaces_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.show-spaces-set.html).
pub fn TextTag::get_show_spaces_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_show_spaces_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_show_spaces_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_show_spaces_set"

///|
pub fn TextTag::set_show_spaces_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_show_spaces_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.size.html).
#borrow(self_)
pub extern "c" fn TextTag::get_size(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_size"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_size(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_size"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.size-points.html).
#borrow(self_)
pub extern "c" fn TextTag::get_size_points(self_ : TextTag) -> Double = "moonbit_gtk_text_tag_get_size_points"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_size_points(self_ : TextTag, value : Double) = "moonbit_gtk_text_tag_set_size_points"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_size_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_size_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.size-set.html).
pub fn TextTag::get_size_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_size_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_size_set(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_size_set"

///|
pub fn TextTag::set_size_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_size_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.stretch.html).
#borrow(self_)
pub extern "c" fn TextTag::get_stretch(self_ : TextTag) -> @pango.Stretch = "moonbit_gtk_text_tag_get_stretch"

///|
#borrow(self_)
pub extern "c" fn TextTag::set_stretch(self_ : TextTag, value : @pango.Stretch) = "moonbit_gtk_text_tag_set_stretch"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_stretch_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_stretch_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.stretch-set.html).
pub fn TextTag::get_stretch_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_stretch_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_stretch_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_stretch_set"

///|
pub fn TextTag::set_stretch_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_stretch_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_strikethrough(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_strikethrough"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.strikethrough.html).
pub fn TextTag::get_strikethrough(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_strikethrough(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_strikethrough(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_strikethrough"

///|
pub fn TextTag::set_strikethrough(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_strikethrough(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_strikethrough_rgba_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_strikethrough_rgba_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.strikethrough-rgba-set.html).
pub fn TextTag::get_strikethrough_rgba_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_strikethrough_rgba_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_strikethrough_rgba_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_strikethrough_rgba_set"

///|
pub fn TextTag::set_strikethrough_rgba_set(
  self : TextTag,
  value : Bool,
) -> Unit {
  moonbit_gtk_text_tag_set_strikethrough_rgba_set(
    self,
    if value {
      1
    } else {
      0
    },
  )
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_strikethrough_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_strikethrough_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.strikethrough-set.html).
pub fn TextTag::get_strikethrough_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_strikethrough_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_strikethrough_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_strikethrough_set"

///|
pub fn TextTag::set_strikethrough_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_strikethrough_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.style.html).
#borrow(self_)
pub extern "c" fn TextTag::get_style(self_ : TextTag) -> @pango.Style = "moonbit_gtk_text_tag_get_style"

///|
#borrow(self_)
pub extern "c" fn TextTag::set_style(self_ : TextTag, value : @pango.Style) = "moonbit_gtk_text_tag_set_style"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_style_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_style_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.style-set.html).
pub fn TextTag::get_style_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_style_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_style_set(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_style_set"

///|
pub fn TextTag::set_style_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_style_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_tabs_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_tabs_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.tabs-set.html).
pub fn TextTag::get_tabs_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_tabs_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_tabs_set(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_tabs_set"

///|
pub fn TextTag::set_tabs_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_tabs_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.text-transform.html).
#borrow(self_)
pub extern "c" fn TextTag::get_text_transform(
  self_ : TextTag,
) -> @pango.TextTransform = "moonbit_gtk_text_tag_get_text_transform"

///|
#borrow(self_)
pub extern "c" fn TextTag::set_text_transform(
  self_ : TextTag,
  value : @pango.TextTransform,
) = "moonbit_gtk_text_tag_set_text_transform"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_text_transform_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_text_transform_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.text-transform-set.html).
pub fn TextTag::get_text_transform_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_text_transform_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_text_transform_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_text_transform_set"

///|
pub fn TextTag::set_text_transform_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_text_transform_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.underline.html).
#borrow(self_)
pub extern "c" fn TextTag::get_underline(self_ : TextTag) -> @pango.Underline = "moonbit_gtk_text_tag_get_underline"

///|
#borrow(self_)
pub extern "c" fn TextTag::set_underline(
  self_ : TextTag,
  value : @pango.Underline,
) = "moonbit_gtk_text_tag_set_underline"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_underline_rgba_set(
  self_ : TextTag,
) -> Int = "moonbit_gtk_text_tag_get_underline_rgba_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.underline-rgba-set.html).
pub fn TextTag::get_underline_rgba_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_underline_rgba_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_underline_rgba_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_underline_rgba_set"

///|
pub fn TextTag::set_underline_rgba_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_underline_rgba_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_underline_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_underline_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.underline-set.html).
pub fn TextTag::get_underline_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_underline_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_underline_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_underline_set"

///|
pub fn TextTag::set_underline_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_underline_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.variant.html).
#borrow(self_)
pub extern "c" fn TextTag::get_variant(self_ : TextTag) -> @pango.Variant = "moonbit_gtk_text_tag_get_variant"

///|
#borrow(self_)
pub extern "c" fn TextTag::set_variant(self_ : TextTag, value : @pango.Variant) = "moonbit_gtk_text_tag_set_variant"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_variant_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_variant_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.variant-set.html).
pub fn TextTag::get_variant_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_variant_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_variant_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_variant_set"

///|
pub fn TextTag::set_variant_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_variant_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.weight.html).
#borrow(self_)
pub extern "c" fn TextTag::get_weight(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_weight"

///|
#borrow(self_, value)
pub extern "c" fn TextTag::set_weight(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_weight"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_weight_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_weight_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.weight-set.html).
pub fn TextTag::get_weight_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_weight_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_weight_set(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_weight_set"

///|
pub fn TextTag::set_weight_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_weight_set(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_word(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_word"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.word.html).
pub fn TextTag::get_word(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_word(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_word(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_word"

///|
pub fn TextTag::set_word(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_word(self, if value { 1 } else { 0 })
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_word_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_word_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.word-set.html).
pub fn TextTag::get_word_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_word_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_word_set(self_ : TextTag, value : Int) = "moonbit_gtk_text_tag_set_word_set"

///|
pub fn TextTag::set_word_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_word_set(self, if value { 1 } else { 0 })
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.wrap-mode.html).
#borrow(self_)
pub extern "c" fn TextTag::get_wrap_mode(self_ : TextTag) -> WrapMode = "moonbit_gtk_text_tag_get_wrap_mode"

///|
#borrow(self_)
pub extern "c" fn TextTag::set_wrap_mode(self_ : TextTag, value : WrapMode) = "moonbit_gtk_text_tag_set_wrap_mode"

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_get_wrap_mode_set(self_ : TextTag) -> Int = "moonbit_gtk_text_tag_get_wrap_mode_set"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/property.TextTag.wrap-mode-set.html).
pub fn TextTag::get_wrap_mode_set(self : TextTag) -> Bool {
  moonbit_gtk_text_tag_get_wrap_mode_set(self) != 0
}

///|
#borrow(self_)
extern "c" fn moonbit_gtk_text_tag_set_wrap_mode_set(
  self_ : TextTag,
  value : Int,
) = "moonbit_gtk_text_tag_set_wrap_mode_set"

///|
pub fn TextTag::set_wrap_mode_set(self : TextTag, value : Bool) -> Unit {
  moonbit_gtk_text_tag_set_wrap_mode_set(self, if value { 1 } else { 0 })
}

///|
impl ITextTag with fn changed(self, size_changed) -> Unit {
  self.as_text_tag().changed(size_changed)
}

///|
impl ITextTag with fn get_priority(self) -> Int {
  self.as_text_tag().get_priority()
}

///|
impl ITextTag with fn set_priority(self, priority) -> Unit {
  self.as_text_tag().set_priority(priority)
}

///|
pub fn TextTag::as_gobject_object(self : TextTag) -> @gobject.Object = "%identity"

///|
pub impl @gobject.IObject for TextTag with fn as_object(self) {
  self.as_gobject_object()
}